Академический Документы
Профессиональный Документы
Культура Документы
Транспортная задача
Транспортная задача является задачей линейного программирования. В общей постановке она
выглядит следующим образом:
имеется m пунктов отправления (поставщиков) с запасами единиц груза. Имеется n пунктов
назначения (потребителей) с потребностями. Груз из пунктов отправления должен быть доставлен
в пункты назначения. Известны транспортные издержки, связанные с перевозкой единицы груза из
пункта в пункт.
Требуется составить такой план перевозок, при котором весь груз из пунктов отправления был бы
доставлен потребителям и при этом спрос потребителей был бы удовлетворён, а транспортные
издержки были минимальными.
Цель контрольной работы - решить транспортную задачу и объяснить ход ее решения.
А2 7 1 2 3 1 200
200 0
А3 9 2 4 5 6 300
200 100 100
0
А4 1 3 6 4 10 100
100 0
А5 5 8 15 6 15 200
100 100 100
0
Потребности 100 200 200 300 100 900
0 0 0 200
100
0
100 0 0 0 0
0 200 0 0 0
0 0 0 100 0
определяем числа.
Если среди чисел αij нет положительных, то найденный опорный план является
оптимальным. Если же для некоторой свободной клетки αij>0, то данный опорный план
не является оптимальным и необходимо перейти к новому опорному плану. Для этого
рассматривают все свободные клетки, для которых αij>0 и среди данных чисел выбирают
максимальное. Клетку с данным числом следует заполнить.
Надо учитывать, что при заполнении данной клетки необходимо изменить объем поставок
в нескольких других клетках.
N = m+n−1 = 5+5-1=9 ≠ 7 – опорное решение вырожденное.
Этап II. Улучшение опорного плана.
Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vj. по
занятым клеткам таблицы, в которых ui + vj = cij, полагая, что u1 = 0.
Последовательно найдем значения потенциалов.
Значение одного потенциала необходимо задать. Пусть u3 = 0.
0 200
A 2 2 3 1 u2 = -1
7 1
0 200 100
A 3 9 6 u3 = 0
2 4 5
100
A 4 1 3 6 10 u4 = -1
4
100 100
A 5 5 8 15 u5 = 1
6 15
V v1 = 8 v2 = 2 v3 = 4 v4 = 5 v5 = 14
A3B2 : v2 + u3 = 2 v2 = 2 - 0 = 2
A3B3 : v3 + u3 = 4 v3 = 4 - 0 = 4
A3B4 : v4 + u3 = 5 v4 = 5 - 0 = 5
A4B4 : v4 + u4 = 4 u4 = 4 - 5 = -1
A5B4 : v4 + u5 = 6 u5 = 6 - 5 = 1
A5B5 : v5 + u5 = 15 v5 = 15 - 1 = 14
A2B2 : v2 + u2 = 1 u2 = 1 - 2 = -1
A2B1 : v1 + u2 = 7 v1 = 7 - (-1) = 8
A1B1 : v1 + u1 = 4 u1 = 4 - 8 = -4
Найдем оценки незадействованных маршрутов
A1B2 : Δ12 = c12 - ( u1 + v2 ) = 3 - ( -4 + 2 ) = 5
A1B3 : Δ13 = c13 - ( u1 + v3 ) = 5 - ( -4 + 4 ) = 5
A1B4 : Δ14 = c14 - ( u1 + v4 ) = 2 - ( -4 + 5 ) = 1
A1B5 : Δ15 = c15 - ( u1 + v5 ) = 3 - ( -4 + 14 ) = -7
A2B3 : Δ23 = c23 - ( u2 + v3 ) = 2 - ( -1 + 4 ) = -1
A2B4 : Δ24 = c24 - ( u2 + v4 ) = 3 - ( -1 + 5 ) = -1
A2B5 : Δ25 = c25 - ( u2 + v5 ) = 1 - ( -1 + 14 ) = -12
A3B1 : Δ31 = c31 - ( u3 + v1 ) = 9 - ( 0 + 8 ) = 1
A3B5 : Δ35 = c35 - ( u3 + v5 ) = 6 - ( 0 + 14 ) = -8
A4B1 : Δ41 = c41 - ( u4 + v1 ) = 1 - ( -1 + 8 ) = -6
A4B2 : Δ42 = c42 - ( u4 + v2 ) = 3 - ( -1 + 2 ) = 2
A4B3 : Δ43 = c43 - ( u4 + v3 ) = 6 - ( -1 + 4 ) = 3
A4B5 : Δ45 = c45 - ( u4 + v5 ) = 10 - ( -1 + 14 ) = -3
A5B1 : Δ51 = c51 - ( u5 + v1 ) = 5 - ( 1 + 8 ) = -4
A5B2 : Δ52 = c52 - ( u5 + v2 ) = 8 - ( 1 + 2 ) = 5
A5B3 : Δ53 = c53 - ( u5 + v3 ) = 15 - ( 1 + 4 ) = 10
Есть отрицательные оценки. Следовательно, возможно получить новое решение.
ШАГ №1.
Выберем ячейку A2B5, ее оценка отрицательная. Используя только горизонтальные и
вертикальные перемещения курсора, соединим непрерывной линией заполненные ячейки
так, чтобы вернуться в исходную ячейку A2B5
Ячейки, расположенные в вершинах построенной ломаной линии, образуют цикл для
выбранной ячейки. Он единственный. Направление обхода не имеет значения.
Пункты назначения
Пункты отправления Запас
B 1 B 2 B 3 B 4 B 5
100
A 1 3 5 2 3 100
4
0 200 -12
A 2 2 3 200
7 1 1
0 200 100
A 3 9 6 300
2 4 5
100
A 4 1 3 6 10 100
4
100 100
A 5 5 8 15 200
6 15
Потребность 100 200 200 300 100
Пункты назначения
Пункты отправления Запас
B 1 B 2 B 3 B 4 B 5
100
A 1 3 5 2 3 100
4
+100
0 200 - 100
A 2 2 3 -12 200
7 1
1
0 + 100 200 100 - 100
A 3 9 6 300
2 4 5
100
A 4 1 3 6 10 100
4
100 + 100 100 - 100
A 5 5 8 15 200
6 15
Потребность 100 200 200 300 100
100
A 1 3 5 2 3 u1 = -3
4
0 100 100
A 2 2 3 u2 = 0
7 1 1
100 200
A 3 9 5 6 u3 = 1
2 4
100
A 4 1 3 6 10 u4 = 12
4
200 0
A 5 5 8 15 u5 = 14
6 15
V v1 = 7 v2 = 1 v3 = 3 v4 = -8 v5 = 1
A2B1 : v1 + u2 = 7 v1 = 7 - 0 = 7
A2B2 : v2 + u2 = 1 v2 = 1 - 0 = 1
A2B5 : v5 + u2 = 1 v5 = 1 - 0 = 1
A3B2 : v2 + u3 = 2 u3 = 2 - 1 = 1
A3B3 : v3 + u3 = 4 v3 = 4 - 1 = 3
A5B5 : v5 + u5 = 15 u5 = 15 - 1 = 14
A1B1 : v1 + u1 = 4 u1 = 4 - 7 = -3
A5B4 : v4 + u5 = 6 v4 = 6 - 14 = -8
A4B4 : v4 + u4 = 4 u4 = 4 - (-8) = 12
Найдем оценки незадействованных маршрутов
A1B2 : Δ12 = c12 - ( u1 + v2 ) = 3 - ( -3 + 1 ) = 5
A1B3 : Δ13 = c13 - ( u1 + v3 ) = 5 - ( -3 + 3 ) = 5
A1B4 : Δ14 = c14 - ( u1 + v4 ) = 2 - ( -3 + (-8) ) = 13
A1B5 : Δ15 = c15 - ( u1 + v5 ) = 3 - ( -3 + 1 ) = 5
A2B3 : Δ23 = c23 - ( u2 + v3 ) = 2 - ( 0 + 3 ) = -1
A2B4 : Δ24 = c24 - ( u2 + v4 ) = 3 - ( 0 + (-8) ) = 11
A3B1 : Δ31 = c31 - ( u3 + v1 ) = 9 - ( 1 + 7 ) = 1
A3B4 : Δ34 = c34 - ( u3 + v4 ) = 5 - ( 1 + (-8) ) = 12
A3B5 : Δ35 = c35 - ( u3 + v5 ) = 6 - ( 1 + 1 ) = 4
A4B1 : Δ41 = c41 - ( u4 + v1 ) = 1 - ( 12 + 7 ) = -18
A4B2 : Δ42 = c42 - ( u4 + v2 ) = 3 - ( 12 + 1 ) = -10
A4B3 : Δ43 = c43 - ( u4 + v3 ) = 6 - ( 12 + 3 ) = -9
A4B5 : Δ45 = c45 - ( u4 + v5 ) = 10 - ( 12 + 1 ) = -3
A5B1 : Δ51 = c51 - ( u5 + v1 ) = 5 - ( 14 + 7 ) = -16
A5B2 : Δ52 = c52 - ( u5 + v2 ) = 8 - ( 14 + 1 ) = -7
A5B3 : Δ53 = c53 - ( u5 + v3 ) = 15 - ( 14 + 3 ) = -2
Есть отрицательные оценки. Следовательно, возможно получить новое решение.
ШАГ №2.
Выберем ячейку A4B1, ее оценка отрицательная. Используя только горизонтальные и
вертикальные перемещения курсора, соединим непрерывной линией заполненные ячейки
так, чтобы вернуться в исходную ячейку A4B1
Ячейки, расположенные в вершинах построенной ломаной линии, образуют цикл для
выбранной ячейки. Он единственный. Направление обхода не имеет значения.
Пункты назначения
Пункты отправления Запас
B 1 B 2 B 3 B 4 B 5
100
A 1 3 5 2 3 100
4
0 100 100
A 2 2 3 200
7 1 1
100 200
A 3 9 5 6 300
2 4
-18 100
A 4 3 6 10 100
1 4
200 0
A 5 5 8 15 200
6 15
Потребность 100 200 200 300 100
0 = min { 100, 0, 0 }
Пункты назначения
Пункты отправления Запас
B 1 B 2 B 3 B 4 B 5
100
A 1 3 5 2 3 100
4
0 100 100
A 2 2 3 200
7 1 1
100 200
A 3 9 5 6 300
2 4
-18 100
A 4 3 6 10 100
1 4
200 0
A 5 5 8 15 200
6 15
Потребность 100 200 200 300 100
Данное преобразование не изменит баланса.
А вот общая стоимость доставки продукции изменится на величину:
1*0-4*0+6*0-15*0+1*0-7*0= ( 1 - 4 + 6 - 15 + 1 - 7 ) * 0 = -18 * 0 ден. ед.
Пункты назначения
Пункты отправления Запас
B 1 B 2 B 3 B 4 B 5
100
A 1 3 5 2 3 100
4
0 - 0 100 100 + 0
A 2 2 3 200
7 1 1
100 200
A 3 9 5 6 300
2 4
+0
100 - 0
A 4 -18 3 6 10 100
4
1
200 + 0 0 - 0
A 5 5 8 15 200
6 15
Потребность 100 200 200 300 100
100
A 1 3 5 2 3 u1 = -3
4
0 100 100
A 2 2 3 u2 = 0
7 1 1
100 200
A 3 9 5 6 u3 = 1
2 4
0 100
A 4 3 6 10 u4 = -6
1 4
200
A 5 5 8 15 15 u5 = -4
6
0 = min { 0, 100 }
Пункты назначения
Пункты отправления Запас
B 1 B 2 B 3 B 4 B 5
100
A 1 3 5 2 3 100
4
0 100 -7 100
A 2 2 200
7 1 3 1
100 200
A 3 9 5 6 300
2 4
0 100
A 4 3 6 10 100
1 4
200
A 5 5 8 15 15 200
6
Потребность 100 200 200 300 100
100
A 1 3 5 2 2 u1 = -3
4
0 200
A 2 1 3 3 u2 = 0
7 2
A 3 9 200 4 100 5 u3 = -5
2 5
0 100
A 4 3 6 4 u4 = -6
1 4
100 100
A 5 5 8 15 u5 = -4
6 6
V v1 = 7 v2 = 7 v3 = 2 v4 = 10 v5 = 10
A2B2 : v2 + u2 = 1 v2 = 1 - 0 = 1
A2B4 : v4 + u2 = 3 v4 = 3 - 0 = 3
A2B5 : v5 + u2 = 1 v5 = 1 - 0 = 1
A3B2 : v2 + u3 = 2 u3 = 2 - 1 = 1
A3B3 : v3 + u3 = 4 v3 = 4 - 1 = 3
A4B4 : v4 + u4 = 4 u4 = 4 - 3 = 1
A5B4 : v4 + u5 = 6 u5 = 6 - 3 = 3
A4B1 : v1 + u4 = 1 v1 = 1 - 1 = 0
A1B1 : v1 + u1 = 4 u1 = 4 - 0 = 4
Найдем оценки незадействованных маршрутов
A1B2 : Δ12 = c12 - ( u1 + v2 ) = 3 - ( 4 + 1 ) = -2
A1B3 : Δ13 = c13 - ( u1 + v3 ) = 5 - ( 4 + 3 ) = -2
A1B4 : Δ14 = c14 - ( u1 + v4 ) = 2 - ( 4 + 3 ) = -5
A1B5 : Δ15 = c15 - ( u1 + v5 ) = 3 - ( 4 + 1 ) = -2
A2B1 : Δ21 = c21 - ( u2 + v1 ) = 7 - ( 0 + 0 ) = 7
A2B3 : Δ23 = c23 - ( u2 + v3 ) = 2 - ( 0 + 3 ) = -1
A3B1 : Δ31 = c31 - ( u3 + v1 ) = 9 - ( 1 + 0 ) = 8
A3B4 : Δ34 = c34 - ( u3 + v4 ) = 5 - ( 1 + 3 ) = 1
A3B5 : Δ35 = c35 - ( u3 + v5 ) = 6 - ( 1 + 1 ) = 4
A4B2 : Δ42 = c42 - ( u4 + v2 ) = 3 - ( 1 + 1 ) = 1
A4B3 : Δ43 = c43 - ( u4 + v3 ) = 6 - ( 1 + 3 ) = 2
A4B5 : Δ45 = c45 - ( u4 + v5 ) = 10 - ( 1 + 1 ) = 8
A5B1 : Δ51 = c51 - ( u5 + v1 ) = 5 - ( 3 + 0 ) = 2
A5B2 : Δ52 = c52 - ( u5 + v2 ) = 8 - ( 3 + 1 ) = 4
A5B3 : Δ53 = c53 - ( u5 + v3 ) = 15 - ( 3 + 3 ) = 9
A5B5 : Δ55 = c55 - ( u5 + v5 ) = 15 - ( 3 + 1 ) = 11
Есть отрицательные оценки. Следовательно, возможно получить новое решение.
ШАГ №4.
Выберем ячейку A1B4, ее оценка отрицательная. Используя только горизонтальные и
вертикальные перемещения курсора, соединим непрерывной линией заполненные ячейки
так, чтобы вернуться в исходную ячейку A1B4
Ячейки, расположенные в вершинах построенной ломаной линии, образуют цикл для
выбранной ячейки. Он единственный. Направление обхода не имеет значения.
Пункты назначения
Пункты отправления Запас
B 1 B 2 B 3 B 4 B 5
100
A 1 3 5 2 2 100
4
0 200 -7
A 2 1 3 200
7 2 3
200 100
A 3 9 4 5 300
2 5
0 100
A 4 3 6 4 100
1 4
100 100
A 5 5 8 15 200
6 6
Потребность 100 200 200 300 100
100
A 1 4 3 5 2 u1 = -1
2
200 0
A 2 7 1 3 u2 = 0
2 3
200 100
A 3 9 4 5 u3 = 2
2 5
100 0
A 4 3 6 4 u4 = 1
1 4
100 100
A 5 5 8 15 u5 = 3
6 6
0 0 0 200 0