并行遗传算法
并行遗传算法的研究及应用进展

关键词: 遗传算法; 并行 遗传 算法; 并行模 型 中图分类号 : T P 3 0 1 文献标识码 : A 文章编号 : 1 0 0 9 — 3 0 4 4 ( 2 0 1 4 ) 1 0 — 2 3 4 7 — 0 4
Re s e ar c h Pr o gr e s s o f Pa r al l e l Ge ne t i c Al gor i t hm
w hi c h g r e a t l y p r om ot e s t he r e s e a r c h a nd a p p l i c a t i o n i n g e ne t i c a l go it r hm .Th e r e c e nt r e s e a r c h de ve l o pm e nt s i n PG A mo de l s , pe r — f o r ma nc e a n a l ys i s ,a l go it r hm i mp r ov e me nt ,a nd i mp l e me nt a t i on p l a t f or m a r e s u mma r i z e d a nd r e v i e we d,a nd t he de ve l o pm e nt t r e n ds a n d a p p l i c a t i on pe r s p e c t i v e s ofPGA i n t h e f ut ur e i s a l s o di s c us s e d . Ke y wor ds :g e n e t i c a l g or i t h m; p a r a l l e l ge ne t i c a l g o r i t hm ;p a r a He I m od e l
并行遗传算法综述

收稿日期:1997-09-15第一作者:男,1962年出生,华南理工大学博士生,广东工业大学副教授;主要研究方向:计算智能、计算机应用并行遗传算法综述王大明 毛宗源(华南理工大学自动化系,510641,广州)关键词: 遗传算法;并行;进化算法中图分类号: TP 18遗传算法是一类基于自然选择和遗传学原理的有效搜索方法,许多领域成功地应用遗传算法得到了问题的满意解.虽然GAs 通常能在合理的时间内找到满意解,但随着求解问题的复杂性及难度的增加,提高GAs 的运行速度便显得尤为突出.GAs 具有天然的并行性,非常适合于在大规模并行计算机上实现,而大规模并行计算机的日益普及,为并行GAs 奠定了物质基础.实现PGAs,不仅要把串行GAs 等价地变换成一种并行方案,更重要的是要将GAs 的结构修改成易于并行化实现的形式,形成并行群体模型.并行群体模型对传统GAs 的修改涉及到两个方面:一是要把串行GAs 的单一群体分成多个子群体,分而治之;二是要控制、管理子群体之间的信息交换.不同的分治方法产生不同的PGAs 结构.这种结构上的差异导致了PGAs 的三种基本模型:全局并行模型、粗粒度模型和细粒度模型.1 全局并行模型全局并行模型是串行GAs 的一种直接并行化方案,它只有一个群体,所有个体的适合度都根据整个群体的适合度计算,个体之间可以任意匹配,因而在群体上所作的选择和匹配是全局的.功能划分 GAs 对个体评价是独立的,个体之间无需通信,因此,通常由各处理机并行地评价群体中的个体,主机(主进程)负责选择、重组和变异操作,而从机(从进程)负责函数的适应值计算.此外,也可以把交叉和变异操作交从机完成.不过,这些操作都比较简单,而选择操作需要了解整个群体的处机,这样,反而会增加主机从机之间传递个体的通信开销,降低系统的性能.通信 主机与从机之间的通信表现在与个体评价有关的活动上.主机将群体中的部分个体发送到从机上,从机评价完个体之后,将它们的适应值发送给主机.如果把交叉和变异也分配给从机,则还需把子代发送到主机上.通信方式 大多数的全局模型都采用同步通信方式,待各从机把各个体的适应值送到主机后,再由主机计算适应度,可方便地计算出个体的绝对适应度并作选择操作.显然,这是一种性能更佳的传统GAs.第19卷第1期1998年2月 暨南大学学报(自然科学版) Journal of Jinan U niversity(Netural Science) Vol.19No.1 Feb.1998如果采用异步通信方式,则主机不等待较慢的从机,这种方式类似于自然进化,但个体绝对适应度的计算,以及如何进行选择操作则较为困难.比较容易实现并行化的选择竞争匹配选择.研究表明,盲目地增加从处理机数量,会导致通信开销急剧上升[1].Cantu-Paz [2]在对从机数量与通信量的研究表明,存在着一个对最小化全局并行GAs 执行时间的优化从机数.全局模型易于实现,如果计算时间主要用在评价上,这是一种非常有效的并行化方法.此外,它还保留了简单GA 的搜索行为,因而可直接应用简单GA 的理论成果.2 粗粒度模型粗粒度模型是对经典GAs 结构的扩展,具有不同的行为.它将群体划分为多个子群体(又称区域),每个区域独自运行一个GA.此时,区域选择取代了全局选择,配偶取自同一区域,子代与同一区域中的亲本竞争.因此,这种模型又称为孤岛模型.这类PGAs 通常在分布式存储器MIMD 计算机上实现,故也称为分布式GAs.除了基本的遗传算子外,粗粒度模型引入了/迁移0算子,负责管理区域之间的个体交换.在粗粒度模型的研究中,要解决的重要问题是参数选择,包括:迁移拓扑、迁移率、迁移周期等.2.1 区域结构在群体划分成子群体(区域)后,要为群体指定某种迁移拓扑.迁移拓扑与特定的并行机结构有着内在的对应关系,常取并行计算机的结构.如果在顺序计算机上实现粗粒度模型,则可以考虑采用任意结构.区域数目 大多数情况下区域数目是固定的,等于可用处理器数,典型值为2的幂,从4到64不等.在群体数目一定的情况下,区域数目也确定了各区域的个体数目.通常,各区域子群体中的个体数在50至100之间.迁移拓扑 迁移拓扑确定了区域之间个体的迁移路径.迁移拓扑大多采用类似于给定并行处理机的互连拓扑,如超立方体、二维网络拓扑等.在区域数较少时,可采用全互连迁移拓扑,以便迁移个体可以同时迁移到其它各区域中.但另一种看法是:在空间上孤立区域对优化处理是有利的,例如,Tanese [3]在超立方体迁移拓扑中,虽然其范围非常小,但在每个迁移阶段,只允许个体沿着超立方体的一维方向作迁移操作;而Starkw eather 等[4]在环形迁移拓扑中,在第i 次迁移阶段中,区域r 同区域r +i modR 交换个体.Muhlenbein 等[5]则采用了所谓的/阶梯(Ladder)0作为迁移拓扑,其中区域R 同超环面2*R /2网格连接,因而该拓扑的范围比方阵网格大得多.拓扑结构是影响PGAs 性能的重要方面,也是迁移成本的主要因素.在粗粒度模型中,运行前指定拓扑后保持不变的静态拓扑,是当前的主要趋势.Cantu -Paz 和Mejia -Olvera [6]在比较密集拓扑与松散拓扑中发现,前者通过较少的函数评价就能找到全局最优解.也有在动态拓扑结构[7]中,按群体的多样性、两个群体中的基因型距离等衡量标准,允许个体动态地迁移到其它子群体中去.2.2 迁移规模区域之间的个体交换由两个参数控制:迁移率和迁移周期.大规模的迁移将使粗粒度模型21第1期王大明等:并行遗传算法综述22暨南大学学报(自然科学版)1998年以类似于全局并行模型的方式工作,而小规模的迁移形成具有较小群体的GA独立运行.迁移率在每个迁移周期,可以迁移一个或几个个体,迁移率常以绝对数或以子群体大小的百分比形式给出.有的实现采用大于1的迁移率,理由是迁移个体在同其它区域中完全不同的个体重组时,其生存机会较小.典型的迁移率是子群体数目的10%到20%之间.迁移周期迁移周期决定了个体迁移的时间间隔,一般是隔几代(时期)迁移一次,也可以在一代之后迁移.通常,迁移率越高,则迁移周期就越长.大多数的粗粒度并行GAs采用同步迁移方式,但也有采用异步迁移方式的[7,8],仅当某种事件发生后,才在区域之间通信.Braun[8]的方案是:当GAs在区域上产生(早熟)收敛时,才进行迁移:Kroger等[9]则采用子另一种途径:每当一个区域中发现一个改进的个体,就异步地执行迁移操作.而M arin等[6]采用集中式方案,各从进程在其子群体中执行GA,并周期地将最好的部分结果发送给主进程,主进程则从中选择出最适应的个体广播给从节点,在网络上所作的实验表明,运行速度以接近线性加速比增加.迁移时机的把握还需作进一步的研究.2.3迁移策略迁移基本上可以采用与匹配选择和生存选择相同的策略.虽然区域选择更偏向区域内部的较好个体,但在迁移选择和替换中,也可以采用其它标准.迁移选择迁移选择负责选出迁移个体,通常选择一个或几个最优个体,也可象匹配选择一样,采用适应度比例或者排列比例选择来选择迁移个体,也有采用随机选取和替换的.迁移替换在大多数情况下,是把最差或者有限数目的最差个体替换掉.与迁移选择类似,可采用适应度比例或者排列比例选择,确定被替换的个体,以便对区域内部的较好个体产生选择压力.Pettey等[10]提出的方案是,以基因型的海明距离作为相似性度量,用迁入者替换那些最相似的个体;T anese[3]在研究一种/移民模型0中,用迁入个体取代区域中的迁出个体.后两种方案的出发点是保持区域内部的多样性.进入90年代,粗粒度PGAs的理论工作开始展开.Petty和Leuze[11]在每代把随机选择的个体广播到其它领域的办法,导出了与串行GAs类似的模式理论.实验工作进入实质性阶段,开始测试大型高难度的函数,提出了函数测试平台[5,12], Starkweather等[4]还观察了并行GAs所适用的问题类型.3细粒度模型细粒度模型又称领域模型,它对传统GA的结构作了修改.虽然细粒度模型也只有一个群体在进化,但在群体平面网格细胞上,将群体划分成了多个非常小的子群体(理想情况是每个处理单元上只有一个个体),子群体之间具有极强的通信能力,便于优良解传播到整个群体.全局选择被领域选择取代,个体适应度的计算由局部领域中的个体决定,重组操作中的配偶出自同一领域,且子代同其同一领域的亲本竞争空间,即选择和重组只在网格中相邻个体之间进行.细粒度模型要解决的主要问题是领域结构和选择策略.3.1领域结构领域结构既决定了群体中个体的空间位置,也确定了个体在群体中传播的路径.领域结构主要受特定并行计算机的内存结构和通信结构影响.领域拓扑领域拓扑确定一个个体的邻居,构成该个体的局部领域.对个体数相当少的群体,应采用大范围的拓扑;而在较大的群体中,通常采用具有4个或8个信领域的方格超环面网格.领域半径 通常,只有一个拓扑的直接领域才属于其局部领域.若把某个固定步数内所能到达的所有个体也包含在内,则可以扩大领域半径.3.2局部选择策略对细粒度模型,全局选择被邻域选择取代,但基于上可以把全国选择策略用于细粒度模型.在确定选择策略时,要考虑到选择压力的变化,而选择压力与领域结构有关.局部匹配选择 对于领域拓扑的所有位置,通过局部匹配选择确定一对个体.两个亲本既可从局部领域中选择,也可以把该邻域中心的个体作为一个亲本,而从局部邻域中选择另一个亲本.与全局匹配选择类似,局部匹配选择可以采用局部适应度比例、排列比例选择,以及随机行走选择.Collins 和Jefferson [13]考察了随机行走选择,对邻域拓扑的各个位置,把一条随机生成的路径中的两个最佳个体选作为亲本.局部生存选择 局部生存选择确定局部邻域中被替换的个体.如果子代自动替换邻域中心的那个个体,那么可以直接使用代替换作为局部生存策略.由于最优个体替换需要整个群体的全局知识,故不能用在局部生存选择中.3.3 实现M anderick 和Spiessens [14]在实现细粒度并行GA 时,将群体分布在2维网络上,只在邻域之间选择和配对,分析结果表明[15]:若子群体大小为s ,串长为1,根据所用的选择方案,该算法的时间复杂性为O (s +1)或者O (s log s +1).Sarm a 和Jong [16]分析了邻域的大小与形状对选择机制的影响,发现邻域的半径与整个网络的半径之比是一个关键参数,可用来控制整个群体上的选择压力,并定量分析了把一个优良解传播到整个群体的时间随邻域大小变化的情况.将两种基本模型加以组合,便形成了混合并行GAs,以期望结合各模型的优势,获得更好的性能.通常,混合并行GAs 以层次结构组合,上层多采用粗粒度模型,下层既可采用粗粒度模型,也可采用细粒度模型.4 三种模型的比较就现有的研究结果来看,很难分出各模型的高低,得出的结论有时是矛盾的.例如,在粗粒度模型中,是采用低迁移率,还是采用高迁移率,还需深入研究:对于细粒度模型,是采用大范围的邻域模型,还是采用小范围直径也有争议.在评价并行模型的差异时,有时还得深入到实现细节上,如问题的差异、群体大小、或者不同的局部搜索方法等.但有一个结论是肯定的:不采用全局并行模型,而采用粗粒度模型或者细粒度模型通常能获得更好的性能.粗粒度模型与细粒度模型孰优孰劣,尚是一个未知数.Baluja [17]在MasPar M P-1阵列处理机上实现了三个细粒度模型和一个粗粒度模型,并在测试平台上作了试验.其结论偏向于细粒度模型,但试验中采用了一个非常大的迁移周期100,有的测试问题是完全没有迁移的情况下求解的,故其结果尚有争议.Gordon 和Whitley [12]在一台顺序计算机上对四个全局并行模型、四个粗粒度模型和一个细粒度模型上的测试结果表明,粗粒度模型,特别是粗粒度GENI -TOR 的变种性能更优,但GENEITOR 在评价目标函数时,每代的评价次数是其它模型24的23第1期王大明等:并行遗传算法综述24暨南大学学报(自然科学版)1998年两倍,故该结论也有争议.Gordon等[12]的数据流分析表明,较之粗粒度模型,细粒度模型的潜在并行性更大,且关键路径更短.目前,以粗粒度模型最为流行,因为一是其实现较容易,只需在串行GAs中增加迁移子例程,在并行计算机的节点上各自运行一个副本,并定期交换几个个体即可;二是在没有并行计算机时,也可在网络或单机系统上模拟实现.虽然并行GAs能有效地求解许多困难的问题,也能在不同类型的并行计算机上有效地实现,但仍有一些基本的问题需要解决.群体大小可能既影响大多数Gas的性能,也决定GAs找到解所需时间的主要因素.Cantu -Paz和Goldberg的理论分析与实验[18,19]表明:在孤立模型中,随着子群体的增加,并行GAs 找到最小期待品质解的概率也相应增加,但速度增益却没有显著变化;对于全连接模型,在将迁移率设置为最大化的情况下,能预测局部收敛到正确值的概率,在通信时间不定的情况下,恰当地组合子群体与其大小,可能获得最优速度增益.在PGAs中,另一个重要问题是如何降低通信开销,包括迁移率的确定,使得区域的行为象单个群体一样;确定通信拓扑,既能充分地组合优良解,又不导致过多的通信开销;能否找到一个最优的区域数等.对串行GAs所作的每个改变都会极大地改变其语义及行为,发展相应的并行GAs理论是十分必要的.以还很薄弱的串行GAs理论来理解其并行实现,几乎没有什么帮助.要更充分地利用它们,还需作深入的理解和探索.参考文献1Abramson D,M ills G,Perkins S.P ar allelisation of a genetic algor ithm for the computation of efficient train schedules.In:Pr oceeding of the1993Parallel Computing and T ransputers Conference,1993.139~1492Cantu-Paz E.Designing efficient master-slav e parallel g entic algor ithms,I T R97004.U rbana,IL:U niversit y of I llinois at U rbana-Champaign,19973T anese R.Parallel g enet ic algor ithms for a hypercube,Genetic Algor ithms and their Applicat ion:ICGA2, L awrence Er lbaum Associates,1987.177~1834Starkweat her T,W hitley D,M athias K.Optimization using di stributed genetic algor ithms.PPSN I,Berlin: Spr ing er-Verlag,Schwefel H-P,M anner R ed.1991.176~1865M uhlenbein H,Schomisch M,Born J.T he parallel g enetic algorithm as function optimizer.Parallel Co mputing, 1991,17(6-7):6196Cantu-Paz E,M ejia-Olv era M.Ex perimental results in distributed genetic algor ithms.Int.Symp.on Applied Corpor ate Computing,M nterrey,M ex ico,1994.99~1087M uneto mo M,T akaiY,Sato Y.An efficient migration scheme for subpopulation-based asynchronously par allelg enetic alg orithms.ICGA5,Foreest S,ed.CA:M or gan-K aufmann.1993.6498Br aun H.O n solving T rasvelling Salesman Pr oblems by Genetic A lgor ithms,PPSN I.Berlin:Spr ing er-Verlag, Schw efel H-P,M anner R ed.1991.129~1339K roger B,Schwender ling P,V ornberger O.Parallel genetic packing o f rectangles.PPSN I,Berlin:Spr ing er-Ver-lag,Schwefel H-P ,M anner R ed.1991.160~16410 Petty C B,Leuze M R ,Grefenstette J J.A par allel g enetic algor ithm.ICGA 2.L aw rence Erlbaum Associates,Gr efeenstette J J,ed.,1987.155~16111 P etty CC,L euze M R.A t heoretical investigation of a parallel genetic algorithm.ICGA3,Belew R K ,Boo ker LB ed.,CA:Mo rgan-K aufmman.1989.398~40512 G ordon V S,Whitley D.Serial and parallel genetic algo rithms as funct ion optimizers,I CGA4,For rest S ed.,CA :M org an-K aufmann,1993.177~18313 Collins R J,Jefferson D R.Select ion in massively parallel genetic algorithms.I CGA3,Belew R K,Booker L B,ed.,CA :M org an K aufmann Publishers,1991.249~25614 M anderick b,Spiessens P.fine -grained parallel g enetic algorithms,ICGA 3,Schaffer J D ed.,CA :M organK aufman,1989.428~43315 Spiessens P,M anderick B.A massively parallel genetic algorit hm:I mplementation and first analysis.ICGA 4,Belew R K,booker L B ed.,CA:M or gan-K aufmann,1991.279~28616 Sarma J,Jong K D.An analysis of t he effects of neig hborhoo d size and shape on local selection algor ithms,PPSNÔ.Berlin:Spr ing er -Verlag,1995.236~24417 Balja S.Structure and Performence of F ine-Grain P ar allelism in Genetic Search,ICGA 5.For rest S ed.,CA:M org an-Kaufmann,1993.155~16218 Cantu-Paz E,Goldberg D E.Predicting Speedups of Idealized Bounding Cases o f Parallel Genetic A lgorit hms,I CGA7.Back T ,ed.,CA:M or gan K aufmann Publishers,199719 Cantu-Paz E,Goldberg D E.M odeling I dealized Bounding Cases of Parallel Genetic Algor ithms,G enetic Pro -gramming 1997:P roceedings of the Second Anual co nference,Koza J,Deb K,Dorigo M ,F ogel D,Garzo n M ,Iba H,Rio lo R ed.CA:Mor gan K aufmann Publishers,1997.353~36125第1期王大明等:并行遗传算法综述。
多种群协同进化的并行遗传算法

多种群协同进化的并行遗传算法多种群协同进化并行遗传算法(Multi-population Cooperative Coevolutionary Parallel Genetic Algorithm, MCCPGA)是一种基于群体协作的进化算法,通过将一个大问题分解为多个子任务,并使用多个种群并行地进行进化,以提高算法效率。
本文将对多种群协同进化并行遗传算法的原理、优点以及应用进行详细介绍。
首先,多种群协同进化并行遗传算法的基本原理是将一个大问题分解成多个子任务,每个子任务由一个种群独立进化。
不同子任务之间通过共享信息交流、协作进化来改善效果。
算法的基本步骤为:初始化多个种群,每个种群为一个子任务的解空间;进行进化操作,包括选择、交叉、变异等;定期进行群体间信息交流,如共享精英个体、最优个体传递等;直到满足终止条件为止。
多种群协同进化并行遗传算法具有以下几个优点。
首先,通过并行计算,同时进行多个种群的进化,加快了算法的速度和收敛速度。
其次,多种群之间的信息交流可以引入不同种群的优势,提高了群体的多样性和整体的能力。
此外,不同子任务的粒度可以根据问题的特点进行调整,灵活性较高,适用范围广。
多种群协同进化并行遗传算法已经在多个领域得到了广泛应用。
例如,在优化问题中,可以将每个种群看作是一个决策变量的子集,通过不同种群的协作进化来求解全局最优解。
在机器学习中,不同种群可以分别学习不同任务的特征,通过信息交流来提高整体的分类准确率。
在智能控制中,可以构建多个控制子系统,通过种群之间的协同来优化整体的控制性能。
总而言之,多种群协同进化并行遗传算法是一种通过多个种群的协作进化来求解复杂问题的进化算法。
通过并行计算和信息交流,该算法能够加快速度、提高能力,已经在优化问题、机器学习、智能控制等领域取得了良好的效果。
未来,随着计算力的提升和算法的改进,多种群协同进化并行遗传算法有望在更多的应用领域发挥重要作用。
遗传算法的并行实现

遗传算法的并行实现遗传算法(Genetic Algorithm,GA)是一种模拟自然进化过程的优化算法。
它模拟了生物进化的基本原理,通过迭代的方式不断优化空间中的解,以找到最优解或者接近最优解。
在遗传算法的实现中,可以采用并行计算的方式来提高算法的效率和性能。
并行计算将任务拆分成多个子任务,同时进行处理,并通过协同工作来加速计算过程。
并行实现遗传算法的主要思路有以下几种方式:1. 池式并行(Pool-Based Parallelism):多个遗传算法进程同时运行,并且每个进程都具有自己的种群和繁殖操作。
这些进程可以根据需要交换信息,例如交换最佳个体,以进一步加速过程。
2. 岛模型并行(Island Model Parallelism):将种群划分为多个子种群,每个子种群在独立的进程中进行演化。
定期地选择一些个体进行迁移,使得不同子种群的个体可以交流基因信息。
这种方式类似于地理上的岛屿,每个岛屿代表一个子种群,岛屿之间的迁移模拟了个体在不同岛屿之间的迁徙。
3. 数据并行(Data Parallelism):将种群的每个个体划分成多个部分,每个部分在不同的处理器上进行计算。
这种方法将空间分割成多个子空间,以加速算法的收敛过程。
4. 任务并行(Task Parallelism):将遗传算法的各个操作(例如选择、交叉、变异等)分解为多个任务,并行执行这些任务。
每个任务可以在不同的处理器上同时进行,从而加速算法的执行。
并行实现遗传算法的优势在于它可以通过利用多个处理单元,同时处理并行化的任务,使得算法的过程更加高效。
并行计算可以加速算法的收敛速度,减少空间中的局部最优解,并提供更好的全局能力。
然而,并行实现也会带来一些挑战和注意事项。
例如,如何划分任务以达到最佳的负载均衡,如何设计通信、同步和数据共享机制等等,都需要仔细考虑和解决。
总之,遗传算法的并行实现是一个非常广泛且复杂的课题,需要综合考虑问题的特性、硬件的条件和算法设计的需求。
遗传算法的并行计算技术与应用分析

遗传算法的并行计算技术与应用分析遗传算法是一种模拟自然进化过程的优化算法,通过模拟生物进化过程中的选择、交叉和变异等操作,寻找问题的最优解。
然而,随着问题规模的增大和复杂性的提高,传统的串行遗传算法面临着计算时间长、搜索效率低等问题。
为了克服这些问题,研究人员提出了并行计算技术,并将其应用于遗传算法中。
并行计算技术是指将一个计算任务分解成多个子任务,并通过多个处理单元同时执行这些子任务,以提高计算效率。
在遗传算法中,可以通过并行计算技术加速遗传算法的搜索过程,从而提高算法的性能。
首先,通过并行计算技术,可以将种群分成多个子种群,每个子种群在一个处理单元上进行独立的进化。
这样可以加快遗传算法的进化速度,提高搜索效率。
同时,不同子种群之间可以通过交流基因信息来增加种群的多样性,避免陷入局部最优解。
其次,利用并行计算技术可以实现并行评估,即同时对多个个体进行适应度评估。
在传统的串行遗传算法中,适应度评估是一个非常耗时的过程,通过并行计算可以大大减少评估时间,提高算法的效率。
此外,通过并行计算技术,还可以实现并行选择和交叉操作。
传统的串行遗传算法中,选择和交叉是顺序执行的,而并行计算可以将这些操作并行化,从而加快算法的执行速度。
并行计算技术在遗传算法中的应用非常广泛。
例如,在组合优化问题中,通过并行计算可以加速求解最优解的过程。
在图像处理中,通过并行计算可以实现图像的快速优化和增强。
在机器学习中,通过并行计算可以加速模型的训练过程,提高学习的效率。
然而,并行计算技术也存在一些挑战和限制。
首先,并行计算需要大量的计算资源,包括处理器、内存和网络等。
其次,并行计算的效果受到问题规模和并行度的影响,需要合理地选择并行度和任务划分策略。
此外,并行计算还面临着通信开销和数据同步等问题,需要合理地设计和优化算法。
总之,遗传算法的并行计算技术为解决大规模和复杂问题提供了一种有效的方法。
通过并行计算,可以加速遗传算法的搜索过程,提高算法的性能。
matlab 并行多种群遗传算法

《使用MATLAB实现并行多种群遗传算法》1. 引言在当今信息时代,计算机科学和人工智能技术的迅猛发展,为解决复杂问题和优化算法提供了无限可能。
而遗传算法作为一种基于自然选择和遗传机制的优化算法,被广泛应用于工程、经济、生物等领域。
而在现实中,我们面对的问题往往是复杂多样的,传统的遗传算法可能无法满足需求,本文将探讨如何利用MATLAB实现并行多种群遗传算法,来解决这类问题。
2. 并行多种群遗传算法介绍并行多种群遗传算法是将多个遗传算法进行并行化处理的一种优化方法。
它通过将种群划分为多个子种群,每个子种群独立运行遗传算法进化过程,最终融合各子种群的结果,以达到更好的全局搜索能力和更快的优化速度。
与传统的遗传算法相比,这种并行化设计可以显著提高算法的收敛性和全局搜索能力。
3. MATLAB实现并行多种群遗传算法的步骤在MATLAB中实现并行多种群遗传算法,主要包括以下步骤:(1)初始化参数:包括种群数量、染色体长度、遗传代数等;(2)初始化种群:生成多个子种群,并对每个子种群进行初始化;(3)并行遗传算法进化:对每个子种群分别进行遗传算法的选择、交叉和变异操作;(4)合并结果:将每个子种群得到的优化结果进行合并,得到最终的全局最优解。
4. 并行多种群遗传算法的优势和应用相对于传统的遗传算法,使用MATLAB实现并行多种群遗传算法具有以下优势:(1)加速算法收敛速度:并行处理多个子种群可以大大加快整体算法的求解速度;(2)增强全局搜索能力:多个独立的子种群有助于更好地探索搜索空间;(3)解决复杂问题:对于复杂多样的实际问题,通过并行多种群设计可以更好地适应问题的特性。
具体应用上,MATLAB实现的并行多种群遗传算法可应用于工程领域的优化设计、机器学习中的参数优化、生物统计学的模型拟合等多个领域,帮助用户更高效地实现优化目标。
5. 个人观点和总结笔者认为,MATLAB实现并行多种群遗传算法作为一种先进的优化算法设计,具有很大的应用潜力。
并行遗传算法

混合模型是近些年快速发展起来的模型结构,主要是通过把前面三种基本模型混合形成层次结构。目前混合模 型组合关系主要有三种:粗粒度—细粒度、粗粒度—粗粒度和粗粒度—主从式。在形成的层次结构中,在下层的并 行模型中,子群体的规模是真实的,即为一个处理进程所处理的个体数量。而对于上层模型,将每个下层的并结构 都视为一个‘’集合子群体”,而“集合子群体”之间按上层的并行模型协调运行。对于此混合模型,无论在下 层还是在上层,都是子群体内部信息交互量大,之间信息交互量小。
细粒度模型又称作邻域模型,在整个进化过程中虽然保持一个群体,但要求子群体的划分要非常细小,最理想 状态是每个节点机(或处理器)只有一个个体,要求各节点机(或处理器)具有极强的通信能力,对于每个染色体,选 择和交叉操作都只在所处的节点机(或处理器)及其邻域中进行。由于整个进行过程中,不需要或者需要很少的全 局操作,因此充分发挥了遗传算法并行特性。
对于此四种模型,哪种模型更好没有一个明确的标准,甚至对于不同问题往往得出互相矛盾的答案.对于主从 式模型,由于仅适用计算时间主要集中在适应度评估的问题,因此适用的范围受到了极大的限制 ;对于细粒度模型, 是采用大范围的邻域模型,还是采用小范围直径也有争议,特别是由于对节点机(或处理器)的数量和通信能力要求 很高,所以细粒度模型的应用范围也不广;对于粗粒度模型,虽然采用什么样的迁移拓扑、迁移规模和迁移策略还 需深入研究,但由于通信开销较小,可获得接近线性的加速比,而且非常适合运行在通信带宽较低的集群系统上 [ 16],因此得到了广泛的应用;混合模型是在前三种模型的基础上建立起来的,由于具有很好的并行性特点,已成 为人们研究的主流,但从应用效果看,目前只有粗粒度 —主从式模型应用较好
遗传算法并行模型
主从式模型 粗粒度模型
遗传算法的并行计算与分布式优化研究

遗传算法的并行计算与分布式优化研究遗传算法是一种模拟自然进化过程的优化算法,已经在许多领域取得了显著的成果。
然而,随着问题规模的增大和复杂度的提高,传统的遗传算法面临着计算效率和解决能力的限制。
为了克服这些限制,研究者们开始探索遗传算法的并行计算和分布式优化技术。
并行计算是指将一个问题划分为多个子问题,并同时在多个处理单元上进行计算的方法。
在遗传算法中,这意味着将种群分为多个子种群,并在多个处理器上并行地进行进化操作。
这种并行计算的方式可以显著加速遗传算法的收敛速度,提高求解效率。
在并行计算中,如何划分种群成为一个重要的问题。
一种常用的方法是将种群均匀地划分为多个子种群,每个子种群在一个处理器上进行进化操作。
然而,这种均匀划分的方式可能无法充分利用处理器的计算能力,导致计算资源的浪费。
因此,研究者们提出了一些优化的划分策略,如动态划分和自适应划分。
这些策略可以根据问题的特性和计算资源的情况,动态地调整子种群的划分方式,以达到更好的性能。
另一方面,分布式优化是指将一个问题分布到多个计算节点上,并通过节点之间的通信和协作来求解最优解。
在遗传算法中,分布式优化可以通过将种群分布到多台计算机上,并通过网络进行数据交换和合作来实现。
这种分布式优化的方式可以充分利用多台计算机的计算能力,加速遗传算法的求解过程。
分布式优化中的一个关键问题是如何进行种群的同步和协作。
一种常用的方法是通过消息传递机制来实现节点之间的通信。
每个节点在进行进化操作后,将自己的部分解发送给其他节点,并接收其他节点发送的解进行合并和更新。
通过这种方式,节点之间可以共享信息,加速全局最优解的搜索过程。
除了并行计算和分布式优化,还有一些其他的技术可以用于提高遗传算法的求解效率。
例如,多目标优化和约束优化技术可以在遗传算法中引入多个目标和约束,从而使算法更加适用于复杂的实际问题。
同时,混合算法和自适应算法可以结合遗传算法和其他优化方法,提高算法的全局搜索能力和局部搜索能力。
基于机群计算的导热反问题并行遗传算法

法。它将问题的求解表示成“ 染色体” 的适者生存过 程, 通过“ 染色体” 的一代代不断进化。包括复制、 交 叉、 变异等操 作 , 到满足一 定性能 指标 和收敛条 件 直 终止, 从而求 得 问题 的最优解 或满 意解 。
当遗传算 法 ( A) 在种 群 比较 大或 者 问题 的 G 用 复 杂性较高 的情 况下 , 需要 提 高 其效 率 。并 行 遗 就 传算 法 ( G 是将遗 传算法 修改 为易于并行 化 的形 P A)
P r l lGe ei g rt m fHe t a a l n t Al o ih o a e c Co d c in I v r ePr b e Ba e n Cl se o u i g n u to n e s o lm s d o u trc mp tn
2 导热反 问题的算法描述
f=(u k) <y ,0 k ( 0 ,・ ;  ̄ + x<t d a ) >
{(,,) 0 uxy0= , l(,, =i 2ti r) oyt s (rs (y, u ) n r)n o
在 导热 问题 中 , 们往 往 根据 先 验 函数 和 实 际 人 测量 的温度值 来确 定热传 导系数 。 由于在 测量 中会 产生误 差 , 这些误 差 会 在反 问题求 解 过程 中被 过 而 度地 放 大 , 以人们 往 往会 测 量 出 N组 数据 , 过 所 通
HAN an - n Gu g mi g
【 bt c G s t hv a a r a l s . hnt ses o m la do t iapphi z i A s at Aie y o ae t a pr e m w e es r c pct rh ni ou tnse s r 】 sa n u l al l i h iu im e o i e e t l o i
遗传算法的并行化与分布式计算方法

遗传算法的并行化与分布式计算方法遗传算法是一种模拟进化过程的优化算法,通过模拟自然界中的遗传和进化机制,来求解复杂的优化问题。
然而,随着问题规模的增大和计算复杂度的提高,传统的串行遗传算法已经不能满足实际需求。
因此,研究者们开始探索如何将遗传算法并行化,以提高算法的效率和性能。
并行化是指将一个计算任务划分为多个子任务,并在多个处理器上同时执行这些子任务。
在遗传算法中,可以将种群划分为多个子种群,每个子种群在一个处理器上进行进化计算。
这样一来,不同处理器上的子种群可以并行地进行进化,从而加快算法的收敛速度。
并行化遗传算法的关键在于如何划分种群和如何进行种群间的信息交流。
一种常用的方法是将种群按照某种规则进行分割,每个子种群在一个处理器上进行计算。
每个子种群独立地进行进化,直到达到一定的迭代次数或满足终止条件。
然后,通过一定的信息交流机制,将优秀个体从一个子种群传递给其他子种群,以实现全局搜索和局部搜索的平衡。
并行化遗传算法的另一个关键问题是如何选择合适的并行化策略。
一种常用的策略是静态划分策略,即将种群均匀地划分为若干个子种群,并在每个处理器上独立地进行进化计算。
这种策略简单易实现,但可能导致负载不均衡的问题。
另一种策略是动态划分策略,即根据种群的进化状态动态地调整子种群的大小和划分方式。
这种策略可以根据实际情况动态地调整各个子种群的大小,以提高算法的效率和性能。
除了并行化,分布式计算也是提高遗传算法效率和性能的重要手段。
分布式计算是指将一个计算任务分布到多个计算节点上进行并行计算。
在遗传算法中,可以将种群分布到多个计算节点上进行进化计算。
每个计算节点独立地进行进化计算,然后通过网络进行信息交流和同步。
分布式计算可以充分利用多台计算机的计算资源,提高算法的并行度和计算效率。
分布式计算中的关键问题是如何进行节点间的信息交流和同步。
一种常用的方法是消息传递机制,即通过网络发送和接收消息来进行信息交流和同步。
遗传算法的并行计算优化技巧

遗传算法的并行计算优化技巧遗传算法是一种模拟自然进化过程的优化算法,通过模拟基因的变异和交叉,以及适应度的选择,来搜索最优解。
然而,随着问题规模的增大,遗传算法的计算复杂度也随之增加。
为了提高算法的效率和速度,研究人员提出了许多并行计算的优化技巧。
一、并行计算的基本概念并行计算是指将一个问题分解成多个子问题,并通过多个处理单元同时进行计算,以提高计算速度和效率。
在遗传算法中,可以将种群分成多个子种群,每个子种群由一个处理单元进行计算。
每个子种群独立进行进化,并在一定的代数后进行交流和合并,以保持种群的多样性。
二、种群的划分策略种群的划分策略是指将种群划分成多个子种群的方法。
常见的划分策略有均匀划分、随机划分和自适应划分。
均匀划分是将种群均匀地分成若干个子种群,每个子种群的大小相等。
随机划分是随机地将个体分配到不同的子种群中。
自适应划分是根据个体的适应度将其分配到不同的子种群中,适应度较高的个体分配到较小的子种群中,适应度较低的个体分配到较大的子种群中。
三、子种群的交流策略子种群的交流策略是指子种群之间的信息交流方式。
常见的交流策略有同步交流和异步交流。
同步交流是指在每一代进化后,所有子种群都进行信息交流和合并。
异步交流是指在每个子种群进化的过程中,根据一定的规则选择部分个体进行信息交流和合并。
异步交流可以减少信息交流的频率,降低通信开销,提高算法的效率。
四、种群的合并策略种群的合并策略是指在子种群交流后,如何将子种群重新合并成一个整体种群。
常见的合并策略有精英策略和随机策略。
精英策略是将每个子种群中适应度最好的个体保留下来,合并成新的种群。
随机策略是在每个子种群中随机选择一定数量的个体,合并成新的种群。
精英策略可以保留优秀的个体,保持种群的多样性,但可能导致早熟收敛。
随机策略可以增加种群的多样性,但可能导致种群的适应度下降。
五、并行计算的效果评估并行计算的效果评估是指对并行计算算法进行性能评估和比较的方法。
多种群协同进化的并行遗传算法

多种群协同进化的并行遗传算法
多种群协同进化的并行遗传算法是一种基于并行计算的优化算法,它利用多个子种群协同地进行进化,以加速优化的过程。
下面是该算法的主要步骤:
1. 初始化多个子种群:首先,根据问题的特点和要求,初始化多个子种群,每个子种群包含一定数量的个体。
2. 个体交流:每个子种群内的个体进行交叉和变异产生新个体,并计算适应度值。
3. 信息共享:每个子种群选择一部分个体与其他子种群共享信息,例如最好的个体解或一些遗传算子。
这种信息交流可以通过共享内存、消息传递等方式进行。
4. 个体迁移:根据共享的信息,每个子种群选择一些个体迁移到其他子种群中。
迁移的个体可能是最好的个体解,或者是通过一些选择策略选择出来的个体。
5. 子种群进化:每个子种群根据选择策略选择一些个体进行
交叉和变异,生成新的个体,并计算适应度值。
6. 判断终止条件:判断是否满足终止条件,例如达到预定的迭代次数或找到满意的个体解。
7. 结果汇总:将各个子种群的最好的个体解汇总,并输出最终的优化结果。
多种群协同进化的并行遗传算法通过将优化任务分配给多个子种群,并通过信息共享和个体迁移实现个体间的合作与协同,从而加速进化的过程,提高了算法的性能和收敛速度。
同时,多种群协同进化的并行遗传算法也能够保持种群的多样性,避免过早陷入局部最优解。
多种群协同进化的并行遗传算法

多种群协同进化的并行遗传算法在传统的遗传算法中,只有一个群体参与进化过程。
然而,随着问题的复杂性的增加,传统遗传算法可能会遇到局部最优解、收敛速度慢等问题。
为了解决这些问题,研究者提出了多种群协同进化的并行遗传算法。
首先,多种群的并行遗传算法可以减少陷入局部最优解问题。
每个子种群都有自己的空间,通过并行化的方式进行,可以多方位、多角度地对问题空间进行探索,从而提高算法逃离局部最优解的能力。
其次,多种群的并行遗传算法可以加快进化过程的速度。
不同的子种群可以同时进行,提高了计算资源的利用率。
此外,子种群之间可以通过更高效的信息交流来加速进化过程。
例如,可以通过共享最优个体、交换基因等方式让不同子种群之间学习并利用对方的进化信息,加速全局最优解的收敛。
进一步地,多种群的并行遗传算法可以应用于复杂的优化问题。
通过将问题分解为多个子问题,并将每个子问题映射到子种群中进行优化,可以降低问题的复杂性,从而提高算法的求解效率。
多种群协同进化的并行遗传算法的核心是子种群的设计和信息交流策略。
在设计子种群时,需要根据问题的特点合理划分子种群的空间,并选择适当的遗传算子和参数设置。
在信息交流策略上,可以通过共享优秀个体、迁移操作、种群大小调整等方式来促进子种群之间的信息交流与合作。
总结起来,多种群协同进化的并行遗传算法通过并行化、信息交流等方式提高了遗传算法在复杂优化问题上的求解能力。
它可以减少陷入局部最优解的问题、加快进化过程的速度,并且可以应用于复杂的优化问题。
未来,多种群协同进化的并行遗传算法还有很大的研究空间,可以进一步改进子种群的设计和信息交流策略,提高算法的性能和鲁棒性。
遗传算法的并行实现

遗传算法的并行实现章衡 2007310437一、 问题描述遗传算法是通过模拟自然界生物进化过程来求解优化问题的一类自组织、自适应的人工智能技术。
它主要基于达尔文的自然进化论和孟德尔的遗传变异理论。
多数遗传算法的应用是处理一个由许多个体组成的群体,其中每个个体表示问题的一个潜在解。
对个体存在一个评估函数来评判其对环境的适应度。
为反映适者生存的思想,算法中设计一个选择机制,使得:适应度好的个体有更多的机会生存。
在种群的进化过程中,主要存在两种类型的遗传算子:杂交和变异。
这些算子作用于个体对应的染色体,产生新的染色体,从而构成下一代种群中的个体。
该过程不断进行,直到找到满足精度要求的解,或者达到设定的进化代数。
显然,这样的思想适合于现实世界中的一大类问题,因而具有广泛的应用价值。
遗传算法的每一次进化过程中的,各个体之间的操作大多可以并列进行,因此,一个非常自然的想法就是将遗传算法并行化,以提高计算速度。
本报告中试图得到一个并行遗传算法的框架,并考察并行化之后的一些特性。
为简单起见(本来应该考虑更复杂的问题,如TSP 。
因时间有些紧张,请老师原谅),考虑的具有问题是:对给定的正整数n 、n 元函数f ,以及定义域D ,求函数f 在D 内的最大值。
二、 串行遗传算法 1. 染色体与适应度函数对函数优化问题,一个潜在的解就是定义域D 中的一个点011(,,...,)n x x x -,因此,我们只需用一个长度为n 的实数数组来表示一个个体的染色体。
由于问题中要求求函数f 的最大值,我们可以以个体所代表点011(,,...,)n x x x -在f 函数下的值来判断该个体的好坏。
因此,我们直接用函数f 作为个体的适应度函数。
2. 选择机制选择是遗传算法中最主要的机制,也是影响遗传算法性能最主要的因素。
若选择过程中适应度好的个体生存的概率过大,会造成几个较好的可行解迅速占据种群,从而收敛于局部最优解;反之,若适应度对生存概率的影响过小,则会使算法呈现出纯粹的随机徘徊行为,算法无法收敛。
并行遗传算法的研究评述

南昌航空工业学院学报1998年第2期 Jou rnal of N anchang In stitu te of A eronau tical T echno logy №2 1998并行遗传算法的研究评述周 明 孙树栋 彭炎午(西北工业大学)摘要:并行遗传算法是遗传算法研究中的一个重要方向,受到了研究人员的高度重视。
本文系统地综述了各种并行遗传算法的构成原理,介绍了其典型应用情况,并指出了需进一步研究的课题。
关键词:并行遗传算法;遗传算法;并行计算;优化中图分类号:T P30116前言美国M ich igan大学的J.H.Ho lland[1]创立的遗传算法(Genetic A lgo rithm s,简称GA s)是模仿自然界生物进化过程中“物竞天择,适者生存”的原理而进行的一种多参数、多群体同时优化方法。
经过二十多年的发展,遗传算法已经在货郎担问题(T SP)的求解、生产调度、函数优化、机器学习等领域得到成功的应用,并显示出其良好的性能。
传统的遗传算法虽然具有隐含的并行性,但其实现方法在本质上仍是串行的。
这种串行的遗传算法在解决一些实际问题时,由于需要较多的个体数量和大量的计算,使得进化过程缓慢,难以达到实时要求。
因此并行遗传算法(Parallel Genetic A lgo rithm,简称PGA)[2]就受到了较大的重视。
本文拟对目前已开发出的并行遗传算法进行分类和总结,以便能为新的并行遗传算法的开发和应用以及并行遗传算法的机理分析提供参考。
1 遗传算法的并行性分析D.E.Go ldberg[3]归纳出了基本遗传算法模型(Si m p le Genetic A lgo rithm,简称SGA),它是一个反复迭代的进化计算过程,通过对一组表示候选解的个体进行评价、选择、交叉、变异等操作,来产生新一代的个体(候选解),这个迭代过程直到满足某种结束条件为止。
对应于基本遗传算法的运行过程,为实现其并行化要求,如图1所示,可以从下面四种并行性方面着手对其进行改进和发展。
并行遗传算法

并行遗传算法及其应用1、遗传算法( GA)概述GA是一类基于自然选择和遗传学原理的有效搜索方法,它从一个种群开始,利用选择、交叉、变异等遗传算子对种群进行不断进化,最后得到全局最优解。
生物遗传物质的主要载体是染色体,在GA中同样将问题的求解表示成“染色体Chromosom”e,通常是二进制字符串表示,其本身不一定是解。
首先,随机产生一定数据的初始染色体,这些随机产生的染色体组成一个种群( Population ),种群中染色体的数目称为种群的大小或者种群规模。
第二:用适值度函数来评价每一个染色体的优劣,即染色体对环境的适应程度,用来作为以后遗传操作的依据。
第三:进行选择( Selection ),选择过程的目的是为了从当前种群中选出优良的染色体,通过选择过程,产生一个新的种群。
第四:对这个新的种群进行交叉操作,变异操作。
交叉、变异操作的目的是挖掘种群中个体的多样性,避免有可能陷入局部解。
经过上述运算产生的染色体称为后代。
最后,对新的种群(即后代)重复进行选择、交叉和变异操作,经过给定次数的迭代处理以后,把最好的染色体作为优化问题的最优解。
GA通常包含5个基本要素:1、参数编码:GA是采用问题参数的编码集进行工作的,而不是采用问题参数本身,通常选择二进制编码。
2、初始种群设定:GA随机产生一个由N个染色体组成的初始种群( Population ),也可根据一定的限制条件来产生。
种群规模是指种群中所含染色体的数目。
3、适值度函数的设定:适值度函数是用来区分种群中个体好坏的标准,是进行选择的唯一依据。
目前主要通过目标函数映射成适值度函数。
4、遗传操作设计:遗传算子是模拟生物基因遗传的操作,遗传操作的任务是对种群的个体按照它们对环境的适应的程度施加一定的算子,从而实现优胜劣汰的进化过程。
遗传基本算子包括:选择算子,交叉算子,变异算子和其他高级遗传算子。
5、控制参数设定:在GA的应用中,要首先给定一组控制参数:种群规模,杂交率,变异率,进化代数等。
并行遗传算法

隐含并行性
□ 设ε为一小正数,L< ε(l-1)+1,N=2l,2,则遗传 算法一次处理的存活概率不小于1- ε且定义 长度不大于L的模式数位O(N3). □ 遗传算法表面上仅对每代的N个个体作处理 ,但实际上并行处理了大约O(N3)个模 式,并且无额外的存储,这正是遗传算法 具有高校搜索能力的原因,这就是遗传算 法的隐含并行。
并行遗传算法
□ 传统的遗传算法出现的问题: 局部搜索性能较差,对某些分布变化缓慢,面对大型计算 问题速度难以达到要求 □ 并行遗传算法提出: 在遗传算法并行运算的基础上,通过多种群并行进化和引 入迁移算子进行进行种群之间的信息交流,实现多种群的 协同进化。通过人工选择系数对每个种群最优化个体保存 ,通过对协调种群间的信息交换策略得到最好的进化效果 。 □ 遗传算法的并行化实现就是将进化过程划分到不同的计算 节点上,进行分布式进化,并通过一定的种群间信息交换 策略实现优良基因的转换。
pi fi
f
i 1
n
i
□ Pi反映了个体i的适应度在整个群体的个体适应度总和中所占的比例。适应度 越高,被选中的概率越高。
算法终止条件
□ 在实际中算法是不允许无止境的发展下去 的,而且对通常问题的最优解具有不确定 性,因此需要一个条件来终止算法的进程 。目前最常用的终止条件是事先给定一个 最大进化步数,或者判断最佳优化值是否 连续且经过若干步后都没有变化等。
算法参数选择
□ 种群的数目:影响算法优化性能和效率。种群太小导致采 样点数目不足,算法性能低;而种群数目太大又会增加计 算量,导致收敛时间过长。所以在设计算法时应该针对具 体问题选择适宜的种群数目; □ 交叉概率:用于控制交叉操作的频率。概率太大,种群中 串的更新很快,会使高适配值的个体很快被破坏掉;概率 太小,交叉操作很少进行,会使搜索停止不前; □ 变异概率:增加种群多样性。基于二进制编码的GA中, 一个非常小的变异率就会改变整个种群的基因。变异概率 必须取一个适当的值,太小不会产生新个体,太大又会使 GA完全的随机搜索; 总结:遗传算法参数的选择是非常重要的,同时也非常复 杂,参数选取需要按照问题的实际大小来进行选择。
- 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作了修改。
虽然细粒度模型也只有一个种群在进化,但在种群平面网格细胞上,将种群划分成了多个非常小的子种群(理想情况是每个处理单元上只有一个个体),子种群之间具有极强的通信能力,便于优良解传播到整个种群。
全局选择被领域选择取代,个体适应度的计算由局部领域中的个体决定,重组操作中的配偶出自同一领域,且子代同其同一领域的亲本竞争空间,即选择和重组只在网格中相邻个体之间进行。
细粒度模型要解决的主要问题是领域结构和选择策略。
领域结构既决定了种群中个体的空间位置,也确定了个体在种群中传播的路径。
领域结构主要受特定并行计算机的内存结构和通信结构影响。
领域拓扑确定一个个体的邻居,构成该个体的局部领域。
通常,只有一个拓扑的直接领域才属于其局部领域,若把某个固定步数内所能到达的所有个体也包含在内,则可以扩大领域半径。
在确定选择策略时,要考虑到选择压力的变化,而选择压力与领域结构有关。
与全局匹配选择类似,局部匹配选择可以采用局部适应度比例、排列比例选择,以及随机行走选择。