让 G (U u V, E) 成为加权有向二分图(即 U 和 V 是二分图的两个节点集合,E 包含从 U 到 V 或从 V 到 U 的有向加权边)。这是一个例子:
U = {A,B,C}
V = {D,E,F}
E = {(A->E,7), (B->D,1), (C->E,3), (F->A,9)}
定义:DirectionalMatching(我创造这个术语只是为了让事情更清晰):一组有向边,它们可以共享起点或终点。也就是说,如果U->V和U'->V'都属于DirectionalMatching,那么V /= U'且V' /= U,但可能出现U = U'或者V = V'的情况。
我的问题:如何高效地找到上述定义下的一个二分有向加权图的最大权值DirectionalMatching?
通过“高效地”,我指的是多项式复杂度或更快的算法,我已经知道如何实现朴素的暴力方法。
在上面的例子中,最大加权DirectionalMatching是:{F->A,C->E,B->D},其权值为13。
形式化地证明这个问题与图论中的任何其他著名问题的等价性也将是有价值的。
谢谢!
注意1:此问题基于带有定向边的最大加权二分匹配,但额外放宽了匹配中的边允许共享起点或终点。由于这种放松会产生很大的差异,因此我创建了一个独立的问题。 注意2:这是一个最大权重匹配。正确结果与匹配中存在多少条边以及被匹配覆盖的顶点数量无关。只有最大权重才有意义。 注意3:在解决问题的过程中,我发现了这篇论文,我认为对于其他试图找到解决方案的人会很有帮助:Alternating cycles and paths in edge-coloured multigraphs: a survey。注意3:如果有帮助的话,您也可以将该图视为其等价的二边彩色无向多重图。问题的表述将变为:找到没有颜色交替路径或循环的边集,使其权重和最大。
注意4:我怀疑这个问题可能是NP难的,但我对约简不是很有经验,所以我还没有证明它。
另一个例子:
想象一下您有
4个顶点:{u1,u2}
{v1,v2}
4条边:{u1->v1,u1->v2,u2->v1,v2->u2}
u1->v2
和v2->u2
不能在同一个DirectionalMatching中,v2->u2
和u2->v1
也是如此。然而,u1->v1
和u1->v2
可以,u1->v1
和u2->v1
也可以。