遺傳算法實(shí)驗(yàn)報(bào)告_第1頁(yè)
遺傳算法實(shí)驗(yàn)報(bào)告_第2頁(yè)
遺傳算法實(shí)驗(yàn)報(bào)告_第3頁(yè)
遺傳算法實(shí)驗(yàn)報(bào)告_第4頁(yè)
遺傳算法實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

..信息與管理科學(xué)學(xué)院計(jì)算機(jī)科學(xué)系實(shí)驗(yàn)報(bào)告課程名稱:人工智能實(shí)驗(yàn)名稱:遺傳算法問(wèn)題XX:鵬海賈美麗妍漢昭學(xué)號(hào):15100030631510003024班級(jí):計(jì)科實(shí)驗(yàn)室:軟件技術(shù)實(shí)驗(yàn)室指導(dǎo)教師:慧日期:2016.11.09&&遺傳算法問(wèn)題實(shí)驗(yàn)?zāi)康?.熟悉和掌握遺傳算法的原理、實(shí)質(zhì);2.學(xué)會(huì)使用遺傳算法解決問(wèn)題;3.學(xué)會(huì)編寫(xiě)遺傳算法程序?qū)ふ液瘮?shù)最值;實(shí)驗(yàn)原理遺傳算法是仿真生物遺傳學(xué)和自然選擇機(jī)理,通過(guò)人工方式所構(gòu)造的一類搜索算法,從某種程度上說(shuō)遺傳算法是對(duì)生物進(jìn)化構(gòu)成進(jìn)展的數(shù)學(xué)方式仿真。在遺傳算法中染色體對(duì)應(yīng)的是一系列符號(hào)序列,在標(biāo)準(zhǔn)的遺傳算法(即根本遺傳算法)中,通常用0,1組成的位串表示,串上各個(gè)位置對(duì)應(yīng)基因座,各位置上的取值對(duì)應(yīng)等位基因。遺傳算法對(duì)染色體進(jìn)展處理,染色體稱為基因個(gè)體。一定數(shù)量的基因個(gè)體組成基因種群。種群中個(gè)體的數(shù)目為種群的規(guī)模,各個(gè)體對(duì)環(huán)境的適應(yīng)程度稱為適應(yīng)度。實(shí)驗(yàn)容用遺傳算法求根號(hào)2,也就是求方程f(x)=x*x-2=0的正整數(shù)解,x=1時(shí)f(1)<0,x=2時(shí)f(2)>0,由介值定理,那么1到2中間存在一個(gè)根,根據(jù)代數(shù)根本定理和根的對(duì)稱性知這就是我們要找的根,由目標(biāo)函數(shù)得到適應(yīng)度函數(shù),我們選擇個(gè)體都在[1,2]之間,那適應(yīng)度函數(shù)我可以取j(x)=40/(2+|x*x-2|)-10,由x的取值圍知j的圍是(0,10)

x和y穿插就用取平均(x+y)/2,穿插概率取0.9,變異概率為0,步驟分析選擇目標(biāo)函數(shù),確定變量定義域及編碼精度,形成編碼方案隨機(jī)產(chǎn)生一個(gè)規(guī)模為〔即該種群中含有個(gè)體〕的種群2個(gè)體評(píng)價(jià):計(jì)算群體P(t)中各個(gè)個(gè)體適應(yīng)度選擇運(yùn)算:將選擇算子作用于群體。選擇的目的是把優(yōu)化的個(gè)體直接遺傳到下一代或通過(guò)配對(duì)穿插產(chǎn)生新的個(gè)體再遺傳到下一代。選擇操作是建立在群體中個(gè)體的適應(yīng)度評(píng)估根底上的?!策x擇運(yùn)算用輪盤(pán)賭算法〕對(duì)被選擇進(jìn)入匹配池中的個(gè)體進(jìn)展穿插操作,形成新種群以小概率在種群中選擇個(gè)體進(jìn)展變異操作形成新種群計(jì)算每個(gè)個(gè)體的適值根據(jù)適值概率選擇新個(gè)體形成新種群檢查完畢條件,假設(shè)滿足那么算法完畢,當(dāng)前種群中適值最高的個(gè)體即所求解;否那么轉(zhuǎn)3選擇操作:首先要知道適應(yīng)度函數(shù),所謂的適應(yīng)度函數(shù)就是評(píng)價(jià)函數(shù),通常是問(wèn)題的目的函數(shù)〔或它的倒數(shù)〕,它描述了個(gè)體的優(yōu)劣程度同時(shí)也決定了選擇操作的概率,設(shè)fi表示第i個(gè)個(gè)體的適應(yīng)度值,那選擇第i個(gè)個(gè)體的概率就是fi/∑fj,簡(jiǎn)單來(lái)說(shuō),這個(gè)概率的大小就決定了該個(gè)體是被淘汰還是被保存。通常的具體做法是用類似賭盤(pán)的方法,每個(gè)個(gè)體占它的適應(yīng)度那么寬的轉(zhuǎn)盤(pán)大小,每次擲色子,落到哪一格就選哪一格對(duì)應(yīng)的個(gè)體。穿插操作:穿插操作就是讓2個(gè)以上的染色體進(jìn)展穿插產(chǎn)生后代的過(guò)程,具體的穿插操作要看具體的問(wèn)題。不過(guò)我覺(jué)得有一個(gè)原那么,就是要有對(duì)稱性,穿插得到的后代中的基因要來(lái)源于父代的所有個(gè)體中,也就是說(shuō)n個(gè)個(gè)體進(jìn)展穿插是和它們的排列沒(méi)關(guān)系,這樣子代才有時(shí)機(jī)得到更優(yōu)秀的基因。穿插操作是遺傳算法中最重要的操作。最簡(jiǎn)單的根本方式是交換父代中染色體片段。變異操作:生物可以突變,有時(shí)候突變是好的,有時(shí)候卻是壞的,但正是因?yàn)橛辛送蛔儾抛層邢薜姆N群中基因庫(kù)可以非常豐富,也保證了種群的適應(yīng)能力。變異操作通常是翻轉(zhuǎn)個(gè)體中某段染色體,編碼后的染色體在計(jì)算機(jī)中都是01串,也就可以隨機(jī)的翻轉(zhuǎn)某個(gè)〔或多個(gè)〕bit上的值。穿插和變異不是一定要發(fā)生在選擇了的個(gè)體上,而是按一定控制概率發(fā)生的,穿插概率比擬高通常是0.6~0.95,而變異概率比擬低通常是0.001~0.01。五、實(shí)驗(yàn)程序#include<stdio.h>#include<time.h>#include<stdlib.h>typedefstruct_indi//個(gè)體{doublecode;//染色體doubledegree;//適應(yīng)度}Indi;Indigroup[40];//種群規(guī)模為40//------------------------------------------------------//適應(yīng)度算法voidJudge(Indi&x)//適應(yīng)度算法{doubletmp=x.code*x.code-2.0;if(tmp>=0)x.degree=40.0/(2.0+tmp)-10.0;elsex.degree=40.0/(2.0-tmp)-10.0;}//------------------------------------------------------inthappened(doublep)//是否發(fā)生一個(gè)概率在p=0~1的事件{returnrand()<(int)(p*RAND_MAX);}//------------------------------------------------------//穿插操作voidCross(Indi&x,Indi&y)//穿插操作,產(chǎn)生一個(gè)子代取代父代中最次的一個(gè){Indiz;z.code=(x.code+y.code)/2.0;//穿插只進(jìn)展了取平均值Judge(z);if(x.degree<y.degree){if(z.degree<=x.degree)return;//如果新個(gè)體不如雙親,淘汰之x=z;//否那么,替代父代中最次的一個(gè)}else{if(z.degree<=y.degree)return;y=z;}}//------------------------------------------------------voidmain(){srand(time(NULL));//設(shè)置隨機(jī)數(shù)種子inti,j,best,x,y,c;doublesum,strick;for(i=0;i<40;++i)//隨機(jī)得到初始種群{group[i].code=1.0+(double)rand()/RAND_MAX;Judge(group[i]);}for(i=1;i<=10;++i)//固定進(jìn)化10代{for(sum=0.0,best=0,j=0;j<40;++j){sum+=group[j].degree;//求總的適應(yīng)度sumif(group[j].degree>group[best].degree)best=j;//求當(dāng)前最優(yōu)個(gè)體}printf("第%2d代中最優(yōu)個(gè)體為%10f(適應(yīng)度%10f)平均適應(yīng)度為%10f\n",i,group[best].code,group[best].degree,sum/40.0);for(c=40;c;--c)//輪盤(pán)賭法選擇個(gè)體{strick=(double)rand()/RAND_MAX*sum;//賭盤(pán)中的色子,選擇個(gè)體x,yfor(x=0;x<40&&strick>=group[x].degree;++x)strick-=group[x].degree;strick=(double)rand()/RAND_MAX*sum;for(y=0;y<40&&strick>=group[y].degree;++y)strick-=group[y].degree;if(happened(0.9))//穿插率為0.9Cross(group[x],group[y]);//穿插}}}實(shí)驗(yàn)結(jié)果:六、實(shí)驗(yàn)心得本次人工智能實(shí)驗(yàn)是以小組任務(wù)來(lái)完成,小組中的幾個(gè)成員分工明確,各有所長(zhǎng),就我們組所選擇的人工智能遺傳算法而言,從拿到題目不知所措到問(wèn)題一一解決,例如程序運(yùn)行錯(cuò)誤,流程圖難以畫(huà)出等。重要的是在遺傳算法實(shí)驗(yàn)過(guò)程

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論