- •1. Двойственность в линейном программировании 2
- •3. Алгоритм розв’язку двоїстим симплексим методом. 21
- •1. Двойственность в линейном программировании
- •1.1. Несиметричні двоїсті задачі. Теорема двоїстості.
- •1.2. Симетричні двоїсті задачі
- •Види математичних моделей двоїстих задач
- •2. Двоїстий симлекс-метод
- •2.1. Основные идеи двойственного симплекс-метода.
- •2.2. Алгоритм и табличная реализация двойственного симплекс-метода.
- •2.4. Приклад решения злп двойственным симплекс-методом.
- •3. Алгоритм розв’язку двоїстим симплексим методом.
1.1. Несиметричні двоїсті задачі. Теорема двоїстості.
У несиметричних двоїстих завданнях система обмежень вихідної задачі задається у вигляді рівностей, а двоїстої - у вигляді нерівностей, причому в останній змінні можуть бути і негативними. Для простоти доказів постановку завдання ус-ловімся записувати в матричній формі.
Вихідне завдання. Знайти матрицю-стовпець X = (x1, x2, …, xn), яка задовольняє обмеженням
(1.1) AX = A0, Х 0
і мінімізує лінійну функцію Z = СХ.
Двоїста задача. Знайти матрицю-рядок Y = (y1, y2, …, ym), яка задовольняє обмеженням
(1.2) YA С
і максимізує лінійну функцію f = YA0
В обох задачах C = (c1, c2, …, cn) - матриця-рядок, A0 = (b1, b2, …, bm) — матриця-стовпець, А = (aij) — матриця коефіцієнтів системи обмежень. Зв'язок між оптимальними планами пари двоїстих задач встановлює наступна теорема.
Теорема (теорема двоїстості). Якщо з пари двоїстих Завдання одне володіє оптимальним планом, то й інша має рішення, причому для екстремальних значень лінійних функцій виконується співвідношення
min Z = max f.
Якщо лінійна функція одної з задач не обмежена, то інша не має рішення.
Доведення. Припустимо, що вихідна задача має оптимальний план, який отримано симплекс методом. Не порушуючи спільності, можна вважати, що остаточний базис складається з т перших векторів A1, A2, ..., Am. Тоді остання симплекс таблиця має вигляд табл. 1.1.
Т а б л и ц я 1.1
i |
Базис |
С базиса |
A0 |
C1 |
C2 |
… |
Cm |
Cm+1 |
… |
cn |
A1 |
A2 |
… |
Am |
Am+1 |
… |
An |
||||
1 2 . . . m |
A1 A2 . . . Am |
C1 C2 . . . Cm |
x1 x2 . . . xm |
1 0 . . . 0 |
0 1 . . . 0 |
... ... . . . . |
0 0 . . . 1 |
x1, m+1 x2, m+1 . . . xm, m+1 |
… … . . . … |
x1n x2n . . . xmn |
m+1 |
Zi - Cj |
Z0 |
Z1 – C1 |
Z2 – C2 |
... |
Zm – Cm |
Zm+1 – Cm+1 |
… |
Zn – Cn |
Нехай D — матриця, складена з компонент векторів остаточного базису A1, A2, ..., Am; тоді табл. 1.1 складається з коефіцієнтів розкладання векторів A1, A2, ..., An вихідної системи по векторах базису, тобто кожному вектору Aj в цій таблиці відповідає такий вектор Xj що
(1.3) Aj = DXj (j= 1,2, ,.., n)
.
Для оптимального плана отримуєм
(1.4) A0 = DX*,
де X* = (x*1, x*2, …, x*m).
Позначимо через матрицю, складену з коефіцієнтів розкладання векторів Аj (j = 1, 2, ..., n), записанних в табл. 1.1. Тоді, враховуючи співвідношення (1.3) и (1.4), отримуємо:
(1.5) A = D, D-1A = ,
(1.6) A0=DX*; D-1A0 = X*,
(1.7) min Z= C*X*,
(1.8) = C*—C 0,
де С* = (C*1, C*2, …, C*m), С = (C1, C2, …, Cm, Cm+1, …, Cn), a = (C*X1 – C1; С*Х2 - С2, ..., C*Xn – Cn) = (Z1 – С1; Z2 - C2; ..., Zn — Cn) — вектор, компоненти якого не позитивні, так як вони збігаються з Zj — Cj 0, соответствующими оптимальному плану.
Оптимальний план вихідної задачі має вигляд X* = D-1 А0, тому оптимальний план двоїстої задачі шукаємо у вигляді:
(1.9) Y* = C*D-1.
Покажемо, що Y* дійсно план двоїстої задачі. Для цього обмеження (1.2) запишемо у вигляді нерівності YA — С 0, в ліву частину якого підставимо Y*. Тоді на підставі (1.9), (1.5) та (1.8) отримуємо
Y* А – С = С* D-1А – С = С* - С 0,
Звідки знаходимо Y*A С.
Так як Y* задовольняє обмеженням (1.2), то це і є план двоїстої задачі. При цьому в плані значення лінійної функції двоїстої завдання f (Y *) = Y * A0. Враховуючи співвідношення (1.9), (1.6) і (1.7), маємо (1.10)
f (Y*) = Y*A0 = C*D-1 A0 = C*X* = min Z(X).
Таким чином, значення лінійної функції двоїстої завдання від Y * чисельно дорівнює мінімальному значенню лінійної функції вихідної задачі.
Доведемо тепер, що Y* є оптимальним планом. Помножимо (1.1) на будь-який план Y двоїстої завдання, а (1.2) - на будь-який план X вихідної завдання: YAX=YA0=f (Y), YAX СХ = Z (X), звідси випливає, що для будь-яких планів Х і Y виконується нерівність
(1.11) f (Y) Z (X).
Цим же співвідношенням пов'язані і екстремальні значення max f (Y) min Z (Х). З останнього нерівності укладаємо, що максимальне значення лінійної функції досягається тільки у випадку, якщо max f (Y) = min Z (X), але це значення [см. (1.10)] f (Y) досягає при плані Y *, отже, план Y * - оптимальний план двоїстої задачі. Аналогічно можна довести, що якщо двоїста задача має рішення, то вихідна також має рішенням і має місце співвідношення max f (Y) = min Z (X).
Для доказу другої частини теореми припустимо, що лінійна функція вихідної завдання не обмежена знизу. Тоді з (1.11) випливає, що f (Y) - . Цей вираз позбавлене сенсу, отже, двоїста задача не має рішень.
Аналогічно припустимо, що лінійна функція двоїстої завдання не обмежена зверху. Тоді з (1.11) отримуємо, що Z (X) +. Цей вираз також позбавлено сенсу, по-цьому вихідна задача не має рішень.
Доведена теорема дозволяє при вирішенні однієї з двоїстих завдань знаходити оптимальний план іншої.
Вихідна задача. Знайти мінімальне значення лінійної функції Z = x2 – x4 – 3x5 при обмеженнях
x1 + 2x2 - x4 + x5 = 1,
- 4x2 + x3 + 2x4 – x5 = 2, xij 0 (j = 1, 2, …, 6)
3x2 + x5 + x6 = 5,
Тут мятриця-рядок С = (0;. 1; 0; —1; — 3, 0), матриця-стовпець
1 1 2 0 -1 1 0
A0 = 2 A = 0 -4 1 2 -1 0
3 0 3 0 0 1 1
1 0 0
2 -4 3
A’’ = 0 1 0
-1 2 0
1 -1 0
0 0 1
Двоїста задача. Знайти максимальне значення лінійної функції f = y1 + 2y2 +5 y3 при обмеженнях
y1 0,
2y1 – 4y2 + 3y3 1,
y2 0,
-y1 + 2y2 -1,
y1 – y2 + y3 -3,
y3 0.
Решение исходной задачи находим симплексным методом (табл. 1.2).
I |
Базис |
С базиса |
A0 |
0 |
1 |
0 |
-1 |
-3 |
0 |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
||||
1 2 3 |
A1 A3 A6 |
0 0 0 |
1 2 5 |
1 0 0 |
2 -4 3 |
0 1 0 |
-1 2 0 |
1 -1 1 |
0 0 1 |
m + 1 |
Zi - Cj |
0 |
0 |
-1 |
0 |
1 |
3 |
0 |
|
1 2 3 |
A5 A3 A6 |
-3 0 0 |
1 3 4 |
1 1 -1 |
2 -2 1 |
0 1 0 |
-1 1 1 |
1 0 0 |
0 0 1 |
m + 1 |
Zi - Cj |
-3 |
-3 |
-7 |
0 |
4 |
0 |
0 |
|
1 2 3 |
A5 A4 A6 |
-3 -1 0 |
4 3 1 |
2 1 -2 |
0 -2 3 |
1 1 -1 |
0 1 0 |
1 0 0 |
0 0 1 |
m + 1 |
Zi - Cj |
-15 |
-7 |
1 |
-4 |
0 |
0 |
0 |
|
1 2 3 |
A5 A4 A2 |
-3 -1 1 |
4 11/3 1/3 |
3 -1/3 -2/3 |
0 0 1 |
1 1/3 -1/3 |
0 1 0 |
1 0 0 |
0 2/3 1/3 |
m + 1 |
Zi - Cj |
-46/3 |
-19/3 |
0 |
-11/3 |
0 |
0 |
-1/3 |
Оптимальний план вихідної задачі X* = (0; 1/3; 0; 11/3; 4; 0), при якому Zmin = - 46/3, отриманий у четвертій ітерації табл. 1.2. Використовуючи цю ітерацію, знайдемо оптимальний план двоїстої задачі. Згідно теоремі подвійності оптимальний план двоїстої задачі знаходиться зі співвідношення Y* = C*D-1, де матриця D-1 - матриця, зворотна матриці, складеної з компонент векторів, що входять в останній базис, при якому отримано оптимальний план вихідної задачі. Минулий базис входять вектори A5, A4, A2; значить,
1 -1 2
D = (A5, A4, A2) = -1 2 -4
1 0 3
Зворотній матриця D-1 утворена з коефіцієнтів, що стоять в стовпцях A1, A3, A6 четвертої ітерації:
2 1 0
D-1 = -1/3 1/3 2/3
-2/3 -1/3 1/3
З цієї ж ітерації слідує С* = (— 3; —1; 1). Таким чином
2 1 0
Y = С*D-1 = (-3; -1; 1) -1/3 1/3 2/3
-2/3 -1/3 1/3
Y*=(-19/3; -11/3; -1/3),
тобто. yi = С*Хi, де Хi — коефіцієнти розкладання останньої ітерації, що стоять в стовпцях векторів первісного одиничного базису.
Отже, i-ту двоїсту зміну можна отримати з значення оцінки (m + 1)-й рядки, стоїть проти відповідного вектора, що входив в початковий одиничний базиc, якщо до неї додати відповідне значення коефіцієнта лінійної функції: у1 = — 19/3 + 0 = — 19/3; y2 = -11/3 + 0 = -11/3; у3 = -1/3+0 = -1/3. При цьому план max f = -46/3.