eppstein_matching#

eppstein_matching(G, top_nodes=None)[source]#

返回二分图 G 的最大基数匹配。

参数
GNetworkX 图

无向二分图

top_nodes容器

包含一个二分节点集中的所有节点的容器。如果未提供,将计算它。但如果存在多个解决方案,将引发异常。

返回值
matches字典

匹配结果以字典 matching 的形式返回,其中 matching[v] == w 表示节点 v 与节点 w 匹配。未匹配的节点不会作为键出现在 matching 中。

抛出
AmbiguousSolution

如果输入的二分图不连通且未提供包含一个二分集中所有节点的容器,则抛出此异常。当确定每个二分集中的节点时,如果输入的图不连通,则可能存在多个有效的解决方案。

另请参阅

hopcroft_karp_matching

注意事项

此函数使用 David Eppstein 版本的 Hopcroft–Karp 算法实现(参见 hopcroft_karp_matching()),该算法最初出现在 Python 算法和数据结构库(PADS)中。

有关 NetworkX 如何处理二分图的更多详细信息,请参阅二分图文档