人工智能-一般搜索原理課件_第1頁(yè)
人工智能-一般搜索原理課件_第2頁(yè)
人工智能-一般搜索原理課件_第3頁(yè)
人工智能-一般搜索原理課件_第4頁(yè)
人工智能-一般搜索原理課件_第5頁(yè)
已閱讀5頁(yè),還剩89頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

搜索技術(shù)問(wèn)題提出:有了知識(shí)表示方法之后,就需要有解決問(wèn)題的方法,也就是搜索技術(shù)。所謂搜索,就是尋找一條從初始問(wèn)題到問(wèn)題解的路徑本章內(nèi)容:搜索技術(shù)有許多種,本章介紹一些早期的、比較簡(jiǎn)單的搜索原理:1,盲目搜索;2,啟發(fā)式搜索;3,消解原理;4,通用問(wèn)題求解技術(shù)關(guān)鍵問(wèn)題: 如何利用知識(shí),盡可能有效地找到問(wèn)題的解(最佳解)。第三章一般搜索原理7/27/20231搜索技術(shù)問(wèn)題提出:有了知識(shí)表示方法之后,就需要有解決問(wèn)題的方一般搜索原理搜索策略可分為三大類(lèi)不可撤回方式、回朔方式、圖搜索方式不可撤回方式:每一次搜索時(shí),利用局部知識(shí)根據(jù)最優(yōu)評(píng)價(jià),選出下一狀態(tài),選定后不能撤回,只能繼續(xù)回朔方式:在搜索過(guò)程中,有時(shí)會(huì)發(fā)現(xiàn)所選的路徑不適合找到目標(biāo),這時(shí)允許退回去另選一條路徑。圖搜索方式:如果把問(wèn)題求解過(guò)程用圖來(lái)表示。節(jié)點(diǎn)代表問(wèn)題的狀態(tài),弧代表狀態(tài)變化的方向,則搜索就變成對(duì)圖進(jìn)行從初始節(jié)點(diǎn)開(kāi)始,到目標(biāo)節(jié)點(diǎn)路徑的搜索。第三章一般搜索原理3.1盲目搜索7/27/20232一般搜索原理搜索策略可分為三大類(lèi)第三章一般搜索原理回溯搜索策略例:皇后問(wèn)題第三章一般搜索原理3.1盲目搜索7/27/20233回溯搜索策略例:皇后問(wèn)題第三章一般搜索原理()皇后問(wèn)題搜索過(guò)程(一)第三章一般搜索原理3.1盲目搜索7/27/20234()皇后問(wèn)題搜索過(guò)程(一)第三章一般搜索原理Q()((1,1))皇后問(wèn)題搜索過(guò)程(二)第三章一般搜索原理3.1盲目搜索7/27/20235Q()((1,1))皇后問(wèn)題搜索過(guò)程(二)第三章一般搜索QQ()((1,1))((1,1)(2,3))皇后問(wèn)題搜索過(guò)程(三)第三章一般搜索原理3.1盲目搜索7/27/20236QQ()((1,1))((1,1)(2,3))皇后問(wèn)題搜Q()((1,1))((1,1)(2,3))皇后問(wèn)題搜索過(guò)程(四)第三章一般搜索原理3.1盲目搜索7/27/20237Q()((1,1))((1,1)(2,3))皇后問(wèn)題搜索QQ()((1,1))((1,1)(2,3))((1,1)(2,4))皇后問(wèn)題搜索過(guò)程(五)第三章一般搜索原理3.1盲目搜索7/27/20238QQ()((1,1))((1,1)(2,3))((1,1QQQ()((1,1))((1,1)(2,3))((1,1)(2,4))((1,1)(2,4)(3.2))第三章一般搜索原理3.1盲目搜索皇后問(wèn)題搜索過(guò)程(六)7/27/20239QQQ()((1,1))((1,1)(2,3))((1,QQ()((1,1))((1,1)(2,3))((1,1)(2,4))((1,1)(2,4)(3.2))第三章一般搜索原理3.1盲目搜索皇后問(wèn)題搜索過(guò)程(七)7/27/202310QQ()((1,1))((1,1)(2,3))((1,1Q()((1,1))((1,1)(2,3))((1,1)(2,4))((1,1)(2,4)(3.2))第三章一般搜索原理3.1盲目搜索皇后問(wèn)題搜索過(guò)程(八)7/27/202311Q()((1,1))((1,1)(2,3))((1,1)()((1,1))((1,1)(2,3))((1,1)(2,4))((1,1)(2,4)(3.2))第三章一般搜索原理3.1盲目搜索皇后問(wèn)題搜索過(guò)程(九)7/27/202312()((1,1))((1,1)(2,3))((1,1)Q()((1,1))((1,1)(2,3))((1,1)(2,4))((1,1)(2,4)(3.2))((1,2))第三章一般搜索原理3.1盲目搜索皇后問(wèn)題搜索過(guò)程(十)7/27/202313Q()((1,1))((1,1)(2,3))((1,1)QQ()((1,1))((1,1)(2,3))((1,1)(2,4))((1,1)(2,4)(3.2))((1,2))((1,2)(2,4))第三章一般搜索原理3.1盲目搜索皇后問(wèn)題搜索過(guò)程(十一)7/27/202314QQ()((1,1))((1,1)(2,3))((1,1QQQ()((1,1))((1,1)(2,3))((1,1)(2,4))((1,1)(2,4)(3.2))((1,2))((1,2)(2,4))((1,2)(2,4)(3,1))第三章一般搜索原理3.1盲目搜索皇后問(wèn)題搜索過(guò)程(十二)7/27/202315QQQ()((1,1))((1,1)(2,3))((1,QQQQ()((1,1))((1,1)(2,3))((1,1)(2,4))((1,1)(2,4)(3.2))((1,2))((1,2)(2,4))((1,2)(2,4)(3,1))((1,2)(2,4)(3,1)(4,3))第三章一般搜索原理3.1盲目搜索皇后問(wèn)題搜索過(guò)程(十三)7/27/202316QQQQ()((1,1))((1,1)(2,3))((1遞歸的思想從前有座山……從前有座山……

從前有座山……第三章一般搜索原理3.1盲目搜索7/27/202317遞歸的思想從前有座山……從前有座山……一個(gè)遞歸的例子intListLenght(LIST*pList){ if(pList==NULL)return0; elsereturnListLength(pList->next)+1;}第三章一般搜索原理3.1盲目搜索7/27/202318一個(gè)遞歸的例子intListLenght(LIST*pL回溯搜索算法說(shuō)明 BACKTRACK(DATA)

DATA:當(dāng)前狀態(tài)。 返回值:從當(dāng)前狀態(tài)到目標(biāo)狀態(tài)的路徑 (以規(guī)則表的形式表示) 或FAIL。第三章一般搜索原理3.1盲目搜索7/27/202319回溯搜索算法說(shuō)明 BACKTRACK(DATA)第三章一般回溯搜索算法(一)遞歸過(guò)程BACKTRACK(DATA)1, IFTERM(DATA)RETURNNIL;2, IFDEADEND(DATA)RETURNFAIL;3, RULES:=APPRULES(DATA);第三章一般搜索原理3.1盲目搜索TERM:找目標(biāo)DEADEND:狀態(tài)不合法,無(wú)法繼續(xù)搜索APPRULES:取可應(yīng)用規(guī)則集7/27/202320回溯搜索算法(一)遞歸過(guò)程BACKTRACK(DATA)第三回溯搜索算法(二)4, LOOP:IFNULL(RULES)RETURNFAIL;5, R:=FIRST(RULES);6, RULES:=TAIL(RULES);7, RDATA:=GEN(R,DATA);8, PATH:=BACKTRACK(RDATA);9, IFPATH=FAILGOLOOP;10, RETURNCONS(R,PATH);第三章一般搜索原理3.1盲目搜索TAIL:刪除頭條規(guī)則GEN:調(diào)用規(guī)則作用于當(dāng)前狀態(tài)CONS:獲取解路徑規(guī)則表7/27/202321回溯搜索算法(二)4, LOOP:IFNULL(RUL存在問(wèn)題及解決辦法問(wèn)題:深度問(wèn)題:如果深度太深死循環(huán)問(wèn)題:如果狀態(tài)出現(xiàn)重復(fù)解決辦法:對(duì)搜索深度加以限制記錄從初始狀態(tài)到當(dāng)前狀態(tài)的路徑第三章一般搜索原理3.1盲目搜索7/27/202322存在問(wèn)題及解決辦法問(wèn)題:第三章一般搜索原理增加約束后的回溯搜索算法BACKTRACK1(DATALIST)

DATALIST:從初始到當(dāng)前的狀態(tài)表(逆向) 返回值:從當(dāng)前狀態(tài)到目標(biāo)狀態(tài)的路徑 (以規(guī)則表的形式表示) 或FAIL。第三章一般搜索原理3.1盲目搜索7/27/202323增加約束后的回溯搜索算法BACKTRACK1(DATALIS增加約束后的回溯搜索算法(一)1, DATA:=FIRST(DATALIST)2, IFMENBER(DATA,TAIL(DATALIST)) RETURNFAIL;

3, IFTERM(DATA)RETURNNIL;4, IFDEADEND(DATA)RETURNFAIL;5, IFLENGTH(DATALIST)>BOUND RETURNFAIL;第三章一般搜索原理3.1盲目搜索7/27/202324增加約束后的回溯搜索算法(一)1, DATA:=FIRST增加約束后的回溯搜索算法(二)6, RULES:=APPRULES(DATA);7,LOOP:IFNULL(RULES)RETURNFAIL;8, R:=FIRST(RULES);9, RULES:=TAIL(RULES);第三章一般搜索原理3.1盲目搜索7/27/202325增加約束后的回溯搜索算法(二)6, RULES:=APPR增加約束后的回溯搜索算法(三)10, RDATA:=GEN(R,DATA);11, RDATALIST:=CONS(RDATA,DATALIST);12, PATH:=BACKTRCK1(RDATALIST)13, IFPATH=FAILGOLOOP;14, RETURNCONS(R,PATH);第三章一般搜索原理3.1盲目搜索7/27/202326增加約束后的回溯搜索算法(三)10, RDATA:=GEN(一些深入的問(wèn)題失敗原因分析、多步回溯QQ第三章一般搜索原理3.1盲目搜索7/27/202327一些深入的問(wèn)題失敗原因分析、多步回溯QQ第三章一般搜索原理一些深入問(wèn)題(續(xù))回溯搜索中知識(shí)的利用 基本思想: 盡可能選取劃去對(duì)角線上位置數(shù)最少的。QQQQ4334第三章一般搜索原理3.1盲目搜索7/27/202328一些深入問(wèn)題(續(xù))回溯搜索中知識(shí)的利用QQQQ4模式導(dǎo)向搜索這個(gè)算法是將遞歸搜索應(yīng)用到謂詞演算的通用搜索算法要判斷一個(gè)謂詞表達(dá)式是某個(gè)斷言集合的邏輯結(jié)論首先謂詞表達(dá)式作為目標(biāo),使用合一來(lái)選擇能與其后件匹配的蘊(yùn)涵式并把得到的置換運(yùn)用于該蘊(yùn)涵式的前件這個(gè)前件成了新的目標(biāo)—稱(chēng)其為子目標(biāo)應(yīng)用遞歸搜索解這個(gè)子目標(biāo)如果與事實(shí)相匹配,則搜索結(jié)實(shí)

第三章一般搜索原理3.1盲目搜索7/27/202329模式導(dǎo)向搜索這個(gè)算法是將遞歸搜索應(yīng)用到謂詞演算的通用搜索算法模式導(dǎo)向搜索算法描述一Functionpattern_search(current_goal)beginifcurrent_goalisinclosedthenreturnFAILelseputcurrent_goalintoclosedwhileeveryruleandfactsdobegincasecurrent_goal與事實(shí)合一returnSUCCESS

第三章一般搜索原理3.1盲目搜索7/27/202330模式導(dǎo)向搜索算法描述一Functionpattern_se模式導(dǎo)向搜索算法描述二

current_goal是合取式beginforevery合取項(xiàng)itemdoret=pattern_search(item)ifret==FAILthenreturnFAILendcurrent_goal與規(guī)則的后件合一begin對(duì)前件q應(yīng)用對(duì)應(yīng)的合一置換ret=pattern_search(q)ifret==FAILthenreturnFAILelseSUCCESSendendreturnFAILend第三章一般搜索原理3.1盲目搜索7/27/202331模式導(dǎo)向搜索算法描述二current_goal是合取圖搜索策略圖搜索策略就是在圖中尋找從起始點(diǎn)到目標(biāo)點(diǎn)的路徑的方法圖搜索的一般過(guò)程是構(gòu)造搜索圖的過(guò)程。令搜索圖開(kāi)始時(shí)只有起始點(diǎn)S0,然后逐步擴(kuò)展節(jié)點(diǎn),直到將目標(biāo)點(diǎn)擴(kuò)展到搜索圖里為止。擴(kuò)展的過(guò)程就是搜索的過(guò)程擴(kuò)展節(jié)點(diǎn)的方法不同,就意味著搜索的方法不同,也就是搜索的路徑不同。

第三章一般搜索原理3.1盲目搜索7/27/202332圖搜索策略圖搜索策略就是在圖中尋找從起始點(diǎn)到目標(biāo)點(diǎn)的路徑的方圖搜索策略圖示S0Sg第三章一般搜索原理3.1盲目搜索7/27/202333圖搜索策略圖示S0Sg第三章一般搜索原理節(jié)點(diǎn)擴(kuò)展擴(kuò)展一個(gè)節(jié)點(diǎn) 生成出該節(jié)點(diǎn)的所有后繼節(jié)點(diǎn),并給出它們之間的代價(jià)值。這一過(guò)程稱(chēng)為“擴(kuò)展一個(gè)節(jié)點(diǎn)”。第三章一般搜索原理3.1盲目搜索7/27/202334節(jié)點(diǎn)擴(kuò)展擴(kuò)展一個(gè)節(jié)點(diǎn)第三章一般搜索原理路徑路徑 設(shè)一節(jié)點(diǎn)序列為(n0,n1,…,nk),對(duì)于i=1…k,若節(jié)點(diǎn)ni-1具有一個(gè)后繼節(jié)點(diǎn)ni,則該序列稱(chēng)為從n0到nk的路徑。路徑的代價(jià)值 一條路徑的代價(jià)值等于連接這條路徑各節(jié)點(diǎn)間所有代價(jià)值的總和。用C(ni,nj)表示從ni到nj的路徑的代價(jià)值。第三章一般搜索原理3.1盲目搜索7/27/202335路徑路徑第三章一般搜索原理節(jié)點(diǎn)深度節(jié)點(diǎn)深度: 根節(jié)點(diǎn)深度=0 其它節(jié)點(diǎn)深度=父節(jié)點(diǎn)深度+10123第三章一般搜索原理3.1盲目搜索7/27/202336節(jié)點(diǎn)深度節(jié)點(diǎn)深度:0123第三章一般搜索原理圖搜索的一般過(guò)程第三章一般搜索原理3.1盲目搜索成功是把第一個(gè)節(jié)點(diǎn)(n)從OPEN表移至CLOSED表把n的后繼節(jié)點(diǎn)放入OPEN表的末端,提供返回節(jié)點(diǎn)n的指針修改指針?lè)较虬裇放入OPEN表重排OPEN表是否否OPEN為空?n為目標(biāo)節(jié)點(diǎn)?失敗開(kāi)始7/27/202337圖搜索的一般過(guò)程第三章一般搜索原理圖搜索過(guò)程說(shuō)明我們?cè)谒阉鬟^(guò)程中用到了OPEN表和CLOSED表兩個(gè)數(shù)據(jù)結(jié)構(gòu)OPEN表中的節(jié)點(diǎn)都是搜索樹(shù)的端節(jié)點(diǎn),即至今尚未被選作為擴(kuò)展的節(jié)點(diǎn)CLOSED表中的節(jié)點(diǎn)或者是已被擴(kuò)展而不能生成后繼節(jié)點(diǎn)的那些端節(jié)點(diǎn),或者是搜索樹(shù)的非端節(jié)點(diǎn)重排OPEN表,實(shí)際上就是在選擇搜索順序,也就是擴(kuò)展的節(jié)點(diǎn)的順序。第三章一般搜索原理3.1盲目搜索7/27/202338圖搜索過(guò)程說(shuō)明我們?cè)谒阉鬟^(guò)程中用到了OPEN表和CLOSED節(jié)點(diǎn)類(lèi)型說(shuō)明…...mj…...mk…...…...…...ml第三章一般搜索原理3.1盲目搜索擴(kuò)展的節(jié)點(diǎn)OPEN表沒(méi)有的部分?jǐn)U展的節(jié)點(diǎn)在已在close表中的部分?jǐn)U展的節(jié)點(diǎn)已在OPEN表中的部分選定的擴(kuò)展節(jié)點(diǎn)7/27/202339節(jié)點(diǎn)類(lèi)型說(shuō)明…...mj…...mk…...…...…...第三章一般搜索原理3.1盲目搜索圖搜索過(guò)程的圖示(一)現(xiàn)要擴(kuò)展它7/27/202340第三章一般搜索原理第三章一般搜索原理3.1盲目搜索圖搜索過(guò)程的圖示(二)修改父子關(guān)系現(xiàn)要擴(kuò)展它7/27/202341第三章一般搜索原理第三章一般搜索原理3.1盲目搜索圖搜索過(guò)程的圖示(三)修改父子關(guān)系修改父子關(guān)系7/27/202342第三章一般搜索原理盲目搜索概述盲目搜索也叫無(wú)信息搜索盲目搜索實(shí)際上是對(duì)解空間的遍歷盲目搜索包括有:寬度優(yōu)先搜索:搜索以接近起始節(jié)點(diǎn)的程度依次擴(kuò)展節(jié)點(diǎn),在對(duì)下一層搜索前,必須搜索完本層的所有節(jié)點(diǎn)。深度優(yōu)先搜索:搜索首先擴(kuò)展最新產(chǎn)生的節(jié)點(diǎn)。等代價(jià)搜索:搜索沿最小代價(jià)節(jié)點(diǎn)進(jìn)行擴(kuò)展。

第三章一般搜索原理3.1盲目搜索7/27/202343盲目搜索概述盲目搜索也叫無(wú)信息搜索第三章一般搜索原理寬度優(yōu)先搜索成功是把第一個(gè)節(jié)點(diǎn)(n)從OPEN表移至CLOSED表把n的后繼節(jié)點(diǎn)放入OPEN表的末端,提供返回節(jié)點(diǎn)n的指針把S放入OPEN表是否否OPEN為空?是否有任何后繼節(jié)點(diǎn)為目標(biāo)節(jié)點(diǎn)?失敗開(kāi)始第三章一般搜索原理3.1盲目搜索7/27/202344寬度優(yōu)先搜索成功是把第一個(gè)節(jié)點(diǎn)(n)從OPEN表移至CLOS目標(biāo)231847652318476528314765231847652831476528316475283147652831647528316475283714658321476528143765283145761237846512384765125673123847658234187654第三章一般搜索原理3.1盲目搜索八數(shù)碼難題的寬度優(yōu)先搜索樹(shù)按上下左右序走步7/27/202345目標(biāo)232328寬度優(yōu)先搜索的性質(zhì)當(dāng)問(wèn)題有解時(shí),一定能找到解當(dāng)問(wèn)題為單位代價(jià)值,且問(wèn)題有解時(shí),一定能找到最優(yōu)解方法與問(wèn)題無(wú)關(guān),具有通用性效率較低屬于圖搜索方法第三章一般搜索原理3.1盲目搜索7/27/202346寬度優(yōu)先搜索的性質(zhì)當(dāng)問(wèn)題有解時(shí),一定能找到解第三章一般搜索第三章一般搜索原理3.1盲目搜索深度優(yōu)先搜索成功是把第一個(gè)節(jié)點(diǎn)(n)從OPEN表移至CLOSED表把n的后繼節(jié)點(diǎn)放入OPEN表的前端,提供返回節(jié)點(diǎn)n的指針把S放入OPEN表是否否OPEN為空?節(jié)點(diǎn)n的深度是否等于深度界限?失敗開(kāi)始是否有任何后繼節(jié)點(diǎn)為目標(biāo)節(jié)點(diǎn)?是否S是否為目標(biāo)節(jié)點(diǎn)?否成功7/27/202347第三章一般搜索原理231847652318476528314765231847652831476528316475283147652831647528316475283714658321476528143765283145761237846512384765123456789abcd12384765目標(biāo)。。。。。。。。。。第三章一般搜索原理3.1盲目搜索八數(shù)碼難題的深度優(yōu)先搜索樹(shù)7/27/20234823232832深度優(yōu)先搜索的性質(zhì)一般不能保證找到最優(yōu)解當(dāng)深度限制不合理時(shí),可能找不到解,可以將算法改為可變深度限制最壞情況時(shí),搜索空間等同于窮舉是一個(gè)通用的與問(wèn)題無(wú)關(guān)的方法第三章一般搜索原理3.1盲目搜索7/27/202349深度優(yōu)先搜索的性質(zhì)一般不能保證找到最優(yōu)解第三章一般搜索原理第三章一般搜索原理3.1盲目搜索等代價(jià)搜索成功是把具有最小g(i)值的節(jié)點(diǎn)i從OPEN表移至CLOSED表計(jì)算其后繼節(jié)點(diǎn)j的g(j)值。把其后繼節(jié)點(diǎn)放入OPEN表把S放入OPEN表否否OPEN為空?失敗開(kāi)始i是否為目標(biāo)節(jié)點(diǎn)?是S是否為目標(biāo)節(jié)點(diǎn)?否成功是令g(s)=07/27/202350第三章一般搜索原理什么是啟發(fā)式搜索盲目搜索的效率低,耗費(fèi)過(guò)多的計(jì)算時(shí)間和空間,容易產(chǎn)生組合爆炸。利用知識(shí)來(lái)引導(dǎo)搜索,達(dá)到減少搜索范圍,降低問(wèn)題復(fù)雜度的目的。對(duì)搜索產(chǎn)生幫助的信息稱(chēng)為啟發(fā)信息第三章一般搜索原理3.2啟發(fā)式搜索7/27/202351什么是啟發(fā)式搜索盲目搜索的效率低,耗費(fèi)過(guò)多的計(jì)算時(shí)間和空間,啟發(fā)式信息對(duì)搜索方法的影響啟發(fā)信息的多少用啟發(fā)信息強(qiáng)度來(lái)表示不同的啟發(fā)信息對(duì)搜索方法帶來(lái)不同的影響:強(qiáng):降低搜索工作量,但可能導(dǎo)致找不到最優(yōu)解弱:一般導(dǎo)致工作量加大,極限情況下變?yōu)槊つ克阉?,但可能可以找到最?yōu)解第三章一般搜索原理3.2啟發(fā)式搜索7/27/202352啟發(fā)式信息對(duì)搜索方法的影響啟發(fā)信息的多少用啟發(fā)信息強(qiáng)度來(lái)表示啟發(fā)式搜索類(lèi)型啟發(fā)信息按用途可分為3類(lèi):用于決定要擴(kuò)展的下一個(gè)節(jié)點(diǎn)(這個(gè)節(jié)點(diǎn)稱(chēng)為最有希望的節(jié)點(diǎn)),以免像在寬度優(yōu)先或深度優(yōu)先搜索中那樣盲目地?cái)U(kuò)展在擴(kuò)展一個(gè)節(jié)點(diǎn)的過(guò)程中,用于決定要生成哪些其后繼節(jié)點(diǎn),以免盲目地生成所有節(jié)點(diǎn)。用于決定哪些節(jié)點(diǎn)應(yīng)從搜索樹(shù)中拋棄或修剪。用來(lái)估算節(jié)點(diǎn)希望程度的方法為估價(jià)函數(shù)第三章一般搜索原理3.2啟發(fā)式搜索7/27/202353啟發(fā)式搜索類(lèi)型啟發(fā)信息按用途可分為3類(lèi):第三章一般搜索原理對(duì)啟發(fā)式搜索的認(rèn)識(shí)有些啟發(fā)信息能夠大大減少搜索工作量,但不能保證能夠得到最小代價(jià)路徑我們往往希望獲得路徑代價(jià)和求該路徑所需的搜索代價(jià)的綜合為最小由于計(jì)算綜合代價(jià)很困難,因此,比較兩種方法的優(yōu)劣,依賴(lài)使用的經(jīng)驗(yàn)使用估價(jià)函數(shù)實(shí)際是對(duì)OPEN表進(jìn)行排序,再按順序擴(kuò)展節(jié)點(diǎn),進(jìn)行搜索第三章一般搜索原理3.2啟發(fā)式搜索7/27/202354對(duì)啟發(fā)式搜索的認(rèn)識(shí)有些啟發(fā)信息能夠大大減少搜索工作量,但不能有序搜索若按估價(jià)函數(shù)的增序?qū)PEN表進(jìn)行排序,這種搜索方法叫做有序搜索或最佳優(yōu)先搜索有序搜索的有效性取決于估價(jià)函數(shù)的選擇,否則有可能失去一個(gè)最好的解甚至全部的解如果沒(méi)有合適的選擇,可考慮兩個(gè)方面的內(nèi)容:一個(gè)是時(shí)間和空間的折中保證有一個(gè)解第三章一般搜索原理3.2啟發(fā)式搜索7/27/202355有序搜索若按估價(jià)函數(shù)的增序?qū)PEN表進(jìn)行排序,這種搜索方法有序搜索框圖第三章一般搜索原理3.2啟發(fā)式搜索成功是選取f值最小的節(jié)點(diǎn)i,從OPEN表移至CLOSED表擴(kuò)展i,計(jì)算后繼節(jié)點(diǎn)j的f(j),對(duì)OPEN表重排序,調(diào)整親子關(guān)系把S放入OPEN表,計(jì)算f(s)是否否OPEN為空?i是目標(biāo)節(jié)點(diǎn)?失敗開(kāi)始7/27/202356有序搜索框圖第三章一般搜索原理估價(jià)函數(shù):f(n)=d(n)+w(n)其中,d(n):節(jié)點(diǎn)的深度w(n):節(jié)點(diǎn)放錯(cuò)棋子數(shù)目第三章一般搜索原理3.2啟發(fā)式搜索八數(shù)碼難題的有序搜索樹(shù)28316475231847652831476523184765283147651238476528314765283164752831647528371465832147651237846523184765546466775675512384765目標(biāo)5估價(jià)函數(shù)值7/27/202357估價(jià)函數(shù):f(n)=d(n)+w(n)第三章一般搜索原理A算法A算法是一種有序搜索的啟發(fā)式搜索算法。它采用估算節(jié)點(diǎn)n的兩個(gè)代價(jià):從起始點(diǎn)s到n的最小代價(jià)路徑的代價(jià)從n到某個(gè)目標(biāo)節(jié)點(diǎn)的最小代價(jià)路徑的代價(jià)估價(jià)函數(shù)的形式: f(n)=g(n)+h(n)其中:g(n):是對(duì)g*(n)的估價(jià)值h(n):是對(duì)h*(n)的估價(jià)值,稱(chēng)為啟發(fā)函數(shù)第三章一般搜索原理3.2啟發(fā)式搜索7/27/202358A算法A算法是一種有序搜索的啟發(fā)式搜索算法。它采用估算節(jié)點(diǎn)nA算法估價(jià)函數(shù)的說(shuō)明g*(n):從s到n的最佳路徑的代價(jià)h*(n):從n到某個(gè)目標(biāo)節(jié)點(diǎn)的最佳路徑的代價(jià)f*(n)=g*(n)+h*(n):從s經(jīng)過(guò)n到某個(gè)目標(biāo)節(jié)點(diǎn)的最佳路徑的代價(jià)g(n)、h(n)、f(n)分別是g*(n)、h*(n)、f*(n)的估計(jì)值表明,估價(jià)函數(shù)f(n)是對(duì)從起始點(diǎn)s經(jīng)過(guò)n到某個(gè)目標(biāo)節(jié)點(diǎn)的最佳路徑的代價(jià)的估計(jì)值第三章一般搜索原理3.2啟發(fā)式搜索7/27/202359A算法估價(jià)函數(shù)的說(shuō)明g*(n):從s到n的最佳路徑的代價(jià)第三A算法流程1,OPEN:=(s),f(s):=g(s)+h(s);2,LOOP:IFOPEN=()THENEXIT(FAIL);3,n:=FIRST(OPEN);4,IFGOAL(n)THENEXIT(SUCCESS);5,REMOVE(n,OPEN),ADD(n,CLOSED);6,EXPAND(n)→{mi},

計(jì)算f(n,mi):=g(n,mi)+h(mi);

第三章一般搜索原理3.2啟發(fā)式搜索7/27/202360A算法流程1,OPEN:=(s),f(s):=g(s)+A算法流程(續(xù))

ADD(mj,OPEN),標(biāo)記mj到n的指針; IFf(n,mk)<f(mk)THENf(mk):=f(n,mk),

標(biāo)記mk到n的指針; IFf(n,ml)<f(ml,)THENf(ml):=f(n,ml), 標(biāo)記ml到n的指針, ADD(ml,OPEN);7,OPEN中的節(jié)點(diǎn)按f值從小到大排序;8,GOLOOP;第三章一般搜索原理3.2啟發(fā)式搜索7/27/202361A算法流程(續(xù)) ADD(mj,OPEN),標(biāo)記mj到n最佳圖搜索算法A*(A*算法)在A算法中,如果對(duì)于任意點(diǎn)n滿(mǎn)足條件: h(n)≤h*(n) 則A算法稱(chēng)為A*算法。第三章一般搜索原理3.2啟發(fā)式搜索7/27/202362最佳圖搜索算法A*(A*算法)在A算法中,如果對(duì)于任意點(diǎn)n滿(mǎn)A*算法估價(jià)函數(shù)舉例在問(wèn)題求解過(guò)程中,不可能明確知道h*(n),可根據(jù)經(jīng)驗(yàn)估計(jì)下界范圍條件例如,8數(shù)碼問(wèn)題如取h(n)=“不在位”的牌數(shù),可估計(jì)出至少要移動(dòng)h(n)步,才能達(dá)到目標(biāo),因此,有h(n)≤h*(n)如取h(n)=每個(gè)牌與目標(biāo)位置的距離和,同樣可估計(jì)出至少要移動(dòng)h(n)步,才能達(dá)到目標(biāo),因此,有h(n)≤h*(n)第三章一般搜索原理3.2啟發(fā)式搜索2

831

64751

238

47657/27/202363A*算法估價(jià)函數(shù)舉例在問(wèn)題求解過(guò)程中,不可能明確知道h*(n博弈中的啟發(fā)式搜索博弈空間的極小極大搜索:假定對(duì)手具有相同的關(guān)于狀態(tài)空間的知識(shí),且用該知識(shí)以一致方式比賽.博弈中的對(duì)手分別稱(chēng)為MIN和MAX一種余一棋變體:博弈雙方要交替地將一堆牌分成數(shù)量不同的兩堆牌,最先無(wú)法分堆的棋手為失敗第三章一般搜索原理3.2啟發(fā)式搜索7/27/202364博弈中的啟發(fā)式搜索博弈空間的極小極大搜索:第三章一般搜索原窮舉式的極小極大搜索博弈過(guò)程可以用一個(gè)樹(shù)來(lái)表示標(biāo)記葉節(jié)點(diǎn)若MIN獲勝標(biāo)0,MAX獲勝標(biāo)1,標(biāo)記MIN節(jié)點(diǎn)為其子節(jié)點(diǎn)值中的最大值標(biāo)記MAX節(jié)點(diǎn)為其子節(jié)點(diǎn)值中的最小值這樣向上傳播,直至根節(jié)點(diǎn)第三章一般搜索原理3.2啟發(fā)式搜索7/27/202365窮舉式的極小極大搜索博弈過(guò)程可以用一個(gè)樹(shù)來(lái)表示第三章一般搜第三章一般搜索原理3.2啟發(fā)式搜索一種余一棋變體樹(shù)4-34-2-15-1-175-22-2-1-1-13-2-1-16-14-1-1-12-2-2-13-1-1-1-12-1-1-1-1-13-2-200110111111003-3-10MINMAXMINMAXMINMAX7/27/202366第三章一般搜索原理3.2啟固定層深的極小極大搜索這種策略稱(chēng)為n-層預(yù)判用于狀態(tài)空間不可能全部展開(kāi)的情形,比如國(guó)際象棋的狀態(tài)數(shù)大約是10120n的值由可用的時(shí)間和空間資源而定由于葉節(jié)點(diǎn)不是博弈的最終狀態(tài),不能用勝利或失敗來(lái)標(biāo)記需用某個(gè)啟發(fā)評(píng)估函數(shù)的值來(lái)標(biāo)記這個(gè)向上傳播的值不表示是否可以勝利,只表示經(jīng)過(guò)n步可達(dá)到的最佳狀態(tài),也可能是完全誤導(dǎo)性的大多數(shù)博弈都為設(shè)計(jì)啟發(fā)提供了無(wú)限的想象空間第三章一般搜索原理3.2啟發(fā)式搜索7/27/202367固定層深的極小極大搜索這種策略稱(chēng)為n-層預(yù)判第三章一般搜索第三章一般搜索原理3.2啟發(fā)式搜索一種九宮游戲的啟發(fā)函數(shù)啟發(fā)值為對(duì)MAX來(lái)說(shuō)存在的所有可能勝利路線,減去對(duì)MIN來(lái)說(shuō)存在的所有可能勝利路線XOXOXOX有6條,O有5條可能的勝利路線E(n)=6-5=1X有4條,O有6條可能的勝利路線E(n)=4-6=-2X有5條,O有4條可能的勝利路線E(n)=5-4=17/27/202368第三章一般搜索原理3.2啟第三章一般搜索原理3.2啟發(fā)式搜索α-β搜索單純的極小極大搜索需要對(duì)搜索空間進(jìn)行兩遍分析,效率低α-β搜索對(duì)極小極大搜索進(jìn)行改進(jìn)基本思想:不搜索預(yù)判深度的整個(gè)空間,對(duì)能判斷不起作用的分支則去掉,不搜索以深度優(yōu)先方式到達(dá)預(yù)判層,在不斷剪枝的過(guò)程中,向上傳播評(píng)估值α值是與MAX節(jié)點(diǎn)關(guān)聯(lián)的不減小值β值是與MIN節(jié)點(diǎn)關(guān)聯(lián)的不增大值7/27/202369第三章一般搜索原理3.2啟第三章一般搜索原理3.2啟發(fā)式搜索α-β搜索舉例MINMAXMINMAX235907421563907263023≥2≤3≥5≥2≤0≤2××≥

3×7/27/202370第三章一般搜索原理3.2啟雙向搜索搜索可以是從初始狀態(tài)開(kāi)始向目標(biāo)狀態(tài)的正向搜索;搜索也可以是從目標(biāo)狀態(tài)開(kāi)始向初始狀態(tài)的逆向搜索再可能是同時(shí)從初始狀態(tài)向目標(biāo)狀態(tài)的正向搜索和從目標(biāo)狀態(tài)向初始狀態(tài)的逆向搜索,直至這兩條路徑在中途某處小結(jié)接為止,這種搜索策略稱(chēng)為雙向搜索第三章一般搜索原理3.2啟發(fā)式搜索7/27/202371雙向搜索搜索可以是從初始狀態(tài)開(kāi)始向目標(biāo)狀態(tài)的正向搜索;第三章消解原理概述消解原理又稱(chēng)為歸結(jié)原理是一種重要的推理規(guī)則它來(lái)源于定理證明:F1∧F2∧…∧Fn→W用反證法證:F=F1∧F2∧…∧Fn∧~W為永假等價(jià)于證明:F對(duì)應(yīng)的子句集S為不可滿(mǎn)足的歸結(jié)原理的基本思路是:尋找將S擴(kuò)充后的子句集S1,它可滿(mǎn)足性與S相同,且容易判斷可滿(mǎn)足性,從而知道S的可滿(mǎn)足性,則定理得證第三章一般搜索原理3.3消解原理7/27/202372消解原理概述消解原理又稱(chēng)為歸結(jié)原理是一種重要的推理規(guī)則第三章消解過(guò)程原子公式和原子公式的否定稱(chēng)為文字文字的析取構(gòu)成的公式稱(chēng)為子句若S中存在空子句,S為不可滿(mǎn)足的將F化為對(duì)應(yīng)的子句集S將S擴(kuò)充為可滿(mǎn)足性相同的子句集S1,這個(gè)擴(kuò)充的過(guò)程就是歸結(jié)的過(guò)程 判斷S1是否存在空子句第三章一般搜索原理3.3消解原理7/27/202373消解過(guò)程原子公式和原子公式的否定稱(chēng)為文字第三章一般搜索原理消解過(guò)程舉例E2∨E1(前提)

~E2∨E3(前提)(消解式)E1∨E3(結(jié)論)第三章一般搜索原理3.3消解原理7/27/202374消解過(guò)程舉例建立子句集消去蘊(yùn)涵符號(hào):~

P∨Q取代P→Q減少否定符號(hào)的管轄域?qū)ψ兞繕?biāo)準(zhǔn)化消去存在量詞化為前束形化為合取范式:如:PΛ(P∨Q)Λ(~P∨Q)消去全稱(chēng)量詞獲得子句集更換變量名第三章一般搜索原理3.3消解原理7/27/202375建立子句集消去蘊(yùn)涵符號(hào):~P∨Q取代P→Q第三章一般搜化子句集例例:(z)(x)(y){[(P(x)Q(x))R(y)]U(z)}1,消蘊(yùn)涵符 理論根據(jù):ab=>~ab (z)(x)(y){[~(P(x)Q(x))R(y)]U(z)}2,移動(dòng)否定符 理論根據(jù):~(ab)=>~a~b ~(ab)=>~a~b ~(x)P(x)=>(x)~P(x) ~(x)P(x)=>(x)~P(x)

(z)(x)(y){[(~P(x)~Q(x))R(y)]U(z)}第三章一般搜索原理3.3消解原理7/27/202376化子句集例例:(z)(x)(y){[(P(x)Q化子句集例(續(xù)1)3,變量標(biāo)準(zhǔn)化 即:對(duì)于不同的約束,對(duì)應(yīng)于不同的變量 (x)A(x)(x)B(x)=>(x)A(x)(y)B(y)4,量詞左移

(x)A(x)(y)B(y)=>(x)(y){A(x)B(y)}5,消存在量詞(skolem化) 原則:對(duì)于一個(gè)受存在量詞約束的變量,如果他不受全程量詞約束,則該變量用一個(gè)常量代替,如果他受全程量詞約束,則該變量用一個(gè)函數(shù)代替。

(z)(x)(y){[(~P(x)~Q(x))R(y)]U(z)}=>(x){[(~P(x)~Q(x))R(f(x))]U(a)}第三章一般搜索原理3.3消解原理7/27/202377化子句集例(續(xù)1)3,變量標(biāo)準(zhǔn)化第三章一般搜索原理化子句集例(續(xù)2)6,化為合取范式 即(ab)(cd)(ef)的形式

(x){[(~P(x)~Q(x))R(f(x))]U(a)}=>(x){(~P(x)~Q(x))R(f(x))U(a)}=>(x){[~P(x)R(f(x))U(a)][~Q(x))R(f(x))U(a)]}7,隱去全程量詞 {[~P(x)R(f(x))U(a)][~Q(x))R(f(x))U(a)]}第三章一般搜索原理3.3消解原理7/27/202378化子句集例(續(xù)2)6,化為合取范式第三章一般搜索原理化子句集例(續(xù)3)8,表示為子句集{~P(x)R(f(x))U(a),~Q(x))R(f(x))U(a)}9,變量標(biāo)準(zhǔn)化(變量換名){~P(x1)R(f(x1))U(a),~Q(x2))R(f(x2))U(a)}第三章一般搜索原理3.3消解原理7/27/202379化子句集例(續(xù)3)8,表示為子句集第三章一般搜索原理消解推理規(guī)則L1、L2為任一原子公式,他們具有相同的謂詞符號(hào),但一般變量名不同已知兩子句L1∨α和~L2∨β如果L1、L2具有最一般合一者σ那么可得新子句(α∨β)σ這個(gè)新子句叫做消解式第三章一般搜索原理3.3消解原理7/27/202380消解推理規(guī)則L1、L2為任一原子公式,他們具有相同的謂詞符命題邏輯的消解推理舉例第三章一般搜索原理3.3消解原理假言推理:P~P∨Q(P→Q)消解式:Q合并:P∨Q~P∨Q消解式:Q∨Q=Q重言式:P∨Q~P∨~Q消解式:P∨~P或Q∨~Q空子句:P~P消解式:NIL三段論:~P∨Q(P→Q)~Q∨R(Q→R)消解式:~P∨R(P→Q)7/27/202381命題邏輯的消解推理舉例第三章一般搜索原理謂詞邏輯的消解推理舉例第三章一般搜索原理3.3消解原理B(x)~B(x)∨C(x)消解式:C(x)P(x)∨Q(x)~Q[f(y)]消解式:P[f(y)]置換:f(y)/xP[x,f(y)]∨Q(x)∨R[f(a),y]~P[f(f(a)),z]∨R(z,w)消解式:Q[f(f(a))]∨R[f(a),y]∨R[f(y),w]置換:f(f(a))/x,f(y)/z7/27/202382謂詞邏輯的消解推理舉例第三章一般搜索原理消解反演求解過(guò)程消解反演是利用消解原理進(jìn)行命題證明。給定公式集S和目標(biāo)公式L證明公式L的步驟如下:

否定L,得~L

把~L添加到S中去把新產(chǎn)生的集合{~L,S}化成子句集應(yīng)用消解原理力圖推導(dǎo)出一個(gè)表示矛盾的空子句第三章一般搜索原理3.3消解原理7/27/202383消解反演求解過(guò)程消解反演是利用消解原理進(jìn)行命題證明。第三章命題邏輯消解反演的例子設(shè)公理集: P, (PQ)R, (ST)Q, T求證:R子句集: (1)P (2)~P~QR (3)~SQ (4)~TQ (5)T (6)~R(目標(biāo)求反)化子句集:

(PQ)R=>~(PQ)R=>~P~QR (ST)Q=>~(ST)Q=>(~S~T)Q=>(~SQ)(~TQ)=>{~SQ,~TQ}第三章一般搜索原理3.3消解原理7/27/202384命題邏輯消解反演的例子設(shè)公理集:化子句集:第三章一般搜索原命題邏輯消解反演的例子(續(xù))子句集: (1)P (2)~P~QR (3)~SQ (4)~TQ (5)T (6)~R(目標(biāo)求反)歸結(jié): (7)~P~Q(2,6) (8)~Q (1,7)(9)~T(4,8)(10)nil(5,9)第三章一般搜索原理3.3消解原理7/27/202385命題邏輯消解反演的例子(續(xù))子句集:歸結(jié):第三章一般搜索原謂詞邏輯消解反演的例子例:已知:IfFidogoeswhereverJohngoesandifJohnisatschool,whereisFido?(x)[AT(John,x)AT(Fido,x)] AT(John,School)求證:(x)AT(Fido,x)子句集:~AT(John,y)AT(Fido,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論