algorithm - 查找划分图的节点

标签 algorithm graph language-agnostic partition

我有一个表示 map 区域之间连通性的无向图。我想确定可以在不创建图形分区的情况下删除的节点组(区域)。

我尝试过的:

遍历树(BFS,DFS ...),存储深度并选择具有更高深度的节点(O(n))。计算完成后,我可以通过检查邻居节点的深度(连通性不超过特定阈值)在每次移除-添加时更新 O(~1) 的深度

有没有更便宜的方法来做到这一点?如果您不知道该问题的学术术语,寻找图谱文献也非常困难。我的图表在 200 到 500 个节点之间。

最佳答案

您正在解决的问题可以简化为bridge finding图中的问题。

算法:-

  1. calculate all bridges in the graph using tarjan's method.
  2. then remove a node which does not have bridge as a edge.
  3. Then re-evaluate the bridges in subgraph of the removed node partitioned by bridges.
  4. Continue doing 2 & 3 until there is no node to remove.

关于algorithm - 查找划分图的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24673646/

相关文章:

arrays - 面试问题,他们想要完成什么?

language-agnostic - 什么是 session ?它们如何工作?

algorithm - 最大化董事会得分

java - 2 个二叉搜索树的交集

algorithm - igraph 优先附件有向图是无环的吗?

javascript - 我如何才能在两行中显示每行不同字体大小的标题?

algorithm - 什么算法可以计算给定集合的幂集?

java - 在堆栈等资源有限的机器上无需递归即可创建数独矩阵

algorithm - 用于在未加权有向图中查找两个节点之间的最短路径的最有效(Big O)算法

c# - 使用对象列表构建树