- •Розділ 1. Методологічні основи дослідження операцій
- •1.1 Етапи дослідження операцій
- •1.2 Математичне моделювання. Загальна структура
- •1.3 Етапи математичного моделювання. Приклади
- •1.4 Розділи і класи задач дослідження операцій
- •1.5 Основні вимоги до математичних моделей і їх властивості
- •1.6 Формалізація принципів оптимального поводження в моделях прийняття рішення.
- •Розділ 2. Задачі лінійного програмування
- •2.1 Попередні відомості теорії лінійного програмування.
- •2.2 Графічна інтерпретація розв’язання задач лп
- •2.3 Змістовний опис симплекс-методу розв’язання задач лп
- •2.4 Знаходження початкового опорного плану
- •2.5 Знаходження оптимального плану
- •2.6 Застосування симплекс-таблиць
- •2.7 Метод штучної бази
- •2.8 Двоїсті (спряжені) задачі лінійного програмування
- •З другої групи умов доповняльної нежорсткості маємо
- •Розділ 3. Транспортні задачі (т-задачі)
- •3.1 Математична структура т-задач
- •3.2. Визначення початкового опорного плану т-задачі
- •3.3 Властивості опорних планів т-задач
- •3.4 Розв’язання т-задач методом потенціалів
- •3.6 Задача про оптимальні призначення
- •3.7 Задача про максимальний потік. Метод Форда-Фалкерсона
- •3.8 Задача про найкоротший шлях на мережi. Метод Мiнтi
- •Розділ 4. Дискретне програмування
- •4.1 Задача дискретного лп. Метод Гоморi-1)
- •4.2 Задача частково дискретного лп. Метод Гоморi-2
- •4.3 Задача дискретного лп. Метод Гоморi-3
- •4.4 Задача частково дискретного лп. Метод Дальтона-Ллевелiна
- •4.5 Задача дискретного лп. Метод гілок I границь
- •Розділ 5. Нелінійне програмування. Безумовна однопараметрична оптимізація
- •5.1 Загальні відомості
- •5.2 Методи виключення інтервалів
- •Зауваження
- •5.3 Поліноміальна апроксимація
- •5.4 Методи оптимізації з використанням похідних
- •Розділ 6. Нелінійне програмування. Методи умовної оптимізації
- •6.1 Класична задача математичного програмування
- •6.2 Задача опуклого квадратичного програмування.
- •6.3. Метод Франка – Вулфа розв’язання задач квадратичного програмування (зкп)
- •Розділ 7. Теорія прийняття рішень
- •7.1. Теорія корисності і прийняття рішень
- •7.1.1. Прийняття рішень в умовах ризику
- •7.1.2. Критерій “очікуване значення – дисперсія”
- •7.1.3. Критерій граничного рівня.
- •7.2. Прийняття рішень в умовах невизначеності
- •7.2.1. Класичні критерії прийняття рішень
- •7.2.2. Похідні критерії
- •Розділ 8. Прийняття рішень в ігрових ситуаціях
- •8.1 Класифікація ігор
- •8.2 Розв’язання матричних ігор у чистих стратегіях
- •8.3 Змішане розширення матричної гри
- •8.4 Властивості розв’язку матричних ігор
- •8.5. Алгебраїчний метод розв’язання матричних ігор
- •8.6 Графічний метод розв’язання ігор 2nіm 2.
- •8.7 Матричний метод розв’язання ігор
- •8.8. Ітеративні методи розв’язання ігор
- •8.9. Метод послідовного наближення до ціни гри
- •Розділ 9. Нескінченні антагоністичні ігри
- •9.1. Визначення нескінченної антагоністичної гри
- •9.2 Ігри з опуклими функціями виграшів
- •Розділ 10. Безкоаліційні ігри
- •Розділ 11. Кооперативні ігри
- •11.1 Характеристика кооперативних ігор
- •11.2. Характеристичні функції ігор з малим числом гравців
- •Розділ 12. Вправи для самостійної роботи та для практичних і лабораторних занять
- •12.1. Побудова математичних моделей задач
- •12.2. Розв’язання задач лінійного програмування
- •12.3 Розв’язання транспортних задач
- •12.4 Розв’язання задач цілочислового програмування
- •12.5 Розв’язання задач нелінійного програмування
- •12.6 Розв’язання матричних ігор
- •12.7 Лабораторний практикум
- •Розділ 13. Контрольна робота для студентів заочної форми навчання
- •13.1 Правила вибору задач контрольної роботи
- •13.2 Варіанти завдань контрольної роботи
- •Література
- •1.1 Етапи дослідження операцій 5
3.7 Задача про максимальний потік. Метод Форда-Фалкерсона
Постановка задачі про максимальний потік на мережі.
На мережі, що задається графом (I,U), де I – множина вершин, U – множина дуг, з визначеною на ній функцією пропускних спроможностей rij ((i,j) –дуга з U), зафіксовані дві вершини – i1 та in.
Вершина i1 (джерело) має інтенсивність d, вершина in (стік) – інтенсивність – d, всі інші вершини нейтральні. Треба знайти максимальну інтенсивність джерела d, при якій мережа допускає потік. Потiк, що відповідає такому максимальному значенню інтенсивності d*, називається максимальним потоком, а саме значення d* – величиною цього потоку.
Алгоритм Форда-Фалкерсона застосовується для побудови максимального потоку на мережі із заданої початкової вершини-джерела в задану кінцеву вершину-стiк.
Будемо вважати, що вершиною-джерелом є 1-а вершина, вершиною-стоком – вершина з номером n.
Вхідні дані.
Для роботи алгоритму необхідно задати таку інформацію:
1. Число вершин мережі.
2. Матрицю суміжностей С, елементи якої сij визначаються співвідношеннями:
сij=1, якщо існує дуга (i,j);
сij=0, якщо дуга (i,j) відсутня.
3. Величини rij пропускних спроможностей дуг (i,j).
4. Початковий потік на мережі, тобто величини xij, що задовольняють умови:
a) 0£xij£rij;
b) для довільної вершини (крім першої i останньої) потік, що входить у вершину, дорівнює потоку, що виходить з неї.
Виклад алгоритму Форда-Фалкерсона.
Алгоритм складається з послідовних iтерацiй, які проводяться до тих пір, поки не буде виконуватись ознака оптимальності.
На кожній iтерацiї можна виділити два етапи.
Етап 1 (етап виставлення позначок).
1. В кожний момент часу кожна вершина може знаходитись в одному з трьох положень:
а) не позначена;
б) позначена, але не проглянута;
в) позначена i проглянута.
Загальний вигляд позначки j-ї вершини: [i+,qj], або [i,qj], де i номер деякої позначеної вершини, при прогляданнi якої була позначена вершина j. Вершина 1 завжди позначена та має позначку [1+,q1], де q1 рівне + ¥ (нескінченності).
2. Проглядання довільної позначеної вершини j полягає у такому:
a) довільна непозначена вершина k, для якої існує дуга (j,k) i має місце нерівність xjk<rjk, отримує позначку вигляду [j+,qk], де
qk=min {qj, rjk xjk};
б) довільна непозначена вершина k, для якої існує дуга (k,j) i має місце умова xkj>0, отримує позначку вигляду [j,qk], де
qk=min {qj, xkj}.
3. Виставлення позначок закінчується в одному з двох випадків:
а) вершина з номером n позначена;
б) умова а) не виконується, але жодної вершини більше позначити не можна.
В першому випадку переходимо до етапу зміни потоку на мережі. В другому – до визначення мінімального розрізу мережі i максимального потоку.
Етап 2 (етап зміни потоку).
Потiк в мережі змінюється на величину qn відповідно правилу. Якщо вершина n має позначку [k+,qn], де k – номер деякої вершини, то xkn=xkn+qn. Якщо позначка має вигляд [k,qn], то xnk=xnkqn. Переходимо до вершини з номером k. Якщо позначка вершини k має вигляд [j+,qk], то xjk=xjk+qn; якщо вона дорівнює [j,qk], то xkj=xkjqn. Подібні дії продовжуємо доти, поки не буде досягнута початкова вершина. В цьому випадку всі старі позначки витираємо i повертаємось до першого етапу.
В результаті роботи за алгоритмом визначаються мінімальний розріз мережі i, як наслідок, максимальний потік. Мiнiмальний розріз визначається сукупністю дуг, що виходять з множини позначених вершин i заходять у множину непозначених.
Величина максимального потоку дорівнює сумарній пропускній спроможності мінімального розрізу.