




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
人工智能實驗報告實驗一基于遺傳算法的函數(shù)優(yōu)化1、實驗?zāi)康恼莆誐atlab子函數(shù)的編寫與調(diào)用。理解根本遺傳算法的原理,并利用程序?qū)崿F(xiàn)利用遺傳算法優(yōu)化非線性函數(shù)的解。2、實驗內(nèi)容與實驗要求掌握根本遺傳算法方法原理。掌握matlab子函數(shù)的編寫方法及調(diào)用方法。根據(jù)根本遺傳算法方法原理,編寫Matlab程序,優(yōu)化非線性函數(shù)的解。設(shè)f(x)=,求maxf(x),x[-2,2],解的精度保存二位小數(shù)。3、實驗要求自己獨立編寫Matlab函數(shù)。書寫實驗報告。分析實驗結(jié)果,用圖或表描述出迭代次數(shù)與適應(yīng)度函數(shù)值的關(guān)系曲線。4、實驗設(shè)備計算機Matlab軟件5、實驗結(jié)果及分析〔1〕編碼和產(chǎn)生初始群體首先需要確定編碼的策略,也就是說如何把[-2,2]區(qū)間內(nèi)的數(shù)用計算機語言表示出來。采用二進制形式來解決編碼問題,即將某個變量值代表的個體表示為一個{0,1}二進制串。串的長度取決于求解的精度,例如假設(shè)求解精度為保存兩位小數(shù),由于區(qū)間[-2,2]的長度為4,那么必須將該區(qū)間分為400等分。因為28<400<29,所以編碼所用的二進制串至少需要9位。編碼:二進制串〔b8b7b6…b1b0〕與[-2,2]內(nèi)實數(shù)的一一映射:b8b7b6…b1b0二進制串a(chǎn)=<101000111>其對應(yīng)的十進制數(shù)為:轉(zhuǎn)化到[-2,2]內(nèi)的實數(shù)為:產(chǎn)生初始群體:pop1={<100011110>,%a1<001000010>,%a2<110000000>,%a3<110000101>}%a4轉(zhuǎn)化成[-2,2]之間的十進制數(shù)即為:,,}〔2〕定義適應(yīng)函數(shù)和適應(yīng)值由于目標函數(shù)f(x)在[-2,2]內(nèi)的值有正有負,所以必須通過建立適應(yīng)函數(shù)與目標函數(shù)的映射關(guān)系,保證映射后的適應(yīng)值非負,而且目標函數(shù)的優(yōu)化方向應(yīng)對應(yīng)于適應(yīng)值增大的方向,也為以后計算各個體的入選概率打下根底。定義適應(yīng)函數(shù):為了便于計算,這里的Fmin采用了一個特定的輸入值,如果取Fmin=-1,那么f(x)=1對應(yīng)的適應(yīng)值為g(x)=2。上述隨機產(chǎn)生的初始群體,取Fmin=-1,那么它們的目標函數(shù)值和適應(yīng)值分別為:,,-,}g(pop1)={,,-,}〔3〕確定選擇標準用適應(yīng)值比例來作為入選概率。設(shè)給定的規(guī)模為400的群體pop={a1,a2,...,a400},個體ai的適應(yīng)值為g(ai),那么其入選概率為)上述隨機產(chǎn)生的初始群體,它們的入選概率分別為:p(pop1)=g(pop1)/sum(g(pop1))={0,1,0,0}〔4〕產(chǎn)生種群3將入選概率大的個體選入種群,淘汰概率小的個體,并用概率最大的個體補入種群,得到與原群體大小同樣的種群。在上述隨機產(chǎn)生的初始群體中,淘汰掉a3,再參加a2,得到新的種群〔選擇〕:newpop1={<100011110>,%a1<001000010>,%a2<001000010>,%a2<110010101>}%a4交叉:交叉也就是將一組染色體上對應(yīng)基因段的交換得到新的染色體,然后得到新的染色體組,組成新的群體。將前面得到的newpop1的四個個體兩兩配對,重復(fù)的不配對,進行交叉〔可以在任一位進行交叉〕:變異:變異就是通過一個小概率改變?nèi)旧w位串上的某個基因?,F(xiàn)把jchpop1中第3個個體中的第5位改變,就產(chǎn)生了變異,得到了新的群體pop2:pop2={<001000010>,<100011110>,<010000101>,<101000010>}然后對新的種群重復(fù)上述的選擇、交叉、變異,直到滿足終止條件為止。(5)實驗結(jié)果:6、附錄(Matlab函數(shù))%遺傳算法主函數(shù)%q:輸出最正確個體自變量值%迭代次數(shù)為400function[q]=GA()globalbest_in;globalg_value;%初始化initilize();%初始化最正確個體的適應(yīng)函數(shù)值fori=1:400g_value=0.;end%迭代開始fork=1:1:100fitness();%適應(yīng)函數(shù)操作calculate();%對出現(xiàn)概率小的個體進行淘汰,并保存最正確個體best_in的信息%計算每一次迭代中最正確個體的適應(yīng)函數(shù)值aa,并賦給g_value(i)aa=0.;forj=1:9aa=aa+best_in(j).*2^(j-1);endg_value(k)=aa;selection();%選擇操作crossover();%交叉操作mutation();%變異操作endplotGA();%打印算法迭代過程%獲得最正確個體變量值q=0.;forj=1:9q=q+best_in(j).*2^(j-1);endq=-2+q*4./(2^9-1);q=-q^2-4*q+1;%結(jié)果展示fprintf('最大值為:%3.2f\n',q);cleari;clearj;clearq;%調(diào)用函數(shù)1%初始化種群pop%種群大小400%染色體長度9%rand求隨機數(shù)%round取整functioninitilize()globalpop;fori=1:400forj=1:9pop(i,j)=round(rand);endendcleari;clearj;%函數(shù)調(diào)用2%計算出適應(yīng)函數(shù)值g(x)%原函數(shù)f(x)=-x^2-4x+1%取Fmin=-1%g(x)=-x^2-4x%value是pop種群中每個個體的適應(yīng)值%并將value中小于零的數(shù)都賦值為零functionfitness()globalpop;globalvalue;fori=1:400value(i)=0.;forj=1:9ifpop(i,j)==1value(i)=value(i)+pop(i,j)*2^(j-1);endendvalue(i)=-2.+value(i)*4./(2^9-1);value(i)=-value(i)*value(i)-4.*value(i);ifvalue(i)<=0value(i)=0;endendcleari;clearj;%函數(shù)調(diào)用3%求value的平均值%popl是各數(shù)的出現(xiàn)的概率%table中的最后一個值是所有的value值之和%保存最優(yōu)的個體functioncalculate()globalpop;globaltable;globalpopl;globalvalue;globalavg;globalbest_in;%table的初始化fori=1:400table(i)=0.;end%求最大的value值的個體的序列號max,并把最優(yōu)個體放在best_in中max=1;fori=1:399ifvalue(i+1)>value(i)max=i+1;endendforj=1:9best_in(j)=pop(max,j);end%求所有value值的總和加到table中求出平均值avg1,再求出均值個體的出現(xiàn)概率avgfori=1:400ifi==1table(i)=table(i)+value(i);elsetable(i)=table(i-1)+value(i);endendavg1=table(400)./400;avg=avg1./table(400);%求value中每個個體出現(xiàn)的概率并且保存在popl中fori=1:400popl(i)=value(i)./table(400);endfori=1:400ifpopl(i)<avgforj=1:9pop(i,j)=best_in(j);endendendcleari;clearq;clearj;cleark;cleartemp;clearmax;clearavg1;%函數(shù)調(diào)用4%將popl〔i〕=0的個體除去,并補上其相鄰的不為0的pop%將新產(chǎn)生的群pop_new最終復(fù)制到popfunctionselection()globalpop;globalpopl;globalbest_in;pop_new(400,9)=0.;fori=1:400ifpopl(i)==0forj=1:9pop_new(i,j)=best_in(j);endelseforj=1:9pop_new(i,j)=pop(i,j);endendendfori=1:400forj=1:9pop(i,j)=pop_new(i,j);endendcleari;clearj;clearm;clearn;%函數(shù)調(diào)用5%單點交叉操作%pop_size:種群大小%chromo_size:染色體長度%cross_rate:交叉概率functioncrossover()globalpopcross_rate=0.6;fori=1:2:399if(rand<cross_rate)cross_pos=round(rand*9);ifor(cross_pos==0,cross_pos==1)continue;endforj=cross_pos:9temp=pop(i,j);pop(i,j)=pop(i+1,j);pop(i+1,j)=temp;endendendcleari;clearj;clearcross_pos;cleartemp;%函數(shù)調(diào)用6%單點變異操作%pop_size:種群大小%chromo_size:染色體長度%cross_rate:變異概率functionmutation()globalpop;mutate_rate=0.01;fori=1:400ifrand<mutate_ratemutate_pos=round(rand*9);ifmutate_pos==0continue;endpop(i,mutate_pos)=1-pop(
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理喂養(yǎng)寵物合同范例
- 不交質(zhì)保金合同范例
- 公司任職合同范例
- 施工防疫施工方案
- 交通圍擋銷售合同范例
- 個體商合伙合同范本
- 企業(yè)單方就業(yè)合同范例
- 買賣牧草合同范例
- 分批交付設(shè)備合同范例
- 個人弱電施工合同范例
- 藥物治療學(xué)-藥物治療的一般原則課件
- 空中乘務(wù)職業(yè)教育專業(yè)教學(xué)資源庫申報書
- 人教版PEP五年級下冊英語unit1單元復(fù)習(xí)課件
- 心肌炎病人的護理
- 四川麻將業(yè)余一級考級題庫
- 【人教版】三年級下冊數(shù)學(xué)課件《口算乘法》兩位數(shù)乘兩位數(shù)優(yōu)秀(第1課時)
- 《小小理財家》課件PPT
- 《相交線與平行線》復(fù)習(xí)課一等獎?wù)n件
- 部編版四年級語文下冊第3單元大單元整體教學(xué)設(shè)計課件(教案配套)
- q gw2sjss.65金風(fēng)風(fēng)力發(fā)電機組防腐技術(shù)rna部分歸檔版
- 廉政建設(shè)監(jiān)理實施細則
評論
0/150
提交評論