据我所知,只要图表完整,SMP将始终拥有稳定的解决方案。换句话说,每个男性都可以与每个女性结婚,反之亦然。
但如果这不成立呢?让我们说一些男性有一份女性名单,他们在任何情况下都不能结婚。
这是另一个问题,还是存在解决此问题的好算法。 这个问题不应该总是有我想象的解决方案,但我希望得到一个尽可能好的解决方案。
答案 0 :(得分:0)
不确定您需要多高效,但我的标准匹配算法只是制作一个二分图并在其上运行最大流量。这可以在这里找到匹配,如果某些节点是孤立的并且无法与任何人匹配,它甚至可以工作。
现在要找到一个有效的好解决方案,你可以使用min-cost max-flow。当构建图1时,所有男性都连接到源,成本为0,容量为1.然后另一组是连接到接收器成本0,容量1的女性。现在连接每个男性/女性对的边缘具有容量1,并且成本是匹配有多好的度量(可能是彼此的偏好列表中的指数之和,或总和的平方?)。现在,您的匹配将根据您选择的指标进行最小化。
不完全是最佳的,但可能会有一个很好的解决方案,你可以根据你的数据进行调整。