Транспортная задача. Пример решения

см. также решение методом потенциалов

Решить ТЗ распределительным методом.
Распределительный метод заключается в нахождении оценок циклов пересчета для всех свободных клеток транспортной таблицы. Если оценка цикла отрицательна, то решение задачи можно улучшить путем переноса перевозки xij по циклу. Если оценки для всех циклов неотрицательны, то решение оптимально.

Стоимость доставки единицы груза из каждого пункта отправления в соответствующие пункты назначения задана матрицей тарифов
Распределительный метод является одним из вариантов базового симплексного метода. Поэтому идея распределительного метода (как и симплексного) содержит такие же три существенных момента.
Прежде всего отыскивается какое-то решение задачи — исходный опорный план. Затем посредством специальных показателей опорный план проверяется на оптимальность. Если план оказывается не оптимальным, переходят к другому плану. При этом второй и последующие планы должны быть лучше предыдущего. Так за несколько последовательных переходов от не оптимального плана приходят к оптимальному.

1 2 3 4 Запасы
1 6 6 3 5 80
2 5 4 4 3 105
3 6 5 6 4 125
4 8 4 2 4 90
Потребности 110 130 160 120

Проверим необходимое и достаточное условие разрешимости задачи.
∑ a = 80 + 105 + 125 + 90 = 400
∑ b = 110 + 130 + 160 + 120 = 520
Как видно, суммарная потребность груза в пунктах назначения меньше запасов груза на базах. Следовательно, модель исходной транспортной задачи является открытой. Чтобы получить закрытую модель, введем дополнительную (фиктивную) потребность, равным 120 (520—400). Тарифы перевозки единицы груза из базы во все магазины полагаем равны нулю.
Занесем исходные данные в распределительную таблицу.
1 2 3 4 Запасы
1 6 6 3 5 80
2 5 4 4 3 105
3 6 5 6 4 125
4 8 4 2 4 90
5 0 0 0 0 120
Потребности 110 130 160 120

Первая итерация заключается в определении исходного опорного плана и проверке его на оптимальность.
Определение исходного опорного плана. Первый опорный план может быть найден посредством различных способов: по правилу северо-западного угла, приоритету ближайших пунктов, способу минимального элемента С=(cij), способу Фогеля и по способу Лебедева-Тихомирова.
1. Используя метод наименьшей стоимости, построим первый опорный план транспортной задачи.
1 2 3 4 Запасы
1 6[10] 6 3[70] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8 4 2[90] 4 90
5 0[100] 0[20] 0 0 120
Потребности 110 130 160 120

В результате получен первый опорный план, который является допустимым, так как все грузы из баз вывезены, потребность магазинов удовлетворена, а план соответствует системе ограничений транспортной задачи.
2. Подсчитаем число занятых клеток таблицы, их 8, а должно быть m + n - 1 = 8. Следовательно, опорный план является невырожденным.
Значение целевой функции для этого опорного плана равно:
F(x) = 6*10 + 3*70 + 3*105 + 5*110 + 4*15 + 2*90 + 0*100 + 0*20  = 1375
Проверка опорного плана на оптимальность. Чтобы установить является ли опорный план оптимальным, надо проверить, как повлияет на величину целевой функции любое возможное перераспределение поставок.
План распределения поставок будет оптимальным лишь в том случае, когда целевая функция имеет минимальное значение, т.е. когда дальнейшее уменьшение затрат на поставку будет невозможно.
Проверим возможность уменьшения суммарных затрат на поставку продукции. С этой целью для каждой свободной от поставки клетки определяется величина Δij, характеризующая изменение суммарных затрат на поставку (в расчете на единицу перераспределяемой продукции), при условии включения в план единичной поставки хij=1 от поставщика Аi к потребителю Вj.
При этом должно быть произведено такое изменение остальных поставок, чтобы получившаяся совокупность поставок не нарушала баланса спроса и поставок транспортной задачи.
Величина Δ ij называется оценкой свободной клетки (или характеристика).
В исходном решении задачи имеются клетки свободные от поставок.
Необходимо вычислить значение оценок Δij для этих свободных от поставок клеток. С этой целью для каждой свободной клетки составляется означенный цикл перерасчета (или замкнутая цепь, круг, кольцо, контур и т.д.).
Под циклом пересчета (цепью) понимается замкнутая ломаная линия. Вершинами цикла (цепи) являются клетки таблицы, проще – вершины лежат в клетках таблицы.
Причем одна из вершин находится в свободной от поставки клетке, в той, для которой определяется оценка Δij. Все другие вершины находятся в базисных клетках, т.е. клетках, занятых поставками.
Вершины, в которых поставки при перераспределении увеличиваются, отмечаются плюсом и называются положительными вершинами и, наоборот, вершины, в которых поставки при перераспределении уменьшаются отмечаются минусом и называются отрицательными вершинами.
В цикле знаки по вершинам расставляют начиная с вершины, лежащей в свободной клетке, для которой определяется Δij. В нее записывают знак плюс, затем знаки по вершинам чередуются: минус, плюс , минус, плюс и т. д., независимо от того, расставляют ли их по часовой стрелке или в обратном направлении. Таким образом, в цикле всегда насчитывается одинаковое число положительных и отрицательных вершин.
Следующий этап решения транспортной задачи заключается в улучшении опорного плана.
Если при каком-то опорном плане оказывается несколько свободных клеток с отрицательными оценками Δij, то за один переход к лучшему плану можно занять поставкой только одну клетку – ту, которая обеспечивает наибольшее снижение целевой функции.
4. Определяем оценку для каждой свободной клетки.
В свободную клетку (1;2) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10][-] 6[+] 3[70] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8 4 2[90] 4 90
5 0[100][+] 0[20][-] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (1,2; 1,1; 5,1; 5,2; ).
Оценка свободной клетки равна Δ12 = (6) - (6) + (0) - (0) = 0
В свободную клетку (1;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10][-] 6 3[70] 5[+] 80
2 5 4 4 3[105] 105
3 6 5[110][+] 6 4[15][-] 125
4 8 4 2[90] 4 90
5 0[100][+] 0[20][-] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (1,4; 1,1; 5,1; 5,2; 3,2; 3,4; ).
Оценка свободной клетки равна Δ14 = (5) - (6) + (0) - (0) + (5) - (4) = 0
В свободную клетку (2;1) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10] 6 3[70] 5 80
2 5[+] 4 4 3[105][-] 105
3 6 5[110][-] 6 4[15][+] 125
4 8 4 2[90] 4 90
5 0[100][-] 0[20][+] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (2,1; 2,4; 3,4; 3,2; 5,2; 5,1; ).
Оценка свободной клетки равна Δ21 = (5) - (3) + (4) - (5) + (0) - (0) = 1
В свободную клетку (2;2) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10] 6 3[70] 5 80
2 5 4[+] 4 3[105][-] 105
3 6 5[110][-] 6 4[15][+] 125
4 8 4 2[90] 4 90
5 0[100] 0[20] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (2,2; 2,4; 3,4; 3,2; ).
Оценка свободной клетки равна Δ22 = (4) - (3) + (4) - (5) = 0
В свободную клетку (2;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10][+] 6 3[70][-] 5 80
2 5 4 4[+] 3[105][-] 105
3 6 5[110][-] 6 4[15][+] 125
4 8 4 2[90] 4 90
5 0[100][-] 0[20][+] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (2,3; 2,4; 3,4; 3,2; 5,2; 5,1; 1,1; 1,3; ).
Оценка свободной клетки равна Δ23 = (4) - (3) + (4) - (5) + (0) - (0) + (6) - (3) = 3
В свободную клетку (3;1) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10] 6 3[70] 5 80
2 5 4 4 3[105] 105
3 6[+] 5[110][-] 6 4[15] 125
4 8 4 2[90] 4 90
5 0[100][-] 0[20][+] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (3,1; 3,2; 5,2; 5,1; ).
Оценка свободной клетки равна Δ31 = (6) - (5) + (0) - (0) = 1
В свободную клетку (3;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10][+] 6 3[70][-] 5 80
2 5 4 4 3[105] 105
3 6 5[110][-] 6[+] 4[15] 125
4 8 4 2[90] 4 90
5 0[100][-] 0[20][+] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (3,3; 3,2; 5,2; 5,1; 1,1; 1,3; ).
Оценка свободной клетки равна Δ33 = (6) - (5) + (0) - (0) + (6) - (3) = 4
В свободную клетку (4;1) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10][-] 6 3[70][+] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8[+] 4 2[90][-] 4 90
5 0[100] 0[20] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (4,1; 4,3; 1,3; 1,1; ).
Оценка свободной клетки равна Δ41 = (8) - (2) + (3) - (6) = 3
В свободную клетку (4;2) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10][-] 6 3[70][+] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8 4[+] 2[90][-] 4 90
5 0[100][+] 0[20][-] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (4,2; 4,3; 1,3; 1,1; 5,1; 5,2; ).
Оценка свободной клетки равна Δ42 = (4) - (2) + (3) - (6) + (0) - (0) = -1
В свободную клетку (4;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10][-] 6 3[70][+] 5 80
2 5 4 4 3[105] 105
3 6 5[110][+] 6 4[15][-] 125
4 8 4 2[90][-] 4[+] 90
5 0[100][+] 0[20][-] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (4,4; 4,3; 1,3; 1,1; 5,1; 5,2; 3,2; 3,4; ).
Оценка свободной клетки равна Δ44 = (4) - (2) + (3) - (6) + (0) - (0) + (5) - (4) = 0
В свободную клетку (5;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10][+] 6 3[70][-] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8 4 2[90] 4 90
5 0[100][-] 0[20] 0[+] 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (5,3; 5,1; 1,1; 1,3; ).
Оценка свободной клетки равна Δ53 = (0) - (0) + (6) - (3) = 3
В свободную клетку (5;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[10] 6 3[70] 5 80
2 5 4 4 3[105] 105
3 6 5[110][+] 6 4[15][-] 125
4 8 4 2[90] 4 90
5 0[100] 0[20][-] 0 0[+] 120
Потребности 110 130 160 120

Цикл приведен в таблице (5,4; 5,2; 3,2; 3,4; ).
Оценка свободной клетки равна Δ54 = (0) - (0) + (5) - (4) = 1
Опорный план является неоптимальным, поскольку имеются отрицательны оценки клеток (4,2;) равные: (-1).
Переход от неоптимального опорного плана к лучшему .
Поскольку в исходном опорном плане рассматриваемой задачи свободная клетка (4;2) имеет отрицательную оценку, то для получения плана, обеспечивающего меньшее значение целевой функции, эту клетку следует занять возможно большей поставкой, не нарушающей при этом условий допустимости плана.
Из грузов х ij стоящих в минусовых клетках, выбираем наименьшее, т.е. у = min (1, 1) = 10. Прибавляем 10 к объемам грузов, стоящих в плюсовых клетках и вычитаем 10 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8 4[10] 2[80] 4 90
5 0[110] 0[10] 0 0 120
Потребности 110 130 160 120

F(x) = 3*80 + 3*105 + 5*110 + 4*15 + 4*10 + 2*80 + 0*110 + 0*10  = 1365
4. Определяем оценку для каждой свободной клетки.
В свободную клетку (1;1) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6[+] 6 3[80][-] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8 4[10][-] 2[80][+] 4 90
5 0[110][-] 0[10][+] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (1,1; 1,3; 4,3; 4,2; 5,2; 5,1; ).
Оценка свободной клетки равна Δ11 = (6) - (3) + (2) - (4) + (0) - (0) = 1
В свободную клетку (1;2) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6[+] 3[80][-] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8 4[10][-] 2[80][+] 4 90
5 0[110] 0[10] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (1,2; 1,3; 4,3; 4,2; ).
Оценка свободной клетки равна Δ12 = (6) - (3) + (2) - (4) = 1
В свободную клетку (1;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80][-] 5[+] 80
2 5 4 4 3[105] 105
3 6 5[110][+] 6 4[15][-] 125
4 8 4[10][-] 2[80][+] 4 90
5 0[110] 0[10] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (1,4; 1,3; 4,3; 4,2; 3,2; 3,4; ).
Оценка свободной клетки равна Δ14 = (5) - (3) + (2) - (4) + (5) - (4) = 1
В свободную клетку (2;1) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5[+] 4 4 3[105][-] 105
3 6 5[110][-] 6 4[15][+] 125
4 8 4[10] 2[80] 4 90
5 0[110][-] 0[10][+] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (2,1; 2,4; 3,4; 3,2; 5,2; 5,1; ).
Оценка свободной клетки равна Δ21 = (5) - (3) + (4) - (5) + (0) - (0) = 1
В свободную клетку (2;2) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5 4[+] 4 3[105][-] 105
3 6 5[110][-] 6 4[15][+] 125
4 8 4[10] 2[80] 4 90
5 0[110] 0[10] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (2,2; 2,4; 3,4; 3,2; ).
Оценка свободной клетки равна Δ22 = (4) - (3) + (4) - (5) = 0
В свободную клетку (2;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5 4 4[+] 3[105][-] 105
3 6 5[110][-] 6 4[15][+] 125
4 8 4[10][+] 2[80][-] 4 90
5 0[110] 0[10] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (2,3; 2,4; 3,4; 3,2; 4,2; 4,3; ).
Оценка свободной клетки равна Δ23 = (4) - (3) + (4) - (5) + (4) - (2) = 2
В свободную клетку (3;1) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5 4 4 3[105] 105
3 6[+] 5[110][-] 6 4[15] 125
4 8 4[10] 2[80] 4 90
5 0[110][-] 0[10][+] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (3,1; 3,2; 5,2; 5,1; ).
Оценка свободной клетки равна Δ31 = (6) - (5) + (0) - (0) = 1
В свободную клетку (3;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5 4 4 3[105] 105
3 6 5[110][-] 6[+] 4[15] 125
4 8 4[10][+] 2[80][-] 4 90
5 0[110] 0[10] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (3,3; 3,2; 4,2; 4,3; ).
Оценка свободной клетки равна Δ33 = (6) - (5) + (4) - (2) = 3
В свободную клетку (4;1) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8[+] 4[10][-] 2[80] 4 90
5 0[110][-] 0[10][+] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (4,1; 4,2; 5,2; 5,1; ).
Оценка свободной клетки равна Δ41 = (8) - (4) + (0) - (0) = 4
В свободную клетку (4;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5 4 4 3[105] 105
3 6 5[110][+] 6 4[15][-] 125
4 8 4[10][-] 2[80] 4[+] 90
5 0[110] 0[10] 0 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (4,4; 4,2; 3,2; 3,4; ).
Оценка свободной клетки равна Δ44 = (4) - (4) + (5) - (4) = 1
В свободную клетку (5;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5 4 4 3[105] 105
3 6 5[110] 6 4[15] 125
4 8 4[10][+] 2[80][-] 4 90
5 0[110] 0[10][-] 0[+] 0 120
Потребности 110 130 160 120

Цикл приведен в таблице (5,3; 5,2; 4,2; 4,3; ).
Оценка свободной клетки равна Δ53 = (0) - (0) + (4) - (2) = 2
В свободную клетку (5;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 2 3 4 Запасы
1 6 6 3[80] 5 80
2 5 4 4 3[105] 105
3 6 5[110][+] 6 4[15][-] 125
4 8 4[10] 2[80] 4 90
5 0[110] 0[10][-] 0 0[+] 120
Потребности 110 130 160 120

Цикл приведен в таблице (5,4; 5,2; 3,2; 3,4; ).
Оценка свободной клетки равна Δ54 = (0) - (0) + (5) - (4) = 1
Из приведенного расчета видно, что ни одна свободная клетка не имеет отрицательной оценки, следовательно, дальнейшее снижение целевой функции Fx невозможно, поскольку она достигла минимального значения.
Таким образом, последний опорный план является оптимальным.
Минимальные затраты составят:
F(x) = 3*80 + 3*105 + 5*110 + 4*15 + 4*10 + 2*80 + 0*110 + 0*10  = 1365
Если в оптимальном решении задачи имеется несколько оценок равных нулю, то это является свидетельством того, что среди бесчисленного множества решений этой задачи существуют еще решения, являющиеся также оптимальными, поскольку значение целевой функции остается одинаковым — минимальным. Их принято называть альтернативными.
Примечание. Основной алгоритм распределительного метода является не лучшим методом решения транспортных задач, так как на каждой итерации для проверки опорного плана на оптимальность приходилось строить [mп—(m+n—1)] циклов пересчета, что при больших размерах матрицы оказывается очень громоздким и трудоемким делом. Так, для расчетов по матрице 10х10 на каждой итерации надо строить 81 цикл, а по матрице 20x20 — 361 цикл.
загрузка...