我有一个没有权重的无向邻接增强图 . 我需要在图表中找到最小周期 .

enter image description here

最小周期: c1[1 2 3 4 ]c2[2 3 6 5] ,...但是例如: [1 2 5 6 3 4] 不是 minimum cycle ,因为它包含循环 c1 .

我在搜索过程中经历了不同的帖子,但最终我得到的解决方案是将所有周期都放在图表中,而不是最小周期 . 从Finding all cycles in undirected graphsCycles in an Undirected Graph我明白最好的方法是进行 DFS 搜索并查找 back_edges . This thread给出了一些带有boost的解决方案,但是它给出了所有周期而不是最小周期,并且它没有实现 . Algorithm for finding minimal cycles in a graph还讨论了如何获得最小周期,但没有解决方案 .

如果有人有解决方法(在boost图库中更好),我很感激?

Update: 此处的最小循环意味着在候选循环的顶点集中,两个顶点之间不应存在另一个直接连接 . 例如,在 c3[1 2 5 6 7 4] 中,顶点之间没有后备,因此它是 minimum . 但是在 c4[1 2 3 6 7 4] 中, [3 4] 之间存在一个可以产生循环 [1 2 3 4] 的边缘,所以我们不认为 c4 是最小的 .