




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、人工智能實(shí)驗(yàn)報告實(shí)驗(yàn)名稱:八數(shù)碼問題姓名: xx學(xué)號: 2012210xxxx 計算機(jī)學(xué)院2014年 1 月 14日一.實(shí)驗(yàn)?zāi)康恼莆誂*的思想,啟發(fā)式搜索,來求解在代價最小的情況下將九宮格從一 個狀態(tài)轉(zhuǎn)為另狀態(tài)的路徑。二.實(shí)驗(yàn)內(nèi)容給定九宮格的初始狀態(tài),要求在有限步的操作內(nèi),使其轉(zhuǎn)化為目標(biāo)狀態(tài),且 所得到的解是代價最小解(即移動的步數(shù)最少)并打印出求解路徑。例如283164705283164705三、A*算法思想:1、思想:A*算法是一種靜態(tài)路網(wǎng)中求解最短路最有效的直接搜索方法。估價值與實(shí)際值越接近,估價函數(shù)取得就越好2、原理:估價函數(shù)公式表示為:f(n)=g(n)+h(n),其中f(n) 是從
2、初始點(diǎn)經(jīng)由節(jié)點(diǎn)n到目標(biāo)點(diǎn)的估價函數(shù),g(n)是在狀態(tài)空 問中從初始節(jié)點(diǎn)到n節(jié)點(diǎn)的實(shí)際代價,h(n)是從n到目標(biāo)節(jié)點(diǎn)最佳路徑的估計 代價。保證找到最短路徑(最優(yōu)解的)條件,關(guān)鍵在于估價函數(shù)h(n)的選?。汗纼r值h(n)<= n到目標(biāo)節(jié)點(diǎn)的距離實(shí)際值,這種情況下,搜索的點(diǎn)數(shù)多,搜索 范圍大,效率低。但能得到最優(yōu)解。并且如果 h(n尸d(n),即距離估計h(n)等于 最短距離,那么搜索將嚴(yán)格沿著最短路徑進(jìn)行此時的搜索效率是最高的。如果估價值>實(shí)際值,搜索的點(diǎn)數(shù)少,搜索范圍小,效率高,但不能保證得到最優(yōu)解。四、算法流程:Heuristic_Search(啟發(fā)式搜索)While (未拓展表不
3、為空?)i從未拓展表中刪除第一個狀態(tài)nN為目標(biāo)狀態(tài)?是,輸出路徑否,生成n的所有子狀態(tài)Case:此子狀態(tài)不在拓展表和 未拓展表中Case:此子狀態(tài)在未拓展表中Case:此子狀態(tài)在拓展表計算該子狀態(tài)的估價函 數(shù)值;記錄比已有的路徑更短 的路徑記錄比已有的路徑更短 的路徑五、關(guān)鍵技術(shù):1、使用了CreateChild ()函數(shù),求得了任意未拓展九宮格的擴(kuò)展結(jié)點(diǎn),便于拓展子空間,搜索所有情況。關(guān)鍵代碼:bool CreateChild(NOExtend ns,NOExtend ne)int i,j,k=0;for(i=0;i<3;i+)for(j=0;j<3;j+)if(ne.cur_s
4、udoku.numij=0) /尋找九宮格空缺所在的坐標(biāo)if(i-1>=0)/將空格向上移動CopySudoku(nsk.cur_sudoku,ne.cur_sudoku);/ 先把未改變的九宮格復(fù)制給九宮格數(shù)組的某一元素nsk.cur_sudoku.numij=ne.cur_sudoku.numi-1j;/然后僅改變此二維九宮格的兩項(xiàng)值即可nsk.cur_sudoku.numi-1j=0;nsk.dx=1;k+;if(j+1<=2)/將空格向右移動CopySudoku(nsk.cur_sudoku,ne.cur_sudoku);nsk.cur_sudoku.numij=nsk.c
5、ur_sudoku.numij+1;nsk.cur_sudoku.numij+1=0;nsk.dx=1;k+;if(i+1<=2)/將空格向下移動CopySudoku(nsk.cur_sudoku,ne.cur_sudoku);nsk.cur_sudoku.numij=nsk.cur_sudoku.numi+1j;nsk.cur_sudoku.numi+1j=0;nsk.dx=1;k+;if(j-1>=0)/將空格向左移動CopySudoku(nsk.cur_sudoku,ne.cur_sudoku);nsk.cur_sudoku.numij=nsk.cur_sudoku.numi
6、j-1;nsk.cur_sudoku.numij-1=0;nsk.dx=1;k+;return 1;return 0;2、用啟發(fā)式搜索函數(shù)尋找求解路徑,運(yùn)用了最優(yōu)解。關(guān)鍵代碼:bool Heuristic_Search(Sudoku start,Sudoku end)A*算法的思想,能夠更快的求解出int a=0,b=0,c=0;int count=0;NOExtend_Sudoku ns;/Extended_Sudoku es;/Path path;/NOExtend father;/未擴(kuò)展結(jié)點(diǎn)表已擴(kuò)展結(jié)點(diǎn)表求解路徑定義父節(jié)點(diǎn)ns.no_nodea.cur_sudoku=start; /初始
7、化未拓展結(jié)點(diǎn)表ns.no_nodea.dx=0;ns.no_nodea.hx=GetHx(ns.no_nodea.cur_sudoku,end);ns.no_nodea.fx=ns.no_nodea.dx+ns.no_nodea.hx;a+;while(a!=0) / 當(dāng)未拓展結(jié)點(diǎn)表不為空時father=ns.no_node0; /path.pac+=father;/DeleteFirst(ns,a); /a-;if(EqualSudoku(father.cur_sudoku,end) / 求解路徑ShowPath(path,c); return 1; NOExtend child4;/個方向
8、所以拓展出的結(jié)點(diǎn)最多有四個 CreateChild(child,father);/if(!CreateChild(child,father) continue;/環(huán) for(int i=0;i<4;i+) if(childi.dx=1) /父節(jié)點(diǎn)為為拓展表的第一個結(jié)點(diǎn)記錄求解路徑從未拓展表中刪除第一個結(jié)點(diǎn)如果找到了目標(biāo)九宮格則輸出因?yàn)榫艑m格只能拓展上下左右四生成父節(jié)點(diǎn)的擴(kuò)展結(jié)點(diǎn)如果沒有擴(kuò)展結(jié)點(diǎn)就跳出進(jìn)行下一次循對于父節(jié)點(diǎn)可以生成的每個子結(jié)點(diǎn)if(!ExistNOExtend(ns,childi.cur_sudoku)&&!ExistExtended(es,childi.c
9、ur_s udoku)/ 如果未拓展表和已拓展表中都沒有此狀態(tài),則添加此狀態(tài)到未拓展表中Value(childi,father,end);/獲取此結(jié)點(diǎn)的估價值ns.no_nodea=childi;ns.no_node_fathera=father;a+;continue;if(ExistNOExtend(ns,childi.cur_sudoku)/ 如果未拓展表中有此狀態(tài),此求得當(dāng)前狀態(tài)的估價值并且與表中存在的此狀態(tài)的估價值比較/ 若估價值大就放棄此結(jié)點(diǎn),更小,就加入此結(jié)點(diǎn)Value(childi,father,end);if(childi.fx<father.fx)ns.no_node
10、a=childi;ns.no_node_fathera=father;a+;continue;if(ExistExtended(es,childi.cur_sudoku)/ 如果已拓展表中有此狀態(tài),此求得當(dāng)前狀態(tài)的估價值并且與表中存在的此狀態(tài)的估價值比較/ 若估價值大就放棄此結(jié)點(diǎn),更小,就加入此結(jié)點(diǎn)Value(childi,father,end);if(childi.fx<es.node0.value)/當(dāng)子狀態(tài)的價值小與已經(jīng)掃描過的狀態(tài)時ns.no_nodea=childi;ns.no_node_fathera=father;a+;/a 為未拓展表中的元素個數(shù) continue;es.nodeb.cur_sudoku=father.cur_sudoku; /將已經(jīng)生成完拓展結(jié)點(diǎn)的父節(jié)點(diǎn)放入已拓展表中es.nodeb.value=father.fx;b+; /b 為已拓展表中的元素個數(shù)SortNoExtend(ns,a); / 根據(jù)估價函數(shù)值,從小到大重新排列未拓展表,每次只搜索估價值最小的結(jié)點(diǎn)的路徑if(count+>MAXPATH)b
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨領(lǐng)域研究中如何進(jìn)行綜合性的學(xué)術(shù)匯報
- 初中語文生活美文內(nèi)心不平靜就不會幸福
- 河北省2024-2025學(xué)年高二化學(xué)寒假作業(yè)5無答案
- 高中語文情感美文楓紅一片染深秋
- 通過高科技助力企業(yè)的快速信任關(guān)系的構(gòu)建方式探討
- 新課標(biāo)2025版高考物理二輪復(fù)習(xí)專題二第2講機(jī)械能守恒定律功能關(guān)系精練含解析
- 貴州2025年02月貴州省林業(yè)局直屬事業(yè)單位公開招考17名工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 高中語文作文作一條痛苦的反向延長線
- 部編版四年級道德與法治下冊全冊教案
- 六不防溺水承諾書(32篇)
- 藥房品種類別及數(shù)量清單
- 玻璃工藝學(xué)第4章 玻璃的性質(zhì)
- 四川省藥械集中采購及醫(yī)藥價格監(jiān)測平臺操作指引
- 機(jī)關(guān)檔案管理工作培訓(xùn)PPT課件
- 大學(xué)生安全教育課件(ppt共41張)
- 初中物理人教版八年級下冊 第1節(jié)牛頓第一定律 課件
- 網(wǎng)站培訓(xùn)內(nèi)容trswcm65表單選件用戶手冊
- 監(jiān)理大綱(范本)
- 空調(diào)系統(tǒng)維保記錄表格模板
- 打印版-圓與二次函數(shù)綜合題精練(帶答案)
- 工程結(jié)算書標(biāo)準(zhǔn)
評論
0/150
提交評論