一尘不染

平面图中的小循环发现

algorithm

我有一个几何无向平面图,即每个节点都有一个位置且没有2条边交叉的图,我想找到没有边交叉的所有循环。

是否有解决此问题的好的方法?


我打算做的是一种A*类似的解决方案:

  • 将每条边插入最小堆中作为路径
  • 扩展所有选项的最短路径
  • 循环返回到那里而不是起点的剔除路径(可能不需要)
  • 剔除路径,将是第三个使用ang给定边的路径

有人看到这个问题吗?还能行吗?


阅读 214

收藏
2020-07-28

共1个答案

一尘不染

我的本能是使用类似于迷宫求解器后面的方法。本质上,遵循边缘,并始终从顶点中取出最右边的边缘。使用此方法遇到的任何循环都将是一张脸的边界。您必须跟踪在哪个方向上遍历了哪些边缘。一旦在两个方向上遍历了一条边,就可以确定它分开的面。一旦在两个方向上都遍历了所有边缘,就可以通过其边界识别出所有面。

2020-07-28