给定一个图形(如下所示),是否有一种算法允许我构造一个循环基础,条件是每个边缘必须由最多 2个周期共享?
也就是说,对于上图,算法应该返回以下5个循环作为解决方案:
C1=>e1,e2,e13,e3
C2=>e13,e4,e5
C3=>e5,e9,e6
C4=>e7,e6,e10,e8
C5=>e10,e9,e12,e11
请注意,单个边缘上没有超过2个周期。任何其他一组5个循环 - 只要所有边缘上没有超过2个循环 - 都可以作为解决方案接受。
问题:有这样的算法吗?
我可以通过先找到生成树来构造一组循环基础,然后通过添加不在生成树内的边来完成循环,但我不能保证以这种方式构造的循环基础集有我想要的上述功能。
此外,每个顶点的坐标不已知。
答案 0 :(得分:0)
经过一番搜索,结果表明平面嵌入算法可以做到这一点。其中一种算法是Boyer and Myrvold。
这种算法在boost库中的Planar Face Traversal函数中实现。