- 7
- 0
- 约1.16千字
- 约 10页
- 2016-12-20 发布于湖北
- 举报
实验三 01背包问题不同算法设计、分析与对比
一.问题描述
给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为c。
问题:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。
说明:在选择装入背包的物品时,对每种物品i只有两个选择,装入背包或不装入背包,也不能将物品装入背包多次。
二.实验内容与要求
实验内容:
分析该问题适合采用哪些算法求解(包括近似解)。
动态规划、贪心、回溯和分支限界算法。
分别给出不同算法求解该问题的思想与算法设计,并进行算法复杂性分析。
动态规划:
递推方程:
m(i,j) = max{m(i-1,j),m(i-1,j-wi)+vi} j = wi;
m(i-1,j) j wi;
时间复杂度为O(n).
贪心法:
算法思想:贪心原则为单位价值最大且重量最小,不超过背包最大承重量为约束条件。也就是说,存在单位重量价值相等的两个包,则选取重量较小的那个背包。但是,贪心解决物品可以
用贪心法设计算法的特点是一步一步地进行,根据某个优化测度(可能是目标函数,也可能不是目标函数),每一步上都要保证能获得局部最优解。每一步只考虑一个数据,它的选取应满足局部优化条件。若下一个数据与部分最优解连在一起不再是可行解时,就不把该数据添加到部分解中,
直到把所有数据枚举完,或者不能再添加为止。
回溯法:为
原创力文档

文档评论(0)