Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

__2014_DvojstvennSM+Gomory_ukr_rus_new

.pdf
Скачиваний:
7
Добавлен:
12.05.2015
Размер:
1.62 Mб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ «КИЇВСЬКИЙ ПОЛ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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]