遗传算法优化求解Word格式文档下载.docx
- 文档编号:19835617
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:19
- 大小:275.12KB
遗传算法优化求解Word格式文档下载.docx
《遗传算法优化求解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《遗传算法优化求解Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
其中:
Z为适应度的最大值,对应在index=88代时产生;
Q为函数最小值,A与index意义相同;
对应坐标x1=0.9870,x2=0.9669
图6遗传算法流程简图
存在问题或缺陷:
没有从根本上深入实现遗传算法的优点,算法内存在具有类似功能的重复模块,例如对对种群适应度的计算,在一次循环(遗传一代)中会进行两次计算,在这一方面有待改进。
算法的另一个缺陷:
由于没有实现对群体适应度平均值的评价,不能从直观上看出有“遗传优化”的效果,即不能看出最优值逐渐变好的趋势。
第1题Matlab程序代码:
clear
clf
popsize=50;
%种群大小
chromlength=10;
G=200;
%遗传代数(终止代数)
pc=0.6;
%交叉概率
pm=0.001;
%变异概率
umax=4;
umin=-4;
pop=round(rand(popsize,2*chromlength));
%产生初始种群
forj=1:
G
[pxpy]=size(pop);
forr=1:
px%解码
m=pop(r,:
);
y1=0;
y2=0;
m1=m(1:
chromlength);
fori=1:
chromlength
y1=y1+m1(i)*2^(i-1);
end
x1=(umax-umin)*y1/1023+umin;
m2=m(chromlength+1:
2*chromlength);
y2=y2+m2(i)*2^(i-1);
x2=(umax-umin)*y2/1023+umin;
objvalue(r,:
)=0.5-((sin(sqrt(x1.^2+x2.^2))).^2-0.5)/(1+0.001*(x1^2+x2^2)).^2;
%计算每个个体函数值
end
globalCmin;
Cmin=0;
[px,py]=size(objvalue);
px%计算适应度
ifobjvalue(i)-Cmin>
0
temp=objvalue(i)-Cmin;
else
temp=0.0;
fitvalue(i)=temp;
fitvalue=fitvalue'
;
totalfit=sum(fitvalue);
%该代种群适应度累加
fitprb=fitvalue/totalfit;
%每个个体被选择的概率
fitprb=cumsum(fitprb);
%例如fitvalue=[1234]cumsum(fitvalue)=[13610]
[px,py]=size(pop);
%复制部分:
ms=sort(rand(px,1));
%从小到大排列
fitin=1;
newin=1;
whilenewin<
=px%复制
if(ms(newin))<
fitprb(fitin)
pop(newin)=pop(fitin);
newin=newin+1;
fitin=fitin+1;
end
%交叉部分
2:
px-1%交叉
if(rand<
pc)
cpoint=round(rand*py);
if(cpoint==0)
newpop(i,:
)=[pop(i,1:
cpoint),pop(i+1,cpoint+1:
py)];
newpop(i+1,:
)=[pop(i+1,1:
cpoint),pop(i,cpoint+1:
)=pop(i,:
)=pop(i+1,:
pop=newpop;
%变异部分
%变异
px
pm)
mpoint=round(rand*20);
ifmpoint==0
ifpop(i,mpoint)==0
pop(i,mpoint)=1;
pop(i,mpoint)=0;
newnewpop(i,:
%计算最大适应值函数值
pop=newnewpop;
objvalue(r,:
fori=1:
px
bestindividual=pop(1,:
bestfit=fitvalue
(1);
fori=2:
px-1
iffitvalue(i)>
bestfit
bestindividual=pop(i,:
bestfit=fitvalue(i);
w(j)=bestfit;
%确定该代最佳适应值
bestpop=bestindividual;
%确定该代最佳个体
[qx,qy]=size(bestindividual);
%解码计算相应的最佳函数值
forc=1:
1:
qx
m=bestindividual(c,:
qy/2);
qy/2
m2=m(qy/2+1:
qy);
resultmax(j)=0.5-((sin(sqrt(x1.^2+x2.^2))).^2-0.5)/(1+0.001*(x1^2+x2^2)).^2;
bestx1(j)=x1;
bestx2(j)=x2;
figure
(1)
x=[1:
j];
plot(x,w,'
--r'
holdon;
figure
(2)
x=linspace(-4,4,100);
y=linspace(-4,4,100);
[xx,yy]=meshgrid(x,y);
zz=0.5-((sin(sqrt(xx.^2+yy.^2))).^2-0.5)./(1+0.001.*(xx^2+yy^2)).^2;
mesh(xx,yy,zz);
[zindex]=max(w)%所有代中最大适应值及其位置
[QA]=max(resultmax)%所有代中最大函数值及其位置
bestx1(A)%对应x1
bestx2(A)%对应x2
第3题Matlab程序代码:
%基因长度
%交叉概率
%变异概率
umax=2.048;
umin=-2.048;
G%G为遗传代数
px%解码及计算函数值
)=100*(x2-x1.^2).^2+(1-x1).^2;
globalCmax;
Cmax=3905.9262;
px%适应度计算
ifCmax-objvalue(i)>
temp=Cmax-objvalue(i);
totalfit=sum(fitvalue);
复制部分
%´
Ó
Ð
¡
µ
½
´
ó
Å
Á
=px%¸
Ö
Æ
(Ñ
Ô
ñ
)
交叉部分
px-1%½
»
²
æ
%±
ä
Ò
ì
%计算函数值
[pxpy]=size(pop);
%Ç
³
ö
È
º
Ì
å
Ê
¦
×
î
Ä
¸
¼
°
px%½
â
Â
ë
£
¬
Ë
ã
¿
±
ê
¯
ý
%寻找该代最优适应度及对应函数值对应位置
px%¼
Ã
¶
%È
·
¨
ú
Î
resultmin(j)=100*(x2-x1.^2).^2+(1-x1).^2;
xlabel('
«
'
)
ylabel('
÷
%holdon;
figure
(2)
plot(x,resultmin,'
%holdon;
figure(3)
x=linspace(-2.048,2.048,100);
y=linspace(-2.048,2.048,100);
zz=100*(yy-xx.^2).^2+(1-xx).^2;
[zindex]=max(w)%寻找适应度最优及代数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遗传 算法 优化 求解
![提示](https://static.bdocx.com/images/bang_tan.gif)