我有一个调度问题我正试图找出一个最适合使用的算法。
酒店拥有一个主题公园,是入住酒店的游客的亮点。但是,对于想要去主题公园的游客来说,酒店的客房比一日通行证更多。因此,在高峰月份,有些人可能无法前往主题公园。
我们希望每位访客至少有一次机会参观主题公园。
如果存在争议,我们希望向在酒店逗留更长时间的访客提供日间通行证。
有人能指出哪个算法最适合问题的正确方向吗?
不,这不是功课。 :)
提前致谢。
答案 0 :(得分:2)
您可以使用Priority Queue(PQ)。每天您将(PQ)计算中的客户优先级设为p = 1/r
,其中r
是您酒店中该客人的剩余天数。通过这种方式,您每天都会向n
客户赠送n
个通行证,这些客户在您的酒店停留的天数较少(如果客户只有一天逗留,则他/她必须拥有获得通行证的最高优先级,因为只有一种可能性)。如果您有几个客户具有相同的p
,那么您可以通过查看他们在您的酒店住宿的总天数来选择他们,并且您支持那些停留更长时间的客户。
答案 1 :(得分:0)
您可以根据逗留时间(也许该家伙已经没有通行证的客人的天数)为每位客人分配一个重量或优先级,然后按优先级对客人进行排序。然后,应该很容易从排序列表的顶部开始传递通行证。
答案 2 :(得分:0)
您可以使用优先级队列。优先级队列必须根据访客停留的机会数和天数进行安排。