C++ 爱德蒙';Boost图形库中的最大基数匹配是否永远运行?

C++ 爱德蒙';Boost图形库中的最大基数匹配是否永远运行?,c++,boost,C++,Boost,我在文档中没有看到任何地方提到“卡住”或“无限”: 在一些图上,该算法运行了很长时间。函数循环永久(似乎)的示例非常大,所以我不知道如何在这里发布它们 我只是这样调用函数: boost::edmonds_maximum_cardinality_matching(G, boost::make_iterator_property_map(mate_map.begin(), boost::get(boost::vertex_index, G))); 其中G是一个图,mate_映射是顶点描述符

我在文档中没有看到任何地方提到“卡住”或“无限”:

在一些图上,该算法运行了很长时间。函数循环永久(似乎)的示例非常大,所以我不知道如何在这里发布它们

我只是这样调用函数:

boost::edmonds_maximum_cardinality_matching(G,
    boost::make_iterator_property_map(mate_map.begin(), boost::get(boost::vertex_index, G)));
其中G是一个图,mate_映射是顶点描述符的向量

编辑:我忘了包括最重要的部分

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS> graph;
typedef boost::邻接列表图;

使用有向图可能导致无限循环

使用

typedef boost::邻接列表图;
而不是无向图

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> graph;