- •Методичнi вказiвки до самостійної роботи з дисциплiни «Математичні методи дослідження операцій»
- •Методичнi вказiвки до самостійної роботи з дисциплiни «Математичні методи дослідження операцій»
- •1. Двоїстий симплекс-метод
- •1.1. Схема двоїстого симплекс-методу для задачі максимізації цф
- •1.2. Сфера застосування двоїстого симплекс-методу
- •1.3. Приклад застосування двоїстого симплекс-методу
- •1.4. Додавання нового обмеження
- •1.6. Контрольні завдання
- •1.5. Завдання до самостійної роботи
- •Варіанти завдань
- •2. Алгоритм Гоморі
- •Проблемы, возникающие при округлении решения злп
- •2.1. Загальна характеристика методів відсікання
- •2.2. Метод відсікання Гоморі
- •2.3. Схема алгоритму Гоморі
- •2.4. Эффективность отсечения Гомори
- •2.5. Приклади застосування алгоритму Гоморі Приклад 5. Max ; (25)
- •2.6. Вправи
- •2.7. Контрольні запитання
- •2.8. Завдання для контрольної роботи
- •Список літератури
- •1. Двоїстий симплекс-метод 3
- •2. Алгоритм Гоморі 17
2.5. Приклади застосування алгоритму Гоморі Приклад 5. Max ; (25)
;
(26)
;
(27)
;
(28)
-
цілі.
(29)
Зведемо задачу до канонічної форми:
max
;
(25а)
;
(26а)
;
(27а)
;
(28а)
-
цілі.
(29а)
Розглянемо початкову симплекс-таблицю послабленної задачі (25а) - (28а) :
Таблиця 11
Базисні змінні |
|
|
|
|
Розв’язок |
Z |
0 |
-1 |
0 |
0 |
0 |
|
3 |
2 |
1 |
0 |
6 |
|
-3 |
2 |
0 |
1 |
0 |
Після двох ітерацій симплекс-методу отримаємо оптимальну симплекс-таблицю послабленої задачі :
Таблиця 12
Базисні змінні |
|
|
|
|
Розв’язок |
Z |
0 |
0 |
|
|
|
|
1 |
0 |
|
|
1 |
|
0 |
1 |
|
|
|
Через
те, що отриманий розв’язок
не є цілочисловим, слід поширити дану
задачу шляхом введення відсікання.
У даному випадку
-рядкок
співпадає з
-рядком,
значить, відсікання,
побудуване за
-рядком
співпаде з відсіканням
за
-рядком
і тому немає сенсу говорити про більш
ефективне рівняння-відсікання.
Отже, породжуюче рівняння має такий вигляд:
.
Виділимо цілі і дробові частини коефіцієнтів:
.
Сформуємо за цим обмеженням рівняння-відсікання Гоморі:
(30)
І введемо його в оптимальну симплекс-таблицю послабленої задачі (табл. 13).
Таблиця 13
Базисні змінні |
|
|
|
|
|
Розв’язок |
Z |
0 |
0 |
|
|
0 |
|
|
1 |
0 |
|
|
0 |
1 |
|
0 |
1 |
|
|
0 |
|
|
0 |
0 |
|
|
1 |
|
Застосувавши двоїстий симплекс-метод, отримуємо оптимальне розв’язок задачі (25а) - (28а), (30) (табл. 14)
Таблиця 14
Базисні змінні |
|
|
|
|
|
Розв’язок |
Z |
0 |
0 |
0 |
0 |
1 |
1 |
|
1 |
0 |
0 |
|
|
|
|
0 |
1 |
0 |
0 |
1 |
1 |
|
0 |
0 |
1 |
1 |
-4 |
2 |
Розв’язок
знову не задовольняє обмеження
цілочисельності (29). Тому продовжимо
процес побудови відсікань за допомогою
алгоритму Гоморі. У поточному розв’язку
тільки змінна
не ціла. За таблицею 14
- рядок
має вигляд:
.
Виділимо цілі і дробові частини коефіцієнтів:
.
Відсікання, побудоване за цим обмеженням, має вигляд:
.
Додамо його до останньої симплекс-таблиці та знову застосуємо двоїстий симплекс- метод (табл. 15).
Таблиця 15
Базисні змінні |
|
|
|
|
|
|
Розв’язок |
|||||||
Z |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
|||||||
|
1 |
0 |
0 |
|
|
0 |
|
|||||||
|
0 |
1 |
0 |
0 |
1 |
0 |
1 |
|||||||
|
0 |
0 |
1 |
1 |
-4 |
0 |
2 |
|||||||
|
0 |
0 |
0 |
|
|
1 |
|
|||||||
Z |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
|||||||
|
1 |
0 |
0 |
0 |
1 |
|
1 |
|||||||
|
0 |
1 |
0 |
0 |
1 |
0 |
1 |
|||||||
|
0 |
0 |
1 |
0 |
-5 |
|
1 |
|||||||
|
0 |
0 |
0 |
1 |
1 |
|
1 |
|||||||
Отримали оптимальний розв’язок початкової задачі: z=1, x1=1, x2=1.
А тепер переконаємося в тому, що розглянуті вище відсікання виключають деякі області многокутника допустимих розв’язків послабленої задачі, але не виключають жодного допустимого цілочислового розв’язку.
Перше рівняння-відсікання має вигляд:
.
З рівнянь (26а) и (27а) виразимо залишкові змінні x3 і x4 через x1 та x2 :
,
,
та підставимо їх у перше рівняння-відсікання.
.
Після зведення подібних отримаємо:
або
(рис.
10).
Р
ис.10.
Графічна ілюстрація процесу
розв’язання
ЗЦЛП з прикладу
5
Друге рівняння-відсікання має вигляд:
.
З першого рівняння-відсікання виразимо змінну s1 через x3 та x4 :
.
і підставимо у друге рівняння-відсікання:
;
.
В останню рівність підставимо вираз для залишкових змінних x3 і x4 (отримані з рівнянь (26а) и (27а) ), після зведення подібних отримаємо:
або
.
Введення цих точок двох обмежень у початкову систему дозволяє отримати нову екстремальну з координатами (1,1), в якій досягається оптимальний розв’язок для початкової цілочислової задачі (див. рис. 10).
Приклад 6. Розв’язати ЗЦЛП.
z
= 2x1 + 3x2 ; (31)
12x1 – 4x2 3 ; (32)
12x1 + 4x2 9 ; (33)
x1 , x2 0 ; (34)
x1 , x2 - цілі. (35)
Початковий розв’язок цієї задачі можна отримати за допомогою двохетапного або М-методу. Оптимальна таблиця послабленої задачі (31)-(34) буде такою:
Таблиця 16
Базисні змінні |
|
|
|
|
Розв’я-зок |
Z |
0 |
0 |
|
|
|
|
1 |
0 |
|
|
|
|
0 |
1 |
|
|
|
Розв’язок послабленої задачі не є цілочисловим.
Правило
1. Отсечение (
причем, по крайней мере, в одном случае выполняется строгое неравенство. |
За
правилом 1, відсікання, побудоване за
-рядком
більш ефективне, ніж відсікання,
побудоване за
-рядком.
За цим правилом не можна зробити висновок
щодо ефективності відсікань за рядками
змінних
та
:
(відсікання
за
-рядком),
(відсікання
за
-рядком),
(відсікання
за
-рядком).
Отже, зупинимось на -рядку, який має вигляд
і призводить до відсікання
,
яке додамо до табл. 16 (розв’язання відповідної розширеної ЗЛП двоїстим симплекс-методом показано в табл. 17).
Таблиця 17
Базисні змінні |
|
|
|
|
|
Розв’язок |
|
Z |
0 |
0 |
|
|
0 |
|
|
|
1 |
0 |
|
|
0 |
|
|
|
0 |
1 |
|
|
0 |
|
|
|
0 |
0 |
|
|
1 |
|
|
Z |
0 |
0 |
0 |
|
|
|
|
|
1 |
0 |
0 |
|
|
|
|
|
0 |
1 |
0 |
0 |
1 |
0 |
|
|
0 |
0 |
1 |
1 |
-8 |
6 |
|
x1
- рядок породжує відсікання:
.
Додамо його до останньої
симплекс-таблиці. (табл. 18).
Таблиця 18
Базисні змінні |
|
|
|
|
|
|
Розв’язок |
Z |
0 |
0 |
0 |
|
|
0 |
|
|
1 |
0 |
0 |
|
|
0 |
|
|
0 |
1 |
0 |
0 |
1 |
0 |
0 |
|
0 |
0 |
1 |
1 |
-8 |
0 |
6 |
|
0 |
0 |
0 |
|
|
1 |
|
Виконавши ітерацію двоїстого симплекс-методу, отримаємо :
Таблиця 19
Базисні змінні |
|
|
|
|
|
|
Розв’язок |
z |
0 |
0 |
0 |
0 |
1 |
2 |
0 |
|
1 |
0 |
0 |
0 |
-1 |
1 |
0 |
|
0 |
1 |
0 |
0 |
1 |
0 |
0 |
|
0 |
0 |
1 |
0 |
-16 |
12 |
-3 |
|
0 |
0 |
0 |
1 |
8 |
-12 |
9 |
Розв’ язок ще не є допустимим, тому виконаємо ще одну ітерацію двоїстого симплекс-методу (результат ітерації – у табл. 20):
Таблиця 20
Базисні змінні |
|
|
|
|
|
|
Розв’ язок |
z |
0 |
0 |
|
0 |
0 |
|
|
|
1 |
0 |
|
0 |
0 |
|
|
|
0 |
1 |
|
0 |
0 |
|
|
|
0 |
0 |
|
0 |
1 |
|
|
|
0 |
0 |
|
1 |
0 |
-6 |
|
Бачимо, що нульовий та другий рядки містять всі невід’ємні коефіцієнти при від’ємному розв’язку. Це означає, що задача не має цілочислового розв’язку. Покажемо це графічно (рис. 11).
Перше і друге відсікання мають вигляд:
;
.
У змінних x1 і x2 ці обмеження відповідно такі:
і
.
Р
ис.
11. Графічна ілюстрація розв’язку
прикладу 6
Приклад 7. Мax z=4x1 + 7x2 ; (36)
2x1 + 5x2 10 ; (37)
3x1 + 4x2 12 ; (38)
x1 ,x2 0 ; (39)
x1 ,x2 - цілі. (40)
Оптимальна симплекс-таблиця послабленої задачі (36) - (40) буде такою:
Таблиця 21
Базисні змінні |
|
|
|
|
Розв’язок |
z |
0 |
0 |
|
|
|
|
1 |
0 |
|
|
|
|
0 |
1 |
|
|
|
Розв’
язок послабленної задачі не є цілочисловим.
Відсікання, побудовані за
-рядком
та
-рядком
співпадають. За правилом 1 відповідне
відсікання ефективніше за відсікання
за
-рядком.
Побудуємо відсікання за рядком
,
що має наступний вигляд:
.
Це призводить до відсікання (табл. 22):
.
Таблиця 22
Базисні змінні |
|
|
|
|
|
Розв’ язок |
z |
0 |
0 |
|
|
0 |
|
|
1 |
0 |
|
|
0 |
|
|
0 |
1 |
|
|
0 |
|
|
0 |
0 |
|
|
1 |
|
Z |
0 |
0 |
|
0 |
|
|
|
1 |
0 |
-1 |
0 |
1 |
2 |
|
0 |
1 |
|
0 |
|
|
|
0 |
0 |
|
1 |
|
|
Розв’
язок розширеної задачі
не є цілочисловим.
-рядок
(як і
-рядок)
породжує відсікання:
.
Додамо його до останньої симплекс-таблиці :
Таблиця 23
Базисні змінні |
|
|
|
|
|
|
Розв’ язок |
z |
0 |
0 |
|
0 |
|
0 |
|
|
1 |
0 |
-1 |
0 |
1 |
0 |
2 |
|
0 |
1 |
|
0 |
|
0 |
|
|
0 |
0 |
|
1 |
|
0 |
|
|
0 |
0 |
|
0 |
|
1 |
|
Виконавши ітерацію двоїстого симплекс-методу, отримаємо наступну симплекс-таблицю :
Таблиця 24
Базисні змінні |
|
|
|
|
|
|
Розв’ язок |
z |
0 |
0 |
0 |
0 |
1 |
|
|
|
1 |
0 |
0 |
0 |
2 |
|
|
|
0 |
1 |
0 |
0 |
-1 |
1 |
1 |
|
0 |
0 |
0 |
1 |
-2 |
1 |
1 |
|
0 |
0 |
1 |
0 |
1 |
|
|
У базис увійшла змінна , це означає, що обмеження, яке відповідає -рядку,
є надлишковим. Це означає, що рядок і стовпець, які відповідають цій змінній, можна не розглядати (табл. 25):
Таблиця 25
Базисні змінні |
|
|
|
|
|
Розв’ язок |
z |
0 |
0 |
0 |
1 |
|
|
|
1 |
0 |
0 |
2 |
|
|
|
0 |
1 |
0 |
-1 |
1 |
1 |
|
0 |
0 |
1 |
1 |
|
|
За
-рядком побудуємо нове обмеження-відсікання:
.
Виконавши ітерацію двоїстого симплекс-методу, отримаємо оптимальний розв’ язок вхідної задачі :
Таблиця 26
Базисні змінні |
|
|
|
|
|
|
Розв’ язок |
Z |
0 |
0 |
0 |
1 |
0 |
1 |
16 |
|
1 |
0 |
0 |
2 |
0 |
-5 |
4 |
|
0 |
1 |
0 |
-1 |
0 |
3 |
0 |
|
0 |
0 |
1 |
1 |
0 |
-5 |
2 |
|
0 |
0 |
0 |
0 |
1 |
-3 |
1 |
Р
озв’
язок цього прикладу проілюстровано на
рис. 12:
Рис. 12. Графічна ілюстрація розв’язку прикладу 7
