More Related Content
Similar to Ai入門 in prolog
Similar to Ai入門 in prolog (7)
Ai入門 in prolog
- 10. © 2016 Shun Ichikawa 9
オワコンじゃない!!(,,゚Д゚)
■ 教育機関では論理学の教材として有名!
■ 最近の有名な事例は・・・Pepper
http://k-tai.impress.co.jp/
- 11. © 2016 Shun Ichikawa 10
Prologのプログラムを構成する要素
要素は3つ!
1. 事実|物事の事実を宣言すること
2. 規則|物事との関係に関しての規則を定義すること
3. 質問|物事との関係について質問すること
- 12. © 2016 Shun Ichikawa 11
事実とは
■ “鈴木さんは東京に住んでいる”
というような事が事実
■ 英語にすると「Suzuki lives in Tokyo.」
■ live(suzuki, tokyo).
- 13. © 2016 Shun Ichikawa 12
規則とは
■ 複数の事実を用いて、一つの事実を表すこと
■ Engineerとは、職業を示します。
- 田中さんはEngineerであるという事実は、
田中さんは人であるという事実も示します。
■ engineer(X) :-human(X).
- 14. © 2016 Shun Ichikawa 13
質問
■ Prologに対して、質問を投げること
- Prologは質問に合致する事実があれば “yes”
なければ “no” と 回答する。
■ live(suzuki,tokyo).
- yes ←Prologの回答
※上記の結果を得るためにはlive(suzuki, tokyo)という事実を
あらかじめPrologに登録しておく必要があります。
- 17. © 2016 Shun Ichikawa 16
問題|ゼブラパズル
■ 家が3軒あります。その3軒の家はそれぞれ
赤・青・緑で塗られています。
そしてその住人は、それぞれ異なる国籍で、
それぞれ異なるペットを飼っています。
■ イギリス人は赤い家に住んでいます。
■ スペイン人は犬を飼っています。
■ 日本人は、猫を飼っている人の右側に住んでいます。
■ 猫を飼っている人は青色の家の左に住んでいます。
誰がシマウマを飼っているでしょう?
- 19. © 2016 Shun Ichikawa 18
■ 3人の人が並んで住んでいるということ
- neighbor(L,R,[L,R|_])
neighbor(L,R,[_|Xs]) :- neighbor(L,R,Xs)
■ イギリス人は赤い家に住んでいる
- house(red,english,_)
■ スペイン人は犬を飼っている
- house(_,spanish,dog)