01背包问题不同算法设计、分析与对比资料.doc

01背包问题不同算法设计、分析与对比资料.doc

实验三 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)

1亿VIP精品文档

相关文档