
- •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.3.6. Приклад
Згідно з початковою матрицею знайти кільцевий маршрут постачання готової продукції від заводу до трьох баз призначення з мінімізацією загальної відстані пробігу автотранспорту.
Завод, який постачає готову продукцію, відображується у матриці першою точкою.
Початкова матриця має вигляд:
|
1 |
2 |
3 |
4 |
1 |
Х |
25 |
20 |
28 |
2 |
25 |
Х |
24 |
26 |
3 |
20 |
24 |
Х |
25 |
4 |
28 |
26 |
25 |
Х |
Процес розв’язування задачі такий.
По
кожному рядку знаходимо
та перетворюємо
початкову матрицю
на матрицю, зведену за рядками:
.
Потім по кожній колонці знаходимо
і перетворюємо знайдену матрицю
на повністю
зведену:
.
Така матриця має наступний вигляд:
|
1 |
2 |
3 |
4 |
1 |
Х |
4 |
04 |
6 |
2 |
1 |
Х |
0 |
0 |
3 |
0 |
3 |
Х |
3 |
4 |
3 |
0 |
0 |
Х |
Початкове значення нижньої межі усіх кільцевих маршрутів дорівнює
.
Для кожного нульового елемента цієї матриці знаходимо його оцінку (не враховуючи самого нульового елемента):
Вибір
максимальної оцінки
(можна вибрати і
,
яка показує на варіант розгляду двох
напрямків дерева-графа з дугою (13) (рис.
7.8).
92
Рис.7.8
Для наочності процесу розв’язування наведемо кінцевий дерево-граф прикладу (рис. 7.9).
(34),
(42)
92
96 96
98
(24),
(43)
96
96 96
100 98
Рис.7.9
Згідно з вибором дуги (13) з матриці виключається перший рядок та третя колонка, елемент , тому що він може подалі дати частковий кільцевий маршрут. Така матриця має вигляд:
|
1 |
2 |
4 |
2 |
1 |
Х |
0 |
3 |
Х |
3 |
3 |
4 |
3 |
0 |
Х |
Потім
цю матрицю перетворюємо на повністю
зведену:
:
|
1 |
2 |
4 |
2 |
02 |
Х |
00 |
3 |
Х |
00 |
00 |
4 |
2 |
02 |
Х |
Знаходимо нижню межу маршрутів з включенням дуги (13):
Згідно з одержаною матрицею знаходимо оцінки для кожного нульового елемента
і
вибираємо за максимальною величиною
дугу (21), яка включається до складу
послідовності
Потім
виключається другий рядок та перша
колонка, тобто
,
тому що набір
послідовності
з дугою (32) може дати надалі частковий
кільцевий маршрут. Така матриця має
вигляд:
|
2 |
4 |
3 |
Х |
0 |
4 |
0 |
Х |
Одержана матриця має розмір (2х2). Таким чином, послідовність доповнюється дугами (34) та (42), а оцінка нижньої межі не змінюється, тому що ця матриця є повністю зведеною.
Отже,
та
.
З
набору знайдених дуг послідовності
будується кільцевий маршрут
,
який має
значення цільової функції
=
96.
Другий розвиток знаходження варіантів розв’язку задачі виконуємо тоді, коли дуга (13) не увійшла до послідовності .
Для
цього у відповідній матриці змінюємо
та перетворюємо її до повністю зведеної:
|
1 |
2 |
3 |
4 |
1 |
Х |
4 |
Х |
6 |
2 |
1 |
Х |
0 |
0 |
3 |
0 |
3 |
Х |
3 |
4 |
3 |
0 |
0 |
Х |
|
1 |
2 |
3 |
4 |
1 |
Х |
0 |
Х |
2 |
2 |
1 |
Х |
0 |
0 |
3 |
0 |
3 |
Х |
3 |
4 |
3 |
0 |
0 |
Х |
Таким чином, цей напрямок пошуку рівноцінний з першим напрямком пошуку; тому, щоб знайти інші варіанти розв’язку, доцільно також розглянути і цей напрямок.
Знаходяться оцінки нульових елементів:
Отже, вибирається дуга (31), а , та виключаються третій рядок і перша колонка. Така матриця має вигляд:
|
2 |
3 |
4 |
1 |
0 |
Х |
2 |
2 |
Х |
0 |
0 |
4 |
0 |
0 |
Х |
Зрозуміло, що таку послідовність треба розглядати подалі.
З цієї матриці знаходимо
та
по послідовності
включаємо дугу (І2).
Потім
виключаємо перший рядок та другу колонку
,
тому що послідовність має вигляд (312).
Така матриця
має
вигляд:
|
3 |
4 |
2 |
Х |
0 |
4 |
0 |
Х |
Ця
матриця повністю зведена,
і має розмір (2Х2). До
включаються дуги (24) та (43) і будується
кільцевий маршрут
Третій
напрямок пошуку є з дугою (
),
для якої будується наступна матриця:
|
2 |
3 |
4 |
1 |
Х |
Х |
2 |
2 |
Х |
0 |
0 |
4 |
0 |
0 |
Х |
Одержана матриця перетворюється на повністю зведену і знаходиться нижня межа оцінки
.
Цей напрямок має вищу оцінку, тому подалі він не розглядається.
Перевіряємо інші напрямки пошуку.
Напрямок
3 (
)
має наступну матрицю:
|
1 |
2 |
3 |
4 |
1 |
Х |
0 |
Х |
2 |
2 |
1 |
Х |
0 |
0 |
3 |
Х |
0 |
Х |
0 |
4 |
3 |
0 |
0 |
Х |
Цей
напрямок також має вищу оцінку:
Тому подалі він не розглядається.
Перевіримо
напрямок з (13) (
),
для якого маємо наступну матрицю:
|
1 |
2 |
4 |
2 |
Х |
Х |
0 |
3 |
Х |
0 |
0 |
4 |
2 |
0 |
Х |
Для
цього напрямку
і цей напрямок також подалі не
розглядається.