Сервис для решения задач по линейному программированию

и другие интересные типовые задачи
English

Пример №4. Решение транспортной задачи линейного программирования.
Метод северо-западного угла (сбалансированная задача)

Данное решение сделано калькулятором, представленным на сайте.
Задача:
Стоимость доставки единицы продукции от поставщика к потребителю располагается в правом нижнем углу ячейки.
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
5
3
1
  10  
A 2
3
2
4
  20  
A 3
4
1
2
  30  
  Потребность   15 20 25
Требуется составить план перевозок, при котором общая стоимость доставки продукции будет наименьшей.
Решение:
Для решения задачи необходимо выполнение следующего условия:
cуммарные запасы продукции у поставщиков должны равняться суммарной потребности потребителей.

Проверим.
Запасы поставщиков: 10 + 20 + 30 = 60 единиц продукции.
Потребность потребителей: 15 + 20 + 25 = 60 единиц продукции.
Суммарные запасы продукции у поставщиков равны суммарной потребности потребителей.
Для решения задачи необходимо выполнение следующего условия:
количество задействованных маршрутов = количество поставщиков + количество потребителей - 1.

Поэтому если возникнет ситуация, в которой будет необходимо исключить столбец и строку одновременно, мы исключим что-то одно.
Начинаем заполнять таблицу от левого верхнего угла и постепенно "двигаемся" к правому нижнему.
От северо-запада к юго-востоку.
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
?
5
3
1
  10  
A 2
3
2
4
  20  
A 3
4
1
2
  30  
  Потребность   15 20 25
10 = min { 15, 10 }
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
10
5
3
1
  10   нет  
A 2
?
3
2
4
  20  
A 3
4
1
2
  30  
  Потребность   15
5
20 25
5 = min { 5, 20 }
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
10
5
3
1
  10   нет  
A 2
5
3
?
2
4
  20   15  
A 3
4
1
2
  30  
  Потребность   15
5
нет
20 25
15 = min { 20, 15 }
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
10
5
3
1
  10   нет  
A 2
5
3
15
2
4
  20   15   нет  
A 3
4
?
1
2
  30  
  Потребность   15
5
нет
20
5
25
5 = min { 5, 30 }
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
10
5
3
1
  10   нет  
A 2
5
3
15
2
4
  20   15   нет  
A 3
4
5
1
?
2
  30   25  
  Потребность   15
5
нет
20
5
нет
25
25 = min { 25, 25 }
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
10
5
3
1
  10   нет  
A 2
5
3
15
2
4
  20   15   нет  
A 3
4
5
1
25
2
  30   25   нет  
  Потребность   15
5
нет
20
5
нет
25
нет
Стоимость доставки продукции, для начального решения, не сложно посчитать.

10*5 + 5*3 + 15*2 + 5*1 + 25*2 = 150 ден. ед.

Полученное решение является оптимальным?
Проверим.
Каждому поставщику A i ставим в соответствие некоторое число U i , называемое потенциалом поставщика.
Каждому потребителю B j ставим в соответствие некоторое число V j , называемое потенциалом потребителя.
Для задействованного маршрута:
потенциал поставщика + потенциал потребителя = тариф задействованного маршрута.

Последовательно найдем значения потенциалов.
Значение одного потенциала необходимо задать. Пусть u2 = 0.
A2B1 :   v1 + u2 = 3     v1 = 3 - 0 = 3
A2B2 :   v2 + u2 = 2     v2 = 2 - 0 = 2
A3B2 :   v2 + u3 = 1     u3 = 1 - 2 = -1
A3B3 :   v3 + u3 = 2     v3 = 2 - (-1) = 3
A1B1 :   v1 + u1 = 5     u1 = 5 - 3 = 2
  Поставщик   Потребитель   U  
B 1 B 2 B 3
A 1
10
5
3
1
  u1 = 2  
A 2
5
3
15
2
4
  u2 = 0  
A 3
4
5
1
25
2
  u3 = -1  
  V   v1 = 3 v2 = 2 v3 = 3
Найдем оценки незадействованных маршрутов (cij - стоимость доставки). ?
A1B2 :   Δ12 = c12 - ( u1 + v2 ) = 3 - ( 2 + 2 ) = -1
A1B3 :   Δ13 = c13 - ( u1 + v3 ) = 1 - ( 2 + 3 ) = -4
A2B3 :   Δ23 = c23 - ( u2 + v3 ) = 4 - ( 0 + 3 ) = 1
A3B1 :   Δ31 = c31 - ( u3 + v1 ) = 4 - ( -1 + 3 ) = 2
Есть отрицательные оценки. Следовательно, возможно получить новое решение, как минимум, не хуже имеющегося.
ШАГ №1.
Выберем ячейку A1B3, ее оценка отрицательная. ? Пожалуйста, поставьте курсор мыши в выбранную ячейку A1B3
Используя только горизонтальные и вертикальные перемещения курсора, соедините непрерывной линией заполненные ячейки так, чтобы вернуться в исходную ячейку A1B3
Ячейки, расположенные в вершинах построенной ломаной линии, образуют цикл для выбранной ячейки
(см. выделенные ячейки в таблице ниже). Он единственный. Направление обхода не имеет значения.
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
10
5
3
-4
1
  10  
A 2
5
3
15
2
4
  20  
A 3
4
5
1
25
2
  30  
  Потребность     15     20     25  
10 = min { 10, 15, 25 } ?
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
10
5
3
-4
1
  10  
A 2
5
3
15
2
4
  20  
A 3
4
5
1
25
2
  30  
  Потребность     15     20     25  
Данное преобразование не изменит баланса.
А вот общая стоимость доставки продукции изменится на величину:
1 * 10 - 5 * 10 + 3 * 10 - 2 * 10 + 1 * 10 - 2 * 10 = ( 1 - 5 + 3 - 2 + 1 - 2 ) * 10 = -4 * 10 ден. ед.
Вы правильно заметили, что -4 * 10 = Δ13 * 10 ?
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
10 - 10
5
3
+10
-4
1
  10  
A 2
5 + 10
3
15 - 10
2
4
  20  
A 3
4
5 + 10
1
25 - 10
2
  30  
  Потребность     15     20     25  
Получили новое решение. ?
Поставщик Потребитель   Запас  
B 1 B 2 B 3
A 1
5
3
10
1
  10  
A 2
15
3
5
2
4
  20  
A 3
4
15
1
15
2
  30  
  Потребность     15     20     25  
Общую сумму доставки продукции, для данного решения, легко посчитать.

S = 150 + Δ13 * 10 = 150 -4 * 10 = 110 ден. ед.

Полученное решение является оптимальным?
Проверим.
Каждому поставщику A i ставим в соответствие некоторое число U i , называемое потенциалом поставщика.
Каждому потребителю B j ставим в соответствие некоторое число V j , называемое потенциалом потребителя.
Для задействованного маршрута:
потенциал поставщика + потенциал потребителя = тариф задействованного маршрута.

Последовательно найдем значения потенциалов.
Значение одного потенциала необходимо задать. Пусть u2 = 0.
A2B1 :   v1 + u2 = 3     v1 = 3 - 0 = 3
A2B2 :   v2 + u2 = 2     v2 = 2 - 0 = 2
A3B2 :   v2 + u3 = 1     u3 = 1 - 2 = -1
A3B3 :   v3 + u3 = 2     v3 = 2 - (-1) = 3
A1B3 :   v3 + u1 = 1     u1 = 1 - 3 = -2
  Поставщик   Потребитель   U  
B 1 B 2 B 3
A 1
5
3
10
1
  u1 = -2  
A 2
15
3
5
2
4
  u2 = 0  
A 3
4
15
1
15
2
  u3 = -1  
  V   v1 = 3 v2 = 2 v3 = 3
Найдем оценки незадействованных маршрутов (cij - стоимость доставки). ?
A1B1 :   Δ11 = c11 - ( u1 + v1 ) = 5 - ( -2 + 3 ) = 4
A1B2 :   Δ12 = c12 - ( u1 + v2 ) = 3 - ( -2 + 2 ) = 3
A2B3 :   Δ23 = c23 - ( u2 + v3 ) = 4 - ( 0 + 3 ) = 1
A3B1 :   Δ31 = c31 - ( u3 + v1 ) = 4 - ( -1 + 3 ) = 2
Нет отрицательных оценок. Следовательно, уменьшить общую стоимость доставки продукции невозможно.
Ответ:

X опт =

Знак матрицы0010Знак матрицы
1550
01515

Smin = 110 ден. ед.










© 2010-2024

Если у Вас есть замечания, пожалуйста, пишите matematika1974@yandex.ru


Ссылки