下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
function[BestPop,Trace]=fmaxga(FUN,LB,UB,eranum,popsize,pcross,pmutation,options)%[BestPop,Trace]=fmaxga(FUN,LB,UB,eranum,popsize,pcross,pmutation)%Findsamaximumofafunctionofseveralvariables.%fmaxgasolvesproblemsoftheform:%maxF(X)subjectto:LB<=X<=UB%BestPop--------最優(yōu)的群體即為最優(yōu)的染色體群%Trace-----------最佳染色體所對(duì)應(yīng)的目標(biāo)函數(shù)值%FUN------------目標(biāo)函數(shù)%LB--------------自變量下限%UB--------------自變量上限%eranum----------種群的代數(shù),取100--1000(默認(rèn)1000)%popsize---------每一代種群的規(guī)模;此可取50--100(默認(rèn)50)%pcross-----------交叉的概率,此概率一般取0.5--0.85之間較好(默認(rèn)0.8)%pmutation------變異的概率,該概率一般取0.05-0.2左右較好(默認(rèn)0.1)%options--------1×2矩陣,options(1)=0二進(jìn)制編碼(默認(rèn)0),option(1)~=0十進(jìn)制編碼,option(2)設(shè)定求解%精度(默認(rèn)1e-4)%%如測(cè)試Shaffer's(f=0.5-((sin(sqrt(x(1)^2+x(2)^2)))^2-0.5)/(1+0.001*(x(1)^2+x(2)^2))^2)函數(shù),自變量下限%%[-100,-100],上限[100,100],當(dāng)x=[00]時(shí),取得理想最優(yōu)MaxF6=1%運(yùn)行得到相當(dāng)好的結(jié)果:自變量為0.00033379-4.7684e-005時(shí),最優(yōu)值1.000000%對(duì)應(yīng)染色體是:10000000000000000001101111%1111111111111111T1=clock;ifnargin<3,error('FMAXGArequiresatleastthreeinputarguments');endifnargin==3,eranum=1000;popsize=50;pcross=0.8;pmutation=0.1;options=[01e-4];endifnargin==4,popsize=50;pcross=0.8;pmutation=0.1;options=[01e-4];endifnargin==5,pcross=0.8;pmutation=0.1;options=[01e-4];endifnargin==6,pmutation=0.1;options=[01e-4];endifnargin==7,options=[01e-4];endiffind((LB-UB)>0)error('數(shù)據(jù)輸入錯(cuò)誤,請(qǐng)重新輸入(LB<UB):');ends=sprintf('程序運(yùn)行需要約%.4f秒鐘時(shí)間,請(qǐng)稍等......',(eranum*popsize*40/(1000*50)));disp(s);bounds=[LB;UB]';bits=[];precision=options(2);%由求解精度確定二進(jìn)制編碼長(zhǎng)度bits=ceil(log2((bounds(:,2)-bounds(:,1))'./precision));[Pop]=initpop(popsize,bits);%初始化種群[m,n]=size(Pop);pm0=pmutation;BestPop=zeros(eranum,n);Trace=zeros(eranum,length(bits)+1);%分配初始解空間i=1;whilei<=eranumforj=1:mvalue(j)=feval(FUN(1,:),(b2f(Pop(j,:),bounds,bits)));%計(jì)算適應(yīng)度end[MaxValue,Index]=max(value);BestPop(i,:)=Pop(Index,:);Trace(i,1)=MaxValue;Trace(i,(2:length(bits)+1))=b2f(BestPop(i,:),bounds,bits);[selectpop]=selectchrom(FUN,Pop,bounds,bits);%選擇[CrossOverPop]=CrossOver(selectpop,pcross);%交叉[NewPop]=Mutation(CrossOverPop,pmutation);%變異Pop=NewPop;%更新pmutation=pm0+(i^4)*(0.6-pm0)/(eranum^4);%隨著種群向前進(jìn)化,逐步增大變異率p(i)=pmutation;i=i+1;endt=1:eranum;plot(t,Trace(:,1)');title('函數(shù)優(yōu)化的遺傳算法');xlabel('進(jìn)化世代數(shù)(eranum)');ylabel('每一代最優(yōu)適應(yīng)度(maxfitness)');[MaxFval,I]=max(Trace(:,1));X=Trace(I,(2:length(bits)+1));holdon;plot(I,MaxFval,'*');text(I+5,MaxFval,['FMAX='num2str(MaxFval)]);str1=sprintf('進(jìn)化到%d代,自變量為%s時(shí),得本次求解的最優(yōu)值%f\n對(duì)應(yīng)染色體是:%s',...I,num2str(X),MaxFval,num2str(BestPop(I,:)));disp(str1);%figure(2);plot(t,p);%繪制變異值增大過(guò)程T2=clock;CostTime=T2-T1;ifCostTime(6)<0CostTime(6)=CostTime(6)+60;CostTime(5)=CostTime(5)-1;endifCostTime(5)<0CostTime(5)=CostTime(5)+60;CostTime(4)=CostTime(4)-1;end%像這種程序當(dāng)然不考慮運(yùn)行上小時(shí)啦str2=sprintf('程序運(yùn)行耗時(shí)%d小時(shí)%d分鐘%.4f秒',CostTime(4),CostTime(5),CostTime(6));disp(str2);%初始化種群,采用二進(jìn)制編碼function[pop]=initpop(popsize,bits)len=sum(bits);pop(1,:)=zeros(1,len);fori=2:popsize-1pop(i,:)=round(rand(1,len));endpop(popsize,:)=ones(1,len);%解碼function[fval]=b2f(bval,bounds,bits)%fval-表征各變量的十進(jìn)制數(shù)%bval-表征各變量的二進(jìn)制編碼串%bounds-各變量的取值范圍%bits-各變量的二進(jìn)制編碼長(zhǎng)度scale=(bounds(:,2)-bounds(:,1))'./(2.^bits-1);numV=size(bounds,1);cs=[0cumsum(bits)];fori=1:numVa=bval((cs(i)+1):cs(i+1));fval(i)=sum(2.^(size(a,2)-1:-1:0).*a)*scale(i)+bounds(i,1);end%計(jì)算各個(gè)體的適應(yīng)度并采用輪盤賭進(jìn)行選擇function[selectpop]=selectchrom(FUN,pop,bounds,bits)%采用輪盤賭選擇方法[m,n]=size(pop);fori=1:mfit(i)=feval(FUN(1,:),(b2f(pop(i,:),bounds,bits)));%以函數(shù)值為適應(yīng)度endselectprob=fit/sum(fit);%選擇概率prob=cumsum(selectprob);%累計(jì)選擇概率sumprob=[0prob];fori=1:mselectpop(i,:)=pop(length(find(rand>=sumprob)),:);end%交叉操作function[NewPop]=CrossOver(OldPop,pcross)%OldPop為父代種群,pcross為交叉概率[m,n]=size(OldPop);r=rand(1,m);y1=find(r<pcross);y2=find(r>=pcross);len=length(y1);iflen>2&mod(len,2)==1%如果用來(lái)進(jìn)行交叉的染色體的條數(shù)為奇數(shù),將其調(diào)整為偶數(shù)y2(length(y2)+1)=y1(len);y1(len)=[];endiflength(y1)>=2fori=0:2:length(y1)-2[NewPop(y1(i+1),:),NewPop(y1(i+2),:)]=EqualCrossOver(OldPop(y1(i+1),:),OldPop(y1(i+2),:));endendNewPop(y2,:)=OldPop(y2,:);function[children1,children2]=EqualCrossOver(parent1,parent2)%采用均勻交叉例:%父1:01110011010%父2:10101100101%掩碼:01100011010%交叉后新個(gè)體:%子1:11101111111%子2:00110000000L=length(parent1);hidecode=round(rand(1,L));%隨機(jī)生成掩碼,如hidecode=[01100011010];children1=zeros(1,L);children2=zeros(1,L);children1(find(hidecode==1))=parent1(find(hidecode==1));%掩碼為1,父1為子1提供基因children1(find(hidecode==0))=parent2(find(hidecode==0));%掩碼為0,父2為子1提供基因children2(find(hidecode==1))=parent2(find(hidecode==1));%掩碼為1,父2為子2提供基因children2(find(hidecode==0))=parent1(find(hidecode==0));%掩碼為0,父1為子2提供基因%變異操作function[NewPop]=Mutation(OldPop,pmutation)[m,n]=size(OldPop);r=rand(1,m);position=find(r<=pmutation);len=length(position);iflen>=1fori=1:lenk=unidrnd(n,1,1);%設(shè)置變異點(diǎn)數(shù),一般設(shè)置1點(diǎn)forj=1:length(k)ifOldPop(position(i),k(j))==1OldPop(position(i),k(j))=0;elseOldPop(position(i),k(j))=1;end
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)礦產(chǎn)資源勘查行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 新形勢(shì)下塑膠玩具行業(yè)轉(zhuǎn)型升級(jí)戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)電視劇行業(yè)營(yíng)銷創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)金屬注射成型行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實(shí)施研究報(bào)告
- 自動(dòng)噴水滅火系統(tǒng)試壓記錄表
- 比較法在圖書館學(xué)研究中的應(yīng)用
- 真絲睡衣體驗(yàn)調(diào)查
- 生活防火知識(shí)培訓(xùn)課件
- 2024-2030年中國(guó)自動(dòng)血液分析儀行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資潛力預(yù)測(cè)報(bào)告
- 2023-2029年中國(guó)愛情服務(wù)行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)及投資戰(zhàn)略規(guī)劃報(bào)告
- 藝術(shù)漆培訓(xùn)課件
- 建德海螺二期施工組織設(shè)計(jì)
- 山東省菏澤市2023-2024學(xué)年高一上學(xué)期期末測(cè)試物理試題(解析版)
- 2024年學(xué)校后勤日用品采購(gòu)合同范本2篇
- 中建中建機(jī)電工程聯(lián)動(dòng)調(diào)試實(shí)施方案范本
- 新《安全生產(chǎn)法》安全培訓(xùn)
- 山東省濟(jì)南市2023-2024學(xué)年高一上學(xué)期1月期末考試 物理 含答案
- 中華人民共和國(guó)安全生產(chǎn)法知識(shí)培訓(xùn)
- 物業(yè)品質(zhì)提升方案課件
- 《ROHS知識(shí)培訓(xùn)》課件
- 服裝行業(yè)倉(cāng)庫(kù)管理流程
評(píng)論
0/150
提交評(píng)論