ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:616.63KB ,
资源ID:5805516      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5805516.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(grasshoppergalapagos遗传算法精品毕业设计完整版.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

grasshoppergalapagos遗传算法精品毕业设计完整版.docx

1、grasshoppergalapagos遗传算法精品毕业设计完整版Evolutionary Principles applied to Problem Solving遗传算法There is nothing particularly new about Evolutionary Solvers or Genetic Algorithms. The first references to this field of computation stem from the early 60s when Lawrence J. Fogel published the landmark paper On

2、the Organization of Intellect which sparked the first endeavours into evolutionary computing. The early 70s witnessed further forays with seminal work produced by -among others- Ingo Rechenberg and John Henry Holland. Evolutionary Computation didnt gain popularity beyond the programmer world until R

3、ichard Dawkins book The Blind Watchmaker in 1986, which came with a small program that generated a seemingly endless stream of body-plans called Bio-morphs based on human selection. Since the 80s the advent of the personal computer has made it possible for individuals without government funding to a

4、pply evolutionary principles to personal projects and they have since made it into the common parlance.其实在遗传算法和基因算法里并什么特别新的理论出现,该领域的第一篇文献出现在六十年代由Lawrence J. Fogel 出版的具有里程碑意义的论文“智能组织”,这篇论文使人们开始致力于研究遗传算法。七十年代又由ngo Rechenberg and John Henry Holland的工作进一步带动了基因算法的发展,遗传算法直到1986年才因为Richard Dawkins的“The Bli

5、nd Watchmake”而让人广为人知,里面有个小的例子,基于人类的选择仍然会产生无尽的被称为“生态形变”的动作计划。80年代由于个人电脑的出现使得每个人都可以将进化算法用于个人项目而不用政府提供资金支持,从此,进化算法开始像日常话题一样进入公众视野。The term Evolutionary Computing may very well be widely known at this point in time, but they are still very much a programmers tool. By programmers for programmers if you w

6、ill. The applications out there that apply evolutionary logic are either aimed at solving specific problems, or they are generic libraries that allow otherprogrammers to piggyback along. It is my hope that Galapagos will provide a generic platform for the application of Evolutionary Algorithms to be

7、 used on a wide variety of problems by non-programmers.虽然现在进化算法在现在已经广为人知,但他大部分还作为编程工具使用,只是程序员和程序员之间交流,遗传算法即使应用也是处理一些特别的问题,大部分时间还是呆在通用库里等着程序员来用它,我希望galapagos可以提供一个遗传算法的广泛平台来让那些非编程人员来处理一些问题。Pros and Cons赞成和反对Before we dive into the subject matter too deeply though I feel it is important to highlight s

8、ome of the (dis)advantages of this particular type of solver, just so you know what to expect. Since we are not living in the best of all possible worlds there is often no such thing as the perfect solution. Every approach has drawbacks and limitations. In the case of Evolutionary Algorithms these a

9、re luckily well known and easily understood drawbacks, even though they are not trivial. Indeed, they may well be prohibitive for many a particular problem.在我们深入探讨这个问题之前,我认为有必要向大家介绍这类特殊算法处理方式的优缺点,这样可能更利于你了解你到底想通过这个获得什么。事实上我们生活在一个不完美的世界,没有什么事情会有一个完美地解决方案,每个解决方案都会有他的缺陷和限制。而在遗传算法领域可喜的是我们明确地知道他的一些缺陷,而且这

10、些缺陷也不小,而且确实在一些具体问题的处理上明确禁止用遗传算法来解决。Firstly; Evolutionary Algorithms are slow. Dead slow. It is not unheard of that a single process may run for days or even weeks. Especially complicated set-ups that require a long time in order to solve a single iteration will quickly run out of hand. A light/shado

11、w or acoustic computation for example may easily take a minute per iteration. If we assume well need at least 50 generations of 50 individuals each (which is almost certainly an underestimate unless the problem has a very obvious solution.) were already looking at a two-day runtime.首先,遗传算法在运行起来的时候很慢

12、,奇慢,非常慢,慢的要死。一个小程序运行几天甚至几个星期一点也不见怪,尤其是需要长时间简单迭代的复杂数据结构,运行起来会马上超出你的掌控,就算简单的光影分析或者是声学分析每次迭代就要几分钟,假设我们设置50代,每代50个个体(这都是按照最少最理想的状态来设定的),那这个程序需要两天才能做完。Secondly, Evolutionary Algorithms do not guarantee a solution. Unless a predefined good-enough value is specified, the process will tend to run on indefin

13、itely, never reaching The Answer, or, having reached it, not recognizing it for what it is.其次,遗传算法并不能百分之百的保证求出正确的解,除非一个预先你已经想好的差不多的解已经确定下来,遗传算法会尽量的朝着你想要的那个解努力,但是他永远不会找到“真理”,当然,也可能找到了只不过他是电脑,根本意识不到那个是最优解,即“真理”。All is not bleak and dismal however, Evolutionary Algorithms have strong benefits as well,

14、some of them rather unique amongst the plethora of computational methods. They are remarkably flexible for example, able to tackle a wide variety of problems. There are classes of problems which are by definition beyond the reach of even the best solver implementation and other classes that are very

15、 difficult to solve, but these are typically rare in the province of the human meso-world. By and large the problems we encounter on a daily basis fall into the evolutionary solvable category.当然,遗传算法也并不是上面我说的那么单调无力,一直被吐槽。进化算法在一些方面也有着强大的性能体现,在茫茫多的计算算法里他确实一枝独秀,进化算法有很强的灵活性,能同时处理各种各样的问题,有些问题最好的解算器也解不出来,

16、而且很多的我们日常遇到的问题都可以放到进化算法的范畴内进行解决。Evolutionary Algorithms are also quite forgiving. They will happily chew on problems that have been under- or over-constrained or otherwise poorly formulated. Furthermore, because the run-time process is progressive, intermediate answers can be harvested at practicall

17、y any time. Unlike many dedicated algorithms, Evolutionary Solvers spew forth a never ending stream of answers, where newer answers are generally of a higher quality than older answers. So even a pre-maturely aborted run will yield something which could be called a result. It might not be a very goo

18、d result, but it will be a result of sorts.进化算法的容忍性也很好,他很有能力去处理一些你低估或者高估或者很傻X的操作,进一步讲,因为它运行的时候是动态的,所以你在任何时候都可以收获一大堆的解而不像其他解算法(解完了才能得到答案),进化算法射出来一大堆永远没有尽头的解,而且这一代的解总体上来说会比上一代的质量更高,所以,尽管一些早产的结果产生我们也可以姑且把他认为是结果,虽然他不是最优秀的结果,但是他确是得到最优结果必不可少的一部分。Finally, Evolutionary Solvers allow -in principle- for a hig

19、h degree of interaction with the user. This too is a fairly unique feature, especially given the broad range of possible applications. The run-time process is highly transparent and browsable, and there exists a lot of opportunity for a dialogue between algorithm and human. The solver can be coached

20、 across barriers with the aid of human intelligence, or it can be goaded into exploring sub-optimal branches and superficially dead-ends.最后讲一点,进化算法和用户有很强的交互性,这是非常特别独特的属性,特别是当你给了他一大堆可能的条件是。当他在运行起来的时候,求解过程非常透明也便于浏览,因此存在很多机会创建人机交互的对话窗口,引导解算跨过障碍,或者探索一些并不是很理想的答案,甚至一条死胡同。The Process运行特点In this section I s

21、hall briefly outline the process of an Evolutionary Solver run. It is a highly simplified version of the remainder of the blog post, and Ill skip over many interesting and even important details. Ill show the process as a series of image frames, where each frame shows the state of the population at

22、a given moment in time. Before I can start however, I need to explain what the image below means.在这段里我将简单的介绍一下进化算法是如何运行的,这些内容都是以前一些博客简化了的,所以忽略了一些有趣甚至重要的细节。下面我会用一系列的图片来展示他是如何运行的,每一张图都记录了在特定时刻的“代”的关系,在开始之前,我先解释一下下图是啥意思。What you see here is the Fitness Landscape of a particular model. The model contain

23、s two variables, meaning two values which are allowed to change. In Evolutionary Computing we refer to variables as genes. As we change Gene A, the state of the model changes and it either becomes better or worse (depending on what were looking for). So as Gene A changes, the fitness of the entire m

24、odel goes up or down. But for every value of A, we can also vary Gene B, resulting in better or worse combinations of A and B. Every combination of A and B results in a particular fitness, and this fitness is expressed as the height of the Fitness Landscape. It is the job of the solver to find the h

25、ighest peak in this landscape.你可以把上面这张图当成一个特别的景观模型(类似于山脉),这个模型包涵了两个变量,他们可以同时变化。在进化算法中我们习惯把变量称为基因。当我们改变基因A的时候结果会变好或者变坏(取决于我们希望他变好还是变坏)来匹配适合模型的状态。所以,当基因A改变时,整个模型都在变化。同理,在基因A发生变化时,基因B也可以同时参与变化,这时候出来的结果就是A和B同时起的作用。每一个A和B所产生出来的结果都被反映在这个模型的Z轴高度上,因为我们的任务就是找出来这个山峰的最高点。Of course a lot of problems are defined

26、 by not just two but many genes, in which case we can no longer speak of a landscape in the strict sense. A model with 12 genes would be a 12-dimensional fitness volume deformed in 13 dimensions instead of a two-dimensional fitness plane deformed in 3 dimensions. As this is impossible to visualize I

27、 shall only use one and two-dimensional models, but note that when we speak of a landscape, it might mean something terribly more complex than the above image shows.诚然,大量的问题并非简单的通过两个基因就能确定,而是需要很多基因,所以严格意义上来讲的话也就不能用景观(山脉)这个概念来解释,你想想看,一个用12个变量确定的将会是一个12维体扭曲在13维空间里,而不再是2维平面扭曲在三维空间里。所以我用一个2维的模型是不可能展示出来1

28、2维物体的,不过我提到这个只是想说有时候我们研究的要比上面这个2维世界的图复杂得多。As the solver starts it has no idea about the actual shape of the fitness landscape. Indeed, if we knew the shape we wouldnt need to bother with all this messy evolutionary stuff in the first place. So the initial step of the solver is to populate the landsc

29、ape (or model-space) with a random collection of individuals (or genomes). A genome is nothing more than a specific value for each and every gene. In the above case, a genome could for example be A=0.2 B=0.5. The solver will then evaluate the fitness for each and every one of these random genomes, g

30、iving us the following distribution:当这个进化算法开始的时候,其实电脑是不知道这个山脉景观的,如果电脑会像我们一样一眼看出来这个山脉的高低一开始就不用这么麻烦的去弄一大堆的数据。所以,在一开始,电脑就要用一大堆随机的点(基因组)来给他塑形。基因组就是一组数据,没别的,在这个例子里,一个基因组就相当于A=0.2 B=0.5的一个坐标。电脑计算过每一个随机的基因组,并且适应化之后,我们就可以看到下图这样的分布。Once we know how fit every genome is (i.e., the elevation of the red dots), w

31、e can make a hierarchy from fittest to lamest. We are looking for high-ground in the landscape and it is a reasonable assumption that the higher genomes are closer to potential high-ground than the low ones. Therefore we can kill off the worst performing ones and focus on the remainder:一旦我们知道了这些基因组(

32、下图这些抬高的红点点)匹配这个山脉的程度,我们就可以通过匹配的程度,非常匹配或者差一些的,来给他们分级。我们是在寻找这个山脉上位置较高的点,所以有充足的理由来假设这些位置较高的基因组要比位置靠下的基因组更加接近顶端,所以,我们可以把那些表现的差一些的拖出去斩了而只关注那些剩下来的优秀的。It is not good enough to simply pick the best performing genome from the initial population and call it quits. Since all the genomes in Generation 0 were picked at random, it is actually quite unlikely that any of them will have hit the jack-pot. What we need to do is breed the best performing genomes in Generation 0 to create Generation 1. When we breed two genomes, their offspring will end up somewhere in the intermediate mod

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1