标准遗传算法改进-多种群遗传算法探讨

遗传算法早熟问题
    未成熟收敛是遗传算法中不可忽视的现象,主要表现在群体中的所有个体都趋于同一状态而停止进化,算法最终不能给出令人满意的解。未成熟收敛的发生主要和下列几个方面有关:
(1)选择操作是根据当前群体中个体的适应度值所决定的概率进行的,当群体中存在个别超常个体时(该个体的适应度比其他个体高得多),该个体在选择算子作用下将会多次被选中,下一代群体很快被该个体所控制,群体中失去竞争性,从而导致群体停滞不前。
(2)交叉和变异操作发生的频度是受交叉概率Pc和变异概率Pm控制的,Pc和Pm的恰当设定涉及遗传算法全局搜索和局部搜索能力的均衡,进化搜索的最终结果对Pc、Pm的取值相当敏感,不同的Pc、Pm取值很可能会导致不同的计算结果。
(3)群体规模对遗传算法的优化性能也有较大的影响。当群体规模较小时,群体中多样性程度低,个体之间竞争性较弱,随着进化的进行,群体很快趋于单一化,交叉操作产生新个体的作用渐趋消失,群体的更新只靠变异操作来维持,群体很快终止进化;当群体规模取值较大时,势必造成计算量的增加,计算效率受到影响。
(4)遗传算法常用的终止判据是,当迭代次数到达人为规定的最大遗传代数时,则终止进化,如迭代次数过少,进化不充分,也会造成未成熟收敛。为克服未成熟收敛,许多学者对算法改进进行了一些有益的探索,特别对遗传控制参数的设定,提出了自适应的交叉和变异,并获得了一些有益的结论。但是,遗传算法的未成熟收敛与上述诸多因素有关,在应用遗传算法解决实际问题时,控制参数如何设定,遗传算子如何设计往往是根据实际问题试探性地给出的,不恰当的设定会在很大程度上影响算法的性能。
多种群遗传算法

一种多种群遗传算法(multiple population GA,MPGA),引入多个种群同时进行优化搜索,不同的种群赋以不同的控制参数,实现不同的搜索目的。各个种群之间通过移民算子进行联系,实现多种群的协同进化,最优解的获取是多个种群协同进化的综合结果。通过人工选择算子保存各种群每个进化代中的最优个体,并作为判断算法收敛的依据。
MPGA的算法结构示意图
图1 MPGA的算法结构示意图
各种群是相对独立的,相互之间通过移民算子联系。移民算子将各种群在进化过程中出现的最优个体定期地(每隔一定的进化代数)引入其他的种群中,实现种群之间的信息交换。具体的操作规则是,将目标种群中的最差个体用源种群的最优个体代替。移民算子在MPGA中至关重要,如果没有移民算子,各种群之间失去了联系,MPGA将等同于用不同的控制参数进行多次SGV计算。
精华种群和其他种群有很大不同。在进化的每一代,通过人工选择算子选出其他种群的最优个体放入精华种群加以保存。精华种群不进行选择、交叉、变异等遗传操作,保证进化过程中各种群产生的最优个体不被破坏和丢失。精华种群也是判断算法终止的依据,这里采用最优个体最少保持代数作为终止判据。这种判据充分利用了遗传算法在进化过程中的知识积累,较最大遗传代数判据更为合理。

移民算子

移民算子函数immigrant
在这里插入图片描述

function [Chrom,ObjV]=immigrant(Chrom,ObjV)
%% 移民算子
MP=length(Chrom);
for i=1:MP
    [MaxO,maxI]=max(ObjV{i});  % 找出第i种群中最优的个体
    next_i=i+1;                % 目标种群(移民操作中)
    if next_i>MP;next_i=mod(next_i,MP);end
    [MinO,minI]=min(ObjV{next_i});          %  找出目标种群中最劣的个体
    %% 目标种群最劣个体替换为源种群最优个体
    Chrom{next_i}(minI,:)=Chrom{i}(maxI,:);
    ObjV{next_i}(minI)=ObjV{i}(maxI);
end
人工选择算子

人工选择算子函数EliteInduvidual
在这里插入图片描述

function [MaxObjV,MaxChrom]=EliteInduvidual(Chrom,ObjV,MaxObjV,MaxChrom)
%% 人工选择算子
MP=length(Chrom);  %种群数
for i=1:MP
    [MaxO,maxI]=max(ObjV{i});   %找出第i种群中最优个体
    if MaxO>MaxObjV(i)
        MaxObjV(i)=MaxO;         %记录各种群的精华个体
        MaxChrom(i,:)=Chrom{i}(maxI,:);  %记录各种群精华个体的编码
    end
end
算法测试

目标函数
在这里插入图片描述

标准遗传算法

最优解:
X=1.2623
Y=1.9999
Z=3.2563
在这里插入图片描述
在这里插入图片描述

多种群遗传算法

最优解:
X=1.7628
Y=-2
Z=3.7563

在这里插入图片描述
在这里插入图片描述
内容参考了《MATLAB智能算法30个案例分析(第2版)》,测试案例自己做了修改。案例源代码见下载部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

songrpdky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值