摘自 Matlab 在数学建模中的应用, 北航出版社,2025
2 遗传算法 MATLAB 程序设计4
1 程序设计流程及参数选取4
1 遗传算法程序设计伪代码 BEGIN t = 0 ; %Generations NO
初始化 P(t) ; %Initial Population or Chromosomes 计算 P(t) 的适应值; while (不满足停止准则) do begin t = t+1 ; 从 P(t—1)中选择 P(t) ; % Selection 重组 P(t) ; % Crossover and Mutation 计算 P(t) 的适应值; end END4
2 遗传算法的参数设计原则在单纯的遗传算法当中,也并不总是收敛,即使在单峰或单调也是如此
这是因为种群的进化能力已经基本丧失,种群早熟
为了避开种群的早熟,参数的设计一般遵从以下原则[5]:(1)种群的规模:当群体规模太小时,很明显会出现近亲交配,产生病态基因
而且造成有效等位基因先天缺乏,即使采纳较大概率的变异算子,生成具有竞争力高阶模式的可能性仍很小,况且大概率变异算子对已有模式的破坏作用极大
同时遗传算子存在随机误差(模式采样误差),阻碍小群体中有效模式的正确传播,使得种群进化不能根据模式定理产生所预测的期望数量;种群规模太大,结果难以收敛且浪费资源,稳健性下降
种群规模的一个建议值为 0~100
(2)变异概率:当变异概率太小时,种群的多样性下降太快,容易导致有效基因的迅速丢失且不容易修补;当变异概率太大时,尽管种群的多样性可以得到保证,但是高阶模式被破坏的概率也随之增大
变异概率一般取 0
0001~0
(3)交配概率:交配是生成新种群最重要的手段
与变异概率类似,交配概率太大容易破坏已有的有利模式,随机性增大,容易错失最优个体;交配概率太小不能有效更新