遺傳算法GA求解函數(shù)極值_第1頁(yè)
遺傳算法GA求解函數(shù)極值_第2頁(yè)
遺傳算法GA求解函數(shù)極值_第3頁(yè)
遺傳算法GA求解函數(shù)極值_第4頁(yè)
遺傳算法GA求解函數(shù)極值_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——遺傳算法GA求解函數(shù)極值主程序

%%GAclc%清屏

clearall;%刪除workplace變量closeall;%關(guān)掉顯示圖形窗口warningoff

%%參數(shù)初始化

popsize=100;%種群規(guī)模lenchrom=7;%變量字串長(zhǎng)度

pc=0.7;%設(shè)置交織概率,本例中交織概率是定值,若想設(shè)置變化的交織概率可用表達(dá)式表示,或從寫(xiě)一個(gè)交織概率函數(shù),例如用神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的值作為交織概率pm=0.3;%設(shè)置變異概率,同理也可設(shè)置為變化的

maxgen=100;%進(jìn)化次數(shù)

%種群

popmax=50;popmin=0;

bound=[popminpopmax;popminpopmax;popminpopmax;popminpopmax;popminpopmax;popminpopmax;popminpopmax];%變量范圍

%%產(chǎn)生初始粒子和速度f(wàn)ori=1:popsize

%隨機(jī)產(chǎn)生一個(gè)種群

GApop(i,:)=Code(lenchrom,bound);%隨機(jī)產(chǎn)生個(gè)體%計(jì)算適應(yīng)度

fitness(i)=fun(GApop(i,:));%染色體的適應(yīng)度end

%找最好的染色體

[bestfitnessbestindex]=min(fitness);

zbest=GApop(bestindex,:);%全局最正確gbest=GApop;%個(gè)體最正確

fitnessgbest=fitness;%個(gè)體最正確適應(yīng)度值fitnesszbest=bestfitness;%全局最正確適應(yīng)度值

%%迭代尋優(yōu)fori=1:maxgeni

%種群更新GA選擇更新GApop=Select2(GApop,fitness,popsize);

%交織操作GA

GApop=Cross(pc,lenchrom,GApop,popsize,bound);

%變異操作GA變異

GApop=Mutation(pm,lenchrom,GApop,popsize,[imaxgen],bound);

pop=GApop;

forj=1:popsize

%適應(yīng)度值if

0.072*pop(j,1)+0.063*pop(j,2)+0.057*pop(j,3)+0.05*pop(j,4)+0.032*pop(j,5)+0.0442*pop(j,6)+0.0675*pop(j,7)pmutationcontinue;endflag=0;

whileflag==0

%變異位置pick=rand;whilepick==0pick=rand;end

pos=ceil(pick*sum(lenchrom));%隨機(jī)選擇了染色體變異的位置,即選擇了第pos個(gè)變量進(jìn)行變異v=chrom(i,pos);v1=v-bound(pos,1);v2=bound(pos,2)-v;pick=rand;%變異開(kāi)始ifpick>0.5

delta=v2*(1-pick^((1-pop(1)/pop(2))^2));chrom(i,pos)=v+delta;else

delta=v1*(1-pick^((1-pop(1)/pop(2))^2));chrom(i,pos)=v-delta;

end%變異終止

flag=test(lenchrom,bound,chrom(i,:));%檢驗(yàn)染色體的可行性endend

ret=chrom;

Cross

functionret=Cross(pcross,lenchrom,chrom,sizepop,bound)%本函數(shù)完成交織操作

%pcorssinput:交織概率

%lenchrominput:染色體的長(zhǎng)度%chrominput:染色體群%sizepopinput:種群規(guī)模

%retoutput:交織后的染色體

fori=1:sizepop

%隨機(jī)選擇兩個(gè)染色體進(jìn)行交織pick=rand(1,2);whileprod(pick)==0pick=rand(1,2);end

index=ceil(pick.*sizepop);

%交織概率決定是否進(jìn)行交織pick=rand;whilepick==0pick=rand;end

ifpick>pcrosscontinue;endflag=0;

whileflag==0

%隨機(jī)選擇交織位置pick=rand;whilepick==0pick=rand;end

pos=ceil(pick.*sum(lenchrom));%隨機(jī)選擇進(jìn)行交織的位置,即選擇第幾個(gè)變量進(jìn)行交織,注意:兩個(gè)染色體交織的位置一致

pick=rand;%交織開(kāi)始v1=chrom(index(1),pos);

v2=chrom(index(2),pos);

chrom(index(1),pos)=pick*v2+(1-pick)*v1;

chrom(index(2),pos)=pick*v1+(1-pick)*v2;%交織終止

flag1=test(lenchrom,bound,chrom(index(1),:));%檢驗(yàn)染色體1的可行性flag2=test(lenchrom,bound,chrom(index(2),:));%檢驗(yàn)染色體2的可行性ifflag1*flag2==0flag=0;elseflag=1;

end%假使兩個(gè)染色體不是都可行,則重新交織endend

ret=chrom;

Code

functionret=Code(lenchrom,bound)

%本函數(shù)將變量編碼成染色體,用于隨機(jī)初始化一個(gè)種群%lenchrominput:染色體長(zhǎng)度

%boundinput:變量的取值范圍%retoutput:染色體的編碼值

flag=0;

whileflag==0

pick=rand(1,lenchrom);

ret=bound(:,1)'+(bound(:,2)-bound(:,1))'.*pick;%線性插值

flag=test(lenchrom,bound,ret);%檢驗(yàn)染色體的可行性end

Select2

functionret=Select(individuals,fitness,sizepop)

%本函數(shù)對(duì)每一代種群中的染色體進(jìn)行選擇,以進(jìn)行后面的交織和變異%individualsinput:種群信息%fitnessinput:適應(yīng)度

%sizepopinput:種群規(guī)模

%optsinput:選擇方法的選擇%retoutput:經(jīng)過(guò)選擇后的種群

fitness=1./(fitness);

sumfitness=sum(fitness);sumf=

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論