
- •6.1. Основні властивості задач динамічного програмування та недоліки методу
- •6.2. Загальна математична модель
- •6.3. Розв’язування дискретних задач
- •Рекурентне співвідношення
- •6.3.2. Таблиця оптимальних розв’язків
- •6.3.3. Приклад
- •6.4. Випадок двосторонніх обмежень на змінні
- •6.5. Задачі з багатьма видами ресурсів
- •6.6. Неперервні моделі
- •6.7. Задача управління запасами
- •Висновки
- •Контрольні запитання
- •7.1. Класифікація задач дискретного програмування
- •7.2. Лінійні цілочислові задачі
- •7.2.1. Метод відтинання. Додаткове обмеження
- •7.2.2. Перший алгоритм Гоморі
- •Приклад
- •7.3. Задачі з бульовими змінними
- •7.3.1. Задача про призначення
- •7.3.2. Угорський метод
- •7.3.3. Приклад
- •7.3.4. Задача про кільцевий маршрут
- •Метод розгалужень і меж
- •Початкова матриця
- •7.3.6. Приклад
- •Висновки
- •Контрольні запитання
7.2.2. Перший алгоритм Гоморі
Алгоритм розв’язування передбачає знаходження оптимального розв’язку повністю цілочислових задач і має таку послідовність.
Розв’язування задачі симплекс-методом, не враховуючи вимоги цілочисловості.
Аналіз знайденого розв’язку. Якщо розв’язок цілочисловий, то знайдено оптимальний цілочисловий розв’язок. Якщо хоча б одна базисна змінна
не є цілочисловою величиною, то для і-го рядку симплекс-таблиці треба скласти додаткове обмеження.
Складання додаткового обмеження-умови:
знаходиться дрібова частина вільного члена
для всіх рядків
,
де
– ціла частина числа
,
але менша від самого числа
,
тобто
,
наприклад,
вибирається такий
-й рядок, для якого
знаходяться дрібові частини коефіцієнтів
як
складається додаткове обмеження згідно з формулою
Якщо
всі
,
то задача не має цілочислового розв’язку.
Доповнення початкової математичної моделі задачі додатковим обмеженням, перетворення її до простого виду (якщо це можливо) та перехід до п.1 алгоритму для розв’язування побудованої моделі симплекс-методом.
Треба пам’ятати, що додаткове обмеження доцільно додавати не до початкової моделі, а до симплекс-таблиці знайденого оптимального нецілочислового розв’язку. При цьому треба використовувати двоїстий симплекс-метод, що набагато зменшує обсяг обчислювань. Але для того, щоб використовувати двоїстий симплекс-метод, зручніше початкову модель задачі звести до задачі на мінімум. Це пов’язано з невід’ємністю симплексного відношення, яке може бути тільки при від’ємних оцінках індексного рядку.
У
цьому випадку симплексна таблиця
оптимального нецілочислового розв’язку
доповнюється рядком з базисною змінною
:
Це
цілком очевидно, якщо додаткове обмеження
звести до нерівності типу „
”,
а потім до строгого рівняння за допомогою
додаткової змінної
.
Побудовану
таким чином симплекс-таблицю продовжують
розв’язувати двоїстим методом, причому
у першу чергу з базису виводиться змінна
, тому що для цього рядку
.
Знаходження розв’язку цілочислової задачі першим алгоритмом Гоморі показано блок-схемою на рис.7.3.
Приклад
Знайти цілочисловий розв’язок наступної математичної моделі:
та -цілочислові.
Математична
модель
Розв’язування
задачі симплекс-методом
Оптимальний
варіант
так
ні
Кінець
Відсутність
цілочисловості розв’язку
Вибір
i0-го
рядку згідно з
Знаходження
по i0-му
рядку
ні
Складання
додаткового обмеження
Додавання
додатковим обмеженням
початкової математичної моделі
Рис.7.3
Стандартна форма моделі
та -цілочислові.
Розв’язування задачі симплекс-методом і знаходження оптимального нецілочислового розв’язку у такій симплекс-таблиці:
|
|
|
-2 |
1 |
0 |
0 |
|
|
|
|
|
|
|
1 |
|
3/2 |
0 |
1 |
1/2 |
-1/2 |
-2 |
|
7/2 |
1 |
0 |
1/2 |
1/2 |
|
0 |
0 |
-1/2 |
-3/2 |
Обчислювання дрібових частин величин :
Ці частини у нашому випадку однакові, тому можна зробити вибір будь-якого з цих рядків, наприклад, перший, та скласти додаткове обмеження:
Тоді
.
Це обмеження перетворюється на рівняння так, щоб змінна була базисною:
та
.
Цим рівнянням доповнюється симплекс-таблиця оптимального неціло-числового розв’язку:
|
|
|
-2 |
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
1 |
|
3/2 |
0 |
1 |
1/2 |
-1/2 |
0 |
-2 |
|
7/2 |
1 |
0 |
1/2 |
1/2 |
0 |
0 |
|
-1/2 |
0 |
0 |
-1/2 |
3/2 |
1 |
|
0 |
0 |
-1/2 |
-3/2 |
0 |
Після виконання перетворення симплекс-таблиці згідно з алгоритмом розв’язування знаходиться симплекс-таблиця, яка відображує цілочисловий розв’язок:
|
|
|
-2 |
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
1 |
|
1 |
0 |
1 |
0 |
1 |
1 |
-2 |
|
3 |
1 |
0 |
0 |
2 |
1 |
0 |
|
1 |
0 |
0 |
1 |
-3 |
-2 |
|
0 |
0 |
0 |
-3 |
-1 |
Наслідок
розв’язку задачі: