在给定的图表中,我想计算在图表中断开某个节点彼此之间的最低成本。示例:
在此图表中,假设我想通过删除这些节点中的某些边缘来相互断开node A
,node C
和node F
。即,通过删除edge A-B
和edge F-E
,节点A
,C
和F
将会断开连接。这里的成本是指被移除的边缘的长度。在此示例中,将Node A
,Node C
和Node F
彼此断开连接的总最低费用为2 + 1 = 3。
有人可以提供一些提示。我无法对此问题进行分类,这是shortest path problem
还是minimum spanning tree problem
?
答案 0 :(得分:2)
这称为多端切割问题。不幸的是,似乎没有维基百科条目。问题是,给定加权图和称为终端的顶点子集,计算边缘的最小权重集,其去除断开每对终端。坏消息是这个问题是NP难的,所以如果你真的需要一个不能强制执行的实例的最优解决方案,你可能不得不转向整数编程。好消息是有一个简单的2近似算法(不是已知的最佳因素,但你可能不得不深入研究线性规划并阅读研究文献以使用“更好”的算法),这可以通过采取将每个终端与其他终端分开的st cut的结合。