人工智能一般搜索算法原理153課件_第1頁
人工智能一般搜索算法原理153課件_第2頁
人工智能一般搜索算法原理153課件_第3頁
人工智能一般搜索算法原理153課件_第4頁
人工智能一般搜索算法原理153課件_第5頁
已閱讀5頁,還剩148頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、人工智能一般搜索算法原理1532022/7/15人工智能一般搜索算法原理153盲目搜索圖搜索策略深度優(yōu)先搜索寬度優(yōu)先搜索等代價搜索2022/7/152人工智能一般搜索算法原理153一些基本概念節(jié)點深度:根節(jié)點深度=0其它節(jié)點深度=父節(jié)點深度+101232022/7/153人工智能一般搜索算法原理153一些基本概念(續(xù)1)路徑設一節(jié)點序列為(n0, n1,nk),對于i=1,k,若節(jié)點ni-1具有一個后繼節(jié)點ni,則該序列稱為從n0到nk的路徑。路徑的耗散值一條路徑的耗散值等于連接這條路徑各節(jié)點間所有耗散值的總和。用C(ni, nj)表示從ni到nj的路徑的耗散值。2022/7/154人工智能一

2、般搜索算法原理153一些基本概念(續(xù)1)擴展一個節(jié)點生成出該節(jié)點的所有后繼節(jié)點,并給出它們之間的耗散值。這一過程稱為“擴展一個節(jié)點”。2022/7/155人工智能一般搜索算法原理153一般的圖搜索算法(GRAPHSEARCH)1, G=G0 (G0=s), OPEN=(s);2, CLOSED=( );3, LOOP: IF OPEN=( ) EXIT(FAIL);4, n=FIRST(OPEN), REMOVE(n, OPEN),ADD(n, CLOSED);5, IF GOAL(n) EXIT(SUCCESS);6, EXPAND(n)mi, G=ADD(mi, G);2022/7/156

3、人工智能一般搜索算法原理153一般的圖搜索算法(續(xù))7, 標記和修改指針:ADD(mj, OPEN), 并標記mj到n的指針;計算是否要修改mk、ml到n的指針;計算是否要修改ml到其后繼節(jié)點的指針;8, 對OPEN中的節(jié)點按某種原則重新排序;9, GO LOOP;2022/7/157人工智能一般搜索算法原理153深度優(yōu)先搜索在深度優(yōu)先搜索中,首先擴展最新產(chǎn)生的(最深的)節(jié)點,深度 相等的節(jié)點可以任意排列?!白钔懋a(chǎn)生的節(jié)點最先擴展”2022/7/158人工智能一般搜索算法原理153深度優(yōu)先搜索算法1, G=G0(G0=s), OPEN=(s), CLOSED=( );2, LOOP: IF O

4、PEN=( ) EXIT (FAIL);3, n=FIRST(OPEN);4, IF GOAL(n) EXIT (SUCCESS);5, REMOVE(n, OPEN), ADD(n, CLOSED);6, IF DEPTH(n)Dm GO LOOP;7, EXPAND(n) mi, G=ADD(mi, G);8, IF 目標在mi中 THEN EXIT(SUCCESS);9, ADD(mj, OPEN), 并標記mj到n的指針;10, GO LOOP;2022/7/159人工智能一般搜索算法原理1532 31 8 47 6 5 2 31 8 47 6 52 8 31 47 6 52 31 8

5、 47 6 52 8 31 47 6 52 8 31 6 47 52 8 3 1 47 6 52 8 31 6 47 52 8 31 6 4 7 52 8 37 1 4 6 5 8 32 1 47 6 52 81 4 37 6 52 8 31 4 57 6 1 2 37 8 4 6 51 2 38 47 6 52 8 3 6 41 7 52 8 31 67 5 48 32 1 47 6 52 8 37 1 46 52 81 4 37 6 52 8 31 4 57 6123456789abcd1 2 3 8 47 6 5目標2022/7/1510人工智能一般搜索算法原理153深度優(yōu)先搜索的性質(zhì)一

6、般不能保證找到最優(yōu)解當深度限制不合理時,可能找不到解,可以將算法改為可變深度限制最壞情況時,搜索空間等同于窮舉與回溯法的差別:圖搜索是一個通用的與問題無關(guān)的方法2022/7/1511人工智能一般搜索算法原理153寬度優(yōu)先搜索如果搜索是以接近起始節(jié)點的程度依次擴展節(jié)點的,那么這種搜索就叫做寬度優(yōu)先搜索。這種搜索使逐層進行的,在對下一層的任意節(jié)點進行搜索之前,必須搜索完本層的所有節(jié)點?!跋犬a(chǎn)生的節(jié)點先擴展”2022/7/1512人工智能一般搜索算法原理153寬度優(yōu)先搜索算法1, G=G0(G0=s), OPEN=(s), CLOSED=( );2, LOOP: IF OPEN=( ) EXIT (

7、FAIL);3, n=FIRST(OPEN);4, IF GOAL(n) EXIT (SUCCESS);5, REMOVE(n, OPEN), ADD(n, CLOSED);6, EXPAND(n) mi, G=ADD(mi, G);7, IF 目標在mi中 THEN EXIT(SUCCESS);8, ADD(OPEN, mj), 并標記mj到n的指針;9, GO LOOP;2022/7/1513人工智能一般搜索算法原理1532 31 8 47 6 5 2 31 8 47 6 52 8 31 47 6 52 31 8 47 6 52 8 31 47 6 52 8 31 6 47 52 8 3

8、1 47 6 52 8 31 6 47 52 8 31 6 4 7 52 8 37 1 4 6 5 8 32 1 47 6 52 81 4 37 6 52 8 31 4 57 6 1 2 37 8 4 6 51 2 38 47 6 51256731 2 3 8 47 6 5目標82 3 41 8 7 6 542022/7/1514人工智能一般搜索算法原理153寬度優(yōu)先搜索的性質(zhì)當問題有解時,一定能找到解當問題為單位耗散值,且問題有解時,一定能找到最優(yōu)解方法與問題無關(guān),具有通用性效率較低屬于圖搜索方法2022/7/1515人工智能一般搜索算法原理153等代價搜索寬度優(yōu)先搜索可被推廣用來解決尋找從

9、起始節(jié)點到目標節(jié)點具有最小代價路徑問題,這種推廣了的寬度優(yōu)先搜索算法叫做等代價搜索算法。2022/7/1516人工智能一般搜索算法原理153等代價搜索算法算法1,G=G0(G0=s), OPEN=(s), CLOSED=( ),g(s)=0;2, LOOP: IF OPEN=( ) EXIT (FAIL);3, 從OPEN表中選擇一個節(jié)點i,使其g(i)為最小。如果有幾個節(jié)點都合格,那么就要選擇一個目標節(jié)點作為i(要是有目標節(jié)點的話);否則,就從中選一個作為節(jié)點I; REMOVE(i, OPEN), ADD(i, CLOSED);4, IF GOAL(i) EXIT (SUCCESS);5,

10、EXPAND(i) j, G=ADD(j, G);6, 對每個后繼節(jié)點j,計算g(j)=g(i)+c(i,j)且ADD(OPEN, j), 并標記j到i的指針;7, GO LOOP;2022/7/1517人工智能一般搜索算法原理153啟發(fā)式圖搜索利用知識來引導搜索,達到減少搜索范圍,降低問題復雜度的目的。啟發(fā)信息的強度強:降低搜索工作量,但可能導致找不到最 優(yōu)解弱:一般導致工作量加大,極限情況下變?yōu)?盲目搜索,但可能可以找到最優(yōu)解2022/7/1518人工智能一般搜索算法原理153希望:引入啟發(fā)知識,在保證找到最佳解的情況下,盡可能減少搜索范圍,提高搜索效率。2022/7/1519人工智能一般

11、搜索算法原理153基本思想定義一個評價函數(shù)f,對當前的搜索狀態(tài)進行評估,找出一個最有希望的節(jié)點來擴展。2022/7/1520人工智能一般搜索算法原理1531,啟發(fā)式搜索算法A(A算法)評價函數(shù)的格式:f(n) = g(n) + h(n)f(n):評價函數(shù)h(n):啟發(fā)函數(shù)2022/7/1521人工智能一般搜索算法原理153符號的意義g*(n):從s到n的最短路徑的耗散值h*(n):從n到g的最短路徑的耗散值f*(n)=g*(n)+h*(n):從s經(jīng)過n到g的最短路徑的耗散值g(n)、h(n)、f(n)分別是g*(n)、h*(n)、f*(n)的估計值2022/7/1522人工智能一般搜索算法原理

12、153A算法1, OPEN=(s), f(s)=g(s)+h(s);2, LOOP: IF OPEN=( ) EXIT(FAIL);3, n=FIRST(OPEN);4, IF GOAL(n) EXIT(SUCCESS);5, REMOVE(n, OPEN), ADD(n, CLOSED);6, EXPAND(n) Mi, 計算f(n, mi)=g(n, mi)+h(mi);2022/7/1523人工智能一般搜索算法原理153A算法(續(xù))ADD(mj, OPEN), 標記mj到n的指針;IF f(n, mk)f(mk) f(mk)=f(n, mk), 標記mk到n的指針;IF f(n, ml)

13、f*(s)。2022/7/1531人工智能一般搜索算法原理153A*算法的性質(zhì)(續(xù)2)引理2.2:A*結(jié)束前,OPEN表中必存在f(n)f*(s)。2022/7/1532人工智能一般搜索算法原理153A*算法的性質(zhì)(續(xù)3)定理2:對無限圖,若從初始節(jié)點s到目標節(jié)點t有路徑存在,則A*一定成功結(jié)束。2022/7/1533人工智能一般搜索算法原理153A*算法的性質(zhì)(續(xù)4)推論2.1:OPEN表上任一具有f(n) h1(n),則在具有一條從s到t的路徑的隱含圖上,搜索結(jié)束時,由A2所擴展的每一個節(jié)點,也必定由A1所擴展,即A1擴展的節(jié)點數(shù)至少和A2一樣多。簡寫:如果h2(n) h1(n), 則A1

14、擴展的節(jié)點數(shù)A2擴展的節(jié)點數(shù)2022/7/1537人工智能一般搜索算法原理153A*算法的改進問題的提出:因A算法第6步對ml類節(jié)點可能要重新放回到OPEN表中,因此可能會導致多次重復擴展同一個節(jié)點,導致搜索效率下降。2022/7/1538人工智能一般搜索算法原理153s(10)A(1)B(5)C(8)G 目標631118一個例子:OPEN表CLOSED表s(10)s(10)A(7) B(8) C(9)A(7) s(10)B(8) C(9) G(14)A(5) C(9) G(14)C(9) G(12)B(7) G(12)A(4) G(12)G(11)A(7)B(8) s(10)A(5) B(8

15、) s(10)C(9) A(5)B(8) s(10)A(5)B(7) C(9) s(10)A(4) B(7) C(9) s(10)2022/7/1539人工智能一般搜索算法原理153出現(xiàn)多次擴展節(jié)點的原因在前面的擴展中,并沒有找到從初始節(jié)點到當前節(jié)點的最短路徑,如節(jié)點A。2022/7/1540人工智能一般搜索算法原理153解決的途徑對h加以限制能否對h增加適當?shù)南拗?,使得第一次擴展一個節(jié)點時,就找到了從s到該節(jié)點的最短路徑。對算法加以改進能否對算法加以改進,避免或減少節(jié)點的多次擴展。2022/7/1541人工智能一般搜索算法原理153改進的條件可采納性不變不多擴展節(jié)點不增加算法的復雜性2022

16、/7/1542人工智能一般搜索算法原理153對h加以限制定義:一個啟發(fā)函數(shù)h,如果對所有節(jié)點ni和nj,其中nj是ni的子節(jié)點,滿足h(ni) - h(nj) c(ni, nj)h(t) = 0則稱h是單調(diào)的。h(ni)ninjh(nj)c(ni,nj)2022/7/1543人工智能一般搜索算法原理153h單調(diào)的性質(zhì)定理5:若h(n)是單調(diào)的,則A*擴展了節(jié)點n之后,就已經(jīng)找到了到達節(jié)點n的最佳路徑。即:當A*選n擴展時,有g(shù)(n)=g*(n)。2022/7/1544人工智能一般搜索算法原理153h單調(diào)的性質(zhì)(續(xù))定理6:若h(n)是單調(diào)的,則由A*所擴展的節(jié)點序列其f值是非遞減的。2022/

17、7/1545人工智能一般搜索算法原理153h單調(diào)的例子8數(shù)碼問題:h為“不在位”的將牌數(shù) 1h(ni) - h(nj) = 0(nj為ni的后繼節(jié)點) -1 h(t) = 0c(ni, nj) = 1 滿足單調(diào)的條件。2022/7/1546人工智能一般搜索算法原理153對算法加以改進一些結(jié)論:OPEN表上任一具有f(n) f*(s)的節(jié)點定會被擴展。A*選作擴展的任一節(jié)點,定有f(n)f*(s)。2022/7/1547人工智能一般搜索算法原理153改進的出發(fā)點OPEN = ( )f*(s)f值小于f*(s)的節(jié)點f值大于等于f*(s)的節(jié)點fm:到目前為止已擴展節(jié)點的最大f值,用fm代替f*(

18、s)2022/7/1548人工智能一般搜索算法原理153修正過程A1, OPEN=(s), f(s)=g(s)+h(s), fm=0;2, LOOP: IF OPEN=( ) EXIT(FAIL);3, NEST=ni|f(ni)5)n2(4)n3(4)n0(3)n0(3-4)2022/7/1562人工智能一般搜索算法原理153n0n1n2n3n4n5n6n7n8n4(1)n1(5)n2(4)n3(4)n6(2)n7(0)n8(0)n0(4)n5(1)n5(1-2)2022/7/1563人工智能一般搜索算法原理153n0n1n2n3n4n5n6n7n8紅色代價:5藍色代價:6n0(4)n4(1

19、)n5(1-2)n1(5)n2(4)n3(4)n6(2)n7(0)n8(0)n0(4-5)2022/7/1564人工智能一般搜索算法原理153n0n1n2n3n4n5n6n7n8n0(5)n4(1)n5(2)n1(5)n2(4)n3(4)n6(2)n7(0)n8(0)2022/7/1565人工智能一般搜索算法原理153目標目標初始節(jié)點n0n1n2n3n4n5n6n7n8n0(5)n4(1)n5(2)n1(5)n2(4)n3(4)n6(2)n7(0)n8(0)2022/7/1566人工智能一般搜索算法原理153目標目標初始節(jié)點n0n1n2n3n4n5n6n7n8初始節(jié)點可解n0(5)n4(1)n

20、5(2)n1(5)n2(4)n3(4)n6(2)n7(0)n8(0)2022/7/1567人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/1568人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/1569人工智能一般搜索算法原理153概述歸結(jié)原理由J.A.Robinson由1965年提出。與演繹法完全不同,新的邏輯演算算法。一階邏輯中,至今為止的最有效的半可判定的算法。即,一階邏輯中任意恒真公式,使用歸結(jié)原理,總可以在有限步內(nèi)給以判定。 語義網(wǎng)絡

21、、框架表示、產(chǎn)生式規(guī)則等等都是以推理方法為前提的。即,有了規(guī)則已知條件,順藤摸瓜找到結(jié)果。 而歸結(jié)方法是自動推理、自動推導證明用的。(“數(shù)學定理機器證明”)本課程只討論一階謂詞邏輯描述下的歸結(jié)推理方法,不涉及高階謂詞邏輯問題。 2022/7/1570人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/1571人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/1572人工智能一般搜索算法原理153命題邏輯的歸結(jié)法基本單元:簡單命題(陳述句)例: 命題:

22、 A1、A2、A3 和 B求證: A1A2A3成立,則B成立,即:A1A2A3 B反證法:證明A1A2A3B 是矛盾式 (永假式) 2022/7/1573人工智能一般搜索算法原理153命題邏輯的歸結(jié)法建立子句集合取范式:命題、命題和的與, 如:P( PQ)( PQ)子句集S:合取范式形式下的子命題(元素)的集合例:命題公式:P( PQ)( PQ) 子句集 S:S = P, PQ, PQ 2022/7/1574人工智能一般搜索算法原理153命題邏輯的歸結(jié)法歸結(jié)式消除互補對,求新子句得到歸結(jié)式。如子句:C1= C1L, C2 = C2 歸結(jié)式:R(C1, C2) = C1 C2注意:C1C2 R(

23、C1, C2) , 反之不一定成立。 假言推理: 由合適公式W1和W1 W2產(chǎn)生合適公式W2 ,如何用歸結(jié)法證明?2022/7/1575人工智能一般搜索算法原理153命題邏輯的歸結(jié)法歸結(jié)過程 對結(jié)論作否定,并加入前提中將命題寫成合取范式求出子句集對子句集使用歸結(jié)推理規(guī)則歸結(jié)式作為新子句參加歸結(jié)歸結(jié)式為空子句 ,S是不可滿足的(矛盾),原命題成立。 (證明完畢)謂詞的歸結(jié):除了有量詞和函數(shù)以外,其余和命題歸結(jié)過程一樣。 2022/7/1576人工智能一般搜索算法原理153命題邏輯的歸結(jié)法例 證明先將化為合取范式 建立子句集 S=對S做歸結(jié) P NIL2022/7/1577人工智能一般搜索算法原理

24、153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/1578人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/1579人工智能一般搜索算法原理153子句形 引用Herbrand定理,以說明歸結(jié)原理的意義及一個原理形成的根基與背景SKOLEM標準形前束范式:把所有的量詞都提到前面去,然后消掉所有量詞。定義:說公式A是一個前束范式,如果A中的一切量詞都位于該公式的最左邊(不含否定詞),且這些量詞的轄域都延伸到公式的末端。 即(Q1x1)(Qnxn)M(x1, , xn),其中Q

25、ixi為存在量詞或全稱量詞, M(x1, , xn) 為合取范式(由一些子句的合取組成)。2022/7/1580人工智能一般搜索算法原理153子句形( Skolem 標準形) 量詞消去原則:消去存在量詞“”,略去全程量詞“”。注意:左邊有全稱量詞的存在量詞,消去時該變量改寫成為全稱量詞的函數(shù)(Skloem函數(shù));如沒有,改寫成為常量。 例子:見人工智能及其應用P752022/7/1581人工智能一般搜索算法原理153子句形( Skolem 標準形) 定理:謂詞邏輯的任意公式都可以化為與之等價的前束范式,但其前束范式不唯一。 SKOLEM標準形定義:消去量詞后的謂詞公式。注意:謂詞公式G的SKO

26、LEM標準形同G并不等值。 2022/7/1582人工智能一般搜索算法原理153子句形( Skolem 標準形) 例:G=(x)(y)(z)(u)P(x,y,z,u)Skolem 標準形為: (y)(z)P(a,y,z,f(y,z)其中,x=a(常量),u=f(y.z)2022/7/1583人工智能一般搜索算法原理153子句形子句與子句集文字:不含任何連接詞的謂詞公式。子句:一些文字的析?。ㄖ^詞的和)。子句集S的求?。?G SKOLEM標準形 消去存在變量 以“,”取代“”,并表示為集合形式 。2022/7/1584人工智能一般搜索算法原理153子句形 G是不可滿足的 S是不可滿足的G與S不等

27、價,但在不可滿足的意義下是一致的。 定理:若G是給定的公式,而S是相應的子句集,則G是不可滿足的 S是不可滿足的。 注意:G真不一定S真,而S真必有G真。即: S = G2022/7/1585人工智能一般搜索算法原理153子句形G = G1 G2 G3 Gn 的子句形G的子句集可以分解成幾個單獨處理。 有 SG = S1 U S2 U S3 U U Sn則SG 與 S1 U S2 U S3 U U Sn在不可滿足的意義上是一致的。即SG 不可滿足 S1 U S2 U S3 U U Sn不可滿足2022/7/1586人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand

28、定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/1587人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/1588人工智能一般搜索算法原理153Herbrand定理問題:一階邏輯公式的永真性(永假性)的判定是否能在有限步內(nèi)完成?2022/7/1589人工智能一般搜索算法原理153Herbrand定理1936年圖靈(Turing)和邱吉(Church)互相獨立地證明了: “沒有一般的方法使得在有限步內(nèi)判定一階邏輯的公式是否是永真(或永假)。但是如果公式本身是永真(或永假)的,那么就能在有限步內(nèi)判定它是永真(或永假)。對于非永真

29、(或永假)的公式就不一定能在有限步內(nèi)得到結(jié)論。判定的過程將可能是不停止的?!?2022/7/1590人工智能一般搜索算法原理153Herbrand定理Herbrand的思想定義:公式G永真:對于G的所有解釋,G都為真。思想:尋找一個已給的公式是真的解釋。然而,如果所給定的公式的確是永假的,就沒有這樣的解釋存在,并且算法在有限步內(nèi)停止。 2022/7/1591人工智能一般搜索算法原理153Herbrand定理H域H解釋語義樹結(jié)論:Herbrand定理2022/7/1592人工智能一般搜索算法原理153Herbrand定理H域H解釋語義樹結(jié)論:Herbrand定理2022/7/1593人工智能一般

30、搜索算法原理153Herbrand定理(H域)基本方法:因為量詞是任意的,所討論的個體變量域D是任意的,所以解釋的個數(shù)是無限、不可數(shù)的 。簡化討論域。建立一個比較簡單、特殊的域,使得只要在這個論域上,該公式是不可滿足的。此域稱為H域:H0為G中所出現(xiàn)的常量的集合,若G中沒有常量,就任取常量 ,H0=a。 規(guī)定 為H域 例題請參考教科書P272022/7/1594人工智能一般搜索算法原理153H域舉例例1 S=P(a), P(x)P(f(x)依定義有H0=aH1=a Uf(a)=a,f(a)H2=a,f(a)Uf(a),f(f(a)=a,f(a),f(f(a)H= a,f(a),f(f(a),2

31、022/7/1595人工智能一般搜索算法原理153Herbrand定理(H域)幾個基本概念f(t1, t2, tn):f為子句集S中的所有函數(shù)變量。t1, t2, tn為S的H域的元素。通過它們來討論永真性。 原子集A:謂詞套上H域的元素組成的集合。如A = 所有形如 P(t1, t2, tn)的元素即把H中的東西填到S的謂詞里去。S中的謂詞是有限的,H是可數(shù)的,因此,A也是可數(shù)的。一旦原子集內(nèi)真值確定好(規(guī)定好),則S在H上的真值可確定。成為可數(shù)問題。 2022/7/1596人工智能一般搜索算法原理153原子集舉例例1 S=P(a), P(x)P(f(x) H= a,f(a),f(f(a),

32、 S的原子集為 A=P(a),P(f(a),P(f(f(a), 2022/7/1597人工智能一般搜索算法原理153Herbrand定理(H域)沒有變量出現(xiàn)的原子、文字、子句和子句集,分別稱作基原子、基文字、基子句和基子句集。它們在討論子句集S的不可滿足性時占有重要置。2022/7/1598人工智能一般搜索算法原理153Herbrand定理H域H解釋語義樹結(jié)論:Herbrand定理2022/7/1599人工智能一般搜索算法原理153Herbrand定理H域H解釋語義樹結(jié)論:Herbrand定理2022/7/15100人工智能一般搜索算法原理153Herbrand定理(H解釋)解釋I*:取一個值

33、得到一個結(jié)論I映射S中到所有常量符號到它們本身。(即原子集)令f是n元函數(shù),I是f下的一個指派,即H中的元素到f的一個映射(函數(shù)值)。簡單地說(P29),A中的各元素真假組合都是H的解釋。(或真或假只取一個) 問題:對于所有的解釋,全是假才可判定。因為所有解釋代表了所有的情況,如可窮舉,問題便可解決 。2022/7/15101人工智能一般搜索算法原理153H解釋-舉例例1 S=P(a), P(x)P(f(x) S的H域 H= a,f(a),f(f(a), S的原子集為 A=P(a),P(f(a),P(f(f(a), S的H解釋:I1*= P(a),P(f(a),P(f(f(a), S| I1*

34、=TI2*= P(a),P(f(a),P(f(f(a), S| I2*=F I3*= P(a), P(f(a),P(f(f(a), S| I3*=F我們關(guān)心的是:對論域上的任一解釋I,若有 S| I=T,如何求得一個相應的H解釋I*,使得S| I*=T成立。2022/7/15102人工智能一般搜索算法原理153Herbrand定理(H解釋)如下三個定理保證了歸結(jié)法的正確性:定理1:設I是S的論域D上的解釋,存在對應于I的H解釋I*,使得若有S|I = T,必有 S|I* = T。定理2:子句集S是不可滿足的,當且僅當所有的S的H解釋下為假。 定理3:子句集S是不可滿足的,當且僅當對每一個解釋I

35、下,至少有S的某個子句的某個基例為假。 2022/7/15103人工智能一般搜索算法原理153Herbrand定理(H解釋)基例S中某子句中所有變元符號均以S的H域中的元素代入時,所得的基子句C稱為C的一個基例。若一個子句為假,則此解釋為假。一般來說,D是無窮不可列的,因此,子句集S也是無窮不可列的。但S確定后H是無窮可列的。不過在H上證明S的不可滿足性仍然是不可能的。解決問題的方法:語義樹2022/7/15104人工智能一般搜索算法原理153Herbrand定理H域H解釋語義樹結(jié)論:Herbrand定理2022/7/15105人工智能一般搜索算法原理153Herbrand定理H域H解釋語義樹

36、結(jié)論:Herbrand定理2022/7/15106人工智能一般搜索算法原理153Herbrand定理(語義樹)構(gòu)成方法原子集中所有元素逐層添加的一棵二叉樹。將元素的是與非分別標記在兩側(cè)的分枝上(可不完全畫完) 。(P34)特點一般情況H是可數(shù)集,S的語義樹是無限樹。 2022/7/15107人工智能一般搜索算法原理153Herbrand定理(語義樹)意義S H A 語義樹可以理解語義樹為H域的圖形解釋。 目的:把每個解釋都攤開。語義樹中包含原子集的全部元素,因此,語義樹是完全的。每一個直到葉子節(jié)點的分支對應S的一個解釋??梢酝ㄟ^對語義樹每一個分支來計算S的真值。如果每個基例都為假,則可認為是不

37、可滿足的。2022/7/15108人工智能一般搜索算法原理153語義樹-舉例例1 設子句集S的原子集 A=P,Q,R 語義樹: N0 N11N12N21N22N23N24N31N32N33N34N35N36N37N38P QQR R PI(N)表示從根節(jié)點到節(jié)點N分枝上所標記的所有文字的并集。如 I(N34)=P, Q, R2022/7/15109人工智能一般搜索算法原理153Herbrand定理(語義樹)幾個概念失敗結(jié)點: 當(由上)延伸到點N時,I(N)已表明了S的某子句的某基例假。但N以前尚不能判斷這事實。就稱N為失敗結(jié)點。完全語義樹: 如果對語義樹的所有葉結(jié)點N來說, I(N)包含了S

38、的原子集 A=A1,A2,中的所有元素Ai或 Ai,I=1 n。封閉語義樹:如果S的完全語義樹的每個分枝上都有一個失敗結(jié)點,就稱它是一棵封閉語義樹。2022/7/15110人工智能一般搜索算法原理153封閉語義樹-舉例例 子句集S=P(x)Q(x),P(f(y), Q(f(y) H=a,f(a),f(f(a), A=P(a),Q(a),P(f(a),Q(f(a), 語義樹: N0 N11N12N21N22N23N24N31N32N33N34N35N36N37N38P(a)Q(a)P(f(a)N41N42N43N44N45N46N47N48N49N410N411N413N415N412N414N

39、416這是一個無限樹,然而它是否是一個封閉樹?Q(f(a)I(N41)=P(a),Q(a),P(f(a),Q(f(a),它使S的子句Q(f(y)的基例Q(f(a)為假,而N41的父輩不能使子句的基例為假2022/7/15111人工智能一般搜索算法原理153封閉語義樹-舉例例 子句集S=P(x)Q(x),P(f(y), Q(f(y) H=a,f(a),f(f(a), A=P(a),Q(a),P(f(a),Q(f(a), 封閉語義樹: N0 N11N12N21N22N23N24N31N32N36N37N38P(a)Q(a)P(f(a)N41N42N49N410N413N414Q(f(a)2022/

40、7/15112人工智能一般搜索算法原理153Herbrand定理H域H解釋語義樹結(jié)論:Herbrand定理2022/7/15113人工智能一般搜索算法原理153Herbrand定理H域H解釋語義樹結(jié)論:Herbrand定理2022/7/15114人工智能一般搜索算法原理153Herbrand定理(結(jié)論)Herbrand定理:子句集S是不可滿足的,當且僅當對應于S的完全語義數(shù)是棵有限封閉樹。 子句集S是不可滿足的,當且僅當存在不可滿足的S的有限基例集。 2022/7/15115人工智能一般搜索算法原理153Herbrand定理(結(jié)論)定理的意義Herbrand定理已將證明問題轉(zhuǎn)化成了命題邏輯問題

41、。由此定理保證,可以放心的用機器來實現(xiàn)自動推理了。(歸結(jié)原理)注意Herbrand定理給出了一階邏輯的半可判定算法,即僅當被證明定理是成立時,使用該算法可以在有限步得證。而當被證定理并不成立時,使用該算法得不出任何結(jié)論。但是 2022/7/15116人工智能一般搜索算法原理153例 S=P(x,g(x),y,h(x,y),z,k(x,y,z), P(u,v,e(v),w,f(v,w),x)有 H0=a,S0=P(a,g(a),a,h(a,a),a,k(a,a,a), P(a,a,e(a),a,f(a,a),a) H1=a,g(a),h(a,a),k(a,a,a),e(a),f(a,a) 共6個

42、元素 S1: 63 + 64 = 1512個元素 H2 : 元素個數(shù)有 63 數(shù)量級(由于變量最多的函數(shù)是k(x,y,z),三個變 量都可能取值于H1的六個元素) S2 :元素個數(shù)有 (63) 4 數(shù)量級建立S3 , S4 ,直到S5才是不可滿足。然而 S5元素個數(shù)已達( 10 64)4=10256Herbrand定理(結(jié)論)仍存在的問題:基例集序列元素的數(shù)目隨子句基的元素數(shù)目成指數(shù)地增加。因此,Herbrand定理是30年代提出的,始終沒有顯著的成績。 直至1965年Robinson提出了歸結(jié)原理。2022/7/15117人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Her

43、brand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/15118人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/15119人工智能一般搜索算法原理153歸結(jié)原理歸結(jié)原理正確性的根本在于,找到矛盾可以肯定不真。方法:和命題邏輯一樣。但由于有函數(shù),所以要考慮合一和置換。 (定義與例題參考教科書P41)2022/7/15120人工智能一般搜索算法原理153歸結(jié)原理置換和合一的注意事項:謂詞的一致性,P()與Q(), 不可以常量的一致性,P(a, )與P(b,.), 不可以 常量與變量,P(a, .)與P(x, ), 可以變量

44、與函數(shù),P(a, x, .)與P(x, f(x), ),不可以;但P(a, x, )與P(x, f(y), ),可以是不能同時消去兩個互補對,PQ與PQ的空,不可以先進行內(nèi)部簡化(置換、合并) 2022/7/15121人工智能一般搜索算法原理153歸結(jié)原理歸結(jié)的過程(P48)寫出謂詞關(guān)系公式 用反演法寫出謂詞表達試 SKOLEM標準形 子句集S 對S中可歸結(jié)的子句做歸結(jié) 歸結(jié)式仍放入S中,反復歸結(jié)過程 得到空子句 得證2022/7/15122人工智能一般搜索算法原理153歸結(jié)原理歸結(jié)法的實質(zhì):歸結(jié)法是僅有一條推理規(guī)則的推理方法。 歸結(jié)的過程是一個語義樹倒塌的過程。 (P51)歸結(jié)法的問題子句中

45、有等號或不等號時,完備性不成立。 Herbrand定理的不實用性引出了可實用的歸結(jié)法。2022/7/15123人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/15124人工智能一般搜索算法原理153歸結(jié)原理概述命題邏輯的歸結(jié)法子句形Herbrand定理歸結(jié)原理歸結(jié)過程的策略控制2022/7/15125人工智能一般搜索算法原理153歸結(jié)過程的控制策略要解決的問題:歸結(jié)方法的知識爆炸??刂撇呗缘哪康臍w結(jié)點盡量少控制策略的原則給出控制策略,以使僅對選擇合適的子句間方可做歸結(jié)。避免多余的、不必要的歸結(jié)式出現(xiàn)?;蛘哒f,少做些歸結(jié)

46、仍能導出空子句。2022/7/15126人工智能一般搜索算法原理153歸結(jié)過程的控制策略盲目歸結(jié) 例 S=PQ, PQ,PQ, PQ是不可滿足。 證明從S0=S開始,依次構(gòu)造 Si=C1,C2的歸結(jié)式|C1S0S1 Si-1,C2 Si-1 ,i=1,2, ,直至得到空子句。具體過程如下:S0 (1) PQ (2) PQ (3)PQ (4) PQS1 (5)Q (1)(2) (6)P (1)(3) (7)QQ (1)(4) (8)PP (1)(4) (9)Q Q (2)(3) (10)PP (2)(3) (11)P (2)(4) (12)Q (3)(4)2022/7/15127人工智能一般搜索

47、算法原理153歸結(jié)過程的控制策略(盲目歸結(jié))S2 (13)P (1)(7) (14)PQ (1)(8) (15)PQ (1)(9) (16)PQ (1)(10) (17)Q (1)(11) (18)P (1)(12) (19)Q (2)(6) (20)PQ (3)(4) (21)PQ (2)(8) (22)PQ (2)(9) (23)PQ (2)(10) (24)P (2)(12) (25) P (3)(5) (26)PQ (3)(7) (27) PQ (3)(8) (28) PQ (3)(9) (29) PQ (3)(10) (30)Q (3)(11) (31)P (4)(5) (32)Q

48、(4)(6) (33)PQ (4)(7) (34)PQ (4)(8) (35)PQ (4)(9) (36)PQ (4)(10) (37)Q (5)(7) (38)Q (5)(9) (39) (5)(12)產(chǎn)生過多不必要的歸結(jié)式。一類是重言式(7)-(10)由它們又產(chǎn)生了(13)-(16),(20)-(23),(26)-(29),(33)-(39)。另一類是重復的,如P,Q, P, Q.2022/7/15128人工智能一般搜索算法原理153歸結(jié)過程的控制策略刪除策略 設有兩個子句C和D,若有置換使得 C D成立,便說子句C把子句D歸類。例 C=P(X) D=P(a)Q(a) 取=a/x,便有C

49、=P(a) P(a),Q(a)。刪除策略:若對s使用歸結(jié)推理過程中,當歸結(jié)式Cj是重言式或Cj被S中子句或歸結(jié)式Ci(iQR 解釋I=P, Q, R 2022/7/15131人工智能一般搜索算法原理153歸結(jié)過程的控制策略線性歸結(jié)策略 首先從子句集S中選取一個稱為頂子句的子句C0開始做歸結(jié),其次是歸結(jié)過程中所得到的歸結(jié)式Ci立即同另一個子句Bi進行歸結(jié)得歸結(jié)式Ci+1。而Bi屬于S或是已出現(xiàn)的歸結(jié)式Cj(j完備采用支撐集完備語義歸結(jié)完備線性歸結(jié) 完備單元歸結(jié)=完備輸入歸結(jié) =完備2022/7/15135人工智能一般搜索算法原理153謂詞邏輯的歸結(jié)方法對于子句C1L1和C2L2,如果L1與L2可

50、合一,且s是其合一者,則(C1C2)s是其歸結(jié)式。例: P(x)Q(y), P(f(z)R(z) = Q(y)R(z)2022/7/15136人工智能一般搜索算法原理153歸結(jié)舉例設公理集:(x)(R(x)L(x)(x)(D(x)L(x)(x)(D(x)I(x)求證: (x)(I(x)R(x)化子句集: (x)(R(x)L(x) = (x)(R(x)L(x)= R(x)L(x) (1)2022/7/15137人工智能一般搜索算法原理153 (x)(D(x)L(x)= (x)(D(x)L(x)= D(x)L(x) (2) (x)(D(x)I(x)= D(A)I(A)= D(A) (3) I(A)

51、 (4)2022/7/15138人工智能一般搜索算法原理153目標求反: (x)(I(x)R(x)= (x)(I(x)R(x)= (x)(I(x)R(x)= I(x)R(x) (5)換名后得字句集:R(x1)L(x1)D(x2)L(x2)D(A) I(A) I(x5)R(x5)2022/7/15139人工智能一般搜索算法原理153例題得歸結(jié)樹R(x1)L(x1)D(x2)L(x2)D(A) I(A) I(x5)R(x5)I(A) I(x5)R(x5) R(A) A/x5 R(x1)L(x1) L(A) A/x1 D(x2)L(x2) D(A) A/x2 D(A) nil2022/7/15140

52、人工智能一般搜索算法原理153歸結(jié)反演求解-提取回答的過程先進行歸結(jié),證明結(jié)論的正確性;用重言式代替結(jié)論求反得到的子句;按照證明過程,進行歸結(jié);最后,在原來為空的地方,得到的就是提取的回答。修改后的證明樹稱為修改證明樹2022/7/15141人工智能一般搜索算法原理153歸結(jié)反演求解-舉例“如果無論John到哪里去,F(xiàn)ido也就去那里,那么如果John在學校,F(xiàn)ido在哪里?”已知:(x)AT(John, x) AT(Fido, x) AT(John, School)求證:(x)AT(Fido, x)如果我們首先證明公式 (x)AT(Fido, x) 在邏輯上遵循前提公式集,然后尋求一個存在x的例,那么就能解決“Fido在哪里”的問題。2022/7/15142人工智能一般搜索算法原理153歸結(jié)反演求解-基于歸結(jié)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論