您有一些非常多的可能任务,每个任务都需要使用来自大量可能资源的某些可能资源子集。
每项任务都有相关的资源成本:
您有一组可用资源:
选择一个任务子集,其中任何一个都可以执行多次,这使得"最佳使用" 所有可用资源。在这种情况下,也许我们会选择任务2和任务3,因为它只剩下1金。我们无法执行任务1,因为我们没有白银。
这似乎是某种优化问题,但我根本不确定这个问题是什么"叫做#34;。是否有一些奇特的名字,我可以抬头指导我寻找可能的解决方案?那里有直接的算法可以解决这个问题吗?它能在合理的时间内解决吗?是否有一些很好的启发式方法?
答案 0 :(得分:8)
这听起来就像一个多背包问题 - 你唯一需要改变的是分配每个项目的价值等于它使用的项目的总和,然后它成为一个标准的背包,因为在最大化总和时,余数最小化。
答案 1 :(得分:2)
此问题是一种设置打包。它也被称为“飞行机组问题”。您有一定数量的飞行员,工程师,管家等,以及需要不同类型船员的不同飞机。通常情况下,由于飞行机组问题,您正在寻找人员和飞机之间的精确任务,但在这里我们希望通过选择不同类型的飞机(这是岗位中的“任务”)来最大化人员利用率。
在任何情况下,解决这些NP难的问题的方法是使用混合整数线性编程进行穷举搜索。请参阅Sandia survey of MILP或MIT Aeronautics page on MILP。
有一个包SYMPHONY,其中包括设置分区和打包求解器。