Изменения

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

Навигация