我使用福特弗里克森算法计算了最大流量,现在我想实现项目选择问题,我需要计算最大值。没有。可行的项目。我需要找到一个包含no的min.cut。具有最大利润的可行项目。 什么应该是找到分钟的算法。在知道图表中的max.flow之后切断*。如何使用最大流量来确定包含的最大流量。有助于最大流量的节点。我需要选择最佳节点集,以便最大化收入。在我的应用程序中,每个节点都与收入相关联,它也可以是正面的和负面的。并且还有优先约束,例如,如果选择a而不是b& c也必须被选中任何人都可以告诉我如何实现它?
我已在最大流量图中对其进行了如下转换:如果收入(节点)> 0从source->节点添加边缘,则从node-> sink添加边缘并且我创建了无限容量的egde优先约束
答案 0 :(得分:0)
理想情况下,您在算法中使用某种残差图进行某种类型的广度优先搜索。执行此操作时,算法应在BFS无法找到接收器时停止。一旦发生这种情况,你的剪切的第一个集合就是你能用你的BFS找到的所有节点,另一个集合是你找不到的所有节点。
如果您使用的是算法的标签版本,那么形成剪辑的集合就是标记的集合和未标记的集合。
我希望这会有所帮助。你的问题对我来说很难解析。如果您在这里找不到足够的帮助,我会得到与matcheek相同的建议(如果您有该书,请查看Wikipedia或CLRS)。
答案 1 :(得分:0)
我们可以通过从源顶点运行dfs / bfs然后找到饱和来计算min.cut(A,B) 最终残差图中的边,即没有增广路径