Алгоритм Дініца — поліноміальний алгоритм для знаходження максимального потоку у транспортної мережі, запропонований 1970 року ізраїльським (колишнім радянським) ученим Юхимом Дініцем. І алгоритм Дініца, і алгоритм Едмондса-Карпа незалежно показують, що в алгоритмі Форда — Фалкерсона в разі найкоротшого доповнювального шляху його довжина доповнює шляху не зменшується. Часова складність алгоритму становить . Отримати таку оцінку дозволяє введення понять допоміжної мережі та блокуючого (псевдомаксимального) потоку. В мережах з одиничними пропускними здатностями існує сильніша оцінка часової складності: .
Опис
Нехай — транспортна мережа, в якій і — відповідно пропускна здатність і потік через ребро .
Залишкова пропускна здатність — відображення як: якщо , то:
- ,
- ,
інакше .
Залишкова мережа — граф , де .
Доповнювальний шлях — шлях у залишковому графі .
Нехай — довжина найкоротшого шляху з у у графі . Тоді допоміжною мережею графа є граф , де
- .
Блокувальний потік — потік такий, що граф , де не містить шляху .
Алгоритм
- Вхід: мережа .
- Вихід: потік максимальної величини .
- Встановити для кожного .
- Створити з графа . Якщо , то зупинитися і вивести .
- Знайти блокувальний потік у .
- Доповнити потік потоком і перейти до другого кроку.
Аналіз
Можна показати, що щоразу кількість ребер у блокувальному потоці збільшується принаймні на одне, тому в алгоритмі не більше блокувальних потоків, де — кількість вершин у мережі. Допоміжна мережа може бути побудована обходом у ширину за час , а блокувальний потік на кожному рівні графа може бути знайдений за час . Тому час роботи алгоритму Дініца дорівнює .
Використовуючи такі структури даних, як [en], можна знаходити блокувальний потік на кожній фазі за час , тоді час роботи алгоритму Дініца може бути покращено до .
Приклад
Нижче наведено симуляцію алгоритму Дініца. У допоміжній мережі вершини з червоними мітками — значення . Блокувальний потік позначено синім.
Крок | ||||
---|---|---|---|---|
1 | Блокувальний потік складається зі шляхів:
Отже, блокувальний потік містить 14 одиниць потоку, а величина потоку дорівнює 14. Варто зауважити, що доповнювальний шлях має три ребра. | |||
2 | Блокувальний потік складається з одного шляху з п'ятьма одиницями потоку. Отже, блокувальний потік містить п'ять одиниць, а величина потоку дорівнює . Варто зауважити, що доповнювальний шлях має чотири ребра. | |||
3 | Сток недосяжний у мережі . Тому алгоритм зупиняється і повертає максимальний потік величини 19. Варто зауважити, що в кожному блокувальному потоці кількість ребер у доповнювальному шляху збільшується хоча б на одне. |
Література
- Дініц, Юхим (2006). Dinitz' Algorithm: The Original Version and Even's Version. У Ґолдреїх, Одед; Розенберг, Арнольд Л.; Селман, Алан Л. (ред.). (PDF). Springer. с. 218—240. ISBN . Архів оригіналу (PDF) за 20 серпня 2016. Процитовано 24 листопада 2017.
{{}}
: Назва URL містить вбудоване вікіпосилання () - Корте, Б. Х.; Віген, Дженс (2008). 8.4 Blocking Flows and Fujishige's Algorithm. Combinatorial Optimization: Theory and Algorithms (Algorithms and Combinatorics, 21). Springer Berlin Heidelberg. с. 174—176. ISBN .
Посилання
- Алгоритм Дініца на сайті e-maxx.ru: Опис, докази, реалізація на C++
Ця стаття містить правописні, лексичні, граматичні, стилістичні або інші мовні помилки, які треба виправити. (листопад 2017) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Algoritm Dinica polinomialnij algoritm dlya znahodzhennya maksimalnogo potoku u transportnoyi merezhi zaproponovanij 1970 roku izrayilskim kolishnim radyanskim uchenim Yuhimom Dinicem I algoritm Dinica i algoritm Edmondsa Karpa nezalezhno pokazuyut sho v algoritmi Forda Falkersona v razi najkorotshogo dopovnyuvalnogo shlyahu jogo dovzhina dopovnyuye shlyahu ne zmenshuyetsya Chasova skladnist algoritmu stanovit O V 2 E displaystyle O left V 2 E right Otrimati taku ocinku dozvolyaye vvedennya ponyat dopomizhnoyi merezhi ta blokuyuchogo psevdomaksimalnogo potoku V merezhah z odinichnimi propusknimi zdatnostyami isnuye silnisha ocinka chasovoyi skladnosti O E V displaystyle O left EV right OpisNehaj G V E c s t displaystyle G left left V E right c s t right transportna merezha v yakij c u v displaystyle c left u v right i f u v displaystyle f left u v right vidpovidno propuskna zdatnist i potik cherez rebro u v displaystyle left u v right Zalishkova propuskna zdatnist vidobrazhennya c f V V R displaystyle c f colon V times V to R yak yaksho u v E displaystyle left u v right in E to c f u v c u v f u v displaystyle c f left u v right c left u v right f left u v right c f v u f u v displaystyle c f left v u right f left u v right inakshe c f u v 0 displaystyle c f left u v right 0 Zalishkova merezha graf G f V E f c f E f s t displaystyle G f left left V E f right c f E f s t right de E f u v V V c f u v gt 0 displaystyle E f lbrace left u v right in V times V mid c f left u v right gt 0 rbrace Dopovnyuvalnij shlyah s t displaystyle s t shlyah u zalishkovomu grafi G f displaystyle G f Nehaj dist v displaystyle operatorname dist left v right dovzhina najkorotshogo shlyahu z s displaystyle s u v displaystyle v u grafi G f displaystyle G f Todi dopomizhnoyu merezheyu grafa G f displaystyle G f ye graf G L V E L c f E L s t displaystyle G L left V E L c f E L s t right de E L u v E f dist v dist u 1 displaystyle E L lbrace left u v right in E f mid operatorname dist left v right operatorname dist left u right 1 rbrace Blokuvalnij potik s t displaystyle st potik f displaystyle f takij sho graf G V E L s t displaystyle G left V E L s t right de E L u v f u v lt c f E L u v displaystyle E L lbrace left u v right mid f left u v right lt c f E L left u v right rbrace ne mistit shlyahu s t displaystyle st AlgoritmVhid merezha G V E c s t displaystyle G left left V E right c s t right Vihid potik s t displaystyle s t maksimalnoyi velichini f displaystyle f Vstanoviti f e 0 displaystyle f left e right 0 dlya kozhnogo e E displaystyle e in E Stvoriti G L displaystyle G L z G f displaystyle G f grafa G displaystyle G Yaksho dist t displaystyle operatorname dist left t right infty to zupinitisya i vivesti f displaystyle f Znajti blokuvalnij potik f displaystyle f u G L displaystyle G L Dopovniti potik f displaystyle f potokom f displaystyle f i perejti do drugogo kroku AnalizMozhna pokazati sho shorazu kilkist reber u blokuvalnomu potoci zbilshuyetsya prinajmni na odne tomu v algoritmi ne bilshe n 1 displaystyle n 1 blokuvalnih potokiv de n displaystyle n kilkist vershin u merezhi Dopomizhna merezha G L displaystyle G L mozhe buti pobudovana obhodom u shirinu za chas O E displaystyle O left E right a blokuvalnij potik na kozhnomu rivni grafa mozhe buti znajdenij za chas O V E displaystyle O left VE right Tomu chas roboti algoritmu Dinica dorivnyuye O V O E O V E O V 2 E displaystyle O left V right left O left E right O left VE right right O left V 2 E right Vikoristovuyuchi taki strukturi danih yak en mozhna znahoditi blokuvalnij potik na kozhnij fazi za chas O E log V displaystyle O left E log V right todi chas roboti algoritmu Dinica mozhe buti pokrasheno do O V E log V displaystyle O left VE log V right PrikladNizhche navedeno simulyaciyu algoritmu Dinica U dopomizhnij merezhi G L displaystyle G L vershini z chervonimi mitkami znachennya dist v displaystyle operatorname dist left v right Blokuvalnij potik poznacheno sinim Krok G displaystyle G G f displaystyle G f G L displaystyle G L 1 Blokuvalnij potik skladayetsya zi shlyahiv s 1 3 t displaystyle lbrace s 1 3 t rbrace z chotirma odinicyami potoku s 1 4 t displaystyle lbrace s 1 4 t rbrace z shistoma odinicyami potoku s 2 4 t displaystyle lbrace s 2 4 t rbrace z chotirma odinicyami potoku Otzhe blokuvalnij potik mistit 14 odinic potoku a velichina potoku f displaystyle left f right dorivnyuye 14 Varto zauvazhiti sho dopovnyuvalnij shlyah maye tri rebra 2 Blokuvalnij potik skladayetsya z odnogo shlyahu s 2 4 3 t displaystyle lbrace s 2 4 3 t rbrace z p yatma odinicyami potoku Otzhe blokuvalnij potik mistit p yat odinic a velichina potoku f displaystyle left f right dorivnyuye 14 5 19 displaystyle 14 5 19 Varto zauvazhiti sho dopovnyuvalnij shlyah maye chotiri rebra 3 Stok t displaystyle t nedosyazhnij u merezhi G f displaystyle G f Tomu algoritm zupinyayetsya i povertaye maksimalnij potik velichini 19 Varto zauvazhiti sho v kozhnomu blokuvalnomu potoci kilkist reber u dopovnyuvalnomu shlyahu zbilshuyetsya hocha b na odne LiteraturaDinic Yuhim 2006 Dinitz Algorithm The Original Version and Even s Version U Goldreyih Oded Rozenberg Arnold L Selman Alan L red PDF Springer s 218 240 ISBN 978 3540328803 Arhiv originalu PDF za 20 serpnya 2016 Procitovano 24 listopada 2017 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite book title Shablon Cite book cite book a Nazva URL mistit vbudovane vikiposilannya dovidka Korte B H Vigen Dzhens 2008 8 4 Blocking Flows and Fujishige s Algorithm Combinatorial Optimization Theory and Algorithms Algorithms and Combinatorics 21 Springer Berlin Heidelberg s 174 176 ISBN 978 3 540 71844 4 PosilannyaAlgoritm Dinica na sajti e maxx ru Opis dokazi realizaciya na C Cya stattya mistit pravopisni leksichni gramatichni stilistichni abo inshi movni pomilki yaki treba vipraviti Vi mozhete dopomogti vdoskonaliti cyu stattyu pogodivshi yiyi iz chinnimi movnimi standartami listopad 2017