通过删除单个节点来降低图的连通性的最佳算法是啥? [关闭]
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 找到许多关于近似中介中心性的论文。我怀疑这是一个目前还没有明确结论的研究领域,但你可能会找到适合的东西。以上是关于通过删除单个节点来降低图的连通性的最佳算法是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章