通过删除单个节点来降低图的连通性的最佳算法是啥? [关闭]

Posted

技术标签:

【中文标题】通过删除单个节点来降低图的连通性的最佳算法是啥? [关闭]【英文标题】:What is the best Algorithm to decrease the connectivity of a graph by removing a single node? [closed]通过删除单个节点来降低图的连通性的最佳算法是什么? [关闭] 【发布时间】:2018-07-29 08:43:47 【问题描述】:

给定以下无向图:

没有。节点数: 7没有。边数: 6

边缘:

(0 1) (1 2) (2 3) (2 4) (4 5) (4 6)

如您所见,此图是一个连接组件,任何节点都可以从任何其他节点访问。我想检测要删除的最佳节点,以使结果图具有最低的连通性(无法到达其他节点的最大对数)。在这种情况下,最好的节点是 2,因为它会产生 3 个分量 (0,1)、(3)、(4,5,6),并且无法相互连接的对数为 11。

那么检测这个节点的最佳算法是什么?

【问题讨论】:

欢迎来到 ***.com。请花一些时间阅读the help pages,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。也请take the tour 和read about how to ask good questions。最后请学习如何创建Minimal, Complete, and Verifiable Example。 另外,请阅读this question checklist 和idownvotedbecau.se 的所有内容,了解您的问题可能被否决的一些原因。最后请learn how to debug your programs. 请注意,对于许多图表,不会有单个节点会降低连接性。我猜在这种情况下算法应该选择一个随机节点?还是会降低连接性的最小节点集? 【参考方案1】:

Betweenness centrality 衡量图中有多少最短路径经过特定节点(或边)。这通常用于聚类以选择通过被移除而最断开图的边。这听起来与您想要做的非常相似。

有许多算法可以计算图中每个节点的中介中心性,例如 Floyd-Warshall 或 Brandes 算法。一旦你获得了所有节点的中介中心性(确保使用算法的节点多样性,而不是边缘节点),你应该选择具有最高值的节点,并将其从图中删除。

【讨论】:

非常感谢,我认为这个答案非常有帮助,我现在将搜索中介中心性。 但是存在一个问题,最大节点数为 10000,因此这些具有未加权图的算法的最小复杂度为 O(V*E),非常大 如果你需要做得更好,你可能不得不接受一些近似的东西,因为这些算法已经高度优化。您可以通过快速 google 找到许多关于近似中介中心性的论文。我怀疑这是一个目前还没有明确结论的研究领域,但你可能会找到适合的东西。

以上是关于通过删除单个节点来降低图的连通性的最佳算法是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

tarjan算法,一个关于 图的联通性的神奇算法

无向图的割顶和桥的性质 以及双连通分量的求解算法

转载全网最!详!细!tarjan算法讲解。

Tarjan求有向图强连通详解

poj3713 Transferring Sylla 枚举+tarjan判割点

OSPF的算法是啥