图论算法 最大流问题.ppt

图论算法 最大流问题

费用流算法 求最小费用最大流的基本思想是贪心法。即:对于流f,每次选择最小费用可改进路进行改进,直到不存在可改进路为止。这样的得到的最大流必然是费用最小的。 算法可描述为: 第1步. 令f为零流。 第2步. 若无最小费用可改进路,转第5步;否则找到最小费用可改进路,设为P。 第3步. 根据P求delta(改进量)。 第4步. 放大f。转第2步。 第5步. 算法结束。此时的f即最小费用最大流。 如何求最小费用可改进路 设带费用的网络流图G = (V, E, C, W),它的一个可行流是f。我们构造带权有向图B = (V’, E’),其中: V’ = V。 若Vi, Vj∈E,fijCij,那么Vi, Vj∈E’,权为Wij。 若Vi, Vj∈E,fij0,那么Vj, Vi∈E’,权为-Wij。 显然,B中从S到T的每一条道路都对应关于f的一条可改进路;反之,关于f的每条可改进路也能对应B中从S到T的一条路径。即两者存在一一映射的逻辑关系。 故若B中不存在从S到T的路径,则f必然没有可改进路;不然,B中从S到T的最短路径即为f的最小费用可改进路。 现在的问题变成:给定带权有向图B = (V’, E’),求从S到T的一条最短路径。 迭代法求最短路经 考虑到图中存在权值为负数的弧,不能采用Dijkstra算法;Floyd算法的效率又不尽如人意——所以,这里采用一种折衷的算法:迭代法(b

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档