Greedy

Greedy

算法范式
在贪婪算法中采用逐步构造最优解的方法。在每个阶段,都作出一个看上去最优的决策(在一定的标准下)。决策一旦作出,就不可再更改。作出贪婪决策的依据称为贪婪准则(greedycriterion),也就是从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。
  • 中文名:贪婪
  • 外文名:Greedy
  • 别名:
  • 定义:达到某算法中某一步不能再继续时
  • 类型:DOTA战队名称

DOTA战队

战队简介

2012年,随着DOTA类游戏平台《天梯排行榜》的火热和风靡,越来越多出类拔萃的路人玩家通过天梯排行榜和各大DOTA解说视频渐渐进入了大家的视野,引起了广大玩家的关注。在这些天赋过人和操作精妙的路人玩家中,有一支路人战队渐渐被大家公认为“天梯第一黑店”,他们就是GREEDY。由前DOTA著名前职业选手Yaphets和天才少年Somnus丶M领衔。

战队成员

YaphetS【中文名:卜严骏

江苏南京人,被广大玩家称呼为:Pis。11对战平台常用ID:范迪塞尔__、心灵震撼丶、yaphet咆哮、别掉线阿丶。天梯最高积分记录:2805,天梯最高排名记录:第1名。作为DOTA英雄中影魔的冠名者,无需过多介绍,公认的路人王大神。在GREEDY中根据阵容司职1号位。

Somnus丶M【中文名:路垚】

北京昌平人,熟悉他的玩家一般喊他:Maybe。11对战平台常用ID:Somnus丶M、丶上头雪,哪咤丶哪咤。天梯最高积分记录:2870,天梯最高排名记录:第1名。新一代路人王,经常能打出非常震撼眼球的击杀。由于还在念高中,所以被称其为:天才少年,高中生。在GREEDY中根据阵容司职2号位。

河北唐山人,熟悉他的玩家一般喊他:少男乖、酱油乖、洗碗乖、躺箭鹏、上头乖,人称:我叫唐小斗,撒尿不洗手。自称:唐山小旋风。天赋技能:洗碗、吸铁石。最擅长:跳刀躲梅肯,塔下意识粉,残血A回复,反补世界树,推推吃盲压,疯脸A刃甲,分身躲秘法,血精解薄葬,TP切假腿,一级冲泉水等大神级操作。11平台常用ID:少男乖、唐小斗、少年乖。天梯最高积分记录:2671,天梯最高排名记录:第14名。前职业选手,在GREEDY司职3号位,Maybe的好兄弟,一对儿上头gank。凭借极强的个人能力和意识,一般是"烈士路"的首选。擅长东南亚SK,暴力水卡,抽蓝狂魔,抽筋大牛,水枪,水虎传。名下有四大天王:金闪闪,阿列列,大国手,saga。人们戏称,四大天王得其二,此局必“稳”。自从实力战将“杀马特”(游戏id:狂战士)加入阿斗帮之后,少男乖黑店从送分黑转型相声黑,但是黑店实力仍然是2800左右。

NL_KS【中文名:张凯】

东北人,熟悉他的玩家一般喊他:小凯、矮子、巨人凯、凯神。11对战平台常用ID:NL_KS,天梯最高积分记录:2414,天梯最高排名记录:前100名。2013,小凯25岁,现是中国石油的一名技术员,接触DotA的时间大概有4年,经验丰富,是队中的一位老大哥。擅长:火枪,巨牙海民、隐形刺客、小鱼人、骨法等多名矮系英雄。

队长给我球【战队队长】

大球哥又名“送分球、弱智球、吴彦球”,11对战平台常用ID:队长给我球。天梯最高积分记录:2722,天梯最高排名记录:前7名。队长给我球是Greedy中很特别的一位选手,因为他的声音和声调与常人不同,听上去隐隐一丝喜感,但打DOTA时队长的无私奉献及亮眼操作给人印象深刻。技术特点:操作细腻、BP出色、辅助到位、GANK意识强。在GREEDY中根据阵容司职4-5号位。

战队荣誉

2012年DCG冠军(奖金10W)

2013年17173天梯黑店争霸赛冠军(奖金1W)

2013年VS“京东杯”DOTA超级联赛冠军(奖金2W)

WGT2013dota项目冠军(奖金5W)

CPL2013电子竞技大赛DotA项目线下总决赛冠军(奖金¥50,000元)

USL-U9超级联赛DOTA项目冠军(奖金15000元)

2013年11平台DSC冠军(奖金10000元+全套外设)

战队排名

截至2013年5月,来自Gosugamers的世界排名。

战队趣事

(1)当大家DOTA打的无聊或被路人虐了之后,经常打军团战争来消遣(防守类WAR3RPG地图)。

(2)当大家有看到对方动物信使出现在附近的时候,一般会选择先杀鸡,再杀人。

(3)经常一起玩天梯顶分对黑局时,队员之间经常出现互相调侃的欢乐局面。

贪心算法

算法思想

虽然设计一个好的求解算法更像是一门艺术,而不像是技术,但仍然存在一些行之有效的能够用于解决许多问题的算法设计方法,你可以使用这些方法来设计算法,并观察这些算法是如何工作的。一般情况下,为了获得较好的性能,必须对算法进行细致的调整。但是在某些情况下,算法经过调整之后性能仍无法达到要求,这时就必须寻求另外的方法来求解该问题。GreedyAlgorithm在设计方面不能保证求得的最后解是最佳的和不能用来求最大或最小解问题,只能求满足某些约束条件的可行解的范围。

事例1

例1-4[找零钱]一个小孩买了价值少于1美元的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目不限的面值为25美分、10美分、5美分、及1美分的硬币。售货员分步骤组成要找的零钱数,每次加入一个硬币。选择硬币时所采用的贪婪准则如下:每一次选择应使零钱数尽量增大。为保证解法的可行性(即:所给的零钱等于要找的零钱数),所选择的硬币不应使零钱总数超过最终所需的数目。

假设需要找给小孩67美分,首先入选的是两枚25美分的硬币,第三枚入选的不能是25美分的硬币,否则硬币的选择将不可行(零钱总数超过67美分),第三枚应选择10美分的硬币,然后是5美分的,最后加入两个1美分的硬币。

贪婪算法有种直觉的倾向,在找零钱时,直觉告诉我们应使找出的硬币数目最少(至少是接近最少的数目)。可以证明采用上述贪婪算法找零钱时所用的硬币数目的确最少(见练习1)。

事例2

例1-5[机器调度]现有n件任务和无限多台的机器,任务可以在机器上得到处理。每件任务的开始时刻为si,完成时刻为fi,si

假设有n=7件任务,标号为a到g。它们的开始与完成时间如图13-1a所示。若将任务a分给机器M1,任务b分给机器M2,...,任务g分给机器M7,这种分配是可行的分配,共使用了七台机器。但它不是最优分配,因为有其他分配方案可使利用的机器数目更少,例如:可以将任务a、b、d分配给同一台机器,则机器的数目降为五台。

一种获得最优分配的贪婪方法是逐步分配任务。每步分配一件任务,且按任务开始时间的非递减次序进行分配。若已经至少有一件任务分配给某台机器,则称这台机器是旧的;若机器非旧,则它是新的。在选择机器时,采用以下贪婪准则:根据欲分配任务的开始时间,若此时有旧的机器可用,则将任务分给旧的机器。否则,将任务分配给一台新的机器。根据例子中的数据,贪婪算法共分为n=7步,任务分配的顺序为a、f、b、c、g、e、d。第一步没有旧机器,因此将a分配给一台新机器(比如M1)。这台机器在0到2时刻处于忙状态。在第二步,考虑任务f。由于当f启动时旧机器仍处于忙状态,因此将f分配给一台新机器(设为M2)。第三步考虑任务b,由于旧机器M1在Sb=3时刻已处于闲状态,因此将b分配给M1执行,M1下一次可用时刻变成fb=7,M2的可用时刻变成ff=5。第四步,考虑任务c。由于没有旧机器在Sc=4时刻可用,因此将c分配给一台新机器(M3),这台机器下一次可用时间为fc=7。第五步考虑任务g,将其分配给机器M2,第六步将任务e分配给机器M1,最后在第七步,任务2分配给机器M3。(注意:任务d也可分配给机器M2)。

上述贪婪算法能导致最优机器分配的证明留作练习(练习7)。可按如下方式实现一个复杂性为O(nlogn)的贪婪算法:首先采用一个复杂性为O(nlogn)的排序算法(如堆排序)按Si的递增次序排列各个任务,然后使用一个关于旧机器可用时间的最小堆。

事例3

例1-6[最短路径]给出一个有向网络,路径的长度定义为路径所经过的各边的耗费之和。要求找一条从初始顶点s到达目的顶点d的最短路径。

贪婪算法分步构造这条路径,每一步在路径中加入一个顶点。假设当前路径已到达顶点q,

且顶点q并不是目的顶点d。加入下一个顶点所采用的贪婪准则为:选择离q近且不在路径中的顶点。

这种贪婪算法并不一定能获得最短路径。例如,假设在图13-2中希望构造从顶点1到顶点5的最短路径,利用上述贪婪算法,从顶点1开始并寻找目前不在路径中的离顶点1最近的顶点。到达顶点3,长度仅为2个单位,从顶点3可以到达的顶点为4,从顶点4到达顶点2,最后到达目的顶点5。所建立的路径为1,3,4,2,5,其长度为10。这条路径并不是有向图中从1到5的最短路径。事实上,有几条更短的路径存在,例如路径1,4,5的长度为6。

总结

根据上面三个例子,回想一下前几章所考察的一些应用,其中有几种算法也是贪婪算法。例如,霍夫曼树算法,利用n-1步来建立最小加权外部路径的二叉树,每一步都将两棵二叉树合并为一棵,算法中所使用的贪婪准则为:从可用的二叉树中选出权重最小的两棵。LPT调度规则也是一种贪婪算法,它用n步来调度n个作业。首先将作业按时间长短排序,然后在每一步中为一个任务分配一台机器。选择机器所利用的贪婪准则为:使目前的调度时间最短。将新作业调度到最先完成的机器上(即最先空闲的机器)。

存在问题

注意到在机器调度问题中,贪婪算法并不能保证最优,然而,那是一种直觉的倾向且一般情况下结果总是非常接近最优值。它利用的规则就是在实际环境中希望人工机器调度所采用的规则。算法并不保证得到最优结果,但通常所得结果与最优解相差无几,这种算法也称为启发式方法(heuristics)。因此LPT方法是一种启发式机器调度方法。定理9-2陈述了LPT调度的完成时间与最佳调度的完成时间之间的关系,因此LPT启发式方法具有限定性

能(boundedperformance)。具有限定性能的启发式方法称为近似算法(approximationalgorithm)。

本章的其馀部分将介绍几种贪婪算法的应用。在有些应用中,贪婪算法所产生的结果总是最优的解决方案。但对其他一些应用,生成的算法只是一种启发式方法,可能是也可能不是近似算法。

两大难点

贪心方法

怎样才能从众多可行解中找到最优解呢?其实,大部分都是有规律的。在样例中,贪心就有很明显的规律。但你得到了[fontlang=EN-US]N=5时的最优解后,你只需要在已用上的5块木板中寻找最靠近的两块,然后贴上中间的几个牛棚,使两块木板变成一块。这样生成的N=4的解必定最优。因为这样木板的浪费最少。同样,其他的贪心题也会有这样的性质。正因为贪心有如此性质,它才能比其他算法要快。

正确性

要证明贪心性质的正确性,才是贪心算法的真正挑战,因为并不是每次局部最优解都会与整体最优解之间有联系,往往靠贪心生成的解不是最优解。这样,贪心性质的证明就成了贪心算法正确的关键。一个你想出的贪心性质也许是错的,即使它在大部分数据中都是可行的,你必须考虑到所有可能出现的特殊情况,并证明你的贪心性质在这些特殊情况中仍然正确。这样经过千锤百炼的性质才能构成一个正确的贪心。

在样例中,我们的贪心性质是正确的。如下:

假设我们的答案盖住了较大的空牛棚连续列,而不是较小的。那么我们把那部分盖空牛棚的木板锯下来,用来把较小的空牛棚连续列盖住,还会有剩馀。那么锯掉它们!还给木材商!同时我们的解也变小了。也就是说,我们获得更优的解。所以,靠盖住较大空牛棚连续列的方法无法获得最优解,我们也应该尽量贪心那些距离小的木板合并。

如果仍有一个空牛棚连续列与我们的答案盖住的那个相同,我们同样使用上述的方法。会发现获得的新解与原解相同,那么不论我们选哪个,结果都将一样。

由此可见,如果我们合并的两块木板间距离最短,那么总能获得最优解。所以,在解题的每一步中,我们都只需要寻找两块距离最小的木板并合并它们。这样,我们获得的解必定最优。

结论

如果有贪心性质存在,那么一定要采用!因为它容易编写,容易调试,速度极快,并且节约空间。几乎可以说,它是所有算法中最好的。但是应该注意,别陷入证明不正确贪心性质的泥塘中无法自拔,因为贪心算法的适用范围并不大,而且有一部分极难证明,若是没有把握,最好还是不要冒险,因为还有其他算法会比它要保险。

andsoon.

以上内容的部分总结来自网民和网页摘抄。

MichaelScofieldLQ

歌词

[ti:GREEDY]

[ar:MOMO]

[al:I'veGirlsCompilationvol.4「Lament」]

[by:peVep]

[00:00.00]

[00:54.92]砕け散った色の无い时间隙间に落ち幻を见た

[01:05.47]そこに生きて鼓动を响かせ全て夺いつくす

[01:14.44]狂おしいほどに自由を求め咲き乱れ舞う黒い花

[01:25.16]ただ过ちの甘い蜜にぬれた欲望

[01:36.85]もう帰る场所など无い过去など深い海の泡

[01:42.14]生まれては消えてく光を见つけられずに

[01:47.54]いつか吐き舍てられた存在

[01:51.03]顽なな梦と剥がれた嘘の中へ

[01:55.56]果てなく落ちてゆくだけ

[01:58.23]

[02:20.20]络みついたまやかしの时间网の上を这う足迹と

[02:30.80]谷に落ちた悲鸣の木霊が全て壊し醒める

[02:39.76]煽られた未知の影突き立てる优しげな声震わせて

[02:50.52]谁もを饮み込み哀れみ请うような欲望

[03:02.19]もう帰る场所など无い未来は深い闇のそこ

[03:07.50]稀れ耻じらいまた光を涂りつぶしてく

[03:12.82]いつか戯れに描く真実

[03:16.27]染まりゆくままに裂かれた时の中へ

[03:20.85]果てなく落ちてゆくだけ

[03:23.41]

[03:46.74]Wearealwayswaveringinourmind.oh

[03:56.41]Icriedoutinmanylies.

[04:00.50]So,Wearegreedyanytime.

[04:05.14]破られた羽衣の细い糸雫をたたえ湿りゆく

[04:15.81]この纷れも无い幻想繋がれた欲望

[04:27.55]もう帰る场所など无い过去など深い海の泡

[04:32.81]生まれては消えてく光を见つけられずに

[04:38.18]いつか吐き舍てられた存在

[04:41.67]顽なな梦と剥がれた嘘の中へ

[04:46.15]果てなく落ちてゆくだけ

[04:48.90]もう帰る场所など无い未来は深い闇のそこ

[04:54.19]稀れ耻じらいまた光を涂りつぶしてく

[04:59.47]いつか戯れに描く真実

[05:03.02]染まりゆくままに裂かれた时の中へ

[05:07.52]果てなく落ちてゆくだけ

[05:12.98]

相关词条

相关搜索

其它词条