版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Matlab遺傳算法工具箱應(yīng)用舉例,5.1 簡(jiǎn)單一元函數(shù)優(yōu)化實(shí)例,程序簡(jiǎn)化代碼如下: NIND=40; %定義個(gè)體數(shù)目 MAXGEN=25; %定義最大遺傳代數(shù) PRECI=20; %編碼長(zhǎng)度 GGAP=0.9; %代溝 FieldD=20;-1;2;1;0;1;1; %區(qū)域描述器 Chrom=crtbp(NIND, PRECI); %產(chǎn)生初始種群 gen=0; %代計(jì)數(shù)器 variable=bs2rv(Chrom, FieldD); %初始種群的十進(jìn)制轉(zhuǎn)換 ObjV=variable.*sin(10*pi*variable)+2.0; %計(jì)算初始種群目標(biāo)函數(shù)值 while genMAXGEN
2、+1 FitnV=ranking(-ObjV); %分配適應(yīng)度值 SelCh=select(sus, Chrom, FitnV, GGAP); %選擇 SelCh=recombin(xovsp, SelCh, 0.7); %重組 SelCh=mut(SelCh); %變異 variable=bs2rv(SelCh, FieldD); %子代個(gè)體的十進(jìn)制轉(zhuǎn)換 ObjVSel=variable.*sin(10*pi*variable)+2.0; %計(jì)算子代的目標(biāo)函數(shù)值 Chrom ObjV=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到種群 Y=max(O
3、bjV) %當(dāng)前種群最優(yōu)解 gen=gen+1; %代計(jì)數(shù)器增加 end,figure(1); %畫(huà)出函數(shù)曲線 fplot(variable.*sin(10*pi*variable)+2.0,-1,2); %定義遺傳算法參數(shù) NIND=40; %群體中個(gè)體數(shù)目 MAXGEN=25; %最大遺傳代數(shù) PRECI=20; %變量的二進(jìn)制位數(shù),具有性能跟蹤和圖像輸出功能的程序代碼,%代溝 GGAP=0.9; %尋優(yōu)結(jié)果的初始值 trace=zeros(2, MAXGEN); %建立區(qū)域描述器 FieldD=20;-1;2;1;0;1;1; %生成初始種群 Chrom=crtbp(NIND, PREC
4、I);,具有性能跟蹤和圖像輸出功能的程序代碼,%代計(jì)數(shù)器 gen=0; %計(jì)算初始種群的十進(jìn)制轉(zhuǎn)換 variable=bs2rv(Chrom, FieldD); %計(jì)算目標(biāo)函數(shù)值 ObjV=variable.*sin(10*pi*variable)+2.0;,具有性能跟蹤和圖像輸出功能的程序代碼,while genMAXGEN %分配適應(yīng)度值 FitnV=ranking(-ObjV); %選擇 SelCh=select(sus, Chrom, FitnV, GGAP); %重組 SelCh=recombin(xovsp, SelCh, 0.7); %變異 SelCh=mut(SelCh);,具
5、有性能跟蹤和圖像輸出功能的程序代碼,%子代個(gè)體的十進(jìn)制轉(zhuǎn)換 variable=bs2rv(SelCh, FieldD); %計(jì)算子代的目標(biāo)函數(shù)值 ObjVSel=variable.*sin(10*pi*variable)+2.0; %重插入子代的新種群 Chrom ObjV=reins(Chrom, SelCh, 1, 1, ObjV, ObjVSel); variable=bs2rv(Chrom, FieldD);,具有性能跟蹤和圖像輸出功能的程序代碼,%代計(jì)數(shù)器增加 gen=gen+1; %輸出最優(yōu)解及其序號(hào),并在目標(biāo)函數(shù)圖像 %中標(biāo)出,Y為最優(yōu)解,I為種群的序號(hào) Y, I=max(Obj
6、V);hold on; plot(variable(I), Y, bo); %遺傳算法性能跟蹤 trace(1, gen)=max(ObjV); %每一代最優(yōu)解 trace(2, gen)=sum(ObjV)/length(ObjV); end,具有性能跟蹤和圖像輸出功能的程序代碼,%最優(yōu)個(gè)體的十進(jìn)制轉(zhuǎn)換 variable=bs2rv(Chrom, FieldD); hold on, grid on; plot(variable,ObjV,b*); figure(2); plot(trace(1,:); hold on; plot(trace(2,:),-.);grid off legend(
7、解的變化,種群均值的變化),具有性能跟蹤和圖像輸出功能的程序代碼,程序運(yùn)行追蹤結(jié)果:,程序運(yùn)行追蹤結(jié)果,程序運(yùn)行追蹤結(jié)果,程序運(yùn)行追蹤結(jié)果,經(jīng)過(guò)25次迭代后最優(yōu)解及種群均值的變化如下圖:,例題中用到的一些繪圖函數(shù)說(shuō)明,1、繪制函數(shù)圖像函數(shù)fplot 調(diào)用格式: FPLOT(FUN,LIMS) FPLOT(FUN,LIMS,TOL) FPLOT(FUN,LIMS,N) FPLOT(FUN,LIMS,LineSpec) 參數(shù)說(shuō)明: LIMS = XMIN XMAX或 LIMS = XMIN XMAX YMIN YMAX給出變量范圍,TOL可接受的相對(duì)誤差,默認(rèn)值為2e-3, 即 0.2% N 限定
8、繪制的函數(shù)至少有N+1個(gè)點(diǎn),默認(rèn)值為1. 最大步長(zhǎng)限定為 (1/N)*(XMAX-XMIN). LineSpec指定線型 FUN要繪制圖像的函數(shù) 例如: fplot(variable.*sin(10*pi*variable)+2.0,-1,2);,2、定義零矩陣ZEROS ZEROS(N)產(chǎn)生N階零矩陣 ZEROS(M,N) 或 ZEROS(M,N) )產(chǎn)生MN階零矩陣; ZEROS(M,N,P,.) or ZEROS(M N P .) )產(chǎn)生MNP .階零矩陣; ZEROS(SIZE(A) )產(chǎn)生與矩陣A一樣大小的零矩陣。 3、求最大值函數(shù)MAX MAX(X) X為向量時(shí),返回向量X的最大元
9、素;X為矩陣時(shí),返回一個(gè)行向量,包含矩陣X的每列的最大元素.,4、繪圖函數(shù)PLOT PLOT(X,Y) 繪制以向量X為橫坐標(biāo),向量 Y為縱坐標(biāo)的線圖. 如果 X或 Y是一個(gè)矩陣,則繪制多線圖;如果 X是一個(gè)標(biāo)量,而 Y是一個(gè)向量,則繪聲繪色制的是 length(Y)個(gè)不連續(xù)點(diǎn)。 PLOT(Y)以矩陣Y的行標(biāo)為橫坐標(biāo),每一列為縱坐標(biāo)繪制圖形。如果Y是一個(gè)復(fù)矩陣 ,PLOT(Y) 相當(dāng)于PLOT(real(Y),imag(Y). PLOT(X,Y,S)指定線型繪圖,S為一字符串,指定繪圖方式,線型和顏色,數(shù)據(jù)點(diǎn)標(biāo)記字符,5、建立圖形窗口函數(shù)FIGURE FIGURE(H) 使句柄為 H的圖形窗口為
10、當(dāng)前圖形;如果圖形窗口不存在,則建立一個(gè)句柄為 H的圖形窗口。 GCF返回當(dāng)前圖形窗口的句柄。 6、設(shè)置網(wǎng)格線GRID GRID ON 給坐標(biāo)系添加網(wǎng)格線 GRID OFF 去除坐標(biāo)系中的網(wǎng)格線,5.2 多元單峰函數(shù)優(yōu)化實(shí)例,簡(jiǎn)化程序代碼如下: NIND=40; %個(gè)體數(shù)目 MAXGEN=500; %最大遺傳代數(shù) NVAR=20; %變量的維數(shù) PRECI=20; %編碼長(zhǎng)度 GGAP=0.9; %代溝 FieldD=rep(PRECI,1,NVAR);rep(-512;512, 1, NVAR);rep(1;0;1;1,1,NVAR); %建立區(qū)域描述器 Chrom=crtbp(NIND,
11、NVAR*PRECI); %創(chuàng)建初始種群 gen=0; %代計(jì)數(shù)器 ObjV=objfun1(bs2rv(Chrom, FieldD); %計(jì)算初始種群個(gè)體的目標(biāo)函數(shù)值 while genMAXGEN %迭代 FitnV=ranking(ObjV); %分配適應(yīng)度值 SelCh=select(sus, Chrom, FitnV, GGAP); %選擇 SelCh=recombin(xovsp, SelCh, 0.7); %重組 SelCh=mut(SelCh); %變異 ObjVSel=objfun1(bs2rv(SelCh, FieldD); %計(jì)算子代目標(biāo)函數(shù)值 Chrom ObjV=re
12、ins(Chrom, SelCh, 1, 1, ObjV, ObjVSel); %重插入 gen=gen+1; %代計(jì)數(shù)器增加 trace(gen, 1)=min(ObjV); %遺傳算法性能跟蹤 trace(gen, 2)=sum(ObjV)/length(ObjV); end Y, I=min(ObjV) X=bs2rv(Chrom, FieldD); X(I,:),前5個(gè)語(yǔ)句進(jìn)行的初始化工作,包括確定群體中個(gè)體數(shù)目,最大進(jìn)化代數(shù),編碼長(zhǎng)度,代溝,建立區(qū)域描述器等。,1、矩陣復(fù)制函數(shù)REP 功能 用來(lái)復(fù)制一個(gè)矩陣 調(diào)用格式: MatOut = rep(MatIn,REPN); 參數(shù)說(shuō)明 M
13、atIn輸入矩陣 MatOut輸出矩陣 REPN 一個(gè)二維向量,其中REPN(1)指定垂直方向復(fù)制次數(shù);REPN(2)指定水平方向復(fù)制次數(shù),程序中的函數(shù)說(shuō)明,例如: MatIn = 1 2 3 MatIn = 1 2 3 REPN = 1 2 REPN = 1 2 MatOut = rep(MatIn,REPN) MatOut = 1 2 3 1 2 3,程序中的函數(shù)說(shuō)明,例如: MatIn = 1 2 3 MatIn = 1 2 3 REPN = 2 1 REPN = 2 1 MatOut = rep(MatIn,REPN) MatOut = 1 2 3 1 2 3,程序中的函數(shù)說(shuō)明,例如:
14、 MatIn = 1 2 3 MatIn = 1 2 3 REPN = 3 2 REPN = 3 2 MatOut = rep(MatIn,REPN) MatOut = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3,程序中的函數(shù)說(shuō)明,具有性能跟的程序代碼如下: %定義遺傳算法參數(shù) NIND=40; %個(gè)體數(shù)目 MAXGEN=500; %最大遺傳代數(shù) NVAR=20; %變量的維數(shù) PRECI=20; %編碼長(zhǎng)度 GGAP=0.9; %代溝 trace=zeros(MAXGEN, 2); %建立區(qū)域描述器 FieldD=rep(PRECI,1,NVAR);rep(-51
15、2;512, 1, NVAR);rep(1;0;1;1,1,NVAR); %創(chuàng)建初始種群 Chrom=crtbp(NIND, NVAR*PRECI); %代計(jì)數(shù)器 gen=0; %計(jì)算初始種群個(gè)體的目標(biāo)函數(shù)值 ObjV=objfun1(bs2rv(Chrom, FieldD);,while genMAXGEN %迭代 FitnV=ranking(ObjV); %分配適應(yīng)度值 SelCh=select(sus, Chrom, FitnV, GGAP); %選擇 SelCh=recombin(xovsp, SelCh, 0.7); %重組 SelCh=mut(SelCh); %變異 %計(jì)算子代目標(biāo)
16、函數(shù)值 ObjVSel=objfun1(bs2rv(SelCh, FieldD); %重插入 Chrom ObjV=reins(Chrom, SelCh, 1, 1, ObjV, ObjVSel); %代計(jì)數(shù)器增加 gen=gen+1; %遺傳算法性能跟蹤 trace(gen, 1)=min(ObjV); trace(gen, 2)=sum(ObjV)/length(ObjV); end,plot(trace(:,1);hold on; plot(trace(:,2),-.);grid; legend( 種群均值的變化,解的變化) %輸出最優(yōu)解及其對(duì)應(yīng)的20個(gè)自變量的十進(jìn)制值,Y為最優(yōu)解, %
17、 I為種群的序號(hào) Y, I=min(ObjV) X=bs2rv(Chrom, FieldD); X(I,:),function ObjVal = objfun1(Chrom,switch1); %目標(biāo)函數(shù) OBJFUN1.M %調(diào)用格式: ObjVal = objfun1(Chrom,switch1) %輸入?yún)?shù): % Chrom- 當(dāng)前種群 % switch1- 如果Chrom = 則switch1 = 1 %并返回邊界;如果switch1 = 2 則返回標(biāo)題; %如果switch1 = 3 則返回全局最小值 % 輸出變量: % ObjVal- 各個(gè)體的目標(biāo)函數(shù)值,目標(biāo)函數(shù),if Nind
18、= 0 if switch1 = 2 ObjVal = DE JONG function 1- int2str(Dim); elseif switch1 = 3 ObjVal = 0; else ObjVal = 100*-5.12; 5.12; ObjVal = ObjVal(1:2,ones(Dim,1); end elseif Nvar = Dim ObjVal = sum(Chrom .* Chrom); else error(size of matrix Chrom is not correct for function evaluation); end,程序運(yùn)行所求得的最優(yōu)解為:y
19、=1.0320,5.3多元多峰函數(shù)優(yōu)化實(shí)例,Shubert函數(shù)的圖像為,目標(biāo)函數(shù),function z=shubert(x,y) z=(1*cos(1+1)*x+1)+(2*cos(2+1)*x+2)+ (3*cos(3+1)*x+3)+(4*cos(4+1)*x+4)+ (5*cos(5+1)*x+5).*(1*cos(1+1)*y+1)+ (2*cos(2+1)*y+2)+(3*cos(3+1)*y+3)+ (4*cos(4+1)*y+4)+(5*cos(5+1)*y+5);,1、將繪圖區(qū)域劃分為矩形網(wǎng)格MESHGRID 功能: 將向量x,y指定的區(qū)域轉(zhuǎn)化為矩形X,Y 調(diào)用格式: X,Y
20、= MESHGRID(x,y) 2、 3維圖形輸出函數(shù) SURF(X,Y,Z)著色表面圖 MESH(X,Y,Z)網(wǎng)線圖 例如: X,Y = meshgrid(-2:.2:2, -2:.2:2); Z = X .* exp(-X.2 - Y.2); surf(X,Y,Z); MESH(X,Y,Z);,程序中的函數(shù)說(shuō)明,程序代碼如下: x1,x2=meshgrid(-10:.1:10); %畫(huà)出Shubert函數(shù)圖像figure(1);mesh(x1,x2,shubert(x1,x2); %定義遺傳算法參數(shù) NIND=40; %個(gè)體數(shù)目 MAXGEN=50; %最大遺傳代數(shù) NVAR=2; %變量
21、數(shù)目 PRECI=25; %變量的二進(jìn)制位數(shù) GGAP=0.9; %代溝,%建立區(qū)域描述器 FieldD=rep(PRECI,1,NVAR); rep(-10;10,1,NVAR);rep(1;0;1;1,1,NVAR); %創(chuàng)建初始種群 Chrom=crtbp(NIND, NVAR*PRECI); gen=0; %遺傳算法性能跟蹤初始值 trace=zeros(MAXGEN, 2); %初始種群十進(jìn)制轉(zhuǎn)換 x=bs2rv(Chrom, FieldD); %初始種群的目標(biāo)函數(shù)值 ObjV=Shubert(x(:,1),x(:,2);,while genMAXGEN FitnV=ranking(
22、ObjV); %分配適應(yīng)度值 SelCh=select(sus,Chrom,FitnV,GGAP); SelCh=recombin(xovsp,SelCh,0.7); SelCh=mut(SelCh); x=bs2rv(SelCh,FieldD); ObjVSel=Shubert(x(:,1),x(:,2); Chrom ObjV=reins(Chrom,SelCh,1,1, ObjV,ObjVSel); gen=gen+1;,Y, I=min(ObjV); %輸出每一次的最優(yōu)解及其對(duì)應(yīng)的自變量值 Y,bs2rv(Chrom(I,:),FieldD) %遺傳算法性能跟蹤 trace(gen,1
23、)=min(ObjV); trace(gen,2)=sum(ObjV)/length(ObjV); %迭代數(shù)為50時(shí)畫(huà)出目標(biāo)函數(shù)值分布圖 if(gen=50) figure(2); plot(ObjV);hold on; plot(ObjV,b*);grid; end end,figure(3);clf; plot(trace(:,1);hold on; plot(trace(:,2),-.);grid legend(解的變化,種群均值的變化),5.4 在多目標(biāo)優(yōu)化中的應(yīng)用,5.4.1多目標(biāo)優(yōu)化的概念,5.4.1多目標(biāo)優(yōu)化的概念,5.4.1多目標(biāo)優(yōu)化的概念,5.4.1多目標(biāo)優(yōu)化的概念,5.4.
24、2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,5.4.3 應(yīng)用舉例,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,NIND=100; %個(gè)體數(shù)目 MAXGEN=50; %最大遺傳代數(shù) NVAR=2; %變量個(gè)數(shù) PRECI=20; %變量的二進(jìn)制位數(shù) GGAP=0.9; %代溝 trace1= ;trace2= ;trace3= ; %性能跟蹤 %建立區(qū)域描述器 FieldD=rep(PREC
25、I,1,NVAR);1,1;4,2; rep(1;0;1;1,1,NVAR);,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,Chrom=crtbp(NIND,NVAR*PRECI); %初始種群 v=bs2rv(Chrom,FieldD); %初始種群十進(jìn)制轉(zhuǎn)換 gen=1; while genMAXGEN NIND, N=size(Chrom); M=fix(NIND/2); ObjV1=f1(v(1:M,:); %分組后第一目標(biāo)函數(shù)值 FitnV1=ranking(ObjV1); %分配適應(yīng)度值,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,SelCh1=select(sus,Chrom(1:M,:),
26、FitnV1,GGAP); ObjV2=f2(v(M+1:NIND,:); %分組后第二目標(biāo)函數(shù)值 FitnV2=ranking(ObjV2); SelCh2=select(sus,Chrom(M+1):NIND,:), FitnV2,GGAP); %選擇 SelCh=SelCh1;SelCh2; %合并 SelCh=recombin(xovsp,SelCh,0.7); %重組 Chrom=mut(SelCh); %變異 v=bs2rv(SelCh,FieldD);,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,trace1(gen,1)=min(f1(v); trace1(gen,2)=sum(f1
27、(v)/length(f1(v); trace2(gen,1)=min(f2(v); trace2(gen,2)=sum(f2(v)/length(f2(v); trace3(gen,1)=min(f1(v)+f2(v); trace3(gen,2)=sum(f1(v)/length(f1(v)+ sum(f2(v)/length(f2(v); gen=gen+1; end,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,figure(1);clf; plot(trace1(:,1);hold on;plot(trace1(:,2),-.); plot(trace1(:,1),.);plot(trace1(:,2),.);grid on; legend(解的變化,種群均值的變化) xlabel(迭代次數(shù));ylabel(第一目標(biāo)函數(shù)值); figure(2);clf; plot(trace2(:,1);hold on; plot(trace2(:,2),-.); plot(trace2(:,1),.); plot(trace2(:,2),.);grid;,5.4.2 多目標(biāo)優(yōu)化問(wèn)題的遺傳算法,legend(解的變化,種群均值的變化) xlabel(迭代次數(shù));ylabel(第二目標(biāo)函數(shù)值); figure(3
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 私人定制房產(chǎn)轉(zhuǎn)讓協(xié)議樣本
- 福利院護(hù)工招聘合同細(xì)則
- 酒店管理教師勞動(dòng)合同模板
- 高端商務(wù)樓租賃合同模板
- 風(fēng)力發(fā)電場(chǎng)并網(wǎng)配網(wǎng)工程施工合同
- 土石方填筑設(shè)計(jì)合同
- 停車場(chǎng)地平施工合同
- 零售業(yè)專用送貨員聘用合同
- 醫(yī)療美容機(jī)構(gòu)美發(fā)師聘用合同
- 親子活動(dòng)表演助理招聘協(xié)議
- DL-T 1476-2023 電力安全工器具預(yù)防性試驗(yàn)規(guī)程
- 植物景觀規(guī)劃與設(shè)計(jì)智慧樹(shù)知到期末考試答案章節(jié)答案2024年青島理工大學(xué)
- 中國(guó)戲曲劇種鑒賞智慧樹(shù)知到期末考試答案章節(jié)答案2024年上海戲劇學(xué)院等跨校共建
- 三年級(jí)上冊(cè)數(shù)學(xué)教案-4.2 三位數(shù)減兩位數(shù)、三位數(shù)的筆算減法 ︳人教新課標(biāo)
- MOOC 法理學(xué)-西南政法大學(xué) 中國(guó)大學(xué)慕課答案
- 2024年重慶璧山區(qū)國(guó)隆農(nóng)業(yè)科技發(fā)展有限公司招聘筆試參考題庫(kù)含答案解析
- 事業(yè)單位工勤技能綜合知識(shí)試卷及答案
- 如何創(chuàng)造有意義的人生
- 冬季如何預(yù)防腦卒中
- 消防管道隱蔽工程驗(yàn)收記錄
- 習(xí)思想教材配套練習(xí)題 第一章 新時(shí)代堅(jiān)持和發(fā)展中國(guó)特色社會(huì)主義
評(píng)論
0/150
提交評(píng)論