- •Дослідження операцій
- •Загальна задача лп. Допустима область та її властивості. Поняття вершини допустимої області, базисного (опорного) плану задачі.
- •Стандартна задача лп. Зведення загальної задачі до стандартної. Канонічна задача лп. Зведення стандартної задачі до канонічної.
- •1. Алгоритм симплекс-методу.
- •Симплексні перетворення. Відносні оцінки змінних. Критерій оптимальності базисного плану. Ознака необмеженості цільової функції. Алгоритм симплексного методу.
- •Побудова початкового базисного плану. Метод штучної бази. М-метод.
- •Двоїстість в лп. Несиметрична та симетрична пари двоїстих задач. Теореми двоїстості. Двоїстий симплекс-метод.
1. Алгоритм симплекс-методу.
Симплекс-метод застосовується до канонічної задачі лінійного програмування, яка має вигляд:
,
де
.
Знаходиться початковий базисний розв’язок (опорний план)
.
Обчислюються відносні оцінки змінних:
(для
базисних змінних відносні оцінки рівні
нулю). Отже, побудована початкова
ітерація. Припустимо, що побудована
s-та
ітерація.
Проводиться аналіз відносних оцінок небазисних змінних:
якщо всі відносні оцінки невід’ємні, то отриманий базисний розв’язок
є оптимальним. Вихід з алгоритму;якщо і , то цільова функція (лінійна форма) необмежена знизу. Вихід з алгоритму;
якщо але
,
то змінну
можна ввести в число базисних змінних.
З числа базисних змінних виключається
змінна
,
де номер l
знаходиться
наступним чином l:
,
індекс k
шукається k:
.
При цьому коефіцієнти нової задачі
обчислюються за формулами:
Новий
базисний розв’язок буде:
при цьому значення лінійної форми:
,
зменшується на
.
Переходимо на початок п.3.
Завдяки тому, що кількість вершин скінчена на деякому кроці буде здійснюватись вихід із циклу.
Відомо, що симплекс-метод може бути використаний тільки для невироджених задач. Тобто, для задач в яких базисні розв’язки невироджені.
Зауваження.
Розв’язок вироджений, якщо
і метод зациклюється. Тобто, знаходимось
в одній вершині, але міняємо базисні
координати.
При розрахунках зручно користуватись симплекс-таблицями. Якщо задача канонічна, то таблиця має вигляд:
№ ітерації |
базисні змінні |
|
|
|
... |
|
... |
|
|
|
Примітки |
|
|
... |
|
... |
|
||||||
0 |
|
|
1 |
0 |
... |
0 |
... |
|
|
|
|
|
|
0 |
1 |
... |
0 |
... |
|
|
|
||
... |
... |
... |
... |
... |
... |
... |
... |
... |
|
||
|
|
0 |
0 |
... |
1 |
... |
|
|
|
||
|
|
0 |
0 |
... |
0 |
... |
|
|
|
Приклад. Нехай задано деяку стандартну задачу лінійного програмування:
Зведемо цю задачу до канонічного виду:
Цю задачу тепер можна розв’язати за допомогою симплекс-методу. Побудуємо симплекс-таблицю.
-
№ ітерації
базисні змінні
-2
-1
-7
0
0
Примітки
0
0
1
2
3
1
0
4
4/3
– ввести
– вивести
0
-1
-4
10
0
1
7
7/10
0
-2
-1
-7
0
0
1
0
13/10
32/10
0
1
-3/10
19/10
19/32
– ввести
– вивести
-7
-1/10
-4/10
1
0
1/10
7/10
-
-49/10
-27/10
-38/10
0
0
7/10
2
-1
13/32
1
0
10/32
-3/32
19/32
19/13
– ввести
– вивести-7
2/32
0
1
4/32
2/32
30/32
30/13
-229/32
-37/32
0
0
38/32
11/32
3
-2
1
32/13
0
10/13
-3/13
19/13
-7
0
-2/13
1
1/13
1/13
11/13
-115/13
0
37/13
0
27/13
1/13
Всі
відносні оцінки невід’ємні. Отже,
знайдений розв’язок є оптимальним
розв’язком канонічної задачі
,
при цьому оптимальний розв’язок
початкової (заданої) задачі буде
.
