遺傳算法二變量_第1頁
遺傳算法二變量_第2頁
遺傳算法二變量_第3頁
遺傳算法二變量_第4頁
遺傳算法二變量_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、function ga_main()%遺傳算法% GA main program% Edited by Tan % Revision: 1.1 % Date: 2009/07/09% n-種群規(guī)模 ger-迭代次數(shù) pc-交叉概率 pm-變異概率% v-初始種群(規(guī)模為n)% f-目標函數(shù)值 fit-適應(yīng)度向量% vx-最優(yōu)適應(yīng)度值向量 vmfit-平均適應(yīng)度值向量clear all;close all;clc;%清屏tic;%計時器開始計時n=20;ger=100;pc=0.65;pm=0.05;%初始化參數(shù)%以上為經(jīng)驗值,可以更改。%生成初始種群v=init_population(n,44

2、); %得到初始種群,22串長,生成20*22的0-1矩陣N,L=size(v);%得到初始規(guī)模行,列disp(sprintf(Number of generations:%d,ger);disp(sprintf(Population size:%d,N);disp(sprintf(Crossover probability:%.3f,pc);disp(sprintf(Mutation probability:%.3f,pm); %sprintf 可以控制輸出格式%待優(yōu)化問題xmin = -3;xmax=3;ymin=-2;ymax=2; %變量 X 范圍f=(x.人2-2*x).*exp(-

3、(x.人2+y.人2+x.*y);%計算適應(yīng)度,并畫出初始種群圖形figure(1);%打開第一個窗口x,y = meshgrid(-3:0.1:3,-2:0.1:2);fit二eval(f);mesh(x,y,fit);% 作圖grid on;hold on;x=decode(v(:,1:22),xmin,xmax);y=decode(v(:,23:44),ymin,ymax);%22位二進制換成十進制,冒號表示對所有行進行操 作。%x,y = meshgrid(x,y)fit=eval(f)%eval轉(zhuǎn)化成數(shù)值型的計算適應(yīng)度plot3(x,y,fit,*);%作 圖title(a)染色體的

4、初始位置);%標題xlabel(x);ylabel(y);%標記車由%迭代前的初始化vmfit=;%平均適應(yīng)度vx=; %最優(yōu)適應(yīng)度it=1; %迭代計數(shù)器% 開始進化while it=ger %迭代次數(shù) %100代%Reproduction(Bi-classist Selection)vtemp=roulette(v,fit);%M制%Crossoverv=crossover(vtemp,pc);%交叉%MutationM = rand(N,L) = pm;%這里的作用找到比0.05小的分量%M(1,:)=zeros(1,L);v二v-2.*(v.*M) + M;%兩個0-1矩陣相乘后M是1

5、的地方V就不變,再乘以2.%這里是點乘變異%Resultsx=decode(v(:,1:22),xmin,xmax);%解 碼,求目標函數(shù)值y=decode(v(:,23:44),xmin,xmax)fit=eval(f);%計算數(shù)值sol,indb=max(fit);%每次迭代中最優(yōu)目標函數(shù)值,包括位置v(1,:)=v(indb,:);%用最大值代替fit_mean=mean(fit); %每次迭代中目標函數(shù)值的平均值。mean求均值vx=vx sol;%最優(yōu)適應(yīng)度值vmfit=vmfit fit_mean;% 適應(yīng)度均值it=it+1;%迭代次數(shù)計數(shù)器增加end%最后結(jié)果disp(spri

6、ntf(n); %空一行顯示最優(yōu)解及最優(yōu)值disp(sprintf(Maximum foundx,y,f(x):%.4f,%.4f,%.4f,x(indb),y(indb),sol);%圖形顯示最優(yōu)結(jié)果figure(2);plot3(x,y,fit,r*);grid on;hold on;x,y=meshgrid(-3:0.1:3,-2:0.1:2);fit二eval(f);mesh(x,y,fit);% 作圖title(染色體的最終位置);xlabel(x);ylabel(f(x);%圖形顯示最優(yōu)及平均函數(shù)值變化趨勢figure(3);plot(vx);%title(最優(yōu),平均函數(shù)值變化趨勢

7、);xlabel(Generations);ylabel(f(x);hold on;plot(vmfit,r);hold off;runtime=toc%記時結(jié)束end%Decodify bitstringsfunction x=decode(v,xymin,xymax)% x real value(precision:6)% v binary string(length:22)v=fliplr(v); %實現(xiàn)左右翻轉(zhuǎn)顛倒s,c=size(v); %。代表串長。求行,列aux=0:1:c-1;%21 維向量aux=ones(s,1)*aux;%權(quán)值向量矩陣x1二sum(v.*2.人aux);%

8、權(quán)值注意轉(zhuǎn)置 %sum是求列和x=xymin+(xymax-xymin)*x1./(2Ac-1);%最大值 4194303;end%Crossoverfunction v=crossover(vtemp,pc)N,L=size(vtemp);C(:,1) = rand(N,1) = pc;%選擇被雜交的。=siz e(I)%奇數(shù)個處理break;endsite二fix(1 + L*rand(1);%fix向零取整,L=22.%site 屬于 1-22.temp=vtemp(I(i,1),:);%交換的暫存變量。Tvtemp(I(i,1),site:end)=vtemp(I(i + 1,1),site:end);%交換后面的數(shù)值vtemp(I(i + 1,1),site:end)=temp(:,site:end);%交換endv二vtemp;%復制返回end%Function init_populationfunction v=init_population(n1,s1)v=round(rand(n1,s1);%rand產(chǎn)生隨機數(shù),%round四舍五入取整end%function vtemp二roulette(v,fit)N=size(v); %N 向量fitmin二abs(min(fit);% 最小值和絕對值fit=fitmin+fit; %最小值加上步長,保證fit=0.%

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論