贪心背包问题
一、问题描述
已知一个容量为M的包和n件物品, 每件物品的重量为wi, 效益值为pi. 若将物品i的一部分0≤xi≤1装入包中, 背包可得到pixi的效益值增量. 要求找到一种装入物品的方案, 在不超过包的总容量前提下, 使包获得最大效益值, 即求使目标函数 ![](http://hi.csdn.net/attachment/201006/5/0_1275748239p6f0.gif)
最大化, 且满足约束条件 ![](http://hi.csdn.net/attachment/201006/5/0_1275748283HHW7.gif)
的向量x, 0≤xi≤1, pi>0, wi>0, 0≤i≤n.
例 已知n=3, M=20, p=(25, 24, 15), w=(18, 15, 10), 其中的四个可行解
x[i]=p[i]/w[i];从效益最高的物体装起。![](http://hi.csdn.net/attachment/201006/6/0_12758369599y6a.gif)
代码:
in.txt:
3 20
18 15 10
25 24 15
out.txt:
x[0] x[1] x[2]
0 1 0.5
------------------------------------
装的容量WX=20
最大效益PX=31.5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·