0

我希望有人解释一个简单问题的不同方法,然后我将尝试在 PHP 中实现它以用于更广泛的应用程序。

我有五个人在选择谁得到什么房间,有五个房间,大、大、中、中和小。

Person 1 orders the rooms Grand, Large
Person 2 orders the rooms Large, Medium
Person 3 orders the rooms Large, Small
Person 4 orders the room Medium
Person 5 orders the rooms Large, Medium

缺少的房间是他们不感兴趣的房间。

选择谁得到每个房间最公平的方法是什么?

4

2 回答 2

1

使用启发式计算每种情况的匹配值。例如,如果一个人没有房间,则价值会很低或为负。如果每个人都留在他们订购的最大房间里,那么价值将是最高的。

计算每种情况的这个值,然后取最高值的情况。

于 2012-05-14T13:12:15.783 回答
0

公平并不总是被很好地定义。

但是,在这种情况下,一个人似乎可以得到他要求的房间,也可以不得到。因此,人们可以提出一个强有力的论点,即相同数量的人得到他们想要的房间的所有解决方案都是同样公平的,而更多人得到他们想要的房间的解决方案比那些得到他们想要的房间的人更少的解决方案更公平(我们是因此不给予任何人偏好)。

在您的示例中,似乎只有一种解决方案可以让每个人都得到他想要的房间。因此,这是“最公平”的解决方案。

找到这个的算法只是一个深度优先搜索(或者,如果你需要加速,则为分支定界),它考虑所有可能的分配并找到一个最大的。

于 2012-05-14T17:47:04.183 回答