Изменения

Перейти к: навигация, поиск
Реализация
===Реализация===
 Пусть задана структура <tex>Edge</tex>: '''struct''' edge: '''int''' from '''int''' to '''double''' c <font color=green>// пропускная способность ребра</font> '''double''' flow <font color=green>// поток через ребро</font> '''double''' price <font color=green>// стоимость перемещения единицы потока через ребро</font> Будем использовать структуру для хранения ребер графа G.  '''functionEdge[]''' findMaxFlowfindMinCostMaxFlow(<tex>G: (V, E)</tex>, C, P, '''int''' s, '''int''' t): '''for''' <tex>edge</tex> '''in''' <tex>E</tex>: <tex>edge.flow[edge] = 0</tex>
'''while''' <tex>\exists</tex> путь <tex>s \leadsto t</tex> в остаточной сети <tex>G_f</tex>:
<tex>path P = </tex> путь <tex>s \leadsto t</tex> с наименьшей стоимостью <tex>P</tex>. maxFlow = <tex>maxFlow = \displaystyle \min_{edge \in pathP} C[edge] .c - edge.flow[edge]</tex> '''for''' <tex>edge</tex> '''in''' P: flow[edge] = .flow[edge] + = maxFlow '''return''' <tex>flowE</tex>
===Асимптотика===
147
правок

Навигация