
- •Тема 2. Методи розв’язування задач лінійного програмування
- •2.1. Формальна постановка задачі лп
- •2.2. Геометричне представлення задач лп
- •2.3. Симплекс-метод та його варіанти
- •Загальна схема алгоритму симплекс-методу та його таблична форма
- •Методи знаходження початкового базового розв’язку: метод великих штрафів та двоетапний метод
- •Особливі випадки см та відображення їх в симплекс-таблицях
- •Інтерпретація симплекс-таблиць
- •2.4. Двоїстий та модифікований симплекс-метод. Блочні задачі лп Пряма та двоїста задачі лінійного проґрамування
- •Зв’язок між розв’язками прямої та двоїстої задач
- •Отримання оптимального розв’язку двоїстої задачі за допомогою симплекс-методу
- •Двоїстий симплекс-метод
- •Модифікований симплекс-метод
- •Блочні задачі лінійного програмування та підходи до їх розв’язування
- •2.5. Контрольні задачі
Методи знаходження початкового базового розв’язку: метод великих штрафів та двоетапний метод
Методи великих штрафів та двоетапний служать для можливості розв’язування задачі ЛП в тому випадку, коли початкового базового розв’язку з умови задачі виділити безпосередньо неможливо. В цьому випадку початковий базовий розв’язок будується шляхом введення штучних змінних. Звичайно, це приводить до необхідності введення додаткових обмежень — в початковому базовому розв’язку допускається від’ємність штучних змінних, тоді як в оптимальному розв’язкові їх не повинно бути, так як це порушуватиме деякі з обмежень первісної задачі.
Існує два шляхи позбавлення від штучних змінних в остаточному оптимальному розв’язкові – це або введення штрафів за відхилення значень штучних змінних від нуля та включення відповідних складових до функції мети (метод великих штрафів), або розв’язання на першому етапі допоміжної задачі, що дозволить отримати початковий базовий розв’язок без штучних змінних з подальшим розв’язанням класичним шляхом (двоетапний метод).
Метод великих штрафів приводить до необхідності розв’язання проблеми визначення конкретних значень штрафів. Якщо значення штрафів завеликі, то похибки заокруглення дуже суттєво можуть вплинути на результат, і знайдений розв’язок буде неоптимальним внаслідок мізерного вкладу значень первісних коефіцієнтів функції мети, тобто ці коефіцієнти будуть приблизно нульовими порівняно зі значеннями штрафів. Якщо ж значення штрафів невеликі, то штучні змінні в оптимальному розв’язку будуть ненульовими, тобто знайдений розв’язок буде неприпустимим.
Цих
недоліків позбавлений двоетапний метод,
в якому на першому етапі розв’язується
задача з введеними штучними змінними
(тобто з тими ж модифікованими обмеженнями),
але з функцією мети
.
Якщо в результаті розв’язування задачі
отримуємо розв’язок, у якому всі штучні
змінні нульові, то первісна задача має
припустимі розв’язки, в іншому випадку
задача не має розв’язків. Якщо є
розв’язок, то переходимо до наступного
етапу, і оптимальний розв’язок першого
етапу використовуємо як початковий
базовий розв’язок (всі штучні змінні
виведені з бази!), виключаємо штучні
змінні з таблиці і розв’язуємо задачу
за допомогою звичайного симплекс-методу.
Приклад 5).
Q= 4x1+x2 Min, Q= -4x1- x2 Max
3x1+ x2=3 3x1+ x2 =3
4x1+3x2>=6 4x1+3x2 -х3 =6
x1+2x2<=4 x1+2x2 +х4 =4
x1 >=0 x2 >=0 xj >=0
Вводимо штучні змінні R1 та R2, і отримуємо систему обмежень, яка використовуватиметься в обох методах:
3x1+ x2 +R1 =3
4x1+3x2 -х3 +R2 =6
x1+2x2 +х4 =4
Для методу великих штрафів необхідно, щоб в оптимальному розв’язку штучні змінні були виведеними з бази, тому функція мети матиме наступний вигляд:
Q = -4x1-x2-MR1-MR2 Max.
Для двоетапного методу функція мети першого етапу матиме вигляд: -R1-R2 Max.
Послідовність симплекс-таблиць для методу великих штрафів та двоетапного відповідно наведена нижче.
Метод великих штрафів
|
|
|
c1 |
c2 |
c3 |
c4 |
c5 |
c6 |
xb |
cb |
P0 |
-4 |
-1 |
0 |
0 |
-M |
-M |
|
|
|
P1 |
P2 |
P3 |
P4 |
R1 |
R2 |
R1 |
-M |
3 |
3 |
1 |
0 |
0 |
1 |
0 |
R2 |
-M |
6 |
4 |
3 |
-1 |
0 |
0 |
1 |
x4 |
0 |
4 |
1 |
2 |
0 |
1 |
0 |
0 |
Q |
|
0 |
4 |
1 |
0 |
0 |
0 |
0 |
|
*M |
-9 |
-7 |
-4 |
1 |
0 |
0 |
0 |
x1 |
-4 |
1 |
1 |
1/3 |
0 |
0 |
|
0 |
R2 |
-M |
2 |
0 |
5/3 |
-1 |
0 |
|
1 |
x4 |
0 |
3 |
0 |
5/3 |
0 |
1 |
|
0 |
Q |
|
-4 |
0 |
-1/3 |
0 |
0 |
|
0 |
|
*M |
-2 |
0 |
-5/3 |
1 |
0 |
|
0 |
x1 |
-4 |
3/5 |
1 |
0 |
1/5 |
0 |
|
|
x2 |
-1 |
6/5 |
0 |
1 |
-3/5 |
0 |
|
|
x4 |
0 |
1 |
0 |
0 |
1 |
1 |
|
|
Q |
|
-18/5 |
0 |
0 |
-1/5 |
0 |
|
|
x1 |
-4 |
2/5 |
1 |
0 |
0 |
-1/5 |
|
|
x2 |
-1 |
9/5 |
0 |
1 |
0 |
3/5 |
|
|
x3 |
0 |
1 |
0 |
0 |
1 |
1 |
|
|
Q |
|
-17/5 |
0 |
0 |
0 |
1/5 |
|
|
Двоетапний метод
|
|
|
c1 |
c2 |
c3 |
c4 |
c5 |
c6 |
xb |
cb |
P0 |
0 |
0 |
0 |
0 |
-1 |
-1 |
|
|
|
P1 |
P2 |
P3 |
P4 |
R1 |
R2 |
R1 |
-1 |
3 |
3 |
1 |
0 |
0 |
1 |
0 |
R2 |
-1 |
6 |
4 |
3 |
-1 |
0 |
0 |
1 |
x4 |
0 |
4 |
1 |
2 |
0 |
1 |
0 |
0 |
Q |
|
-9 |
-7 |
-4 |
1 |
0 |
0 |
0 |
x1 |
0 |
1 |
1 |
1/3 |
0 |
0 |
1/3 |
0 |
R2 |
-1 |
2 |
0 |
5/3 |
-1 |
0 |
-4/3 |
1 |
x4 |
0 |
3 |
0 |
5/3 |
0 |
1 |
-1/3 |
0 |
Q |
|
-2 |
0 |
-5/3 |
1 |
0 |
-1/3 |
0 |
x1 |
0 |
3/5 |
1 |
0 |
1/5 |
0 |
3/5 |
-1/5 |
x2 |
0 |
6/5 |
0 |
1 |
-3/5 |
0 |
-4/5 |
3/5 |
x4 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
-1 |
Q |
|
0 |
0 |
0 |
2/5 |
0 |
1 |
1 |
x1 |
-4 |
3/5 |
1 |
0 |
1/5 |
0 |
|
|
x2 |
-1 |
6/5 |
0 |
1 |
-3/5 |
0 |
|
|
x4 |
0 |
1 |
0 |
0 |
1 |
1 |
|
|
Q |
|
-18/5 |
0 |
0 |
-1/5 |
0 |
|
|
Наступна ітерація приводить до таблиці, ідентичної до останньої таблиці попереднього прикладу.