版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
MATLAB智能算法30個案例分析MATLAB智能算法30個案例分析第1章1、案例背景遺傳算法(GeneticAlgorithm,GA)是一種進化算法,其基本原理是仿效生物界中的“物競天擇、適者生存”的演化法則。遺傳算法的做法是把問題參數(shù)編碼為染色體,再利用迭代的方式進行選擇、交叉以及變異等運算來交換種群中染色體的信息,最終生成符合優(yōu)化目標的染色體。在遺傳算法中,染色體對應的是數(shù)據(jù)或數(shù)組,通常是由一維的串結(jié)構(gòu)數(shù)據(jù)來表示,串上各個位置對應基因的取值?;蚪M成的串就是染色體,或者叫基因型個體(Individuals)
。一定數(shù)量的個體組成了群體(Population)。群體中個體的數(shù)目稱為群體大?。≒opulationSize),也叫群體規(guī)模。而各個個體對環(huán)境的適應程度叫做適應度(Fitness)
。2、案例目錄:1.1
理論基礎1.1.1
遺傳算法概述1.
編碼2.
初始群體的生成3.
適應度評估4.
選擇5.
交叉6.
變異1.1.2
設菲爾德遺傳算法工具箱1.
工具箱簡介2.
工具箱添加1.2
案例背景1.2.1
問題描述1.
簡單一元函數(shù)優(yōu)化2.
多元函數(shù)優(yōu)化1.2.2
解決思路及步驟1.3MATLAB程序?qū)崿F(xiàn)1.3.1
工具箱結(jié)構(gòu)1.3.2
遺傳算法中常用函數(shù)1.
創(chuàng)建種群函數(shù)—crtbp2.
適應度計算函數(shù)—ranking3.
選擇函數(shù)—select4.
交叉算子函數(shù)—recombin5.
變異算子函數(shù)—mut6.
選擇函數(shù)—reins7.
實用函數(shù)—bs2rvMATLAB智能算法30個案例分析全文共109頁,當前為第1頁。8.
實用函數(shù)—repMATLAB智能算法30個案例分析全文共109頁,當前為第1頁。1.3.3
遺傳算法工具箱應用舉例1.
簡單一元函數(shù)優(yōu)化2.
多元函數(shù)優(yōu)化1.4
延伸閱讀1.5
參考文獻3、主程序:1.簡單一元函數(shù)優(yōu)化:clcclearallcloseall%%畫出函數(shù)圖figure(1);holdon;lb=1;ub=2;%函數(shù)自變量范圍【1,2】ezplot('sin(10*pi*X)/X',[lb,ub]);%畫出函數(shù)曲線xlabel('自變量/X')ylabel('函數(shù)值/Y')%%定義遺傳算法參數(shù)NIND=40;%個體數(shù)目MAXGEN=20;%最大遺傳代數(shù)PRECI=20;%變量的二進制位數(shù)GGAP=0.95;%代溝px=0.7;%交叉概率pm=0.01;%變異概率trace=zeros(2,MAXGEN);%尋優(yōu)結(jié)果的初始值FieldD=[PRECI;lb;ub;1;0;1;1];%區(qū)域描述器Chrom=crtbp(NIND,PRECI);%初始種群%%優(yōu)化gen=0;%代計數(shù)器X=bs2rv(Chrom,FieldD);%計算初始種群的十進制轉(zhuǎn)換ObjV=sin(10*pi*X)./X;%計算目標函數(shù)值whilegen<MAXGENFitnV=ranking(ObjV);%分配適應度值SelCh=select('sus',Chrom,FitnV,GGAP);%選擇SelCh=recombin('xovsp',SelCh,px);%重組SelCh=mut(SelCh,pm);%變異X=bs2rv(SelCh,FieldD);%子代個體的十進制轉(zhuǎn)換ObjVSel=sin(10*pi*X)./X;%計算子代的目標函數(shù)值[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代到父代,得到新種群X=bs2rv(Chrom,FieldD);MATLAB智能算法30個案例分析全文共109頁,當前為第2頁。gen=gen+1;%代計數(shù)器增加MATLAB智能算法30個案例分析全文共109頁,當前為第2頁。%獲取每代的最優(yōu)解及其序號,Y為最優(yōu)解,I為個體的序號[Y,I]=min(ObjV);trace(1,gen)=X(I);%記下每代的最優(yōu)值trace(2,gen)=Y;%記下每代的最優(yōu)值endplot(trace(1,:),trace(2,:),'bo');%畫出每代的最優(yōu)點gridon;plot(X,ObjV,'b*');%畫出最后一代的種群holdoff%%畫進化圖figure(2);plot(1:MAXGEN,trace(2,:));gridonxlabel('遺傳代數(shù)')ylabel('解的變化')title('進化過程')bestY=trace(2,end);bestX=trace(1,end);fprintf(['最優(yōu)解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\n'])2.多元函數(shù)優(yōu)化clcclearallcloseall%%畫出函數(shù)圖figure(1);lbx=-2;ubx=2;%函數(shù)自變量x范圍【-2,2】lby=-2;uby=2;%函數(shù)自變量y范圍【-2,2】ezmesh('y*sin(2*pi*x)+x*cos(2*pi*y)',[lbx,ubx,lby,uby],50);%畫出函數(shù)曲線holdon;%%定義遺傳算法參數(shù)NIND=40;%個體數(shù)目MAXGEN=50;%最大遺傳代數(shù)PRECI=20;%變量的二進制位數(shù)GGAP=0.95;%代溝px=0.7;%交叉概率pm=0.01;%變異概率trace=zeros(3,MAXGEN);%尋優(yōu)結(jié)果的初始值FieldD=[PRECIPRECI;lbxlby;ubxuby;11;00;11;11];%區(qū)域描述器Chrom=crtbp(NIND,PRECI*2);%初始種群%%優(yōu)化gen=0;%代計數(shù)器XY=bs2rv(Chrom,FieldD);%計算初始種群的十進制轉(zhuǎn)換MATLAB智能算法30個案例分析全文共109頁,當前為第3頁。X=XY(:,1);Y=XY(:,2);MATLAB智能算法30個案例分析全文共109頁,當前為第3頁。ObjV=Y.*sin(2*pi*X)+X.*cos(2*pi*Y);%計算目標函數(shù)值whilegen<MAXGENFitnV=ranking(-ObjV);%分配適應度值SelCh=select('sus',Chrom,FitnV,GGAP);%選擇SelCh=recombin('xovsp',SelCh,px);%重組SelCh=mut(SelCh,pm);%變異XY=bs2rv(SelCh,FieldD);%子代個體的十進制轉(zhuǎn)換X=XY(:,1);Y=XY(:,2);ObjVSel=Y.*sin(2*pi*X)+X.*cos(2*pi*Y);%計算子代的目標函數(shù)值[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代到父代,得到新種群XY=bs2rv(Chrom,FieldD);gen=gen+1;%代計數(shù)器增加%獲取每代的最優(yōu)解及其序號,Y為最優(yōu)解,I為個體的序號[Y,I]=max(ObjV);trace(1:2,gen)=XY(I,:);%記下每代的最優(yōu)值trace(3,gen)=Y;%記下每代的最優(yōu)值endplot3(trace(1,:),trace(2,:),trace(3,:),'bo');%畫出每代的最優(yōu)點gridon;plot3(XY(:,1),XY(:,2),ObjV,'bo');%畫出最后一代的種群holdoff%%畫進化圖figure(2);plot(1:MAXGEN,trace(3,:));gridonxlabel('遺傳代數(shù)')ylabel('解的變化')title('進化過程')bestZ=trace(3,end);bestX=trace(1,end);bestY=trace(2,end);fprintf(['最優(yōu)解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\nZ=',num2str(bestZ),'\n'])第2章基于遺傳算法和非線性規(guī)劃的函數(shù)尋優(yōu)算法MATLAB智能算法30個案例分析全文共109頁,當前為第4頁。1.1案例背景
1.1.1
非線性規(guī)劃方法
MATLAB智能算法30個案例分析全文共109頁,當前為第4頁。
非線性規(guī)劃是20世紀50年代才開始形成的一門新興學科。1951年H.W.庫恩和A.W.塔克發(fā)表的關于最優(yōu)性條件(后來稱為庫恩.塔克條件)的論文是非線性規(guī)劃正式誕生的一個重要標志。
非線性規(guī)劃研究一個n元實函數(shù)在一組等式或不等式的約束條件下的極值問題,且目標函數(shù)和約束條件至少有一個是未知量的非線性函數(shù)。非線性規(guī)劃的一個重要理論是1951年Kuhn-Tucker最優(yōu)條件(簡稱KT條件)的建立。此后的50年代主要是對梯度法和牛頓法的研究。以Davidon(1959),F(xiàn)letcher和Powell(1963)提出的DFP方法為起點,60年代是研究擬牛頓方法活躍時期,同時對共軛梯度法也有較好的研究。在1970年由Broyden,F(xiàn)letcher、Goldfarb
和Shanno從不同的角度共同提出的BFGS方法是目前為止最有效的擬牛頓方法。由于Broyden,Dennis
和More的工作使得擬牛頓方法的理論變得很完善。
70年代是非線性規(guī)劃飛速發(fā)展時期,
約束變尺度(SQP)方法(Han和Powell為代表)和Lagrange乘子法(代表人物是Powell
和Hestenes)是這一時期主要研究成果.計算機的飛速發(fā)展使非線性規(guī)劃的研究如虎添翼。80年**始研究信賴域法、稀疏擬牛頓法、大規(guī)模問題的方法和并行計算,90年代研究解非線性規(guī)劃問題的內(nèi)點法和有限儲存法??梢院敛豢鋸埖恼f,這半個世紀是最優(yōu)化發(fā)展的黃金時期。
1.1.2非線性規(guī)劃函數(shù)
fmincon函數(shù)是Matlab最優(yōu)化工具箱中用來求解非線性規(guī)劃問題的重要函數(shù),它從一個預估值出發(fā),搜索約束條件下非線性多元函數(shù)的最小值。
1.1.3
案例
1.2
模型建立
算法流程圖如下:MATLAB智能算法30個案例分析全文共109頁,當前為第5頁。
MATLAB智能算法30個案例分析全文共109頁,當前為第5頁。1.3仿真結(jié)果
非線性遺傳算法尋優(yōu)結(jié)果如下:
普通遺傳算法尋優(yōu)結(jié)果如下:
主函數(shù)代碼如下:%%清空環(huán)境clcclear%%遺傳算法參數(shù)maxgen=30;%進化代數(shù)sizepop=100;%種群規(guī)模pcross=[0.6];%交叉概率pmutation=[0.01];%變異概率MATLAB智能算法30個案例分析全文共109頁,當前為第6頁。lenchrom=[11111];%變量字串長度MATLAB智能算法30個案例分析全文共109頁,當前為第6頁。bound=[00.9*pi;00.9*pi;00.9*pi;00.9*pi;00.9*pi];%變量范圍%%個體初始化individuals=struct('fitness',zeros(1,sizepop),'chrom',[]);%種群結(jié)構(gòu)體avgfitness=[];%種群平均適應度bestfitness=[];%種群最佳適應度bestchrom=[];%適應度最好染色體%初始化種群fori=1:sizepopindividuals.chrom(i,:)=Code(lenchrom,bound);%隨機產(chǎn)生個體x=individuals.chrom(i,:);individuals.fitness(i)=fun(x);%個體適應度end%找最好的染色體[bestfitnessbestindex]=min(individuals.fitness);bestchrom=individuals.chrom(bestindex,:);%最好的染色體avgfitness=sum(individuals.fitness)/sizepop;%染色體的平均適應度%記錄每一代進化中最好的適應度和平均適應度trace=[avgfitnessbestfitness];%%進化開始fori=1:maxgen%選擇操作individuals=Select(individuals,sizepop);avgfitness=sum(individuals.fitness)/sizepop;%交叉操作individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);%變異操作individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,[imaxgen],bound);%計算適應度forj=1:sizepopx=individuals.chrom(j,:);individuals.fitness(j)=fun(x);end%找到最小和最大適應度的染色體及它們在種群中的位置[newbestfitness,newbestindex]=min(individuals.fitness);[worestfitness,worestindex]=max(individuals.fitness);%代替上一次進化中最好的染色體ifbestfitness>newbestfitnessMATLAB智能算法30個案例分析全文共109頁,當前為第7頁。bestfitness=newbestfitness;MATLAB智能算法30個案例分析全文共109頁,當前為第7頁。bestchrom=individuals.chrom(newbestindex,:);endindividuals.chrom(worestindex,:)=bestchrom;individuals.fitness(worestindex)=bestfitness;avgfitness=sum(individuals.fitness)/sizepop;trace=[trace;avgfitnessbestfitness];%記錄每一代進化中最好的適應度和平均適應度end%進化結(jié)束%%結(jié)果顯示[rc]=size(trace);plot([1:r]',trace(:,1),'r-',[1:r]',trace(:,2),'b--');title(['函數(shù)值曲線''終止代數(shù)='num2str(maxgen)]);xlabel('進化代數(shù)');ylabel('函數(shù)值');legend('各代平均值','各代最佳值');disp('函數(shù)值變量');%窗口顯示disp([bestfitnessx]);第3章基于遺傳算法的BP神經(jīng)網(wǎng)絡優(yōu)化算法1、案例背景
BP網(wǎng)絡是一類多層的前饋神經(jīng)網(wǎng)絡。它的名字源于在網(wǎng)絡訓練的過程中,調(diào)整網(wǎng)絡的權(quán)值的算法是誤差的反向傳播的學習算法,即為BP學習算法。BP算法是Rumelhart等人在1986年提出來的。由于它的結(jié)構(gòu)簡單,可調(diào)整的參數(shù)多,訓練算法也多,而且可操作性好,BP神經(jīng)網(wǎng)絡獲得了非常廣泛的應用。據(jù)統(tǒng)計,有80%~90%的神經(jīng)網(wǎng)絡模型都是采用了BP網(wǎng)絡或者是它的變形。BP網(wǎng)絡是前向網(wǎng)絡的核心部分,是神經(jīng)網(wǎng)絡中最精華、最完美的部分。BP神經(jīng)網(wǎng)絡雖然是人工神經(jīng)網(wǎng)絡中應用最廣泛的算法,但是也存在著一些缺陷,例如:①、學習收斂速度太慢;②、不能保證收斂到全局最小點;③、網(wǎng)絡結(jié)構(gòu)不易確定。另外,網(wǎng)絡結(jié)構(gòu)、初始連接權(quán)值和閾值的選擇對網(wǎng)絡訓練的影響很大,但是又無法準確獲得,針對這些特點可以采用遺傳算法對神經(jīng)網(wǎng)絡進行優(yōu)化。
MATLAB智能算法30個案例分析全文共109頁,當前為第8頁。本節(jié)以某型號拖拉機的齒輪箱為工程背景,介紹使用基于遺傳算法的BP神經(jīng)網(wǎng)絡進行齒輪箱故障的診斷。MATLAB智能算法30個案例分析全文共109頁,當前為第8頁。2、案例目錄:第3章
基于遺傳算法的BP神經(jīng)網(wǎng)絡優(yōu)化算法3.1
理論基礎
3.1.1BP神經(jīng)網(wǎng)絡概述
3.1.2
遺傳算法概述3.2
案例背景
3.2.1
問題描述
3.2.2
解決思路及步驟
1.
算法流程
2.
神經(jīng)網(wǎng)絡算法實現(xiàn)
3.
遺傳算法實現(xiàn)3.3MATLAB程序?qū)崿F(xiàn)
3.3.1
神經(jīng)網(wǎng)絡算法
3.3.2
遺傳算法主函數(shù)
3.3.3
比較使用遺傳算法前后的差別
3.3.4
結(jié)果分析3.4
延伸閱讀3.5
參考文獻3、主程序:clcclearallcloseall%%加載神經(jīng)網(wǎng)絡的訓練樣本測試樣本每列一個樣本輸入P輸出T%樣本數(shù)據(jù)就是前面問題描述中列出的數(shù)據(jù)loaddata%初始隱層神經(jīng)元個數(shù)hiddennum=31;%輸入向量的最大值和最小值threshold=[01;01;01;01;01;01;01;01;01;01;01;01;01;01;01];inputnum=size(P,1);%輸入層神經(jīng)元個數(shù)outputnum=size(T,1);%輸出層神經(jīng)元個數(shù)w1num=inputnum*hiddennum;%輸入層到隱層的權(quán)值個數(shù)w2num=outputnum*hiddennum;%隱層到輸出層的權(quán)值個數(shù)N=w1num+hiddennum+w2num+outputnum;%待優(yōu)化的變量的個數(shù)%%定義遺傳算法參數(shù)NIND=40;%個體數(shù)目MAXGEN=50;%最大遺傳代數(shù)PRECI=10;%變量的二進制位數(shù)MATLAB智能算法30個案例分析全文共109頁,當前為第9頁。GGAP=0.95;%代溝MATLAB智能算法30個案例分析全文共109頁,當前為第9頁。px=0.7;%交叉概率pm=0.01;%變異概率trace=zeros(N+1,MAXGEN);%尋優(yōu)結(jié)果的初始值FieldD=[repmat(PRECI,1,N);repmat([-0.5;0.5],1,N);repmat([1;0;1;1],1,N)];%區(qū)域描述器Chrom=crtbp(NIND,PRECI*N);%初始種群%%優(yōu)化gen=0;%代計數(shù)器X=bs2rv(Chrom,FieldD);%計算初始種群的十進制轉(zhuǎn)換ObjV=Objfun(X,P,T,hiddennum,P_test,T_test);%計算目標函數(shù)值whilegen<MAXGENfprintf('%d\n',gen)FitnV=ranking(ObjV);%分配適應度值SelCh=select('sus',Chrom,FitnV,GGAP);%選擇SelCh=recombin('xovsp',SelCh,px);%重組SelCh=mut(SelCh,pm);%變異X=bs2rv(SelCh,FieldD);%子代個體的十進制轉(zhuǎn)換ObjVSel=Objfun(X,P,T,hiddennum,P_test,T_test);%計算子代的目標函數(shù)值[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代到父代,得到新種群X=bs2rv(Chrom,FieldD);gen=gen+1;%代計數(shù)器增加%獲取每代的最優(yōu)解及其序號,Y為最優(yōu)解,I為個體的序號[Y,I]=min(ObjV);trace(1:N,gen)=X(I,:);%記下每代的最優(yōu)值trace(end,gen)=Y;%記下每代的最優(yōu)值end%%畫進化圖figure(1);plot(1:MAXGEN,trace(end,:));gridonxlabel('遺傳代數(shù)')ylabel('誤差的變化')title('進化過程')bestX=trace(1:end-1,end);bestErr=trace(end,end);fprintf(['最優(yōu)初始權(quán)值和閾值:\nX=',num2str(bestX'),'\n最小誤差err=',num2str(bestErr),'\n'])MATLAB智能算法30個案例分析全文共109頁,當前為第10頁。MATLAB智能算法30個案例分析全文共109頁,當前為第10頁。第4章基于遺傳算法的TSP算法1、案例背景
TSP(旅行商問題—TravelingSalesmanProblem),是典型的NP完全問題,即其最壞情況下的時間復雜性隨著問題規(guī)模的增大按指數(shù)方式增長,到目前為止不能找到一個多項式時間的有效算法。遺傳算法是一種進化算法,其基本原理是仿效生物界中的“物競天擇、適者生存”的演化法則。遺傳算法的做法是把問題參數(shù)編碼為染色體,再利用迭代的方式進行選擇、交叉以及變異等運算來交換種群中染色體的信息,最終生成符合優(yōu)化目標的染色體。實踐證明,遺傳算法對于解決TSP問題等組合優(yōu)化問題具有較好的尋優(yōu)性能。
2、案例目錄:MATLAB智能算法30個案例分析全文共109頁,當前為第11頁。第4章
基于遺傳算法的TSP算法
4.1理論基礎
4.1.1
遺傳算法概述
4.1.2
TSP問題介紹
4.2案例背景
4.2.1
問題描述
4.2.2解決思路及步驟
算法流程
遺傳算法實現(xiàn)
1.編碼
2.種群初始化
3.適應度函數(shù)
4.選擇操作
5.交叉操作
6.變異操作
7.進化逆轉(zhuǎn)操作
4.3MATLAB程序?qū)崿F(xiàn)
4.3.1
種群初始化
4.3.2適應度函數(shù)
4.3.3
選擇操作
4.3.4
交叉操作
4.3.5
變異操作
4.3.6
進化逆轉(zhuǎn)操作
4.3.7
畫路線軌跡圖
4.3.8
遺傳算法主函數(shù)
4.3.9
結(jié)果分析
4.4延伸閱讀
4.4.1
應用擴展
4.4.2
遺傳算法的改進
4.4.3
算法的局限性
4.5參考文獻MATLAB智能算法30個案例分析全文共109頁,當前為第11頁。
3、案例實例及結(jié)果:
本案例以14個城市為例,假定14個城市的位置坐標為:
表4.1
14個城市的位置坐標MATLAB智能算法30個案例分析全文共109頁,當前為第12頁。MATLAB智能算法30個案例分析全文共109頁,當前為第12頁。城市編號X坐標Y坐標116.4796.1216.4794.44320.0992.54422.3993.37525.2397.2462296.05720.4797.02817.296.29916.397.381014.0598.121116.5397.381221.5295.591319.4197.131420.0992.55從某個城市出發(fā)訪問每個城市一次且僅一次,
最后回到出發(fā)城市,如何安排才使其所走路線最短。結(jié)果:優(yōu)化前的一個隨機路線軌跡圖圖4.1
隨機路線圖隨機路線為:11—>7—>10—>4—>12—>9—>14—>8—>13—>5—>2—>3—>6—>1—>11總距離:71.1144MATLAB智能算法30個案例分析全文共109頁,當前為第13頁。優(yōu)化后的路線圖:MATLAB智能算法30個案例分析全文共109頁,當前為第13頁。圖4.2
最優(yōu)解路線圖最優(yōu)解路線:5—>4—>3—>14—>2—>1—>10—>9—>11—>8—>13—>7—>12—>6—>5總距離:29.3405優(yōu)化迭代過程:圖4.3
遺傳算法進化過程圖
4、主程序:MATLAB智能算法30個案例分析全文共109頁,當前為第14頁。clearMATLAB智能算法30個案例分析全文共109頁,當前為第14頁。clccloseallloadCityPosition1;%個城市坐標位置NIND=100;%種群大小MAXGEN=200;Pc=0.9;%交叉概率Pm=0.05;%變異概率GGAP=0.9;%代溝(Generationgap)D=Distanse(X);%生成距離矩陣N=size(D,1);%(34*34)%%初始化種群Chrom=InitPop(NIND,N);%%在二維圖上畫出所有坐標點%figure%plot(X(:,1),X(:,2),'o');%%畫出隨機解的路線圖DrawPath(Chrom(1,:),X)pause(0.0001)%%輸出隨機解的路線和總距離disp('初始種群中的一個隨機值:')OutputPath(Chrom(1,:));Rlength=PathLength(D,Chrom(1,:));disp(['總距離:',num2str(Rlength)]);disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')%%優(yōu)化gen=0;figure;holdon;boxonxlim([0,MAXGEN])title('優(yōu)化過程')xlabel('代數(shù)')ylabel('最優(yōu)值')ObjV=PathLength(D,Chrom);%計算路線長度preObjV=min(ObjV);whilegen<MAXGEN%%計算適應度ObjV=PathLength(D,Chrom);%計算路線長度%fprintf('%d%1.10f\n',gen,min(ObjV))line([gen-1,gen],[preObjV,min(ObjV)]);pause(0.0001)preObjV=min(ObjV);FitnV=Fitness(ObjV);%%選擇SelCh=Select(Chrom,FitnV,GGAP);MATLAB智能算法30個案例分析全文共109頁,當前為第15頁。%%交叉操作MATLAB智能算法30個案例分析全文共109頁,當前為第15頁。SelCh=Recombin(SelCh,Pc);%%變異SelCh=Mutate(SelCh,Pm);%%逆轉(zhuǎn)操作SelCh=Reverse(SelCh,D);%%重插入子代的新種群Chrom=Reins(Chrom,SelCh,ObjV);%%更新迭代次數(shù)gen=gen+1;end%%畫出最優(yōu)解的路線圖ObjV=PathLength(D,Chrom);%計算路線長度[minObjV,minInd]=min(ObjV);DrawPath(Chrom(minInd(1),:),X)%%輸出最優(yōu)解的路線和總距離disp('最優(yōu)解:')p=OutputPath(Chrom(minInd(1),:));disp(['總距離:',num2str(ObjV(minInd(1)))]);disp('')第5章基于遺傳算法的LQR控制器優(yōu)化設計MATLAB智能算法30個案例分析全文共109頁,當前為第16頁。1、案例背景
LQR控制在工程中得到了廣泛的應用,對于LQR最優(yōu)控制,其最優(yōu)性完全取決于加權(quán)矩陣的選擇,然而該加權(quán)矩陣如何選擇并沒有解析方法,只能定性地去選擇矩陣參數(shù),所以這樣的“最優(yōu)”控制事實上完全是認為的。如果選擇不當,雖然可以求出最優(yōu)解,但這樣的“最優(yōu)解”沒有任何意義。另一方面,加權(quán)矩陣的選擇依賴于設計者的經(jīng)驗,需要設計者根據(jù)系統(tǒng)輸出逐步調(diào)整加權(quán)矩陣,直到獲得滿意的輸出響應量為止,這樣不僅費時,而且無法保證獲得最優(yōu)的權(quán)重矩陣,因此獲得的最優(yōu)控制反饋系數(shù)不能保證使系統(tǒng)達到最優(yōu)。遺傳算法(GeneticAlgorithm,GA)是模仿自然界生物進化機制發(fā)展起來的全局搜索優(yōu)化方法,它在迭代過程中使用適者生存的原則,采用交叉、變異等操作使得種群朝著最優(yōu)的方向進化,最終獲得最優(yōu)解。鑒于LQR控制方法權(quán)重矩陣確定困難的問題,本案例以汽車主動懸架作為被控對象,將遺傳算法應用于LQR控制器的設計中,利用遺傳算法的全局搜索能力,以主動懸架的性能指標作為目標函數(shù)對加權(quán)矩陣進行優(yōu)化設計,以提高LQR的設計效率和性能。
2、案例目錄:
第5章
基于遺傳算法的LQR控制器優(yōu)化設計
5.1
案例背景
5.1.1LQR控制
5.1.2基于遺傳算法設計LQR控制器
5.2
模型建立
5.2.1
主動懸架及其LQR控制器
5.2.2
基于遺傳算法的主動懸架LQR控制器優(yōu)化設計
5.3
模型及算法實現(xiàn)
5.3.1
模型實現(xiàn)
5.3.2
遺傳算法實現(xiàn)
5.3.3
結(jié)果分析
5.4
參考文獻MATLAB智能算法30個案例分析全文共109頁,當前為第16頁。MATLAB智能算法30個案例分析全文共109頁,當前為第17頁。3、案例實例及結(jié)果:
4、主程序:MATLAB智能算法30個案例分析全文共109頁,當前為第17頁。clearclcfitnessfcn=@GA_LQR;%適應度函數(shù)句柄nvars=3;%個體變量數(shù)目LB=[0.10.10.1];%下限UB=[1e61e61e6];%上限options=gaoptimset('PopulationSize',100,'PopInitRange',[LB;UB],'EliteCount',10,'CrossoverFraction',0.4,'Generations',20,'StallGenLimit',20,'TolFun',1e-100,'PlotFcns',{@gaplotbestf,@gaplotbestindiv});%算法參數(shù)設置[x_best,fval]=ga(fitnessfcn,nvars,[],[],[],[],LB,UB,[],options);%運行遺傳算法第6章遺傳算法工具箱詳解及應用MATLAB智能算法30個案例分析全文共109頁,當前為第18頁。1、案例背景
MATLAB自帶的遺傳算法與直接搜索工具箱(GeneticAlgorithmandDirectSearchToolbox,GADST),可以較好地解決與遺傳算法相關的各種問題。GADST可以通過GUI界面調(diào)用,也可以通過命令行方式調(diào)用,使用簡單方便。本案例將對GADST函數(shù)庫的遺傳算法部分進行詳細的代碼分析和講解,并通過求解非線性方程組介紹GADST的使用方法。
2、案例目錄:
第6章
遺傳算法工具箱詳解及應用
6.1
遺傳算法與直接搜索工具箱
6.1.1遺傳算法與直接搜索工具箱簡介
6.1.2
GADST詳解
遺傳算法的一些基本概念
stepGA函數(shù)
fitscalingrank函數(shù)和selectionstochunif函數(shù)
crossoverscattered函數(shù)mutationgaussian函數(shù)
6.1.3
GADST的使用
GUI方式使用GADST
命令行方式使用GADST
6.2
案例分析
6.2.1模型建立
6.2.2GADST的應用
使用GUI
使用命令行
6.2.3結(jié)果分析
6.3
參考文獻
3、案例實例及結(jié)果:
作為案例,這里將使用遺傳算法與直接搜索工具箱(GADST)求解一個非線性方程組。求解以下非線性方程組:
優(yōu)化過程如下:
得到的最優(yōu)解為
[x1,x2]=[-0.247800834353742,1.62131572868496]
4、主程序:MATLAB智能算法30個案例分析全文共109頁,當前為第18頁。clearclcfitnessfcn=@GA_demo;%適應度函數(shù)句柄nvars=2;%個體所含的變量數(shù)目options=gaoptimset('PopulationSize',100,'EliteCount',10,'CrossoverFraction',0.75,'Generations',500,'StallGenLimit',500,'TolFun',1e-100,'PlotFcns',{@gaplotbestf,@gaplotbestindiv});%參數(shù)設置[x_best,fval]=ga(fitnessfcn,nvars,[],[],[],[],[],[],[],options);%調(diào)用ga函數(shù)MATLAB智能算法30個案例分析全文共109頁,當前為第19頁。MATLAB智能算法30個案例分析全文共109頁,當前為第19頁。第7章多種群遺傳算法的函數(shù)優(yōu)化算法1、案例背景
針對遺傳算法所存在的問題,一種多種群遺傳算法結(jié)構(gòu)模型(MultiplePopulationGA,簡稱MPGA)可以用來取代常規(guī)的標準計算模型(SGA)。MPGA在SGA的基礎上主要引入了以下幾個概念:(1)突破SGA僅靠單個群體進行遺傳進化的框架,引入多個種群同時進行優(yōu)化搜索;不同的種群賦以不同的控制參數(shù),實現(xiàn)不同的搜索目的。(2)各個種群之間通過移民算子進行聯(lián)系,實現(xiàn)多種群的協(xié)同進化;最優(yōu)解的獲取是多個種群協(xié)同進化的綜合結(jié)果。(3)通過人工選擇算子保存各種群每個進化代中的最優(yōu)個體,并作為判斷算法收斂的依據(jù)。
圖
7-1MPGA的算法結(jié)構(gòu)示意圖
MATLAB智能算法30個案例分析全文共109頁,當前為第20頁。復雜二元函數(shù)求最值:MATLAB智能算法30個案例分析全文共109頁,當前為第20頁。
圖
7-2
二元函數(shù)圖像
2、案例目錄:
第7章多種群遺傳算法的函數(shù)優(yōu)化算法7.1
理論基礎
7.1.1遺傳算法早熟問題
7.1.2多種群遺傳算法概述7.2案例背景
7.2.1問題描述
7.2.2解決思路及步驟7.3MATLAB程序?qū)崿F(xiàn)
7.3.1移民算子
7.3.2人工選擇算子
7.3.3目標函數(shù)
7.3.4標準遺傳算法主函數(shù)
7.3.5多種群遺傳算法主函數(shù)
7.3.6結(jié)果分析7.4延伸閱讀7.5
參考文獻3、主程序:%%多種群遺傳算法clear;clccloseallMATLAB智能算法30個案例分析全文共109頁,當前為第21頁。NIND=40;%個體數(shù)目MATLAB智能算法30個案例分析全文共109頁,當前為第21頁。NVAR=2;%變量的維數(shù)PRECI=20;%變量的二進制位數(shù)GGAP=0.9;%代溝MP=10;%種群數(shù)目FieldD=[rep(PRECI,[1,NVAR]);[-3,4.1;12.1,5.8];rep([1;0;1;1],[1,NVAR])];%譯碼矩陣fori=1:MPChrom{i}=crtbp(NIND,NVAR*PRECI);%創(chuàng)建初始種群endpc=0.7+(0.9-0.7)*rand(MP,1);%在【0.7,0.9】范圍i內(nèi)隨機產(chǎn)生交叉概率pm=0.001+(0.05-0.001)*rand(MP,1);%在【0.001,0.05】范圍內(nèi)隨機產(chǎn)生變異概率gen=0;%初始遺傳代數(shù)gen0=0;%初始保持代數(shù)MAXGEN=10;%最優(yōu)個體最少保持代數(shù)maxY=0;%最優(yōu)值fori=1:MPObjV{i}=ObjectFunction(bs2rv(Chrom{i},FieldD));%計算各初始種群個體的目標函數(shù)值endMaxObjV=zeros(MP,1);%記錄精華種群MaxChrom=zeros(MP,PRECI*NVAR);%記錄精華種群的編碼whilegen0<=MAXGENgen=gen+1;%遺傳代數(shù)加1fori=1:MPFitnV{i}=ranking(-ObjV{i});%各種群的適應度SelCh{i}=select('sus',Chrom{i},FitnV{i},GGAP);%選擇操作SelCh{i}=recombin('xovsp',SelCh{i},pc(i));%交叉操作SelCh{i}=mut(SelCh{i},pm(i));%變異操作ObjVSel=ObjectFunction(bs2rv(SelCh{i},FieldD));%計算子代目標函數(shù)值[Chrom{i},ObjV{i}]=reins(Chrom{i},SelCh{i},1,1,ObjV{i},ObjVSel);%重插入操作end[Chrom,ObjV]=immigrant(Chrom,ObjV);%移民操作[MaxObjV,MaxChrom]=EliteInduvidual(Chrom,ObjV,MaxObjV,MaxChrom);%人工選擇精華種群YY(gen)=max(MaxObjV);%找出精華種群中最優(yōu)的個體ifYY(gen)>maxY%判斷當前優(yōu)化值是否與前一次優(yōu)化值相同maxY=YY(gen);%更新最優(yōu)值gen0=0;elsegen0=gen0+1;%最優(yōu)值保持次數(shù)加1endend%%進化過程圖plot(1:gen,YY)xlabel('進化代數(shù)')ylabel('最優(yōu)解變化')MATLAB智能算法30個案例分析全文共109頁,當前為第22頁。title('進化過程')MATLAB智能算法30個案例分析全文共109頁,當前為第22頁。xlim([1,gen])%%輸出最優(yōu)解[Y,I]=max(MaxObjV);%找出精華種群中最優(yōu)的個體X=(bs2rv(MaxChrom(I,:),FieldD));%最優(yōu)個體的解碼解disp(['最優(yōu)值為:',num2str(Y)])disp(['對應的自變量取值:',num2str(X)])4、運行結(jié)果:
標準遺傳算法運行5次得到的結(jié)果圖:
多種群遺傳算法運行5次得到的結(jié)果圖:
MATLAB智能算法30個案例分析全文共109頁,當前為第23頁。MATLAB智能算法30個案例分析全文共109頁,當前為第23頁。第8章基于量子遺傳算法的函數(shù)尋優(yōu)算法1、案例背景量子遺傳算法就是基于量子計算原理的一種遺傳算法。將量子的態(tài)矢量表達引入了遺傳編碼,利用量子邏輯門實現(xiàn)染色體的演化,實現(xiàn)了比常規(guī)遺傳算法更好的效果。量子遺傳算法建立在量子的態(tài)矢量表示的基礎之上,將量子比特的幾率幅表示應用于染色體的編碼,使得一條染色體可以表達多個態(tài)的疊加,并利用量子邏輯門實現(xiàn)染色體的更新操作,從而實現(xiàn)了目標的優(yōu)化求解。復雜二元函數(shù)求最值:
圖
8-1
二元函數(shù)圖像
2、案例目錄:
第8章
基于量子遺傳算法的函數(shù)尋優(yōu)算法8.1
理論基礎
8.1.1
量子遺傳算法概述
8.1.2
量子比特編碼
8.1.3
量子門更新8.2案例背景
8.2.1
問題描述
8.2.2
解決思路及步驟
量子遺傳算法流程
量子遺傳算法實現(xiàn)MATLAB智能算法30個案例分析全文共109頁,當前為第24頁。
1.
量子比特編碼MATLAB智能算法30個案例分析全文共109頁,當前為第24頁。
2.
量子旋轉(zhuǎn)門8.3MATLAB程序?qū)崿F(xiàn)
8.3.1
種群初始化—量子比特編碼
8.3.2測量函數(shù)—得到二進制編碼
8.3.3
量子旋轉(zhuǎn)門函數(shù)
8.3.4
適應度函數(shù)
8.3.5
量子遺傳算法主函數(shù)
8.3.6
結(jié)果分析8.4
延伸閱讀8.5
參考文獻
3、主程序:clc;clearall;closeall;%參數(shù)設置MAXGEN=200;%最大遺傳代數(shù)sizepop=40;%種群大小lenchrom=[2020];%每個變量的二進制長度trace=zeros(1,MAXGEN);%%最佳個體記錄其適應度值、十進制值、二進制編碼、量子比特編碼best=struct('fitness',0,'X',[],'binary',[],'chrom',[]);%%初始化種群chrom=InitPop(sizepop*2,sum(lenchrom));%%對種群實施一次測量得到二進制編碼binary=collapse(chrom);%%求種群個體的適應度值,和對應的十進制值[fitness,X]=FitnessFunction(binary,lenchrom);%使用目標函數(shù)計算適應度%%記錄最佳個體到best[best.fitnessbestindex]=max(fitness);%找出最大值best.binary=binary(bestindex,:);best.chrom=chrom([2*bestindex-1:2*bestindex],:);best.X=X(bestindex,:);trace(1)=best.fitness;fprintf('%d\n',1)%%進化forgen=2:MAXGENMATLAB智能算法30個案例分析全文共109頁,當前為第25頁。fprintf('%d\n',gen)%提示進化代數(shù)MATLAB智能算法30個案例分析全文共109頁,當前為第25頁。%%對種群實施一次測量binary=collapse(chrom);%%計算適應度[fitness,X]=FitnessFunction(binary,lenchrom);%%量子旋轉(zhuǎn)門chrom=Qgate(chrom,fitness,best,binary);[newbestfitness,newbestindex]=max(fitness);%找到最佳值%記錄最佳個體到bestifnewbestfitness>best.fitnessbest.fitness=newbestfitness;best.binary=binary(newbestindex,:);best.chrom=chrom([2*newbestindex-1:2*newbestindex],:);best.X=X(newbestindex,:);endtrace(gen)=best.fitness;end%%畫進化曲線plot(1:MAXGEN,trace);title('進化過程');xlabel('進化代數(shù)');ylabel('每代的最佳適應度');%%顯示優(yōu)化結(jié)果disp(['最優(yōu)解X:',num2str(best.X)])disp(['最大值Y:',num2str(best.fitness)]);4、運行結(jié)果:
MATLAB智能算法30個案例分析全文共109頁,當前為第26頁。最優(yōu)解X:11.6255
5.72504
最大值Y:17.3503
量子遺傳算法優(yōu)化200代得到的進化過程圖如圖8-3所示。MATLAB智能算法30個案例分析全文共109頁,當前為第26頁。圖
8-3QGA進化過程圖第9章基于遺傳算法的多目標優(yōu)化算法MATLAB智能算法30個案例分析全文共109頁,當前為第27頁。1、案例背景
目前的多目標優(yōu)化算法有很多,KalyanmoyDeb的NSGA-II(NondominatedSortingGeneticAlgorithmII,帶精英策略的快速非支配排序遺傳算法)無疑是其中應用最為廣泛也是最為成功的一種。MATLAB自帶的gamultiobj函數(shù)所采用的算法,就是基于NSGA-II改進的一種多目標優(yōu)化算法(avariantofNSGA-II)。gamultiobj函數(shù)的出現(xiàn),為在MATLAB平臺下解決多目標優(yōu)化問題提供了良好的途徑。gamultiobj函數(shù)包含在遺傳算法與直接搜索工具箱(GeneticAlgorithmandDirectSearchToolbox,GADST)中,這里我們稱gamultiobj函數(shù)為基于遺傳算法的多目標優(yōu)化函數(shù),相應的算法為基于遺傳算法的多目標優(yōu)化算法。本案例將以gamultiobj函數(shù)為基礎,對基于遺傳算法的多目標優(yōu)化算法進行講解,并詳細分析其代碼,同時通過一個簡單的案例介紹gamultiobj函數(shù)的使用。
2、案例目錄:
第9章
基于遺傳算法的多目標優(yōu)化算法
9.1
案例背景
9.1.1多目標優(yōu)化及Pareto最優(yōu)解
9.1.2
gamultiobj函數(shù)
9.2
程序?qū)崿F(xiàn)
9.2.1
gamultiobj組織結(jié)構(gòu)
9.2.2
gamultiobj函數(shù)中的一些基本概念
9.2.3
stepgamultiobj函數(shù)分析
stepgamultiobj函數(shù)結(jié)構(gòu)及圖形描述
選擇(selectiontournament.m)
交叉、變異、產(chǎn)生子種群和父子種群合并
計算序值和擁擠距離(nonDominatedRank.m,distancecrowding.m,trimPopulation.m)
distanceAndSpread函數(shù)
9.2.4
gamultiobj函數(shù)的調(diào)用
通過GUI方式調(diào)用gamultiobj函數(shù)
通過命令行方式調(diào)用gamultiobj函數(shù)
9.3
案例分析
9.3.1模型建立
9.3.2使用gamultiobj函數(shù)求解多目標優(yōu)化問題
9.3.3結(jié)果分析
9.4
參考文獻
3、案例實例及結(jié)果:
作為案例,這里將使用MATLAB自帶的基于遺傳算法的多目標優(yōu)化函數(shù)gamultiobj求解一個簡單的多目標優(yōu)化問題。待優(yōu)化的多目標問題表述如下:
可以看到,在基于遺傳算法的多目標優(yōu)化算法的運行過程中,自動繪制了第一前端中個體的分布情況,且分布隨著算法進化一代而更新一次。當?shù)V购?,得到如圖9.5所示的第一前端個體分布圖。同時,Worksapce中返回了gamultiobj函數(shù)得到的Pareto解集x及與x對應的目標函數(shù)值,如表9.2所示。
4、主程序:MATLAB智能算法30個案例分析全文共109頁,當前為第27頁。MATLAB智能算法30個案例分析全文共109頁,當前為第28頁。clearMATLAB智能算法30個案例分析全文共109頁,當前為第28頁。clcfitnessfcn=@my_first_multi;%Functionhandletothefitnessfunctionnvars=2;%Numberofdecisionvariableslb=[-5,-5];%Lowerboundub=[5,5];%UpperboundA=[];b=[];%NolinearinequalityconstraintsAeq=[];beq=[];%Nolinearequalityconstraintsoptions=gaoptimset('ParetoFraction',0.3,'PopulationSize',100,'Generations',200,'StallGenLimit',200,'TolFun',1e-100,'PlotFcns',@gaplotpareto);[x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options);第10章基于粒子群算法的多目標搜索算法1、案例背景
在實際工程優(yōu)化問題中,多數(shù)問題是多目標優(yōu)化問題。相對于單目標優(yōu)化問題,多目標優(yōu)化問題的顯著特點是優(yōu)化各個目標使其同時達到綜合的最優(yōu)值。然而,由于多目標優(yōu)化問題的各個目標之間往往是相互沖突的,在滿足其中一個目標最優(yōu)的同時,其他的目標往往可能會受其影響而變得很差。因此,一般適用于單目標問題的方法難以用于多目標問題的求解。多目標優(yōu)化問題很早就引起了人們的重視,現(xiàn)已經(jīng)發(fā)展出多種求解多目標優(yōu)化問題的方法。多目標優(yōu)化問題求解中的最重要概念是非劣解和非劣解集,兩者的定義如下。非劣解(noninferiorsolution):在多目標優(yōu)化問題的可行域中存在一個問題解,若不存在另一個可行解,使得一個解中的目標全部劣于該解,則該解稱為多目標優(yōu)化問題的非劣解。所有非劣解的集合叫做非劣解集(noninferiorSet)。
2、案例目錄
本案例的目錄為:案例十
基于粒子群算法的多目標搜索算法...
1
10.1
理論基礎...
1
MATLAB智能算法30個案例分析全文共109頁,當前為第29頁。10.2
案例背景
...
2
MATLAB智能算法30個案例分析全文共109頁,當前為第29頁。
10.2.1
問題描述...
2
10.2.3
適應度計算...
3
10.2.4
篩選非劣解集...
3
10.2.5
粒子速度和位置更新...
3
10.2.6
粒子最優(yōu)...
4
10.3MATLAB程序?qū)崿F(xiàn)...
4
10.3.1
種群初始化...
4
10.3.2
種群更新...
4
10.3.3
更新個體最優(yōu)粒子...
5
10.3.4非劣解篩選...
5
10.3.5
仿真結(jié)果...
6
10.4
延伸閱讀...
7
10.5
參考文獻...
8
3、主程序%%循環(huán)迭代foriter=1:MaxIt%權(quán)值更新w=wmax-(wmax-wmin)*iter/MaxIt;%從非劣解中選擇粒子作為全局最優(yōu)解s=size(fljx,1)index=randi(s,1,1);gbest=fljx(index,:);%%群體更新fori=1:xSize%速度更新v(i,:)=w*v(i,:)+c1*rand(1,1)*(xbest(i,:)-x(i,:))+c2*rand(1,1)*(gbest-x(i,:));MATLAB智能算法30個案例分析全文共109頁,當前為第30頁。MATLAB智能算法30個案例分析全文共109頁,當前為第30頁。%位置更新x(i,:)=x(i,:)+v(i,:);x(i,:)=rem(x(i,:),objnum)/double(objnum);index1=find(x(i,:)<=0);iflength(index1)~=0x(i,index1)=rand(size(index1));endx(i,:)=ceil(4*x(i,:));end%%更新粒子歷史最佳fori=1:xSize%現(xiàn)在的支配原有的,替代原有的if((px(i)<ppx(i))&&(rx(i)<rrx(i)))||((abs(px(i)-ppx(i))<tol)...&&(rx(i)<rrx(i)))||((px(i)<ppx(i))&&(abs(rx(i)-rrx(i))<tol))||(cx(i)>weight)xbest(i,:)=x(i,:);%沒有記錄目標值pxbest(i)=ppx(i);rxbest(i)=rrx(i);cxbest(i)=ccx(i);end%%更新非劣解集合px=ppx;rx=rrx;cx=ccx;%更新升級非劣解集合s=size(flj,1);%目前非劣解集合中元素個數(shù)%先將非劣解集合和xbest合并pppx=zeros(1,s+xSize);rrrx=zeros(1,s+xSize);cccx=zeros(1,s+xSize);pppx(1:xSize)=pxbest;pppx(xSize+1:end)=flj(:,1)';rrrx(1:xSize)=rxbest;rrrx(xSize+1:end)=flj(:,2)';cccx(1:xSize)=cxbest;cccx(xSize+1:end)=flj(:,3)';xxbest=zeros(s+xSize,Dim);xxbest(1:xSize,:)=xbest;xxbest(xSize+1:end,:)=fljx;%篩選非劣解flj=[];fljx=[];k=0;tol=1e-7;MATLAB智能算法30個案例分析全文共109頁,當前為第31頁。fori=1:xSize+sMATLAB智能算法30個案例分析全文共109頁,當前為第31頁。flag=0;%沒有被支配%判斷該點是否非劣forj=1:xSize+sifj~=iif((pppx(i)<pppx(j))&&(rrrx(i)<rrrx(j)))||((abs(pppx(i)-pppx(j))<tol)...&&(rrrx(i)<rrrx(j)))||((pppx(i)<pppx(j))&&(abs(rrrx(i)-rrrx(j))<tol))...||(cccx(i)>weight)%有一次被支配flag=1;break;endendend%去掉重復粒子repflag=0;%重復標志k=1;%不同非劣解粒子數(shù)flj2=[];%存儲不同非劣解fljx2=[];%存儲不同非劣解粒子位置flj2(k,:)=flj(1,:);fljx2(k,:)=fljx(1,:);forj=2:size(flj,1)repflag=0;%重復標志fori=1:size(flj2,1)result=(fljx(j,:)==fljx2(i,:));iflength(find(result==1))==Dimrepflag=1;%有重復endend%粒子不同,存儲ifrepflag==0k=k+1;flj2(k,:)=flj(j,:);fljx2(k,:)=fljx(j,:);endend%非劣解更新flj=flj2;fljx=fljx2;endMATLAB智能算法30個案例分析全文共109頁,當前為第32頁。4、運行結(jié)果MATLAB智能算法30個案例分析全文共109頁,當前為第32頁。第11章基于多層編碼遺傳算法的車間調(diào)度算法1案例背景
遺傳算法具有較強的問題求解能力,能夠解決非線性優(yōu)化問題。對于遺傳算法中的染色體表示問題中的一個潛在最優(yōu)解,對于簡單的問題來說,染色體可以方便的表達問題的潛在解,然而,對于較為復雜的優(yōu)化問題,一個染色體難以準確表達問題的解。多層編碼遺傳算法,把個體編碼分為多層,每層編碼均表示不同的含義,多層編碼共同完整表達了問題的解,從而用一個染色體準確表達出了復雜問題的解。多層編碼遺傳算法擴展了遺傳算法的使用領域,使得遺傳算法可以方便用于復雜問題的求解。
2、案例目錄
MATLAB智能算法30個案例分析全文共109頁,當前為第33頁。第十一章
基于多層編碼遺傳算法的車間調(diào)度算法...
1
11.1
理論基礎...
1
11.2
案例背景...
1
11.2.1
問題描述...
1
11.2.2
模型建立...
2
11.2.3
算法實現(xiàn)...
3
11.3MATLAB程序?qū)崿F(xiàn)...
4
11.3.1
主函數(shù)...
4
11.3.2
適應度值計算...
5
11.3.3
交叉函數(shù)...
7
11.3.4
變異函數(shù)...
8
\t
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紅酒銷售合同
- 養(yǎng)牛場飼養(yǎng)員雇用合同
- 公司借款合同
- 住房裝修水電工合同
- 2025年度愛奇藝體育賽事版權(quán)分銷合同:股票收益共享合作協(xié)議3篇
- 自制扇子手工課程設計
- 2025年度酒店前臺客房預訂系統(tǒng)開發(fā)與運營合同3篇
- 二零二五年度個人房產(chǎn)測繪與房地產(chǎn)廣告代理合同3篇
- 物聯(lián)網(wǎng)課程設計物流
- 勤儉節(jié)約小學作文
- 合伙人散伙分家協(xié)議書范文
- 紅色旅游智慧樹知到期末考試答案章節(jié)答案2024年南昌大學
- CBT3780-1997 管子吊架行業(yè)標準
- 2024年遼寧裝備制造職業(yè)技術學院單招職業(yè)適應性測試題庫帶答案
- (正式版)JTT 1497-2024 公路橋梁塔柱施工平臺及通道安全技術要求
- 江西省南昌市東湖區(qū)2023-2024學年三年級上學期期末語文試卷
- python程序設計-說課
- ISO15614-1 2017 金屬材料焊接工藝規(guī)程及評定(中文版)
- 《單片機技術》課件-2-3實現(xiàn)電子門鈴 -實操
- 《中國潰瘍性結(jié)腸炎診治指南(2023年)》解讀
- 縣級臨床重點??平ㄔO項目申報書
評論
0/150
提交評論