[01背包问题.docVIP

  • 16
  • 0
  • 约4.38千字
  • 约 15页
  • 2017-01-09 发布于北京
  • 举报
[01背包问题

01背包问题 一、问题描述 一个正在抢劫商店的小偷发现了n个商品,第i个商品价值Vi美元,重Wi磅,Vi和Wi都是整数;这个小偷希望拿走价值尽量高的商品,但他的背包最多能容纳W磅的商品,W是一个整数。 我们称这个问题是01背包问题,因为对每个商品,小偷要么把它完整拿走,要么把它留下;他不能只拿走一个商品的一部分,或者把一个商品拿走多次。 二、解决方案 背包问题作为NP完全问题,暂时不存在多项式时间算法动态规划(Dynamic programming,DP)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间。 动态规划只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。 特征: 1、问题存在最优子结构 2、问题的最优解需要在子问题中作出选择 3、通过查表解决重叠子问题,避免重复计算 问题分析:令(i,j)表示

文档评论(0)

1亿VIP精品文档

相关文档