遺傳算法matlab實(shí)現(xiàn)源程序_第1頁(yè)
遺傳算法matlab實(shí)現(xiàn)源程序_第2頁(yè)
遺傳算法matlab實(shí)現(xiàn)源程序_第3頁(yè)
遺傳算法matlab實(shí)現(xiàn)源程序_第4頁(yè)
遺傳算法matlab實(shí)現(xiàn)源程序_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

附頁(yè):一.遺傳算法源程序:clc;clear;population;%評(píng)價(jià)目標(biāo)函數(shù)值foruim=1:popsizevector=population(uim,:);obj(uim)=hanshu(hromlength,vector,phen);end%obj%min(obj)clearuim;objmin=min(obj);forsequ=1:popsizeifobj(sequ)==objminopti=population(sequ,:);endendclearsequ;fmax=22000;%==forgen=1:maxgen%選擇操作%將求最小值的函數(shù)轉(zhuǎn)化為適應(yīng)度函數(shù)forindivi=1:popsizeobj1(indivi)=1/obj(indivi);endclearindivi;%適應(yīng)度函數(shù)累加總合total=0;forindivi=1:popsizetotal=total+obj1(indivi);endclearindivi;%每條染色體被選中的幾率精品文檔交流 2forindivi=1:popsizefitness1(indivi)=obj1(indivi)/total;endclearindivi;%各條染色體被選中的范圍forindivi=1:popsizefitness(indivi)=0;forj=1:indivifitness(indivi)=fitness(indivi)+fitness1(j);endendclearj;fitness;%選擇適應(yīng)度高的個(gè)體forranseti=1:popsizeran=rand;while(ran>1||ran<0)ran=rand;endran;ifran<=fitness(1)newpopulation(ranseti,:)=population(1,:);elseforfet=2:popsizeif(ran>fitness(fet-1))&&(ran<=fitness(fet))精品文檔交流 3newpopulation(ranseti,:)=population(fet,:);endendendendclearran;newpopulation;%交叉forint=1:2:popsize-1popmoth=newpopulation(int,:);popfath=newpopulation(int+1,:);popcross(int,:)=popmoth;popcross(int+1,:)=popfath;randnum=rand;if(randnum<P>cpoint1=round(rand*hromlength);cpoint2=round(rand*hromlength);while(cpoint2==cpoint1)cpoint2=round(rand*hromlength);endifcpoint1>cpoint2tem=cpoint1;cpoint1=cpoint2;cpoint2=tem;精品文檔交流 4endcpoint1;cpoint2;forterm=cpoint1+1:cpoint2forss=1:hromlengthifpopcross(int,ss)==popfath(term)tem1=popcross(int,ss);popcross(int,ss)=popcross(int,term);popcross(int,term)=tem1;endendcleartem1;endforterm=cpoint1+1:cpoint2forss=1:hromlengthifpopcross(int+1,ss)==popmoth(term)tem1=popcross(int+1,ss);popcross(int+1,ss)=popcross(int+1,term);popcross(int+1,term)=tem1;endendcleartem1;endend精品文檔交流 5clearterm;endclearrandnum;popcross;%變異操作newpop=popcross;forint=1:popsizerandnum=rand;ifrandnumcpoint12=round(rand*hromlength);cpoint22=round(rand*hromlength);if(cpoint12==0)cpoint12=1;endif(cpoint22==0)cpoint22=1;endwhile(cpoint22==cpoint12)cpoint22=round(rand*hromlength);ifcpoint22==0;cpoint22=1;endendtemp=newpop(int,cpoint12);精品文檔交流 6newpop(int,cpoint12)=newpop(int,cpoint22);newpop(int,cpoint22)=temp;endendnewpop;clearcpoint12;clearcpoint22;clearrandnum;clearint;forium=1:popsizevector1=newpop(ium,:);obj1(ium)=hanshu(hromlength,vector1,phen);endclearium;obj1max=max(obj1);forar=1:popsizeifobj1(ar)==obj1maxnewpop(ar,:)=opti;endend%遺傳操作結(jié)束二.粒子群算法源程序:%------ 初始格式化--------------------------------------------------clearall;精品文檔交流 7clc;formatlong;%------ 給定初始化條件 ----------------------------------------------c1=1.4962;%學(xué)習(xí)因子1c2=1.4962;%學(xué)習(xí)因子2w=0.7298;%慣性權(quán)重MaxDT=100;%最大迭代次數(shù)D=2;%搜索空間維數(shù)(未知數(shù)個(gè)數(shù))N=40;%初始化群體個(gè)體數(shù)目eps=10^(-6);% 設(shè)置精度(在已知最小值時(shí)候用 )%------ 初始化種群的個(gè)體 (可以在這里限定位置和速度的范圍 )------------fori=1:Nforj=1:Dx(i,j)=randn;% 隨機(jī)初始化位置v(i,j)=randn;% 隨機(jī)初始化速度endend%------ 先計(jì)算各個(gè)粒子的適應(yīng)度,并初始化 Pi和Pg----------------------fori=1:Np(i)=fitness(x(i,:),D);y(i,:)=x(i,:);endpg=x(1,:);%Pg 為全局最優(yōu)fori=2:N精品文檔交流 8iffitness(x(i,:),D)<FITNESS(pg,D)pg=x(i,:);endend%------ 進(jìn)入主要循環(huán),按照公式依次迭代,直到滿足精度要求 ------------fort=1:MaxDTtfori=1:Nv(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));x(i,:)=x(i,:)+v(i,:);iffitness(x(i,:),D)<p(i)p(i)=fitness(x(i,:),D);y(i,:)=x(i,:);endifp(i)<FITNESS(pg,D)pg=y(i,:);endendPbest(t)=fitness(pg,D);end%------ 進(jìn)入主要循環(huán),按照公式依次迭代,直到滿足精度要求 ------------fort=1:MaxDTfori=1:Nv(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));精品文檔交流 9x(i,:)=x(i,:)+v(i,:);iffitness(x(i,:),D)<p(i)p(i)=fitness(x(i,:),D);y(i,:)=x(i,:);endifp(i)<FITNESS(pg,D)pg=y(i,:);endendPbest(t)=fitness(pg,D);end%------ 最后給出計(jì)算結(jié)果disp('*************************************************************')disp(' 函數(shù)的全局最優(yōu)位置為: ')Solution=pg'disp(' 最后得到的優(yōu)化極值為: ')Result=fitness(pg,D)disp('******************************************************

溫馨提示

  • 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)論