并行遗传算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、遗传算法(GA)概述
GA是一类基于自然选择和遗传学原理的有效搜索方法,它从一个种群开始,利用选择、交叉、变异等遗传算子对种群进行不断进化,最后得到全局最优解。
生物遗传物质的主要载体是染色体,在GA中同样将问题的求解表示成“染色体Chromosome”,通常是二进制字符串表示,其本身不一定是解。
首先,随机产生一定数据的初始染色体,这些随机产生的染色体组成一个种群(Population),种群中染色体的数目称为种群的大小或者种群规模。
第二:用适值度函数来评价每一个染色体的优劣,即染色体对环境的适应程度,用来作为以后遗传操作的依据。
第三:进行选择(Selection),选择过程的目的是为了从当前种群中选出优良的染色体,通过选择过程,产生一个新的种群。
第四:对这个新的种群进行交叉操作,变异操作。
交叉、变异操作的目的是挖掘种群中个体的多样性,避免有可能陷入局部解。
经过上述运算产生的染色体称为后代。
最后,对新的种群(即后代)重复进行选择、交叉和变异操作,经过给定次数的迭代处理以后,把最好的染色体作为优化问题的最优解。
GA通常包含5个基本要素:1、参数编码:GA是采用问题参数的编码集进行工作的,而不是采用问题参数本身,通常选择二进制编码。
2、初始种群设定:GA随机产生一个由N个染色体组成的初始种群(Population),也可根据一定的限制条件来产生。
种群规模是指种群中所含染色体的数目。
3、适值度函数的设定:适值度函数是用来区分种群中个体好坏的标准,是进行选择的唯一依据。
目前主要通过目标函数映射成适值度函数。
4、遗传操作设计:遗传算子是模拟生物基因遗传的操作,遗传操作的任务是对种群的个体按照它们对环境的适应的程度施加一定的算子,从而实现优胜劣汰的进化过程。
遗传基本算子包括:选择算子,交叉算子,变异算子和其他高级遗传算子。
5、控制参数设定:在GA的应用中,要首先给定一组控制参数:种群规模,杂交率,变异率,进化代数等。
GA的优点是擅长全局搜索,一般来说,对于中小规模的应用问题,能够在许可的范围内获得满意解,对于大规模或超大规模的多变量求解任务则性能较差。
另外,GA本身不要求对优化问题的性质做一些深入的数学分析,从而对那些不太熟悉数学理论和算法的使用者来说,无疑是方便的。
2、遗传算法的运行机理:
对GA运行机理的解释有两类: 一是传统的模式理论;二是1990 年以后发展起来的有限状态马尔可夫链模型。
(1)模式理论:由Holland创建,主要包括模式定理,隐并行性原理和积木块假说三部分。
模式是可行域中某些特定位取固定值的所有编码的集合。
模式理论认为遗传算法实质上是模式的运算,编码的字母表越短,算法处理一代种群时隐含处理的模式就越多。
当算法采用二进制编码时,效率最高,处理规模为N的一代种群时,可同时处理O(N3)个模式。
遗传算法这种以计算少量编码适应度而处理大量模式的性质称为隐并行性。
模式理论还指出,目标函数通常满足积木块假说,即阶数高,长度长,平均适应度高的模式可以由阶数低,长度短,平均适应度高的模式(积木块)在遗传算子的作用下,接合而生成。
而不满足积木块假说的优化问题被称为骗问题(deceptive problem)。
模式理论为遗传算法构造了一条通过在种群中不断积累、拼接积木块以达到全局最优解的寻优之路。
但近十多年的研究,特别是实数编码遗传算法的广泛应用表明,上述理论与事实不符。
(2)有限状态马尔可夫链模型:由于模式理论的种种缺陷,研究者开始尝试利用有限状态马尔可夫链模型研究遗传算法的运行过程。
对于遗传算法可以解决的优化问题,问题的可行域都是由有限个点组成的,即便是参数可以连续取值的问题,实际上搜索空间也是以要求精度为单位的离散空间,因此遗传算法的实际运行过程可以用有限状态马尔可夫链的状态转移过程建模和描述。
对于有m 个可行解的目标函数和种群规模为N的遗传算法,N 个个体共有种组合,相应的马尔可夫模型也有个状态。
实际优化问题的可行解数量m 和种群规模
N 都十分可观,马尔可夫模型的状态数几乎为天文数字,因此利用精确的马尔可夫模型计算种群的状态分布是不可能的。
为了换取模型的可执行性,必须对实际模型采取近似简化,保持算法的实际形态,通过对目标函数建模,简化目标函数结构实现模型的可执行性。
遗传算法优化的过程,可以看作算法在循环过程中不断对可行域进行随机抽样,利用前面抽样的结果对目标点的概率分布进行估计,然后根据估计出的分布推算下一次的抽样点。
马尔可夫模型认为遗传算法是通过对搜索空间不同区域的抽样,来估计不同区域的适应度,进而估计最优解存在于不同区域的概率,以调整算法对不同区域的抽样密度和搜索力度,进而不断提高对最优解估计的准确程度。
可见,以邻域结构为依据划分等价类的马尔可夫模型更符合实际,对问题的抽象更能体现优化问题的本质。
3、并行遗传算法(PGA)
虽然在许多领域成功地应用遗传算法,通常能在合理的时间内找到满意解,但随着求解问题的复杂性及难度的增加,提高GA的运行速度便显得尤为突出,采用并行遗传算法(PGA)是提高搜索效率的方法之一。
由于GA从种群出发,所以具有天然的并行处理特性,非常适合于在大规模并行计算机上实现,而大规模并行计算机的日益普及,为PGA奠定了物质基础。
特别是GA中各个体适值计算可独立进行而彼此间无需任何通信,所以并行效率很高。
实现PGA,不仅要把串行GA等价地变换成一种并行方案,更重要的是要将GA的结构修改成易于并行化实现的形式,形成并行种群模型。
并行种群模型对传统GA的修改涉及到两个方面:一是要把串行GA的单一种群分成多个子种群,分而治之;二是要控制、管理子种群之间的信息交换。
不同的分治方法产生不同的PGA结构。
这种结构上的差异导致了不同的PGA模型:全局并行模型、粗粒度模型、细粒度模型和混合模型。
3、1全局PGA模型
该模型又称主从PGA模型,它是串行GA的一种直接并行化方案,在计算机上以master-slave 编程模式实现。
它只有一个种群,所有个体的适应度都根据整个种群的适应度计算,个体之间可以任意匹配,每个个体都有机会和其他个体杂交而竞争,因而在种群上所作的选择和匹配是全局的。
对于这个模型有多种实现方法:第一种方法是仅仅对适值度函数计算进行并行处理;第二种方法是对遗传算子进行并行处理。
全局模型易于实现,如果计算时间主要用在评价上,这是一种非常有效的并行化方法。
它最大的优点是简单,保留了串行GA 的搜索行为,因而可直接应用GA 的理论来预测一个具体问题能否映射到并行GA上求解。
对于适应度估值操作比其他遗传算子计算量大的多时,它是很有效的,并且不需要专门的计算机系统结构。
3、2粗粒度PGA模型
该模型又称分布式、MIMD、岛模式遗传算法模型,它是对经典GAs 结构的扩展。
它将种群划分为多个子种群(又称区域),每个区域独自运行一个GA。
此时,区域选择取代了全局选择,配偶取自同一区域,子代与同一区域中的亲本竞争。
除了基本的遗传算子外,粗粒度模型引入了“迁移”算子,负责管理区域之间的个体交换。
在粗粒度模型的研究中,要解决的重要问题是参数选择,包括:迁移拓扑、迁移率、迁移周期等。
在种群划分成子种群(区域)后,要为种群指定某种迁移拓扑。
迁移拓扑确定了区域之间个体的迁移路径,迁移拓扑与特定的并行机结构有着内在的对应关系,大多采用类似于给定并行处理机的互连拓扑。
如果在顺序计算机上实现粗粒度模型,则可以考虑采用任意结构。
拓扑结构是影响PGA 性能的重要方面,也是迁移成本的主要因素。
区域之间的个体交换由两个参数控制:迁移率和迁移周期。
迁移基本上可以采用与匹配选择和生存选择相同的策略,迁移率常以绝对数或以子种群大小的百分比形式给出,典型的迁移率是子种群数目的10%到20%之间。
迁移周期决定了个体迁移的时间间隔,一般是隔几代(时期) 迁移一次,也可以在一代之后迁移。
通常,迁移率越高,则迁移周期就越长。
有的采用同步迁移方式,有的采用
异步迁移方式。
迁移选择负责选出迁移个体,通常选择一个或几个最优个体,有的采用适应度比例或者排列比例选择来选择迁移个体,也有采用随机选取和替换的。
在大多数情况下,是把最差或者有限数目的最差个体替换掉.与迁移选择类似,可采用适应度比例或者排列比例选择,确定被替换的个体,以便对区域内部的较好个体产生选择压力。
基于国内的现状,分布式PGA为国内PGA研究的主要方向。
分布式PGA作为PGA的一种形式,一般实行粗粒度及全局级并行,各子种群间的相互关系较弱,主要靠一些几乎串行GA来加速搜索过程。
采用分布式PGA求解问题的一般步骤为:(1)将一个大种群划分为一些小的子种群,子种群的数目与硬件环境有关;(2)对这些子种群独立的进行串行GA操作,经过一定周期后,从每个种群中选择一部分个体迁移到另外的子种群。
对于个体迁移存在多种方法,第一种方法,在执行迁移操作时,每次从子种群中随机选择一部分染色体发送出去,接收的染色体数应该与发出的染色体相同。
第二种方法,在执行迁移操作时,首先在每个子种群内只使用选择而不使用其它遗传算子繁殖一些后代,这些后代的数目与迁移数相同。
然后再将这些后代的原子种群合并成一个大子种群并均匀随即地从该子种群中选择个体进行迁移。
这样,待迁移后子种群的规模便又恢复到正常状态。
而当子种群接收到从其他子种群迁移来的个体时则均匀随即地替换掉子种群内的个体。
第三种方法,将其中一个子种群设置为中心子种群,其他子种群与中心子种群通信。
中心子种群始终保持着整个种群中当前的最优个体,其他子种群通过“引进”中心子种群中的最优个体来引导其加快收敛速度,改善个体特征。
3、3 细粒度PGA模型
该模型又称领域模型或SIMD PGA模型,对传统GA作了修改。
虽然细粒度模型也只有一个种群在进化,但在种群平面网格细胞上,将种群划分成了多个非常小的子种群(理想情况是每个处理单元上只有一个个体),子种群之间具有极强的通信能力,便于优良解传播到整个种群。
全局选择被领域选择取代,个体适应度的计算由局部领域中的个体决定,重组操作中的配偶出自同一领域,且子代同其同一领域的亲本竞争空间,即选择和重组只在网格中相邻个体之间进行。
细粒度模型要解决的主要问题是领域结构和选择策略。
领域结构既决定了种群中个体的空间位置,也确定了个体在种群中传播的路径。
领域结构主要受特定并行计算机的内存结构和通信结构影响。
领域拓扑确定一个个体的邻居,构成该个体的局部领域。
通常,只有一个拓扑的直接领域才属于其局部领域,若把某个固定步数内所能到达的所有个体也包含在内,则可以扩大领域半径。
在确定选择策略时,要考虑到选择压力的变化,而选择压力与领域结构有关。
与全局匹配选择类似,局部匹配选择可以采用局部适应度比例、排列比例选择,以及随机行走选择。
局部生存选择确定局部邻域中被替换的个体,如果子代自动替换邻域中心的那个个体,那么可以直接使用代替换作为局部生存策略。
3、4 混合PGA模型
该模型又称为多层并行PGA模型,它结合不同PGA模型的特性,不仅染色体竞争求取最优解,而且在GA结构上也引入了竞争以提供更好的环境便于进化。
通常,混合PGA以层次结构组合,上层多采用粗粒度模型,下层既可采用粗粒度模型也可采用细粒度模型。
或者,种群可以按照粗粒度PGA模型分裂,迁移操作可以采用细粒度PGA模型。
3、5 四种模型的比较
就现有的研究结果来看,很难分出各模型的高低。
在评价并行模型的差异时,有时还得深入到实现细节上,如问题的差异、种群大小、或者不同的局部搜索方法等。
但有一个结论是肯定的:不采用全局并行模型,而采用粗粒度模型或者细粒度模型通常能获得更好的性能。
粗粒度模型与细粒度模型孰优孰劣,尚是一个未知数。
目前,以粗粒度模型最为流行,因为一是其实现较容易,只需在串行GA中增加迁移子例程,在并行计算机的节点上各自运行一个副本,并定期交换几个个体即可;二是在没有并行计算
机时,也可在网络或单机系统上模拟实现。
虽然并行GA能有效地求解许多困难的问题,也能在不同类型的并行计算机上有效地实现,但仍有一些基本的问题需要解决。
种群大小可能既影响大多数GA的性能,也决定GA找到解所需时间的主要因素。
在PGA中,另一个重要问题是如何降低通信开销,包括迁移率的确定,使得区域的行为象单个种群一样;确定通信拓扑,既能充分地组合优良解,又不导致过多的通信开销;能否找到一个最优的区域数等。
另外,对不同的应用问题,混合模型难以设定基本GA的参数,其节点的结构是动态变化的,它比粗粒度和细粒度模型更具有一般性,算法更为复杂,实现代价更高。
4、并行遗传算法的评价模型:
并行遗传算法的性能主要体现在收敛速度和精度两个方面,它们除了与迁移策略有关,还与一些参数选取的合理性密切相关,如遗传代数、种群数目、种群规模、迁移率和迁移间隔。
利用Amdahl定律评价并行遗传算法,即绝对加速比(speedup) = Ts/Tp,其中,Ts为串行遗传算法(单个处理器)的执行时间;Tp为并行遗传算法的执行时间。
Amdahl定律适用于负载固定的情况,对于并行遗传算法而言,就是适用于总种群规模不变的情况。
所以,Amdahl 定律适用于主从式和细粒度模型,在适应度评价计算量较大时,主从式模型可以得到接近线性的加速比。
由于细粒度模型的应用较少,适用的SIMD并行机的可扩展性也不突出,所以很少有人评价细粒度模型的加速比。
利用Amdahl定律评价粗粒度模型时,需保持总的种群规模,即子种群数量和子种群规模成反比。
这种情况下粗粒度模型的加速比接近线性,这是由于粗粒度模型的通信开销和同步开销都不大。
5、实例:带约束并行多机调度
5、1 问题描述
最小化完工时间的带约束并行多机调度问题可描述如下:有n 个相关的工件,m 台机器,每个工件都有确定的加工时间,且均可由m 台机器中的任一台完成加工任务。
要找一个最小调度,即确定每台机器上加工的工件号顺序,使加工完所有工件所需时间最短。
算法关键在于:
(1) 如何表示工件之间的关系。
可以把n 个相关工件表示成一个后继图,如上图所示。
图中节点间的有向边表示工件之间的后继或编序关系。
因此,Ti →Tj 表示工件Tj 在完成之后才能启动工件Ti。
显然对于n 个相关工件,我们可以根据工件间的约束关系所表示成的后继图产生一符合约束条件的工件序列( a0,a1,…,ai,…,an-1) (0 ≤ai <n) ,其中ai 表示一个工件。
例如,根据上图所示的后继图, 可产生工件序列(0,2,5,1,3,4,7,6,8),按该工件序列调度满足工件之间的约束关系。
(2) 如何表示问题的目标函数。
设t(j)为机器加工工件j 所需时间,tb(i ,j) 为机器i 加工工件j 的最早时刻。
为了使GA算法解决问题方便,我们用x(i ,j) 表示工件j 在机器i 上是否加工,若x(i ,j) = 1,则表示工件j 在机器i 上加工;若x(i ,j) = 0,则表示工件j 不在机器i 上加工。
因而x(i ,j ) t (j) 为机器i 加工工件j 的实际加工时间。
问题的目标函数可表示为:
minGms = min{max[ finish(0), finish(1), ...,finish(i), ..., finish (m - 1) ]}。
其中finish(i)表示第i 台处理机加工分配的工件所需时间。
finish(i) = max{ x(0 , a0) [ tb(i, a0) + t(a0) ] ,x(1, a1) [ tb(i, a1) + t(a1) ], ..., x(n-1, an-1) [ tb(i, an-1) + t(an-1) ]}。
5、2 并行GA实现
带约束并行多机调度问题的并行GA实现如下:
(1) 产生一个进程(该进程为父进程,在进行串行GA的同时,用于存放和发送当前最优个体);
(2) 由父进程产生m - 1 个子进程(每个子进程用于实现串行GA);
(3) 各子进程(包括父进程)进行串行GA,当子进程中遗传代数(ge)被10整除,子进程发送最优个体至父进程;
(4) 父进程选择当前各子进程中最优个体(molist),发送给各子进程;
(5) 各子进程把molist替换各子进程当前代种群中适应值最低个体;
(6) 若ge = gmax (gmax为设定最大繁殖代数),转第(7)步,否则转第(3)步;
(7) 算法终止。
6、总结:
组合优化是遗传算法最基本的也是最重要的研究和应用领域之一。
一般来说,组合优化问题通常带有大量的局部极值点,往往是不可微的、不连续的、多维的、有约束条件的、高度非线性的NP完全问题,因此,精确的求解组合优化问题的全局最优解一般是不可能的。
遗传算法是一种新型的、模拟生物进化过程的随机化搜索、优化方法,近十几年来在组合优化领域得到了相当广泛的研究和应用,并已在解决诸多典型组合优化问题中显示了良好的性能和效果。
参考文献:
1、Zdeněk Konfrst. Parallel Genetic Algorithms: Advances, Computing Trends, Aplications and Perspectives. Proceedings of the 18th International Parallel and Distributed Proecessing Symposium, 2004.
2、郭彤城, 慕春棣. 并行遗传算法的新进展. 系统工程理论与实践, 2002.
3、曾国荪, 丁春玲. 并行遗传算法分析. 计算机工程, 2001.
4、王大明, 毛宗源. 并行遗传算法综述. 暨南大学学报(自然科学版), 1998.
5、吴昊. 并行遗传算法的研究与应用. 安徽大学硕士学位论文, 2001.
6、王冠. 并行遗传算法及其在组合优化问题上的分布式应用, 武汉理工大学硕士学位论文, 2003.
7、吴昊, 程锦松. 用并行遗传算法解决带约束并行多机调度问题. 微机发展, 2001
本文来自CSDN博客,转载请标明出处:/aris_zzy/archive/2009/03/16/3994234.aspx。