- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在为一个有向图实现这个算法。但有趣的是,这个图节点也有自己的流量。我认为,必须以特殊的方式处理原始问题的这种细微变化。因为,在最初的最大流问题中,可以找到从头到尾的任何路径(实际上,在 Edmonds-Karp 算法中,我们需要进行 BFS,并选择到达最终节点的第一条路径)但是对于这个节点 -能力延伸,我们需要更加谨慎地对待“这个路径选择”工作。我知道这是因为,我实现了原始算法并发现自己得到的流量值小于最大流量,我怀疑这与节点容量限制有关。
我为此付出了很多努力,并提出了一些想法,例如通过添加自循环(向每个节点添加自循环并找到包含此自循环的路径)将初始图转换为对节点没有容量限制的图为路径上的每个节点循环)或添加权重取代初始节点容量约束的虚拟节点和边)但是,我不相信这些都是解决这个问题的好方法。
任何想法将不胜感激。
提前致谢。
最佳答案
从具有节点容量的最大流量问题到常规最大流量问题有一个简单的减少:
对于图中的每个顶点 v
,替换为两个顶点 v_in
和 v_out
。 v
的每个传入边都应指向 v_in
,并且 v
的每个传出边都应指向 v_out
。然后创建一条从 v_in
到 v_out
的附加边,其容量为 c_v
,即顶点 v
的容量。
因此,您只需在转换后的图上运行 Edmunds-Karp。
假设您的问题中有以下图表(顶点 v
的容量为 2):
s --> v --> t
1 2 1
这对应于最大流问题中的这张图:
s --> v_in --> v_out --> t
1 2 1
很明显,获得的最大流量就是解决方案(证明两者都不是特别困难)。
关于algorithm - 具有具有流动能力的节点的图的 Edmonds-Karp 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8751327/
我正在尝试更详细地了解 Edmonds-Karp 算法,并且很想知道它使用什么算法计算每次迭代中从 s 到 t 的最短路径(最少边数) 最佳答案 广度优先搜索。您可能想阅读 Wikipedia ent
我在整个互联网上进行了搜索,试图找到 PHP 示例代码,但我无法找到。我想做的是将类(class)与房间匹配,类(class)有一组与之兼容的房间。 示例:类(class) A 可以在 X、Y 和 Z
我会实现 Edmond Karp algorithm ,但它似乎不正确,我没有得到正确的流程,请考虑下图和从 4 到 8 的流程: 算法运行如下: 首先找到4→1→8,然后找到4→5→8之后4→1→6
我使用在 Edmonds–Karp 算法维基页面中找到的伪代码实现了 Edmonds–Karp 算法:http://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp
我正在为一个有向图实现这个算法。但有趣的是,这个图节点也有自己的流量。我认为,必须以特殊的方式处理原始问题的这种细微变化。因为,在最初的最大流问题中,可以找到从头到尾的任何路径(实际上,在 Edmon
我正在尝试实现 Edmonds-Karp在 C++ 中以获得最大流量,我写的略有不同: 我没有遍历残差图中的所有边,而是使用邻接表仅遍历了原始图中存在的边。 在用最小流量更新残差图时,我没有更新任何后
我想在加权有向图上找到最小生成树 (MST)。我一直在尝试使用 Chu-Liu/Edmond's algorithm ,我已经用 Python 实现了(下面的代码)。可以找到对该算法的简单、清晰的描述
我喜欢在有向图中(有时可能有环)找到最小生成树(甚至森林)。一个解释here有一些错误。这个算法在 Python 中是否有任何实际有效的包/代码? 最佳答案 虽然我没用过,here是来自 GitHub
在深入探讨这个问题之前,先了解一下我已有的一些背景信息: -我首先创建了一个基于美国各城市的无向邻接矩阵图,边权重为计算的距离(通过距离公式实现)。 -我还使用 prim 算法实现了最小生成树。 现在
我有一些简单的 Java/JUNG 代码,可以创建有向图,添加一些带有权重和容量值的边,并运行从源节点到汇节点的最大流量分析。 如果你有:A --- (capacity 2) -----> B ---
我是一名优秀的程序员,十分优秀!