導出原理の基礎について簡単に説明したスライドです.
述語論理による推論の基礎導出原理を用いた推論第1回 B3勉強会2019/1/11長岡技術科学大学自然言語処理研究室 吉澤 亜斗武
View Slide
参考文献・資料書物[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
Contents(1) 恒真式の自動証明(2) スコーレム標準形(3) 導出原理(4) 単一化置換(5) 導出制御戦略(6) 導出原理による質問応答3
(1) 恒真式の自動証明述語論理式 () は恒真式(tautology)か? ∈ において ∥ ∀ ∥= 1であるか?・対象領域 におけるすべての要素 について()が真であることを証明する必要があり,時間がかかる・ が無限集合であれば,直接的な証明は実質不可能ここで,論理式を変形してみる.∥ ∀ ∥=∥ ∀¬¬ ∥=∥ ¬∃¬ ∥= ¬∥ ∃¬ ∥= 14
() は恒真式(tautology)か?∥ ∀ ∥= 1∥ ∃¬ ∥= 0¬() は恒偽式(contradiction)か?よって∃¬() が矛盾,充足不能であることを示せばよい.5同等これは背理法(反駁)による証明を表している.否定して矛盾が生じるならば,否定する前のものは正しいはず(排中律や矛盾律を前提)(1) 恒真式の自動証明
充足不能であることを示すのに導出原理を用いる前に,スコーレム化(Skolemization)という前処理を行い,スコーレム標準形(Skolem normal form)にする必要がある.例:∃𝑥𝑥() ∨ ¬∃∀ () ⟹ (, )スコーレム化(詳細は省略)∀1∀2() ∨ (1) ∧ () ∨ ¬(2, (2))6同値(2) スコーレム標準形
∀1∀2() ∨ (1) ∧ () ∨ ¬(2, (2))重要なPOINT:・否定記号は原子式(素論理式)の直前にある・連言標準形(和積標準形)であること・冠頭標準形であること(限定作用素が母式の先頭にある)・存在作用素が削除され,変数がスコーレム定数またはスコーレム関数に置き換わっている.7(2) スコーレム標準形
スコーレム定数とスコーレム関数の例∃ () ⟺ () : は () を満足する定数∃∀ , ⟺ ∀ (, ) : は に束縛されていない∀∃ , ⟺ ∀ (, ()) : は に束縛されている8(2) スコーレム標準形全称作用素のスコープ(作用域)にある存在作用素はスコーレム関数,そうでないときはスコーレム定数に置き換える.
スコーレム標準形 ∀1, ⋯ , ∀1∧ ⋯ ∧ :節(clause)節集合 = 1, ⋯ , とする導出(融合):親節 , から導出節を導き出すこと.導出原理: 節集合 において導出を行い,導出節はに加える.これを繰り返し,空節が導かれたとき,親節は矛盾することを表し,元の節集合 は充足不能である.9(3) 導出原理
導出節は相補リテラルをもつ親節から導出される.親節 ≡ ′ ∨ , ≡ ′ ∨ ¬ であるとき( :リテラル)三段論法より(詳細は省略)(′ ∨ ) ∧ (′ ∨ ¬) ⟹ ′ ∨ ′ ≡ 𝑖𝑖空節( □, nil )は ∧ ¬⟹nil と導出される.空節が導出できたら,元の論理式は恒偽式である.10(3) 導出原理
例: () ∧ ¬() ∨ () ∧ ¬()11(3) 導出原理() ¬() ∨ () ¬()()nil
今,次の2つの節があるとする.(, ) ∨ ¬(, ) ∨ ここで,変数は任意であるので = , = と仮定し,単一化置換(単一化代入) = {/, /} と表現する.置換の自由度を確保するために,最小限の置換を行うことを最汎単一化置換(most general unifier)という.12(4) 単一化置換
例: () ∧ ¬() ∨ () ∧ ¬()13(4) 単一化置換() ¬() ∨ () ¬()()nil//単一化置換 = {/, /}の下で 証明された
節集合が大きいと効率よく導出するための戦略が重要になる.14(5) 導出制御戦略 ∨ ¬ ∨ ¬¬ ∨ ∨ ∨ ¬¬
15機械的な制御戦略・幅優先戦略(breadth-first strategy)導出に使われていない節を優先的に親節として導出する・線形導出戦略(linear resolution strategy)直前に導出された節を親節の1つとする意味的な制御戦略・支持集合戦略(set-of-support strategy)含意の形式において前提が通常,充足可能なことを利用・意味導出戦略(semantic resolution strategy)真偽に応じて節をグループ分けし,グループ間で導出(5) 導出制御戦略
線形導出戦略の例・主節と側節から導出する・主節:直前に導出された節・側節:節集合内と主節の先祖16(5) 導出制御戦略 ∨ ¬ ∨ ¬ ∨ ¬¬ ∨ ¬nil
意味的導出戦略の例リテラル , , を真とし,真偽の異なるグループ間で導出17(5) 導出制御戦略 ∨ ¬ ∨ ¬¬ ∨ ¬¬nil
規則節と事実節からなる知識ベース があり,そこに質問 が与えられたとすると, から が導けるかという問題になる¬ ⟹ ≡ ∧ ¬上式は質問 を否定し,知識ベース と合わせて考えて矛盾を示す背理法(反駁)を表している. ∧ ¬ を導出原理によって空節を導けるかどうかを行う.18(6) 導出原理による質問応答
例知識1:正人は和子の好きなものは何でも好きである∀ [好き(和子, )⟹ 好き(正人, )] 規則節知識2:和子はケーキが好きである.好き(和子, ケーキ) 事実節質問 :正人は何が好きか?∃ 好き(正人, ) ∀ ¬好き(正人, )19(6) 導出原理による質問応答否定
20(6) 導出原理による質問応答¬好き(正人, ) ¬好き(和子, ) ∨ 好き(正人, )好き(和子, ケーキ)¬好き(和子, )nil/ケーキ/単一化された定数「ケーキ」を答えとして返す