Слайд 2Как мы установили на прошлой лекции, решение транспортной задачи начинается
с нахождения опорного плана. Для этого существуют различные способы. Например,
способ северо-западного угла, способ минимальной стоимости по строке, способ минимальной стоимости по столбцу и способ минимальной стоимости таблицы.
Слайд 4Будем заполнять таблицу перевозками
постепенно начиная с левой верхней ячейки
("северо-западного угла" таблицы). Будем рассуждать при этом следующим
образом. Пункт
В1 подал заявку на 18 единиц груза. Удовлетворим эту заявку за счёт запаса 48, имеющегося в пункте А1 , и запишем перевозку 18 в клетке (1,1). После этого заявка пункта В1
удовлетворена, в пункте А1 осталось
ещё 30 единиц груза.
Слайд 5Удовлетворим за счёт них заявку пункта В2 (27 единиц), запишем
27 в клетке (1,2); оставшиеся 3 единицы пункта А1 назначим
пункту В3.
В составе заявки пункта В3 остались
неудовлетворёнными 39 единиц. Из них 30
покроем за счёт пункта А2, чем его запас будет исчерпан, и ещё 9 возьмём из пункта А3. Из оставшихся 18 единиц пункта А3 12
выделим пункту В4; оставшиеся 6 единиц
назначим пункту В5, что вместе со всеми 20
единицами пункта А4 покроет его заявку.
Слайд 6На этом распределение запасов закончено;
каждый пункт назначения получил груз, согласно
своей заявки. Это выражается в том, что сумма перевозок в
каждой строке равна
соответствующему запасу, а в столбце - заявке. Таким образом, нами сразу же составлен план перевозок,
удовлетворяющий балансовым условиям. Полученное решение является опорным
решением транспортной задачи:
В нашем примере общие затраты на транспортировку по плану, составленному методом северо-западного угла F0 = 1039
Слайд 8Достижение оптимального плана.
Распределительный метод достижения оптимального плана
Теперь попробуем
улучшить план, составленный способом северо-западного угла. Перенесем, например, 18 единиц
из клетки (1,1) в клетку (2,1) и чтобы не
нарушить баланса перенесём те же 18 единиц из клетки (2,3) в клетку (1,3). Получим новый план. Подсчитав стоимость опорного плана (она равняется 1039) и стоимость нового плана (она равняется 913) нетрудно убедиться, что стоимость нового плана на 126 единиц меньше. Таким образом, за счёт циклической перестановки 18
единиц груза из одних клеток в другие нам удалось
понизить стоимость плана. Новая таблица на следующем слайде.
Слайд 10На этом способе уменьшения стоимости в дальнейшем и будет основан
алгоритм оптимизации плана перевозок. Циклом в транспортной задаче мы будем
называть несколько занятых клеток, соединённых замкнутой, ло-манной линией, которая в каждой клетке совершает поворот на 90°.
Слайд 11 Существует несколько вариантов цикла:
Слайд 12Нетрудно убедиться, что каждый цикл имеет чётное число вершин и
значит, чётное число звеньев (стрелок). Условимся отмечать знаком +
те вершины цикла, в которых перевозки необходимо увеличить, а знаком - , те вершины , в которых перевозки необходимо уменьшить. Цикл с отмеченными вершинами будем называть означенным.
Слайд 13Перенести какое-то количество единиц груза по означенному циклу, это значит
увеличить перевозки, стоящие в положительных вершинах цикла, на это количество
единиц, а перевозки, стоящие в отрицательных вершинах уменьшить на то же количество.
Слайд 14Очевидно, при переносе любого числа единиц по циклу рав-новесие между
запасами и заявками не меняется: по прежнему сумма перевозок в
каждой строке
равна запасам этой строки, а сумма перевозок в каждом столбце - заявке этого столбца. Таким образом, при любом циклическом переносе, оставляющем перевозки неотрицательными допустимый план остаётся
допустимым. Стоимость же плана при этом может меняться: увеличиваться или уменьшатся.
Слайд 15Назовём ценой цикла увеличение стоимости перевозок при перемещении одной единицы
груза по означенному циклу. Очевидно, цена цикла равна алгебраической
сумме стоимостей,
стоящих в вершинах цикла, причём стоящие в положительных
вершинах берутся со знаком +, а в отрицательных со знаком -.
Слайд 16Обозначим цену цикла через γ. При перемещении одной единицы груза
по циклу стоимость перевозок увеличивается на величину
γ. При перемещении
по нему k единиц груза стоимость перевозок увеличиться на kγ. Очевидно, для улучшения плана имеет смысл
перемещать перевозки только по тем циклам, цена которых отрицательна. Каждый раз, когда нам удаётся совершить такое перемещение, стоимость плана уменьшается на соответствующую
величину kγ.
Слайд 17Так как перевозки не могут быть отрицательными, мы будем
пользоваться
только такими циклами,
отрицательные вершины которых лежат в базисных клетках
таблицы, где стоят положительные перевозки. Если циклов с отрицательной ценой в
таблице больше не осталось, это означает, что дальнейшее улучшение плана невозможно, то есть оптимальный план достигнут.
Слайд 18Метод последовательного улучшения плана
перевозок и состоит в том, что
в таблице
отыскиваются циклы с отрицательной ценой, по ним перемещаются
перевозки, и план улучшается до тех пор, пока циклов с отрицательной ценой уже не останется. При улучшении плана циклическими переносами, как правило, пользуются приёмом, заимствованным из симплекс-метода: при каждом шаге (цикле) заменяют одну свободную переменную на
базисную, то есть заполняют одну свободную клетку и
взамен того
освобождают одну из базисных клеток. При этом общее число базисных клеток остаётся
неизменным и равным m+n-1 . Этот метод удобен тем, что для него легче находить подходящие циклы.
Слайд 19Можно доказать, что для любой свободной клетке транспортной таблице всегда
существует цикл и притом
единственный, одна из вершин которого лежит
в этой свободной клетке, а все остальные в базисных клетках. Если цена такого цикла, с плюсом в свободной клетке, отрицательна, то план можно улучшить перемещением перевозок по данному циклу. Количество единиц груза k, которое можно переместить, определяется минимальным значением перевозок, стоящих в отрицательных вершинах цикла (если переместить большее число единиц груза, возникнут отрицательные перевозки).
Слайд 20 Распределительный метод решения
транспортной задачи, с которым мы познакомились,
обладает одним недостатком: нужно отыскивать циклы для всех
свободных клеток
и находить их цены. От этой трудоёмкой работы нас избавляет специальный метод решения
транспортной задачи, который называется методом потенциалов.
Слайд 21Решение транспортной
задачи методом потенциалов
Этот метод позволяет
автоматически выделять
циклы с
отрицательной ценой и определять их цены.
Пусть
имеется транспортная
задача с балансовыми условиями
Слайд 22Стоимость перевозки единицы
груза из Ai в Bj равна C ij; таблица
стоимостей задана. Требуется найти план перевозок xij, который удовлетворял бы
балансовым условиям и при этом
стоимость всех перевозок бала
минимальна.
Слайд 23 Идея метода потенциалов для
решения транспортной задачи
Представим себе
что каждый из пунктов отправления Ai вносит за
перевозку единицы
груза (всё равно куда) какую-то сумму αi; в свою очередь каждый из пунктов назна-чения Bj также вносит за перевозку груза (куда угодно) сумму βj. Эти платежи передаются некоторому третьему лицу (“перевозчику“). Обозначим ai + bj = čij ( i=1..m; j=1..n) и будем называть величину čij “псевдостоимостью” перевозки единицы груза из Ai в Bj.
Слайд 24Заметим, что платежи αi и βj не обязательно должны быть
положительными; не
исключено, что “перевозчик” сам платит тому или
другому пункту какую-то
премию за перевозку. Также надо отметить, что суммарная псевдостоимость любого допустимого плана перевозок при заданных платежах (αi и βj) одна и та же и от плана к плану не меняется.
Слайд 25До сих пор мы никак не связывали платежи (αi и
βj) и псевдостоимости čij с истинными стоимостями перевозок Cij. Теперь
мы установим между ними связь. Предположим, что план xij невырожденный (число базисных клеток в таблице перевозок ровно m + n -1). Для всех этих клеток xij>0. Определим платежи (αi и βj) так, чтобы во всех базисных клетках псевдостоимости были равны стоимостям:
čij=αi+βj=сij, при xij>0.
Слайд 26Что касается свободных клеток (где xij=0), то в них соотношение
между
псевдостоимостями и стоимостями
может быть, какое угодно. Оказывается соотношение
между псевдостоимостями и стоимостями в свободных клетках показывает, является ли план оптимальным или же он может быть
улучшен.
Слайд 27Если для всех базисных клеток плана xij>0,
αi+βj=čij=сij,
а
для всех свободных клеток xij=0,
αi+βj=čij≤сij,
то план
является оптимальным и никакими способами улучшен быть не может.
Слайд 28План обладающий свойством :
čij= сij (для всех базисных
клеток)
čij ≤ сij (для всех свободных клеток)
называется
потенциальным
планом, а соответствующие ему платежи (αi и βj) — потенциалами пунктов Ai и Bj (i=1,...,m; j=1,..., n).
Слайд 29Пользуясь этой терминологией
вышеупомянутую теорему можно
сформулировать так:
Всякий потенциальный
план
является оптимальным.
Итак, для решения транспортной задачи
нам
нужно одно - построить потенциальный план. Сделаем это на примере плана, составленного методом минимального элемента.
Слайд 31Стоимость перевозок:
С=731
Составим систему уравнений для непустых клеток и из нее
найдем псевдостоимости
Слайд 32a1+b2=8 a1+b3=5 a1+b4=6
a2+b1=6
a2+b5=5 a3+b1=8
a3+b2=7 a4+b3=4
Уравнений 8, а
переменных 9.
Поэтому одна из переменных может быть взята произвольно.
Слайд 33Пусть а1=0, тогда
а2= -3, а3= -1, а4= -1, в1=9,
в2=8, в3=5
в4=6, в5=8
Проверяем псевдостоимости для пустых клеток и сравниваем их
с реальными стоимостями:
a3+b5=7=7 a4+b1=8>7
a4+b2=7>5 a4+b4=5
разность в клетке а4,в2.
Поэтому перераспределяем перевозки по циклу так, чтобы приняла участие эта клетка.
Слайд 36Начинаем перемещать перевозки по циклу, как обозначено в таблице, начиная
от клетки 4,2. Цикл нужен чтобы план был выполнен и
потребности были удовлетворены,а склады пусты.
После перемещения получим новую таблицу:
Слайд 38Подсчитаем стоимость перевозки:
36*5+12*6+4*24+26*5+14*8+13*7+14*5+6*24=703
Проверим план на оптимальность методом потенциалов.
Составим систему уравнений
для непустых клеток.
Слайд 39a1+b3=5 a1+b4=6 a2+b1=6
a2+b5=5 a3+b1=8
a3+b2=7
a4+b2=5 a4+b3=4
Примем b1=0, тогда получим:
Слайд 40a1=7 a2=6 a3=8 a4=6
b1=0
b2= - 1 b3= -2
b4= - 1
b5= - 1
Выполним проверку псевдостоимостей для пустых клеток:
a2+b4=5
a4+b5=5<8
Все псевдостоимости меньше или равны стоимостям. Значит полученный план перевозок оптимален и его стоимость равна 703 ед.
Слайд 42Алгоритм решения транспортной
задачи методом потенциалов:
Взять любой опорный план
перевозок, в котором отмечены m+n-1 базисных клеток (остальные клетки
свободные
Определить
для этого плана платежи (αi и βj) исходя из условия, чтобы в любой
базисной клетке псевдостоимости были равны стоимостям. Один из платежей можно назначить
произвольно, например, положить равным нулю.
Слайд 43Подсчитать псевдостоимости či,j=αi+βjдля всех
свободных клеток. Если окажется, что все они
не превышают стоимостей, то план оптимален.
4. Если хотя бы
в одной свободной клетке псевдостоимость превышает стоимость, следует приступить к улучшению плана путём переброски перевозок по циклу, соответствующему любой свободной клетке с
отрицательной ценой (для которой псевдостоимость больше
стоимости).
Слайд 44После этого заново подсчитываются платежи и псевдостоимости, и, если план
ещё не оптимален, процедура улучшения продолжается до тех пор, пока
не будет найден оптимальный план.
Так в нашем примере после 2 циклов расчетов получим оптимальный план. При этом стоимость всей перевозки изменялась следующим образом: F0=723, F1=709, F2=Fmin=703.
Следует отметить так же, что оптимальный план может иметь и другой вид, но его стоимость останется такой же Fmin = 703.