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

prolog_prologue #TechLunch

prolog_prologue #TechLunch

20110824(水) @ Livesense TechLunch
発表者:福田 絵里

E60aa4f80303f3f386898546ddb3686a?s=128

Livesense Inc.
PRO

April 23, 2014
Tweet

Transcript

  1. Prolog

  2. (Programming in Logic) by Colmerauer in 1972 programmation en logique

    from Q-SYSTEM, Planner 非手続き型 AI Prolog Prologue ISOが 標準規格制定 (1995) 第5世代コンピュータ プロジェクト
  3. 論理型計算モデル 命題を証明する、 ということを基本的な動作とする 計算モデル 「三段論法を使って命題を証明する、ということを 基本的な動作とする計算モデル」を提供 Prolog

  4. 三段論法を使って命題を証明する 何らかの方法によって、 正しいか正しくないかということを 判定することのできる言明 疑問文、 命令文、 感動文ではない文  例)「Room Bは広い。」    

    「Room Cはいつも空いていない。」     「みんなが幸せだと私も幸せだ。」  
  5. 三段論法を使って命題を証明する  大前提   AならばB  (規則)  小前提   A       (事実)  結論     B

    規則:一方が真のときはかならず他方も真になる、     という関係が成り立っている、という事実 事実:真だということがすでにわかっている命題
  6. Prologのプログラムは公理系を記述する。 命題を証明するための 前提として使われる、 規則または事実の集合

  7. Prologのプログラムを実行する             = 質問の証明を試みる 証明することが要請される命題 プログラムが記述する公理系に基づいて、 三段論法を使って、 質問の証明を試みる。

  8. Prologのプログラムが公理系を記述する。 → 述語を定義する。  「Joe Hewitt氏はFirebugを生み出した。」 例 ものの性質、 またはものとものとの あいだの関係  「Joe

    Hewitt氏は偉大である。」 = 規則または事実を定義する。
  9. 事実 「Joe Hewitt氏は偉大である。」 事実 「Joe Hewitt氏はFirebugを生み出した。」 idai(hewitt). umidashita(firebug, hewitt).

  10. 事実 「いい天気である。」 iitenki. 規則 「増雄が働き者ならば恵子は幸せである。」 shiawase(keiko) :- hatarakimono(masuo). 頭部 本体

  11. ?- shiawase(keiko). shiawase(keiko) :- hatarakimono(masuo). hatarakimono(masuo). ゴールを実行する = ゴールの証明を試みる インタプリタ:SWI-Prolog

    ゴールが成功する = ゴールが証明される 証明することが 要請される命題を あらわしている項
  12. Easter egg in SWI-Prolog ?- X. % ... 1,000,000 ............

    10,000,000 years later % % >> 42 << (last release gives the question) Google search 「answer to life the universe and everything」
  13. 次回テーマ AIプログラミング + Prolog