我有一组节点和边缘,我使用Dijkstra的算法来找到最短的闭合周期。我的周期相互连接(图中的小黑周期)。这意味着,对于2个周期,存在共同边缘。现在,我希望获得最外部循环(图中的红色循环),其中包含所有最短循环。我认为这是一种联盟。不确定。是否有任何特定的方法或算法方法从图中可用的最短闭合周期获得最外循环?如何实现这个?
在这里,我也在c ++下标记问题,因为大多数程序员都知道如何获得连接循环的并集,我也希望在c ++中实现它。提前谢谢你。
我已经编辑并上传了一个数字到我原来的帖子,因为其他人不清楚。
答案 0 :(得分:2)
据我了解你的问题,你正试图找到连接planar graph的边缘最大面。有一种算法可以在Boost库中枚举平面图的面:Planar Face Traversal。您可以使用它来迭代图形的面并找到涉及最多边缘的面。
注意:
答案 1 :(得分:1)