双向二分图中的最大匹配?

问题描述 投票:0回答:1

我有一个双向二部图,如何在这样的图中找到最大匹配?

algorithm graph networkx linear-programming
1个回答
0
投票

我们可以通过向给定的二分图添加超级源和超级汇来创建一个新网络。详细来说,我们可以将图分为两部分,X 和 Y,每组内没有内部边。将从源到 X 中每个节点的边添加到 Y 中每个节点到汇的边。

然后,我们可以决定构建的网络中边的容量。通常,我们在最大二分匹配问题中为每个节点选择容量 1,但这可能会因问题设置而改变。这适用于从源到 X、X 到 Y 以及 Y 到接收器的边缘。

自从我们形成网络后,运行网络流算法(Ford-Fulkerson 或 Edmonds-Karp 将是著名的选项)并找到网络的最大流量。最大流量值(最大匹配值)是从源发出或到达接收器的流量之和。

寻找最大匹配(对):假设我们有这个图的最大流网络。当我们从这个流网络中取出从 X 到 Y 的流量为 1 的边(我们通常称这些边为饱和边)时,构造每条边的节点将是图的最大匹配。

© www.soinside.com 2019 - 2024. All rights reserved.