- •Г 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. Потоки в мережах
- •Контрольні запитання та задачі
Метод гілок і границь
Нехай
потрібно максимізувати функцію
за умови, що
належить деякій скінченній множині
G. Перш за все шукаємо верхню границю
функції
на множині всіх планів G. Далі множину
G певним чином розбиваємо на декілька
неперетинаючих підмножин
.
Потім на одержаних підмножинах шукаємо
верхні границі
функції
.
Нехай
– підмножина, для якої
,
де
Якщо тепер на цій підмножині знайдеться
таке
,
що
,
то задача розв’язана: план
є оптимальним. Якщо такий план не
знайдено, то процес розбиття продовжуємо,
починаючи з множини
,
для якої
– найбільше. Оскільки множина всіх
планів скінченна, то оптимальний план
після скінченного числа розбиттів буде
знайдений.
Приклад
1.12. Методом
гілок і границь знайти найбільше значення
функції
при обмеженнях:
;
;
,
–
цілі числа.
Розв’язок. Будуємо область допустимих планів.
Рис. 1.12
Якщо
розглядати дану задачу без умови
цілочисельності, то найбільше значення
досягається в точці
і дорівнює
.
.
Оскільки,
,
то розіб’ємо G
на дві частини: одна з них
містить
ті допустимі плани, в яких
,
а в другу
увійдуть допустимі плани з
.
При цьому не буде втрачено жодного
допустимого цілочислового розв’язку.
Знайдемо
для функції
верхні межі в областях
і
:
і
.
Для цього розв’яжемо дві ЗЛП: знайти
найбільше значення функції
при обмеженнях
а) б)
де , – цілі числа. де , – цілі числа.
Рис.1.13
Розв’язуючи
дані задачі без умови цілочисельності,
встановлюємо, що найбільше значення
функції f
задачі а) досягається в точці
і дорівнює
,
в задачі б) – в точці
і дорівнює
.
Оскільки
>
,
то розбиваємо
на дві неперетинаючі підмножини
і
,
а за додаткові обмеження візьмемо
спочатку
,
а потім
.
Таким чином, приходимо до задачі: знайти
найбільше значення функції
при обмеженнях
в) г)
, – цілі числа. , – цілі числа.
Рис.1.14
З
рисунка видно, що задачу в) можна не
розглядати, оскільки вона не має жодного
допустимого плану; що стосується задачі
г) то в області
точка
задає її нецілочисловий оптимальний
план з
=
=
>
.
Розбивши
на дві неперетинаючі підмножини
і
,
і взявши за додаткові обмеження спочатку
,
а потім
,
прийдемо до наступної пари ЗЛП: знайти
найбільше значення функції
при обмеженнях
д) е)
, – цілі числа. , – цілі числа.
Оптимальні
плани задач д) і е) без умови
цілочисельності визначаються точками
і
і
=
= 4. Оскільки
,
то ми можемо стверджувати, що в точках
E і
F
функція
дійсно досягає найбільшого значення..
Рис.1.15
Зауваження
1.10. При розв’язуванні конкретних
задач методом гілок і границь оптимум
нерідко вдається відшукати доволі
швидко. Проте цю процедуру часто
доводиться виконувати багато разів,
оскільки в ході обчислень виникає
необхідність в неодноразовому поверненні
назад в пошуках нових гілок “дерева”
можливих варіантів. У прикладі, який ми
розглядали, нам не доводилось цього
робити тільки тому, що
>
,
а потім
=
>
.
