- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
遗传算法讲义7_slides.
第七章 遗传算法与并行处理
7.1 遗传算法固有的并行性及其并行化的困难
自然界的进化过程本身就是一个并行过程。
遗传算法来源于自然进化,是对自然进化过程的机器模拟,很自然地也就继承了自然进化过程所固有的并行性。
Holland在最早提出遗传算法的理论和模型时就阐述了它所包含的固有的并行性。
遗传算法在并行实现上的因难:标准遗传算法在并行化的过程中会遇到通信量过大的困难。
必须对标准遗传算法进行改造,尽量减少巨量通信从而获得高效率。但是,任何对标准遗传算法的改造都必须以尽可能少地影响其进化效果为前提。
7.2 遗传算法的并行化途径
7.2.1 主从式(master-slave)并行化方法
当施行适应度评估时我们可以相互独立地评估群体内的每个个体的适应度,从通信量的角度来讲,这意味着在评估进程之间无需通信。
如单纯从减少通信量入手,也很自然地首先想到可将适应度评估等局部操作交给从处理器网络(slave)并行执行,而将选择、交叉等全局操作留给主处理器(master)串行执行、这就是所谓主从式并行化方法。
因为无论当哪个处理器运行主算法时都要有同步机制,所以像这样来开发存在于遗传算法中的并发性效率还是不高的。这是由于主进程忙而子进程空闲以及子进程忙而主进程空闲等情况(即负载不均衡)所造成的。
在上述算法的并行实现中,选择操作应该对整个群体的适应度有个全局的了解,这部分地决定了通信要求。主处理器必须知道每个个体的适应度值,所以必须支持多到一的通信。
放牧式(farming):放牧式的思想或结构适用于有一组相互独立的工作可以并发完成的问题。控制进程,即运行在根节点上的牧场主(farmer)进程将任务划分为工作包,然后将它们“放牧”到一组相同的工人进程上。
用放牧式的思想来实现并行遗传算法是,让牧场主进程保存有整个群体的适应度值,它负责执行遗传操作,而适应度评估工作则交由工人网(workers)完成。接收到任务的第一个空闲的工人把它承担下来,完成它并将结果送回给牧场主。
通常,每个处理器上有一个工人进程,必须以一个合适的拓朴(如流水线)结构来连接处理器,并增加选路进程负责给空闲的工人进程送去工作包,给控制进程回送结果。
因为集中存储群体易造成瓶颈,所以任何基于放牧式的并行遗传算法的可扩放性都不好。
可能采用放牧式的理由如下:
放牧式很通用且容易实现。
如果个体评估需时相同,则放牧式效率很高且负载均衡
可以用放牧式来模拟迁杉式和扩散式,
放牧式将评估交给工人网络来完成,降低了对主处理器的内存要求。
实现时,体系结构可以采用树而不是流水线,控制进程放在根节点上。
但是,这种方式也只有在交叉和评估比选择和传送费时很多的情况下才有效。因为它不是将进化过程并行化的“自然”方式,所以无法得到令人满意的结果。即使只用少量个处理器,放牧式的加速比也很小。
总的来说,主从式比较直观且容易实现,它并没有对标准遗传算法的框架结构作任何改动,所以不会影响其解决具体问题的效果。但是它不可避免地存在有负载不均衡的问题,而且通信量仍然很大,这使得它的效率不高,从而限制了它的实用性。
7.2.2 粗粒度模型
在自然界中,物种的群体是由一些个体组成。在处理器个数较少的情况下,我们可以将群体分为若干个子群体,每个子群体包含一些个体,每个子群体分配一个处理器,让它们互相独立地并行执行进化,每经过一定的间隔(即若干进化代)就把它们的最佳个体迁移到相邻的子群体中去。这种租粒度的并行遗传算法被称作迁移式(migration)或孤岛(islands)模型,可以描述如下:
begin
(1)产生一个初始群体并将它划分成p个子群体
(2)for i=l to p par-do
(2.1)初始化
(2.2)评估第一代子群体的适应度
(2.3)while running do
(2.3.1)for j = 1 to n(generations) do
select parents
crossover
mutation
evaluate sub-population
endfor
(2.3.2) select emigrants /* 选择要迁移出去的个体 */
(2.3.3) do step (a) and (b) in parallel
send emigrants /* 发送要迁移出去的个体 */
receive immigrants /* 接收迁入的个体 */
endwhile
endfor
end
7.2.3 细粒度模型
如果并行系统中有足够多的处理器,则我们可以将每个个体分配一个处理器,让它们互相独立地并行执行进化,这样
文档评论(0)