- •Г 55 Математичне програмування: Навчальний посібник. – Львів: Вид-во лка, 2004. – 240 с.
- •Передмова
- •Типова програма
- •Предмет і задачі математичного програмування деякі задачі управління і планування
- •Розділ 1. Лінійне програмування (лп)
- •Форми запису задач лп
- •1.2. Геометрична інтерпретація злп. Графічний метод розв’язування
- •Контрольні запитання та задачі
- •1.3. Опорні плани злп
- •Контрольні запитання та задачі
- •1.4.1. Загальні положення см
- •1.4.2. Алгоритм см у формі тотожних перетворень
- •1.4.3. Табличний запис злп. Алгоритм см для злп, представлених в симетричній формі.
- •Алгоритм см для злп, представлених в загальному виді
- •Контрольні запитання та задачі
- •1.5.1. Загальні зауваження
- •1.5.2. Теореми двоїстості. Економічний зміст оптимальних планів пари дз
- •1.5.3. Двоїстий см
- •Контрольні запитання та задачі
- •1. 6. Транспортна задача(тз)
- •1.6.1. Постановка тз. Відкрита і закрита моделі
- •1.6.2. Методи побудови опорного плану тз
- •Метод потенціалів для перевірки оптимальності плану тз
- •Контрольні запитання та задачі
- •1.7. Цілочислове програмування
- •1.7.1. Постановка задачі цілочислового програмування (зцлп)
- •Метод відтинаючих площин
- •Метод гілок і границь
- •1.7.4. Алгоритм Гоморі
- •Контрольні запитання та задачі
- •Розділ 2. Графи і мережі
- •2.1. Загальні поняття
- •2.2 Неорієнтовані графи
- •2.3. Орієнтовані графи
- •2.4. Матричне представлення графів
- •2.5 Мережі
- •2.5.1. Мінімізація мережі
- •2.5.2.Задача про найкоротший шлях
- •2.5.3. Потоки в мережах
- •Контрольні запитання та задачі
1.7.4. Алгоритм Гоморі
Р. Гоморі для отримання цілочислових розв’язків розробив алгоритм, який використовує відому симплексну процедуру. Як і в методі відтинаючих площин, спочатку ЗЦЛП розв’язується без умови цілочисельності. Якщо отриманий розв’язок є цілим, то задача розв’язана. В протилежному випадку до обмежень задачі додається ще одне, яке ми назвали правильним відтинанням.
Після цього отримана ЗЛП розв’язується з врахуванням нового обмеження. Потім, якщо потрібно, додається ще одне відтинаюче обмеження і т.д. до отримання повністю цілочислового розв’язку задачі.
Припустимо,
що в результаті розв’язування СМ
канонічної ЗЛП (1.41)–(1.43) одержали
оптимальний план
,
в якому, наприклад,
– неціла компонента. Нерівність
,
(1.45)
сформована за k-им рядком, володіє всіма властивостями правильного відтинання.
В
(1.45) символ
означає дробову частину числа.
Визначення.1.21.
Дробовою частиною
числа а називають різницю між цим
числом і його цілою частиною
,
тобто найменшим цілим, яке не перевищує
а.
Наприклад,
якщо
,
то
якщо
,
то
Для розв’язування ЗЦЛП (1.41)–(1.44) використовують наступний алгоритм.
СМ розв’язуємо ЗЛП (1.41)–(1.43). Якщо всі компоненти оптимального плану цілі, то він є оптимальним і для ЗЦЛП (1.41)–(1.44). Якщо ЗЛП (1.41)–(1.43) не має розв’язку, то і ЗЦЛП (1.41)–(1.44) також не має розв’язку. Якщо ж серед компонент оптимального плану є нецілі, то переходимо до п.2.
Серед нецілих компонент вибираємо компоненту з найбільшою дробовою частиною і за відповідним рядком симплексної таблиці, яка містить нецілочисловий оптимальний план, будуємо правильне відтинання (1.45).
Нерівність (1.45), введенням додаткової невід’ємної цілочислової змінної, перетворюємо в еквівалентне рівняння і включаємо його в симплексну таблицю з нецілочисловим оптимальним планом.
Одержану розширену ЗЛП розв’язуємо СМ. Якщо одержаний оптимальний план буде цілочисловим, то ЗЦЛП (1.41)–(1.44) розв’язана. В іншому разі повертаємося до п.2.
Якщо задача має розв’язок в цілих числах, то після скінченного числа ітерацій оптимальний цілочисловий план буде знайдений. Якщо ж в процесі розв’язування з’явиться рядок з нецілим вільним членом і рештою цілих коефіцієнтів, то відповідне рівняння не має розв’язку в цілих числах. В цьому випадку і дана задача не має цілочислового оптимального плану.
Приклад
1.13. Знайти
найбільше значення функції
при обмеженнях
; , , – цілі числа.
Розв’язок. Розв’язуючи задачу без обмеження цілісності змінних СМ, одержали оптимальний план.
З
-y2
-y3
1
y1
–1
–1
18
x1
x2
0
1
8
f
,
Ввівши
додаткову цілочислову змінну
,
одержимо
Доповнимо попередню таблицю ще одним
рядком і провівши один крок перетворень
Жордана-Гаусса, матимемо:
-
–
–
1
–1
–1
18
–
–
19
1
–2
2
0
1
8
–
7
–
–
–
–
1
25
25
З
останньої таблиці отримуємо оптимальний
цілочисловий план
