91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

遺傳算法函數優化f=x.^2+y.^3+z.^2,,.運行前需下載謝菲爾德遺傳算法工具箱,此為三元,如需n元,需要在toolbox->gatbx->objfun1 文件里的Dim改為和n相等的個數,gatbx是謝菲爾德遺傳算法工具箱名稱(可能每個人下載版本不一樣,根據你下的工具箱名稱),hanshuga1.m是函數優化代碼,tuxing1.m是函數圖像代碼(這個代碼是三元的不可調整)

資源截圖

代碼片段和文件信息

clear?all;close?all;?%釋放所有變量,關閉圖形窗口,清除命令窗口
%定義遺傳算法參數
NIND=150;???????????????%個體數目(Numbe?of?individuals)
MAXGEN=200;????????????%最大遺傳代數(Maximum?number?of?generations)
NVAR=3;???????????????%變量的維數
PRECI=20;??????????????%變量的二進制位數(Precision?of?variables)
GGAP=0.9;??????????????%代溝(Generation?gap)
trace=zeros(MAXGEN?2);
%建立區域描述器(Build?field?descriptor)
FieldD=[rep([PRECI][1NVAR]);rep([-5.12;5.12][1?NVAR]);rep([1;0;1;1][1NVAR])];
Chrom=crtbp(NIND?NVAR*PRECI);???????????????????????%創建初始種群
gen=0;???????????????????????????????????????????????%代計數器
ObjV=objfun1(bs2rv(Chrom?FieldD));??????????????????%計算初始種群個體的目標函數值
while?gen????FitnV=ranking(ObjV);?????????????????????????????%分配適應度值(Assign?fitness?values)
????SelCh=select(‘sus‘?Chrom?FitnV?GGAP);?????????%選擇
????SelCh=recombin(‘xovsp‘?SelCh?0.9);?????????????%重組
????SelCh=mut(SelCh);????????????????????????????????%變異
????ObjVSel=objfun1(bs2rv(SelCh?FieldD));???????????%計算子代目標函數值?
????[Chrom?ObjV]=reins(Chrom?SelCh?1?1?ObjV?ObjVSel);?????%重插入
????gen=gen+1;?????????????????????????????????????????????????%代計數器增加
????trace(gen?1)=min(ObjV);???????????????????????????????????%遺傳算法性能跟蹤
????trace(gen?2)=sum(ObjV)/length(ObjV);
end
plot(trace(:1)‘r‘);hold?on;
plot(trace(:2)‘-.‘);grid;
title(‘最小值/均值?變化趨勢‘);xlabel(‘Generations‘);ylabel(‘最小值/均值‘);
legend(‘最小值的變化‘‘種群函數值均值的變化‘)
%輸出最優解及其對應的20個自變量的十進制值Y為最優解I為種群的序號
%[A?I]=min(ObjV)
%?X=bs2rv(Chrom?FieldD);
%?X(I:)
disp(sprintf(‘種群數目:%d‘NIND));
disp(sprintf(‘遺傳代數:%d‘MAXGEN));
disp(sprintf(‘代溝:%d‘GGAP));
[YI]=min(trace(:1));
disp(sprintf(‘最小值:‘));Y
y1=trace(I:size(trace1)1);?%全局最小值之后的每代最小值
length1=length(y1);
y2=find(y1==Y);
length2=length(y2);
if?length2==length(y2)&&length2>=10
????disp(sprintf(‘收斂次數:%d占總迭代次數比例:%4f‘II/MAXGEN));
else
????disp(sprintf(‘最小值所在代數:%d‘I));
????disp(sprintf(‘暫未收斂‘));
end




%?[xyz]=meshgrid(linspace(-5.125.12));
%?val=x.^2+y.^3+z.^2;
%?[fv]=isosurface(xyzval2);
%?p=patch(‘Faces‘f‘Vertices‘v‘CData‘v(:3)‘FaceColor‘‘w‘‘EdgeColor‘‘flat‘);
%?isonormals(xyzvalp);%顯示V=p等等值面
%?view(3)
%?grid?on
%?axis?equal

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2453??2018-06-12?14:52??函數一\hanshuga1.m

?????文件????????312??2018-06-13?16:14??函數一\tuxing1.m

?????目錄??????????0??2018-06-13?16:16??函數一

-----------?---------??----------?-----??----

?????????????????2765????????????????????3


評論

共有 條評論