人工智能之歸結反演法
歸結反演法
- 魯濱遜歸結原理
檢查子句集S中是否包含空子句。若包含,則S不可滿足;若不包含,就在子句集中選擇合適的子句進行歸結,一旦通過歸結能推出空子句,就說明子句集S是不可滿足的。(這是我的理解:如果論據是真的,最後肯定會推出一個最終結論,如果是假的,最後的結論肯定就為空了也就是沒有結論)
2. 一個十分重要的公式:
3. 子句的定義:
任何文字的析取(即並集、或)稱為子句。
4. 把謂詞公式化成子句集的步驟
1) 利用等價關系消去“→”和“↔”
例如公式
可等價變換為
2) 利用等價關系把“¬”移到緊靠謂詞的位置上上式經等價變換後
3)重新命名變元,使不同量詞約束的變元有不同的名字
上式經變換後:
4)消去存在量詞
a.存在量詞不出現在全稱量詞的轄域內,則只要用一個新的個體常量替換受該量詞約束的變元。(我的理解:說明兩個量詞沒有關系)(比如說 存在某個x,那麽用y=存在的某個x,即用y替換()即可)
b.存在量詞位於一個或者多個全稱量詞的轄域內,此時要用函數替換受該存在量詞約束的變元。(說明兩個量詞是有關系的,即函數關系)
上式中存在量詞($y)及($z)都位於("x)的轄域內,所以需要用函數替換,設替換y和z的函數分別是f(x)和g(x),則替換後得到
5)把全稱量詞全部移動到公式的左邊
6)利用等價關系把公式化為標準形:(就是分配率)
上式化為標準形後得到:
7)消去全稱量詞(我的理解是:就是直接去掉全稱量詞,既然所有的x都是了,那麽自然可以省略)
8)對變元更名,使不同子句中的變元不同名
上式化為:
((x,y)只是變元,P、Q、R才是關系,自然可以用不同的方式命名)
9)消去合取詞,就得到子句集
5. 命題邏輯中的歸結原理
定義:若P是原子謂詞公式,則稱P與¬P為互補文字。在命題邏輯中,P為命題。
定義:設C1與C2是子句集中的任意兩個子句。如果C1中的文字L1與C2中文字L2互補,那麽從C1和C2中分別消去L1和L2,並將兩個子句中余下的部分析取,構成一個新子句C12,則稱這一過程為歸結。稱C12為C1和C2的歸結式,C1和C2為C12的親本子句。
定理:C12是其親本子句C1與C2的邏輯結論。
定義定理的證明:
6. 歸結反演法的具體步驟
以上都是基礎知識,下面是歸結反演的步驟。
1.否定Q,得到¬Q;
2.把¬Q並入到公式集F中,得到{F, ¬Q};
3.把公式集{F, ¬Q}化為子句集S;
4.應用歸結原理對子句集S中的子句進行歸結,並把每次歸結得到的歸結式都並入S中。如此反復進行,若出現了空子句,則停止歸結,此時就證明了Q為真。
第一次寫博客,理解得有什麽不對的地方,或者有什麽寫得不好的地方請大家多多指教。。。
人工智能之歸結反演法