【问题标题】:Removing minimum no of edges to disconnect two vertices in a graph删除最小边数以断开图中的两个顶点
【发布时间】:2023-03-29 01:28:01
【问题描述】:

在这里,我试图断开图中的两个顶点,并尽可能减少边缘移除。

AZ 两个顶点之间的这张图中,您可以通过多种方式找到答案。以最佳方式,您可以只删除从 AB 的一条边。

如果有什么特定的算法呢?

我找到了一些通过使用最大流量最小切割问题来解决这个问题的建议,但我没有得到将这个问题转换为最大流量最小切割定理的一般想法。同样在此过程中,我可能最终会删除 FG 之间的边缘,这是无用的。

【问题讨论】:

  • 正如您所说,这正是 min-cut:删除最小数量的边来分割图形。由于 min-cut 与 max-flow 是对偶的,因此任何求解一个的算法也可以解决其他。

标签: java algorithm graph discrete-mathematics


【解决方案1】:

这可以使用 Max Flow - Min Cut 问题来解决。

您可以将图形建模为网络流,如下所示:
1. 考虑A 为源顶点,Z 为汇顶点。
2.设置每条边的容量为1个单位。

现在,解决上述网络中的 Max Flow - Min Cut 问题。有了它,您将能够找到从AZ 的边缘不相交路径的数量。对于每个这样的路径,删除第一条边(来自源 A 的边)。

证明
请注意,删除以上边缘后,您将无法到达 AZ。如果您有一条路径,那么最大流算法会将这条路径包含在一组边缘不相交路径中。
此外,通过网络的构建,您不能删除较少数量的边以断开 AZ 的连接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多