遺傳算法案例及源代碼

遺傳算法案例及源代碼

ID:19546965

大?。?06.50 KB

頁數(shù):7頁

時(shí)間:2018-10-03

遺傳算法案例及源代碼_第1頁
遺傳算法案例及源代碼_第2頁
遺傳算法案例及源代碼_第3頁
遺傳算法案例及源代碼_第4頁
遺傳算法案例及源代碼_第5頁
資源描述:

《遺傳算法案例及源代碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、計(jì)算智能作業(yè)三:遺傳算法計(jì)算問題1.問題描述:求下述二元函數(shù)的最大值:S.t.2.程序結(jié)構(gòu):(1)變量:C:是一個(gè)1*6數(shù)組,每個(gè)數(shù)組里面是一個(gè)6位二進(jìn)制數(shù),它是遺傳算法中的染色體。new_c:每一輪的新變量c。first_c:初始群體矩陣。sur_value:個(gè)體適應(yīng)值的概率值,為0-1之間的數(shù),所有概率值和為1。survived:經(jīng)過選擇運(yùn)算后產(chǎn)生的個(gè)體基因型組合。intersect_c:經(jīng)過交叉運(yùn)算后產(chǎn)生的個(gè)體基因型組合。mutation_c:經(jīng)過變異運(yùn)算后產(chǎn)生的個(gè)體基因型組合。f:最后計(jì)算得到

2、的最大值(2)程序里面的方程functionout=value_function(ci):價(jià)值函數(shù)(自適應(yīng)度函數(shù)),即。function[sur_value]=calc_value(c):計(jì)算群體中每一個(gè)個(gè)體的適應(yīng)度的值functionsurvived=surviver(sur_value):利用概率選擇函數(shù)function[intersect_c]=intersect(new_c):交叉運(yùn)算function[mutation_c,mutation_value]=mutation(intersect_

3、c):變異運(yùn)算3.源程序(1)遺傳算法的主程序主程序包括初始群體產(chǎn)生,最終結(jié)果展示,即各函數(shù)之間的調(diào)用關(guān)系。l個(gè)體編碼遺傳算法的運(yùn)算對(duì)象是表示個(gè)體的符號(hào)串,所以必須把變量x1,x2編碼為無符號(hào)二進(jìn)制整數(shù)。這個(gè)二進(jìn)制整數(shù)位個(gè)體的基因型。因?yàn)閤1,x2為0~7之間的整數(shù),所以分別用3位無符號(hào)二進(jìn)制整數(shù)來表示,將它們連接在一起所組成的6位無符號(hào)二進(jìn)制數(shù)就形成了個(gè)體的基因型,表示一個(gè)可行解。???????如一下表格表示基因型和表現(xiàn)型之間的對(duì)應(yīng)關(guān)系:個(gè)體基因型表現(xiàn)型1111001(7,1)2100111(4,7

4、)3011011(3,3)4101110(5,6)5100101(4,5)6111011(7,3)l初始群體的產(chǎn)生遺傳算法是對(duì)群體進(jìn)行的進(jìn)化操作,需要給其淮備一些表示起始搜索點(diǎn)的初始群體數(shù)據(jù)。本例中,群體規(guī)模的大小取為6,即群體由6個(gè)個(gè)體組成,每個(gè)個(gè)體可通過隨機(jī)方法產(chǎn)生。%初始群體的產(chǎn)生,本例中,群體規(guī)模大小取為6,即由6個(gè)個(gè)體組成,每個(gè)個(gè)體隨機(jī)產(chǎn)生。c=rand(6,6);%產(chǎn)生隨機(jī)群體,c表示個(gè)體變量。%第一個(gè)6表示個(gè)體個(gè)體,第二個(gè)6表示基因型由6位無符號(hào)二進(jìn)制數(shù)組成c(c>0.5)=1;c(c<

5、0.5)=0;%顯示初始群體first_c=c;%一輪算法包括選擇,交叉,變異,變異完成后產(chǎn)生新的個(gè)體,作為子代群體進(jìn)行下一輪進(jìn)化。一共設(shè)置1000次進(jìn)化forn=1:1000%設(shè)置循環(huán)次數(shù)sur_value=calc_value(c);survived=surviver(sur_value);new_c=zeros(6,6);forii=1:6new_c(ii,:)=c(survived(ii),:);endintersect_c=intersect(new_c);%交叉?zhèn)€體mutation_c=m

6、utation(intersect_c);%變異個(gè)體,作為子代群體c=mutation_c;%子代群體作為新一輪的個(gè)體,繼續(xù)選擇,交叉,變異end%設(shè)置最后結(jié)果的輸出,f值即最后的結(jié)果。f=0;forjj=1:6b=value_function(c(jj,:));%選擇最好群體中每行個(gè)體進(jìn)行適應(yīng)度計(jì)算,以下是6個(gè)個(gè)體大小的判斷%選擇最終適值最大的個(gè)體,其運(yùn)算結(jié)果即為最后結(jié)果ifb>ff=b;endEnd(2)適應(yīng)值計(jì)算遺傳算法中以個(gè)體適應(yīng)度的大小來評(píng)定各個(gè)個(gè)體的優(yōu)劣程度,從而決定其遺傳機(jī)會(huì)的大小。本例

7、中,目標(biāo)函數(shù)總?cè)》秦?fù)值,并且是以求函數(shù)最大值為優(yōu)化目標(biāo),故可直接利用目標(biāo)函數(shù)值作為個(gè)體的適應(yīng)度。functionout=value_function(ci)%遺傳算法的價(jià)值函數(shù),同時(shí)也可以將此目標(biāo)函數(shù)值作為個(gè)體的適應(yīng)度。x1=4*ci(1)+2*ci(2)+1*ci(3);%x1的基因型轉(zhuǎn)換為表現(xiàn)型x2=4*ci(4)+2*ci(5)+1*ci(6);%x2的基因型轉(zhuǎn)換為表現(xiàn)型ifx1==0x1=1;endifx2==0x2=1;endout=x1^2+x2^2;%通過表現(xiàn)型的值計(jì)算最終結(jié)果funct

8、ion[sur_value]=calc_value(c)%計(jì)算群體中每一個(gè)個(gè)體的適應(yīng)度的值value=zeros(1,6);forii=1:6%對(duì)于第1到第6個(gè)個(gè)體value(ii)=value_function(c(ii,:));%計(jì)算每個(gè)個(gè)體的適應(yīng)度值endsur_value=value./sum(value);%將適應(yīng)度值歸一化,即每個(gè)個(gè)體被遺傳到下一代群體中的概率end(2)選擇運(yùn)算選擇運(yùn)算(或稱為復(fù)制運(yùn)算)把當(dāng)前群體中適應(yīng)度較高的個(gè)體按某種規(guī)則

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。