根据人们的首选列表为人们分配他们最喜欢的值的算法是什么?



假设用户输入他们最喜欢的三个(或N个)棒球位置:

// first element of each list being most preferred
userA = ["backcatcher", "center field", "short stop"];
userB = ["pitcher", "backcatcher", "center field"];
userC = ["pitcher", "center field", "short stop"];
userD = ["short stop", "backcatcher", "pitcher"];
...
users = [userA, userB, userC, userD ...];
为每个

用户分配最首选位置的算法是什么?

我知道这个问题和解决方案一定有一些名字,但我在网上看了很多,还没有完全找到它。

它类似于Borda计数和Condorcet方法,但它会接受用户首选项列表,并确定每个选择的偏好程度,而不是每个用户。

我发现最接近的是稳定的婚姻问题,这是类似的,但需要两组首选列表,即位置"短暂停止"也会列出它最想玩的用户。

有谁知道这个问题叫什么?提前谢谢。

这是赋值问题。例如,您可以使用匈牙利算法。

您只需要想出一种方法将用户/玩家的偏好转化为成本。也许当一个人得到他们的第一个选择时,成本是-3,第二选择是-2,第三选择是-1,等等。如何做到这一点取决于问题的性质。您如何看待各种权衡最终会编码在您为算法提供的成本中。

最新更新