A,贪心算法:该算法应用于优化问题,即问题涉及通过一组配置来找出定义在这些配置上的目标函数的最小值或者最大值。为了求解给定的优化问题需要进行一系列的选择,这个序列开始于某些易于理解的起始配置,然后从当前可能的配置中,反复做出看起来是最好的决策。这个特点说明,从一个良好的定义的配置开始,通过一系列局部最优选择,可以得到全局最优配置。当然贪心算法不会总是导致问题的最优解,但是可以很好的解决下面将要介绍的背包问题。
B,背包问题描述:给定n个物品,每个物品i都有两个属性,即价值Pi和重量Wi,问题是希望找出具有最大价值的物品子集,同时这些物品的的重量之和不超过给定的总重量W。如果对于每个物品要么全部接受要么拒绝(即物品不可分割),则这类问题是0-1背包问题。这里我要介绍的是允许取某个物品的一部分。该问题的动机就是假如我要进行一次旅行,有n个候选食物的集合S和只有一个载重W的背包,每种食物的价值不同。允许每中食品只取一部分。我该如何选取食物,在总重量不大于W的情况下使总的价值量最大。用数学模型描述如下:
C,算法原理处理过程:
1)首先计算出每种食物的单位价值即Vi=Pi/Wi;
2)