Алгоритм решения транспортной задачи
методом потенциалов
1.
Найти
исходное опорное решение.
2.
Найти
потенциалы из системы уравнений ui + vj = cij, справедливых для занятых
клеток. Так как занятых клеток m+n-1, то система будет
состоять из m+n-1 уравнений с m+n неизвестными. Эта система
имеет бесконечное множество решений. Для того чтобы найти частное решение
системы, придадим одному из неизвестных любое числовое значение, например u1=0, и найдем значения остальных.
Потенциалы
ui и vj записываем в столбце и в
строке, которые добавляем к таблице.
3.
Для
всех свободных клеток найти оценки Dij= ui + vj - cij.
4.
Проверка
решения на оптимальность.
Если
все Dij£0, то найденное решение оптимально.
Если
среди оценок есть хотя бы одно положительное число, то найденное решение не оптимально
и его надо улучшить.
5.
Выбирается
клетка с наибольшей положительной оценкой, и соответствующую переменную вводят
в базис, для этого строят цикл для этой клетки. Даем поставку в эту клетку l. Тогда нарушится баланс и в строке, и в
столбце, следовательно, нужно отнимать l от одной из поставок данного
столбца и строки до тех пор, пока цикл не замкнется.
Свойства
цикла:
1)
в цикле всего одна свободная клетка, в которую пишем +l;
2)
если
строка или столбец участвует в цикле, то двумя клетками +l и -l;
3)
число
клеток цикла четно.
Можно
доказать, что для любой свободной клетки можно построить единственный цикл.
6.
Определяется
l так, чтобы одна из занятых клеток освободилась
и чтобы оставшиеся поставки xij ³0, т.е. l=min íxijý для четных клеток цикла.
7.
Строится
новая распределительная таблица, в которой изменяются только клетки цикла,
остальные переписываются без изменения.
8.
Переход
в п. 2.