我找到解决此问题的最佳算法时遇到了一些麻烦:
我有一组活动可用的日期和一组应该参加该活动的用户。对于每个日期,我都知道哪些用户可以参加活动。我想找到最好的日期选择,允许每个用户参加活动,并尽量减少日期。
在此之前非常简单,我只是为每个用户提取用户数量较大的日期。
但我还有一个问题:我想限制日期的最大用户数。因此,例如,在特定日期,我可以有30个用户,但我决定将数量限制为20.所以我必须在不同的日期移动10个用户。问题实际上是这样,移动了将在不同日期创建最佳解决方案的10个用户。
您对如何继续有任何想法吗?
非常感谢, 马可
答案 0 :(得分:0)
不幸的是,这是一个护士排班问题(NP-hard)。
该问题的解决方案使用各种技术,包括数学上精确的解决方案和使用分解,并行计算,随机优化,遗传算法,群体优化,模拟退火,禁忌搜索和坐标下降的各种启发式解决方案。 / p>