__2014_DvojstvennSM+Gomory_ukr_rus_new
.pdfМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ «КИЇВСЬКИЙ ПОЛIТЕХНIЧНИЙ ІНСТИТУТ»
ДВОЇСТИЙ СИМПЛЕКС-МЕТОД. АЛГОРИТМ ГОМОРІ
МЕТОДИЧНI ВКАЗIВКИ
до самостійної роботи
з дисциплiни «Математичні методи дослідження операцій»
Київ 2010
Двоїстий симплекс-метод. Алгоритм Гоморі. Методичні вказівки до самостійної роботи з дисциплiни «Математичні методи дослідження операцій» для студентiв спецiальності «Iнформацiйнi управляючi системи та технологiї» / Укл.: О.Г. Жданова. – К.: НТУУ “КПІ”, 2006. – 48 с.
Навчальне видання
МЕТОДИЧНI ВКАЗIВКИ
до самостійної роботи
з дисциплiни «Математичні методи дослідження операцій»
для студентiв спецiальності «Iнформацiйнi управляючi системи та технологiї»
Укладач: |
Жданова Олена Григорівна |
Відповідальний редактор |
В.О. Тихонов |
Рецензенти: |
С.М. Гриша |
|
С.Ф. Теленик |
|
Редактор М.В. Прокопенко |
2
1. Двоїстий симплекс-метод
Нехай задана задача лінійного програмування в канонічній формі [1, 2]
c T x max; |
(1) |
A x = b; |
(2) |
x 0 . |
(3) |
Задача, двоїста задачі (1)-(3), має вигляд :
bT min ;T A cT .
Задачу (1) – (3) будемо надалі називати прямою задачею. Критерій оптимальності задачі (1)-(3) має вигляд :
|
|
|
|
|
d |
|
T T N c |
|
T |
0, |
|
|
|
||||||
|
|
|
|
|
|
N |
|
|
|
|
|
|
N |
|
|
|
|
||
де |
d N - |
вектор відносних оцінок небазисних змінних, T cTB B 1 - |
вектор |
||||||||||||||||
оцінок обмежень. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
За |
аналогією |
|
|
з |
|
вектором |
|
d N |
введемо |
вектор |
dB : |
||||||
d |
T |
T B c T |
cT BB 1 |
c |
T |
T . |
|
Визначимо |
вектор |
відносних |
оцінок |
||||||||
|
B |
|
B |
B |
|
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
змінних таким чином: |
|
|
dB |
, |
|
|
|
|
|
|
|
|
|
||||||
d d |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d T [d |
B |
| d |
N |
] T |
A cT . |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Враховуючи це, критерій оптимальності задачі (1)-(3) можна записати так: |
|
||||||||||||||||||
|
|
|
|
|
d T ( dBT |
|
dNT ) 0 ; |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
d T |
T A cT 0 ; |
|
|
(4) |
|
T A cT .
Співвідношення (4) можна розглядати як вираз допустимості вектора двоїстих змінних . Таким чином, можна вважати, що в симплекс - методі ми,
підтримуючи допустимість прямого розв’язку, прагнемо до допустимості двоїстого. Такий алгоритм називається прямим. Так само можна розпочати з допустимого двоїстого розв’язку і прагнути допустимості прямого. Такий алгоритм будемо
3
називати двоїстим симплекс - методом.
Двоїстий симплекс-метод - це по суті симплекс-метод, що пристосований до двоїстої задачі, але працюючий з перетворюваною прямою задачею.
Нехай пряма перетворювана задача записана в наступному вигляді:
max z d (x |
) |
... d |
p |
(x |
N |
) |
p |
... d |
n m |
(x |
N |
) |
n m |
cT |
|
(5) |
1 |
N 1 |
|
|
|
|
|
|
B |
|
|
||||||
при обмеженнях |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xB *1(xN )1 ... * p (xN ) p ... *(n m) (xN )n m . |
|
(6) |
Припустимо, що двоїстий розв’язок цієї задачі, записаної у формі таблиці, є допустимим, тобто виконуються умови оптимальності базисного розв’язку прямої задачі, але розв’язок прямої задачі не обов’язково є допустимим. Іншими словами, маємо недопустимий, але оптимальний розв’язок прямої задачі і при цьому поточний базис визначає допустимий, але неоптимальний розв’язок двоїстої задачі.
1.1. Схема двоїстого симплекс-методу для задачі максимізації ЦФ
Наступна схема містить теоретичне обгрунтування методу [1].
Крок 1. Вибір змінної, що виводиться із множини базисних (умова допустимості).
За змінну, що виводиться з базису, треба вибрати найбільшу за величиною від’ємну базисну змінну: вибрати ведучий рядок q, такий, що
|
q |
min { i}. |
|
i |
i 0 |
|
Якщо всі базисні змінні 0 (тобто такого q не існує), то СТОП, одержали |
|
|
допустимий і оптимальний розв’язок. |
|
|
У протилежному випадку стовпчик, що відповідає змінній ( xB )q , повинен бу-ти |
|
|
виведений із базису. |
Крок 2. Вибір змінної, що вводиться у множину базисних (умова оптимальності).
Спочатку розглянемо наступне: коли j–й небазисний стовпчик замінює q–
4
й базисний, тоді після застосування перетворень Гауса відносна оцінка q–го
|
|
|
d j |
. Для того, щоб компоненти |
|
стовпчика у новому ДБР буде дорівнювати |
d |
||||
|
|||||
|
j |
qj |
|||
|
|
|
вектора d N , як і раніше, були невід’ємні ( 0) (виконувалась умова оптимальності),
знаменник повинен бути від’ємним .
Визначимо коефіцієнт за формулою:
|
d j |
|
(7) |
||
min { |
|
|
} |
||
|
qj |
||||
j |
qj 0 |
|
|
і нехай мінімум досягається при j = p.
Якщо взяти більше значення параметра , ніж те, яке дає (7), наприклад значення, яке відповідає j = r , і якщо ( xN )r ввести у базис, то в новому розв’язку одержимо
|
|
|
qp |
dr |
d p |
|
||||||
|
|
|
|
|||||||||
d p d p dr |
|
|
0 , тому, що |
|
|
|
|
|
, |
|||
|
|
|
|
|
||||||||
|
qr |
|
qr |
|
qp |
|||||||
|
|
|
|
|
|
|
|
|
|
|||
і умови оптимальності ДБР прямої задачі не будуть виконуватись. |
||||||||||||
Отже, змінна ( xN )p вводиться у множину базисних. При цьому |
||||||||||||
|
|
|
|
|
|
|
|
|
||||
d j d j qj , |
j p . |
|
|
|
|
|
Якщо у рядку, що відповідає змінній, яка виводиться, нема жодного qj 0
для j, які відповідають небазисним змінним (ознака відсутності допустимих розв’язків), то СТОП, пряма задача не має допустимих розв’язків.
У протилежному випадку перейти на крок 3.
Крок 3. Перехід до нового ДБР
За допомогою елементарних перетворень Гауcа виконується операція заміщення (xB )q на (xN ) p . Перехід на крок 1.
Схема двоїстого симплекс-методу для задачі мінімізації ЦФ
5
відрізняється від схеми розв’язання задачі на максимум у правилі вибору змінної, що виводиться (критерії оптимальності):
Коефіцієнт визначається за формулою:
|
|
|
|
d j |
} |
|
|
d j |
|
(7а) |
|
max { |
|
|
min { |
|
} |
||||||
|
|
|
|||||||||
|
j |
|
qj 0 |
|
qj |
j |
|
qj 0 |
qj |
|
|
|
|
|
|
|
|
(як і раніше розглядаються тільки відношення з від’ємним знаменником)
Ознака відсутності допустимих розв’язків та ж: у рядку, що відповідає змінній, яка виводиться, немає жодного qj 0 для j, які відповідають небазисним змінним.
З урахуванням (7) и (7а) можна записати єдине (для задач максимізації та мінімізації) правило вибору ведучого стовпчика:
|
min |
{ |
d j |
} |
. |
|
|
||||||
j |
|
qj 0 |
qj |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
Таким чином, двоїстий симплекс-метод на кожному кроці забезпечує умову оптимальності розв’язку і систематичне наближення його до області допустимих розв’язків. Коли отриманий розв’язок виявляється допустимим, ітераційний процес обчислень закінчується, бо цей розв’язок є і оптимальним.
У табл. 1 наведена порівняльна характеристика прямого і двоїстого симплекс-методів. Відзначимо, що між цими методами спостерігається симетрія.
|
Таблиця 1 |
|
Прямий симплекс-метод |
Двоїстий симплекс-метод |
|
1 |
|
2 |
3 |
|
|
|
|
|
Задача на min |
Задача на max |
|
|
|
хj 0 |
dj 0, |
Проміж- |
і |
j dj>0. |
але j xj<0. |
|
|||
ний |
Проміжні розв’язки є допусти- |
Проміжні розв’язки є оптималь- |
|
|
|||
розв’я- |
мими, але неоптимальними за |
ними за критерієм оптимальності, |
|
|
|||
зок |
критерієм оптимальності |
але не є допустими |
|
|
6
|
|
|
|
Продовження табл.1 |
||
|
|
|
|
|
|
|
1 |
|
2 |
|
3 |
|
|
|
|
|
|
|
||
|
Задача на max |
|
Задача на min |
|
||
Проміж- |
|
хj 0 |
|
dj 0, |
|
|
ний |
і |
j dj<0. |
|
але j xj<0. |
|
|
|
|
|
||||
розв’я- |
Проміжні розв’язки є |
Розв’язки є оптимальними за |
|
|||
|
|
|||||
зок |
допустимими, але не є |
критерієм оптимальності, але не |
|
|||
|
|
|||||
|
оптимальними. |
|
є допустимими. |
|
||
|
|
|
|
|
|
|
|
|
Задача на |
min |
|
|
|
Опти- |
|
xj 0 |
|
xj 0 |
|
|
мальний |
|
dj 0 |
|
dj 0 |
|
|
|
|
|
|
|||
розв’я- |
|
|
|
|
|
|
|
Задача на |
max |
|
|
|
|
зок |
|
xj 0 |
|
xj 0 |
|
|
|
|
dj 0 |
|
dj 0 |
|
|
|
|
|
|
|||
|
1. Умова оптимальності |
1. Умова допустимості |
|
|||
|
Вибір змінної, що вводиться у |
Вибір змінної, що виводиться з |
|
|||
|
базис: вводимо ту змінну xj у |
базису: виводимо ту змінну xj, |
|
|||
|
якої |
dj>0 (min), |
для якої виконується: |
|
||
Етапи |
|
dj<0 (max). |
|
xj<0. |
|
|
|
|
|
|
|
||
методу |
|
|
|
|
|
|
|
|
2. Умова оптимальності |
|
|||
|
2. Умова допустимості |
|
||||
|
|
|
|
|
||
|
Вибір змінної, що виводиться з |
Вибір |
змінної, що |
вводиться у |
|
|
|
|
|
|
|
||
|
базису: вибираємо змінну таким |
базис: |
вибираємо |
змінну таким |
|
|
|
|
|
|
|
||
|
чином, щоб |
зберегти допусти- |
чином, |
щоб зберегти оптималь- |
|
|
|
|
|
|
|
||
|
мість розв’язку, що отримується |
ність розв’язку |
|
|
||
|
|
|
|
|
||
|
|
|
|
|
|
|
1.2.Сфера застосування двоїстого симплекс-методу
1.Розв’язок ЗЛП безпосередньо. Двоїстий симплекс-метод може безпосередньо застосовуватись для розв’язання тільки певного класу задач. В цих задачах знаки коефіцієнтів цільової функції та знаки обмежень не можуть бути довільними.
7
1.1.Значення коефіцієнтів цільової функції:
a)якщо цільова функція мінімізується, то усі коефіцієнти цільової функції
повинні бути невід’ємними1: cj 0;
б) якщо цільова функція максимізується, то усі коефіцієнти цільової функції повинні бути недодатними2: cj 0.
1.2.Знаки обмежень. Обмеження початкової ЗЛП з невід’ємними компонен-
тами вектора b мають лише знаки " " і " " (але не всі одночасно типу " ").
2.Розв’язок ЗЛП у випадках, коли після отримання оптимального розв’язку
взадачу вводиться нове (додаткове) обмеження (найбільш важлива сфера застосування).
3.Параметричне програмування. В постоптимальному аналізі ми обмежувалися діапазонами зміни, при яких поточний базис залишався оптимальним, причому кожного разу разглядався вплив зміни лише однієї складової.
Параметричне програмування – це метод знаходження того, як зміниться розв’язок задачі зміною або вектора коефіцієнтів ЦФ, або вектора обмежень [1].
1.3. Приклад застосування двоїстого симплекс-методу
Задача 1.1. Розв’яжемо ЗЛП двоїстим симплекс-методом. |
|
|
min z x1 x2 ; |
(8) |
|
2x1 x2 |
4 ; |
(9) |
x1 2x2 |
4 ; |
(10) |
x1 x2 10 ; |
(11) |
|
x1 ,x2 0 . |
(12) |
1У випадку, коли не усі коефіцієнти цільової функції невід’ємні можна застосовувати метод штучних обмежень (аналог М-методу, що використовує штучні змінні) [4].
2У випадку, коли не усі коефіцієнти цільової функції недодатні можна застосовувати метод штучних обмежень [4].
8
Зведемо спочатку усі обмеження до вигляду ” ”:
2x1 x2 4 ;
x1 2x2 4 ; x1 x2 10 ,
атепер у кожне з них введемо відповідну остаточну змінну
2x1 x2 s1 |
4 ; |
x1 2x2 |
s2 4 ; |
x1 x2 |
s3 10 . |
Ітерація 1.Початковий базисний розв’язок (недопустимий) задачі такий:
|
|
|
|
|
x1 |
|
|
0 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
x2 |
|
|
0 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
s |
|
= |
4 |
. |
|
|
|
|
|
|
||||
|
|
|
|
|
1 |
|
|
4 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
s2 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
s3 |
|
|
|
|
|
|
|
|
|
|||||
На рис. 1 цей розв’язок відповідає точці А(0,0). |
|
|
|
|
|
|
|||||||||||||
Заповнюємо симплекс-таблицю (табл. 2). |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблиця 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Базисні |
|
x1 |
|
x2 |
|
s1 |
|
|
s2 |
|
s3 |
|
Розв’язок |
|||||
|
змінні |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
z |
-1 |
-1 |
|
|
|
0 |
|
0 |
|
0 |
|
0 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s1 |
-2 |
-1 |
|
|
|
1 |
|
0 |
|
0 |
|
-4 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s2 |
|
-1 |
|
-2 |
|
|
|
0 |
|
|
1 |
|
|
0 |
|
|
-4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s3 |
1 |
1 |
|
|
|
0 |
|
0 |
|
1 |
|
10 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Значення залишкових змінних не забезпечують отримання допустимої стартової точки прямої задачи, але усі елементи z-рядка (dj) є недодатними.
Крок 1. Вибір змінної, що виводиться з базису.
За умовою допустимості за виводжувану з базису змінну вибирається
найбільша за модулем від’ємна базисна змінна. Таких змінних дві, розглянемо
9
змінну s2 .
Крок 2. Вибір змінної, що вводиться у базис.
За умовою оптимальності змінна, що вводиться у базис, вибирається з небазисних таким чином: обчислюються відношення коефіцієнтів лівої частини z-рівняння до відповідних коефіцієнтів рівняння, відповідної змінної, що виводиться. Відношення з додатними або нульовими значеннями знаменника не враховуються. У задачі на min змінній, що вводиться, повинне відповідати найменше з вказанних співвідношень. У задачі на max вибираємо відношення, найменше за абсолютною величиною (табл. 3).
|
|
|
|
|
|
Таблиця 3 |
|
|
|
|
|
|
|
|
|
Базисні |
x1 |
x2 |
s1 |
s2 |
s3 |
Розв’язок |
|
змінні |
|||||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Z |
-1 |
-1 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
s2 |
-1 |
-2 |
0 |
1 |
0 |
-4 |
|
Відношення |
1 |
1/2 |
- |
- |
- |
- |
|
|
|
|
|
|
|
|
= min{1,1/2}=1/2, тобто вводити до базису будемо змінну x2 .
Крок 3. Виконаємо операцію заміщення, використовуючи перетворення Жордана-Гауса (тобто звичайні симплекс-перетворення) (табл. 4).
Таблиця 4
Базисні |
x1 |
x2 |
s1 |
s2 |
s3 |
Розв’язок |
|
змінні |
|||||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Z |
-1/2 |
0 |
0 |
-1/2 |
0 |
2 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
s |
-3/2 |
0 |
1 |
-1/2 |
0 |
-2 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 |
-1 |
1 |
0 |
-1/2 |
0 |
2 |
|
|
|
|
|
|
|
|
|
s3 |
1 |
0 |
0 |
½ |
1 |
8 |
|
|
|||||||
|
|
|
|
|
|
|
Новий базисний розв’язок відповідає точці В(2,0) (див. рис. 1).
Ітерація 2.
10