3172
.pdfзадаче, и y0 , допустимый в двойственной задаче, такие, что
cT x0 bT y0 , то x0 - решение исходной, а y0 - решение
двойственной задачи.
Теорема 1. (Первая теорема двойственности) Если одна из задач (двойственная или исходная) имеет решение, то и двойственная к ней имеет решение, причем оптимальные значения целевых функций совпадают.
Теорема 2. (Вторая теорема двойственности) Для того,
чтобы допустимая в исходной задаче точка x0 и допустимая в двойственной задаче точка y0 являлись соответственно
решениями исходной и двойственной задач, необходимо и достаточно, чтобы выполнялись равенства (условия дополняющей нежесткости)
|
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
x0 |
c |
j |
a y0 |
0, |
j |
|
1, n |
или (x0 )T (c |
AT y0 ) |
0 ; |
||||
j |
|
ij |
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
y0 |
b |
a y0 |
0, |
i |
1, m |
или ( y0 )T (b |
Ax0 ) |
0 . |
||||||
i |
|
i |
ij |
j |
|
|
|
|
|
|
|
|
|
|
|
|
j |
1 |
|
|
|
|
|
|
|
|
|
|
|
Замечание 1. B симплекс - процедуре осуществляется перебор базисов В (невырожденных) подматриц исходной матрицы А таким образом, что
|
|
|
|
|
|
1. |
На каждой итерации метода вектор xB |
|
x , где |
||
|
|
|
0 |
||
|
|
B 1b , является допустимым в исходной задаче, т.е. |
|||
|
x |
||||
AxB b , xB 0 ; |
|
|
|
||
2. |
На заключительной итерации, кроме случая, когда |
получена оптимальная точка, оценки всех векторов Aj неотрицательны:
cT B 1 A c 0 , j 1, n
j B j j
или
cBT B 1 A yT A AT y c ,
т.е. вектор cBT B 1 является допустимым в двойственной
113
задаче, кроме того, он является решением двойственной задачи. При этом часть ограничений двойственной задачи
выполняется в виде равенств ( AT y) j c j , j I , где I - множество базисных индексов (так как оценки базисных
векторов всегда равны нулю |
j |
0, j I ). Такие точки у |
|
|
называются базисными в двойственной задаче.
Пример 1. На основании графического анализа двойственной задачи исследовать разрешимость следующих задач, и в случае разрешимости найти оптимальное значение целевой функции.
à) 6x1 |
9x2 3x3 |
min |
á) 2x1 |
x2 |
2x3 |
|
min |
||||
x1 |
2x2 |
x3 |
3, |
|
|
x1 |
x2 |
x3 |
2, |
||
3x1 |
x2 |
x3 |
|
1, |
|
|
x1 |
3x2 |
2x3 |
1, |
|
x1 |
0, |
x2 |
|
0, x3 |
0. |
x1 |
0, |
x2 |
0, |
x3 0. |
|
â) 5x1 |
x2 |
x3 |
x4 |
max |
|
|
|
|
|
||
4x1 |
x3 |
x4 |
16, |
|
|
|
|
|
|
|
|
6x1 |
4x2 |
x3 |
x4 |
4, |
|
|
|
|
|
|
|
x1 |
0, x2 |
0, |
x3 |
0, |
x4 |
0. |
|
|
|
|
Решение.
а) Двойственная задача будет иметь вид:
3y1 |
y2 |
|
max |
y1 |
3y2 |
6, |
|
2 y1 |
y2 |
|
9, |
y1 |
y2 |
3, |
|
y1 |
0, |
y2 |
0. |
Графическое решение данной задачи (рис. 4.5.1) показывает,
что Y * |
(4,1) |
с z* |
13. |
max |
|
max |
|
114
x2 |
2 |
|
|
|
1 |
|
3 |
|
y* |
|
x1 |
Рисунок 4.5.1 – Графическое решение задачи |
В силу первой теоремы двойственности исходная задача также имеет решение, причем оптимальное значение равно 13.
б) Двойственная задача будет иметь вид:
2 y1 |
y2 |
max |
y1 |
y2 |
2, |
y1 |
3y2 |
1, |
y1 |
2 y2 |
2. |
Графический анализ показывает (рис. 4.5.2), что двойственная задача неразрешима из-за неограниченности целевой функции, поэтому по свойству 3 исходная задача неразрешима из-за пустоты допустимого множества.
x2 1
3
2
x1
Рисунок 4.5.2 – Неограниченная целевая функция
115
в) Двойственная задача запишется в виде: |
||||
16 y1 |
|
4 y2 |
|
min |
4 y1 |
|
6 y2 |
5 |
|
4 y2 |
1 |
|
|
|
y1 |
y2 |
1 |
|
|
y1 |
y2 |
1 |
|
|
y1 , y2 |
|
0. |
|
|
Графический анализ этой задачи показан на рис.4.5.3. |
||||
y2 |
|
|
|
|
|
|
|
|
y1 |
|
|
|
|
y* |
Рисунок 4.5.3 – Графическое решение двойственной задачи |
Оптимальным |
решением |
является вектор Y * |
|
13 |
, |
1 |
, |
|
|
|
|||||||
|
|
|
min |
8 |
|
4 |
|
|
|
|
|
|
|
|
|||
zmin* |
25 . На |
основании |
второй теоремы двойственности |
для |
вектора х*, являющегося решением исходной задачи, должны выполняться равенства
x1* (4 y1* |
|
6 y2* 5) 0 , |
x3* ( y1* |
y2* |
1) 0, |
|
x* ( 4 y* |
1) 0 , |
x* ( y* |
y* |
1) 0 . |
||
2 |
2 |
|
4 |
1 |
2 |
|
Подставляя координаты вектора Y * |
, получаем, что переменные x |
|
|
min |
3 |
и x4 |
исходной задачи должны обращаться в ноль. Тогда из исходной |
|
системы получаем 4x1 16 , откуда |
x1 4 , и 6x1 4x2 4 , откуда |
|
x2 |
5 . Следовательно, решением исходной задачи является вектор |
|
|
116 |
|
Xmax* |
(4,5,0,0) . При этом zmax* |
5* 4 5 25 . |
|
Задачи для самостоятельного решения |
Решить следующие задачи, используя решение двойственных задач симплекс – методом:
4.5.1 6 x1 |
+ 4 x2 |
min, |
4.5.2 |
2 x1 |
+ |
3 x2 |
min, |
|
2 x1 |
+ |
x2 |
3, |
|
x1 |
+ |
5 x2 |
16, |
x1 – |
x2 |
1, |
|
3 x1 |
+ |
2 x2 |
12, |
|
– x1 + 2 x2 |
1; |
|
2 x1 |
+ |
4 x2 |
16; |
||
4.5.3 –6 x1 – 4 x2 |
max, |
4.5.4 |
6 x1 |
+ |
4 x2 |
min, |
||
2 x1 + x2 |
3, |
|
2 x1 + x2 |
3, |
||||
x1 – 2 x2 |
2, |
|
3 x1 + 2 x2 |
1, |
||||
3 x1 + 2 x2 |
1; |
|
– x1 – x2 |
6; |
||||
4.5.5 7 x1 |
+ |
x2 |
min, |
4.5.6 |
7 x1 |
+ 10 x2 |
min, |
|
x1 |
+ |
x2 |
3, |
|
2 x1 |
+ |
28 x2 |
17, |
5 x1 + x2 |
5, |
|
x1 + 2 x2 |
3; |
||||
x1 |
+ 5 x2 |
5; |
|
x1 |
+ 17 x2 |
19; |
4.5.7 |
x1 + x2 + 2 x3 |
min, |
|
|
|
|
|
|
2 x1 – x2 – 3 x3 + x4 |
= – 3, |
|
|
|
||
|
x1 – 3 x2 – 4 x3 |
+ x5 = – 1; |
|
|
|
||
4.5.8 –15x1 – 33 x2 |
max, |
4.5.9 |
x1 |
+ 2 x2 |
min, |
||
|
3 x1 + |
2 x2 |
6, |
|
2 x1 |
+ x2 |
18, |
|
6 x1 + |
x2 |
6; |
|
x1 |
+ 2 x2 |
14, |
|
|
|
|
|
x1 – 2 x2 |
10; |
117
4.5.10 78 x1 |
+ |
52 x2 |
min, 4.5.11 |
5 x1 |
+ 4 x2 |
min, |
|
6 x1 + |
2 x2 |
9, |
x1 + x2 |
6, |
|||
10 x1 + 14 x2 |
13, |
2 x1 |
+ |
x2 |
9, |
||
11 x1 |
|
x2 |
6; |
3 x1 |
+ |
x2 |
11. |
4.6. Задача линейного программирования транспортного цеха
|
|
|
ЗЛП транспортного цеха формулируется следующим |
||||||||
образом: пусть имеется m пунктов отправления |
A1 , A2 ,…, Am , в |
||||||||||
которых сосредоточен однородный груз, и |
n пунктов назначения |
||||||||||
B1 , |
|
B2 ,…, Bn . Заданы количество груза ai , i |
|
|
|
|
|
|
|
||
|
|
1, m в каждом пункте |
|||||||||
Ai |
и размеры спроса каждого пункта bj , j |
|
|
|
|
|
|||||
1, n в одних и тех же |
|||||||||||
|
|
|
|
|
|
||||||
единицах измерения. Известна также матрица C |
(cij ) , i 1, m , |
||||||||||
|
|
|
|
||||||||
j |
1, n расходов cij на перевозку единицы продукции из пункта Ai |
в пункт Bj . Необходимо определить такой план перевозки, который
бы обеспечивал вывоз всех грузов из пунктов отправления, удовлетворение всех потребностей в пунктах назначения и имел бы минимальную стоимость.
В случае, если выполняется равенство
m |
n |
ai |
bj (условие баланса), |
i 1 |
j 1 |
задача называется закрытой транспортной задачей. В противном случае – открытой.
Для разрешимости транспортной задачи необходима и достаточна еѐ закрытость.
Математическая постановка закрытой транспортной задачи имеет следующий вид:
m n
cij xij min |
(4.6.1) |
i 1 j 1
при ограничениях
118
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xij |
|
|
|
ai , |
|
i 1, m ; |
|
|
|
|
(4.6.2) |
|||||||||
|
|
|
|
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xij |
|
|
|
bj , |
|
|
j |
1, n ; |
|
|
|
|
(4.6.3) |
|||||||
|
|
|
|
i 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xi |
0 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
i |
1, m , |
|
j |
1, n , |
|
(4.6.4) |
|||||||||||||
где xij |
- количество продукта, перевозимое из пункта Ai в пункт Bj , |
||||||||||||||||||||||||
ai 0 , |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
i 1, m и bj |
|
0 , |
j |
|
1, n . Любая допустимая точка задачи |
||||||||||||||||||||
может быть записана в виде матрицы |
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
x11 ... |
|
x1n |
|
|
|||||||||
|
|
|
|
X |
(xij ) |
... ... ... . |
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
xm1 |
|
... xmn |
|
|
|||||||||
|
Для приведения открытой задачи к закрытой необходимо |
||||||||||||||||||||||||
выполнить следующие действия: |
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|
n |
|
1) если запасы больше потребностей: |
ai |
bj , |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i 1 |
|
j 1 |
|
вводится фиктивый n+1 пункт назначения. Его |
||||||||||||||||||||||||
|
потребность bn |
1 |
|
|
|
ai |
|
bj , а тарифы |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
Ci,n 1 |
0 |
i |
1, m. |
|
|
|
|
|
|
|
|
|
||||||||||||
|
2) Если |
ai |
|
|
|
|
bj |
, то вводится фиктивный (m+1)-й пункт |
|||||||||||||||||
|
отправления, его запас am 1 |
|
|
bj |
ai |
, |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
Сm 1, j |
0 |
i |
|
1, m. |
|
|
|
|
|
|
|
|
|
Рассмотрим два метода нахождения исходной базисной точки для транспортной задачи: метод "северо-западного угла" и метод минимального элемента.
4.6.1. Метод "северо-западного угла"
Алгоритм построения исходной базисной точки складывается из нескольких шагов, на каждом из которых
119
определяется верхний левый элемент матрицы X. |
|
|
|
|||||||||||||||
|
1. Полагаем i |
1 |
, j |
0 |
1 |
, |
a' |
|
a , |
b' |
|
b |
j |
, i |
1, m , j |
1, n . |
||
|
|
|
0 |
|
|
|
|
i |
|
i |
j |
|
|
|
|
|||
|
2 Полагаем |
x |
|
min(a' |
,b' |
) . Если x |
|
|
a' , то |
|
||||||||
|
|
|
i0 j0 |
|
|
i0 |
j |
0 |
|
|
i0 j0 |
|
i0 |
|
||||
|
переходим к шагу 3, в противном случае к шагу 5. |
|
||||||||||||||||
|
3. Полагаем b' |
|
b' |
|
x |
j0 |
. Индексу i |
присваиваем |
|
|||||||||
|
|
|
j0 |
|
j0 |
|
i0 |
|
|
|
|
0 |
|
|
|
|
|
|
|
значение i0 |
1. Если i0 |
m , то переходим к шагу 4, в |
|
||||||||||||||
|
противном случае к шагу 2. |
|
|
|
|
|
|
|
|
|
||||||||
|
4. Полагаем |
x |
j |
b' |
для всех |
j |
j |
. Решение закончено. |
||||||||||
|
|
|
i0 |
j |
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
5. Полагаем |
a' |
|
a' |
|
x |
j0 |
. Индексу |
j |
присваиваем |
|
|||||||
|
|
|
i0 |
|
i0 |
|
i0 |
|
|
|
|
0 |
|
|
|
|
|
|
|
значение |
j0 |
1. Если |
j0 |
|
n , то переходим к шагу 6, в |
|
|||||||||||
|
противном случае переходим к шагу 2. |
|
|
|
|
|
||||||||||||
|
6. Полагаем |
x |
|
a' |
для всех i |
i |
. Решение закончено. |
|||||||||||
|
|
|
ij0 |
|
i |
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
Рассмотрим пример использования данного алгоритма |
|
||||||||||||||||
Пример 1. Исходные данные: |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
bj |
30 |
|
36 |
|
|
|
36 |
|
|
|
|
22 |
|
|
|
56 |
|
|
ai |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
3 |
|
|
|
4 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
5 |
30 |
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
70 |
3 |
|
|
|
1 |
|
|
|
|
|
4 |
|
|
|
|
2 |
|
4 |
|
|
21 |
|
|
|
36 |
|
|
|
|
13 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
15 |
4 |
|
|
|
3 |
|
|
|
|
|
5 |
|
|
|
|
3 |
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
50 |
2 |
|
|
|
4 |
|
|
|
|
|
3 |
|
|
|
|
6 |
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В |
верхнем |
правом |
|
углу |
|
|
в |
каждой |
|
ячейке |
стоят |
|||||||
коэффициенты cij , |
i |
1,4 , |
j 1,5 . Данная задача является закрытой |
|||||||||||||||
транспортной задачей, так как сумма потребностей в продукте равна |
||||||||||||||||||
сумме имеющегося продукта |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
45+70+15+50=30+36+36+22+56. |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
120 |
|
|
|
|
|
|
|
|
|
Результаты работы алгоритма записаны в нижнем левом углу ячейки. Получена исходная базисная точка
|
30 |
15 |
0 |
0 |
0 |
|
X |
0 |
21 |
36 |
13 |
0 |
|
0 |
0 |
0 |
9 |
6 |
||
|
||||||
|
0 |
0 |
0 |
0 |
50 |
со значением целевой функции, равным 804.
Метод "северо-западного угла" может оказаться очень "далеким" от оптимального, так как при построении начальной базисной точки этим методом мы совсем не реагируем на
коэффициенты целевой функции cij . Более близкие к оптимальным точки можно получить с помощью метода минимального элемента.
4.6.2.Алгоритм метода минимального элемента
1.Полагаем ai' ai , b'j bj , (i, j) , где
(i, j) : i 1, m, j 1, n .
2. |
Определяем пару индексов (i0 , j0 ) из условия |
min cij ci0 j0 . |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
(i, j ) |
3. |
Полагаем x |
min(a' |
,b' ) . Если |
x |
a' |
, то переходим к |
||||||
|
i0 j0 |
|
|
|
|
i0 |
j0 |
|
|
i0 j0 |
i0 |
|
|
шагу 4, в противном случае - к шагу 7. |
|
|
|||||||||
4. |
Полагаем b' |
b' |
|
|
x . |
|
|
|
|
|
||
|
j0 |
j0 |
|
|
|
i0 j |
0 |
|
|
|
|
|
5. |
(i0 , j) : j 1, n . |
|
|
|
|
|
|
|||||
6. |
Если множество |
|
|
состоит из элементов одной строки ik , то |
||||||||
|
полагаем x |
b' |
для всех (i , j) |
. Решение закончено. В |
||||||||
|
ik j |
j |
|
|
|
|
k |
|
|
|
|
|
|
противном случае переходим к шагу 2. |
|
|
|||||||||
7. |
Полагаем a' |
a' |
|
|
x . |
|
|
|
|
|
||
|
i0 |
i0 |
|
|
i0 j0 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||
8. |
(i, j0 ) : i 1, m . |
|
|
|
|
|
|
|||||
9. |
Если множество |
|
|
состоит из элементов одного столбца jk , то |
||||||||
|
полагаем x |
a' |
для всех (i, j |
k |
) |
. Решение закончено. В |
||||||
|
ijk |
i |
|
|
|
|
|
|
|
|
|
противном случае переходим к шагу 2.
121
Данным методом найдем исходную базисную точку для примера 1.
Пример 2.
bj |
30 |
|
36 |
|
36 |
|
22 |
|
56 |
|
ai |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
45 |
|
3 |
|
4 |
|
2 |
|
4 |
|
5 |
|
|
|
|
36(2) |
|
|
|
9(5) |
|
|
|
|
|
|
|
|
|
|
|
||
70 |
|
3 |
|
1 |
|
4 |
|
2 |
|
4 |
|
|
36(1) |
|
|
|
22(3) |
|
12(5) |
|
|
|
|
|
|
|
|
|
|
|||
15 |
|
4 |
|
3 |
|
5 |
|
3 |
|
6 |
|
|
|
|
|
|
|
|
15(5) |
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
|
2 |
|
4 |
|
3 |
|
6 |
|
8 |
30(4) |
|
|
|
|
|
|
|
20(5) |
|
|
|
|
|
|
|
|
|
|
|
Для наглядности каждый элемент снабжен индексом, равным номеру итерации, на которой был получен данный элемент. В результате получили следующую базисную точку
0 0 36 0 9
X
0 36 0 22 12
0 0 0 0 15
30 0 0 0 20
со значением целевой функции, равным 545. Данное значение явно меньше, чем значение целевой функции на базисной точке, полученной методом "северо-западного угла".
Замечание 1. Признаком вырожденности транспортной задачи является существование r m , s n , для которых выполняется равенство
r |
s |
a i |
b j . |
|
k |
k 1 |
l 1 |
В этом случае при использовании приведенных алгоритмов может оказаться, что среди n m 1 базисных координат есть нулевые.
122