![人工智能導(dǎo)論:狀態(tài)空間搜索實驗—八數(shù)碼問題求解_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/22674cd7-631e-4819-8cb4-47182efd2933/22674cd7-631e-4819-8cb4-47182efd29331.gif)
![人工智能導(dǎo)論:狀態(tài)空間搜索實驗—八數(shù)碼問題求解_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/22674cd7-631e-4819-8cb4-47182efd2933/22674cd7-631e-4819-8cb4-47182efd29332.gif)
![人工智能導(dǎo)論:狀態(tài)空間搜索實驗—八數(shù)碼問題求解_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/22674cd7-631e-4819-8cb4-47182efd2933/22674cd7-631e-4819-8cb4-47182efd29333.gif)
![人工智能導(dǎo)論:狀態(tài)空間搜索實驗—八數(shù)碼問題求解_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/22674cd7-631e-4819-8cb4-47182efd2933/22674cd7-631e-4819-8cb4-47182efd29334.gif)
![人工智能導(dǎo)論:狀態(tài)空間搜索實驗—八數(shù)碼問題求解_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/22674cd7-631e-4819-8cb4-47182efd2933/22674cd7-631e-4819-8cb4-47182efd29335.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、昆明理工大學(xué)信息工程與自動化學(xué)院學(xué)生實驗報告( 2014 2015 學(xué)年 第 一 學(xué)期 )課程名稱:人工智能導(dǎo)論 開課實驗室: 年 月 日年級、專業(yè)、班學(xué)號姓名成績實驗項目名稱狀態(tài)空間搜索實驗八數(shù)碼問題求解指導(dǎo)教師胡蓉教師評語該同學(xué)是否了解實驗原理: A.了解 B.基本了解 C.不了解 該同學(xué)的實驗?zāi)芰Γ?A.強(qiáng) B.中等 C.差 該同學(xué)的實驗是否達(dá)到要求 : A.達(dá)到 B.基本達(dá)到 C.未達(dá)到實驗報告是否規(guī)范: A.規(guī)范 B.基本規(guī)范 C.不規(guī)范實驗過程是否詳細(xì)記錄: A.詳細(xì) B.一般 C.沒有 教師簽名: 年 月 日一、實驗內(nèi)容和要求八數(shù)碼問題:在3×3的方格棋盤上,擺放著1到
2、8這八個數(shù)碼,有1個方格是空的,其初始狀態(tài)如圖1所示,要求對空格執(zhí)行空格左移、空格右移、空格上移和空格下移這四個操作使得棋盤從初始狀態(tài)到目標(biāo)狀態(tài)。例如:28312316484705765(a) 初始狀態(tài) (b) 目標(biāo)狀態(tài)圖1 八數(shù)碼問題示意圖請任選一種盲目搜索算法(廣度優(yōu)先搜索或深度優(yōu)先搜索)或任選一種啟發(fā)式搜索方法(全局擇優(yōu)搜索,加權(quán)狀態(tài)圖搜索,A 算法或 A* 算法)編程求解八數(shù)碼問題(初始狀態(tài)任選)。選擇一個初始狀態(tài),畫出搜索樹,填寫相應(yīng)的OPEN表和CLOSED表,給出解路徑,對實驗結(jié)果進(jìn)行分析總結(jié),得出結(jié)論。實驗報告內(nèi)容格式要求:XXXXXXXXXXXX(中文:宋體,小四;英文:Ti
3、mes New Roman)。二、實驗?zāi)康?. 熟悉人工智能系統(tǒng)中的問題求解過程;2. 熟悉狀態(tài)空間的盲目搜索和啟發(fā)式搜索算法的應(yīng)用;3. 熟悉對八數(shù)碼問題的建模、求解及編程語言的應(yīng)用。三、實驗算法啟發(fā)函數(shù)設(shè)定 由八數(shù)碼問題的部分狀態(tài)圖可以看出,從初始節(jié)點開始,在通向目標(biāo)節(jié)點的路徑上,各節(jié)點的數(shù)碼格局同目標(biāo)節(jié)點相比較,其數(shù)碼不同的位置個數(shù)在逐漸減少,最后為零,因此可以把數(shù)碼不同的位置個數(shù)作為標(biāo)志一個節(jié)點到目標(biāo)節(jié)點距離遠(yuǎn)近的一個啟發(fā)性信息,利用這個信息來擴(kuò)展節(jié)點的選擇,減少搜索范圍,提高搜索速度。2、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計數(shù)碼結(jié)構(gòu)體typedef struct node /八數(shù)碼結(jié)構(gòu)體int for
4、mNN; /數(shù)碼組int evalue; /評估值,差距int udirec; /所屏蔽方向,防止往回推到上一狀態(tài),1上2下3左4右struct node *parent; /父節(jié)點Graph;Graph *QuMAX;/隊列Graph *StMAX;/堆棧搜索過程:(搜索采用廣度搜索方式,利用待處理隊列輔助,逐層搜索(跳過劣質(zhì)節(jié)點)a、把初始數(shù)碼組壓入隊列;b、從隊列中取出一個數(shù)碼組節(jié)點;c、擴(kuò)展子節(jié)點,即從上下左右四個方向移動空格,生成相應(yīng)子節(jié)點:d、對子節(jié)點數(shù)碼組作評估,是否為優(yōu)越節(jié)點,即其評估值是否小于等于其父節(jié)點加一,是則將其壓入隊,否則拋棄。 e、判斷壓入隊的子節(jié)點數(shù)碼組(優(yōu)越點)
5、的評估值,為零則表示搜索完成,退出搜索; f、跳到步驟2;四、程序框圖起始把s放入open表失敗成功是否open表為空表?是把open表中的第一個節(jié)點n移入close表否擴(kuò)展節(jié)點n,把其后裔放入open表的前頭是否有后繼節(jié)點為目標(biāo)節(jié)點?否是 五、實驗結(jié)果及分析采用深度優(yōu)先搜索方式 并簡化搜索六、結(jié)論813204765 (2)103824765 (3)813024 (0)765813024765 (4)123804765 (5)013824765 (1)Open表 close表01 2 02 3 4 0 12 4 5 6 0 1 3 目標(biāo)完成七、源程序及注釋#include <s
6、tdio.h> /設(shè)計了搜索深度范圍,防止隊列內(nèi)存越界#include <stdlib.h> 6、運行結(jié)果#include <time.h> #define N 3 /數(shù)碼組大小 #define Max_Step 50 /最大搜索深度 #define MAX 50 typedef
7、0;struct node/八數(shù)碼結(jié)構(gòu)體 int formNN;/數(shù)碼組 int evalue;/評估值 int udirect;/所屏蔽方向,防止往回推到上已狀態(tài),1上2下3左4右 struct node *parent;/父節(jié)點
8、160; /打印數(shù)碼組 void Print(Graph *The_graph) int i,j; if(The_graph=NULL) printf("圖為空n");
9、0;else printf("-n"); for(i=0;i<N;i+) &
10、#160; printf("|t"); for(j=0;j<N;j+)
11、160; printf("%dt",The_graph->formij);/遍歷打印 printf("t|n&q
12、uot;); printf("|ttt差距:%dt|n",The_graph->evalue);/差距顯示 printf("-n");
13、160; /評價函數(shù) int Evaluate(Graph *The_graph,Graph *End_graph) int valute=0;/差距數(shù) int i,j; for(i=0;i<N;i+)
14、160; for(j=0;j<N;j+) if(The_graph->formij!=End_graph->formij)
15、0; valute+;
16、160; The_graph->evalue=valute; return valute; /移動數(shù)碼組 Graph *Move(Graph *The_graph,int Dir
17、ect,int CreatNew_graph) Graph *New_graph;/ int HasGetBlank=0;/是否獲取空格位置 int AbleMove=1;/是否可移動 int i,j,t_i,t_j,x,y;
18、0; for(i=0;i<N;i+)/獲取空格坐標(biāo)i,j for(j=0;j<N;j+)
19、 if(The_graph->formij=0) HasGetBlank=1;
20、160; break; if
21、(HasGetBlank=1) break; /printf("空格位置:%d,%dn",i,j); t_i=i;
22、160; t_j=j; /移動空格 switch(Direct) case 1:/上
23、; t_i-; if(t_i<0) AbleMove=0; &
24、#160; break; case 2:/下 t_i+;
25、 if(t_i>=N) AbleMove=0; break; case
26、160;3:/左 t_j-; if(t_j<0)
27、;AbleMove=0; break; case 4:/右 t_j+;
28、; if(t_j>=N) AbleMove=0; break;
29、; if(AbleMove=0)/不能移動則返回原節(jié)點 return The_
30、graph; if(CreatNew_graph=1) New_graph=(Graph *)malloc(sizeof(Graph);/生成節(jié)點
31、160;for(x=0;x<N;x+) for(y=0;y<N;y+)
32、160; New_graph->formxy=The_graph->formxy;/復(fù)制數(shù)碼組
33、160; else New_graph=The_graph; /移動后 New_graph->formij=N
34、ew_graph->formt_it_j; New_graph->formt_it_j=0; /printf("移動產(chǎn)生的新圖:n"); /Print(New_graph); return New_graph;
35、0;/搜索函數(shù) Graph *Search(Graph *Begin,Graph *End) Graph *g1,*g2,*g; int Step=0;/深度 int Direct=0;/方向 int i
36、; int front,rear; front=rear=-1;/隊列初始化 g=NULL; rear+;/入隊 Qurear=Begin; while(rear!=fr
37、ont)/隊列不空 front+;/出隊 g1=Qufront; /printf("開始第%d個圖:n",front);
38、; /Print(g1); for(i=1;i<=4;i+)/分別從四個方向推導(dǎo)出新子節(jié)點 Direct=i
39、; if(Direct=g1->udirect)/跳過屏蔽方向 continue;
40、 g2=Move(g1, Direct, 1);/移動數(shù)碼組 if(g2!=g1)/數(shù)碼組是否可以移動 &
41、#160; /可以移動 Evaluate(g2, End);/評價新的節(jié)點
42、160; /printf("開始產(chǎn)生的第%d個圖:n",i); /Print(g2);
43、60; if(g2->evalue<=g1->evalue+1)
44、160; /是優(yōu)越節(jié)點 g2->parent=g1;
45、60; /移動空格 switch(Direct)/設(shè)置屏蔽方向,防止往回推 &
46、#160; case 1:/上
47、; g2->udirect=2; break;
48、 case 2:/下
49、0; g2->udirect=1; break;
50、; case 3:/左 g2->udirect=4;
51、0; break;
52、0; case 4:/右 g2->udirect=3;
53、60; break;
54、60; rear+;
55、60; Qurear=g2;/存儲節(jié)點到待處理隊列 if(g2->evalue=0)/為0則搜索完成
56、60; g=g2;
57、0; /i=5; break
58、;
59、; else free(g2
60、);/拋棄劣質(zhì)節(jié)點 g2=NULL; &
61、#160; &
62、#160;if(g!=NULL)/為0則搜索完成 if(g->evalue=0)
63、 break;
64、 Step+;/統(tǒng)計深度 if(Step>Max_Step) break;
65、; return g; /初始化一個八數(shù)碼結(jié)構(gòu)體 Graph *CR_BeginGraph(Graph *The_graph) srand(uns
66、igned)time(0); int M=10;/隨機(jī)移動步數(shù) int Direct; int i,x,y; Graph *New_graph; New_graph=(Graph *)malloc(s
67、izeof(Graph); for(x=0;x<N;x+) for(y=0;y<N;y+)
68、; New_graph->formxy=The_graph->formxy; for(i=0;i<M;i+)
69、; Direct=rand()%4+1;/產(chǎn)生14隨機(jī)數(shù) /printf("Direct:%dn",Direct); New_graph=Move(New_graph, Direct, 0); &
70、#160;/Print(New_graph); New_graph->evalue=0; New_graph->udirect=0; New_graph->parent=NULL;
71、 return New_graph; int main (int argc, const char * argv) / insert code here.
72、60; /* Graph Begin_graph= 2,8,3,1,6,4,0,7,5,0,0,NULL Graph Begin_graph= &
73、#160; 2,8,3,1,0,4,7,6,5,0,0,NULL Graph Begin_graph= 2,0,1,4,6,5,3,7,8,0,0,NULL
74、0; */ /目標(biāo)數(shù)碼組 Graph End_graph= 1,2,3,8,0,4,7,6,5,0,0,NULL
75、60; /初始數(shù)碼組 Graph *Begin_graph; Begin_graph=CR_BeginGraph(&End_graph);/隨機(jī)產(chǎn)生初始數(shù)碼組 Evaluate(Begin_graph, &End_graph);/對初始的數(shù)碼組評價 printf("初始數(shù)碼組:n"); Print(Begin_graph); printf("目標(biāo)數(shù)碼組:n");
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- CH-5兒童各年齡期保健課件
- 2025年全球及中國纜索式起重機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國高壓有載分接開關(guān)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國可見光波段高光譜成像(HSI)設(shè)備行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球墻磨機(jī)開關(guān)行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國打印貼標(biāo)機(jī)和耗材行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球工業(yè)PTFE密封件行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球超高頻RFID一次性腕帶行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球便攜手持式光譜儀行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球除濕白帶丸行業(yè)調(diào)研及趨勢分析報告
- 2025民政局離婚協(xié)議書范本(民政局官方)4篇
- 2024年03月四川農(nóng)村商業(yè)聯(lián)合銀行信息科技部2024年校園招考300名工作人員筆試歷年參考題庫附帶答案詳解
- 益生芽孢桿菌體外抑菌活性及耐藥性研究
- 2023數(shù)聯(lián)網(wǎng)(DSSN)白皮書
- ISO17025經(jīng)典培訓(xùn)教材
- 東南大學(xué)宣講介紹
- 2023年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)題庫及答案解析
- 九年級下冊-2023年中考?xì)v史總復(fù)習(xí)知識點速查速記(部編版)
- GB/T 18103-2022實木復(fù)合地板
- 小學(xué)四年級語文閱讀理解專項訓(xùn)練
- 輔導(dǎo)班合伙人合同范本(2篇)
評論
0/150
提交評論