Стоимости всех фиктивных перевозок полагают равными нулю. Таким образом, задача открытого типа легко сводится к задаче закрытого типа.
Поскольку транспортная задача (ТЗ) является задачей линейного программирования, она может быть решена симплекс-методом. Но в силу специфики задачи (каждая переменная входит лишь в два уравнения системы (2), (3) и коэффициенты при переменных равны единице) оптимальный план ТЗ может быть получен путем некоторых преобразований транспортной таблицы. Как и в общем случае, оптимальный план ищется среди опорных решений.
Число переменных хij в ТЗ с m пунктами отправления и n пунктами назначения равно mn, а число уравнений в системах (2) и (3) равно m+n. Так как в закрытой ТЗ выполняется условие (5), то число линейно-независимых уравнений равно m+n–1. Следовательно, опорный план ТЗ может иметь не более m+n–1 отличных от нуля переменных. Это – базисные переменные.
Если в опорном плане число отличных от нуля переменных равно в точности равно m+n–1, то план является невырожденным, а если меньше – то вырожденным.
Для определения опорного плана существует несколько методов. Рассмотрим два из них – метод северо-западного угла и метод минимальной стоимости.
В методе северо-западного угла (МСЗУ) будем распределять товар, начиная с левой верхней клетки (1,1) и полагая х11= min(a1, b1) (табл. 1). Если a1 > b1, то х11= b1 и потребитель В1 будет полностью удовлетворён, и значит, надо положить хi1= 0, i = 2 m («столбец 1 закрыт»). Переходим в соседнюю ячейку. Соседней здесь считается открытая ячейка снизу или справа от данной – в данном случае это ячейка (1,2). Она заполняется с учётом того, что запас пункта А1 сократился на величину b1 и составляет a1–b1.
Если же b1 > a1, то запас поставщика А1 полностью исчерпан, и значит, надо положить х1j = 0, j = 2 n («строка 1 закрыта»). Переходим в соседнюю ячейку – ячейку (2,1), учитывая, что потребность пункта В1 сократилась на величину a1 и составляет b1–a1. Аналогичным образом заполняются ячейки (1,2) или (2,1) и т. д. Последней заполняется ячейка (m, n). Рассмотрим применение этого метода на примере.
Пример 1. Условия ТЗ заданы транспортной таблицей (табл. 2). Требуется составить опорный план перевозок методом северо-запад-ного угла.
Проверим, является
ли задача закрытой. Так как
=
130 не равна
=
110, то ТЗ – открытая. Вводим фиктивного
потребителя В5,
b5
=
–
=
20 (табл. 3).
Таблица 2 Таблица 3
|
Вj Аi |
30 |
25 |
35 |
20 |
|
Вj Аi |
30 |
25 |
35 |
20 |
20 |
|
50 |
3 |
2 |
4 |
1 |
50 |
3 |
2 |
4 |
1 |
0 |
|
|
10 |
2 |
3 |
1 |
5 |
10 |
2 |
3 |
1 |
5 |
0 |
|
|
20 |
3 |
2 |
4 |
4 |
20 |
3 |
2 |
4 |
4 |
0 |
|
|
50 |
5 |
3 |
2 |
6 |
50 |
5 |
3 |
2 |
6 |
0 |
Будем заполнять таблицу поэтапно.
Этап 1. х11= min (а1, b1) = min(50,30) = 30. Закрыт 1-й столбец. Переходим в соседнюю ячейку (1,2) (табл. 4).
|
Таблица 4 |
|||||
|
Вj Аi |
30 |
25 |
35 |
20 |
20 |
|
50 |
3 30 |
2 20 |
4 – |
1 – |
0 – |
|
10 |
2 – |
3 5 |
1 5 |
5 – |
0 – |
|
20 |
3 – |
2 – |
4 20 |
4 – |
0 – |
|
50 |
5 – |
3 – |
2 10 |
6 20 |
0 20 |
Этап 2. х12 = min (а1–b1, b2) = min(20,25) = 20. Закрыта 1-я строка. Переходим в соседнюю ячейку (2,2).
Этап 3. х22 = min(10,5)= 5. Закрыт 2-й столбец. Переходим в соседнюю ячейку (2,3).
Этап 4. х23 = min(5,35)= 5. Закрыта 2-я строка. Переходим в соседнюю ячейку (3,3).
Этап 5. х33 = min(20,30)= 20. Закрыта 3-я строка. Переходим в соседнюю ячейку (4,3).
Этап 6. х43 = min(50,10)=10. Закрыт 3-й столбец. Переходим в соседнюю ячейку (4,4).
Этап 7. х44 = min(40,20)=20. Закрыт 4-й столбец. Переходим в соседнюю ячейку (4,5).
Этап 8. х45 = min(20,20)=20. Закрыты 5-й столбец и 4-я строка. Заполнение таблицы закончено. Отметим, что число заполненных (базисных) клеток равно m+n–1 = 8, т. е. действительно построен опорный план перевозок.
Получен начальный опорный план с матрицей перевозок
Хс-з=
(фиктивные поставщики и потребители в матрице перевозок не указываются). По этому плану из пункта А1 завезено 30 ед. груза в В1, 20 – в В2, из А2 завезено 5 ед. груза в В2 и 5 – в В3, из А3 все 20 ед. груза завезены в В3, из А4 завезено 10 ед. груза в В3 и 20 – в В4. Груз в количестве 20 ед., «завезённый» в фиктивный пункт В5, на самом деле остался в А4. Затраты по плану Хс-з составляют
zс-з = 330 + 220 + 35 + 15 + 420 + 210 + 620 = 370 (ден. ед.).
Замечание 1. При использовании МСЗУ на каждом этапе, кроме последнего, закрывалась либо строка (т. е. один из поставщиков), либо столбец (т.е. один из потребителей). Может оказаться, что на некотором (не последнем) шаге будут одновременно закрываться и строка, и столбец. Тогда в одну из соседних ячеек (желательно с меньшим тарифом) необходимо поставить нуль в явном виде. Эта ячейка в дальнейшем считается базисной (вырожденная задача).
Замечание 2. При использовании МСЗУ заполнение таблицы происходит чисто механически слева направо и сверху вниз без учёта тарифов перевозок. Поэтому полученный опорный план обычно далёк от оптимального. В рассматриваемом далее методе – минимальной стоимости (ММС) – порядок заполнения таблицы зависит от тарифов.
При построении опорного плана этим методом сначала заполняется ячейка таблицы с минимальной стоимостью (если таковых несколько, то можно начинать с любой из них; обычно по порядку – слева направо и сверху вниз). При этом либо удовлетворяется заявка соответствующего потребителя, либо исчерпывается запас поставщика. Далее ячейки заполняются в порядке возрастания стоимостей.
Пример 2. Рассмотрим применение ММС на решении той же ТЗ, что в примере 1 (табл. 2 и 3), и будем поэтапно заполнять табл. 3.
Этап 1. Начинаем, например, с ячейки (1,5), в которой мы имеем одну из минимальных стоимостей перевозки (с15 = 0): х15 = min(а1, b5) = min(50,20) = 20. Закрыт 5-й столбец. Переходим в соседнюю ячейку (табл. 5).
|
Таблица 5 |
|||||
|
Вj Аi |
30 |
25 |
35 |
20 |
20 |
|
50 |
3 – |
2 10 |
4 – |
1 20 |
0 20 |
|
10 |
2 – |
3 – |
1 10 |
5 – |
0 – |
|
20 |
3 5 |
2 15 |
4 – |
4 – |
0 – |
|
50 |
5 25 |
3 – |
2 25 |
6 – |
0 – |
Этап 2. Среди оставшихся ячеек заполняем ячейку (1,4), имеющую одну из минимальных стоимостей (с14 = 1): минимальных стоимостей (с14 = 1): х14 = min (а1–b5, b4) = min (30, 20) = 20. Закрыт 4-й столбец. Переходим в соседнюю ячейку.
Этап 3. Среди оставшихся ячеек заполняем ячейку (2,3), имею-щую минимальную стоимость (с23 = 1): х23 = min(а2, b3) = min (10, 35) = 10. Закрыта 2-я строка. Переходим в соседнюю ячейку.
Этап 4. Среди оставшихся ячеек одну из минимальных стоимостей имеет ячейка (1,2), с12=2. Поэтому х12 = min(а1–b4–b5, b2) = = min(10,25) = 10. Закрыта 1-я строка. Переходим в соседнюю ячейку).
Этап 5. Среди оставшихся ячеек заполняем ячейку (3, 2), име-ющую одну из минимальных стоимостей (с32 = 2): х32 = min(20,15) = 15. Закрыт 2-й столбец. Переходим в соседнюю ячейку.
Этап 6. Среди оставшихся ячеек заполняем ячейку (4,3), имею-щую х43 = min(50, 25) = 25. Закрыт 3-й столбец. Переходим в соседнюю ячейку.
Этап 7. Среди оставшихся ячеек заполняем ячейку (3, 1), имеющую минимальную стоимость (с31 = 3): х31 = min(5, 30) = 5. Закрыта 3-я строка. Переходим в соседнюю (последнюю) ячейку (4,1).
Этап 8. х41 = min(25, 25) = 25. Закрыты 1-й столбец и 4-я строка. Заполнение таблицы закончено. Число заполненных (базисных) клеток равно m+n–1 = 8 , т. е. действительно построен опорный план.
Получен начальный опорный план с матрицей перевозок
Хм.ст =

(фиктивные поставщики и потребители в матрице перевозок не указываются). По этому плану из пункта А1 завезено 10 ед. груза в В2 из А2 завезено 10 ед. груза в В3, из А3 – 5 ед. груза завезено в В1 и 15 – в В2, из А4 завезено по 25 ед. груза в В1 и В3. Те 20 ед. груза, «завезённые» в фиктивный пункт В5, на самом деле остались в А1. Затраты по плану Хм.ст составляют zм.ст = 210+120+110+35+215+525+225 = = 270 (ден. ед.), что на 100 ед. меньше, чем в МСЗУ.
Для ММС также справедливо замечание 2 (о нулевом базисном элементе), только здесь изменяется понятие соседней ячейки. Ячейкой, соседней с данной, считается любая открытая ячейка в данной строке и в данном столбце.
При решении ТЗ, как и при решении любой задачи линейного программирования (ЛП), осуществляется последовательный переход от одного опорного плана (если оно не оптимально) к другому. Для проверки оптимальности полученного плана воспользуемся теорией двойственности. Составим к прямой ТЗ двойственную и запишем их в табл. 6.
Таблица 6
|
Прямая задача |
Двойственная задача |
|
z
= |
W
= |
|
|
ui не ограничена в знаке i = 1m |
|
|
vj не ограничена в знаке j = 1n |
|
|
|