Алгоритм решения транспортной задачи методом потенциалов
1. Записываются уравнения задачи.
2. Определяется каким-либо способом допустимое базисное решение.
3. С помощью уравнений для базисных клеток находятся потенциалы ai и bj всех пунктов отправления и назначения.
4. Определяется сумма стоимости по циклам пересчета gij = cij – (ai + bj) для всех свободных переменных. Выбирается свободная переменная xi0j0 , для которой gi0j0 отрицательна и является наибольшей по абсолютной величине. Если таких нет, то это означает, что данное базисное решение оптимально.
5. Для выбранной переменной xi0j0 строится цикл пересчета и осуществляется сдвиг на величину наименьшего значения базисной переменной в отрицательных вершинах.
6. Далее операции 2 – 5 повторяются, пока не будет получено оптимальное решение, т. е. пока все gij не станут положительными.
7. Вычисляется общая стоимость перевозок, соответствующая оптимальному решению.
Рассмотрим пример определения потенциалов. Данные задачи и одно из допустимых базисных решений приведены в таблице.
В1 | В2 | B3 | B4 | ai | ai | |
A1 | 2 20 | 3 10 | 2 | 4 | 30 | 0 |
A2 | 3 | 2 20 | 5 20 | 1 | 40 | -1 |
A3 | 4 | 3 | 2 10 | 6 10 | 20 | -4 |
bj | 20 | 30 | 30 | 10 | ||
bj | 2 | 3 | 6 | 10 |
Составим систему уравнений для определения потенциалов пунктов отправления и назначения:
Число уравнений равно числу базисных переменных.
Примем в качестве свободной неизвестной a1, положим a1 =0.
В первой строке таблицы имеется две базисные неизвестные x11 , x12 , им соответствуют уравнения a1 +b1 =2 и a1 +b2 =3. Из этих уравнений находим b1=2, b2 =3.
В первом столбце таблицы содержится одна базисная неизвестная x11 , соответствующее ей уравнение уже было использовано.
Во втором столбце кроме x12 содержится базисная переменная x22. Ей соответствует уравнение a2 +b2 =2. Т. к. b2 =3, значит a2 =2 – b2 = –1.
Во второй строке кроме рассмотренной x22 имеется базисная неизвестная x23. Из соответствующего ей уравнения a2 +b3 =5 при условии a2 = –1 следует, что b3 =5 – a2 =6.
В третьем столбце кроме базисной x23 есть x33. Из уравнения a3 +b3 =2 по известному значению b3 находим a2 = –4.
И, наконец, из уравнения для базисной неизвестной x34 a3 +b4 =6 определяем b4 =6 – a3 =10.
Теперь можно найти алгебраическую сумму стоимостей по циклу пересчета свободных переменных. Так, для свободной переменной x13 имеем g13 = с13 – – (a1 +b3) =2 – (0+6) = - 4. Аналогично находим
g14 = -6 , g21 =2, g24 = - 8, g31 =6, g32 =4.
Далее выбирается свободная неизвестная, для которой gij отрицательна и имеет наибольшую абсолютную величину (в нашем случае это g24 = - 8, и для нее будет x24). Для выбранной переменной определяется цикл пересчета и осуществляется сдвиг по циклу на наименьшее значение базисной неизвестной в отрицательной вершине.
Далее повторяются предыдущие вычисления вплоть до получения оптимального значения, когда все gij будут положительны.