



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、遺傳算法的程序?qū)嵗缜笙铝泻瘮?shù)的最大值f(x)=10*sin(5x)+7*cos(4x) x & 0,10一、初始化(編碼)initpop.m函數(shù)的功能是實(shí)現(xiàn)群體的初始化,popsize表示群體的大小,chromlength表示染色體的長(zhǎng)度(值數(shù)的長(zhǎng)度),長(zhǎng)度大小取決于變量的二進(jìn)制編碼的長(zhǎng)度(在本例中取10位)。代碼:%Name: initpop.m%初始化function pop=initpop(popsize,chromlength)pop=round(rand(popsize,chromlength);% rand 隨機(jī)產(chǎn)生每個(gè)單元為 0,1 行數(shù)為popsize ,列數(shù)為chr
2、omlength 的矩陣,% roud對(duì)矩陣的每個(gè)單元進(jìn)行圓整。這樣產(chǎn)生的初始種群。二、計(jì)算目標(biāo)函數(shù)值1、將二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)(1)代碼:%Name: decodebinary.m%產(chǎn)生2An 2A(n-1)1的行向量,然后求和,將二進(jìn)制轉(zhuǎn)化為十進(jìn)制function pop2=decodebinary(pop)px,py=size(pop);%求 pop 行和例數(shù)for i=1:pypop1(:,i)=2.A(py-1).*pop(:,i);py=py-1;endpop2=sum(pop1,2);%求 pop1 的每行之和2、將二進(jìn)制編碼轉(zhuǎn)化為十進(jìn)制數(shù)(2)decodechrom.m 函數(shù)
3、的功能是將染色體(或二進(jìn)制編碼)轉(zhuǎn)換為十進(jìn)制,參數(shù) spoint表示待解碼的二進(jìn)制串 的起始位置。(對(duì)于多個(gè)變量而言,如有兩個(gè)變量,采用 20為表示,每個(gè)變量10為,則第一個(gè)變量從 開(kāi)始,另一個(gè)變量從11開(kāi)始。本例為1),參數(shù)1ength表示所截取的長(zhǎng)度(本例為10)。代碼:%Name: decodechrom.m%1各二進(jìn)制編碼轉(zhuǎn)換成十進(jìn)制function pop2=decodechrom(pop,spoint,length)pop1=pop(:,spoint:spoint+length-1);pop2=decodebinary(pop1);3、計(jì)算目標(biāo)函數(shù)值calobjvalue.m 函數(shù)
4、的功能是實(shí)現(xiàn)目標(biāo)函數(shù)的計(jì)算,其公式采用本文示例仿真,可根據(jù)不同優(yōu)化問(wèn)題予以修 改。代碼:%Name: calobjvalue.m%實(shí)現(xiàn)目標(biāo)函數(shù)的計(jì)算將pop每行轉(zhuǎn)化成十進(jìn)制數(shù)function objvalue=calobjvalue(pop)temp1=decodechrom(pop,1,10); %x=temp1*10/1023;%objvalue=10*sin(5*x)+7*cos(4*x);%將二值域中的數(shù)轉(zhuǎn)化為變量域的數(shù)計(jì)算目標(biāo)函數(shù)值三、計(jì)算個(gè)體的適應(yīng)值代碼:%Name:calfitvalue.m%計(jì)算個(gè)體的適應(yīng)值function fitvalue=calfitvalue(objval
5、ue)global Cmin;Cmin=0;px,py=size(objvalue);for i=1:pxif objvalue(i)+Cmin>0 temp=Cmin+objvalue(i);elsetemp=0.0;endfitvalue(i)=temp;endfitvalue=fitvalue'四選擇復(fù)制 選擇或復(fù)制操作是決定哪些個(gè)體可以進(jìn)入下一代。程序中采用賭輪盤(pán)選擇法選擇,這種方法較易實(shí)現(xiàn)。根據(jù)方程pi=fi/萬(wàn)fi=fi/fsum,選擇步驟:1)在第t代,由(1)式計(jì)算fsum和pi 2)產(chǎn)生0,1的隨機(jī)數(shù) rand(.),求 s=rand( .)*fsum3)求Ef
6、i 電最小的k ,則第k個(gè)個(gè)體被選中4)進(jìn)行N次2)、3)操作,得到 N個(gè)個(gè)體,成為第t=t+1代種群代碼:%Name: selection.m%選擇復(fù)制function newpop=selection(pop,fitvalue)totalfit=sum(fitvalue);% fitvalue=fitvalue/totalfit;% fitvalue=cumsum(fitvalue);3 6 10求適應(yīng)值之和單個(gè)個(gè)體被選擇的概率播積概率,如fitvalue=12 3 4,則 cumsum(fitvalue)=1px,py=size(pop);ms=sort(rand(px,1);%從小到大
7、排列,將"rand(px,1)"產(chǎn)生的一列隨機(jī)數(shù)變成輪盤(pán)賭形式的表示方法,由小到大排列fitin=1; %fivalue是一向量,fitin代表向量中元素位,即 fitvalue(fitin)代表第fitin 個(gè)個(gè)體的單個(gè)個(gè)體被選擇的概率newin=1; % 同理while newin<=pxif(ms(newin)<fitvalue(fitin) %ms(newin) 數(shù)值,同理 fitvalue(fitin) newpop(newin,:)=pop(fitin,:); %表示的是 ms列向量中第"newin" 位賦值,即將舊種群中 的第f
8、itin個(gè)個(gè)體保留到下一代(newpop)newin=newin+1;elsefitin=fitin+1;endend五2.5交叉交叉(crossover),群體中的每個(gè)個(gè)體之間都以一定的概率pc交叉,即兩個(gè)個(gè)體從各自字符串的某一位置(一般是隨機(jī)確定)開(kāi)始互相交換,這類(lèi)似生物進(jìn)化過(guò)程中的基因分裂與重組。例如,假設(shè)2個(gè)父代個(gè)體x1 , x2 為:x1=0100110x2=1010001從每個(gè)個(gè)體的第3位開(kāi)始交叉,交又后得到2個(gè)新的子代個(gè)體y1, y2分別為: y1 =0100001y2 = 1010110這樣2個(gè)子代個(gè)體就分別具有了2個(gè)父代個(gè)體的某些特征。利用交又我們有可能由父代個(gè)體在子代組合成
9、具有更高適合度的個(gè)體。事實(shí)上交又是遺傳算法區(qū)別于其它傳統(tǒng)優(yōu)化方法的主要特點(diǎn)之一。代碼:%Name: crossover.m回叉function newpop=crossover_multiv(pop,pc)global Numvpx,py=size(pop);m=py/Numv;for j=1:Numvpop1=ones(px,m);pop2=pop(:,m*(j-1)+1:m*j);%取出相應(yīng)變量對(duì)應(yīng)的二進(jìn)制編碼段for i=1:2:px-1if(rand<pc)cpoint=round(rand*(m-1); %cpoint為交叉點(diǎn)pop1(i,:)=pop2(i,1:cpoint)
10、 pop2(i+1,cpoint+1:m);pop1(i+1,:)=pop2(i+1,1:cpoint) pop2(i,cpoint+1:m);elsepop1(i,:)=pop2(i,1:m);pop1(i+1,:)=pop2(i+1,1:m);endendnewpop(:,m*(j-1)+1:m*j)=pop1;%將交叉后的一個(gè)參數(shù)的編碼放入新種群中end六、變異變異是指父代中的每個(gè)個(gè)體的每一位都以概率變異(mutation),基因的突變普遍存在于生物的進(jìn)化過(guò)程中pm翻轉(zhuǎn),即由“愛(ài)為“Q”或由"嚷為“1”遺傳算法的變異特性可以使求解過(guò)程隨機(jī)地搜索到解可能存在的整個(gè)空間,因此可以在
11、一定程度上求得全局最優(yōu)解。代碼:%Name: mutation.m毆異function newpop=mutation(pop,pm)px,py=size(pop);newpop=ones(size(pop);for i=1:pxif(rand<pm)mpoint=round(rand*py);if mpoint<=0mpoint=1;endnewpop(i,:)=pop(i,:);if any(newpop(i,mpoint)=0newpop(i,mpoint)=1;elsenewpop(i,mpoint)=0;endelsenewpop(i,:)=pop(i,:);endend
12、七、求出群體中最大得適應(yīng)值及其個(gè)體代碼:%Name: best.m%求出群體中適應(yīng)值最大的值function bestindividual,bestfit=best(pop,fitvalue)px,py=size(pop);bestindividual=pop(1,:);bestfit=fitvalue(1);for i=2:pxif fitvalue(i)>bestfitbestindividual=pop(i,:);bestfit=fitvalue(i);endend八、主程序代碼:%Name:genmain05.mclear群體大小字符串長(zhǎng)度(個(gè)體長(zhǎng)度)clf popsize=20
13、;chromlength=10;pc=0.6;%pm=0.001;%pop=initpop(popsize,chromlength);%fo門(mén)=1:20%20objvalue=calobjvalue(pop);%fitvalue=calfitvalue(objvalue);%newpop=selection(pop,fitvalue);%newpop=crossover(pop,pc);%newpop=mutation(pop,pc);%bestindividual,bestfit=best(pop,fitvalue);% y(i)=max(bestfit); n(i)=i; pop5=bestindividual;交叉
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度財(cái)務(wù)報(bào)表及審計(jì)結(jié)果
- 河南省駐馬店市部分學(xué)校2024-2025學(xué)年高三下學(xué)期3月月考地理試題(含答案)
- 基于區(qū)塊鏈技術(shù)的農(nóng)業(yè)溯源體系構(gòu)建方案
- 服裝設(shè)計(jì)與制造業(yè)務(wù)外包合作協(xié)議
- 個(gè)性化培訓(xùn)計(jì)劃實(shí)施效果分析表
- 網(wǎng)絡(luò)優(yōu)化服務(wù)升級(jí)合作協(xié)議
- 汽車(chē)采購(gòu)銷(xiāo)售合同書(shū)及保修條款
- 智能醫(yī)療項(xiàng)目合作協(xié)議
- 企業(yè)危機(jī)管理機(jī)制構(gòu)建與運(yùn)行
- 交通行業(yè)交通事故處理保障預(yù)案
- 駕駛員的責(zé)任和義務(wù)
- 預(yù)防艾梅乙母嬰傳播課件
- 寶寶雙排牙介紹演示培訓(xùn)課件
- DB3402-T 59-2023 露天礦山無(wú)人駕駛礦車(chē)作業(yè)通用要求
- 2022中國(guó)腦性癱瘓康復(fù)指南(第一章)
- 糧油倉(cāng)儲(chǔ)企業(yè)一規(guī)定兩守則試題(新改版附答案)
- 肛腸外科運(yùn)用PDCA循環(huán)降低住院腸造口并發(fā)癥發(fā)生率品管圈QCC持續(xù)質(zhì)量改進(jìn)成果匯報(bào)
- GB/T 15558.5-2023燃?xì)庥寐竦鼐垡蚁?PE)管道系統(tǒng)第5部分:系統(tǒng)適用性
- 區(qū)塊鏈技術(shù)在政府?dāng)?shù)字化轉(zhuǎn)型中審計(jì)項(xiàng)目的應(yīng)用研究
- 拼多多民事起訴狀模板
- 廠房租賃合同糾紛起訴狀
評(píng)論
0/150
提交評(píng)論