![高中信息技術(shù) 全國(guó)青少年奧林匹克聯(lián)賽教案 搜索法二_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/29/e2d8fb48-8524-4536-a716-f5209d83e47e/e2d8fb48-8524-4536-a716-f5209d83e47e1.gif)
![高中信息技術(shù) 全國(guó)青少年奧林匹克聯(lián)賽教案 搜索法二_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/29/e2d8fb48-8524-4536-a716-f5209d83e47e/e2d8fb48-8524-4536-a716-f5209d83e47e2.gif)
![高中信息技術(shù) 全國(guó)青少年奧林匹克聯(lián)賽教案 搜索法二_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/29/e2d8fb48-8524-4536-a716-f5209d83e47e/e2d8fb48-8524-4536-a716-f5209d83e47e3.gif)
![高中信息技術(shù) 全國(guó)青少年奧林匹克聯(lián)賽教案 搜索法二_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/29/e2d8fb48-8524-4536-a716-f5209d83e47e/e2d8fb48-8524-4536-a716-f5209d83e47e4.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、算法在信息學(xué)奧林匹克競(jìng)賽中的應(yīng)用(搜索方法2)在深度優(yōu)先搜索算法中,深度較大的節(jié)點(diǎn)先擴(kuò)展,深度較小的節(jié)點(diǎn)先擴(kuò)展,這就是廣度優(yōu)先搜索方法。廣度優(yōu)先搜索的基本算法;bfs計(jì)劃;初始化;建立隊(duì)列數(shù)據(jù);將隊(duì)列頭指針設(shè)置為closed :=0;隊(duì)列結(jié)束指針open :=1;重復(fù)Closed增加1,并取出closed指向的節(jié)點(diǎn)進(jìn)行擴(kuò)展;對(duì)于i:=1至r,開始如果子節(jié)點(diǎn)滿足條件,則開始Open增加1,新節(jié)點(diǎn)存儲(chǔ)在數(shù)據(jù)庫團(tuán)隊(duì)的末尾;如果新節(jié)點(diǎn)和原始節(jié)點(diǎn)有重復(fù),則在此節(jié)點(diǎn)刪除(打開減1)否則,如果新節(jié)點(diǎn),即目標(biāo)節(jié)點(diǎn),輸出并退出;結(jié)束 if ;結(jié)束 for ;直到關(guān)閉=打開;隊(duì)列為空當(dāng)使用廣度優(yōu)先搜索時(shí),最接近根
2、節(jié)點(diǎn)的節(jié)點(diǎn)首先擴(kuò)展,因此廣度優(yōu)先搜索更適合于尋找步驟數(shù)最少的解。由于深度優(yōu)先使用標(biāo)記方法,存儲(chǔ)空間大大減少,而廣度優(yōu)先需要保留所有搜索到的節(jié)點(diǎn)。隨著搜索的深入,所需的存儲(chǔ)空間呈指數(shù)級(jí)增長(zhǎng)。因此,必要時(shí),我們使用雙向搜索來減少搜索空間和存儲(chǔ)空間,如下例所示。廣度優(yōu)先搜索的應(yīng)用字符串轉(zhuǎn)換示例(NOIP2002tg)問題描述:已知有兩個(gè)字符串A$,B$和一組字符串轉(zhuǎn)換規(guī)則(最多6個(gè)規(guī)則):A1$-B1$ A2$-B2$規(guī)則的含義是A$中的子串A1$可以轉(zhuǎn)換成B1$并且A2$可以轉(zhuǎn)換成B2$。例如:A$=ABCD B$=XYZ變換規(guī)則為: ABC-徐- UD - Y - Y - YZ 。此時(shí),可以通過
3、一系列的轉(zhuǎn)換將$ A轉(zhuǎn)換成$ B,轉(zhuǎn)換過程是:“ABCD”“XUD”“XY”回車:鍵盤輸入文件名。文件格式如下:一百美元A1$ B1$ A2$ B2$ |-轉(zhuǎn)換規(guī)則./所有字符串的最大長(zhǎng)度為20。輸出:輸出到屏幕。格式如下:如果可以在10步內(nèi)(包括10步)將$ A轉(zhuǎn)換為$ B,將輸出最少的轉(zhuǎn)換步數(shù);否則,輸出“無答案!”樣本輸入和輸出b.in:abcd xyzabc xuud yy yz屏幕顯示:3算法分析:這個(gè)問題是尋找最小數(shù)量的轉(zhuǎn)換步驟。顯然,可以使用廣度優(yōu)先搜索方法。如果直接從初始狀態(tài)搜索目標(biāo)狀態(tài),則在最壞情況下存儲(chǔ)的節(jié)點(diǎn)數(shù)超過6的10次方,并且搜索空間太大。因此,我們考慮雙向搜索,同時(shí)
4、從初始狀態(tài)和目標(biāo)狀態(tài)搜索到中間狀態(tài)。當(dāng)他們相遇時(shí),搜尋就結(jié)束了。使用雙向搜索時(shí),存儲(chǔ)的節(jié)點(diǎn)數(shù)可能會(huì)超過限制。我們將經(jīng)過5步轉(zhuǎn)換的節(jié)點(diǎn)存儲(chǔ)在正向搜索隊(duì)列中。在后向搜索隊(duì)列中,因?yàn)椴襟E5中生成的節(jié)點(diǎn)僅用于與前向隊(duì)列中的節(jié)點(diǎn)進(jìn)行比較,所以它們可能不會(huì)存儲(chǔ)在隊(duì)列中。反向搜索隊(duì)列只需要分4步存儲(chǔ)節(jié)點(diǎn),解決了存儲(chǔ)空間問題。為了使用方便,數(shù)組a1.max用于在程序設(shè)計(jì)中存儲(chǔ)兩個(gè)隊(duì)列。正向搜索隊(duì)列是1.mid,反向搜索隊(duì)列是一個(gè)mid.max。st用于存儲(chǔ)搜索方向,st=0表示正向搜索,st=1表示反向搜索,opst和clst分別表示正向搜索源程序:const mid=12000max=16000類型node
5、=記錄s:stringx :字節(jié);結(jié)束;varI,mark:integera :陣列1.node;x:array0.6,0.字符串20的1;d,fil:stringop,cl:array 0.1的整數(shù);初始化過程;讀取數(shù)據(jù),初始化var f:textt:string開始read ln(fil);分配(f,fil);重置(f);I :=0;而不是eof(f)開始readln(f,t);xi,0:=副本(t,1,pos(,t)-1);xi,1:=副本(t,pos(,t) 1,長(zhǎng)度(t);Inc(I);結(jié)束;while標(biāo)記:=I-1;關(guān)閉(f);結(jié)束;判斷是否達(dá)到目標(biāo)狀態(tài)過程bool(be,ST :
6、 integer);開始對(duì)于i:=中間be 1至cl1-st do如果aclst.s=ai.讓我們開始吧writeln(aclst.十. ai.x);停下來;結(jié)束;if結(jié)束;確定該節(jié)點(diǎn)是否與前一個(gè)節(jié)點(diǎn)重復(fù)程序檢查(be,ST : integer);開始對(duì)于i:=be 1至clst-1 do如果ai.s=aclst.那么開始于12月(clST);出口;結(jié)束;布爾(be,ST);結(jié)束;擴(kuò)展生成新節(jié)點(diǎn)過程擴(kuò)展(be,ST : integer);var i,j,k,lx,ld:integer開始Inc(opST);d:=aopst.s;k:=aopst.x;ld:=長(zhǎng)度(d);對(duì)于i:=1,標(biāo)記開始l
7、x:=長(zhǎng)度(xi,ST);對(duì)于j:=1至ld,開始如果(復(fù)制(d,j,lx)=xi,st)然后開始如果(st1)或(k4)然后開始Inc(clST);新(aclST);結(jié)束;ifaclst.s:=副本(d,1,j-1) xi,1-st副本(d,j lx,LD);aclst.x:=k 1;檢查(be,ST);檢查重復(fù)項(xiàng)結(jié)束;if結(jié)束;for結(jié)束;for結(jié)束;bfs程序;var be,k,st:integer開始對(duì)于st:=0到1,請(qǐng)開始如果st=0,則be:=0,否則be:=中間值;opST:=be 0;clST:=be 1;新(aclST);aclst.s:=x0,st;aclst.x:=0;結(jié)束;for重復(fù)如果(op0=cl0)or(acl0.x5)or(op1=cl1)or(acl1.x5);結(jié)束。BEGIN初始化;bfs寫下(沒有答案!(結(jié)束。兩種搜索算法的比較;搜索方法擴(kuò)展模式數(shù)據(jù)結(jié)構(gòu)適合解決的問題深度優(yōu)先后一代首次擴(kuò)張堆可行的解決方案或所有解決方案寬廣第一先生成,先擴(kuò)展長(zhǎng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國(guó)隱形滲透性密封劑行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 山東省日照市高三上學(xué)期期末考試語文試卷(含答案)
- 2025會(huì)議 展覽合同
- 2025機(jī)動(dòng)車買賣合同模板
- 運(yùn)輸類合同范本
- 南寧房屋租賃服務(wù)合同模板
- 2025建筑施工物資租賃合同示范文本無擔(dān)保方
- 雞蛋供貨采購合同
- 借款用于投資合同
- 技能培訓(xùn)中的表達(dá)技巧訓(xùn)練
- 2024年資格考試-對(duì)外漢語教師資格證筆試參考題庫含答案
- 2024年4月自考02382管理信息系統(tǒng)答案及評(píng)分參考
- (蘇版)初三化學(xué)上冊(cè):第2單元課題1空氣
- 2023年12月廣東珠海市軌道交通局公開招聘工作人員1人筆試近6年高頻考題難、易錯(cuò)點(diǎn)薈萃答案帶詳解附后
- 腹腔鏡腎上腺腫瘤切除術(shù)查房護(hù)理課件
- 燃?xì)庹质綘t應(yīng)急預(yù)案
- 專題23平拋運(yùn)動(dòng)臨界問題相遇問題類平拋運(yùn)和斜拋運(yùn)動(dòng)
- 超聲科醫(yī)德醫(yī)風(fēng)制度內(nèi)容
- 高三開學(xué)收心班會(huì)課件
- 蒸汽換算計(jì)算表
- 四年級(jí)計(jì)算題大全(列豎式計(jì)算,可打印)
評(píng)論
0/150
提交評(píng)論