- •7.080401 «Інформаційні управляючі системи та технології»
- •Математичні методи дослідження операцій у будівництві: б12 Навчальний посібник. – к: кнуба, 2006. – 107 с.
- •2.5. Алгоритм розрахунку псевдоплану для двоїстого
- •4.2. Класифікація методів розв’язання задач цілочислового
- •5.5. Задача прогнозування термінів ремонту будівельних
- •6.4. Задача про найкоротший шлях для орієнтованих та
- •6.5. Задача про найкоротший шлях для багатополюсних мереж.
- •6.7. Задача про максимальний потік для однополюсних мереж.
- •7.5. Сепарабельне програмування.
- •8.2. Загальний алгоритм складання розкладу занять
- •1. Загальні визначення, класифікація моделей і методів
- •1.1. Загальні визначення дослідження операцій
- •1.2. Приклади постановок задач лінійного програмування та їх геометрична інтерпретація Задача про рекламу
- •Задача про бетонно-розчинний вузол (брв)
- •1.3. Основні етапи та класифікація моделей та методів дослідження операцій
- •Контрольні запитання
- •2. Лінійне програмування
- •Розглянемо приклад розв’язання задачі лінійного програмування:
- •2.1. Графічний метод розв’язання задач лінійного програмування
- •2.2. Алгоритм зведення до канонічного вигляду задач лінійного програмування
- •2.3. Метод симплекс-таблиць
- •2.4. Двоїста задача лінійного програмування
- •Отримавши результат – вектор y, можна на базі описаної системи знайти вектор X. Для розв’язання прямої задачі потрібно:
- •2.5. Алгоритм розрахунку псевдоплану для двоїстого симплекс-методу
- •3*10 – Розмірність задачі см.
- •2.6. Двоїстий симплекс-метод
- •Контрольні запитання
- •3. Задачі спеціального лінійного програмування
- •Задача призначення (про розподілення обладнання). Між чотирма кар’єрами потрібно розподілити п’ять екскаваторів таким чином, щоб їх виробітка була максимальною.
- •3.2. Задача про призначення
- •Алгоритм угорського методу задачі призначення має такі етапи.
- •3.3. Методи пошуку опорного рішення транспортної задачі
- •Метод Північно–Західного Кута (мпзк) має такі етапи:
- •Метод мінімального елемента (мме) має такі етапи:
- •3.4. Метод потенціалів транспортної задачі
- •Примітка. Цільова функція має постійно покращуватися (крім випадку, коли спрямовуючий елемент рівний ). Контроль правильності розрахунку має завжди дорівнювати:
- •Розглянемо алгоритм розв’язання задач методом потенціалів.
- •3.5. Угорський метод транспортної задачі
- •3.6. Різновиди транспортної задачі та їх використання
- •Контрольні запитання
- •4. Задачі цілочислового лінійного програмування
- •4.1. Загальне визначення цілочислового лінійного програмування
- •4.2. Класифікація методів розв’язання задач цілочислового лінійного програмування
- •Розв’язавши графічно, одержимо:
- •4.3. Метод відтинаючих площин
- •У комп’ютерній програмі стратегія реалізується таким чином.
- •Контрольні запитання
- •5. Динамічне програмування
- •5.1. Загальні визначення та алгоритм динамічного програмування
- •До особливостей розв’язку задач дп можна віднести.
- •5.2. Задача про інвестиції
- •5.3. Задача розрахунку траєкторії літака
- •5.4. Задача про рюкзак (завантаження транспортного засобу)
- •5.5. Задача прогнозування термінів ремонту будівельних конструкцій
- •Контрольні запитання
- •6. Методи аналізу мереж та потокове програмування
- •6.1. Загальні визначення потокового програмування
- •6.2. Способи представлення мереж
- •6.3. Типові задачі оптимізації на мережах
- •1. Задача визначення найкоротшого шляху в мережі:
- •6.4. Задача про найкоротший шлях для орієнтованих та біорієнтованих мереж. Алгоритми Дейкстра 1 та 2
- •6.5. Задача про найкоротший шлях для багатополюсних мереж. Алгоритм Флойда
- •6.6. Задача про мінімальний остов
- •6.7. Задача про максимальний потік для однополюсних мереж. Алгоритм Дейкстра 4
- •6.8. Задача про максимальний потік для багатополюсних мереж. Мінімальний розріз. Алгоритм Гоморі-Ху
- •Контрольні запитання
- •7. Розв’язання задач нелінійного програмування
- •7.1. Загальні визначення нелінійного програмування
- •7.2. Правило множників Лагранжа
- •7.3. Узагальнене правило Лагранжа
- •7.4. Умова Куна-Такера
- •7.5. Сепарабельне програмування. Метод кусочно-лінійної апроксимації
- •7.6. Загальна класифікація задач нелінійного програмування
- •8. Розв’язання багатокритеріальних задач
- •8.1. Основні визначення та моделі багатокритеріальних задач
- •8.2. Загальний алгоритм складання розкладу занять з використанням методів дослідження операцій
- •8.3. Класифікація методів технічного пошуку рішень
- •8.4. Моделювання гнучкості для забезпечення властивості бути керованим
- •Список літератури
6.8. Задача про максимальний потік для багатополюсних мереж. Мінімальний розріз. Алгоритм Гоморі-Ху
Маючи карту міської водопровідної мережі, де зазначені пропускні спроможності магістралей в обох напрямках, треба так визначити витік (водонапірна башта) та стік (водозабірний насос), щоб потік мережі був максимальним.
Інший варіант задачі: маючи карту вулиць міста, треба визначити місця в’їзду та виїзду для транзитного транспорту, щоб поставити знак «Рух транзитного транспорту заборонено».
Задача може бути розв’язана на основі теореми про мінімальний розріз, яка стверджує, що пропускна спроможність мережі дорівнює її мінімальному розрізу або максимальному потокові. Розглянемо деякі з визначень
1.
Розріз
– це мінімальна множина дуг, яка дає
змогу відключити вершини одну від одної,
що робить мережу незв’язною.
-
16
7
17
15
9
15
16
-
7
16
15
9
15
7
7
-
7
7
7
7
17
16
7
-
15
9
15
15
15
7
15
-
9
15
9
9
7
9
9
-
9
15
15
7
15
15
9
-
2. Пропускна спроможність розрізу – це сума пропуск-них спроможностей усіх вхідних дуг.
Мінімальний розріз – це розріз, що має мінімальну суму.
Відповідь: максимальний потік 17 буде забезпечено при витоці 1 та стоці 4.
Отримавши витік 1 та стік 4, задачу можна розв’язати також методом Дейкстра 4. Якщо ж вони невідомі, метод треба «прогнати» N2-n раз (N – кількість вершин, n – елементи діагоналі) у циклі, змінюючи стік та витік, до визначення максимуму потоку. Розглянемо одну таку ітерацію (26):
Со= |
0 |
8 |
4 |
6 |
0 |
0 |
0 |
С1= |
0 |
8 |
4 |
6 |
0 |
0 |
0 |
8 |
0 |
0 |
5 |
3 - |
0 |
0 |
8 |
0 |
0 |
5 - |
0 |
0 |
0 |
||
4 |
0 |
0 |
2 |
0 |
1 |
0 |
4 |
0 |
0 |
2 |
0 |
1 |
0 |
||
6 |
5 |
2 |
0 |
7+ |
6 - |
3 |
6 |
5+ |
2 |
0 |
10 |
3 - |
3 |
||
0 |
3+ |
0 |
7 - |
0 |
0 |
10 |
0 |
6 |
0 |
4 |
0 |
0 |
10 |
||
0 |
0 |
1 |
6+ |
0 |
0 |
2 |
0 |
0 |
1 |
9+ |
0 |
0 |
2 |
||
0 |
0 |
0 |
3 |
10 |
2 |
0 |
0 |
0 |
0 |
3 |
10 |
2 |
0 |
||
|
2546 Q=min(3, 7, 6) |
|
246 Q= min(5, 3) |
||||||||||||
С2= |
0 |
8 |
4 |
6 |
0 |
0 |
0 |
С3= |
0 |
8 |
4 |
6 |
0 |
0 |
0 |
8 |
0 |
0 |
2- |
0 |
0 |
0 |
8 |
0 |
0 |
1 - |
0 |
0 |
0 |
||
4 |
0 |
0 |
2+ |
0 |
1 - |
0 |
4 |
0 |
0 |
3 |
0 |
0 |
0 |
||
6 |
8+ |
2 - |
0 |
10 |
0 |
3 |
6 |
9+ |
1 |
0 |
10 - |
0 |
3 |
||
0 |
6 |
0 |
4 |
0 |
0 |
10 |
0 |
6 |
0 |
4+ |
0 |
0 |
10 - |
||
0 |
0 |
1+ |
12 |
0 |
0 |
2 |
0 |
0 |
2 |
12 |
0 |
0 |
2+ |
||
0 |
0 |
0 |
3 |
10 |
2 |
0 |
0 |
0 |
0 |
3 |
10+ |
2 - |
0 |
||
|
2436 Q=min(2, 2, 1) |
|
24576 Q= min(1, 10, 10, 2) |
||||||||||||
С4= |
0 |
8 + |
4 |
6 - |
0 |
0 |
0 |
С5= |
0 |
9 |
4 |
5 |
0 |
0 |
0 |
8 - |
0 |
0 |
0 |
0 |
0 |
0 |
7 |
0 |
0 |
0 |
0 |
0 |
0 |
||
4 |
0 |
0 |
3 |
0 |
0 |
0 |
4 |
0 |
0 |
3 |
0 |
0 |
0 |
||
6 + |
10 |
1 |
0 |
9 |
0 |
3 - |
7 |
10 |
1 |
0 |
9 |
0 |
2 |
||
0 |
6 |
0 |
5 |
0 |
0 |
9 |
0 |
6 |
0 |
5 |
0 |
0 |
9 |
||
0 |
0 |
2 |
12 |
0 |
0 |
3 + |
0 |
0 |
2 |
12 |
0 |
0 |
4 |
||
0 |
0 |
0 |
3 + |
11 |
1 - |
0 |
0 |
0 |
0 |
4 |
11 |
0 |
0 |
||
|
21476 Q=min(8, 6, 3, 1) |
|
|
||||||||||||
F= |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
5 |
3 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
1 |
0 |
|
0 |
0 |
1 |
0 |
0 |
6 |
1 |
|
0 |
0 |
0 |
2 |
0 |
0 |
1 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
2 |
0 |
F26
=
9
(1+5+3,
1+6+2).
Максимально
завантажені
дуги
при F26:
24,
25,
36,
46
та 76.
Завантаження
вузлів
при F26:
F1
= 1, F3
= 1, F4
= 8, F5
= 3, F7
= 2.
Примітка. Згадаймо, що після розв’язку цим методом як порівняння можна використати вже розрахований варіант 26 за допомогою теореми про min розріз.
Відповідь: при витоці 2 та стоці 6 max потік дорівнює 9.
Ідея методу Гоморі-Ху (стискання або конденсування) полягає в перетворенні багатополюсної мережі в остов мінімального розрізу. Має місце принцип «розплутування клубка». Складається з N-1 ітерацій: kl, mk, nm тощо (де N – кількість вершин, а k, l, m та n – вершини). Стягування (конденсування) двох вершин в одну пару відбувається тоді, коли вони обидві знаходяться з одного боку мінімального розрізу.
Розглянемо
довільну пару вершин: 12,
де f12=16.
Вершину
2 треба «витягнути»
з «клубка»:
Розглянемо наступну
пару вершин: 31,
де f31=7.
Вершина
1
знаходиться на одному «березі»
з 2, тому й «тягнеться»
до неї:
Вершини 2 і 1
«витягнуті»
окремо, тож виконується стискання
мережі. Потім розглядаємо пару вершин:
63,
де f63=7.
Вершина
3 розміщена на іншому «березі»,
ніж 1 і
2, тому й
«розплутується»
окремо:
Потім «витягуємо»
пари вершин
46
(f46=9)
та 74
(f74=15),
які
лежать окремо
відносно
вершини
3, та пару 57
(f57=15):
Примітка. Результат розв’язання задачі методом Гоморі-Ху був би іншим, якби «клубок розплутувався» інакше.
