Slide 1

Slide 1 text

述語論理による推論の基礎 導出原理を用いた推論 第1回 B3勉強会 2019/1/11 長岡技術科学大学 自然言語処理研究室 吉澤 亜斗武

Slide 2

Slide 2 text

参考文献・資料 書物 [1] 小林一郎:人工知能の基礎,サイエンス社(2016) [2] 有川節夫,原口誠:述語論理と論理プログラミング, オーム社(1988) 講義資料 [3] 谷口忠大:人工知能概論 第14回, http://ai.tanichu.com/slide_template [4] 二宮祟:知識工学 第6~8回, http://aiweb.cs.ehime-u.ac.jp/~ninomiya/archive/logicbn/ 2

Slide 3

Slide 3 text

Contents (1) 恒真式の自動証明 (2) スコーレム標準形 (3) 導出原理 (4) 単一化置換 (5) 導出制御戦略 (6) 導出原理による質問応答 3

Slide 4

Slide 4 text

(1) 恒真式の自動証明 述語論理式 () は恒真式(tautology)か? ∈ において ∥ ∀ ∥= 1であるか? ・対象領域 におけるすべての要素 について()が真であ ることを証明する必要があり,時間がかかる ・ が無限集合であれば,直接的な証明は実質不可能 ここで,論理式を変形してみる. ∥ ∀ ∥=∥ ∀¬¬ ∥=∥ ¬∃¬ ∥= ¬∥ ∃¬ ∥= 1 4

Slide 5

Slide 5 text

() は恒真式(tautology)か? ∥ ∀ ∥= 1 ∥ ∃¬ ∥= 0 ¬() は恒偽式(contradiction)か? よって∃¬() が矛盾,充足不能であることを示せばよい. 5 同等 これは背理法(反駁)による証明 を表している. 否定して矛盾が生じるならば, 否定する前のものは正しいはず (排中律や矛盾律を前提) (1) 恒真式の自動証明

Slide 6

Slide 6 text

充足不能であることを示すのに導出原理を用いる前に, スコーレム化(Skolemization)という前処理を行い, スコーレム標準形(Skolem normal form)にする必要がある. 例:∃𝑥𝑥() ∨ ¬∃∀ () ⟹ (, ) スコーレム化(詳細は省略) ∀1 ∀2 () ∨ (1 ) ∧ () ∨ ¬(2 , (2 )) 6 同値 (2) スコーレム標準形

Slide 7

Slide 7 text

∀1 ∀2 () ∨ (1 ) ∧ () ∨ ¬(2 , (2 )) 重要なPOINT: ・否定記号は原子式(素論理式)の直前にある ・連言標準形(和積標準形)であること ・冠頭標準形であること(限定作用素が母式の先頭にある) ・存在作用素が削除され,変数がスコーレム定数または スコーレム関数に置き換わっている. 7 (2) スコーレム標準形

Slide 8

Slide 8 text

スコーレム定数とスコーレム関数の例 ∃ () ⟺ () : は () を満足する定数 ∃∀ , ⟺ ∀ (, ) : は に束縛されていない ∀∃ , ⟺ ∀ (, ()) : は に束縛されている 8 (2) スコーレム標準形 全称作用素のスコープ(作用域)にある存在作用素はスコーレム 関数,そうでないときはスコーレム定数に置き換える.

Slide 9

Slide 9 text

スコーレム標準形 ∀1 , ⋯ , ∀ 1 ∧ ⋯ ∧ :節(clause) 節集合 = 1 , ⋯ , とする 導出(融合):親節 , から導出節 を導き出すこと. 導出原理: 節集合 において導出を行い,導出節はに加える. これを繰り返し,空節が導かれたとき,親節は矛盾 することを表し,元の節集合 は充足不能である. 9 (3) 導出原理

Slide 10

Slide 10 text

導出節 は相補リテラルをもつ親節から導出される. 親節 ≡ ′ ∨ , ≡ ′ ∨ ¬ であるとき( :リテラル) 三段論法より(詳細は省略) ( ′ ∨ ) ∧ ( ′ ∨ ¬) ⟹ ′ ∨ ′ ≡ 𝑖𝑖 空節( □, nil )は ∧ ¬ ⟹nil と導出される. 空節が導出できたら,元の論理式は恒偽式である. 10 (3) 導出原理

Slide 11

Slide 11 text

例: () ∧ ¬() ∨ () ∧ ¬() 11 (3) 導出原理 () ¬() ∨ () ¬() () nil

Slide 12

Slide 12 text

今,次の2つの節があるとする. (, ) ∨ ¬(, ) ∨ ここで,変数は任意であるので = , = と仮定し, 単一化置換(単一化代入) = {/, /} と表現する. 置換の自由度を確保するために,最小限の置換を行うことを 最汎単一化置換(most general unifier)という. 12 (4) 単一化置換

Slide 13

Slide 13 text

例: () ∧ ¬() ∨ () ∧ ¬() 13 (4) 単一化置換 () ¬() ∨ () ¬() () nil / / 単一化置換 = {/, /} の下で 証明された

Slide 14

Slide 14 text

節集合が大きいと効率よく導出するための戦略が重要になる. 14 (5) 導出制御戦略 ∨ ¬ ∨ ¬ ¬ ∨ ∨ ∨ ¬ ¬

Slide 15

Slide 15 text

15 機械的な制御戦略 ・幅優先戦略(breadth-first strategy) 導出に使われていない節を優先的に親節として導出する ・線形導出戦略(linear resolution strategy) 直前に導出された節を親節の1つとする 意味的な制御戦略 ・支持集合戦略(set-of-support strategy) 含意の形式において前提が通常,充足可能なことを利用 ・意味導出戦略(semantic resolution strategy) 真偽に応じて節をグループ分けし,グループ間で導出 (5) 導出制御戦略

Slide 16

Slide 16 text

線形導出戦略の例 ・主節と側節から導出する ・主節: 直前に導出された節 ・側節: 節集合内と主節の先祖 16 (5) 導出制御戦略 ∨ ¬ ∨ ¬ ∨ ¬ ¬ ∨ ¬ nil

Slide 17

Slide 17 text

意味的導出戦略の例 リテラル , , を真とし,真偽の異なるグループ間で導出 17 (5) 導出制御戦略 ∨ ¬ ∨ ¬ ¬ ∨ ¬ ¬ nil

Slide 18

Slide 18 text

規則節と事実節からなる知識ベース があり,そこに質問 が与えられたとすると, から が導けるかという問題になる ¬ ⟹ ≡ ∧ ¬ 上式は質問 を否定し,知識ベース と合わせて考えて矛盾 を示す背理法(反駁)を表している. ∧ ¬ を導出原理によって空節を導けるかどうかを行う. 18 (6) 導出原理による質問応答

Slide 19

Slide 19 text

例 知識1:正人は和子の好きなものは何でも好きである ∀ [好き(和子, )⟹ 好き(正人, )] 規則節 知識2:和子はケーキが好きである. 好き(和子, ケーキ) 事実節 質問 :正人は何が好きか? ∃ 好き(正人, ) ∀ ¬好き(正人, ) 19 (6) 導出原理による質問応答 否定

Slide 20

Slide 20 text

20 (6) 導出原理による質問応答 ¬好き(正人, ) ¬好き(和子, ) ∨ 好き(正人, ) 好き(和子, ケーキ) ¬好き(和子, ) nil / ケーキ/ 単一化された定数「ケーキ」を答えとして返す