算法第4章-第5讲-贪心法(2)..ppt

背包问题数学模型: 背包问题只有一种限制,即背包所能承受的重量(即重量不能超过M kg),但是实际上背包除受重量的限制外,还有体积的限制,这就是不但要求旅行者的背包的重量c不能超过M kg,还要求背包的体积v不能超过V m3,等多种类似的约束,我们把这样的问题称为“多维背包问题”。 贪心算法解背包问题的基本步骤(算法)描述 Step1. 计算每种物品单位重量的价值Vi/Wi; Step2. 依贪心选择策略,将尽可能多的单位重量价值 最高的物品装入背包.若将这种物品全部装入 背包后,背包内的物品总重量未超过M,则选择 单位重量价值次高的物品并尽可能多地装入背 包; Step3. 依此策略循环执行,直到背包装满为止。 第5讲 贪心算法 第5讲 贪心算法 算法实现(编码): greedy-knapsack (float value[n], weight[n], W) { float x[n], LW; // LW背包的剩余重量 Sort(value[n]/weight[n]); //价值/重量比值按从大到小排序 for( int i=1; i =n; i ++) x[i]=0; // x[i]的值来表示物体i是否放入背包 i=1;LW=W; //初始背包重量为W while (

文档评论(0)

1亿VIP精品文档

相关文档