智能控制理论及应用 课件 第11-13章 智能优化算法、综合应用_第1页
智能控制理论及应用 课件 第11-13章 智能优化算法、综合应用_第2页
智能控制理论及应用 课件 第11-13章 智能优化算法、综合应用_第3页
智能控制理论及应用 课件 第11-13章 智能优化算法、综合应用_第4页
智能控制理论及应用 课件 第11-13章 智能优化算法、综合应用_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

主要内容11.1遗传算法11.2粒子群优化算法11.1遗传算法11.1.1引言11.1.2基本概念11.1.3遗传算法的具体实现

11.1.4遗传算法的运算流程总结

第11章11.1遗传算法11.1.1引言自适应启发式搜索算法进化算法达尔文的进化论自然选择中的适者生存孟德尔遗传学理论适者生存基因遗传第11章11.1.1引言11.1.1引言遗传算法最早由美国的J.H.Holland教授及其学生于1975年提出直到90年代才流行起来。参考文献:Holland,J.H.(1992)GeneticAlgorithms.ScientificAmerican,267,66-73./10.1038/scientificamerican0792-66第11章11.1.1引言11.1.2基本概念●Population(种群):它是给定问题所有可能(编码)解决方案的一个子集。Individual(个体):种群中的一个解。第11章11.1.2基本概念11.1.2基本概念●Chromosomes(染色体):染色体是给定问题的这样一个解。Gene(基因):基因是染色体上的一个特定位置。第11章11.1.2基本概念11.1.2基本概念●Fitnessfunction(适应度函数)适应度即生物群体中个体适应生存环境的能力。在遗传算法中,用来评价个体优劣的数学函数,称为个体的适应度函数。第11章11.1.2基本概念●GeneticOperators(遗传操作)包含选择、交叉、变异三个主要的操作。第11章11.1.2基本概念11.1.2基本概念适应度比例选择:

p(xi):选择概率选择与复制对于一个包含N个个体的种群s,从s中随机选择N个染色体N次,每次选择的概率为每个染色体

xi∈s的选择概率p(xi)。第11章11.1.2基本概念交叉交换两个父代的部分基因

二进制编码交叉单点交叉两点交叉多点交叉均匀交叉

实数编码交叉第11章11.1.2基本概念交叉单点交叉

两点交叉第11章11.1.2基本概念交叉多点交叉均匀交叉第11章11.1.2基本概念变异染色体的随机变化。二进制变异:位翻转

单点变异

多点变异实值变异:用值域内的随机值替换原基因值(随机重置)第11章11.1.2基本概念变异二进制变异:位翻转

单点变异

多点变异第11章11.1.2基本概念使用遗传算法来求函数y=x2在区间[0,31]上的最大值。y=x2

31

XY11.1.3遗传算法的具体实现第11章11.1.3遗传算法的具体实现解:(1)初始化:确定种群大小:4编码:5位二进制随机生成初始种群:

s1=13(01101),s2=24(11000)s3=8(01000),s4=19(10011)

(2)定义适应度函数:f(x)=x2

第11章11.1.3遗传算法的具体实现解:(3)计算当前代的适应度值s1=13(01101),s2=24(11000)

s3=8(01000),s4=19(10011)它们的适应度值分别为

f(s1)=f(13)=132=169f(s2)=f(24)=242=576f(s3)=f(8)=82=64f(s4)=f(19)=192=361第11章11.1.3遗传算法的具体实现解:(4)执行遗传操作选择操作:计算每个个体的选择概率P(s1)=P(13)=0.14P(s2)=P(24)=0.49P(s3)=P(8)=0.06P(s4)=P(19)=0.31

f(s1)=f(13)=132=169f(s2)=f(24)=242=576f(s3)=f(8)=82=64f(s4)=f(19)=192=361第11章11.1.3遗传算法的具体实现s40.31s20.49s10.14s30.06●roulette-wheel

selection

algorithm赌轮选择法第11章11.1.3遗传算法的具体实现在[0,1]之间随机生成4个随机数,如:

r1=0.450126,r2=0.110347r3=0.572496,r4=0.98503染色体适应值选择概率累积概率选中次数s1=011011690.140.141s2=110005760.490.632s3=01000640.060.690s4=100113610.311.001第11章11.1.3遗传算法的具体实现因此,在选择之后,我们得到了以下种群:s1’=11000(24),s2’=01101(13)s3’=11000(24),s4’=10011(19)第11章11.1.3遗传算法的具体实现交叉假设

pc=100%让s1'和s2'成对,s3'和s4'成对。分别交换各自的最后两个基因以获得新的染色体:

s1’=11000(24),s2’=01101(13)s3’=11000(24),s4’=10011(19)s1’’=11001(25),s2’’=01100(12)s3’’=11011(27),s4’’=10000(16)第11章11.1.3遗传算法的具体实现变异设置变异概率

pm=0.001。

因此,在种群中只有0.02的基因可能会发生突变。

5×4×0.001=0.02显然0.02<1,因此,在这一轮的变异操作中没有变异发生。第11章11.1.3遗传算法的具体实现从而得到第二代种群S2

s1=11001(25),s2=01100(12)

s3=11011(27),s4=10000(16)第11章11.1.3遗传算法的具体实现第二代染色体适应值选择概率累积概率s1=110016250.360.36s2=011001440.080.44s3=110117290.410.85s4=100002560.151.00第11章11.1.3遗传算法的具体实现

假设在这一轮的选择-繁殖操作中,种群S2中的所有4个染色体都被选中s1’=11001(25),s2’=01100(12)

s3’=11011(27),s4’=10000(16)

交叉:

让s1'和s2',s3'和s4'分别交换它们各自最后三个基因s1’’=11100(28),s2’’=01001(9)

s3’’=11000(24),s4’’=10011(19)

在这轮中没有发生变异第11章11.1.3遗传算法的具体实现第三代种群S3被衍生出来。s1=11100(28),s2=01001(9)

s3=11000(24),s4=10011(19)

第11章11.1.3遗传算法的具体实现

第三代染色体适应值选择概率累积概率s1=111007840.440.44s2=01001810.040.48s3=110005760.320.80s4=100113610.201.00第11章11.1.3遗传算法的具体实现假设选择-繁殖后的种群是:

s1’=11100(28),s2’=11100(28)

s3’=11000(24),s4’=10011(19)交叉:

让s1'和s2’,s3'和s4'分别交换最后两个基因s1’’=11111(31),s2’’=11100(28)

s3’’=11000(24),s4’’=10000(16)

这轮没有发生变异第11章11.1.3遗传算法的具体实现因此,我们得到了第四代S4:

s1=11111(31),s2=11100(28)

s3=11000(24),s4=10000(16)

第11章11.1.3遗传算法的具体实现YYy=x2

8131924

X第一代y=x2

12162527

XY第二代y=x2

9192428

XY第三代y=x2

16242831

X第四代第11章11.1.3遗传算法的具体实现11.1.4

遗传算法的运算流程第11章11.1.4遗传算法的运算流程11.1.4

遗传算法的运算流程第11章11.1.4遗传算法的运算流程11.1.5仿真示例【例11.1】用遗传算法求下列函数的最大值。第11章11.1.5仿真示例MATLAB代码%初始化参数clearall;%清除所有变量closeall;%关闭图形clc;%清屏NP=50;%种群数量L=20;%二进制数串长度Pc=0.8;%交叉率Pm=0.1;%变异率G=50;%最大遗传代数Xs=10;%自变量的上限Xx=0;%自变量的下限f=randi([0,1],NP,L);%随机获得初始种群%%%%%%%%%%%%%%%%%%%%%%%%%遗传算法循环第11章11.1.5仿真示例MATLAB代码%%%%%%%%%%%%将二进制解码为定义域范围内十进制%%%%%%%%%%%%%%fori=1:NPU=f(i,:);m=0;forj=1:Lm=U(j)*2^(j-1)+m;endx(i)=Xx+m*(Xs-Xx)/(2^L-1);Fit(i)=func1(x(i));endmaxFit=max(Fit);%最大值

minFit=min(Fit);%最小值

rr=find(Fit==maxFit);fBest=f(rr(1,1),:);%历代最优个体

xBest=x(rr(1,1));Fit=(Fit-minFit)/(maxFit-minFit);%归一化适应度值第11章11.1.5仿真示例MATLAB代码Fit=(Fit-minFit)/(maxFit-minFit);%归一化适应度值

%%%%%%%%%%%%%%%%%%基于轮盘赌的选择操作%%%%%%%%%%%%%%%%%%%sum_Fit=sum(Fit);fitvalue=Fit./sum_Fit;fitvalue=cumsum(fitvalue);ms=sort(rand(NP,1));fiti=1;newi=1;whilenewi<=NPif(ms(newi))<fitvalue(fiti)nf(newi,:)=f(fiti,:);newi=newi+1;elsefiti=fiti+1;endend第11章11.1.5仿真示例MATLAB代码%%%%%%%%%%%%%%%%%%%%%%基于概率的交叉操作fori=1:2:NPp=rand;ifp<Pcq=randi([0,1],1,L);forj=1:Lifq(j)==1temp=nf(i+1,j);nf(i+1,j)=nf(i,j);nf(i,j)=temp;endendendend第11章11.1.5仿真示例MATLAB代码%%%%%%%%%%%%%%%%%%%基于概率的变异操作i=1;whilei<=round(NP*Pm)h=randi([1,NP],1,1);%随机选取一个需要变异的染色体

forj=1:round(L*Pm)g=randi([1,L],1,1);%随机需要变异的基因数

nf(h,g)=~nf(h,g);endi=i+1;endf=nf;f(1,:)=fBest;%保留最优个体在新种群中

trace(k)=maxFit;%历代最优适应度end第11章11.1.5仿真示例MATLAB代码xBest%最优个体figureplot(trace,'-*b')xlabel('迭代次数')ylabel('目标函数值')title('适应度进化曲线')%%%%%%%%%%%%%%%%%%%%%%%%%适应度函数%%%%%%%%%%%%%%%%%%%%%%%%%%%%functionresult=func1(x)fit=x+10*sin(5*x)+7*cos(4*x);result=fit;end第11章11.1.5仿真示例仿真结果第11章11.1.5仿真示例11.1.5仿真示例%%适应度函数functionresult=func1_2(x)fit=x+10*sin(5*x)+7*cos(4*x);result=1./(fit*fit);%求平方后再求倒数,把极大值问题转换成极小值问题。

%主程序代码如下:[x,fval]=ga(@func1_2,1,[],[],[],[],0,10)第11章11.1.5仿真示例调用Matlab的ga函数实现11.2粒子群优化主要内容11.2.1引言11.2.2基本粒子群优化算法11.2.3粒子群优化算法的实现流程11.2.4仿真示例11.2.1引言--PSO的起源1995年,由James

Kennedy和RussEberhart共同提出[Kennedy,J.andEberhart,R.(1995).“ParticleSwarmOptimization”,Proceedingsofthe1995IEEEInternationalConferenceonNeuralNetworks,pp.1942-1948,IEEEPress.](/~zxue/Evacuation_Research/Other_models/pso.pdf)受鸟群和鱼群社会行为的启发。它是一种基于群体的随机优化技术。第11章11.2.1引言第11章11.2.1引言11.2.1引言11.2.2基本粒子群优化算法每个寻优的问题解都被想像成一只鸟,我们也称为粒子。所有的粒子都有一个fitnessfunction以判断目前的位置之好坏。每个粒子有“速度”和“位置”两个属性。每一个粒子必须赋予记忆性,能记得所搜寻到的最佳位置。每一个粒子还有一个速度以决定飞行的距离与方向。第11章11.2.2基本粒子群优化算法11.2.2基本粒子群算法第11章11.2.2基本粒子群优化算法设在D维搜索空间中,有N个粒子:粒子的位置:粒子的速度:个体最优:全局最优:第11章11.2.2基本粒子群优化算法粒子的位置和速度更新公式如下:惯性部分认知部分社会部分第11章11.2.2基本粒子群优化算法参数说明:(1)惯性权重w线性递减动态惯性权重最大进化代数第11章11.2.2基本粒子群优化算法参数说明:(2)学习因子第11章11.2.2基本粒子群优化算法参数说明:(3)粒子最大速度第11章11.2.2基本粒子群优化算法参数说明:(4)边界条件处理第11章11.2.2基本粒子群优化算法参数说明:(5)粒子种群规模粒子种群大小的选择视具体问题而定,但是一般设置粒子数为20~50。对于大部分的问题,10个粒子已经可以取得很好的结果;不过对于比较难的问题或者特定类型的问题,粒子的数量可以取到100或200。另外,粒子数目越大,算法搜索的空间范围就越大,也就更容易发现全局最优解;当然,算法运行的时间也越长。PSO更新方程图示解读velocity:vid(t+1)=w*vid(t)+C1*rand()*[pid(t)-xid(t)(t)]+C2*rand()*[Pgd(t)-xid(t)(t)]v-速度

w-惯性权重

C-学习因子

pid-区域最佳解

Pgd-全域最佳解原来速度

vid过去自身经验同伴飞行经验运动向量目前的区域最佳解pbest目前的全域最佳解gbest原来位置

xid(t)新位置

xid(t+1)原来速度

vid(t)新速度vid(t+1)

新位置:xid(t+1)=xid(t)+vid(t+1)第11章11.2.2基本粒子群优化算法11.2.3粒子群算法实现流程

第11章11.2.3粒子群算法实现流程11.2.3粒子群算法实现流程

第11章11.2.3粒子群算法实现流程11.2.4仿真示例x,yin[-4,4]第11章11.2.4仿真示例用粒子群算法求下列函数的最小值基于Matlab的粒子群算法实现%初始化clear;closeall;clc;N=100;%群体粒子个数D=2;%粒子维数T=50;%最大迭代次数c1=1.5;%学习因子1c2=1.5;%学习因子2Wmax=0.8;%惯性权重最大值Wmin=0.4;%惯性权重最小值Xmax=4;%位置最大值Xmin=-4;%位置最小值Vmax=1;%速度最大值Vmin=-1;%速度最小值%初始化种群个体(限定位置和速度)x=rand(N,D)*(Xmax-Xmin)+Xmin;v=rand(N,D)*(Vmax-Vmin)+Vmin;%初始化个体最优位置和最优值p=x;pbest=ones(N,1);fori=1:Npbest(i)=func2(x(i,:));end%初始化全局最优位置和最优值g=ones(1,D);gbest=inf;fori=1:Nif(pbest(i)<gbest)g=p(i,:);gbest=pbest(i);endendgb=ones(1,T);第11章11.2.4仿真示例%按照公式依次迭代直到满足精度或者迭代次数fori=1:Tforj=1:N%更新个体最优位置和最优值if(func2(x(j,:))<pbest(j))p(j,:)=x(j,:);pbest(j)=func2(x(j,:));end

%更新全局最优位置和最优值if(pbest(j)<gbest)g=p(j,:);gbest=pbest(j);end

%计算动态惯性权重值w=Wmax-(Wmax-Wmin)*i/T;%更新位置和速度值v(j,:)=w*v(j,:)+c1*rand*(p(j,:)-x(j,:))...+c2*rand*(g-x(j,:));x(j,:)=x(j,:)+v(j,:);%边界条件处理forii=1:Dif(v(j,ii)>Vmax)|(v(j,ii)<Vmin)v(j,ii)=rand*(Vmax-Vmin)+Vmin;endif(x(j,ii)>Xmax)|(x(j,ii)<Xmin)x(j,ii)=rand*(Xmax-Xmin)+Xmin;endendend%记录历代全局最优值gb(i)=gbest;end第11章11.2.4仿真示例基于Matlab的粒子群算法实现g;%最优个体

gb(end);%最优值figureplot(gb,'-r*')xlabel('迭代次数');ylabel('适应度值’);title('适应度进化曲线’)

%适应度函数functionvalue=func2(x)value=3*cos(x(1)*x(2))+x(1)+x(2)^2;第11章11.2.4仿真示例基于Matlab的粒子群算法实现第11章11.2.4仿真示例调用Matlab工具箱中的particleswarm函数实现lb=[-4;-4];ub=[4;4];[x,fval]=particleswarm(@func2,2,lb,ub)%

函数functionvalue=func2(x)value=3*cos(x(1)*x(2))+x(1)+x(2)^2;第11章11.2.4仿真示例谢谢!67主要内容12.1双容水箱对象及模型12.2PID控制器的设计及实现12.3模糊控制器的设计及实现12.4神经网络自整定PID控制器的设计及实现68第12章11.2.1引言12.1双容水箱对象及模型双容水箱的模型上水箱的进水阀为V1,出水阀为V2;下水箱进水阀为V2,出水阀为V3,上下水箱通过阀门V2串接在一起,其中V1可调,V2,V3开度固定;被控量为下水箱液位h2

;控制量为进水阀V1的进水量。69第12章12.1双容水箱对象及模型双容水箱的数学模型多容水箱实验装置上,通过阶跃响应测试法获取模型70第12章12.1双容水箱对象及模型12.2PID控制器的设计及实现双容水箱液位PID控制系统Simulink仿真框图第12章12.2PID控制器的设计及实现双容水箱的模型设定值:60cm;纯滞后时间:0.85s;输出饱和(OutputSaturation)项中的上下限值设置为100和0。第12章12.2PID控制器的设计及实现PID控制响应曲线注:在50s时,加一幅值为10的扰动。第12章12.2PID控制器的设计及实现12.3.1Mamdani模糊控制器模糊控制器的参数设置第12章12.3.1Mamdani模糊控制器三个变量的隶属函数第12章12.3.1Mamdani模糊控制器Mamdani型模糊控制器的设计及实现模糊控制器的控制规则表第12章12.3.1Mamdani模糊控制器水箱液位模糊控制系统Simulink仿真框图第12章12.3.1Mamdani模糊控制器水箱液位模糊控制响应曲线注:与PID控制器的结果比较,模糊控制的仿真结果并不理想。第12章12.3.1Mamdani模糊控制器12.3.2PID参数模糊自整定控制器通过设计模糊系统来自适应地整定PID的参数;根据输入的大小来确定PID的三个参数的变化;关键就是模糊规则的制定。第12章12.3.2PID参数模糊自整定控制器PID参数模糊自整定控制器模糊整定器的参数设置第12章12.3.2PID参数模糊自整定控制器三个变量的隶属函数e的隶属函数(模糊PID)ec的隶属函数(模糊PID)输出变量的隶属函数第12章12.3.2PID参数模糊自整定控制器PID参数模糊自整定控制器模糊控制器的控制规则表

温馨提示

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

评论

0/150

提交评论