Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EMM.doc
Скачиваний:
10
Добавлен:
21.09.2019
Размер:
1.35 Mб
Скачать

24. Задача про максимальний потік та її розв’язок.

Основна задача на мережах – знаходження допустимого максимального потоку з початкової вершини до кінцевої, якщо задані пропускні спроможності кожної дуги мережі ті її типологія.

Математична модель задачі:

Цільова функція:

Обмеження:

k ≠ S, t, k I

0 ≤ xij ≤ Sij

Щоб знайти максимальний потік, необхідно задати неорієнтований граф з прямою і зворотньою пропускною спроможністю по кожному ребру. Якщо заданий орграф, то зворотня пропускна спроможність ребра Sij = 0.

Алгоритм:

1) Будується початкова матриця графа S = ||Sij||

2) Вибір розрізу нульового потоку: джерело s з одного боку s S та вся решта вершин графа – з другого боку, тобто розподіл множини вершин І на дві підмножини:

S S' = I

3) Для кожного ребра розділу будується один з допустимих L – шляхів з вершини S до вершини t і знаходиться мінімальний потік кожного допустимого шляху як

ΔL = min{Sij}

Де Sij – пропускна спроможність (ij) – ребра L-го шляху.

Шлях через розріз доцільно вибирати найпростішим.

4) Будується матриця нульового потоку Х. Для кожного L-шляху всі xij дорівнюють значенню ΔL, а елементи, що симетричні їм, дорівнюють -ΔL; решта елементів матриці дорівнюють 0. Якщо ребро зустрічається кілька разів у різних шляхах з величинами ΔL, то всі величини ΔL складаються для цього ребра, але ця сумарна величина не повинна перебільшувати Sij.

5) Будування матриці S – X (резервів): якщо Sij = 0, то (ij) – ребро буде насичене. Якщо Sij ≠ 0, таке ребро має резерв і є можливість збільшити потік через це ребро.

6) Будування списку ребер з резервами(ненасичені ребра) згідно з матрицею Х від вершини s до вершини t. Структура списку:

Перелік вершин з резервами

S: i1, i2,…,ik

i1: i11, i12,…,i1k

in: in1, in2,…,ink

де i1, i2,…,ik – вершини S-го рядку матриці Х, для яких xij ≠ 0; i11, i12,…,i1k – вершини i1-го рядка матриці Х, де xij ≠ 0 і так далі до появи у списку кінцевої вершини t.

7) Згідно із отриманим списком складається ланцюг ненасичених ребер, які ведуть від S до t

(S i1),…,(in-1 in), (in t)

8) Шлях з ненасичених ребер має можливість збільшити потік на додаткову величину

Δ = min {(Sij - xij)}

Де Sij – пропускна спроможність (ij) – ребра; хij – розрахований потік (ij) – ребра.

9) Будування нової матриці потоку Х на основі попереднього Х: усі елементи ребер ненасиченого шляху збільшуються на величину Δ, симетричні елементи при цьому змінюються на величину -Δ. Для нової матриці потоку Х треба також зробити аналіз починаючи з п.5.

10) Якщо неможливо скласти список до кінцевої вершини t, то це означає, що досягнуто насичення ребер шляхів, які ведуть від S до t, тобто знайдений максимальний потік, величина якого дорівнює сумі хij рядка S з останньої матриці Х:

11) Будування орграфа згідно з дугами (ij), для яких xij ≠ 0 у матриці Х.

25. Задача про найкоротшу відстань та метод її розв’язування.

Задача про найкоротшу відстань э типовою транспортною задачею у сітьовій постановці.

Щоб розв’язати задачу у сітьовій постановці треба знайти топологію сіті та величини пропускних спроможностей Sij.

Математична модель:

Цільова функція:

Обмеження:

Початковий пункт

Кінцевий пункт

Алгоритм розв’язування

Обчислювальна процедура розв’язування задачі розглядається для мережі без циклів і з однією початковою S та кінцевою t вершинами.

Заздалегідь усі вершини І графа мають бути упорядковані, тобто пронумеровані згідно з напрямом дуг зліва направо.

Кожна дуга повинна мати оцінку αij – відстань від і-ї точки до j-ї вершини.

1) Розбиття множини І на дві підмножини S S' = I

Первісно у множину S входить тільки одна вершина і=1, тобто джерело S.

2) Вибір вершини j S' з αij ≠ ∞ і знаходження оцінки

3) Закріплення за j-ю вершиною оцінки Uj.

4) Переведення j-ї вершини з підмножини S' у підмножину S та привласнення їй наступного номеру і.

5) Перехід до наступної вершини j S'.

6) Перевірка, чи всі вершини переглянуто, тобто, чи дійшов процес розв’язування до вершини t. Якщо так, то переходимо до наступного пункту, якщо ні – повертаємося до п.2.

7) Знаходження найкоротшої відстані L = Ut та будування найкоротшого шляху {(ij)}.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]