构造循环基础的算法,条件是每个边必须由最多2个循环共享

时间:2010-11-30 15:43:55

标签: algorithm graph

给定一个图形(如下所示),是否有一种算法允许我构造一个循环基础,条件是每个边缘必须由最多 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个循环 - 都可以作为解决方案接受。

问题:有这样的算法吗?

我可以通过先找到生成树来构造一组循环基础,然后通过添加不在生成树内的边来完成循环,但我不能保证以这种方式构造的循环基础集有我想要的上述功能。

此外,每个顶点的坐标已知。

1 个答案:

答案 0 :(得分:0)

经过一番搜索,结果表明平面嵌入算法可以做到这一点。其中一种算法是Boyer and Myrvold

这种算法在boost库中的Planar Face Traversal函数中实现。