我的公司保证每一个应聘者都能得到面试机会,而且我们总是收到比所有面试者的所有时间段加起来还要多的应聘者。所以我们有时需要在面试中把申请者增加两倍或三倍。
我想找到一个算法
将应聘者的可用性与面试官匹配
尽可能少地把申请者增加一倍
我已经尝试过使用Ford Fulkson算法来获得最大的网络流量,正如这个答案所建议的:Appointment scheduling algorithm (N people with N free-busy slots, constraint-satisfaction),但是它立刻使申请者加倍。
我也曾想过把这个问题作为一个约束问题来处理,但我不确定如何建模,除了偶尔会有成倍增加的申请者之外,在每个时间段都有不同数量的面试官。
有人知道一个合适的算法或方法来模拟这个问题吗?如果这是错误的方向,你能告诉我正确的术语吗?

最佳答案

如果将https://en.wikipedia.org/wiki/Assignment_problem的算法应用于原始数据,则只有在问题完全可以解决而没有任何翻倍的情况下,才能找到完全匹配如果你在提出任务问题时创建了所有面试官的n个副本,那么只有在每个面试官一次最多处理n个申请者的情况下才能解决问题,它才能匹配所有申请者。所以你可以在你能解决问题的时候,用N来计算N的值,每个面试官最多只能处理N个申请者,并且知道没有更小的N可以。

08-19 20:20