资源描述:
《有关“贪婪”的材料》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划有关“贪婪”的材料 关于贪心算法的正确性证明 “贪心选择性质”的证明 下面用数学归纳法给出一个简单的证明。我们对算法所做的选择步数进行归纳,证明对任意正整数k,算法的前k步选择都能导致一个最优解. 定理算法Select执行到第k步,选择k项活动i1=1,i2,?,ik,那么存在最优解A包含i1=1,i2,?,ik。 证将S中的活动按照截止时间递增顺序排列. 归纳基础:k=1时,算法选择了活动1.我们仅需要证
2、明:存在一个最优解包含了活动1.设A{i1,i2,?,ij,}是一个最优解,如果i1≠1,那么用1替换i1,得到A’,即 A’=(A-{i1})∪{1} 那么A’和A的活动个数相等。且活动1比i1结束的更早,因此和i2,i3,?,ij,等活动都相容。于是A’也是问题的一个最优解. 归纳步骤:假设对于任意正整数k,命题正确.令i1=1,i2,?,ik是算法前k步顺序选择的活动,那么存在一个最优解 A={i1=1,i2,?,ik}∪B目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业
3、水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 如果令S’是S中剩下的与i1,i2,?,ik相容的活动,即 S’={j
4、sj≥fik,j∈S} 那么B是S’的一个最优解,如若不然,假如S’有解B’,
5、B’
6、>
7、B
8、,那么用B’替换B以后得到的解{i1=1,i2,?,ik}∪B’将比A的活动更多,与A是最优解矛盾. 根据对归纳基础的证明,算法第一步选择结束时间最早的活动总是导致一个最优解,故对子问题S’存在一个最优解B*={
9、ik+1,?}.由于B*与B都是S’的最优解,因此
10、B*
11、=
12、B
13、.于是 A’={i1=1,i2,?,ik}∪B*={i1=1,i2,?,ik,ik+1}∪(B*-{ik+1}) 与A的活动数目一样多,也是一个最优解,而且恰好包含了算法前k+1步选择的活动。根据归纳法命题得证. 定理告诉我们,算法前k步的选择都将导致最优解,其中k=1,2,?.因为至多有n项活动,被选择的活动个数不会超过n,因此算法至少在n步内结束,结束时得到的就是问题的最优解. 例有集装箱1,2,?,n准备装上轮船。其中集装箱i的重量是wi≤C,且对集
14、装箱无体积限制。问如何选择而使得装上船的集装箱个数最多? 设xi=1表示第i个集装箱可以装上船,否则xi=0,则这个问题可以描述为:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 maxni=1xi ni=1wixi≤C xi=0,1i=1,2,?,n 这是一个整数规划问题,也是0-1背包问题的特殊情况.对于0-1背包问题可以使用
15、动态规划算法求解.但是对于这个问题有更好的算法——贪心法.贪心 选择策略非常简单,就是“轻者先装”,直到再装任何集装箱将使轮船载重量超过C是停止. 算法Loading 输入:集装箱集合N={1,2,?,n},集装箱i的重量wi,i=1,2,?,n输出:I?N,准备装入船的集装箱集合 1.对集装箱重量排序,使得w1≤w2≤?≤wn 2.I←{1} 3.W←w1 4.forj←2tondo W+wj≤C 6.ThenW←W+wj 7.I←I∪{j} 8.elsereturnI,W 算法的时间主要是行1的排序时
16、间O(nlogn),行4的for循环总计执行O(n)时间,于是算法的时间复杂度是O(nlogn)。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 为了使用对实例规模的归纳来证明算法的正确性,需要先叙述一个可以归纳证明的命题. 定理对于任何正整数k,算法都对k个集装箱的实例得到最优解.证k=1,只有1个集装箱,其重量w1≤C,任何算法都只
17、有一种装法,就是将这只集装箱装上船.算法得到最优解. 假设算法对于规模为k的输入都能得到最优解,考虑规模为k+1的输入N={1,2,?,k+1},W={w1≤w2≤?≤wk+1}是集装箱重量,其中w1≤w2≤?≤wk+1.从N中拿掉最重的集装箱,得到: N’