Расчётно-графическая работа №2
по дисциплине «Методы оптимизации»
на тему: «Транспортная задача и задача о назначениях»
Вариант 27
Выполнил:
студент 3 курса КИ
Харитонов М.К.
Проверил:
Одесса - 2020
Транспортная задача - это специальная задача линейного программирования.
Задача:
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
A 1 4 9 19 29 45
A 2 7 15 4 5 13
A 3 11 30 6 8 42
Потребность 8 39 44 36
Требуется составить план перевозок, при котором общая стоимость доставки продукции будет
наименьшей.
Решение:
8 = min { 8, 45 }
37 = min { 39, 37 }
2 = min { 2, 13 }
11 = min { 44, 11 }
33 = min { 33, 42 }
9 = min { 36, 9 }
27 = min { 27, 27 }
ШАГ №1.
Выберем ячейку A2B4, ее оценка отрицательная, поставьте курсор мыши в
выбранную ячейку A2B4.
Используя горизонтальные и вертикальные перемещения курсора, соедините
непрерывной линией заполненные ячейки так, чтобы вернуться в исходную
ячейку A2B4 .
Ячейки, расположенные в вершинах построенной ломаной линии, образуют
цикл для выбранной ячейки
(см. выделенные ячейки в таблице ниже). Он единственный. Направление
обхода не имеет значения.
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
2 11 -1
A 2 7 13
15 4 5
33 9
A 3 11 30 42
6 8
27
A 4 0 0 0 27
0
Потребность 8 39 44 36
9 = min { 11, 9 }
Потребитель Запас
Поставщик
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
2 11 -1
A 2 7 13
15 4 5
33 9
A 3 11 30 42
6 8
27
A 4 0 0 0 27
0
Потребность 8 39 44 36
Данное преобразование не изменит баланса.
А вот общая стоимость доставки продукции изменится на величину:
5 * 9 - 4 * 9 + 6 * 9 - 8 * 9 = ( 5 - 4 + 6 - 8 ) * 9 = -1 * 9 ден. ед.
что значит, что -1 * 9 = Δ24 * 9
Потребитель Запас
Поставщик
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
+9
2 11 - 9
A 2 7 -1 13
15 4
5
33 + 9 9 - 9
A 3 11 30 42
6 8
27
A 4 0 0 0 27
0
Потребность 8 39 44 36
Получили новое решение.
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
2 2 9
A 2 7 13
15 4 5
42
A 3 11 30 8 42
6
27
A 4 0 0 0 27
0
Потребность 8 39 44 36
Общую сумму доставки продукции, для данного решения.
S = 709 + Δ24 * 9 = 709 -1 * 9 = 700 ден. ед.
ШАГ №2.
Выберем ячейку A4B2, ее оценка отрицательная. Поставьте курсор мыши в
выбранную ячейку A4B2.
Используя горизонтальные и вертикальные перемещения курсора, соедините
непрерывной линией заполненные ячейки так, чтобы вернуться в исходную
ячейку A4B2 .
Ячейки, расположенные в вершинах построенной ломаной линии, образуют
цикл для выбранной ячейки
(см. выделенные ячейки в таблице ниже). Он единственный. Направление
обхода не имеет значения.
Потребитель Запас
Поставщик
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
2 2 9
A 2 7 13
15 4 5
42
A 3 11 30 8 42
6
-10 27
A 4 0 0 27
0 0
Потребность 8 39 44 36
2 = min { 27, 2 }
Потребитель
Запас
Поставщик
B
B 2 B 3 B 4
1
8 37
A 1 19 29 45
4 9
2 2 9
A 2 7 13
15 4 5
42
A 3 11 30 8 42
6
-10 27
A 4 0 0 27
0 0
Потребност 8 39 44 36
ь
Данное преобразование не изменит баланса.
А вот общая стоимость доставки продукции изменится на величину:
0 * 2 - 0 * 2 + 5 * 2 - 15 * 2 = ( 0 - 0 + 5 - 15 ) * 2 = -10 * 2 ден. ед.
Вы правильно заметили, что -10 * 2 = Δ42 * 2
Потребитель Запас
Поставщик
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
2-2 2 9+2
A 2 7 13
15 4 5
42
A 3 11 30 8 42
6
+2
27 - 2
A 4 0 -10 0 27
0
0
Потребность 8 39 44 36
Получили новое решение.
Потребитель Запас
Поставщик
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
2 11
A 2 7 15 13
4 5
42
A 3 11 30 8 42
6
2 25
A 4 0 0 27
0 0
Потребность 8 39 44 36
Общую сумму доставки продукции, для данного решения, легко посчитать.
S = 700 + Δ42 * 2 = 700 -10 * 2 = 680 ден. ед.
Полученное решение является оптимальным?
Проверим.
Каждому поставщику A i ставим в соответствие некоторое число u i ,
называемое потенциалом поставщика.
Каждому потребителю B j ставим в соответствие некоторое число v j ,
называемое потенциалом потребителя.
Для задействованного маршрута:
потенциал поставщика + потенциал потребителя = тариф
задействованного маршрута.
Последовательно найдем значения потенциалов.
Значение одного потенциала необходимо задать. Пусть u1 = 0.
A1B1 : v1 + u1 = 4 v1 = 4 - 0 = 4 Потребитель U
A1B2 : v2 + u1 = 9 v2 = 9 - 0 = 9 Поставщик
B 1 B 2 B 3 B 4
A4B2 : v2 + u4 = 0 u4 = 0 - 9 = -9 8 37
A4B4 : v4 + u4 = 0 v4 = 0 - (-9) = 9 A 1 19 29 u1 = 0
4 9
A2B4 : v4 + u2 = 5 u2 = 5 - 9 = -4
2 11 u2 =
A2B3 : v3 + u2 = 4 v3 = 4 - (-4) = 8 A 2 7 15
4 5 -4
A3B3 : v3 + u3 = 6 u3 = 6 - 8 = -2
42 u =
A 3 11 30 8 3
6 -2
2 25 u4 =
A 4 0 0
0 0 -9
v1 = v2 = v3 = v4 =
V
4 9 8 9
Найдем оценки незадействованных маршрутов (cij - стоимость доставки).
A1B3 : Δ13 = c13 - ( u1 + v3 ) = 19 - ( 0 + 8 ) = 11
A1B4 : Δ14 = c14 - ( u1 + v4 ) = 29 - ( 0 + 9 ) = 20
A2B1 : Δ21 = c21 - ( u2 + v1 ) = 7 - ( -4 + 4 ) = 7
A2B2 : Δ22 = c22 - ( u2 + v2 ) = 15 - ( -4 + 9 ) = 10
A3B1 : Δ31 = c31 - ( u3 + v1 ) = 11 - ( -2 + 4 ) = 9
A3B2 : Δ32 = c32 - ( u3 + v2 ) = 30 - ( -2 + 9 ) = 23
A3B4 : Δ34 = c34 - ( u3 + v4 ) = 8 - ( -2 + 9 ) = 1
A4B1 : Δ41 = c41 - ( u4 + v1 ) = 0 - ( -9 + 4 ) = 5
A4B3 : Δ43 = c43 - ( u4 + v3 ) = 0 - ( -9 + 8 ) = 1
Нет отрицательных оценок, следовательно, уменьшить общую стоимость
доставки продукции невозможно.
Ответ:
X опт 8 3 0 0
= 7
0 0 2 1
1
4
0 0 0
2
2
0 2 0
5
Задача:
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
A 1 4 9 19 29 45
A 2 7 15 4 5 13
A 3 11 30 6 8 42
Потребность 8 39 44 36
Требуется составить план перевозок, при котором общая стоимость доставки
продукции будет наименьшей.
Решение:
Потребитель Запас
Поставщик
B 1 B 2 B 3 B 4
?
A 1 9 19 29 45
4
A 2 7 15 4 5 13
A 3 11 30 6 8 42
A 4 0 0 0 0 27
Потребность 8 39 44 36
8 = min { 8, 45 }
Потребитель Запас
Поставщик
B 1 B 2 B 3 B 4
8
A 1 9 19 29 45 37
4
?
A 2 7 15 5 13
4
A 3 11 30 6 8 42
A 4 0 0 0 0 27
Потребность 8 39 44 36
нет
13 = min { 44, 13 }
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8
A 1 9 19 29 45 37
4
13
A 2 7 15 5 13 нет
4
?
A 3 11 30 8 42
6
A 4 0 0 0 0 27
8 44
Потребность 39 36
нет 31
31 = min { 31, 42 }
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8
A 1 9 19 29 45 37
4
13
A 2 7 15 5 13 нет
4
31 ?
A 3 11 30 42 11
6 8
A 4 0 0 0 0 27
44
8
Потребность 39 31 36
нет
нет
11 = min { 36, 11 }
Потребитель Запас
Поставщик
B 1 B 2 B 3 B 4
8 ?
A 1 19 29 45 37
4 9
13
A 2 7 15 5 13 нет
4
31 11
A 3 11 30 42 11 нет
6 8
A 4 0 0 0 0 27
44
8 36
Потребность 39 31
нет 25
нет
37 = min { 39, 37 }
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45 37 нет
4 9
13
A 2 7 15 5 13 нет
4
31 11
A 3 11 30 42 11 нет
6 8
?
A 4 0 0 0 27
0
44
8 39 36
Потребность 31
нет 2 25
нет
2 = min { 2, 27 }
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45 37 нет
4 9
13
A 2 7 15 5 13 нет
4
31 11
A 3 11 30 42 11 нет
6 8
2 ?
A 4 0 0 27 25
0 0
39 44
8 36
Потребность 2 31
нет 25
нет нет
25 = min { 25, 25 }
Потребитель Запас
Поставщик
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45 37 нет
4 9
13
A 2 7 15 5 13 нет
4
31 11
A 3 11 30 42 11 нет
6 8
2 25
A 4 0 0 27 25 нет
0 0
39 44 36
8
Потребность 2 31 25
нет
нет нет нет
Стоимость доставки продукции, для начального решения, не сложно
посчитать.
8*4 + 37*9 + 13*4 + 31*6 + 11*8 + 2*0 + 25*0 = 691 ден. ед.
ШАГ №1.
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
13 -1
A 2 7 15 13
4 5
31 11
A 3 11 30 42
6 8
2 25
A 4 0 0 27
0 0
Потребность 8 39 44 36
11 = min { 13, 11 }
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
13 -1
A 2 7 15 13
4 5
31 11
A 3 11 30 42
6 8
2 25
A 4 0 0 27
0 0
Потребность 8 39 44 36
Данное преобразование не изменит баланса.
А вот общая стоимость доставки продукции изменится на величину:
5 * 11 - 4 * 11 + 6 * 11 - 8 * 11 = ( 5 - 4 + 6 - 8 ) * 11 = -1 * 11 ден. ед.
что значит что -1 * 11 = Δ24 * 11
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
+11
13 - 11
A 2 7 15 -1 13
4
5
31 + 11 11 - 11
A 3 11 30 42
6 8
2 25
A 4 0 0 27
0 0
Потребность 8 39 44 36
Получили новое решение.
Потребитель
Поставщик Запас
B 1 B 2 B 3 B 4
8 37
A 1 19 29 45
4 9
2 11
A 2 7 15 13
4 5
42
A 3 11 30 8 42
6
2 25
A 4 0 0 27
0 0
Потребность 8 39 44 36
Общую сумму доставки продукции, для данного решения, легко посчитать.
Ответ:
8 37 0 0
0 0 2 11
X опт =
0 0 42 0
0 2 0 25
Smin = 680 ден. ед.
Решение задачи о назначения венгерским методом
Исходная матрица имеет вид:
3 3 34 4
5 33 12 10
8 4 5 3
2 9 12 29
Шаг №1.
1. Проводим редукцию матрицы по строкам, в связи с этим во вновь
полученной матрице в каждой строке будет как минимум один ноль.
0 0 31 1 3
0 28 7 5 5
5 1 2 0 3
0 7 10 27 2
0 28 5 5
5 1 0 0
0 7 8 27
0 0 2 0
[0] 28 5 5
5 1 [0] [0]
[0] 7 8 27
0 28 5 5
5 1 0 0
0 7 8 27
0 23 0 0
5 1 0 0
0 2 3 22
Затем складываем минимальный элемент с элементами, расположенными на
пересечениях вычеркнутых строк и столбцов:
5 0 29 1
0 23 0 0
1 1 0 0
0
0 2 3 22
Шаг №2.
1. Проводим редукцию матрицы по строкам. В связи с этим во вновь
полученной матрице в каждой строке будет как минимум один ноль.
Затем такую же операцию редукции проводим по столбцам, для чего в
каждом столбце находим минимальный элемент.
После вычитания минимальных элементов получаем полностью
редуцированную матрицу.
2. Методом проб и ошибок проводим поиск допустимого решения, для
которого все назначения имеют нулевую стоимость.
Фиксируем нулевое значение в клетке (1, 2). Другие нули в строке 1 и
столбце 2 вычеркиваем.
Фиксируем нулевое значение в клетке (2, 3). Другие нули в строке 2 и
столбце 3 вычеркиваем.
Фиксируем нулевое значение в клетке (3, 4). Другие нули в строке 3 и
столбце 4 вычеркиваем.
Фиксируем нулевое значение в клетке (4, 1). Другие нули в строке 4 и
столбце 1 вычеркиваем.
В итоге получаем следующую матрицу:
5 [0] 29 1
10 1 [0] [0]
[0] 2 3 22
10 1 0 0
0 2 3 22
10 1 [0] [0]
[0] 2 3 22
Cmin = 12 + 3 + 3 + 2 = 20
Путь: (2;3), (1;2), (3;4), (4;1) Альтернативный вариант №2.
5 [0] 29 1
10 1 [0] [0]
[0] 2 3 22
Cmin = 10 + 3 + 5 + 2 = 20
Путь: (2;4), (1;2), (3;3), (4;1)