Так как мы еще не знаем, оптимален план Х или нет, то возьмем заведомо оптимальный план Х' (x¢ij) и посмотрим, какое значение он доставляет функционалу:
(транспортные расходы минимальны). Выполняются ли условия потенциальности для плана Х' - неизвестно, но каждой клетке (i, j) макета 8, исходя из потенциальности плана Х, соответствует неравенство vj - ui£ aijили, наоборот, aij ≥ vj - ui. Возьмем из каждой клетки макета соответствующий х'ij, умножим его на левую и правую части последнего неравенства и сложим. Получим неравенство
.Двойную сумму в правой части обозначим для краткости буквой S:
,ее можно переписать в виде разности двух двойных сумм:
.Преобразуем эти суммы следующим образом. Первая из них в развернутом виде дает
или
.Аналогично вторую двойную сумму можно записать так:
.Тогда равенство
запишется в иной форме: .Но
есть сумма компонент плана по j-му столбцу, онаравна потребности j-ro пункта назначения
.Аналогично
есть сумма компонент плана, взятая по i-й строке, она равна запасам в i-м пункте отправления .Эти равенства сумм компонент по строке и столбцу соответственно запасам и потребностям будут выполняться для любого допустимого плана, в том числе и для взятого в самом начале плана Х (xij):
Поэтому для любых допустимых планов будем иметь
и в написанном выше равенстве
суммы x¢ij можно заменить соответствующими суммами xij:Теперь вернемся к форме записи
.В плане Х (xij) по условию его потенциальности для каждой положительной компоненты xij> 0 выполняется равенство vj - ui = aij.
Остальные компоненты плана равны нулю, и соответствующие слагаемые в сумме обратятся в нули. Поэтому полученная сумма будет равна
.Подставляя
в ,приходим к неравенству
или zmin ≥ zX. Иными словами, транспортные расходы по плану Х меньше или равны минимальным расходам. Но меньше минимальных они быть не могут, остается только равенство zX = zmin.. План Х доставляет минимальные издержки, т.е. он оптимален, что и требовалось доказать.
Таким образом, если план потенциален, то он оптимален. Это и является тем критерием, по которому судят об оптимальности плана.
Справедливо и обратное положение: если план оптимален, то он о6язательно потенциален. Это условие (необходимость) принимается без доказательства. [5]
Может случиться, что в рассматриваемых пунктах запасы не равны потребностям: или запасы превосходят потребности, или же запасы не обеспечивают потребностей.
Такая модель задачи называется открытой. Для нее тоже можно отыскать план с минимумом транспортных издержек, но не будут удовлетворены все потребности или не будет вывезен весь груз, так как нельзя подобрать такую систему чисел, которая при суммировании по строкам давала бы один результат, а при суммировании по столбцам - другой.
Для решения задачи поступаем следующим образом.
Первый случай.
.В математическую модель транспортной задачи введем фиктивный (l+l) - й пункт назначения. Для этого в матрице задачи предусмотрим один столбец, для которого потребность будет равна излишку груза:
,Все тарифы на доставку груза в этот пункт будем считать равными нулю. Получим новую задачу, причем для старой и новой задачи функционал будет один и тот же, так как цены на дополнительные перевозки равны нулю:
minФиктивный потребитель обеспечивает совместность ограничений, не внося искажений в решение.
Второй случай.
Если запасов не хватает для удовлетворения потребностей, т.е.
, то вводим фиктивный (k+1) - й пункт отправления, которому приписываем запас груза, равный ,тарифы на доставку грузов из этого фиктивного склада опять, полагаем нулевыми. В матрице добавится одна строка. На функционале это не отразится, а система ограничений задачи станет совместной, т.е. станет возможным отыскание оптимального плана на минимум стоимости перевозок. [5]
Алгоритм метода потенциалов разделяется на предварительный шаг, выполняемый в начале решения, и общий шаг, повторяемый до тех пор, пока не будет получен оптимум.
Этот шаг включает следующих три этапа.
1. Находим допустимый ациклический план.
2. Составляем систему чисел - потенциалов пунктов отправления и пунктов назначения.
3. Анализируем систему на потенциальность. Если она потенциальна (т.е. план потенциален), то найденный план оптимален. Если система не потенциальна, приступаем к общему шагу.
Первый этап: нахождение допустимого ациклического плана способом северо-западного угла.
Невзирая на тарифы, начинаем составление плана с заполнения левой верхней клетки (1,1) (с северо-западного угла).
Смотрим на запасы M1 и потребности N1. Если M1 < N1, то в клетку (1,1) вписываем Ml (т.е. отдаем пункту назначения весь запас груза из первого пункта отправления - случай в таблице). Если N1 < M1, то в клетку (1,1) записываем N1, т.е. покрываем всю потребность первого пункта назначения за счет первого пункта отправления.
Перепишем баланс после первой операции (изменятся и потребности, и запасы). В первой строке остальные клетки можно прочеркнуть, так как весь груз пошел в первый пункт.
Второй тур начинаем опять с северо-западного угла. Удовлетворяем оставшуюся потребность первого пункта назначения, доставив туда (N1-Ml) единиц груза из второго пункта отправления. Если потребность первого пункта удовлетворена полностью, остальные клетки в первом столбце прочеркиваем. Переписываем баланс после второй операции.
Снова начинаем с северо-западного угла, удовлетворяем потребность второго пункта назначения и т.д., пока справа и снизу не будут стоять нули, т.е. весь груз распределен и потребности удовлетворены. Полученный внутри таблицы план будет допустимым. Его и берем в качестве исходного.
Второй этап предварительного шага: определение системы потенциалов.
Потенциал приписывается каждому пункту отправления (обозначается ui) и каждому пункту назначения (vj). Всего потенциалов k+l чисел. Они вносятся в специально отведенные для этого строку и столбец макета.
Для Х-отмеченных тарифов aij, число которых всегда равно (k + l - 1), должны выполняться равенства vj - ui = aij. Эти равенства и будут служить теми уравнениями, из которых находятся потенциалы. Однако таких уравнений будет только (k + l - 1), а неизвестных в системе (k + l), т.е. на единицу больше. Такая система уравнений имеет бесчисленное множество решений, любое из которых годится для нашей цели. Чтобы найти какое-то одно решение, значение одного потенциала выбираем произвольно. Остальные потенциалы определяем из решения системы. Третий этап предварительного шага: испытание плана или системы потенциалов на потенциальность. Потенциальность заключается в том, чтобы неравенство vj - ui < aij выполнялось для всех без исключений клеток. При этом Х-отмеченные клетки проверять не надо, так как потенциалы подобраны из условия выполнения в них равенства.
Выделяем положительные разности dij:
dij = vj - ui - aij > 0.