Сформулируем ЭММ этой задачи:
Пусть - объемы перевозок от - того поставщика - тому потребителю.
Целевая функция:
min f(x)=1х11+3х12+4х13+1х14+3х15+5х21+4х22+5х23+7х24+5х25+4х31+9х32+5х33+10х34+9х35=
=7х41+7х42+5х43+8х44+13х45+12х51+10х52+8х53+11х54+6х55
Функциональные ограничения
по поставщикам:
х11+х12+х13+х14+х15=100
х21+х22+х23+х24+х25=200
х31+х32+х33+х34+х35 =400
х41+х42+х43+х44+х45=200
х51+х52+х53+х54+х55 =100
по потребителям:
х11+х21+х31+х41+х51=100
х12+х22+х32+х42+х52=200
х13+х23+х33+х43+х53=200
х14+х24+х34+х44+х54=300
х15+х25+х35 +х45+х55=400
Проверим необходимое и достаточное условие разрешимости задачи.
∑a = 100 + 200 + 400 + 200 + 100 = 1000
∑b = 100 + 200 + 200 + 300 + 400 = 1200
Как видно, суммарная потребность груза в пунктах назначения меньше запасов груза на базах. Следовательно, модель исходной транспортной задачи является открытой. Чтобы получить закрытую модель, введем дополнительную (фиктивную) потребность, равной 200 (1200—1000).
Этап I. Поиск первого опорного плана.
1. Используя метод наименьшей стоимости, построим первый опорный план транспортной задачи.
Суть метода заключается в том, что из всей таблицы стоимостей выбирают наименьшую, и в клетку, которая ей соответствует, помещают меньшее из чисел ai, или bj.
|
|
Затем, из рассмотрения исключают либо строку, соответствующую поставщику, запасы которого полностью израсходованы, либо столбец, соответствующий потребителю, потребности которого полностью удовлетворены, либо и строку и столбец, если израсходованы запасы поставщика и удовлетворены потребности потребителя.
Из оставшейся части таблицы стоимостей снова выбирают наименьшую стоимость, и процесс распределения запасов продолжают, пока все запасы не будут распределены, а потребности удовлетворены.
Запасы | ||||||
3[100] | ||||||
4[100] | 5[100] | |||||
4[100] | 5[100] | 9[200] | ||||
8[200] | ||||||
6[100] | ||||||
0[100] | 0[100] | |||||
Потребности |
В результате получен первый опорный план, который является допустимым, так как все грузы из баз вывезены, потребность магазинов удовлетворена, а план соответствует системе ограничений транспортной задачи.
2. Подсчитаем число занятых клеток таблицы, их 10, а должно быть m + n - 1 = 10. Следовательно, опорный план является невырожденным.
Значение целевой функции для этого опорного плана равно:
F(x) = 3*100 + 4*100 + 5*100 + 4*100 + 5*100 + 9*200 + 8*200 + 6*100 + 0*100 + 0*100 = 6100
Этап II. Улучшение опорного плана.
Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.
u1 + v2 = 3; 0 + v2 = 3; v2 = 3
u2 + v2 = 4; 3 + u2 = 4; u2 = 1
|
|
u2 + v3 = 5; 1 + v3 = 5; v3 = 4
u3 + v3 = 5; 4 + u3 = 5; u3 = 1
u3 + v1 = 4; 1 + v1 = 4; v1 = 3
u3 + v5 = 9; 1 + v5 = 9; v5 = 8
u5 + v5 = 6; 8 + u5 = 6; u5 = -2
u6 + v5 = 0; 8 + u6 = 0; u6 = -8
u6 + v4 = 0; -8 + v4 = 0; v4 = 8
u4 + v4 = 8; 8 + u4 = 8; u4 = 0
v1=3 | v2=3 | v3=4 | v4=8 | v5=8 | |
u1=0 | 3[100] | ||||
u2=1 | 4[100] | 5[100] | |||
u3=1 | 4[100] | 5[100] | 9[200] | ||
u4=0 | 8[200] | ||||
u5=-2 | 6[100] | ||||
u6=-8 | 0[100] | 0[100] |
Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vj > cij
(1;1): 0 + 3 > 1; ∆11 = 0 + 3 - 1 = 2
(1;4): 0 + 8 > 1; ∆14 = 0 + 8 - 1 = 7
(1;5): 0 + 8 > 3; ∆15 = 0 + 8 - 3 = 5
(2;4): 1 + 8 > 7; ∆24 = 1 + 8 - 7 = 2
(2;5): 1 + 8 > 5; ∆25 = 1 + 8 - 5 = 4
max(2,7,5,2,4) = 7
Выбираем максимальную оценку свободной клетки (1;4): 1
Для этого в перспективную клетку (1;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
Запасы | ||||||
3[100][-] | 1[+] | |||||
4[100][+] | 5[100][-] | |||||
4[100] | 5[100][+] | 9[200][-] | ||||
8[200] | ||||||
6[100] | ||||||
0[100][-] | 0[100][+] | |||||
Потребности |
Цикл приведен в таблице (1,4 → 1,2 → 2,2 → 2,3 → 3,3 → 3,5 → 6,5 → 6,4).
Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т.е. у = min (6, 4) = 100. Прибавляем 100 к объемам грузов, стоящих в плюсовых клетках и вычитаем 100 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.
Запасы | ||||||
3[0] | 1[100] | |||||
4[200] | 5[0] | |||||
4[100] | 5[200] | 9[100] | ||||
8[200] | ||||||
6[100] | ||||||
0[200] | ||||||
Потребности |
Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.
u1 + v2 = 3; 0 + v2 = 3; v2 = 3
u2 + v2 = 4; 3 + u2 = 4; u2 = 1
u2 + v3 = 5; 1 + v3 = 5; v3 = 4
u3 + v3 = 5; 4 + u3 = 5; u3 = 1
u3 + v1 = 4; 1 + v1 = 4; v1 = 3
u3 + v5 = 9; 1 + v5 = 9; v5 = 8
u5 + v5 = 6; 8 + u5 = 6; u5 = -2
u6 + v5 = 0; 8 + u6 = 0; u6 = -8
u1 + v4 = 1; 0 + v4 = 1; v4 = 1
u4 + v4 = 8; 1 + u4 = 8; u4 = 7
v1=3 | v2=3 | v3=4 | v4=1 | v5=8 | |
u1=0 | 3[0] | 1[100] | |||
u2=1 | 4[200] | 5[0] | |||
u3=1 | 4[100] | 5[200] | 9[100] | ||
u4=7 | 8[200] | ||||
u5=-2 | 6[100] | ||||
u6=-8 | 0[200] |
Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vj > cij
(1;1): 0 + 3 > 1; ∆11 = 0 + 3 - 1 = 2
(1;5): 0 + 8 > 3; ∆15 = 0 + 8 - 3 = 5
(2;5): 1 + 8 > 5; ∆25 = 1 + 8 - 5 = 4
(4;1): 7 + 3 > 7; ∆41 = 7 + 3 - 7 = 3
(4;2): 7 + 3 > 7; ∆42 = 7 + 3 - 7 = 3
(4;3): 7 + 4 > 5; ∆43 = 7 + 4 - 5 = 6
(4;5): 7 + 8 > 13; ∆45 = 7 + 8 - 13 = 2
max(2,5,4,3,3,6,2) = 6
Выбираем максимальную оценку свободной клетки (4;3): 5
Для этого в перспективную клетку (4;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
Запасы | ||||||
3[0][-] | 1[100][+] | |||||
4[200][+] | 5[0][-] | |||||
4[100] | 5[200] | 9[100] | ||||
5[+] | 8[200][-] | |||||
6[100] | ||||||
0[200] | ||||||
Потребности |
Цикл приведен в таблице (4,3 → 4,4 → 1,4 → 1,2 → 2,2 → 2,3).
Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т.е. у = min (1, 2) = 0. Прибавляем 0 к объемам грузов, стоящих в плюсовых клетках и вычитаем 0 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.
Запасы | ||||||
1[100] | ||||||
4[200] | 5[0] | |||||
4[100] | 5[200] | 9[100] | ||||
5[0] | 8[200] | |||||
6[100] | ||||||
0[200] | ||||||
Потребности |
Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.
|
|
u1 + v4 = 1; 0 + v4 = 1; v4 = 1
u4 + v4 = 8; 1 + u4 = 8; u4 = 7
u4 + v3 = 5; 7 + v3 = 5; v3 = -2
u2 + v3 = 5; -2 + u2 = 5; u2 = 7
u2 + v2 = 4; 7 + v2 = 4; v2 = -3
u3 + v3 = 5; -2 + u3 = 5; u3 = 7
u3 + v1 = 4; 7 + v1 = 4; v1 = -3
u3 + v5 = 9; 7 + v5 = 9; v5 = 2
u5 + v5 = 6; 2 + u5 = 6; u5 = 4
u6 + v5 = 0; 2 + u6 = 0; u6 = -2
v1=-3 | v2=-3 | v3=-2 | v4=1 | v5=2 | |
u1=0 | 1[100] | ||||
u2=7 | 4[200] | 5[0] | |||
u3=7 | 4[100] | 5[200] | 9[100] | ||
u4=7 | 5[0] | 8[200] | |||
u5=4 | 6[100] | ||||
u6=-2 | 0[200] |
Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vj > cij
(2;4): 7 + 1 > 7; ∆24 = 7 + 1 - 7 = 1
(2;5): 7 + 2 > 5; ∆25 = 7 + 2 - 5 = 4
max(1,4) = 4
Выбираем максимальную оценку свободной клетки (2;5): 5
Для этого в перспективную клетку (2;5) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
Запасы | ||||||
1[100] | ||||||
4[200] | 5[0][-] | 5[+] | ||||
4[100] | 5[200][+] | 9[100][-] | ||||
5[0] | 8[200] | |||||
6[100] | ||||||
0[200] | ||||||
Потребности |
Цикл приведен в таблице (2,5 → 2,3 → 3,3 → 3,5).
Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т.е. у = min (2, 3) = 0. Прибавляем 0 к объемам грузов, стоящих в плюсовых клетках и вычитаем 0 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.
Запасы | ||||||
1[100] | ||||||
4[200] | 5[0] | |||||
4[100] | 5[200] | 9[100] | ||||
5[0] | 8[200] | |||||
6[100] | ||||||
0[200] | ||||||
Потребности |
Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.
u1 + v4 = 1; 0 + v4 = 1; v4 = 1
u4 + v4 = 8; 1 + u4 = 8; u4 = 7
u4 + v3 = 5; 7 + v3 = 5; v3 = -2
u3 + v3 = 5; -2 + u3 = 5; u3 = 7
u3 + v1 = 4; 7 + v1 = 4; v1 = -3
u3 + v5 = 9; 7 + v5 = 9; v5 = 2
u2 + v5 = 5; 2 + u2 = 5; u2 = 3
u2 + v2 = 4; 3 + v2 = 4; v2 = 1
u5 + v5 = 6; 2 + u5 = 6; u5 = 4
u6 + v5 = 0; 2 + u6 = 0; u6 = -2
v1=-3 | v2=1 | v3=-2 | v4=1 | v5=2 | |
u1=0 | 1[100] | ||||
u2=3 | 4[200] | 5[0] | |||
u3=7 | 4[100] | 5[200] | 9[100] | ||
u4=7 | 5[0] | 8[200] | |||
u5=4 | 6[100] | ||||
u6=-2 | 0[200] |
Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vj > cij
|
|
(4;2): 7 + 1 > 7; ∆42 = 7 + 1 - 7 = 1
Выбираем максимальную оценку свободной клетки (4;2): 7
Для этого в перспективную клетку (4;2) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
Запасы | ||||||
1[100] | ||||||
4[200][-] | 5[0][+] | |||||
4[100] | 5[200][+] | 9[100][-] | ||||
7[+] | 5[0][-] | 8[200] | ||||
6[100] | ||||||
0[200] | ||||||
Потребности |
Цикл приведен в таблице (4,2 → 4,3 → 3,3 → 3,5 → 2,5 → 2,2).
Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т.е. у = min (4, 3) = 0. Прибавляем 0 к объемам грузов, стоящих в плюсовых клетках и вычитаем 0 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.
Запасы | ||||||
1[100] | ||||||
4[200] | 5[0] | |||||
4[100] | 5[200] | 9[100] | ||||
7[0] | 8[200] | |||||
6[100] | ||||||
0[200] | ||||||
Потребности |
Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.
u1 + v4 = 1; 0 + v4 = 1; v4 = 1
u4 + v4 = 8; 1 + u4 = 8; u4 = 7
u4 + v2 = 7; 7 + v2 = 7; v2 = 0
u2 + v2 = 4; 0 + u2 = 4; u2 = 4
u2 + v5 = 5; 4 + v5 = 5; v5 = 1
u3 + v5 = 9; 1 + u3 = 9; u3 = 8
u3 + v1 = 4; 8 + v1 = 4; v1 = -4
u3 + v3 = 5; 8 + v3 = 5; v3 = -3
u5 + v5 = 6; 1 + u5 = 6; u5 = 5
u6 + v5 = 0; 1 + u6 = 0; u6 = -1
v1=-4 | v2=0 | v3=-3 | v4=1 | v5=1 | |
u1=0 | 1[100] | ||||
u2=4 | 4[200] | 5[0] | |||
u3=8 | 4[100] | 5[200] | 9[100] | ||
u4=7 | 7[0] | 8[200] | |||
u5=5 | 6[100] | ||||
u6=-1 | 0[200] |
Опорный план является оптимальным, так все оценки свободных клеток удовлетворяют условию ui + vj ≤ cij.
Минимальные затраты составят: F(x) = 1*100 + 4*200 + 4*100 + 5*200 + 9*100 + 8*200 + 6*100 + 0*200 = 5400