只有一组优先级的稳定配对算法?

时间:2011-10-08 22:46:42

标签: algorithm language-agnostic

考虑Stable Marriage Algorithm

  

在数学和计算机科学中,稳定婚姻问题(SMP)是在给定每个元素的一组偏好的情况下在两组元素之间找到稳定匹配的问题。匹配是从一组元素到另一组元素的映射。只要两种情况都不匹配,匹配就是稳定的:

稳定的婚姻算法是稳定婚姻问题的完整和最佳解决方案。

但是,我有一个不同但相似的问题。我需要一种算法,当给定一对元素时,它们将在它们之间找到稳定且最佳的配对。问题在于,在我的问题中,只有一对元素具有偏好,另一方不关心

为了对此进行真实的比喻,请考虑作业分配的问题:

  

在集团软件工程项目中,有m名员工和n   要完成的不同任务。每个员工都有自己的   经验和专业知识,所以关心他/她的任务   从事于。经理要求每位员工写下偏好   任务列表,对每项任务进行排名。什么是算法   将每个员工与一项任务配对,以便员工满意   最大化。

     

如果n> m,会遗留任务,这没关系,他们可以   由实习生或承包商完成。

注意:量化员工满意度的一种简单方法是简单地将每位员工获得的工作排名相加。

例如:如果员工a得到了他的第一选择,而员工b得到了他的第三选择,而员工c得到了他的第二选择,那么员工的总体满意度为1 + 3 + 2 = 6

最大限度地减少这个数字可以最大限度地提高满意度。

1 个答案:

答案 0 :(得分:4)

这被称为assignment problem。运输的教科书示例: n 只有 m 驱动程序( m &lt; n < / em>)以及与每次运输相关的成本。我相信你的问题可以归结为那种形式。

解决此问题的最常见算法是Kuhn-Menkres算法,也称为匈牙利算法。这个算法可以在许多编程语言中在线获得,所以谷歌出去了!