




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 人工智能原理與方法A*算法實(shí)現(xiàn)八數(shù)碼搜索問題模式識(shí)別與智能系統(tǒng)SY1003113游遵文題目:編程實(shí)現(xiàn)8數(shù)碼問題初始狀態(tài):38215764目標(biāo)狀態(tài):12384765要求:1、報(bào)告:給出狀態(tài)表示,編碼規(guī)則,搜索算法A*,簡(jiǎn)單程序說(shuō)明,最優(yōu)路徑。2、調(diào)通的程序(語(yǔ)言不限)狀態(tài)表示用一個(gè)3X3的數(shù)組來(lái)表示狀態(tài),數(shù)組中的各個(gè)元素對(duì)應(yīng)狀態(tài)位置的數(shù)字。其中空格用0表示。編碼規(guī)則在程序?qū)崿F(xiàn)過(guò)程中,只有移動(dòng)0的位置,即可生成新的節(jié)點(diǎn)。規(guī)則庫(kù)設(shè)數(shù)組中0的位置為aij,其中WW,WW。R1:if(三)then上移R1:if(W)then下移R1:if(三)then左移R1:if(W)then右移三、搜索算法A*用
2、于度量節(jié)點(diǎn)的“希望”的量度f(wàn)(n),即用來(lái)衡量到達(dá)目標(biāo)節(jié)點(diǎn)的路徑的可能性大小。A算法:基本思想:定義一個(gè)評(píng)價(jià)函數(shù),對(duì)當(dāng)前的搜索狀態(tài)進(jìn)行評(píng)估,找出一個(gè)最有希望的節(jié)點(diǎn)進(jìn)行擴(kuò)展:f(n)=g(n)+h(n),n為被評(píng)價(jià)節(jié)點(diǎn)g*(n):從s到n的最優(yōu)路徑的實(shí)際代價(jià)h*(n):從n到g的最優(yōu)路徑的實(shí)際代價(jià)f*(n)=g*(n)+h*(n):從s經(jīng)過(guò)n到g的最優(yōu)路徑的實(shí)際代價(jià)g(n)、h(n)、f(n)分別是g*(n)、h*(n)、f*(n)的估計(jì)值g(n)通常為從S到到n這段路徑的實(shí)際代價(jià),則有g(shù)(n)三g*(n)h(n):是從節(jié)點(diǎn)n到目標(biāo)節(jié)點(diǎn)Sg的最優(yōu)路徑的估計(jì)代價(jià).它的選擇依賴于有關(guān)問題領(lǐng)域的啟發(fā)信
3、息,叫做啟發(fā)函數(shù)A算法:在圖搜索的一般算法中,在搜索的每一步都利用估價(jià)函數(shù)f(n)=g(n)+h(n)對(duì)Open表中的節(jié)點(diǎn)進(jìn)行排序表中的節(jié)點(diǎn)進(jìn)行排序,找出一個(gè)最有希望的節(jié)點(diǎn)作為下一次擴(kuò)展的節(jié)點(diǎn)。在A算法中,如果滿足條件:h(n)Wh*(n),則A算法稱為A*算法。在本算法中,為實(shí)現(xiàn)八數(shù)碼的搜索問題,定義估價(jià)函數(shù)為:f(n)=g(n)+h(n),其中g(shù)(n)表示節(jié)點(diǎn)n在搜索樹中的深度;h(n)表示節(jié)點(diǎn)n的各個(gè)數(shù)碼到目標(biāo)位置的曼哈頓距離和。四、程序說(shuō)明1、算法實(shí)現(xiàn)的步驟:把初始節(jié)點(diǎn)SO放入Open表中,置SO的代價(jià)g(S0)=0;如果Open表為空,則問題無(wú)解,失敗退出;把Open表的第一個(gè)節(jié)點(diǎn)取
4、出放入Closed表,并記該節(jié)點(diǎn)為n考察節(jié)點(diǎn)n是否為目標(biāo)節(jié)點(diǎn)。若是,則找到了問題的解,成功退出;若節(jié)點(diǎn)n不可擴(kuò)展,則轉(zhuǎn)第(2)步;擴(kuò)展節(jié)點(diǎn)n,生成其子節(jié)點(diǎn)ni,(其中i=1,2,3,),將這些子節(jié)點(diǎn)放入Open表中,并為每一個(gè)子節(jié)點(diǎn)設(shè)置指向父節(jié)點(diǎn)的指針;按公式g(ni)=g(n)+c(n,ni)(i=1,2,)計(jì)算Open表中的各子節(jié)點(diǎn)的代價(jià),并根據(jù)各節(jié)點(diǎn)的代價(jià)對(duì)Open表中的全部節(jié)點(diǎn)按照從小到大順序重新進(jìn)行排序;然后轉(zhuǎn)第(2)步。2、思路通過(guò)代價(jià)函數(shù)對(duì)Open表中的節(jié)點(diǎn)進(jìn)行排序,代價(jià)小的先擴(kuò)展。 五、搜索算法得出的最優(yōu)路徑如下圖所示,搜索算法從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)經(jīng)歷了18個(gè)狀態(tài)。382105
5、t64Ji=8F=8靜歩382015t?64ti=9=10霰歩082f?64ti=10F=12影歩802315t64Ji=9F=12靜歩81230564ti=8=12興歩812035?64ti=7F=12象歩812r?35064Ji=8F=14靜歩812r?35604ti=9=16靜歩B1t3B4ti=i0靜歩812t?30645Ji=9F=18第10歩ei2t83&45h=8F=18俸“歩612r?43B05h=7F=18fcl2612r?43065h=6F=18fcl3ei2043r?65h=5F=18和歩012843t65h=4F=18希5歩102643t?65h=3F=18fcl612
6、043r?65h=2F=18俸佃歩123840t65h=lF=18律L&歩12304t?65h=0F=18淸按任意鍵繼續(xù)-圖l.VisualC+環(huán)境下運(yùn)行結(jié)果 六、結(jié)論通過(guò)這次的實(shí)驗(yàn),深入了解了啟發(fā)式搜索算法的內(nèi)涵,尤其是A*算法的優(yōu)越性。然而在實(shí)際工程中,選擇合適、優(yōu)異的估價(jià)函數(shù)存在一定困難,特別要注意其信息量的強(qiáng)度不能超過(guò)其上限值,否則A*算法會(huì)變成A算法;而A算法是非充分的,即可能不在其最優(yōu)路徑上,從而導(dǎo)致不能找到目標(biāo)節(jié)點(diǎn)。同時(shí),在實(shí)驗(yàn)過(guò)程中,也熟悉了C+編程和VC的開發(fā)環(huán)境;但編程能力還是極其有限,急需提升。附錄:C+源代碼A*算法代碼的核心部分pnodemove(pnodep,int
7、dir)pnodeUnode=(pnode)malloc(sizeof(node);for(inti=0;i=2;i+)for(intj=0;j=2;j+)Unode-aij=p-aij;switch(dir)case1:/upUnode-x=p-xT;Unode_y=p_y;Unode-aUnode-xUnode-y=0;Unode_aUnode_x+lUnode_y=p_aUnode_xUnode_y;break;case2:/downUnode_father=p;Unode_g=p_g+1;/深度增加一層Unode_h=hvalue(Unode_a,final);/更新h函數(shù)值Unode
8、_f=Unode_h+Unode_g;returnUnode;intmain(intargc,char*argv)pnodeA0=(pnode)malloc(sizeof(node);pnodeopen,/open表頭close,/close表頭now,/當(dāng)前節(jié)點(diǎn)Lnode,Rnode,Unode,Dnode,/下一個(gè)左,右,上,下節(jié)點(diǎn)fnode;/終節(jié)點(diǎn) #close表中initial(AO,start);open=A0;close=NULL;while(1)if(open=NULL)fnode=NULL;cout未能找到解return0;if(open-h=0)fnode=open;ope
9、n=open-next;fnode-next=NULL;fnode-clnext=close;close=fnode;break;now=open;intX,Y;X=now-x;Y=now-y;/Open表為空,未找到解,結(jié)束搜索程序/open表中第一個(gè)節(jié)點(diǎn)是解,結(jié)束搜索/把finalnode從open表中拿出,放到 #if(X0)&(now-father=NULL|now-father-x!=XT)Unode=move(now,l);/空格上移,得到新節(jié)點(diǎn)insert(Unode,open);/把新節(jié)點(diǎn)插入open表中if(X0)&(now-father=NULL|now-father-y!=YT)Lnode=move(now,3);insert(Lnode,open);if(Yfather;while(fnode!=NULL)disp(fnode)
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人玉器購(gòu)銷合同樣本
- 出差安裝監(jiān)控合同標(biāo)準(zhǔn)文本
- 公路權(quán)益轉(zhuǎn)讓合同樣本
- 出售液壓設(shè)備合同樣本
- 第06講 被子植物的一生 2025年會(huì)考生物學(xué)專題練習(xí)(含答案)
- 2025汽車銷售服務(wù)合同樣本
- 會(huì)計(jì)管理合同樣本
- 2025服裝店租賃合同模板
- 傭金合作合同標(biāo)準(zhǔn)文本
- 2025建筑器材租賃合同模板
- 新目標(biāo)英語(yǔ)初三英語(yǔ)總復(fù)習(xí)資料講義
- 體育館鋼結(jié)構(gòu)工程馬道施工方案
- DL∕T 1100.1-2018 電力系統(tǒng)的時(shí)間同步系統(tǒng) 第1部分:技術(shù)規(guī)范
- 2024屆山東省濰坊市六年級(jí)下學(xué)期小升初真題數(shù)學(xué)試卷含解析
- 2024山東能源集團(tuán)中級(jí)人才庫(kù)選拔易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 輸電桿塔用地腳螺栓與螺母條件
- 12清貧 公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- HGT 3652-1999(2009) 快裝管接頭標(biāo)準(zhǔn)規(guī)范
- 《電力建設(shè)施工技術(shù)規(guī)范 第3部分:汽輪發(fā)電機(jī)組》DLT 5190.3
- 移動(dòng)互聯(lián)網(wǎng)環(huán)境下用戶隱私關(guān)注的影響因素及隱私信息擴(kuò)散規(guī)律研究
- 工程振動(dòng)分析與控制基礎(chǔ) 第2版 課件 第5、6章 傳遞矩陣法、有限元法
評(píng)論
0/150
提交評(píng)論