几个月前,有一个不错的问题与“1:n匹配问题”有关,似乎没有多项式时间算法。
我想添加限制条件,使用多项式算法找到1:n匹配问题的最大匹配。我想说:“对于顶点A1,如果顶点未被其他A-顶点占用,则选择{B1、B2、B5}或{B2、B3}中的任意一个。”即我不允许所有可能的组合。
如果我们为每个选择引入辅助顶点H并用树替换边,则可以表达这一点 => 我们得到类似于普通二分图匹配的问题。 A或B的每个顶点只能在匹配中具有一个边缘。来自或到达H顶点的边缘要么全部在匹配中,要么全部不存在于匹配中。想象一下以下三部分图:
现在定义h_ij="包含H_ij的树",以便轻松表达匹配:- 那么,在示例M={h12,h22}中,将构成一个“最大”匹配,尽管并非所有来自B的顶点都参与其中
- 集合{h12,h23}不是匹配,因为B3会被选择两次。
如果是这样,这个问题是否可以在多项式时间内解决?如果是,是否有带权(w(h_ij))变体的多项式时间解决方案?如果不行,您能否为像我这样的“简单人”提供论据或证明,或建议其他约束条件来解决1:n匹配问题?
例如,这个图可以转换成一个一般图,然后可以使用一般图的加权匹配来解决吗?或者分支甚至匹配森林能帮助到这里吗?PS:不是作业;-)