关于Pascal经典算法-背包问题析.pptVIP

  • 5
  • 0
  • 约5.13千字
  • 约 21页
  • 2017-11-08 发布于湖北
  • 举报
Pascal经典算法-背包问题析

经典算法问题解析---背包问题 前言 背包问题是程序设计中一个很经典的问题,很多题目都是在该问题上延伸开来的,对与背包问题我们有多种解题方法(算法),其中最常用的是贪心,搜索,递归,动态规划等,它们各有千秋,我们还将从算法的角度来分析这些算法的原理和它的正确性质和执行效率。 0-1背包问题 所谓的背包问题,可以描述如下: 一个小偷打劫一个保险箱,发现柜子里有N个不同大小与价值的物品,但小偷只有一个容积为M的背包来装东西,背包问题就是要找出一个小偷选择所偷物品的组合,以使偷走的物品总价值最大。我们标识每个物品的价为VI,大小是ZI 算法描述 对于0/1背包相关的问题我们有多种方法可以解决 ⑴贪心法 ⑵搜索法(回溯) (3)递归 ⑷动态规划 ⑴ 贪心法 贪心算法描述: 总是对当前的问题作最好的选择,也就是局部寻优。最后得到整体最优。 应用: 1:该问题可以通过“局部寻优”逐步过渡到“整体最优”。但是这种思路是否可以解决问题 2:最优子结构性质:某个问题的整体最优解包含了“子”问题的最优解。 该题设计的贪心算法 利用贪心算法的定义,我们定义一个数组变量A[I]:=V[I]/Z[I]来表示每件物品的单位体积的价值,然后按照单位体积的价值进行从大到小的排序,小偷取东西的时候的策略先取单位体积价值最高的物品,一直到背包不能再放物品为止; 该算法的分析: 该算法简单,而且执行

文档评论(0)

1亿VIP精品文档

相关文档