Согласно данному плану перевозок функция цели – общая стоимость перевозок всего груза - составляет
f(х) = 5 20 + 4 10 + 1 70 + 3 10 + 1 40 + + 2 30 + 1 70 = 410.
Вырожденный план. При построении опорного плана нужно следить, чтобы сумма перевозок по каждой строке была равна соответствующим запасам, а сумма перевозок по каждому столбцу – потребности. Количество заполненных клеток равно m + n – 1. Если план вырожденный, т.е. если на очередном шаге запас аi равен потребности bj, в этом случае необходимо считать одну из клеток (либо справа, либо под последней заполненной клеткой) базисной со значением, равным нулю. Этот нуль вписывают, и соответствующая клетка считается занятой.
Пусть условия задачи заданы следующей таблицей.
|
|
|
|
|
|
Таблица 15 |
Пункты |
|
Пункты назначения |
|
|
Предложе- |
|
отправления |
В1 |
В2 |
В3 |
В4 |
|
ние |
|
5 |
4 |
2 |
|
5 |
|
А1 |
20 |
10 |
|
|
|
30 |
|
|
|
|
|
||
|
6 |
1 |
1 |
|
3 |
|
А2 |
|
70 |
|
|
|
70 |
|
|
|
|
|
|
|
|
2 |
3 |
1 |
|
8 |
|
А3 |
|
0 |
30 |
20 |
|
50 |
|
|
|
|
|||
|
6 |
3 |
|
|
1 |
|
А4 |
|
|
2 |
100 |
|
100 |
|
|
|
|
|
|
|
Спрос |
20 |
80 |
30 |
120 |
|
250 |
На первом шаге заполняем северо-западный угол, полагая Х11 = 20, клетки (2,1), (3,1) и (4,1) остаются свободными. На втором шаге полагаем Х12 = 10. Этим мы используем полностью запас пункта А1. Остальные клетки первой строки (1,3) и (1,4) остаются свободными. На третьем шаге рассматриваем перевозку Х22. Поскольку в этом случае запас пункта А2, равный 70, совпадает с оставшейся неудовлетворенной потребностью пункта В2, равной 70, то выбира-
120
ем Х22 = 70. Этим самым заполняется одновременно и вся вторая строка и весь второй столбец. В этом случае нужно считать одну из переменный Х23 или Х32 базисной со значением, равным нулю. Пусть Х32 = 0. Проставив в соответствующей клетке базисный нуль, мы получаем при продолжении процесса заполнения таблицы m + n
– 1 заполненную клетку. Если не проставить нулевую базисную переменную, окажется, что число занятых положительными перевозками клеток меньше, чем m + n – 1.
Метод минимального элемента. Выбор пунктов отправле-
ния и назначения можно производить иначе, ориентируясь на стоимость перевозок, т.е. на каждом шаге следует выбирать какуюнибудь клетку, отвечающую минимальной стоимости перевозки. Если таких клеток несколько, то можно выбрать любую.
Этот метод позволяет найти первоначальный опорный план с меньшей стоимостью перевозок, чем план, полученный методом северо-западного угла.
|
|
|
|
|
|
Таблица 16 |
|
Пункты |
|
Пункты назначения |
|
|
Предложе- |
|
|
отправления |
В1 |
В2 |
В3 |
В4 |
|
ние |
|
|
5 |
4 |
2 |
|
5 |
|
|
А1 |
10 |
|
20 |
|
|
30 |
|
|
|
|
|
|
|
||
|
6 |
1 |
1 |
|
3 |
|
|
А2 |
|
70 |
|
|
|
70 |
|
|
|
|
|
|
|
|
|
|
2 |
|
1 |
|
|
|
|
А3 |
|
3 |
50 |
|
8 |
50 |
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
1 |
|
|
А4 |
10 |
3 |
2 |
70 |
|
100 |
|
|
|
|
|
||||
|
|
20 |
|
|
|
|
|
Спрос |
20 |
90 |
70 |
70 |
|
- |
|
Порядок заполнения таблицы транспортной задачи: находим клетки с наименьшим значением стоимости перевозки и рассмотрим величину потребности и запаса для соответ-
121
ствующих пунктов. Заполним клетки (2,2), (3,3), (4,4) и подсчитаем остатки неизрасходованных запасов и величины неудовлетворенной потребности. Так, запасы пункта А2 полностью расходуются на удовлетворение потребности пункта В2, поэтому при нахождении первоначального опорного плана клетки второй строки, кроме (2,2), должны остаться свободными. Потребности пункта В2 остаются неудовлетворенными на 20 единиц груза, поэтому клетки второго столбца, кроме (2,2), могут быть заполнены перевозками. Аналогично рассматриваем заполнение клеток (3,3) и (4,4). Найдем свободные клетки с наименьшими стоимостями перевозок, которые могут быть заполнены, это, например, клетка (1,3) или (4,3). Заполним клетку (1,3) и подсчитаем остаток. Затем заполним клетку (4,2), на следующем шаге клетку (1,1) и, наконец, (4,1).
Значение функции цели для первоначального опорного
плана
f(х) = 10 5 + 20 2 + 70 1 + 50 1 + 10 6 + + 20 3 + 70 1 = 400.
Циклы пересчёта
Переход от одного опорного плана к другому в транспортной задаче сводится к тому, что, как и в симплекс-методе, надо ввести в базис новый вектор вместо выведенного базисного вектора. Это способствует тому, что одну из свободных клеток мы сделаем занятой, т.е. базисной, а одну из базисных
– свободной.
Пусть первоначальный опорный план задан в табл. 17.
122
|
|
|
|
|
|
Таблица 17 |
|
Пункты |
|
Пункты назначения |
|
|
Предложе- |
|
|
отправления |
В1 |
В2 |
В3 |
В4 |
|
ние |
|
|
5 |
4 |
2 |
|
5 |
|
|
А1 |
20 |
10 |
|
|
|
30 |
|
|
|
|
|
|
|
||
|
6 |
1 |
1 |
|
3 |
|
|
А2 |
|
70 |
|
|
|
70 |
|
|
|
|
|
|
|
|
|
|
2 |
3 |
1 |
|
8 |
|
|
А3 |
|
10 |
40 |
|
|
50 |
|
|
|
|
|
|
|
||
|
6 |
3 |
2 |
|
1 |
|
|
А4 |
|
|
30 |
70 |
|
100 |
|
|
|
|
|
|
|
||
Спрос |
20 |
90 |
70 |
70 |
|
|
|
|
|
|
|
|
|
|
|
Выберем одну из свободных клеток, например (4,1), и поместим в нее некоторую положительную величину перевозки . Поскольку число занятых клеток должно быть равно m + n - 1, то какую-то из занятых клеток необходимо освободить. Чтобы получить новый опорный план, необходимо пересчитать значения базисных переменных.
Для того, чтобы сумма перевозок в первом столбце не изменилась, нужно перевозку Х11 = 20 уменьшить на величину. Для того, чтобы при этом не изменилась сумма перевозок в первой строке, надо перевозку Х12 = 10 увеличить на и т.д.
Пересчет продолжается, пока мы не вернемся к тому значению , с которого начали, т.е. не замкнем цикл пересчета (таблица
2.6).
Данная операция называется сдвигом по циклу пересчета на величину . Значение выбирается равным наименьшему из тех перевозок, из которых вычитается. В нашем примере выбирается = 10; если взять > 10, то перевозка Х32 станет меньше нуля, а если взять < 10, то получим больше, чем m+n-1 отличную от нуля перевозку, т.е. новый план тогда не будет опорным.
123
|
|
|
|
|
|
|
|
|
|
|
Таблица 18 |
|
Пункты |
|
|
Пункты назначения |
|
|
Предложе- |
|
|||||
отправления |
|
В1 |
В2 |
|
|
В3 |
В4 |
|
ние |
|
||
|
5 |
4 |
|
|
|
|
|
|
5 |
|
|
|
А1 |
20 - |
10 + |
2 |
|
|
30 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
1 |
|
1 |
|
3 |
|
|
|||
А2 |
|
|
70 |
|
|
|
|
|
|
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
3 |
|
1 |
|
|
|
|
|||
А3 |
|
|
10 - |
|
40 |
|
+ |
|
8 |
50 |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
3 |
|
|
2 |
|
1 |
|
|
||
|
|
|
|
|
|
|
|
|||||
А4 |
|
30 - |
70 |
|
100 |
|
||||||
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
||
Спрос |
20 |
90 |
70 |
70 |
|
- |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Переход от одного опорного плана к другому связан с некоторым обходом по замкнутой ломаной линии, начало которой находится в свободной клетке, а все остальные вершины в некоторых базисных (занятых) клетках. Если ломаная линия, образующая цикл, пересекается сама с собой, то точки пересечения не являются вершинами. Циклы могут быть различной формы (рис. 64).
Вершин в цикле всегда четное число. Цикл, одна из вершин которого лежит в свободной клетке, а все остальные – в базисных, называется циклом пересчета данной свободной клетки.
Каждый опорный план обладает следующими свойствами:
1)не существует циклов, все вершины которых лежат в базисных клетках;
2)для каждой свободной клетки существует единственный цикл пересчета.
124