




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、-. z.關(guān)于遺傳算法的實驗報告一、實驗目的:理解和掌握遺傳算法的應用及意義,能用一門自己擅長的語言實現(xiàn)遺傳算法的根本功能,在此根底上進一步理解和穩(wěn)固對遺傳算法的重要,以便在今后的學習和工作中能有效的運用和借鑒!需要指出的是遺傳算法并不是能保證所得到的就是最正確的答案但通過一定的方法可以將誤差控制在一定的*圍內(nèi)!實驗原理和題目:1.遺傳算法是一種基于空間搜索的算法,它通過自然選擇、遺傳、變異等操作以及達爾文的適者生存的理論,模擬自然進化過程來尋找所求問題的答案。其求解過程是個最優(yōu)化的過程。一般遺傳算法的主要步驟如下:1隨機產(chǎn)生一個確定長度的特征字符串組成的初始種群。2對該字符串種群迭代地執(zhí)行下
2、面的步驟a和步驟b,直到滿足停頓準則為止: a計算種群中每個個體字符串的適應值; b應用復制、穿插和變異等遺傳算子產(chǎn)生下一代種群。把在后代中表現(xiàn)的最好的個體字符串指定為遺傳算法的執(zhí)行結(jié)果,即為問題的一個解。 2.通過編碼、設置種群、設置適應度函數(shù)、遺傳操作、解碼產(chǎn)生需要的解。 f(*)=*sin(*)+1, *0,2,求解f(*)的最大值和最小值。 三、實驗條件硬件:微型計算機。語言:本實驗選用的為C+語言。四、實驗內(nèi)容:建造針對f(*)的遺傳算法程序,然后進展運行求解。五、實驗步驟:1.確定根本功能:本實驗是實現(xiàn)f*的最大值和最小值的求解。2. 對f(*)進展編碼:用一個二進制矢量表示一個染
3、色體,由染色體來代表變量*的實數(shù)值,這里精度取小數(shù)點后6位數(shù),變量*的域長為2,整個區(qū)間被分為2*1000000個等長的區(qū)間。由于2*1000000在23位二進制數(shù)的表示*圍呢,所以,編碼長度為23位。3. 設計適應度函數(shù):由于要求f*的最值,所以適應度函數(shù)可根據(jù)f*做適當?shù)母淖?。最大值:f(*)=*sin(*)+5;最小值:f(*)=1/*sin(*)+5 ; 4.針對f(*)的設計并且實現(xiàn)遺傳算法程序:遺傳操作主要包括復制、穿插和變異。復制是直接將父代遺傳給子代,即根據(jù)個體的適應度函數(shù)值所度量的優(yōu)劣程度決定它在下一代是被淘汰還是被遺傳。穿插從能進入下一代的個體中選出兩個,將兩者的局部碼值進
4、展交換。變異是根據(jù)變異概率選出一個個體,隨機對其*位編碼進展改變。復制由voidSelection_operation(boolflag);實現(xiàn);穿插由voidCrossover_operation();實現(xiàn);變異由voidMution-operation();實現(xiàn)。5. 設計初始種群:默認設置為50個隨機產(chǎn)生的23位字節(jié)的染色體。6. 調(diào)試穿插和變異概率:在常用的穿插和變異概率*圍內(nèi),結(jié)果隨穿插和變異的概率的改變而改變,之間差異相對來說不太明顯7. 實驗參數(shù):實驗中主要的參數(shù)有遺傳代數(shù)、群體規(guī)模、穿插概率、變異概率。 實驗結(jié)果:求最大值:求最小值:程序主要代碼如下后臺代碼:class GAv
5、ector Pop;vector SubPop;double Pc;double Pm;int Num_Iteration;int Num_Population;double Optimal_Ma*_*_Solution;double Optimal_Min_*_Solution; double Optimal_Ma*_Function_Vlaue;double Optimal_Min_Function_Value;string Optimal_Individual;vector LunPan;/float fitness;public:GA()Pc=0.25;Pm=0.01;Num_Popu
6、lation=50;Num_Iteration=100;void GA_Init();void Crossover_Operation();void Select_Operation();void Mutation_Operation();void Evaluation(bool);void LunPan_Operation(bool);double Function(double);void E*treme_Value(bool);void Display(bool,int);void Display_M();/ Find the ma* and min valuevoid GA:E*tre
7、me_Value(bool flag)if(flag) Optimal_Ma*_Function_Vlaue=-100;else Optimal_Min_Function_Value=100;for(vector:iterator iter=Pop.begin();iter!=Pop.end();+iter)double t=0.5;double Deum1=0;/*string p=*iter;*/for(int i=(*iter).length()-1;i=0;-i)t=t*2;Deum1+=(*iter)i-48)*t;Deum1=Deum1*(2*PI)/ValueOfString);
8、/coutDeum1 ;double Temp=Function(Deum1);/ 求函數(shù)值/coutTempOptimal_Ma*_Function_Vlaue)Optimal_Ma*_Function_Vlaue=Temp;Optimal_Ma*_*_Solution=Deum1;Optimal_Individual=*iter;/fitness=Temp+5;else /find the minimumif(TempOptimal_Min_Function_Value)Optimal_Min_Function_Value=Temp;Optimal_Min_*_Solution=Deum1
9、;Optimal_Individual=*iter;/fitness=Temp+5;/Initialize the Populationsvoid GA:GA_Init()for(int i*=0;i*Num_Population;+i*)string STRing;for(int i=0;i23;i+)int rnd=rand()%2;STRing.push_back(rnd+48);Pop.push_back(STRing);STRing.clear();/for(vector:iterator iter=Pop.begin();iter!=Pop.end();+iter)/cout*it
10、erendl;/Select Operationvoid GA:Select_Operation()/隨機選擇個體double rnd=0.0001*(rand()%10000);for(vector:iterator iter=LunPan.begin();iter!=LunPan.end();+iter)if(rnd=*iter)SubPop.push_back(*(Pop.begin()+(iter-LunPan.begin();/cout*(Pop.begin()+(iter-LunPan.begin()endl;break;/Crossover Operationvoid GA:Cr
11、ossover_Operation()/隨機選擇兩個個體進展穿插操作double rnd=0.0001*(rand()%10000);for(vector:iterator iter=LunPan.begin();iter!=LunPan.end();+iter)if(rnd=*iter)string STRing=*(Pop.begin()+(iter-LunPan.begin();double rnd1=0.0001*(rand()%10000);for(vector:iterator iter1=LunPan.begin();iter1!=LunPan.end();+iter1)if(r
12、nd1=*iter1)string STRing1=*(Pop.begin()+(iter1-LunPan.begin();int rnd2=rand()%23;char Temp;for(int i=rnd2;iSTRing.length();+i)Temp=STRingi;STRingi=STRing1i;STRing1i=Temp;SubPop.push_back(STRing);SubPop.push_back(STRing1);break;break;/Mutation Operationvoid GA:Mutation_Operation()/選擇個體進展突變操作double rn
13、d=0.0001*(rand()%10000);for(vector:iterator iter=LunPan.begin();iter!=LunPan.end();+iter)if(rnd=*iter)string STRing=*(Pop.begin()+(iter-LunPan.begin();int rnd1=rand()%23;if(STRingrnd1=0)STRingrnd1=1;elseSTRingrnd1=0;SubPop.push_back(STRing);break;/coutMutationendl;/Evaluation Operationvoid GA:Evalua
14、tion(bool flag)srand(time(NULL);Pop.clear();GA_Init();E*treme_Value(flag);Display(flag,0);/*srand(time(NULL);*/for(int i=1;i=Num_Iteration;+i)LunPan_Operation(flag);/for(vector:iterator iter=LunPan.begin();iter!=LunPan.end();+iter)/cout*iterendl;/for(int j=0;jNum_Population;j+)/*srand(time(NULL);*/d
15、ouble rnd=0.0001*(rand()%10000);/coutrndendl;if(rndPm)Mutation_Operation();/coutMutationendl;elseif(rnd(Pc+Pm)+j;Crossover_Operation();/coutCrossoverendl;elseSelect_Operation();/coutSelectionendl;/for(vector:iterator iter=SubPop.begin();iter!=SubPop.end();+iter)/cout*iterendl;/coutendl;/coutendl;for(vector:iterator iter=Pop.begin(),iter1=SubPop.begin();iter!=Pop.end();+iter,+iter1)*iter=*iter1;
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025項目管理人員安全培訓考試試題及答案a卷
- 2024-2025項目管理人員年度安全培訓考試試題B卷附答案
- 2025年新入職員工安全培訓考試試題答案審定
- 老年教育課程設置與教學方法創(chuàng)新實踐:2025年老年教育課程評價體系改革研究報告
- 2025年在線教育平臺用戶增長與留存策略困境突破報告
- 醫(yī)療倫理教育與醫(yī)患關(guān)系改善
- 初中畢業(yè)典禮方案
- 嶺南版一年級美術(shù)教材使用計劃
- 特色主題餐廳在2025年餐飲業(yè)品牌價值研究報告
- 工業(yè)互聯(lián)網(wǎng)平臺光通信技術(shù)升級路徑:2025年行業(yè)應用案例研究報告
- 員工身心健康情況排查表
- 少數(shù)民族維吾爾族民俗文化介紹圖文課件
- 引導接車監(jiān)控裝置操作辦法
- 訂購單模板(訂貨單模板)
- 表B. 0 .11工程款支付報審表
- 二手車培訓-銷售顧問
- 檔案袋密封條格式范本(可直接打印,可自行編輯)
- 《中國馬克思主義與當代》部分課后題-參考答案
- 讀書分享交流會《外婆的道歉信》課件
- 科技論文寫作與學術(shù)規(guī)范課件
- 密閉式靜脈輸液技術(shù)操作考核評分標準表(標準版)
評論
0/150
提交評論