一种基于进化激励算子的遗传算法

文档序号:9235731阅读:258来源:国知局
一种基于进化激励算子的遗传算法
【技术领域】
[0001] 本发明属于实数编码的遗传算法领域,特别设及一种基于进化激励算子的遗传算 法。 技术背景
[0002] 目前关于带限制条件的实数参数优化问题的求解方法研究比较多,主要的求解方 法是进化算法,遗传算法就是比较成熟的一种进化算法,遗传算法是美国Michigan大学的 化Hand教授于1969年首次提出,后经归纳总结形成的一类模拟进化算法,其源于进化论、 物种选择说和群体遗传学。
[0003] 遗传算法具有很好的鲁椿性和高效性,是一种隐性的并行计算方法,并广泛应用 于计算科学和工程设计领域,适合解决复杂的非线性和多维空间寻优问题。
[0004] 虽然遗传算法具有很多优点并有大量的成功应用,高巧提出的自适应交叉变异概 率遗传算法(具体参考文献,改进的快速遗传算法及其性能研究[J],系统工程与电子技 术,2003, 25 (11): 1427-1430),w及LinWen-Yang提出的PRGA算法(具体参考文献,LinW Y,LeeWY,HongTP,AdaptingCrossoverandMutationRatesinGeneticAlgorithms, JournalofInformationScienceandElngineering79, 2003.),但其自身也存在不足,如 局部捜索能力不足和随机游走就是需要解决的问题。通过动态调整交叉变异率,可W-定 程度克服随机游走问题,通过规划个体可W提高算法的捜索能力。

【发明内容】

[0005] 本发明的目的在于提供一种基于进化激励算子的遗传算法,提高遗传算法的局部 捜索能力和一定程度的克服算法随机游走问题,从每代种群目标函数值的分布总体出发, 预测出进化激励算子,并利用进化激励算子对种群的进化进行调整和指导。
[0006] 具体技术方案如下;
[0007] 一种基于进化激励算子的遗传算法,包括W下步骤:
[000引 (1)初始化种群规模,设置遗传代数,初始遗传代数为第一代,转入步骤(2);
[0009] (2)记当前代种群为父代种群,计算当前代种群中每个个体的目标函数值,将最小 的B个目标函数值对应的个体储存下来,B为整数,并按照从大到小的顺序对所有的目标函 数值进行排列,得到目标函数值序列;
[0010] (3)选择调制函数,将目标函数值序列调制成调制后序列;
[ocm] (4)采用灰色预测模型GM(1,1)模型,计算进化激励算子;
[001引 妨根据激励算子,计算进化激励算子对应的代种群中每个个体的变化率;
[001引 做设定规划种群大小和幅度控制因子,根据每个个体的变化率,计算得到每个父 代个体对应的规划后代包含的个体个数,并从父代个体及其对应的规划后代个体中选择出 目标函数值取值最小的个体替换父代个体,更新父代种群中的所有个体,得到规划后的父 代种群;
[0014] (7)对规划后的父代种群,利用上述(2)至(5)的步骤计算得到该种群每个个体的 变化率,并计算交叉率和变异率;
[0015] (8)用每个个体的交叉率和变异率控制其交叉变异过程,并进行交叉变异操作,得 到新的子代种群后,计算子代种群中所有个体的目标函数值,并将所有个体按照其对应的 目标函数值从大到小排列,用步骤(2)中存储的B个个体替换此时种群中的前B个个体,得 到替换后的种群;判断遗传代数是否大于最大的遗传代数或者得到某个个体的目标函数值 是否满足要求,如果达到最大遗传代数或者满足要求,则算法停止,否则遗传代数完成自加 1的操作,并W替换后的种群作为下一代父代种群进入步骤(2)。
[0016] 进一步地,所述步骤(3)的具体过程为:选择严格单调递增的指数函数作为调制 函数,调制后序列为X?,
[0017] X做化)=a.eb.s(k)
[001引其中,a、b为调制函数的参数,k为个体的编号,k为整数,取值范围为从1到PS, PS为每代种群的规模,种群规模大小是固定不变的;S(k)为经过排列的目标函数序列中第 k个目标函数值,X?化)为8化)对应的调审IJ数值。
[0019] 进一步地,所述步骤(4)的具体过程为,设Bi为迭代次数标识,表示第Bi次迭代 计算,Bi为正整数,初始值为1,具体步骤为,
[0020](41)对调制后序列X?进行累加处理,得到对应第Bi次迭代的1-GAO序列X W,具 体过程如下
[0021]
[0022] 其中,k为个体的编号,k为整数,取值范围为从1到ND,ND为设定的GM(1,1)预 测序列长度值,ND为非负整数,XW化)为经过累加处理的1-GAO序列中第k位的数值;
[0023] (42)计算出紧邻均值生成序列ZW,具体过程为
[0024]
[0025] 其中,k为个体的编号,k为整数,取值范围为从2到ND,ZW化)为紧邻均值生成序 列中第k位的数值;
[0026] (似)结合GM(1,1)的模型X? (k)+Ga .Z(i)似=抓,Ga、抓为模型参数,利用最小 二乘原理计算第Bi次迭代的估计参数Gael、抓M取值
[0029] 其中,Gael和抓M为第Bi次迭代计算所得的GM(1,1)模型中对应参数最小二乘意 义下的估计值,完成一次迭代过程,判断Bi是否达到最大值PS-ND+1,如果达到最大值则停 止该参数计算迭代过程,进入步骤(44),如果没有达到最大值,Bi进行一次自加操作,即Bi = Bi+l,进入步骤(41);
[0030] (44)对计算得到的参数序列进行自更新操作,
[003U GaBi= (l-y) ? GaBi-1+y ? GaBi[003引抓M=(1- y)?抓Bi-1+y?抓Bi
[0033] 其中Bi的取值范围为从2到PS-ND+1,y表示遗忘因子,通过此迭代计算得到最 后的参数Gaps-罰和抓ps-罰,结合对应的GM(1,1)预测出X? (PS+1),
[0034]
[0035](45)计算得到进化激励算子0,
[0036]
[0037] 其中a、b为指数调制函数的参数,In为取对数函数;
[003引进一步地,所述步骤巧)中计算进化激励算子对应的代种群中每个个体的变化率 如下:
[0039]
[0040] 其中0为进化激励算子,P J表示第j个个体对应的变化率P J,j为正整数,取值 范围从1至Ij PS,PS为种群规模,Pj.表示第j个个体,f 为当前代种群中个体目标函数值 中的最大值,为第j个个体的目标函数值。
[004U 进一步地,所述步骤化)的具体过程如下;设定规划种群大小GN和幅度控制因子 A,GN为整数,A为实数;
[0042] 第j个个体进行规划,用指数函数进行规划后代的规模控制,得到第j个个体的规 划后代个数nfj为
[0043]
[0044] 其中,C和d为指数规划函数的参数,round表示四舍五入取整数,假设第j个个体 用公表示,采用实数编码,每个个体的维数为R,每个个体的对应位置取值范围满足要求:
[0045] 尽<乂"(/-)<万,
[0046] 其中扭(r)表示第j个个体第r个位置上取值,拉和瓦分别表示每个个体第r个 位置上取值的下限值和上限值,r为正整数,取值范围从1到R ;
[0047]第j个个体得到的规划后代个数为n户,每个规划后代的产生都是基于第j个个体 的编码取值的,针对每个编码位子随机决定是加变化或减变化,如果对第j个个体的第r个 位置进行加变化,则产生的第i个规划后代不1,,.的第r个位置上的取值(叫,则由下式 得到:
[0048]
[0049] 其中,rand表示按照均匀分布随机产生的一个位于区间[0, 1]中的一个实数,若 对第j个个体的第r个位置进行减变化,则有
[0050] 乂=乂心)-化/. [乂' (r)-么.].Z!
[0化1] 通过此种规划后代,基于第j个个体产生n户个后代个体,构建第j个个体的候选 个体集合为{义^,《^,义"2^,,-,《1'4,计算集合中每个个体的目标函数值,取目标函数值取 值最小的个体替换原来的第j个个体公,依此更新此代种群中的所有个体,得到新的种群, 即完成对此代种群的更新。
[005引进一步地,所述步骤(7)的具体过程为,对更新后的种群,利用步骤(2)至骤巧) 的方法计算得到更新后种群中每个个体的变化率,假设更新后的第j个个体xj对应的个体 变化率为Pj.,设置交叉控制因子为Ct,变异控制因子为Mu,Ct,Mu为正实数,取值区间均为 (0, 1],得到第j个个体公对应的交叉率公为
[0053] Pt二Cf.Pj
[0054] 第j个个体X饰应的变异率柏为
[0055] pL二Mu.pj
[0化6] 其中j为正整数,取值范围从1到PS。
[0057] 进一步地,所述步骤化)中的幅度控制因子取值区间为(0, 1]。
[005引进一步地,所述参数C取大于0的实数,参数d取小于0的实数,具体取值需要根 据实际问题进行设置,取值组合可W调整具体个体的规划后代规模之间的比例关系。
[0化9
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1