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

Raz*_*orm 5 language-agnostic algorithm

考虑稳定婚姻算法:

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

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

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

为了给现实生活带来类比,请考虑工作分配的问题:

在一个小组软件工程项目中,有m名员工和n个不同的任务需要完成.每位员工都有自己的经验和专业知识,因此关心他/她可以从事哪项工作.经理要求每位员工写下任务的首选项列表,对每项任务进行排名.将每个员工与一项任务配对的算法是什么,以便最大限度地提高员工满意度.

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

注意:量化员工满意度的一种简单方法是简单地将每个员工获得的工作排名加起来.

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

最小化这个数字将最大限度地满足.

JBS*_*rro 4

这称为分配问题。教科书的例子是运输:需要转移n个包裹,而只有m 个司机(m < n),并且每次运输都有相关成本。我相信你的问题可以转化为这种形式。

解决这个问题最常见的算法是 Kuhn-Menkres 算法,也称为匈牙利算法。这个算法可以在网上以多种编程语言获得,所以谷歌一下吧!