Модели оптимизации. Математическое программирование, исследование операций. Учебно-методическое пособие
.pdf
x2
c (5;6)
2.5
B
4 |
x1 |
|
x1 + 2x2 = 5 |
3x1 + x2 |
= 12 |
Рис. 2.2 |
|
|
|
|
|
|
|
|
|
19 |
3 |
|
|||
Максимальное значение функции достигается в точке |
B |
|
|
; |
|
|
, |
|
|
|
|||||
|
5 |
5 |
|
||||
то есть оптимальное решение задачи имеет вид:
|
|
|
19 |
3 |
|
1 |
|
||||
|
|
опт = |
|
|
; |
|
|
, |
zопт = 45 |
|
. |
x |
|
|
|||||||||
|
|
|
|
|
|||||||
|
|
5 |
5 |
|
5 |
||||||
Однако полученное решение не является целочисленным, а следовательно, не является оптимальным решением исходной задачи.
Возьмем переменную x = |
19 |
, эта переменная в оптимальном |
|
||
1 |
5 |
|
|
|
плане исходной задачи будет либо меньше или равна 3, либо больше или равна 4.
81
Рассмотрим две задачи линейного программирования:
I II
z = 10x1 + 12x2 → max |
z = 10x1 + 12x2 → max |
||||||||
3x1 + x2 ≤ 12; |
3x1 + x2 ≤ 12; |
||||||||
x + 2x |
|
£ 5; |
x + 2x |
|
£ 5; |
||||
1 |
|
2 |
|
1 |
|
2 |
|
||
|
|
£ 3; |
|
|
|
|
³ 4; |
|
|
x1 |
|
|
x1 |
|
|
||||
x1 ³ 0; |
|
|
x1 ³ 0; |
|
|
||||
x |
|
³ 0; |
|
|
x |
|
³ 0; |
|
|
|
2 |
|
|
|
|
2 |
|
|
|
x1, x2 - целые числа. |
x1, x2 - целые числа. |
||||||||
Решим графически задачи (I) и (II)
Задача (I)
x2
6
c (5;6)
А
О |
|
|
B |
|
|
|
|
|
|
|
|||
|
C |
x1 |
|
|
||
0 |
|
|
5 |
+ 2x2 |
= 5 |
|
3 |
4 |
|||||
|
||||||
|
|
|
x1 |
3x1 + x2 = 12
Рис. 2.3
82
Задача (II)
x2
6
А
О
0
c (5;6)
B
|
x1 |
|
|
4 C |
5 |
+ 2x2 |
= 5 |
|
x1 |
3x1 + x2 = 12
Рис..23.4
Задача (I) имеет оптимальное решение с целочисленными компонентами
x( I) опт = (3;1), z(x(I) опт ) = 42 ,
так как максимальное значение функции достигается в точке B(3;1)
(рис. 2.3).
Задача (II) имеет оптимальное решение с целочисленными компонентами
x( II) опт = (4;0), z(x(II) опт ) = 40 ,
так как область допустимых решений в этом случае состоит из одной точки C(4;0) (рис. 2.4).
Выбирая наибольшее значение целевой функции, получим оптимальное решение исходной задачи
xопт = (3;1), zmax = 42 .
83
Схему рассмотренного выше вычислительного процесса можно представит в виде дерева, ветвями которого являются соответствующие ограничения на переменные, а вершинами – решения соответствующих задач линейного программирования.
|
|
|
|
|
|
|
|
19 |
3 |
|
|
|
|
|||||
|
|
|
|
|
x |
опт = |
|
; |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
5 |
5 |
|
|
|
|
|||||
|
|
|
|
|
|
z |
|
= 45 |
1 |
|
|
|
|
|
|
|||
|
|
|
|
|
|
опт |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
опт = (3;1) |
|
|
|
|
|
|
|
|
|
|
|
|
опт = (4;0) |
|||
|
|
|
|
|
|
|
|
|
x |
|||||||||
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
zопт = 42 |
|
|
|
|
|
|
|
|
|
|
|
zопт = 40 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.5. ТРАНСПОРТНАЯ ЗАДАЧА (ЗАДАЧА МОНЖА-КАНТОРОВИЧА)
Транспортная задача в общем виде и ее частные случаи описывают широкий круг практически значимых вопросов оптимизации.
Классическим примером является планирование перевозок однотипного товара от нескольких поставщиков нескольким потребителям. Цель оптимизации – минимизировать время или стоимость перевозки. Схожее математическое описание имеет задача о назначениях, определяющая назначение нескольких заданий нескольким сотрудникам. В обобщенных вариантах постановки транспортной задачи рассматриваются произвольные сети, по которым осуществляются перевозки, добавляются ограничения пропускной способности дуг сети, допускается одновременная перевозка разнотипных товаров.
Далее рассматривается транспортная задача в классической постановке – минимизация стоимости перевозок от нескольких поставщиков нескольким потребителям.
Решение задачи разбивается на два этапа:
∙определение исходного опорного решения;
∙последовательные итерации, то есть приближение к оптимальному решению [2, 5, 7].
84
2.5.1. Метод северо-западного угла
Метод северо-западного угла служит для формирования исходного опорного решения. Преимуществом метода является чрезвычайная простота, недостатками – неоптимальность и случайность формируемого плана.
Задача. Требуется сформировать план перевозки от поставщика Ai к потребителю Bk. В углах клеток таблицы указаны стоимости Cik перевозок единицы продукции от поставщика Ai к потребителю Bk. Жирным шрифтом указаны запасы каждого поставщика и потребность каждого потребителя.
|
|
|
|
Потребители |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
В1 |
|
В2 |
В3 |
|
В4 |
|
|
|
80 |
|
90 |
130 |
|
70 |
|
|
|
|
|
|
|
|
|
|
А1 |
50 |
4 |
|
2 |
9 |
|
7 |
Поставщики |
|
|
|
|
|
|
||
А2 |
170 |
8 |
|
1 |
12 |
|
1 |
|
|
|
|
|
|
|
|||
|
|
3 |
|
4 |
6 |
|
2 |
|
А3 |
150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Решение
Заполним таблицу начиная с верхнего левого (северо-западного) угла, двигаясь далее по строке вправо или по столбцам вниз.
В первую клетку заносим максимально возможное количество груза, которое первый поставщик может отправить первому получателю, стоимость перевозки при этом не учитывается. Это количество равно наименьшему из чисел А1 и В1, а именно: min{50;80} = 50.
|
|
|
|
Потребители |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
В1 |
|
В2 |
В3 |
|
В4 |
|
|
|
80 |
|
90 |
130 |
|
70 |
|
|
|
|
|
|
|
|
|
Поставщики |
А1 |
50 |
50 4 |
|
0 2 |
0 9 |
|
0 7 |
А2 |
170 |
30 8 |
|
90 1 |
50 12 |
|
0 1 |
|
|
|
0 3 |
|
0 4 |
80 6 |
|
70 2 |
|
А3 |
150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85
Линейная целевая функция стоимости перевозок принимает вид:
m n |
= x11C11 + x12C12 + ... |
|
L = ∑ ∑ xik Cik |
(2.23) |
i =1 k =1
В рассмотренном примере
L = 50 × 4 + 30 ×8 + 90 ×1 + 50 ×12 + 80 × 6 + 70 × 2 = 1750 . |
(2.24) |
Отметим, что метод северо-западного угла формирует исходное опорное решение, то есть план перевозок, соответствующий запасам поставщиков и потребностям потребителей, но неоптимальный по стоимости.
2.5.2. Метод минимального элемента (жадный алгоритм)
Как и предыдущий метод, метод минимального элемента (жад-
ный алгоритм) направлен на формирование исходного опорного решения, а не оптимального плана перевозок. Преимуществом метода является почти столь же низкая трудоемкость, как у метода северозападного угла при существенно более высоком качестве получаемого плана.
Вметоде минимального элемента заполнение клеток таблицы осуществляется в порядке возрастания стоимости перевозок, что позволяет максимально задействовать самые выгодные связки поставщиков и потребителей.
Рассмотрим формирование опорного решения той же транспортной задачи методом минимального элемента.
Врассматриваемой задаче минимальной является стоимость перевозок между вторым поставщиком и вторым и четвертым потребителями: С22 = С24 =1. Заполнение можно начать с любой из этих клеток. Начнём с (2;2). Запасы второго поставщика составляют А1=170 единиц товара, а потребность второго потребителя – В2 = 90 ед. Выбираем минимальную из этих величин: min{170;90} = 90. Заносим полученное значение в клетку (2;2). Так как потребность второго потребителя полностью удовлетворена, все свободные клетки его столбика заполняем нулями.
86
Далее заполняем следующую клетку с минимальной стоимостью перевозки – (2;4). После поставки второму потребителю у второго поставщика осталось еще 170 – 90 = 80 единиц товара. Четвертому потребителю необходимо 70 ед. Вновь выбираем минимальное из этих чисел min{80;70} = 70 и вписываем его в клетку (2;4) таблицы. Так как потребность четвертого потребителя полностью удовлетворена, свободные ячейки четвертого столбца заполняем нулями.
Следующая по стоимости перевозки незаполненная ячейка – (3;1), С31=3. Аналогично предыдущим случаям заносим туда значение min{A3;B1}=min{150;80} = 80. Потребность первого потребителя полностью удовлетворена, свободные ячейки первого столбика заполняем нулями.
Следующая по стоимости перевозок ячейка – (3;3). У третьего поставщика осталось 70 ед. товара, третьему потребителю необходимо 130 ед. В клетку (3;3) записываем min{70;130} = 70. Все запасы третьего поставщика израсходованы, третьему потребителю необходимо еще 60 ед. товара. Действуя по аналогичной схеме, запишем в клетку (1;3) число min{50;60}=50. Оставшиеся 10 ед. третий потребитель получит от второго поставщика.
В результате получим следующий план перевозок.
|
|
|
|
|
|
|
Потребители |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
Остаток |
|
|
|
|
|
|
В1 |
|
В2 |
|
В3 |
|
В4 |
|
|
|
|
|
|
|
|
80 |
|
90 |
|
130 |
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
ставщики |
А1 |
|
50 |
0 4 |
0 2 |
50 9 |
0 7 |
0 |
|
||||
|
А3 |
|
150 |
80 |
3 |
0 |
4 |
70 6 |
0 |
2 |
70, 0 |
|
||
|
|
А2 |
|
170 |
0 |
8 |
90 |
1 |
10 |
12 |
70 |
1 |
80, 10, 0 |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Остаток |
|
0 |
0 |
60,10,0 |
0 |
|
|
||||||
|
|
|
|
|
|
|
|
|||||||
Целевая функция принимает следующее значение: |
|
|||||||||||||
L = 80 ×3 + 90 ×1 + 50 ×9 +10 ×12 + 70 × 6 + 70 ×1 = 1390. |
(2.25) |
|||||||||||||
Использование метода минимального элемента вместо метода се- веро-западного угла позволило снизить затраты уже в исходном опорном плане с 1750 до 1390 ед.
87
2.5.3. Метод потенциалов
Получив исходное опорное решение, для построения новых, всё более выгодных решений применяют итерационные методы. Рассмотрим один из таких методов – метод потенциалов.
После построения опорного решения все переменные разбиваем на 2 группы:
– |
xkl |
– |
базисные; |
|
– |
xpq |
– |
свободные. |
(2.26) |
Линейная функция стоимости перевозок выразится через свобод- |
||||
ные переменные: |
|
|
|
|
L = ∑ γ pq xpq + γ 0 . |
(2.27) |
|||
Коэффициенты gpq пока неизвестны. Для их нахождения продела- |
||||
ем следующую процедуру. |
|
|
|
|
Представим стоимость перевозок в виде суммы: |
|
|||
|
ui |
+ vk = cik , |
(2.28) |
|
где ui называется потенциалом поставщика Ai, vk – |
потенциалом по- |
|||
требителя Bk. |
|
|
|
|
Система, содержащая все уравнения вида (2.28), имеет m×n уравнений при m+n неизвестных. При m≤2 и n≤2 такая система совместна, но сама транспортная задача решается тривиально, например, метод минимального элемента сразу дает оптимальное решение. В общем случае система становится несовместной уже при m=2 и n=3 (или наоборот). Поэтому рассматривается не вся система, а только ее часть, где все переменные относятся к базисным.
Совокупность уравнений
ui + vk = cik , |
(2.29) |
составленных для всех базисных переменных, составляет совместную систему линейных уравнений, причем значение одной из этих переменных можно задавать произвольно. Тогда значения остальных находятся из системы однозначно.
88
Для свободных переменных (они не учтены в системе (2.29)) сумму потенциалов поставщика и потребителя называют косвенной стоимостью:
c1pq = u p + vq . |
(2.30) |
Тогда коэффициенты γ pq определяются следующим выражением:
γ |
pq |
= c |
pq |
− c1 . |
(2.31) |
|
|
pq |
|
Критерий оптимальности решения: все коэффициенты γpq неотрицательны. Если некоторые из коэффициентов отрицательны, то необходимо изменить базис. Все свободные переменные при этом остаются равными нулю, а xik с отрицательным коэффициентом увеличивается.
Используем опорное решение, полученное нами ранее по методу минимального элемента:
x11 = 0 |
x12 = 0 |
x13 = 50 x14 = 0 ; |
|
|||
x21 = 0 |
x22 |
= 90 |
x23 |
= 10 |
x24 = 70 ; |
(2.32) |
x31 = 80 |
x32 |
= 0 |
x33 |
= 70 |
x34 = 0 . |
|
Разложим согласно (2.29) стоимости, соответствующие ненуле- |
||||||
вым объемам перевозок: |
|
|
|
|
||
|
|
|
c13 = u1 + v3 = 9 ; |
|
||
|
|
|
c22 = u2 + v2 = 1; |
|
||
|
|
|
c23 = u2 + v3 = 12 ; |
|
||
|
|
|
c24 = u2 + v4 = 1; |
(2.33) |
||
|
|
|
c31 = u3 + v1 = 3; |
|
||
|
|
|
c33 = u3 + v3 = 6 . |
|
||
Система (2.33) содержит шесть уравнений с семью неизвестными. Такая система не может иметь единственное решение. Вместе с тем, можно показать, что система всегда совместна, ранг матрицы системы равен количеству уравнений. Таким образом, система имеет бесконечное множество решений. Задав значение одной из неизвестных, получим систему с единственным решением. Зададим, напри-
89
мер, |
u1 = 1. |
Тогда |
из |
первого |
уравнения |
найдём |
|
v3 |
= 9– u1 |
= 9–1 = 8, |
из третьего – |
u2 = 12– v3 = 12–8 = 4, из шестого – |
|||
u3 = 6– v3 |
= 6–8 = –2, |
из второго – |
v2 = 1– u2 = 1–4 = –3, из четвертого – |
||||
v4 |
= 1– u2 |
= 1–4 = –3, |
из пятого – v1=3– u3 = 3–(–2) = 5. |
|
|||
|
Найдём косвенные стоимости: |
|
|
||||
c1 |
= u + v |
= 6 ; |
|
|||||||
11 |
|
|
1 |
|
|
|
1 |
|
|
|
c1 |
|
= u + v |
2 |
= −2 ; |
|
|||||
12 |
|
1 |
|
|
|
|
|
|||
c1 |
= u + v |
4 |
= −2 4; |
(2.34) |
||||||
14 |
|
1 |
|
|
|
|
|
|
||
c1 |
|
= u |
2 |
+ v |
= 9 ; |
|
||||
21 |
|
|
|
|
|
1 |
|
|
||
c1 |
|
= u |
3 |
+ v |
2 |
= −5; |
|
|||
32 |
|
|
|
|
|
|
|
|
||
c1 |
|
= u |
3 |
+ v |
4 |
= −5. |
|
|||
34 |
|
|
|
|
|
|
|
|
||
Рассчитаем γpq по (2.31), (2.33) и (2.34):
γ11 = 4 − 6 = −2 ;
γ12 = 2 − (−2) = 4 ;
γ14 = 7 − (−2) = 9 ; |
(2.35) |
γ21 = 8 − 9 = −1;
γ32 = 5 − (−5) = 10 ;
γ34 = 2 − (−5) = 7 .
Коэффициенты γ11 и γ21 оказались меньше нуля. Следовательно, можно добиться уменьшения значения целевой функции путём переноса перевозок в клетки (1;1) или (2;1). Увеличим значение x11 на величину λ = 50. Получим цикл пересчета.
|
Потребитель |
В1 |
В2 |
В3 |
В4 |
|
Остаток |
Поставщик |
|
80 |
90 |
130 |
70 |
|
70 |
|
|
|
|
|
|
|
|
А1 |
50 |
0+λ 4 |
2 |
50– λ9 |
7 |
|
|
А2 |
170 |
8 |
90 1 |
10 12 |
70 1 |
|
10 |
А3 |
150 |
80– λ 3 |
4 |
70+λ 6 |
2 |
|
70 |
90
