Алгоритм масштабирования потока — различия между версиями
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | '''Алгоритм масштабирования потока''' — алгоритм поиска максимального потока, работающий в предположении, что все пропускные способности рёбер целые, так как они легко представимы в двоичном виде. | + | '''Алгоритм масштабирования потока''' — алгоритм поиска максимального [[Определение_сети,_потока#.D0.9E.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D0.BE.D1.82.D0.BE.D0.BA.D0.B0|потока]], работающий в предположении, что все [[Определение_сети,_потока#.D0.9E.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.81.D0.B5.D1.82.D0.B8|пропускные способности]] рёбер целые, так как они легко представимы в двоичном виде. |
}} | }} | ||
Строка 37: | Строка 37: | ||
[[Файл:Scaling.jpg|250px|thumb|right|Разрез <tex> \langle A, \overline{A} \rangle </tex>.]] | [[Файл:Scaling.jpg|250px|thumb|right|Разрез <tex> \langle A, \overline{A} \rangle </tex>.]] | ||
Докажем оценку для второго шага (для остальных доказательство аналогично). | Докажем оценку для второго шага (для остальных доказательство аналогично). | ||
− | Граф <tex> G_{f_0} </tex> — несвязен. Пусть <tex> A </tex> — компонента связности, <tex> s \in A, t \in \overline{A} </tex>. Тогда <tex> c_{0_{f_0}}(A, \overline{A}) = 0 </tex>. | + | Граф <tex> G_{f_0} </tex> — [[Отношение_связности,_компоненты_связности#.D0.A1.D0.BB.D1.83.D1.87.D0.B0.D0.B9_.D0.BE.D1.80.D0.B8.D0.B5.D0.BD.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.BD.D0.BE.D0.B3.D0.BE_.D0.B3.D1.80.D0.B0.D1.84.D0.B0|несвязен]]. Пусть <tex> A </tex> — компонента связности, <tex> s \in A, t \in \overline{A} </tex>. Тогда <tex> c_{0_{f_0}}(A, \overline{A}) = 0 </tex>. |
Значит, в графе с пропускными способностями <tex> c_1 </tex>: | Значит, в графе с пропускными способностями <tex> c_1 </tex>: |
Версия 18:58, 20 декабря 2011
Определение: |
Алгоритм масштабирования потока — алгоритм поиска максимального потока, работающий в предположении, что все пропускные способности рёбер целые, так как они легко представимы в двоичном виде. |
Идея
Идея алгоритма заключается в нахождении путей с высокой пропускной способностью в первую очередь, чтобы сразу сильно увеличивать поток по ним, а затем по всем остальным.
Пусть дан граф
с целыми пропускными способностями: . — максимальная пропускная способность. Запишем пропускную способность каждого ребра в двоичном виде. Тогда каждое число будет занимать бит.
Методом Форда-Фалкерсона находим поток для графа с урезанными пропускными способностями . Добавим следующий бит и находим следующее приближение для графа с новыми пропускными способностями .
После
итерации получим ответ к задаче.Оценка сложности
Утверждение: | ||||||||||||
Сложность алгоритма — . | ||||||||||||
Докажем, что сложность каждой итерации — .
| ||||||||||||