算法 - 最大二分匹配的变体

Algorithm - A variant of Maximum Bipartite Matching

我正在处理最大二分匹配问题的一个变体。 原题如下:

有M个求职者,N个职位。每个求职者都有 he/she 感兴趣的工作子集。每个职位空缺只能接受一个求职者,并且只能为一个求职者指定一个职位。找到分配给求职者的工作,以便尽可能多的求职者找到工作。

附加约束是:

每个申请者都属于某个群体。现在,我们想要最大化快乐组的数量,而不是最大化申请人的数量。一个快乐的群体是所有申请者都能找到工作的群体

欢迎任何ideas/discussions!

与永恒的联系

如果你能解决这个问题,你本可以在 Eternity puzzle 上赢一百万英镑。

在这个谜题中,您必须将 209 个多边形拼到一块棋盘上。

缩减为每个棋子和位置的组合都有一组。

每个小组都有一个领导,他只对与他的作品相对应的工作感兴趣。

每个组也有一个人负责瓷砖中的每个方块:该人只对填充游戏板上相应方块的工作感兴趣。

如果你能找到 209 个快乐组的解决方案,那么你就找到了这个难题的解决方案!

连接到独立集

这是 NP-hard 因为它可以用来解决 maximum independent set 这是一个已知的 NP-hard 问题。

假设我们有一个图,我们想在其中找到最大独立集。

为每个边缘创建一个作业。

为每个顶点创建一个组。

假设顶点x连接到三个边a,b,c。我们将 3 人添加到组 x。每个人只对一份工作感兴趣。第一个对工作a感兴趣,第二个对工作b感兴趣,第三个对工作c感兴趣

找到最大的快乐组就相当于最大的独立集。