資源簡介
本代碼包為 matlab智能算法30個案例分析(第二版)代碼,隨著matlab升級,優(yōu)化函數(shù)的位置發(fā)生了改變,但是絕大多數(shù)代碼并沒有改變。
代碼片段和文件信息
clc
clear?all
close?all
%%?畫出函數(shù)圖
figure(1);
hold?on;
lb=1;ub=2;?%函數(shù)自變量范圍【12】
ezplot(‘sin(10*pi*X)/X‘[lbub]);???%畫出函數(shù)曲線
xlabel(‘自變量/X‘)
ylabel(‘函數(shù)值/Y‘)
%%?定義遺傳算法參數(shù)
NIND=40;????????%個體數(shù)目
MAXGEN=20;??????%最大遺傳代數(shù)
PRECI=20;???????%變量的二進制位數(shù)
GGAP=0.95;??????%代溝
px=0.7;?????????%交叉概率
pm=0.01;????????%變異概率
trace=zeros(2MAXGEN);????????????????????????%尋優(yōu)結果的初始值
FieldD=[PRECI;lb;ub;1;0;1;1];??????????????????????%區(qū)域描述器
Chrom=crtbp(NINDPRECI);??????????????????????%初始種群
%%?優(yōu)化
gen=0;??????????????????????????????????%代計數(shù)器
X=bs2rv(ChromFieldD);?????????????????%計算初始種群的十進制轉(zhuǎn)換
ObjV=sin(10*pi*X)./X;????????%計算目標函數(shù)值
while?gen ???FitnV=ranking(ObjV);???????????????????????????????%分配適應度值
???SelCh=select(‘sus‘ChromFitnVGGAP);??????????????%選擇
???SelCh=recombin(‘xovsp‘SelChpx);??????????????????%重組
???SelCh=mut(SelChpm);???????????????????????????????%變異
???X=bs2rv(SelChFieldD);???????????????%子代個體的十進制轉(zhuǎn)換
???ObjVSel=sin(10*pi*X)./X;?????????????%計算子代的目標函數(shù)值
???[ChromObjV]=reins(ChromSelCh11ObjVObjVSel);?%重插入子代到父代,得到新種群
???X=bs2rv(ChromFieldD);
???gen=gen+1;?????????????????????????????????????????????%代計數(shù)器增加
???%獲取每代的最優(yōu)解及其序號,Y為最優(yōu)解I為個體的序號
???[YI]=min(ObjV);
???trace(1gen)=X(I);????????????????????????????%記下每代的最優(yōu)值
???trace(2gen)=Y;???????????????????????????????%記下每代的最優(yōu)值
end
plot(trace(1:)trace(2:)‘bo‘);????????????????????????????%畫出每代的最優(yōu)點
grid?on;
plot(XObjV‘b*‘);???%畫出最后一代的種群
hold?off
%%?畫進化圖
figure(2);
plot(1:MAXGENtrace(2:));
grid?on
xlabel(‘遺傳代數(shù)‘)
ylabel(‘解的變化‘)
title(‘進化過程‘)
bestY=trace(2end);
bestX=trace(1end);
fprintf([‘最優(yōu)解:\nX=‘num2str(bestX)‘\nY=‘num2str(bestY)‘\n‘])
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3217??1998-04-22?10:44??gatbx\bs2rv.m
?????文件???????1835??1998-04-22?10:44??gatbx\contents.m
?????文件???????1168??1998-04-22?10:44??gatbx\crtba
?????文件???????2187??1998-04-22?10:44??gatbx\crtbp.m
?????文件???????2091??2005-12-04?10:21??gatbx\crtrp.m
?????文件??????12501??2005-11-28?15:21??gatbx\DOC\GA?TOOLBOX?FREQUENTLY?ASKED?QUESTIONS.txt
?????文件????????273??2005-12-02?09:07??gatbx\DOC\GATBXA0.LOG
?????文件??????16715??2005-12-02?09:07??gatbx\DOC\GATBXA0.PDF
?????文件??????53484??1998-04-22?11:14??gatbx\DOC\GATBXA0.PS
?????文件????????458??2005-12-02?09:10??gatbx\DOC\GATBXA1.LOG
?????文件?????109101??2005-12-02?09:10??gatbx\DOC\GATBXA1.PDF
?????文件?????204230??1998-04-22?11:14??gatbx\DOC\GATBXA1.PS
?????文件????????273??2005-12-02?09:16??gatbx\DOC\GATBXA2.LOG
?????文件?????101958??2005-12-02?09:16??gatbx\DOC\GATBXA2.PDF
?????文件?????200234??1998-04-22?11:14??gatbx\DOC\GATBXA2.PS
?????文件??????18351??2005-11-28?15:25??gatbx\DOC\gpl.txt
?????文件???????1525??2005-11-28?15:25??gatbx\DOC\readme.txt
?????文件??????98687??2005-11-28?16:18??gatbx\DOC\The?MathWorks?-?1-18GTU?Why?do?I?get?an?error?in?MATLAB?6_0?(R12)?where?I?got?a?warning?in?R11?with?reference?to?uninitialized?variables.mht
?????文件???????7205??1998-04-22?10:44??gatbx\migrate.m
?????文件???????4019??1998-04-22?10:44??gatbx\mpga.m
?????文件???????1609??1998-04-22?10:44??gatbx\mut.m
?????文件???????3437??1998-04-22?10:44??gatbx\mutate.m
?????文件???????4943??1998-04-22?10:44??gatbx\mutbga.m
?????文件???????2629??1998-04-22?10:44??gatbx\objfun1.m
?????文件???????2559??1998-04-22?10:44??gatbx\objharv.m
?????文件???????4709??1998-04-22?10:44??gatbx\ranking.m
?????文件???????1825??1998-04-22?10:44??gatbx\recdis.m
?????文件???????1895??1998-04-22?10:44??gatbx\recint.m
?????文件???????1953??1998-04-22?10:44??gatbx\reclin.m
?????文件???????4852??1998-04-22?10:44??gatbx\recmut.m
............此處省略49個文件信息
評論
共有 條評論