也就是说,如何找到一个图的二分匹配,其中一些顶点可能没有连接到任何其他顶点?
编辑:还有一个条件,假设边缘也是加权的,我想要匹配,以使总边缘权重最小化(或最大化)。
答案 0 :(得分:3)
使用Hopcroft-Karp algorithm,它完全符合您的要求。
答案 1 :(得分:2)
首先,我假设你的体重是非负的。
在您编辑的版本中,您谈论的是assignment problem: n 代理商,每个代理商都会分配一个独特的操作来执行,其中每个代理商都有一个任意的非负成本行动。虽然这个描述是为了完美的二分匹配,但你可以执行一些技巧。为了平衡两侧,您可以将权重为0的顶点添加到另一侧的所有内容,以表示没有采取任何操作/未执行的操作会产生0成本。缺失链接可以通过超过所有真实成本总和的成本来建模,因此只有在问题无法解决时才会选择它们。对于您编辑的版本,我会使用Hungarian Algorithm。最后,这个问题也被称为“最大加权二分匹配”,另一个算法参考可以在maximum matchings in bipartite graphs下的第二段中找到。
编辑:如果你想最大限度地降低成本而不是最小化成本,你必须降低成本。只需找到最高成本并从最大值中减去每个成本。如果你缺少链接,那么你不会想要任何费用为0的链接。