mis*_*mas 1 .net c# java algorithm optimization
我想找到一个合适的算法来解决这个问题:
假设我们有N个项目,我们知道每个项目将获得多少资金,以及每个项目需要多少时间(每个项目的预计时间).我们有一定的时间来完成所有项目.我们希望选择项目以使我们的利润最大化,并且总体估计时间不会超过可用时间.你能告诉我应该使用哪种优化算法吗?有没有我可以在C#,.NET技术或Java技术中使用的东西?
zw3*_*324 6
这听起来像直截了当的背包问题:
给定一组具有权重和值的项目,确定要包括在集合中的每个项目的计数,使得总权重小于或等于给定限制,并且总值尽可能大.
在您的情况下,权重是项目所需的时间,限制是时间限制.
通常情况下,如果你是为现实世界做这件事,那么对于小案例来说蛮力就足够了,如果你真的不关心准确的最大值,那么对于大的情况,贪婪的近似和一些随机化应该足够好.但是,我怀疑是否有人会在现实世界中使用如此严格的模型.
在理论上感兴趣的情况下,背包问题是NP难的,并且是算法的活跃领域.
归档时间:
14 年,2 月 前
查看次数:
1130 次
最近记录: