Вы находитесь на странице: 1из 28

Транспортная задача

Enjoy!

1
Постановка. Целевая функция
• Задача: минимизировать общие издержки
перевозки товара от поставщиков (i-тых)
потребителям (j-тым):
n m
С   сij xij  min,
j 1 i 1
где:
xij – объем товара, перевезенного от i-того поставщика j-тому потребителю
сij – издержки перевозки одной единицы товара от i-того поставщика j-тому
потребителю
m – количество поставщиков
n – количество потребителей

2
Постановка. Ограничения
• Все переменные неотрицательные
i-тый поставщик производит ai единиц товара
j-тому потребителю нужно bj единиц товара
• Каждый поставщик отдает все, что произвел:
n
 xij  ai , i  1, m
j 1

• Каждый потребитель полностью удовлетворяет


свой спрос: m
 xij  b j , j  1, n
i 1
3
Однако!
• Последние два условия могут выполняться
только в том случае, когда общий объем
производства совпадает с общим объемом
спроса
• Такие задачи называют закрытыми
• Для решения открытой задачи нужно
сначала привести ее к закрытой
ввести фиктивного поставщика/потребителя с очень высокими
издержками (∞, например). В таких задачах почти всегда
будет перепроизводство (если общий объем производства
выше) или недопотребление (если общий объем спроса выше)
4
Решение
3 простых шага
(как и в симплекс методе):

1. Поиск допустимого плана (= базиса)


2. Проверка плана на оптимальность
3. Приведение плана к оптимальному

5
Пример
• 3 поставщика (m), 4 потребителя (n)
• Поставщики производят:
a1=70, a2=110, a3=100
• Потребителям нужно:
b1=160, b2=50, b3=40, b4=30
m n
 ai  70  110  100  280 =  b j  160  50  40  30  280
i 1 j 1

Задача закрытая
6
Пример
 6 12 5 12 
 
Матрица издержек:  8 11 10 6 
11 10 9 7 
 
Столбцы этой таблицы соответствуют ограничениям потребителей, а
Заносим данные в таблицу:
строки – ограничениям производителей
b1 b2 b3 b4

160 50 40 30

a1 70 6 12 5 12

a2 110 8 11 10 6

a3 100 11 10 9 7

7
Шаг 1. Поиск допустимого плана.
Найти допустимый план в ТЗ можно:
• Методом северо-западного угла
• Методом минимальных издержек
• Методом Фогеля

8
Шаг 1. Поиск допустимого плана:
Метод северо-западного угла
• Идея: заполняем таблицу, начиная слева
min{110-90;50}
сверху
min{110;160-70}
min{160;70}
(так как производитель
Так как производитель
1 отдал все, что мог,
(так как(так
потребителю
какиз 110 1
2 отдает 90 b1 b2 b3 bпотребителю
4 Так как производитель
1, строку
не нужно больше
производитель 160
1 не
единиц потребителю 1, 2 отдал
можно все, что мог,
вычеркнуть
единиц
может товара,
предложитьа 70 у
и больше 20 160 50 40 30 потребителям 1 и 2,
него 70
больше ужеединиц)
есть)
предложить не может) строку можно
a1 70 6 12 5 12 вычеркнуть
70 - - - min{100-30-40;30}
a2 110 8 11 10 6
90 20 - -

a3 100
-
11
30
10
40
9
30
7

Так как потребитель 1


ужеmin{100;50-20}
получил все, что min{100-30;40}
Целевая:
хотел, тут можно С=70*6+90*8+20*11+30*10+40*9+30*7=2230
9
поставить прочерк
Шаг 1. Поиск допустимого плана:
Метод северо-западного угла
• Достоинства:
– Простой в применении
• Недостатки:
– Позволяет просто найти допустимый план, но
он вряд ли окажется близким к оптимальному,
так как процесс решения никак не связан со
значениями издержек

10
Шаг 1. Поиск допустимого плана:
Метод минимальных издержек
Прочерки, т.к.
• Идея: заполняем клеточки с спрос
удовлетворен
минимальными издержками
b1 b2 b3 b4 min{70;40}
min{70-40;160}
min{110-30;160-30} 160 50 40 30
min{100-50;50} Прочерки, т.к.
min{100-50;160-80-30}
спрос
a1 70 6 12 5 12 удовлетворен
30 - 40 -
a2 110 8 11 10 6
80 - - 30
a3 100 11 10 9 7
50 50 - - min{110;30}
Прочерки, т.к.
спрос
Целевая: С=30*6+40*5+80*8+30*6+50*11+50*10=2250
удовлетворен 11
Шаг 1. Поиск допустимого плана:
Метод минимальных издержек
• Например:
b1 b2 b3 b4

20 30 20 20
Бывает так, что объем производства поставщика совпадает с объемом
спроса потребителя. В таком случае
5 при заполнении клеточки
a1 10 4 6 5
захочется - - -
10вычеркнуть и строку, и столбец.
Однако так aделать
30 нельзя: правильно
5 3вычеркнуть
7 что-то одно,
8 а после
2
поставить «0»,- но считать
30 переменную
- базисной.
-
a3 50 9 5 6 7
10 0 20 20

12
Шаг 1. Поиск допустимого плана:
Метод минимальных издержек
• Достоинства:
– Учитывает величину издержек, позволяя
предполагать, что выбранный план окажется
близким к оптимальному
• Недостатки:
– Не учитывает то, насколько сильно разнятся
значения издержек.

13
Шаг 1. Поиск допустимого плана:
Метод Фогеля
• Идея:показывают
«Штрафы» назначим Вариационный ряд строки/столбца –
строке/столбцу
Заполняем
Выбираем
минимальные клетки«штраф»
издержки в
строку/столбец в видетовара по
с единицы
перевоза
разницы упорядоченные
междувыбранной
неоптимальному планупо
вторым ивозрастанию
первым
строке/столбце
(относительно издержки его
элементом
определенного
наибольшим штрафом
вариационного ряда по строке/столбцу
попоставщика/потребителя).
возрастанию издержек
Имеет смысл сначала разобраться теми поставщиками/потребителями, для
которых эти издержки большие,
b1 и только
b2 потомb3рассматривать
b4 min{70;40}
тех, штрафы
Прочерки,
которых не высоки (т.е. тех, кому без разницы, у кого забирать товар/кому т.к.
его
Строка 1. 160 50 40 30 спрос
Вариационный везти)
удовлетворен
ряд: 5,6,12,12
Строка 2. a1 70 6 12 5 12
Штраф=6-5=1 40
Вариационный 1
ряд: 6,8,10,11
Строка 3.
Штраф=8-6=2
a2 110 8 11 10 6
- 2
Вариационный
Столбец 1. a3 100
ряд: 7,9,10,11 11 10
-
9 7
2
Столбец
Штраф=9-7=2
Столбец
Вариационный 2.3.
Столбец 4.
Вариационный
Вариационный
ряд: 6,8, 11
Вариационный 2 1 4 1
ряд: 10,11,
ряд:
Штраф=8-6=2 5,9,12
1012
ряд: 6,7,
Штраф=11-10=1
Штраф=9-5=4
Штраф=7-6=1 14
Шаг 1. Поиск допустимого плана:
Метод Фогеля

Заполняем клетки в выбранной


Пересчитываем строке/столбце
штрафы, исключая
по возрастанию
заполненные издержек
строки/столбцы
Прочерки, т.к.
b1 b2 b3 b4 производитель 1 не
min{70-40;160} может предложить
160 50 40 30 больше 30+40=70
единиц
a1 70
30
6 12 5 12
- 40 - 6
a2 110 8 11 10 6
- 2
a3 100 11 10 9 7
- 3
2 1 1

15
Шаг 1. Поиск допустимого плана:
Метод Фогеля

Заполняем клетки в выбранной


Пересчитываем строке/столбце
штрафы, исключая
по возрастанию
заполненные издержек
строки/столбцы

b1 b2 b3 b4

min{110;160-30} 160 50 40 30

a1 70
30
6 12 5 12
- 40 -
a2 110 8 11 10
-
6
110 - -
a3 100 11 10 9 7
-

3 1 1
16
Шаг 1. Поиск допустимого плана:
Метод Фогеля

Заполняем клетки в выбранной строке/столбце


по возрастанию издержек

b1 b2 b3 b4

160 50 40 30

a1 70
30
6 12 5 12
- 40 - min{100; 30}
a2 110 8 11 - 10
-
6
110 -
a3 100 20 11 50 10 9 30 7
-
min{100-30-50;160-30-110}
min{100-30; 50}
17
Целевая: С=30*6+40*5+110*8+20*11+50*10+30*7=2190
Выводы
• В данном случае лучший результат дал метод Фогеля
• Как ни странно, метод минимальных издержек
сработал хуже метода северо-западного угла (хотя
последний нужен для составления опорного плана и
вообще не нацелен на минимизацию издержек)
• В результате применения всех методов ненулевых
переменных оказалось 6. А все потому, что среди
ограничений задачи (в данном случае их 3+4=7, в
общем – n+m) есть линейно зависимые, и количество
базисных переменных всегда равно n+m-1

18
Шаг 2. Проверка плана на оптимальность:
Метод потенциалов
Проверим на оптимальность худший из найденных
допустимых
Числа vj и ui –планов
переменные двойственной задачи, а vj+ui-сij -
1. коэффициенты в целевой
Ставим в соответствие функции
каждому исходной
столбцу задачи
число (поэтому
vj, строке для
– ui так,
базисных
чтобы vj+uпеременных должно
i=сij для базисных выполняться
клеток. равенство
Назовем эти числа vj+ui=сij)
потенциалами
b1 b2 b3 b4
v1+u1=6
160 50 40 30
v1+u2=8
a1 70 6 12 5 12 u1 v1+u3=11
30 - 40 -
a2 110 8 11 10 6 u2 v2+u3=10
80 - - 30
v3+u1=5
a3 100
50
11
50
10 9 7 u3
- - v4+u2=6
v1 v2 v3 v4
19
Шаг 2. Проверка плана на оптимальность:
Метод потенциалов
1. Так как базисных клеток 6, а столбцов и
строчек 3+4=7, числа vj и ui могут быть
разными (но vj+ui=сij)
2. Проще всего занулить одно из этих чисел.
Удобно занулять число, соответствующее
тому столбцу или той строке, где больше
всего базисных переменных (в нашем
примере это число v1)

20
Шаг 2. Проверка плана на оптимальность:
Метод потенциалов

b1
1: Определяем bзначения
2 b3 потенциалов
b4

160 50 40 30

a1 70 6 12 5 12
30 - 40 - 6 6-0=6
a2 110 8 11 10 6
80 - - 30 8 8-0=8
a3 100 11 10 9 7
50 50 - - 11 11-0=11

0 -1 -1 -2

10-11=-1 5-6=-1 6-8=-2

21
Шаг 2. Проверка плана на оптимальность:
Метод потенциалов
3:2:Смотрим
Определяем на знаки
значениякоэффициентов
коэффициентов перед
Вперед
нашем
свободными случае естьпеременными
переменными
свободными положительные
в целевой в
b1 b2 b3 b4
коэффициенты,
функции
целевой (v следовательно,
j+ui-сij). Если
функции (vj+uесть
-с ) план
i ij
положительные, можно
6+(-1)-12=-7
160 50 улучшить
значит, 40 функцию30можно
уменьшить (т.к. задача на5минимум)
a1 70 6 12 12 6
30 - 40 6+(-2)-12=-8
-7 - -8
a2 110 8 11 10 6 8
80 - - -3 30
-4
a3 100 11 10 9 7 11 8+(-1)-10=-3
50 50 - 1 - 2
0 -1 -1 -2

11+(-1)-9=1
8+(-1)-11=-4 11+(-2)-7=2

22
Шаг 3. Приведение плана к оптимальному:
Построение циклов
Цикл – замкнутая ломаная с началом Или так:и концом в выбранной свободной
ТеперьЧтобы
В симплекс изменить
методе
необходимо дляплан,
того,нужно
чтобыввести
определить, ввести впеременную
как базис
можнопеременную с
в базис, нужно
изменить
переменной. Вершины цикла могут находиться только в базисных клетках,
проследить, поставки
чтобы Чтобы
Так как положительнымне
она ограничения
могут быть
присутствовала
Эта переменная задачи
отрицательными,
только в не
одном Δ=min{30;50}=30.
уравнении
коэффициентом в целевой функции. ограничения.
так переменные,
как
Так как они
в
Таким ТЗ соответствуют
каждая
образом, которые
тем
переменная
Однаконарушались,
введениепеременная находятся
ограничениям,
изначально
x внавершинах
которые
находится
зануляется и в двух цикла,
влияет изменение
необходимость при
выводится ограничениях,
из базиса.
будет расти, переменной
так нужно
выбранной
в базис вызываетциклы
24 использовать
переменной.
чтобы
изменении при
базиса
перераспределения этом
будут выполнялись
меняться правые ограничения
части
поставок между производителями
как снижаются задачи.
нескольких иограничений (даже
потребителями.
Выбираем клетку
тех, которые, с положительным
казалось коэффициентом
бы, никак с выбранной переменной(например, x34)
не связаны)
поставки 2-го
поставщика b4-му
1 b2 b3 b4 Эта переменная
потребителю, и будет
160
поставщик 50 40 30
уменьшаться,
должен это так как растут
Эта a1 компенсировать
70 6 12 5 12 поставки 4-му
30 40
переменная -7 -8 потребителю от
будет a2 110 8 11 10 6 3-го поставщика.
снижаться, так 80
80+Δ
110 -30-Δ
30
-4 -3
как 1-й a3 100 11 10 9 7
потребитель 50-Δ
20
50 50 - 30-
1
+Δ 2
будет получать
больше от 2-го
производителя 23
Шаг 3. Приведение плана к оптимальному:
Построение циклов
Чтобы проверить полученный план на оптимальность, вновь
Так как по-прежнему есть положительный коэффициент, снова
пересчитываем Δ=min{40;20}=20
потенциалы и смотрим на знаки
строим цикл
коэффициентов
b1 b2 b3 b4

160 50 40 30

a1 70 6 12 5 12 6
30+Δ
50
30 - 40-Δ
20
40 -
-7 -8
a2 110 8 11 10 6
8
110 - - -
-4 -3 -2
a3 100 11 10 9 7
20 50 - 11
20--Δ +Δ
20
1
30

0 -1 -1 -2
24
Шаг 3. Приведение плана к оптимальному:
Построение циклов
Чтобы проверить полученный план на оптимальность, вновь
Все коэффициенты отрицательные – план оптимальный!
пересчитываем потенциалы и смотрим на знаки
Целевая: С=50*6+20*5+110*8+50*10+20*9+30*7=2170
коэффициентов
b1 b2 b3 b4

160 50 40 30

a1 70 6 12 5 12 6
50 - 20 -
-6 -9
a2 110 8 11 10 6
8
110 - - -
-3 -3 -1
a3 100 11 10 9 7
50 20 30 10
-
-1
0 0 -1 -3
25
Когда решений несколько
В задаче есть нулевой коэффициент. Что будет, если
Например: Δ=min{30;50}=30
соответствующую переменную ввести в базис?
С=50*3+20*2+30*4+10*5+20*4+40*3=560
Решение ТЗ не всегда единственное.
Как и в обычном bсимплекс
1 b2 b3
методе, b4
признаком этого
является нулевой60 коэффициент
50 перед
20 свободной
40
переменной в целевой функции: можно ввести эту
a1 70 3 2 4 5 2
переменную в 20
базис
50
50-Δ (то есть
20 +Δ
50 получить
- -2 другой
- план
-4
перевозки),
a2 70 но значение
5 общих
4 издержек
6 при3 этом
- - 4
останется
30

- 0 минимальным
30
30-Δ -2 40
a3 30 5 5 4 6
- - 4
10 -1 20 -3

1 0 0 -1

26
Когда решений несколько
Сравним полученные
Решение: планы:
Чтобы записать
x21=Δ. Чтобы решение,необозначим свободную переменную
С1 =50*3+20*2+30*4+10*5+20*4+40*3=560
поставки стали отрицательными, Δ[0;30];
с нулевым коэффициентом в целевой буквой Δ
x11С
=50-Δ, x12=20+Δ, x22=30-Δ, x24=40, x21=10, x33=20
2 =20*3+50*2+30*5+10*5+20*4+40*3=560

b1 b2 b3 bb41 b2 b3 b1 b4 b2 b3 b4

60 50 20 40
60 50 20 60 40 50 20 40

a1 70 3 2 a1 704 53 a1 2 70 4 3 5 2 4 5
50 20 - 50-Δ
- 20+Δ -20 -50 - -
a2 70 5 4 a2 706 35 a2 4 70 6 5 3 4 6 3
- 30 - 40+Δ 30-Δ -30 40 - - 40
a3 30 5 5 a3 304 65 a3 5 30 4 5 6 5 4 6
10 - 20 10- - 20 10 - - 20 -

27
Когда кажется, что решений несколько
Для того, чтобы значения поставок оставались положительными, Δ
Например:
должна
Однако быть равной 0. То есть
неизменность по циклуфункции
целевой двигается базисный
при разных нолик,
(с и
Построим
Рассмотрим
в результате цикл с меняется
началом
следующий
его передвижений в клетке
опорный
только x32двух клеток:
план
статус
Иногдаточкипозрения
циклу теории) планах перевозки
приходится перемещать не всегда «0»
если в начале свободной переменной была x32, то после
говорит о том, что задача имеет несколько решений.
преобразованийb1 она стала b2 базисной,
b3 а x12 - свободной
b4

20 30 20 20

a1 10 4 5 6 5
4
10
10+Δ 00-
- Δ - -
-5 -3
a2 30 5 3 7 8
- 30 - - 2
-3 -8 -8
a3 50 9 9 6 7
10
10-Δ 0-
+Δ 20 20 9
1

0 1 -3 -2
28

Вам также может понравиться