背包问题的多种解法201226630407.docVIP

  • 9
  • 0
  • 约1.61千字
  • 约 4页
  • 2017-06-07 发布于重庆
  • 举报
背包问题的多种解法201226630407

0-1背包问题的多种解法 【摘要】本文主要从动态规划经典背包问题的设计思路出发,结合具体实 例,给出了多种解决思路。 【关键字】动态规划 贪心算法 穷举法 0/1背包问题 一.原型问题 从n 个物品中选取装入背包的物品,每件物品i 的重量为wi ,价值为pi ,背包容量为c.求使物品价值最高的选取方法。(每个物品要么不取,要么取一次) 二.解决方法 1.穷举法:用穷举法解决0-1背包问题,需要考虑给定n个物品集合的所有子集,找出所有可能的子集(总重量不超过背包重量的子集),计算每个子集的总重量,然后在他们中找到价值最大的子集。由于程序较简单,在这里就不再给出,用实例说明求解过程。下面给出 了4个物品和一个容量为10的背包,下图就是用穷举法求解0-1背包问题的过程。 2.贪心法: 贪心准则1:从剩余的物品中,选出可以装入背包的价值最大的物品,利用这种规则,价值最大的物品首先被装入(假设有足够容量),然后是下一个价值最大的物品,如此继续下去。 这种策略不能保证得到最优解。例如,考虑n=2, w=[100,10,10], p =[20,15,15], c =105。当利用价值贪婪准则时,获得的解为x= [1,0,0],这种方案的总价值为20。而最优解为[0,1,1],其总价值为30。 贪心准则2:从剩下的物品中选择可装入背包的重量最小的物品。虽然这种规则对于前面的例子能产生最优解

文档评论(0)

1亿VIP精品文档

相关文档