遗传算法及其改进措施
遗传算法基本原理及改进

遗传算法基本原理及改进编码方法:1、二进制编码方法2、格雷码编码方法3、浮点数编码方法。
个体长度等于决策变量长度4、多参数级联编码。
一般常见的优化问题中往往含有多个决策变量,对这种还有多个变量的个体进行编码的方法就成为多参数编码方法。
多参数编码的一种最常用和最基本的方法是:将各个参数分别以某种方式进行编码,然后再将它们的编码按照一定顺序连接在一起就组成了标识全部参数的个体编码。
5、多参数交叉编码:思想是将各个参数中起主要作用的码位集中在一起,这样他们就不易于被遗传算子破坏掉。
在进行多参数交叉编码时,可先对各个参数进行编码;然后去各个参数编码串的最高位连接在一起,以他们作为个体编码串前N位编码,同上依次排列之。
改进遗传算法的方法:(1)改进遗传算法的组成成分或实用技术,如选用优化控制参数、适合问题的编码技术等。
(2)采用动态自适应技术,在进化过程中调整算法控制参数和编码精度。
(3)采用混合遗传算法(4)采用并行算法(5)采用非标准的遗传操作算子改进的遗传算法:(1)分层遗传算法(2)CHC算法(3)messy遗传算法;(4)自实用遗传算法(Adaptive Genetic Algorithm)(5)基于小生境技术的遗传算法(Niched Genetic Algorithm,简称NGA)。
(6)并行遗传算法(Parallel Genetic Algorithm)(7)混合遗传算法:遗传算法与最速下降法相结合的混合遗传算法;遗传算法与模拟退火算法相结合的混合遗传算法。
解决标准遗传算法早熟收敛和后期搜索迟钝的方案(1)变异和交叉算子的改进和协调采用将进化过程划分为渐进和突变两个不同阶段采用动态变异运用正交设计或均匀设计方法设计新的交叉和变异算子(2)采用局部搜索算法解决局部搜索能力差的问题(3)采用有条件的替代父代的方法,解决单一的群体更新方式难以兼顾多样性和收敛性的问题(4)收敛速度慢的解决方法;产生好的初始群体利用小生境技术使用移民技术采用自适应算子采用与局部搜索算法相结合的混合遗传算法对算法的参数编码采用动态模糊控制进行未成熟收敛判断。
遗传算法改进及算法应用PPT课件

r就表示交叉临界值,g表示该种群此时的进化代数,G表示该种群规定 的总的进化代数。
第25页/共37页
r是一个(1/3,2/3]之间的数,并不是固定不变的,是随着当前的进化代数 的增长而不断增大的。
如果需要进行交叉的两个父代个体的相似度S大于或等于当前的交叉临 界值r时,则不准这两个父代个体进行交叉互换操作,以避免破坏它们的优良 基因模式。
第3页/共37页
GA流程
第4页/共37页
遗传算法基本原理
1、基本思想
模拟自然界优胜劣汰的进化现象,把搜索空间映射为 遗传空间,把可能的解编码成一个向量——染色体,向量的 每个元素称为基因。 通过不断计算各染色体的适应值,选 择最好的染色体,获得最优解。
2、遗传算法的基本运算
⑴ 选择运算 ⑵ 交换操作 ⑶ 变异
④交换率: Pc 一般为60~100%. ⑤变异率: Pm 一般为0.1~10%
第12页/共37页
实例
1、产生初始种群
0001100000 0101111001 0000000101 1001110100 1010101010
(8)
(5)
(2)
(10)
(7)
1110010110 1001011011 1100000001 1001110100 000101001
第17页/共37页
5、变异
000101010010100 11111101001101101101 111100000000010001 11000011111100110000 1100110011001100110 11111010011000101000 11000010001110011110 11100001010100000011 11100001010100010010 00000011001100010011
论文遗传算法的研究和改进

遗传算法的研究和改进遗传算法是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法,其应用优势在于处理传统搜索方法难以解决的复杂和非线性问题,本论文研究内容包括:小生境遗传算法的改进、自适应遗传算子的设计、免疫的进化算法。
本文主要工作如下:(1)遗传算法的起源、其基本概念以及研究概况;(2)遗传算法的基本理论.主要介绍了模式定理、积木块假说、内在并行性、Walsh模式变换、欺骗问题等;(3)基本遗传算法.主要介绍了编码、适应度函数、遗传操作等.(4)遗传算法的改进.主要介绍了分层遗传算法、CHC算法、messy遗传算法、自适应遗传算法、基于小生境技术的遗传算法、混合遗传算法等几种遗传算法的改进.(5)遗传算法的应用.关键词:遗传算法;进化计算;进化规划;进化策略;遗传操作;适应度函数;Walsh函数ABSTRACTGenetic algorithm is a kind of random searching method using lives’ natural selection and genetic mechanism. Its application predominance lies in complicated and non-linear problems, which are difficult for traditional searching methods. Three improved algorithms are proposed in the dissertation: improved niche genetic algorithm, improved adaptive genetic algorithm, genetic algorithm based on immune mechanism. They are summarized as following:Firstly, the dissertation analyses characters of several traditional genetic algorithms for niche. Following this, a new method, combined parallelism evolution technique for niches based on local competition with parent mutation mechanism, is proposed which improved the genetic algorithms for niche. Compared with genetic algorithm with sharing, it has some improvements in both converging velocity and precision.Secondly, analyzing the inadequacies of the evaluation indices for premature convergence, a novel improved adaptive genetic algorithm (IAGA) is described. The calculation result of an example shows that IAGA is able to get the real-time information of population diversity during the process of evolution.Finally, applying the immune mechanism to genetic algorithm, the immune genetic algorithm expatiated on this paper comes over the phenomenon of premature in some extent. The result of experiment shows that the global convergence and searching velocity are both improved.Keyword: genetic algorithms, evolution strategy, Walsh function第一章 绪论§1.1 引言遗传算法(Genetic Algorithm ——GA ),是一类以达尔文的自然进化论与遗传变异理论为基础的求解复杂全局优化问题的仿生型算法[1]。
遗传算法调试及改进策略

遗传算法调试及改进策略遗传算法是一种基于生物进化理论的搜索算法,能够在解决各种优化问题上取得不错的效果。
但是在实际应用中,遗传算法的调试和改进策略也十分重要,本文就此展开讨论。
一、遗传算法的调试策略1、选择算子的调试选择算子是遗传算法中最重要的一步,其作用是筛选出适应度高的个体并进行后代产生。
调试选择算子时,需要注意以下几点:(1)选择算子应具有“竞争性”,即适应度高的个体应该有更大概率被选中,同时不适应度高的个体也有一定的被选中概率,以保证算法具有全局搜索能力。
(2)选择算子应具有一定的随机性,避免算法陷入局部最优解。
(3)选择算子应该能够处理不同类型的编码方式,如二进制编码、实数编码等。
2、交叉算子的调试交叉算子是遗传算法中产生后代的重要步骤,其作用是将两个个体的染色体进行交叉,从而产生新的后代个体。
调试交叉算子时,需要注意以下几点:(1)交叉算子应该具有“多样性”,即不同类型的交叉方式应该有一定的概率被选中,以保证算法的全局搜索能力。
(2)交叉算子应该能够处理不同类型的编码方式,如二进制编码、实数编码等。
(3)交叉算子的位置和长度应该有一定的随机性,以保证算法不会陷入局部最优解。
3、变异算子的调试变异算子是遗传算法中保持种群多样性的重要步骤,其作用是对个体的染色体进行随机变异,从而产生新的后代个体。
调试变异算子时,需要注意以下几点:(1)变异算子应该具有一定的“可控性”,即变异概率应该适当,过高或过低都会影响算法的性能。
(2)变异算子应该能够处理不同类型的编码方式,如二进制编码、实数编码等。
(3)变异算子的位置和长度应该有一定的随机性,以保证算法不会陷入局部最优解。
二、遗传算法的改进策略1、自适应参数调整在遗传算法中,参数的选择对算法的性能至关重要,如种群大小、交叉概率、变异概率等。
为了更好地平衡全局搜索和局部搜索之间的关系,可以采用自适应参数调整策略,根据算法的实际运行情况,动态地调整参数值。
改进遗传算法

5.停止准则
在基本的遗传算法中,一般采用最大迭代次数作为算法的 停止准则,此方法不太准确,因为可能在在最大的迭代次数 之前算法已经收敛,也可能在最大迭代次数时还没收敛,因 此采用另外一种停止准则,即根据种群的收敛程度,种群适 应值得一致性来判断是否算法停止。在算法的执行过程中保 留历史上最好的个体,观察指标
F Fmax
其中,F 为种群中所以个体适应值得平均值,Fmax 为所以个
体适应值得最大值,当上述指标趋近于1时,说明种群收 敛,此时算法停止。
谢谢
的是:循环交叉是用来解决指派这一类的问题的
2.变异修复策略
简单的二进制变异时候只需要把0变成1,1变成0, 而顺序编码的变异策略不能这样进行,一般由下面两种策略: ➢ 换位变异
➢ 换位变异是随机在染色体上选则两个基因,交换它们 的基因值
➢ 移位变异 ➢ 移位变异是任意选则一个基因,将其移到最前面。
的后期,希望选择压力较大,所以 k 取值较小,使不同个
体间的选择概率相差变大,种群将很快达到收敛,从而解决 了在最优解附近收敛较慢的问题。
➢ 幂律标定
幂律标定是采用如下的构造方式
F fα
其中,α是用来调节选择压力的,α >1时,选择压力加大, α<1时,选择压力减小,此标定比较费时,要针对不同问 题使用。
2.不合法编码的修复
对于普通的二进制编码,通常的交叉和变异不会改变 编码的合法性,但是对于顺序编码、实数编码,会造成编码 的不合法或者超出可行域,因此必须对不合法的编码进行处 理,通常的处理手段为拒绝或者修复。下面介绍修复的方法。
➢ 顺序编码的合法性修复 ➢ 实数编码的合法性修复
1. 顺序编码的修复
f1=1010,f2=1008,f3=1002,f4=1005,f5=1015
遗传算法的使用方法和技巧指南

遗传算法的使用方法和技巧指南遗传算法是一种启发式优化算法,它模拟了自然界中的生物进化过程来解决问题。
它具有强大的搜索能力和全局优化能力,在各个领域都有广泛的应用。
本文将介绍遗传算法的基本原理、使用方法以及一些重要的技巧指南。
一、遗传算法的基本原理遗传算法基于生物进化的思想,通过模拟人工选择、交叉和变异等过程来生成和更新解的种群,并利用适应度函数对种群进行评估和选择,以期望通过迭代的方式找到最优解。
遗传算法的基本流程如下:1. 初始化种群:随机生成一组个体作为初始种群。
2. 适应度评估:根据问题的特定要求,计算每个个体的适应度值。
3. 选择操作:利用适应度值选择父代个体进行繁殖,常用的选择算法有轮盘赌选择和竞争选择等。
4. 交叉操作:通过交叉运算生成新的后代个体,交叉操作能够保留父代的有益特征。
5. 变异操作:对交叉后的个体进行基因的随机变异,增加种群的多样性。
6. 替换操作:根据一定的规则,用新生成的后代个体替换原始种群中的一部分个体。
7. 终止条件判断:根据迭代次数或者达到某个预定义的解的条件,判断是否终止迭代。
8. 返回最优解。
二、遗传算法的使用方法为了正确有效地使用遗传算法,我们需要遵循以下几个步骤:1. 理解问题:首先,要准确理解问题的特性和要求,包括确定问题的目标函数、约束条件等。
只有对问题有清晰的认识,才能设计合适的遗传算法。
2. 设计编码方案:将问题的解表示为染色体的编码方案,更好的编码方案可以减少解空间的搜索范围。
常用的编码方式有二进制、浮点数、整数等。
3. 确定适应度函数:根据问题的特点,设计合适的适应度函数用于度量个体的优劣。
适应度函数应能够将问题的目标转化为一个数值,使得数值越大越好或者越小越好。
4. 选择操作:选择操作决定了如何根据适应度值选择父代个体。
常用的选择算法有轮盘赌选择、竞争选择、排名选择等。
轮盘赌选择是普遍应用的一种方法,根据个体的适应度值按比例选择。
5. 交叉操作:交叉操作决定了如何生成新的后代个体。
遗传算法在优化问题求解中的改进策略分析

遗传算法在优化问题求解中的改进策略分析引言:遗传算法是一种基于自然选择和遗传机制而产生的优化算法。
它主要通过模拟生物进化过程中的遗传、交叉和变异等基本操作,来搜索问题的最优解。
然而,由于遗传算法在求解过程中存在一些局限性和不足,研究学者们提出了一些改进策略,以提高算法的收敛速度和求解精度。
本文将分析遗传算法在优化问题求解中的常见改进策略,并探讨其优点和不足。
一、精英保留策略精英保留策略是指在遗传算法的演化过程中保留上一代中的最优个体,不参与遗传操作,而直接复制到下一代中。
这种策略可以有效地防止优良基因的丢失,保持种群的多样性,并提高算法的收敛速度和求解精度。
通过精英保留策略,可以保证种群中至少有一个较优个体,从而减少了搜索空间的范围,加快了算法的收敛速度。
然而,精英保留策略也存在一些问题。
例如,当优秀个体较少时,精英保留策略可能导致种群陷入局部最优解而无法跳出。
此外,过多的精英保留也会增加算法的计算复杂度和存储空间。
二、种群多样性维持策略种群多样性维持策略是指通过一些手段来维持种群的多样性,避免早熟收敛和局部最优问题。
常见的策略包括杂交距离控制、变异概率控制、群体大小控制等。
杂交距离控制是通过设置杂交概率,限制执行杂交操作的个体之间的距离,防止过早收敛和进化陷入局部最优解。
变异概率控制是通过设定合适的变异概率,引入随机性来保持种群的多样性,并提高全局搜索能力。
群体大小控制是指根据优化问题的规模和复杂度来调整种群的大小,过小会导致缺乏多样性,过大则会浪费计算资源。
种群多样性维持策略的优点在于能够提高算法的全局搜索能力,避免算法过早陷入局部最优解。
然而,该策略也会增加计算复杂度和耗费存储空间。
三、自适应参数调节策略自适应参数调节策略是指根据算法的演化过程,动态调整算法中的参数,以提高算法的性能。
常见的自适应参数调节策略包括自适应变异概率、自适应杂交概率等。
自适应变异概率是根据种群的适应度情况动态调整变异概率的大小。
如何解决遗传算法中的跳出局部最优的问题

如何解决遗传算法中的跳出局部最优的问题遗传算法是一种基于进化论的优化算法,它通过模拟生物进化的过程来寻找最优解。
然而,在应用遗传算法解决实际问题时,常常会遇到一个困扰人的问题,即跳出局部最优。
本文将探讨如何解决遗传算法中的这一问题。
一、了解局部最优的特点在解决跳出局部最优的问题前,我们首先需要了解局部最优的特点。
局部最优是指在搜索空间中找到一个局部的最优解,但并不一定是全局最优解。
遗传算法的搜索过程是基于种群的,而种群中的个体往往会陷入局部最优。
这是因为在进化过程中,个体的基因组合可能会受到某些限制,导致无法跳出局部最优。
二、多样性维持策略为了解决跳出局部最优的问题,我们可以采取多样性维持策略。
多样性维持策略的核心思想是增加种群的多样性,使得种群能够更好地探索搜索空间。
具体的策略包括:1. 交叉操作的选择:在遗传算法中,交叉操作是生成新个体的重要步骤。
为了增加多样性,我们可以采用不同的交叉操作,如单点交叉、多点交叉、均匀交叉等。
通过不同的交叉操作,可以引入更多的基因组合,增加种群的多样性。
2. 变异操作的设置:变异操作是在个体基因组中引入随机变化的操作。
为了增加多样性,我们可以提高变异操作的概率或者增加变异的幅度。
通过增加变异操作的强度,可以使得个体更容易跳出局部最优。
3. 选择操作的改进:选择操作是根据适应度函数选择优秀个体的过程。
为了增加多样性,我们可以引入一些选择操作的改进策略。
例如,可以采用轮盘赌选择算法,使得适应度较低的个体有一定的机会被选择,从而增加种群的多样性。
三、种群规模的调整种群规模是指种群中个体的数量。
在遗传算法中,种群规模的设置对算法的性能有着重要的影响。
如果种群规模过小,那么种群的多样性会很低,个体很容易陷入局部最优。
相反,如果种群规模过大,那么算法的计算复杂度会增加,效率会降低。
因此,我们需要合理地调整种群规模,以平衡多样性和计算效率。
四、适应度函数的设计适应度函数是衡量个体优劣的标准。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
newpop(i,mpoint)=1;
else
newpop(i,mpoint)=0;
end
else
newpop(i,:)=pop(i,:);
end
end
7模拟退火算法
function[BestX,BestY]=SimulateAnnealing1
clear;
3)变异算子:变异也是产生新个体的一种方法,对于遗传算法中二进制编码符号串所表示的个体,若需要进行变异操作的某一基因座上的原有基因值为0,则变异操作将基因值变为1,反之,若原有的基因值为1,则变异操作将其变为0。
三、程序流程
对于一个需要进行优化的实际问题,一般可按下述步骤构造遗传算法:
第一步:确定决策变量及各种约束条件,即确定出个体的表现型X和问题的解空间;
第二步:建立优化模型,即确定出目标函数的类型及数学描述形式或量化方法;
第三步:确定表示可行解的染色体编码方法,即确定出个体的基因型x及遗传算法的搜索空间;
第四步:确定解码方法,即确定出由个体基因型x到个体表现型X的对应关系或转换方法;
第五步:确定个体适应度的量化评价方法,即确定出由目标函数值到个体适应度的转换规则;
temp=Cmin+objvalue(i);
else
temp=0.0;
end
fitvalue(i)=temp;
end
%display(fitvalue);
fitvalue=fitvalue'; %将行向量转化为列向量
4选择复制函数
%%%选择复制%%%%%
functionnewpop=selection(pop,fitvalue)
totalfit=sum(fitvalue); %求所有适应度之和
fitvalue=fitvalue/totalfit%单个个体被选择的概率
fitvalue=cumsum(fitvalue) %累计概率
[px,py]=size(pop);
ms=sort(rand(px,1))
fitin=1;
newin=1;
图10模拟推过算法实现过程
相关参数选择为:
初始温度Temperature=30
步长因子StepFactor=0.002
容差Tolerance=1e-7
马可夫链长度MarkovLength=1000
衰减参数DecayScale=0.95
程序运行结果为(程序见附录):
最优点函数取值
寻优过程如下:
图11模拟退火算法的寻优过程
clc;
%要求最优值的目标函数,搜索的最大区间
XMAX=4;
优化算法大作业
一、题目
本文利用遗传算法,依次完成下面三个目标函数的寻优:
1Generalized Rosen brock’s valley Function
2GeneralizedRastrigin'sFunction
3Schaffer’s Function
二、本文思路
遗传算法是模拟生物在自然环境下的遗传和进化过程而形成的一种自适应全局优化概率搜索方法,本文利用遗传算法分别对上述三种函数进行全局寻优,具体思路如下:
从上面的寻优结果可以看出,模拟退火算法解决了本例中遗传算法寻优陷入局部最优解的问题,最终找到了Schaffer Function函数的全局唯一最优解 。
问题二:寻优速度
基本的遗传算法中产生优良个体的主要手段是同过交叉重组,但这样并不能保证产生新个体的速度,即迭代寻优的速度很慢,考虑到为了保证较高的精度,本文的基因编码分别是十位、十二位与十三位,那么对于二元函数,染色体的长度就是二十、二十四与二十六,因此可以在交叉重组时,将较长的染色体分为若干段,并对每一小段进行两两配对交叉重组,这样相当于每个染色体在一次的迭代过程中参与了几次交叉重组,大大加快了新个体的产生速度。本文即将染色体分为了两段,进行交叉重组(程序见附录),加快了寻优速度。
第三题变量的取值范围是[-4,4],本文采取的是十三位数的编码,那么精度为:
2)解码:假设某一个个体的编码是 ,那么对应的解码公式为:
2.个体适应度评价
1)当优化目标是求函数最大值,并且目标函数总取正值时,可以直接设定个体的适应度F(X)就等于相应的目标函数值f(X),即:
其中 是函数最小值估计。
2)对于求目标函数最小值的优化问题,理论上只需简单地对其增加一个负号就可将其转化为求目标函数最大值的优化问题,即
图9改进后的遗传算法寻优过程
图6中的最终种群进化到了函数一圈“脊”上,但是这只是函数的局部最优点,而从图9可以清楚地看到,种群进化到最后都集中在了中心凸起点的附近,这也是函数的最大值点,可见改进后的遗传算法有效的解决了局部最优点的问题,顺利找到了函数的全局最优解。
解决方法2:模拟退火算法
模拟退火算法是模仿了自然界退火现象,利用了物理中固体物质的退火过程与一般问题的相似性,从某一初始温度开始,伴随着温度的不断下降,结合概率突跳特性在解空间中随机寻找全局最优解,它能有效的克服寻优陷入局部最小值的优化方法。其具体算法原理本文不详述,只给出采用模拟退火算法的实现过程如下图所示:
五、问题的发现与改进
1.问题一:局部最优解
从第三题的函数图像中可以看出,该函数有无限多个局部极大值点,只有一个全局最优点 ,此函数最导致峰周围有一圈脊,上面的取值均为0.990283。从上面的优化过程可以看出,当随机选定初始种群后,随着迭代次数的增加,种群最终都集中在了这一圈脊上,也就是寻优过程陷入了局部最优点,并没有找到函数的的最优点。对于遗传算法中的上述问题,我们采用的解决方案如下。
解决方法1:等值线法
初始种群的选取对函数能不能找到最优点有着重要的影响,本文通过分析函数的等值线缩小初始种群的随机产生范围,从而让种群朝着全局最优点进化。在Matlab下画出函数的等值线如下图:
图8目标函数的等值线图
从图中可以看出,以中心最优点为圆心,围绕着中心点分布着多条等值线,从中心的红色区域向外到蓝色区域,目标函数值先减小再增加最后又减小,所以本文以中间红色区域到蓝色区域中选取合适的等值线截面,并在该面上随机产生初始种群,这样可以有效防止迭代陷入局部最优解。改进后的寻优结果:
y(i)=decodechrom(bestindividual,(chromlength/2+1),chromlength/2)*8/8191-4
pop=newpop;
end
figure(1);
i=1:1:200;
holdon;
plot(i,avefitvalue)
plot(i,z)
xlabel('迭代次数');
其中 是函数的最大值估计。
3.复制、交叉、变异
1)比例算子:个体被选中并遗传到下一代的概率与个体的适应度成正比,本文采取的的赌轮盘选择法选,该方法较容易实现,易于编程。
2)交叉算子:交叉是遗传算法产生新个体的主要手段,通过交叉子代的基因值不同于父代,从而可以出现适应度更高的个体,本文采用的是单点交叉算子。
functionnewpop=mutation(pop,pm)
[px,py]=size(pop);
newpop=ones(size(pop));
fori=1:px
if(rand<pm)
mpoint=round(rand*py);
ifmpoint<=0
mpoint=1;
end
newpop(i,:)=pop(i,:);
ylabel('函数值');
legend('种群平均适应度','种群最大适应度');
figure(2);
plot3(x,y,z,'r+')
holdon
x1=-4:0.1:4;
x2=-4:0.1:4;
[xx,yy]=meshgrid(x1,x2);
z1=xx.^2+yy.^2;
z=0.5-((sin(sqrt(z1)).^2-0.5)./(1+0.001*(z1)).^2);
mesh(xx,yy,z)
gridon;
2种群初始化函数
%%%%%%%%%初始化%%%%%%%%%%%%
functionpop=initpop(popsize,chromlength)
pop=round(rand(popsize,chromlength));
3计算个体适应度函数
%%%计算个体的适应度
[px,py]=size(pop);
pop1=ones(px,py);
pop2=pop;
fori=1:2:px-1
if(rand<pc)
cpoint=round(rand*(py-1)) %cpoint为交叉点
pop1(i,:)=[pop2(i,1:cpoint) pop2(i+1,cpoint+1:py)]
1.编码与解码
1)编码:假设某一参数的取值范围是[umin,umax],我们用长度为l的二进制编码符号串来表示该参数,则它总共能够产生2l种不同的编码,编码的长度越长,对应的精度越高。
第一题变量的取值范围是[-2.048,2.048],本文采取十位数的编码,那么精度为:
第二题变量的取值范围是[-5.12,5.12],本文采取的是十二位数的编码,那么精度为:
第六步:设计遗传算子,即确定选择运算、交叉运算、变异运算等遗传算子的具体操作方法。
第七步:确定遗传算法的有关运行参数,即M,G,Pc,Pm等参数。
具体程序流程图见下图所示:
图1遗传算法流程图
四、优化过程
1.第一题
图2Rosen brock函数图像
图3遗传算法迭代寻优过程