平面图中的小循环查找

BCS*_*BCS 9 language-agnostic algorithm graph-theory planar-graph

我有一个几何无向平面图,这是一个图,其中每个节点都有一个位置,没有2个边交叉,我想找到没有边穿过它们的所有周期.

这个问题有没有什么好的解决方案?


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

  • 将最小堆中的每个边插入路径
  • 每个选项都可以扩展最短路径
  • 循环回到其他路径的剔除路径(可能不需要)
  • 剔除路径,这将是第三个使用ang给定边缘的路径

有没有人看到这个问题?它会工作吗?

use*_*368 11

我的第一直觉是在迷宫求解器之后使用类似于的方法.本质上,跟随边,并始终从顶点取出最右边.您使用此方法遇到的任何周期都将是面部边界.您必须跟踪您在哪个方向上经过的边缘.一旦你在两个方向上遍历了一条边,你就已经确定了它所分离的面.一旦所有边都在两个方向上遍历,您就可以通过边界识别所有面.

  • @Naaff,取出所有出站角度,从你到达的边缘角度减去它们,mod 2*pi,取最小的 (2认同)

Joh*_*uhy 5

正如你所说的,"交叉边缘"通常被称为和弦.因此,你的问题是找到所有无弦循环.

这篇论文看起来可能有所帮助.

  • 如今,您经常可以从作者主页获取论文.情况就是这样:http://math.sun.ac.za/~mwild/Marcel%20Wild%20-%20Home%20Page_files/HamCycles.pdf (2认同)