資源簡介
用自適應遺傳算法計算目標函數的最值,,,

代碼片段和文件信息
%定義遺傳算法參數
%xo=zeros(10001000)?;
%yo=zeros(10001000)?;
%eval=zeros(10001000)?;
m=20;
nind=100;%%%%%%%%40
%%%%%%%%%%%%%%%%nind=40;
maxgen=2000;%最大遺傳代數
ggap=0.9;%代溝
trace=zeros(maxgen2);%遺傳算法性能跟蹤初始值
basev=crtbase(mm);%初始種群
chrom=crtbp(nindbasev);
chrom=chrom+ones(nindm);
gen=0;
objv=testtargetlloc(nindchrom);%計算初始種群值
while?gen fitnv=ranking(objv);%分配適應度值
selch=select(‘sus‘chromfitnvggap);%選擇
selch=recombin(‘xovsp‘selch0.7);%交叉重組
f=rep([1;m][1m]);
selch=mutbga(selchf);%變異
selch=fix(selch);%取整
objvsel=testtargetlloc(nind*0.9selch);%計算子代目標函數值
[chrom?objv]=reins(chromselch11objvobjvsel);%重新插入
gen=gen+1;
trace(gen1)=min(objv);
trace(gen2)=sum(objv)/length(objv);
end;
[YR]=min(objv);
%%%%%%%%%%%%%chrom(R:)Y;
r=[200?150];%最后畫圖函數
g=[500?300];
n=m;
l=sqrt((g(1)-r(1))^2+(g(2)-r(2))^2);
dm=l/m;
dn=l/2/n;
w=R;
?ss(1)=200;
?ss(2)=150;
for?i=1:m??%%%%%%%%%??for?i=1:m?
%?A=r(2)*(g(2)+r(2))+r(1)*(g(1)-r(1))+dm*i*l;
%?B=r(1)*(g(2)-r(2))-r(2)*(r(1)-g(1))+dn*l*chrom(wi)-(l^2)/4;
A=r(2)*(g(2)-r(2))+r(1)*(g(1)-r(1))+dm*i*l;
B=-r(1)*(g(2)-r(2))+r(2)*(g(1)-r(1))+dn*l*chrom(wi)-(l^2)/4;%%%???B=-r(1)*(g(2)-r(2))+r(2)*(g(1)-r(1))+dn*l*chrom(wi)-(l^2)/4
if?i==m
xo(ichrom(wi))=500;
yo(ichrom(wi))=300;
else
xo(ichrom(wi))=(A*(g(1)-r(1))-B*(g(2)-r(2)))/(l^2);
yo(ichrom(wi))=(B*(g(1)-r(1))+A*(g(2)-r(2)))/(l^2);
end;
%plot(xo(ichrom(wi))yo(ichrom(wi))‘o‘);%%%%%%%%%%%??‘dg‘
%?%%
%?%%%連線函數
dd(1)=xo(ichrom(wi));
dd(2)=yo(ichrom(wi));
plot([ss(1)?dd(1)][ss(2)??dd(2)]);
hold?on;
ss(1)=dd(1);
ss(2)=dd(2);
%?%%%%%%
%?%%
end;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1731??2008-12-20?15:14??good1\mypath2.m
?????文件???????1706??2008-12-20?15:23??good1\testtargetlloc.m
?????文件???????1780??2008-12-20?15:08??good1\mypath2.asv
?????文件???????1706??2008-12-20?15:23??good1\testtargetlloc.asv
?????目錄??????????0??2008-12-20?11:23??good1
-----------?---------??----------?-----??----
?????????????????6923????????????????????5
- 上一篇:脈動風matlab模擬
- 下一篇:matlab經典拓撲優化程序
評論
共有 條評論