计算智能与深度学习 课件 4遗传算法-2_第1页
计算智能与深度学习 课件 4遗传算法-2_第2页
计算智能与深度学习 课件 4遗传算法-2_第3页
计算智能与深度学习 课件 4遗传算法-2_第4页
计算智能与深度学习 课件 4遗传算法-2_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章遗传算法(续)

4.1遗传算法简介

4.1.1遗传算法的产生与发展

4.1.2生物进化理论和遗传学的基本知识

4.1.3遗传算法的思路与特点

4.1.4遗传算法的基本操作

4.1.5遗传算法的应用4.2基本遗传算法

4.2.1简单函数优化的实例

4.2.2遗传基因型

4.2.3适应度函数及其尺度变换

4.2.4遗传操作——选择

4.2.5遗传操作——交叉/基因重组

4.2.6遗传操作——变异

4.2.7算法的设计与实现

4.2.8模式定理4.3遗传算法的改进

4.3.1CHC算法

4.3.2自适应遗传算法

4.3.3基于小生境技术的遗传算法4.4遗传算法的应用

4.4.1解决带约束的函数优化问题

4.4.2解决多目标优化问题

4.4.3解决组合优化问题

4.4.4遗传算法在过程建模中的应用

4.4.5遗传算法在模式识别中的应用4.2基本遗传算法

问题的提出一元函数求最大值:4.2.1简单函数优化的实例

4.2基本遗传算法

问题的提出用微分法求取f(x)的最大值:解有无穷多个:4.2.1简单函数优化的实例

4.2基本遗传算法

问题的提出当i为奇数时xi对应局部极大值点,i为偶数时xi对应局部极小值。x19即为区间[-1,2]内的最大值点:此时,函数最大值f(x19)比f(1.85)=3.85稍大。4.2.1简单函数优化的实例

4.2基本遗传算法

编码表现型:x

基因型:二进制编码(串长取决于求解精度)

串长与精度之间的关系:若要求求解精度到6位小数,区间长度为2-(-1)=3,即需将区间分为3/0.000001=3×106等份。所以编码的二进制串长应为22位。4.2.1简单函数优化的实例

4.2基本遗传算法

产生初始种群产生的方式:随机产生的结果:长度为22的二进制串产生的数量:种群的大小(规模),如30,50,…111101001110000101100011001100111010101011101010100011110010000100101111001001110011100100011001010011000000110000011010010000000000……4.2.1简单函数优化的实例

4.2基本遗传算法

计算适应度不同的问题有不同的适应度计算方法本例:直接用目标函数作为适应度函数①将某个体转化为[-1,2]区间的实数:

s=<1000101110110101000111>→x=0.637197②计算x的函数值(适应度):

f(x)=xsin(10πx)+2.0=2.5863454.2.1简单函数优化的实例

4.2基本遗传算法

计算适应度

二进制与十进制之间的转换:第一步,将一个二进制串(b21b20…b0)转化为10进制数:第二步,x’对应的区间[-1,2]内的实数:4.2.1简单函数优化的实例

(0000000000000000000000)→-1(1111111111111111111111)→24.2基本遗传算法

遗传操作选择:轮盘赌选择法;交叉:单点交叉;变异:小概率变异4.2.1简单函数优化的实例

4.2基本遗传算法

模拟结果

设置的参数:种群大小50;交叉概率0.75;变异概率0.05;最大代数200。

得到的最佳个体:

smax=<1111001100111011111100>;xmax=1.8506;f(xmax)=3.8503;4.2.1简单函数优化的实例

4.2基本遗传算法

模拟结果

进化的过程:4.2.1简单函数优化的实例

世代数自变量适应度11.44953.449491.83953.7412171.85123.8499301.85053.8503501.85063.8503801.85063.85031201.85063.85032001.85063.85034.2基本遗传算法

编码原则完备性(completeness):问题空间的所有解都能表示为所设计的基因型;健全性(soundness):任何一个基因型都对应于一个可能解;非冗余性(non-redundancy):问题空间和表达空间一一对应。4.2.2遗传基因型

4.2基本遗传算法

多种编码方式二进制编码;浮点数编码;格雷码编码;符号编码;复数编码;DNA编码等。4.2.2遗传基因型

4.2基本遗传算法

二进制编码与浮点数编码的比较在交叉操作时,二进制编码比浮点数编码产生新个体的可能性多,而且产生的新个体不受父个体所构成的超体的限制;在变异操作时,二进制编码的种群稳定性比浮点数编码差。4.2.2遗传基因型

4.2基本遗传算法

适应度函数的重要性适应度函数的选取直接影响遗传算法的收敛速度以及能否找到最优解。一般而言,适应度函数是由目标函数变换而成的,对目标函数值域的某种映射变换称为适应度的尺度变换(fitnessscaling)。4.2.3适应度函数及其尺度变换

4.2基本遗传算法

几种常见的适应度函数直接转换若目标函数为最大化问题:Fit(f(x))=f(x)

若目标函数为最小化问题:Fit(f(x))=-f(x)4.2.3适应度函数及其尺度变换

4.2基本遗传算法

几种常见的适应度函数界限构造法1

若目标函数为最大化问题:若目标函数为最小化问题:4.2.3适应度函数及其尺度变换

4.2基本遗传算法

几种常见的适应度函数界限构造法2

若目标函数为最大化问题:若目标函数为最小化问题:

c为目标函数的保守估计值。4.2.3适应度函数及其尺度变换

4.2基本遗传算法

适应度函数的作用适应度函数设计不当有可能出现欺骗问题:(1)进化初期,个别超常个体控制选择过程;(2)进化末期,个体差异太小导致陷入局部极值。4.2.3适应度函数及其尺度变换

4.2基本遗传算法

适应度函数的设计单值、连续、非负、最大化合理、一致性计算量小通用性强4.2.3适应度函数及其尺度变换

4.2基本遗传算法

适应度函数的线性变换法

f’=α*f+β

系数的确定满足以下条件:①f’avg=favg②f’max=cmultf’avg

cmult=1.0~2.04.2.3适应度函数及其尺度变换

4.2基本遗传算法

适应度函数的幂函数变换法

f’=fk

k与所求优化相关4.2.3适应度函数及其尺度变换

k4.2基本遗传算法

适应度函数的指数变换法

f’=e-af

a决定了复制的强制性,其值越小,复制的强制性就越趋向于那些具有最大适应性的个体。4.2.3适应度函数及其尺度变换

α4.2基本遗传算法

几个概念选择压力(selectionpressure):最佳个体选中的概率与平均个体选中概率的比值;偏差(bias):个体正规化适应度与其期望再生概率的绝对差值;个体扩展(spread):单个个体子代个数的范围;多样化损失(lossofdiversity):在选择阶段未选中个体数目占种群的比例;4.2.4遗传操作——选择

4.2基本遗传算法

几个概念选择强度(selectionintensity):将正规高斯分布应用于选择方法,期望平均适应度;选择方差(selectionvariance):将正规高斯分布应用于选择方法,期望种群适应度的方差。4.2.4遗传操作——选择

4.2基本遗传算法

个体选择概率的常用分配方法按比例的适应度分配(proportionalfitnessassignment)某个体i,其适应度为fi,则其被选取的概率Pi为:4.2.4遗传操作——选择

个体ff2P12.56.250.1821.01.000.0333.09.000.2641.21.440.0452.14.410.1360.80.640.0272.56.250.1881.31.690.0590.90.810.02101.83.240.094.2基本遗传算法

个体选择概率的常用分配方法基于排序的适应度分配(rank-basedfitnessassignment)线性排序(byBaker)

μ为种群大小,i为个体序号,ηmax代表选择压力。4.2.4遗传操作——选择

4.2基本遗传算法

个体选择概率的常用分配方法基于排序的适应度分配(rank-basedfitnessassignment)非线性排序(byMichalewicz)

i为个体序号,c为排序第一的个体的选择概率。4.2.4遗传操作——选择

4.2基本遗传算法

常用选择方法轮盘赌选择法(roulettewheelselection)

4.2.4遗传操作——选择

个体1234567891011适应度2.01.81.61.41.21.00.80.60.40.20.1选择概率0.180.160.150.130.110.090.070.060.030.020.0累计概率0.180.340.490.620.730.820.890.950.981.001.004.2基本遗传算法

常用选择方法随机遍历抽样法(stochasticuniversalsampling)

4.2.4遗传操作——选择

个体1234567891011适应度2.01.81.61.41.21.00.80.60.40.20.1选择概率0.180.160.150.130.110.090.070.060.030.020.0累计概率0.180.340.490.620.730.820.890.950.981.001.00设定n为需要选择的个体数目,等距离选择个体,选择指针的距离为1/n。第一个指针的位置由[0,l/n]区间的均匀随机数决定。如图所示,需要选择6个个体,指针间的距离为l/6=o.167,第一个指针的随机位置为0.1,按这种选择方法被选中作为交配集个体为:1.2,3.4,6,8。

4.2基本遗传算法

常用选择方法局部选择法(localselection)

(1)线形邻集4.2.4遗传操作——选择

在局部选择法中,每个个体处于一个约束环境中,称为局部邻域(而其他选择方法中视整个种群为个体之邻域),个体仅与其邻近个体产生交互,该邻域的定义由种群的分布结构给出。邻域可被当作潜在的交配伙伴。首先均匀随机地选择一半交配种群,选择方法可以是随机遍历方法也可以是截断选择方法,然后对每个被选个体定义其局部邻域,在邻域内部选择交配伙伴。4.2基本遗传算法

常用选择方法局部选择法(localselection)

(2)两对角邻集4.2.4遗传操作——选择

4.2基本遗传算法

常用选择方法局部选择法(localselection)

(2)两对角邻集4.2.4遗传操作——选择

4.2基本遗传算法

常用选择方法截断选择法(truncationselection)个体按适应度排列,只有优秀个体能够称为父个体,参数为截断阀值(被选作父个体的百分比)。4.2.4遗传操作——选择

截断阀值1%10%20%40%50%80%选择强度2.661.761.20.970.80.344.2基本遗传算法

常用选择方法锦标赛选择法(tournamentselection)随机从种群中挑选一定数目个体,其中最好的个体作为父个体,此过程重复进行完成个体的选择。4.2.4遗传操作——选择

竞赛规模12351030选择强度00.560.851.151.532.044.2基本遗传算法

实值重组离散重组子个体的每个变量可以按等概率随机地挑选父个体。4.2.5遗传操作——交叉/基因重组

父个体112

25

5父个体2123

4

34子个体1123

4

5子个体212

4

344.2基本遗传算法

实值重组中间重组子个体=父个体1+α×(父个体2-父个体1)

α是比例因子,由[-d,1+d]上均匀分布地随机数产生。

d=0时为中间重组,一般取d=0.25。子代的每个变量均产生一个α

。4.2.5遗传操作——交叉/基因重组

4.2基本遗传算法

实值重组中间重组

4.2.5遗传操作——交叉/基因重组

父个体112255父个体2123434子个体1子个体2α值样本10.51.1-0.1α值样本20.10.80.512+0.5×(123-12)=67.567.525+1.1×(4-25)=1.91.92.112+0.1×(123-12)=23.123.18.219.54.2基本遗传算法

实值重组中间重组

4.2.5遗传操作——交叉/基因重组

4.2基本遗传算法

实值重组线性重组

4.2.5遗传操作——交叉/基因重组

父个体112255父个体2123434子个体1子个体2α值样本10.5α值样本20.112+0.5×(123-12)=67.567.525+0.5×(4-25)=14.514.519.512+0.1×(123-12)=23.123.122.97.94.2基本遗传算法

实值重组线性重组

4.2.5遗传操作——交叉/基因重组

4.2基本遗传算法

二进制交叉单点交叉

4.2.5遗传操作——交叉/基因重组

4.2基本遗传算法

二进制交叉多点交叉

4.2.5遗传操作——交叉/基因重组

4.2基本遗传算法

二进制交叉均匀交叉

4.2.5遗传操作——交叉/基因重组

父个体101110011010

父个体210101100101子个体11

11

011

11

1

1

1子个体20

01

100

00

0

0

0

样本101100011010样本2100111001014.2基本遗传算法

实值变异一般采用:二进制变异

4.2.6遗传操作——变异

4.2基本遗传算法

主程序

4.2.7算法的设计与实现

%用遗传算法进行简单函数的优化clearbn=22;%个体串长度inn=50;%初始种群大小gnmax=200;%最大代数pc=0.75;%交叉概率pm=0.05;%变异概率Continue…4.2基本遗传算法

主程序

4.2.7算法的设计与实现

%产生初始种群,0,1向量s=round(rand(inn,bn));%计算适应度,返回适应度f和累积概率p[f,p]=objf(s);Continue…4.2基本遗传算法

主程序

4.2.7算法的设计与实现

gn=1;whilegn<gnmax+1forj=1:2:inn%选择操作seln=sel(s,p);%交叉操作scro=cro(s,seln,pc);scnew(j,:)=scro(1,:);scnew(j+1,:)=scro(2,:);%变异操作smnew(j,:)=mut(scnew(j,:),pm);smnew(j+1,:)=mut(scnew(j+1,:),pm);endContinue…4.2基本遗传算法

主程序

4.2.7算法的设计与实现

s=smnew;%产生了新的种群%计算新种群的适应度[f,p]=objf(s);

%记录当前代最好和平均的适应度

[fmax,nmax]=max(f);fmean=mean(f);ymax(gn)=fmax;ymean(gn)=fmean;Continue…4.2基本遗传算法

主程序

4.2.7算法的设计与实现

%记录当前代的最佳个体x=n2to10(s(nmax,:));xx=-1.0+x*3/(power(2,bn)-1);xmax(gn)=xx;

gn=gn+1endgn=gn-1;Continue…4.2基本遗传算法

主程序

4.2.7算法的设计与实现

%绘制曲线subplot(2,1,1);plot(1:gn,[ymax;ymean]);title('历代适应度变化','fonts',10);legend('最大适应度','平均适应度');string1=['最终适应度',num2str(ymax(gn))];gtext(string1);subplot(2,1,2);plot(1:gn,xmax,'r-');legend('自变量');string2=['最终自变量',num2str(xmax(gn))];gtext(string2);End4.2基本遗传算法

计算适应度和累计概率函数

4.2.7算法的设计与实现

%计算适应度函数function[f,p]=objf(s);r=size(s);%读取种群大小inn=r(1);%有inn个个体bn=r(2);%个体长度为bnContinue…4.2基本遗传算法

计算适应度和累计概率函数

4.2.7算法的设计与实现

fori=1:innx=n2to10(s(i,:));%将二进制转换为十进制xx=-1.0+x*3/(power(2,bn)-1);%转化为[-1,2]区间的实数f(i)=ft(xx);%计算函数值,即适应度endf=f‘;%行向量转列向量Continue…4.2基本遗传算法

函数n2to10()

4.2.7算法的设计与实现

Continue…functionx=n2to10(s)x=0;forj=1:22x=x+s(j)*2^(22-j);end

functionx=n2to10(s)x=s(1);forj=1:21x=x*2+s(j+1);end4.2基本遗传算法

计算适应度和累计概率函数

4.2.7算法的设计与实现

%计算选择概率fsum=0;fori=1:innfsum=fsum+f(i)*f(i);endfori=1:innps(i)=f(i)*f(i)/fsum;endContinue…4.2基本遗传算法

计算适应度和累计概率函数

4.2.7算法的设计与实现

%计算累积概率p(1)=ps(1);fori=2:innp(i)=p(i-1)+ps(i);endp=p';Backtomain.m4.2基本遗传算法

计算目标函数值函数

4.2.7算法的设计与实现

%目标函数functiony=ft(x);y=x.*sin(10*pi*x)+2;Backtoobjf.m4.2基本遗传算法

选择操作函数

4.2.7算法的设计与实现

%“选择”操作functionseln=sel(s,p);inn=size(p,1);%从种群中选择两个个体fori=1:2r=rand;%产生一个随机数prand=p-r;j=1;whileprand(j)<0j=j+1;endseln(i)=j;%选中个体的序号endBacktomain.m4.2基本遗传算法

交叉操作函数

4.2.7算法的设计与实现

%“交叉”操作functionscro=cro(s,seln,pc);r=size(s);inn=r(1);bn=r(2);pcc=pro(pc);%根据交叉概率决定是否进行交叉操作,1则是,0则否Continue…4.2基本遗传算法

交叉操作函数

4.2.7算法的设计与实现

ifpcc==1chb=round(rand*(bn-2))+1;%在[1,bn-1]范围内随机产生一个交叉位scro(1,:)=[s(seln(1),1:chb)s(seln(2),chb+1:bn)];scro(2,:)=[s(seln(2),1:chb)s(seln(1),chb+1:bn)];elsescro(1,:)=s(seln(1),:);scro(2,:)=s(seln(2),:);endBacktomain.m4.2基本遗传算法

变异操作函数

4.2.7算法的设计与实现

%“变异”操作functionsnnew=mut(snew,pm);r=size(snew);bn=r(2);snnew=snew;Continue…4.2基本遗传算法

变异操作函数

4.2.7算法的设计与实现

pmm=pro(pm);%根据变异概率决定是否进行变异操作,1则是,0则否ifpmm==1chb=round(rand*(bn-1))+1;%在[1,bn]范围内随机产生一个变异位snnew(chb)=abs(snew(chb)-1);endBacktomain.m4.2基本遗传算法

运行程序

4.2.7算法的设计与实现

4.2基本遗传算法

运行程序

4.2.7算法的设计与实现

4.2基本遗传算法

运行程序

4.2.7算法的设计与实现

4.2基本遗传算法

运行程序

4.2.7算法的设计与实现

4.2基本遗传算法

模式将种群中的个体即基因串中的相似样板称为模式。在二进制编码的串中,模式是基于三个字符集(0,1,*)的字符串,符号*代表任意字符,即0或1。如模式*1*描述了一个四个元的子集{010,011,110,111}。4.2.8模式定理

4.2基本遗传算法

模式阶和定义距模式H中确定位置的个数称为模式H的模式阶,记作O(H),如O(011*1*)=4。模式阶用来反映不同模式间确定性的差异,模式阶越高,模式的确定性就越高,所匹配的样本个数就越少。4.2.8模式定理

4.2基本遗传算法

模式阶和定义距模式H中第一个确定位置和最后一个确定位置之间的距离称为模式的定义距,记作δ(H),如

δ(011*1**)=4。阶数相同的模式会有不同的性质,定义距就反映了这种性质的差异。4.2.8模式定理

4.2基本遗传算法

智能优化计算华东理工大学自动化系2007年模式定理(schematheorem)在给定时间步t,一个特定模式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论