贪心法 简介 例1:01背包问题 例2:贪心法反例 说明 活动选择问题 简介 形式化证明(最早完成时间优先是最优的) 贪心法 简介 贪心法是设计算法中另一种常用的策略,就像分治法、回溯法和动态规划算法一样,其可用来解决最优化问题。经典贪心算法基本思想:
贪心法的基本思想为:(1)分析问题,求出最优化评价标准;(2)按评价标准排序;(3)从序列中顺序取元素;(4)若该元素符合要求,则放入结果表中;否则,删除它。背包算法为:procedure GREEDY-KNAPSACK(P,W,M,X,n)//P(1:n)和W(1:n)分别含有按P(i)/W(i) ≥ P(i+1)/W(i+1)排序的n件物品的效益值和重量...
分别用贪心算法、动态规划法、回溯法设计0-1背包问题。要求:说明所使用的算法策略;写出算法实现的主要步骤;分析算法的时间。
问题描述:有一个容量为 V 的背包,以及 n 个物品。现在忽略物品实际几何形状,我们认为只要背包的剩余容量大于等于物品体积,那就可以装进背包里,物品只能作为一个整体装入并不能拆分,每个物品都有两个属性,即体积 w 和价值 p,如何向背包装物品才能使背包中物品的总价值最大?核心算法:贪心(k-优化算法)、动态规划...
贪心法解决0/1背包问题主要代价是花费在p/w的排序上。由程序可以知道冒泡排序的时间复杂度为(N2)。它也是整个程序的时间复杂度。贪心法可以很快的解决问题,但是它不一定能够得到最优解,寻找一个好的贪心法则在贪心法处理中是至关重要的。与其他算法比较 •1.贪心法:处理问题的速度快,思想简单。使用该方法...
0/1背包:对于每一种物品I装入背包只有一种选择,即要么装入要么不装入,不能装入多次或只装入部分。部分背包则是对于每一种物品I可以只装入部分。 贪心法就是不求最优解,只求可行解的思想,只是局部最优,不考虑整体最优性。因此对于贪心法关键是贪心准则。对于0/1背包,贪心法之所以不一定得到最优解是因为它无法...
下面来看一个能用贪心法解决的经典问题:背包问题。 这里所说的背包问题指的是一般背包问题。(区别于0/1背包问题) 一般背包问题:小郑是一个旅行爱好者,他有一个非常大的旅行包,每次临行前一晚,小郑都会把吃的喝的用的全部塞进那个旅行包里。在小郑看来,能塞满就塞满,自己能带多少东西就带多少东西,毕竟如果在景...
关于贪心法可以解决的背包问题,这个物品是可以分解的。而只能完整的取的是0/1背包问题,这个需要动态规划来求解。 但并不是所有具有最优子结构的问题都可以用贪心策略求解。因为贪心往往是盲目的,需要使用更理性的方法——动态规划(例如“0-1背包问题”与“部分背包问题”) ...
假设有7个物品,它们的重量和价值如下表所示。若这些物品均可以被分割,且背包容量M=150,如果使用贪心方法求解此背包问题(背包不超载的前提下,装载的物品价值达到最大)。物
1.[问题描述]: 给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,但不可以重复装入。 2.[算法]: 贪心法的基本思路: 从...