我想通过使用最大流量算法使人与公司之间达到最佳匹配。
下表中的每一行代表每个人是否想向该公司提出申请。 (是=可以申请,不可以=可以申请)。 人员的括号表示每个人将发送的申请数量,公司的括号表示未完成的职位数量。
我考虑通过以下方式使每个人和每个公司成为图中的一个顶点,从而将此问题视为最大流量问题:
例如:
S -> Bob -> Apple -> T
S -> Bob -> Google -> T
S -> David -> Apple -> T
请告知:
谢谢大家
答案 0 :(得分:0)
这似乎不是最大流量问题,但这是最大重量的二分匹配。
首先,每个人要发送的申请数量是不相关的信息,因为一旦我们进行配对,每个人只需发送一个 申请即可。因此,我们可以将其从问题中消除。
然后,我们可以将每个位置的列扩展为1。例如,苹果有2个未结头寸,因此我们将其扩展为两个苹果列,并从这些列中删除括号内的信息。
现在的任务是找到行和列之间的最大二分匹配,对此匈牙利算法或类似方法更合适。