并行遗传算法研究及其在组合优化问题中的应用1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海交通大学
硕士学位论文
并行遗传算法研究及其在组合优化问题中的应用
姓名:赵宏立
申请学位级别:硕士
专业:控制理论与控制工程
指导教师:庞小红;吴智铭
20031201
并行遗传算法研究及其在组合优化问题中的应用
摘要
遗传算法作为一种基于模仿生物自然选择和遗传原理的高效搜索
技术工商管理一
般来讲随着科学技术的不断发
展面对复杂程度越来越高的搜索空间
力不从心并行遗传算法将并行计算机的高速并行性和遗传算法天
然的并行性相结合并行处理的引入不但加速了遗传
算法的搜索过程使种群的多样性得以丰富和
保持提高了求解质量
然后在第二章里对并行遗传算
法从其分类
在并行遗传算法里coarse grain parallel g enetic algorithm
Ëü¿ÉÒÔÔÚ¶àÖÖ¼ÆËã»·¾³ÖÐÓÃMPI来实现
本文第三章里对有关的MPI并行编程技术
进行了介绍 在第五章中提出一种用基因块编码的
并行遗传算法简称BCPGA该方法以粗粒度并行
遗传算法为基本框架然后用基因块作为新的基因单
位对染色体重新编码如此循环演化
旅行商问题TSP和连续函
数的优化问题不同使用最多的是搜索类方法
实验证明此方法可以提高遗传算法的搜索效率,并且在相同条件下
Job-Shop问题是经典的生产线调度问题随着问题规模的
扩大Job-Shop 比经典的组合优化难
题
使用遗传算法求解Job-Shop问题的一个关键问题是编码我们提出了一
种求解Job-Shop问题的新的遗传算法的方法RPGA
Traveling Salesman Problem使得关
于TSP问题的遗传算法的方法可以用于解决Job-Shop问题
避免在进化过程中产生非可行解
再编码过程根据各工序的开工时间先后对染色体的各基因重新赋值最后
在此模型上我们对Fisher和Thompson的 10x10问题进行了求解实验
也证明了对染色体再编码过程对此问题的重要性并行遗传算法MPI×÷Òµ³µ¼äµ÷¶ÈÎÊÌâ
Parallel Genetic Algorithms Research and Application in
Combinatorial Problems
As a kind of optimization techniques motivated from the principles of biological evolution and genetics, the Genetic Algorithms have been successfully applied to solve complicated optimization problems in many fields, such as industrial design, management and scientific research. The traditional GA methods have many advantages over the conventional optimization techniques such as global optimization, independence of gradient, ease of implementation and so on. As the complexity of these problems became increasing more and more, the research to improve the efficiency of GA has already become a major concern in the GA research field.
Parallel genetic algorithms (PGA) have been developed to reduce the large execution times that are associated with serial genetic algorithms. They have also been used to solve larger problems and to find better solutions. Parallel genetic algorithms have many advantages beside the ones come from GA. It involves more population in evolution, and maintains good genetic varieties, which are very important to avoid prematurity.
In the first chapter of this thesis, we have a brief introduction about the traditional genetic algorithm and some basic theories. In the second chapter are the review of the various kinds of parallel genetic algorithms and the analysis about their working mechanisms.
The coarse grained parallel genetic algorithm is the most widely used one among various kinds of PGA. A possible implementation of the coarse grained parallel genetic algorithm involves MPI (Message Passing Interface), which is an standard and library used in message passing parallel program design. In the third chapter are the introductions about the MPI and relevant knowledge. The implementation of the basic coarse grained parallel genetic algorithm is presented in chapter four.
If the building blocks can be found and treated as the gene units that compose the chromosomes, shorter chromosomes can be produced in evolution. Thus the size of the problem space will be reduced and the improved efficiency of GA can be expected. In chapter five, the Building-block Coded Parallel Genetic Algorithm (BCPGA) is introduced, which is based on the coarse-grained parallel GA. In this approach, the best individuals are collected from the distributed groups every after a period of evolution. From these elites the possible building blocks are identified and treated as gene units to recode the elites. Then the building block coded elites become the initial group of a new period of evolution. The procedure is recycled in the evolution process. A 100-city Traveling Salesman Problem is used in the experiment that confirmed the improved efficiency of the BCPGA.
Representation scheme plays a very important role for GA, especially in Job-Shop scheduling problems. In chapter six, we presented the RPGA.RPGA converts a job-shop scheduling problem directly into a traveling salesman problem, thus many of the previous GA techniques for TSP can be used to resolve JSSP. This representation scheme produces no infeasible solutions. The most characteristic part of this method is its re-encoding scheme, which realizes a unique mapping between the coding space and the solution space. A coarse-grained parallel model is used to implement RPGA. The famous FT10x10
problem is carried out with RPGA. The result proves the efficiency of RPGA and the crucial effect of the re-encoding scheme.
Key words: parallel genetic algorithms, combinatorial problems, MPI, Traveling Salesman Problem, Job-shop scheduling problem;
上海交通大学
学位论文原创性声明
本人郑重声明是本人在导师的指导下
除文中已经注明引用的内容外
对本文的研究做出重要贡献的个人和集体本人完全意识到本声明的法律结果由本人承担
赵宏立
日期
上海交通大学
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留同意学校保留并向国家有关部门或机构送交论文的复印件和电子版本人授权上海交通大学可以将本学位论文的全部或部分内容编入有关数据库进行检索缩印或扫描等复制手段保存和汇编本学位论文
本学位论文属于
不保密
赵宏立 指导教师签名
2004 年 1 月 8 日 日期
第一章遗传算法及其基本理论
1.1 从生物进化到进化计算
根据达尔文的进化论[Dar]ÉúÎï´ÓµÍ¼¶Öð½¥Ïò¸ß¼¶¸÷ÖÖÉúÎï±ØÐëΪ×Ô¼ºµÄÉú´æ¶ø¶·Õù²»Í¬ÖÖȺ¼ä
¾ßÓнÏÇ¿Éú´æÄÜÁ¦µÄÉúÎï¸öÌåÓн϶àµÄ»ú»á´æ»îÏÂÀ´²¢²úÉúºó´ú
»òÕß²úÉúºó´úµÄ»ú»áÔ½À´Ô½ÉÙÕâÒ»¹ý³Ì¾ÍÊÇÖÚËùÖÜÖªµÄ
ºÍ
G. Mendel, T. Morgan遗传物质以基因的形式排列在染色体上每个基因有特殊的位置并控制着生物的某个特性
染色体通过杂交和变异并有所不同的新的染色体结构经过自然选择的优胜劣汰
以上的生物进化是个不断循环的过程生物群体在自然选择的压力之下而得到发展和完善在计算科学中有着直接的借鉴意义[Hol62],[Erv]ÉúÎï½ø»¯¹ý³Ì²»½ö¿ÉÒÔÔÚ¼ÆËã»úÉÏÄ£ÄâʵÏÖ¼ÆËã¿ÆѧѧÕßÌá³öÁ˸÷ÖÖÐÎʽµÄ¼ÆËã·½·¨
evolutionary computation包括三个组成部分由美国密歇根大学的John H. Holland教授提出的遗传算法[Hol75]由美国科学家Lawrence J. Fogel等人提出的进化规划[Fog]由德国科学家Ingo Rechenberg 和Hans-Paul Schwefel提出的进化策略
[Rec]evolutionary algorithms, EA20世纪90年代初
遗传程序设计[Koz]
它们都具有一个共同的特点
1.2 遗传算法的简单描述
把计算机科学与进化论结合起来的尝试开始于20世纪50年代末
使得人们只能依赖变异而不是交配来产生新的基因结构
到20世纪60年代中期
这种编码既适合于变异又适合杂交操作
随后
并于1975年出版其开创性的著作[Hol75]Holland与他的学生们将此算法加以推广并运用与优化和机器学习等问题中
Holland的遗传算法常被称为简单遗传算法
称为染色体或个体即种群
从初始种群出发使用杂交和变异来产生下一代种群直到满足预
先设定的中止条件
图1.1 简单遗传算法的流程图
遗传算法可以形式化描述如下[Pan]
P(0), N, l, s, g, p, f, t
这里P(0) a
(0), a2(0), … a N(0)I N
I = B l = {0,1}l表示长度为l的二进制串全体
l表示二进制串的长度
I N 表示选择策略
通常它包括繁殖算子O r: I 杂交算子O c: I I
I
°üÀ¨·±Ö³¸ÅÂÊp r
f: I
t: I N
根据图1.1的流程图和以上的对于遗传算法的形式化描述
其必须完成的工作内容和基本步骤如下[Gold]
°Ñ²ÎÊý¼¯ºÏX和域转换为位串空间I
3) 确定遗传策略选择变异方法
变异概率p m等遗传参数
5) 计算群体中个体位串解码后的适应值f(X)
ÔËÓÃÑ¡ÔñÐγÉÏÂÒ»´úȺÌå
»òÕßÒÑÍê³ÉÔ¤¶¨µü´ú´ÎÊý
或者修改遗传策略后再返回步骤6)
ËäÈ»ÒÔÉϵÄÃèÊöÖеÄȾɫÌåÊǶþ½øÖÆλ´®
Èç´ó×Ö·û¼¯±àÂëʵÊý±àÂë
1.3 遗传算法的特点
如上所述进化算法是一种随机搜索方法
交叉和变异等遗传操作过程中与其它搜索技术
启发式搜索和枚举搜索等进化算法具有以下特点[Gold]
¶ø²»ÊÇ´Óµ¥Ò»µÄ³õʼµã¿ªÊ¼ËÑË÷
ÌرðÊǵ±²ÉÓÃÓÐЧµÄ±£Ö¤ÈºÌå¶àÑùÐԵĴëʩʱ¼È¿ÉÒÔÍê³É¼«ÖµµãÁìÓòÄÚ½âµÄÇó¾«Òò´ËµÃµ½È«¾Ö×îÓŽâµÄ¸ÅÂÊ´ó´óÌá¸ß
¶ø²»ÊÇ´«Í³·½·¨Ö÷Òª²ÉÓõÄÄ¿±êº¯ÊýµÄµ¼ÊýÐÅÏ¢»ò´ýÇó½âÎÊÌâÁìÓòÄÚ֪ʶ
3) 进化算法具有显著的隐式并行性
但处理的信息量为群体规模的高次方
不仅便于与其它方法相结合
因此可以有效地用于解决复杂地适应性系统模拟和进化问题
robustness即在存在噪声的情况下
进化算法的鲁棒性在大量的应用实例中得到的充分的验证
作为进化算法中产生最早应用也比较广泛的一个研究方向和领域
还具有若干独特的性能[Hol75,Gold,Whi]
ÒÅ´«Ëã·¨Ê×ÏÈҪѡÔñ±àÂ뷽ʽ
ËÑË÷¹ý³Ì¼È²»ÊÜÓÅ»¯º¯ÊýÁ¬ÐøÐÔµÄÔ¼Êø
ͨ¹ýÓÅÁ¼È¾É«Ìå»ùÒòµÄÖØ×é
2) 若遗传算法在每一代对群体规模为n的个体进行操作n3
¾ßÓкܸߵIJ¢ÐÐÐÔ
3) 在所求解问题为非连续能够以很大概率收敛到最优解或满意解
4) 对函数的性态无要求
或者加入特定问题的领域知识能够较好地解决一类复杂问题
5) 遗传算法的基本思想简单便于具体使用
人们就试图对其进行理论分析以解释其有效性的原因
在J. Holland的模式理论中一个模式是通过引入通配符到基因字母表中来建立的*
ÀýÈç*1*1100100
{11011001001111100100
*则一个模式代表的染色体串个数为2r
ÆäÖн׺ÍģʽµÄÊÊÓ¦ÖµÊÇÈý¸öÖØÒªµÄÐÔÖÊ
ÀýÈçģʽS的长度为10-2=8
ÀýÈçģʽS的阶数为8
ÏÂÃæ¼òÒª½éÉÜÒ»ÏÂģʽ¶¨Àí
(S,t)±íʾtʱ¿ÌȺÌåÖÐÆ¥ÅäģʽSµÄ´®ÊýS,t其中
S,t
每个染色体被选择成为交叉父体的概率和其适应值成正比
eval(Vi) / F(t)
F(t) n为群体中染色体个数
1时刻和模式S匹配的串数1)为
(S,tS,t
则上式可重写为
(S,tS,t式3.1
Ò»¸öÊÊÓ¦ÖµÔÚƽ¾ùÖ®ÉÏS,t的模式在下一代中
的数目将会增加eval
/)(t F < 1
ÉÏÊö¹æÔòµÄ³¤ÆÚЧ¹ûÊÇÃ÷ÏÔµÄ
%
S,t
)(t F
*)(t F
那么1+
t
即一个在平均之上的模式不仅在下一代中串数增长
我们将式3.1称为复制模式增长方程
在杂交过程中原有模式可能会被破坏(S)对其生存和毁灭的概率有重要的作用则杂交位置是在m -1个位置中被平均随机选择的
p d (S) =
p s (S) = 1 -
那么一个模式存活的概率为
(S) / (m -1)
考虑到杂交后可能产生和原父体中相同的模式
p
s (S) (S) / (m -1) 这样式3.1被修正为
(S,t
(1 - p
c *
(S,t)* eval
/
从上式可以看出
模式的适应值和模式的长度的函数短的长度的模式将按照几何增长的速
率被复制
变异算子随机改变染色体串中的基因符号
例如对于二进
制串即从0变为1ģʽµÄ½×ÊýO(S)
对于变异过程中模式存活的概率有重要作用
模式S 的阶数
为O (S)
p s (S) = (1 – p m )O (S) 因为一般p m <<1ÂÔÈ¥¸ß´ÎÏî
p s (S)
¿¼Âǵ½±äÒìËã×ÓµÄÓ°Ïì
1)
(S) / (m -1))*S,t式3.3
ÏÂÒ»´úÖÐÆ¥ÅäģʽS 的预测串数是父代群体中模式S 的匹配串数
即在平均之上的
概括起来并且这种变化是指数
型的所以要引入杂交算子
另外
如果一个模式是短的并且低阶的
式3.3的结果即为模式定理低阶的
这一理论引出了对遗传算法收敛效果进行解释的基因块假设
低阶的
称之为基因块
基因块假设可以这样来理解选择过程使得短的高效的模式在后代中的存在概率更大高阶的交叉过
程使得染色体之间可以相互交换基因信息染色体通过杂交过程从而使得染色体的适应值得到提高
并可能最终形成最优染色体
更重要的是已经有很多的遗传算法的应用支持基因块假设
也是分析遗传算法的进化行为的基本理论模式理论是对遗传算法进化行为进行分析的进化动力学理论
随机模型理论
遗传算法的搜索过程可以表示为离散时间的马尔可夫模型
遗传算法满足有限马尔可夫链的基本特征存在极限概率分布标准遗传算法可以搜索到解空间上的任何一点
遗传算法以概率1收敛与问题的全局最优解[Rud]
Ò²ÊÊÓÃÓÚ½ø»¯²ßÂÔEP
Ëü¶ÔÒÅ´«Ëã·¨µÄËÑË÷¹ý³Ì½øÐÐÁËͳ¼Æ³éÏóÃèÊö
µ«¶ÔÓÚÒÅ´«Ëã·¨µÄ¾ßÌåÓ¦ÓúͲÎÊýÉè¼ÆËùÌṩµÄÖ¸µ¼ÐÅϢȴ·Ç³£ÉÙ
1.5 设计遗传算法的基本步骤
在设计针对某类问题的遗传算法时
1ÒÅ´«Ëã·¨Çó½âÎÊÌâʱ²»ÊÇÖ±½Ó×÷ÓÃÔÚÎÊÌâµÄ½â¿Õ¼äÉÏ
Ñ¡ÔñºÎÖÖ±àÂëÖ±½Ó¶ÔËã·¨µÄÐÔÄÜÓзdz£ÖØÒªµÄÓ°Ïì
ÔÚ±àÂë¹ý³ÌÖпÉÐÐÐÔ
le gality¶ÔÓ¦µÄΨһÐÔµÚÁùÕµıàÂë·½
°¸ÖÐÓоßÌå·ÖÎö
确定适应函数它通常依赖于解的行为与环境
de 关系解的适应值是在演化过程中进行选择的唯一依据
3ÓÅʤÁÓÌ-µÄÑ¡Ôñ»úÖÆʹµÃÊÊÓ¦Öµ´óµÄ½âÓнϸߵĴæ»î¸ÅÂÊ
Ñ¡Ôñ²ßÂÔÖ±½ÓÓ°Ïì×ÅÑ¡ÔñѹÁ¦
Òò´Ë²»Í¬µÄÑ¡Ôñ²ßÂÔ¶ÔËã·¨µÄÐÔÄÜÓнϴóµÄÓ°Ïì控制参数的选择算法执行的最大代数
这些参数对算法的性能有较大的影响
有不同的最佳参数
5ÒÅ´«Ëã·¨ÖеÄÒÅ´«Ëã×Óreproduction杂交
mutation
6ÓÉÓÚÒÅ´«Ëã·¨²»ÏóÆäËüһЩ½âÎöËã·¨¿ÉÒÔÀûÓÃÄ¿±êº¯ÊýµÄÌݶȵÈÐÅÏ¢ÎÞ·¨È·¶¨¸öÌåÔÚ½â¿Õ¼äµÄλÖÃ
³£Óõķ½·¨ÊÇÊÂÏÈÈ·¶¨Ò»¸öÑÝ»¯´úÊýµÄ×î´óÖµ
7ÔËÐв¢ÇÒ¿ÉÒÔͨ¹ýÑÝ»¯À´ÌÔÌ-ÖÊÁ¿½Ï²îµÄ½â
robustness有趣的是即使
程序有某个或若干个小BUGÒÅ´«Ëã·¨×îºóÒÀ¾É¿ÉÒÔÑ¡Ôñ³öÕýÈ·µÄ
½â
8µ÷ÕûºÍ¸Ä½øÒÅ´«Ëã·¨ËäÈ»ÊÊÓ¦Ãæ·Ç³£¹ãÓÈÆäÊǶÔÓڱȽϸ´ÔÓµÄÎÊÌâ
²ÅÄÜ»ñÀíÏëµÄ½á¹û
第二章并行遗传算法
GA作为一种基于模仿生物自然选择和遗传原理的高效搜索技术
工商管理一般来讲
但是随着问题规模和复杂程度的不断提高
因此其中一个重要的研究方向就是GA的并行化执行parallel GA, PGA
2.1 PGA分类
并行算法的基本思想是将整个任务分解为若干个子任务
这种分治策略也同样被应用于GA的并行化设计
目前PGA的并行模型主要有三种基本类型[Can]
master-slave model细粒度模型和粗粒度模型
PGA
hierarchical
2.1.1 主从式模型
在主从式PGA中交叉和变异等全局操作
其拓扑如图2.1所示
例如
SMP, ASMP群集系统MPP对于共享内存或者分
布式内存结构的计算机系统主处理器负责遗传操作进行适应值计算并写回内存中
主处理器可以根据各个节点的计算能力和负荷情况动态调整各节点的负载平衡
主不可避免地会出现主从节点负荷不均衡的情况从节点都要向主节点发送结果,造成瓶颈和大的通信延迟一般只用于适应度评估的工作量很大的情况
对中学课程表进行了优化计算[ABR92]Abramson
8个节点对火车时刻表进行
了优化从单节点到2个节点获得了显著的
随着节点数量的增多加速比的提高程度显著下降
而是通过分解
而细粒度PGA和粗粒度PGA都改变了GA的运行机理
其染色体个体分布在各个处理器上也是细粒度PGA的基本拓扑结构
图2.2 细粒度PGA的拓扑结构
对于每个染色体,选择操作和交叉操作都只在其所处的处理器及其邻域中进行
染色体的基因信息可以在整个群体内交换
在最大的限度上发挥了遗传算法的并行潜力
所以细粒度模型的应用范围不广
Robertson将细粒度PGA应用于分类系统中[ROB87]其中选择和交叉操作完全并行化
实验结果表明细粒度PGA的性能将呈逐渐下降趋势细粒度PGA的性能变得与单群体SGA
相同
distributed style island-based model是适
应性最强和应用最广的遗传算法并行化模型
各个子群体在不同的处理器上相互独立的并发执行进化操作
各子群体间会交换若干的个体以引入其它子群体的优秀基因
防止未成熟收敛的发生
主从式PGA将GA的工作并行化而粗粒度PGA和细粒度PGA的选择和交叉操作仅仅考虑群体中的某个个体子集
可获得接近线性的加速比
可以实现粗粒度PGA的计算环境非常多
除了遗传算法本身的特点之外还需考虑以下若干特性子群体的初始化
各子群体的初始分布可以同为随机分布在整个可行域中主节点hostÔÙËæ»ú·ÖÅäµ½¸÷¸ö½ÚµãÉÏ[Da]
立的随机生成自己的初始群[And]¸÷×ÓȺÌåµÄ³õʼȺÌå·Ö²¼ÔÚÕû¸ö¿ÉÐÐÓòµÄ²»Í¬ÇøÓòÖÐ[Hid]
2
ÎÞǨÒÆ单向环[Bec]
超立方体[XuD]ÎÄÏ×[Mat98]利用大量的实验比较了各种拓扑连接对解质量的影响又较好地隔离了子群体虽然收敛速度较慢
3
Ò»°ãÐèÒª¿¼ÂÇǨÒÆƵÂÊ»ò½ø»¯´úµÄ¼ä¸ôºÍ½ÓÊÜÒÆÃñ¸öÌåµÄ·½Ê½µÈÒòËØÒ»°ãÓÐÒÔÏÂÁ½ÖÖÀàÐÍÈ·¶¨Ç¨ÒƼä¸ô¸öÌåǨÒƵļä¸ôÊǹ̶¨µÄÀûÓÃÏûÏ¢´«µÝǨÒƸöÌåÇ°ÒÔÈ·±£¸÷×ÓȺÌå½ø»¯ÁËÏàͬµÄ´úÊýÒªÊÓ¾ßÌåÎÊÌâ¶ø¶¨·ÇÈ·¶¨Ç¨ÒƼä¸ôµ±Íⲿ¸öÌåǨÈëÎȶ¨µÄ¾Ö²¿»·¾³Ê±
ÓÚÊÇÒ첽ǨÒƵĴÖÁ£¶È²¢ÐÐÒÅ´«Ë㷨ģÐͱ»Ìá³öÀ´
¾-¹ýÒ»¶¨µÄ½ø»¯´úÔòÏòÆäËü×ÓȺÌå·¢³ö¸öÌåǨÈëÉêÇëÏòÆäÁÚ¾Ó×ÓȺÌå·¢ËÍÕâ¸ö×î¼Ñ¸öÌå
¿ª±ÙÁËͨѶÏ̹߳ÜÀí¸öÌåµÄÊÕ·¢
ÓеÄÑ¡Ôñ×ÓȺÌåÖеÄ×îÓŸöÌåÏòÍâ[Yan]ÒÆÃñ有的算法用迁入者取代群体中的最差个体[Bec]利用最优个体迁出/最差个体被取代(本文称其为最优/最差准则)是最常用的方法
致使多个搜索进程集中到相同的区域过少的迁移以及迁移频率过低同样不利于提高解的质量选择适应度最高的个体迁移解的质量提高快
在一段时间后能得到质量更高的解保持子群体的规模能够明显地提高解的质量一定范围内减小子群体规模
也能提高解的质量
旨在将各种PGA的优点集中在一起上
粗粒度-细粒度粗粒度-主从式子群体的规模是真实的而对于上层模型
集合子群体而之间按上层的并行模型协调运行
都是子群体内部信息交互量大集合子群体
2.2 PGA的工作机理分析
并行遗传算法实现的方法与策略大多来自种群遗传学对其工作机理的分析与讨论可以借助与种群遗传学的研究成果
R. Tanese 在文献[Tan]用怀特的关于进化生物学的转移平衡
理论来分析并行遗传算法的效果
deme global fitness peak怀特期望以此来解释在自然界中为什么多个群体跳出局部最优从而发现新的基因结构的机会更大各子群体都随机地在某个局部最优峰周围漫游则子群体
内的自然选择将使其攀上这个新的峰顶通过个体迁移即使只有非常少量的迁移
J. P. Cohoon等则采用Eldredge和Gould的间断均衡论
来解释并行遗传算法的有效性
这些阶段是由周期性的地质快速变化和物种形成事件为特征的
S.P Cohoon指出当某个群体收敛以后同时迁移来的个体将对子群体的平均适应值带来很大的变化从而带来一个快速进化阶段并行遗传算法能在一定程度上避免过早收敛现象的发生
这是因为如果将新的基因结构与原有的的老物种进行生殖隔离在GA中实现这种策略从而使它们在不同的方向上演化以保持其多样性
Holland 将此现象归咎与模式定理所阐述的高适应构造快的快速增加[Hol88]
¸ßÊÊÓ¦Öµ¹¹Ôì¿ìµÄÖ¸ÊýµÝÔö½×¶Î½«»á½áÊø
µ±´ÓÍⲿÒýÈëеĻùÒò½á¹¹ºó¿ªÊ¼½øÈëÁíÒ»¸ö¿ìËÙÑÝ»¯½×¶Î当群体接近与某一吸引子时而当由于杂交的作用时群体受到另一吸引子的影响时W. Hillis指出遗传因素的上位性也可能引起间断均衡现象
则有可能产生间断均衡现象
即绝对加速比(speedup)S 其中Tp为并行遗传算法的执行时间具体到并行遗传算法
所以对于主从式和细粒度模型Amdahl定律是适用的
主从式模型可以得到接近线性的加速比适用的SIMD并行机的可扩展性也不突出利用Amdahl定律评价粗粒度模型时即子群体数量和子群体规模成反比
这是由于粗粒度模型的通信开销和同步开销都不大
1)确定一个适应度指标找到一个个体适应度高于适应度指标
作为并行遗传算法的加速比指标并行遗传算法能够达到超线性加速比利用并行遗传算法进行优化
第二条定性评价指标非常有实用价值
因为遗传算法的应用者需要的是在一定的时间内获得最好的优化效果
关于PGA 的研究和应用大多集中于多群体PGA
»¹È±·¦×ÛºÏÐÔµÄÉîÈë̽Ë÷
ÆäÖÐÈÔÈ»´æÔÚһЩDZÔڵĹؼüÎÊÌâµ±¶àȺÌåPGA与单一群体SGA 进行性能比较时子群体数量如何选择
以及这些因素对两者性能比较的影响
针对特定问题和计算环境也具有良好的应用效果
似乎更注重与这两种算法与多群体PGA构成的混合PGA
1)系统化和模型化利用可执行模型分析遗传算法的优化过程
2)异步化既节省了同步开销
3)与局部优化算法相结合
总而言之它不是遗传算法的简单并行化还是在实践上
第三章 MPI并行编程
3.1 并行计算及MPI简介
3.1.1 高性能计算
高性能计算技术在国内外受到高度的重视工程技术
已取得了巨大的成就21世纪人类所面临的重要科技问题”Great Challenge”如人类基因海洋环流循
环等等军事上的核爆炸模拟
美国90年代的有关高性能计算技术的研究规划
都是在总统直接参与下制定的
从更广泛的意义上来看和理论与实验并列
这种计算以高性能计算机为平台的大规模并行计算大规模科学与工程计算
随着科学技术的不断进步越来越渗透并普及到各个领域和方面
发展到现在一个小的实验室就可以组建的个人超级计算机网络工作站或网络PC
Ëü¾ßÓÐÒÆÖ²ÐÔºÃЧÂʸߵȶàÖÖÓŵã
¸ßЧ¼¸ºõËùÓеIJ¢ÐмÆËã»ú³§É̶¼Ìṩ¶ÔËüµÄÖ§³ÖMPI于1994年产生
由于它吸收了其它多种并行环境的优点功能在短短的几年内便迅速普及这也从一个方面说明了MPI
的生命力和优越性可以从两方面来理解
MPI是一种标准或规范迄今为止所有的并行计
算机制造商都提供对MPI的支持一个正确的MPI程序可以不加修改地在所有的并行机上运行
MPI其实就是一个在FORTRAN 77和C语言中可
以直接对这些函数进行调用但最常使用的只有6个
就可以比较容易地掌握MPI的基本功能
由于Fortran90 和C++的使用也十分广泛
这更提高了MPI的适用性
大约有六十几个人分属四
十几个不同的单位还有来自大学实验室
和工厂的研究人员 NX/2 (Intel)
Vertex(nCUBE) PARMACS (ANL)
Chimp (Edinburgh University)UTKChameleon (ANL)
(ANL)等
由Dongarra Hey和Walker建议的
初始草案这就是MPI 1.0
Ò»¸ö³ÆΪMPI论坛的非官方组织应运而生
一九九五年六月推出了MPI的新版本MPI1.1
µ«Êǵ±³õÍƳöMPI标准时许多其它方面的重要的比如并行I/O
À©³ä²¢Ìá¸ßMPI功能的要求就越来越迫切了在对原来的MPI作了重大扩充的基础上而把原来的MPI各种版本称为MPI-1µ«Ö÷ÒªÊÇÈý¸ö·½Ãæ远程存储访问和动态进程管理
它可以免费从/mpi/mpich 取得MPICH是一个与MPI-1规范同步发展的版本
就会有相应的MPICH的实现版本
美国Argonne国家试验室和MSU对MPICH作出了重要的贡献
是在EPCC Edinburgh Parallel Computing Centre 的支持下进行的
该软件CHIMP的开发从1991年到1994年 James (Hamish)Mills
也是免费的MPI实现它LAM (Local Area Multicomputer)
目前的最新版本是LAM/MPI 6.3.2ËüÖ÷ÒªÓÃÓÚÒì¹¹µÄ¼ÆËã»úÍøÂç¼ÆËãϵͳ
²¢ÐмÆËã»úÊDz¢ÐмÆËãµÄÎïÀíÔØÌå¿ÉÒÔ¶ÔËüÓÐÒ»¸ö×ÜÌåÉϵÄÁ˽â
¿ÉÒ԰Ѳ¢ÐмÆËã»ú·ÖΪSIMD(Single-Instruction Multiple-Data)单指令多数据并行计算机和MIMD (Multiple- Instruction Multiple-Data)多指令多数据并行计算机
即数组运
算特别适合在SIMD并行计算机上执行
MIMD计算机同时有多条指令对不同的数据进行操作
减法D-E如果有相应的直接执行部件
SIMD和MIMD这种表达方法虽然至今还在广泛使用
比照上面的划分方法
Single Program Multiple DataMultiple Program
Multiple Data这种划分方式依据的执行单位不是指令而
是程序SPMD并行计算机是由多个地位相同的计算机或处理器组成的
计算机或处理器的地位是不同的它们擅长完成的工作也
不同将不同的程序任务放到MPMD并行计算机上执行
从物理划分上除此之外分
布式共享内存也是一种越来越重要的并行计算机存储方式
图3.1 按存储方式对并行计算机进行分类
对于共享内存的并行计算机协调各
处理器对并行任务的处理但共享内存往往成为
性能特别是扩展性的重要瓶颈
各个处理单元都拥有自己独立的局部存储器
因此各个处理器之间通过消息传递来交换信息
不难看出复杂的消息传
递语句的编写成为在这种并行计算机上进行并行程序设计的难点所在
由于它有很好的扩展性和很高的性能分布式共享内
存的并行计算机结合了前两者的特点对于
目前越来越流行的机群计算通过提高一
个局部结点内的计算能力不仅提高了整个系统的计算能力
可以提高系统的模块性和扩展性
3.2.2 物理问题在并行机上的求解
一个物理问题并行求解的最终目的是将该问题映射到并行机上
如图3.2所示
可以得到该并行机的并行计算模型
这些算法精确描述了该并行模型能够实现的功能
对于现实世界的物理问题
必须建立它的并行求解模型
有了并行求解模型这样就可以对该问题的求解进行精确描述和定量分析
最后通过并行程序设计
并行程序设计需要将问题的并行求解算法转化为特定的适合并行计算模型的并行算法首先是问题的并行求解算法必须能够将问题内在的并行特征充分体现出来其次是并行求解模型要和并行计算模型尽量吻合
3.2.3并行编程模型
目前两种最重要的并行编程模型是数据并行和消息传递
编程相对简单消息传递编程模型的编程级别相对较低
数据并行即将相同的操作同时作用于不同的数据
在向量机上通过数据并行求解问题的实践也说明数据并行是可以高效地解决一大
类科学与工程计算问题的
它提供给编程者一个全局的地址空间
因此对于编程者来说只需要简单地指明
就实现了数据并行的编程使得数组B和C的对应元素相加后送给A
ʹ²¢Ðлú¶ÔB²¢½«½á¹û²¢Ðи³¸øAËü²»ÐèÒª±à³ÌÕß¹ØÐIJ¢ÐлúÊÇÈçºÎ¶Ô¸Ã²Ù×÷
Êý¾Ý²¢Ðбà³ÌÄ£ÐÍËäÈ»¿ÉÒÔ½â¾öÒ»´óÀà¿ÆѧÓ빤³Ì¼ÆËãÎÊÌâ
Èç¹ûͨ¹ýÊý¾Ý²¢Ðеķ½Ê½À´½â¾öÊý¾Ý²¢Ðв»ÈÝÒ×±í´ï
Êý¾Ý²¢Ðз¢Õ¹µ½ÏÖÔÚÓÐÁ˸ßЧµÄ±àÒëÆ÷
ÕâÑù¿ÉÒÔÌá¸ß²¢ÐгÌÐòµÄ¿ª·¢Ð§ÂʽøÒ»²½Íƹ㲢ÐгÌÐòÉè¼Æ
¼´¸÷¸ö²¢ÐÐÖ´ÐеIJ¿·ÖÖ®¼äͨ¹ý´«µÝÏûÏ¢À´½»»»ÐÅÏ¢
ÏûÏ¢´«µÝÒ»°ãÊÇÃæÏò·Ö²¼Ê½ÄÚ´æµÄÏûÏ¢´«µÝΪ±à³ÌÕßÌṩÁ˸üÁé»îµÄ¿ØÖÆÊֶκͱí´ï²¢Ðеķ½·¨
Áé»îÐԺͿØÖÆÊֶεĶàÑù»¯ÊÇÏûÏ¢´«µÝ²¢ÐгÌÐòÄÜÌṩ¸ßµÄÖ´ÐÐЧÂʵÄÖØÒªÔ-Òò
ÁíÒ»·½ÃæËüÒ²½«¸÷¸ö²¢ÐÐÖ´Ðв¿·ÖÖ®¼ä¸´ÔÓµÄÐÅÏ¢½»»»ºÍÐ-µ÷¿ØÖƵÄÈÎÎñ½»¸øÁ˱à³ÌÕßÕâÒ²ÊÇÏûÏ¢´«µÝ±à³ÌÄ£Ðͱà³Ì¼¶±ðµÍµÄÖ÷ÒªÔ-ÒòÏûÏ¢´«µÝµÄ»ù±¾Í¨ÐÅģʽÊǼòµ¥ºÍÇå³þµÄÒò´ËÄ¿Ç°´óÁ¿µÄ²¢ÐгÌÐòÉè¼ÆÈÔÈ»ÊÇÏûÏ¢´«µÝ²¢Ðбà³Ìģʽ
²¢ÐÐÓïÑԵIJúÉúÖ÷ÒªÓÐÈýÖÖ·½Ê½
2. 扩展原来的串行语言的语法成分使它支持并行特征
设计一种全新的并行语言的优点是从语言成分上直接支持并行更自然
但是由于并行计算至今还没有像串行计算那样统一的冯•诺伊曼模型可供遵循
并行模型没有一个统一的标准
但至今还没有任何一种新出现的并行语言成为普遍接受的标准但各种各样并行语言的出现实践和研究无疑都为并行语言和并行计算的发展做出了贡献
即将对串行语言的并行扩充作为原来串行语言的注释标注的并行扩充部分将不起作用若使用扩充后的并行编译器来编译
将原来串行执行的部分转化为并行执行
显然难度有所降低使它能够支持扩充的并行部分这种新的编译器往往和运行时支持的并行库相结合
这样原来的串行。