Upgrade to Pro — share decks privately, control downloads, hide ads and more …

述語論理による推論の基礎 / Basics of reasoning by predicate logic

Atom
January 09, 2019
380

述語論理による推論の基礎 / Basics of reasoning by predicate logic

導出原理の基礎について簡単に説明したスライドです.

Atom

January 09, 2019
Tweet

More Decks by Atom

Transcript

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

    View Slide

  2. 参考文献・資料
    書物
    [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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. スコーレム標準形 ∀1
    , ⋯ , ∀
    1
    ∧ ⋯ ∧

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

    View Slide

  10. 導出節
    は相補リテラルをもつ親節から導出される.
    親節

    ′ ∨ ,

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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





    View Slide

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

    View Slide

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


    ¬
    nil

    View Slide

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

    nil

    View Slide

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

    View Slide


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

    View Slide

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

    View Slide