![遺傳算法的Matlab實(shí)現(xiàn)講解_第1頁](http://file4.renrendoc.com/view/9a482406f94030ab9f83bfd6aaa84a49/9a482406f94030ab9f83bfd6aaa84a491.gif)
![遺傳算法的Matlab實(shí)現(xiàn)講解_第2頁](http://file4.renrendoc.com/view/9a482406f94030ab9f83bfd6aaa84a49/9a482406f94030ab9f83bfd6aaa84a492.gif)
![遺傳算法的Matlab實(shí)現(xiàn)講解_第3頁](http://file4.renrendoc.com/view/9a482406f94030ab9f83bfd6aaa84a49/9a482406f94030ab9f83bfd6aaa84a493.gif)
![遺傳算法的Matlab實(shí)現(xiàn)講解_第4頁](http://file4.renrendoc.com/view/9a482406f94030ab9f83bfd6aaa84a49/9a482406f94030ab9f83bfd6aaa84a494.gif)
![遺傳算法的Matlab實(shí)現(xiàn)講解_第5頁](http://file4.renrendoc.com/view/9a482406f94030ab9f83bfd6aaa84a49/9a482406f94030ab9f83bfd6aaa84a495.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)學(xué)建模專題之
遺傳算法的MATLAB實(shí)現(xiàn)遺傳算法的Matlab實(shí)現(xiàn)講解ContentsIMatlab編程實(shí)現(xiàn)GA1Matlab函數(shù)調(diào)用實(shí)現(xiàn)GA2Matlab工具箱實(shí)現(xiàn)GA3遺傳算法的Matlab實(shí)現(xiàn)講解Matlab編程實(shí)現(xiàn)GA例1:計(jì)算目標(biāo)函數(shù)值函數(shù)
遺傳算法的Matlab實(shí)現(xiàn)講解主程序
%遺傳算法主程序functionMy_GAglobalCmin;Cmin=-10^6;popsize=50;%群體大小Gene=20;chromlength=20;%字符串長度(個體長度)pc=0.8;%交叉概率pm=0.01;%變異概率Xmax=10;Xmin=0;Matlab編程實(shí)現(xiàn)GApop=initpop(popsize,chromlength);%隨機(jī)產(chǎn)生初始群體fori=1:Gene%20為迭代次數(shù)
[objvalue]=calobjvalue(pop,chromlength,Xmax,Xmin);%計(jì)算目標(biāo)函數(shù)
fitvalue=calfitvalue(objvalue);%計(jì)算群體中每個個體的適應(yīng)度
[newpop]=selection(pop,fitvalue);%復(fù)制
[newpop]=crossover(newpop,pc);%交叉
[newpop]=mutation(newpop,pm);%變異[bestindividual,bestfit]=best(pop,fitvalue);%求出群體中適應(yīng)值最大的個體及其適應(yīng)值
x(i)=decodechrom(bestindividual,1,chromlength)*10/(2^chromlength-1);%最佳個體解碼
y(i)=bestfit+Cmin;%最佳個體適應(yīng)度
y_mean(i)=mean(fitvalue+Cmin);%第i代平均適應(yīng)度
pop=newpop;endfplot('2*x+10*sin(5*x)+7*cos(4*x)',[010])holdonplot(x,y,'r*')holdoff遺傳算法的Matlab實(shí)現(xiàn)講解初始化(編碼)
%initpop.m函數(shù)的功能是實(shí)現(xiàn)群體的初始化,popsize表示群體的大小,chromlength表示染色體的長度(二值數(shù)的長度),%長度大小取決于變量的二進(jìn)制編碼的長度(在本例中取20位)。%Name:initpop.mfunctionpop=initpop(popsize,chromlength)pop=round(rand(popsize,chromlength));%rand隨機(jī)產(chǎn)生每個單元為{0,1}行數(shù)為popsize,列數(shù)為chromlength的矩陣,%round對矩陣的每個單元進(jìn)行取整。這樣產(chǎn)生的初始種群。Matlab編程實(shí)現(xiàn)GA遺傳算法的Matlab實(shí)現(xiàn)講解將二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)
將二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)%產(chǎn)生[2^n2^(n-1)...1]的行向量,然后求和,將二進(jìn)制轉(zhuǎn)化為十進(jìn)制functionpop2=decodebinary(pop)[px,py]=size(pop);%求pop行和列數(shù)fori=1:py pop1(:,i)=2.^(py-i).*pop(:,i);endpop2=sum(pop1,2);%求pop1的每行之和functionpop2=decodechrom(pop,spoint,length)pop1=pop(:,spoint:spoint+length-1);pop2=decodebinary(pop1);Matlab編程實(shí)現(xiàn)GA遺傳算法的Matlab實(shí)現(xiàn)講解計(jì)算目標(biāo)函數(shù)值
計(jì)算目標(biāo)函數(shù)值%calobjvalue.m函數(shù)的功能是實(shí)現(xiàn)目標(biāo)函數(shù)的計(jì)算,其公式采用本文示例仿真,可根據(jù)不同優(yōu)化問題予以修改。%遺傳算法子程序%Name:calobjvalue.m%實(shí)現(xiàn)目標(biāo)函數(shù)的計(jì)算function[objvalue]=calobjvalue(pop,chromlength,Xmax,Xmin)temp1=decodechrom(pop,1,chromlength);%將pop每行轉(zhuǎn)化成十進(jìn)制數(shù)x=temp1*(Xmax-Xmin)/(2^chromlength-1);%將十進(jìn)制域中的數(shù)轉(zhuǎn)化為變量域的數(shù)objvalue=2*x+10*sin(5*x)+7*cos(4*x);%計(jì)算目標(biāo)函數(shù)值Matlab編程實(shí)現(xiàn)GA遺傳算法的Matlab實(shí)現(xiàn)講解計(jì)算個體的適應(yīng)值
functionfitvalue=calfitvalue(objvalue)globalCmin;fitvalue=objvalue-Cmin;Matlab編程實(shí)現(xiàn)GA遺傳算法的Matlab實(shí)現(xiàn)講解選擇復(fù)制
function[newpop]=selection(pop,fitvalue)%程序中采用賭輪盤選擇法選擇實(shí)現(xiàn)totalfit=sum(fitvalue);%求適應(yīng)值之和fitvalue=fitvalue/totalfit;%單個個體被選擇的概率fitvalue=cumsum(fitvalue);%如fitvalue=[1234],則cumsum(fitvalue)=[13610][px,py]=size(pop);ms=sort(rand(px,1));%從小到大排列fitin=1;newin=1;whilenewin<=px%蒙特卡洛方法抽樣
if(ms(newin))<fitvalue(fitin)newpop(newin,:)=pop(fitin,:);newin=newin+1;elsefitin=fitin+1;endendMatlab編程實(shí)現(xiàn)GA遺傳算法的Matlab實(shí)現(xiàn)講解交叉
function[newpop]=crossover(pop,pc)[px,py]=size(pop);newpop=ones(size(pop));fori=1:2:px-1if(rand<pc)cpoint=round(rand*py);newpop(i,:)=[pop(i,1:cpoint),pop(i+1,cpoint+1:py)];newpop(i+1,:)=[pop(i+1,1:cpoint),pop(i,cpoint+1:py)];elsenewpop(i,:)=pop(i);newpop(i+1,:)=pop(i+1);endendMatlab編程實(shí)現(xiàn)GA遺傳算法的Matlab實(shí)現(xiàn)講解變異
function[newpop]=mutation(pop,pm)[px,py]=size(pop);newpop=ones(size(pop));fori=1:pxif(rand<pm)mpoint=round(rand*py);ifmpoint<=0mpoint=1;endnewpop(i,:)=pop(i,:);
Matlab編程實(shí)現(xiàn)GAifany(newpop(i,mpoint))==0newpop(i,mpoint)=1;elsenewpop(i,mpoint)=0;endelsenewpop(i,:)=pop(i,:);endend遺傳算法的Matlab實(shí)現(xiàn)講解求出群體中最大的適應(yīng)值及其個體
function[bestindividual,bestfit]…=best(pop,fitvalue)[px,py]=size(pop);bestindividual=pop(1,:);bestfit=fitvalue(1);fori=2:pxiffitvalue(i)>bestfitbestindividual=pop(i,:);bestfit=fitvalue(i);endendMatlab編程實(shí)現(xiàn)GA或function[bestindividual,bestfit]=…best(pop,fitvalue)[bestfit,m_indx]=max(fitvalue);bestindividual=pop(m_indx,:);遺傳算法的Matlab實(shí)現(xiàn)講解結(jié)果見My_GA.m
Matlab編程實(shí)現(xiàn)GA遺傳算法的Matlab實(shí)現(xiàn)講解Matlab函數(shù)調(diào)用實(shí)現(xiàn)GAMatlab的GA函數(shù)
[xfval]=ga(@fitnessfun,nvars,[],[],[],[],[],[],[],options);fitnessfcn—Fitnessfunctionnvars—NumberofvariablesfortheproblemAineq—MatrixforinequalityconstraintsBineq—VectorforinequalityconstraintsAeq—MatrixforequalityconstraintsBeq—VectorforequalityconstraintsLB—LowerboundonxUB—Upperboundonxnonlcon—NonlinearconstraintFunctionoptions—Optionsstructure遺傳算法的Matlab實(shí)現(xiàn)講解Matlab函數(shù)調(diào)用實(shí)現(xiàn)GAMatlab的GA函數(shù)x=ga(fitnessfcn,nvars)x=ga(fitnessfcn,nvars,A,b)x=ga(fitnessfcn,nvars,A,b,Aeq,beq)x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon)x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)x=ga(problem)[x,fval]=ga(...)[x,fval,exitflag]=ga(...)遺傳算法的Matlab實(shí)現(xiàn)講解Matlab函數(shù)調(diào)用實(shí)現(xiàn)GAGA函數(shù)調(diào)用步驟第一步:編寫適應(yīng)度函數(shù);第二步:對GA參數(shù)進(jìn)行設(shè)置;options=gaoptimset(‘參數(shù)名’,參數(shù)值,…,‘參數(shù)名’,參數(shù)值)例:options=gaoptimset('PopulationSize',100)第三步:調(diào)用GA函數(shù);[xfval]=ga(@fitnessfun,nvars)[xfvalexitflagoutputpopulationscores]=ga(@fitnessfcn,nvars)[xfval]=ga(@fitnessfun,nvars,[],[],[],[],[],[],[],options);specifyanylinearequality,linearinequality,ornonlinearconstraints遺傳算法的Matlab實(shí)現(xiàn)講解Matlab函數(shù)調(diào)用實(shí)現(xiàn)GA調(diào)用GA函數(shù)求例1的最大值(見ga_eg1.m)第一步:編寫適應(yīng)度函數(shù);functiony=fit1(x)y=-(2*x+10*sin(5*x)+7*cos(4*x));第二步:設(shè)置參數(shù)options=gaoptimset('PopulationSize',100,'PopulationType','doubleVector','PlotFcns',{@gaplotbestf,@gaplotbestindiv,@gaplotexpectation,@gaplotstopping})第三步:調(diào)用GA函數(shù)[xfval]=ga(@fit1,1,[],[],[],[],0,10,[],options);最后還原y=-1*fit1(x)%最小值還原為最大值figure;fplot('2*x+10*sin(5*x)+7*cos(4*x)',[010])holdonplot(x,y,'*')遺傳算法的Matlab實(shí)現(xiàn)講解
遺傳算法的GA工具箱實(shí)現(xiàn):Matlab的GA工具箱(R2007)遺傳算法的Matlab實(shí)現(xiàn)講解Matlab的GA工具箱(R2010b)
遺傳算法的GA工具箱實(shí)現(xiàn):遺傳算法的Matlab實(shí)現(xiàn)講解例二求下列優(yōu)化問題遺傳算法的Matlab實(shí)現(xiàn)講解Matlab函數(shù)調(diào)用實(shí)現(xiàn)調(diào)用GA函數(shù)求解(見ga_eg2.m)
functionga_eg2A=[11;-12;21];b=[2;2;3];lb=zeros(2,1);[x,fval,exitflag]=ga(@lincontest6,2,A,b,[],[],lb);mesh_lincontest6;holdon;plot3(x(1),x(2),fval,'r*');
functionmesh_lincontest6m=10;n=1000;x=-n:m:n;y=-n:m:n;z=0.5*(ones(length(x),1)*x).^2+(ones(length(y),1)*y).^2...-(ones(length(x),1)*x).*(ones(length(y),1)*y)-2*(ones(...length(x),1)*x)-6*(ones(length(y),1)*y);mesh(x,y,z)遺傳算法的Matlab實(shí)現(xiàn)講解Matlab函數(shù)調(diào)用實(shí)現(xiàn)調(diào)用GA函數(shù)求解(見ga_eg2.m)
遺傳算法的Matlab實(shí)現(xiàn)講解遺傳算法的GA工具箱實(shí)現(xiàn)Matlab的GA工具箱(R2010b)遺傳算法的Matlab實(shí)現(xiàn)講解練習(xí)一在-5<=Xi<=5,i=1,2區(qū)間內(nèi),求解f(x1,x2)=-20*exp(0.2*sqrt(0.5*(x1.^2+x2.^2)))-exp(0.5*(cos(2*pi*x1)+cos(2*pi*x2)))+22.71282的最小值。要求:種群大小20,最大代數(shù)100,變異率0.1,交叉率0.7遺傳算法的Matlab實(shí)現(xiàn)講解ContentsIIGA求解多目標(biāo)優(yōu)化問題1GA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)2GA求解TSP問題3遺傳算法的Matlab實(shí)現(xiàn)講解II-1GA求解多目標(biāo)優(yōu)化問題通常多目標(biāo)優(yōu)化,例如非線性整數(shù)規(guī)劃是一個具有指數(shù)復(fù)雜度的NP問題,如果約束較為復(fù)雜,Matlab優(yōu)化工具箱和一些優(yōu)化軟件比如lingo等,常常無法應(yīng)用,即使能應(yīng)用也不能給出一個較為令人滿意的解。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)物料策劃供應(yīng)合同協(xié)議
- 2025年律師事務(wù)所服務(wù)協(xié)議標(biāo)準(zhǔn)文本
- 2025年通信電源項(xiàng)目申請報告模板
- 2025年穿水冷卻裝置項(xiàng)目提案報告
- 2025年住宅銷售經(jīng)紀(jì)服務(wù)協(xié)議
- 2025年市場準(zhǔn)入合規(guī)策劃合作框架協(xié)議
- 2025年企業(yè)簽訂網(wǎng)絡(luò)安全協(xié)議
- 2025年企業(yè)股東間保密協(xié)議策劃樣本
- 2025年實(shí)習(xí)生供求策劃協(xié)議書模板
- 2025年丹陽市美容院股東權(quán)益策劃與分配合同書
- 2025年空白離婚協(xié)議書
- 校長在行政會上總結(jié)講話結(jié)合新課標(biāo)精神給學(xué)校管理提出3點(diǎn)建議
- T-CSUS 69-2024 智慧水務(wù)技術(shù)標(biāo)準(zhǔn)
- 《零起點(diǎn)學(xué)中醫(yī)》課件
- 2025年護(hù)理質(zhì)量與安全管理工作計(jì)劃
- 湖南大學(xué) 嵌入式開發(fā)與應(yīng)用(張自紅)教案
- 地下商業(yè)街的規(guī)劃設(shè)計(jì)
- 長安大學(xué)《畫法幾何與機(jī)械制圖一》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024-2030年全球及中國低密度聚乙烯(LDPE)行業(yè)需求動態(tài)及未來發(fā)展趨勢預(yù)測報告
- DB14T+3154-2024泡沫瀝青就地冷再生路面施工技術(shù)規(guī)范
- 機(jī)電設(shè)備及工藝作業(yè)指導(dǎo)書
評論
0/150
提交評論