初Prolog
sudo port install swi-prolog
linuxだとplなんだけどmacだとswiplというコマンド。
parent(kzfm,yuki).
parent(uko,yuki).
parent(ako,uko).
parent(yum,kzfm).
parent(chiyo,yum).
parent(kzfm,hana).
parent(uko,hana).
上のファイルをtest.swiという名前で保存しておいて、
swipl -f test.swi
で起動
?- parent(A,yuki).
A = kzfm ;
A = uko .
?- parent(A,B),parent(B,yuki).
A = ako,
B = uko ;
A = yum,
B = kzfm ;
false.
parentのparentつまり祖父母だ。もちろん再帰もできる。On Lispの言葉を借りるならPrologは規則を追加したデータベースだ。
ということは、ミニ言語としてperlとかに組み込んであっても良さそうなものだと思って探してみたら、ズバリな記事を見つけた。
Logic Programming with Perl and Prolog
あとで読む。
今のところ入門的な内容しかやってないのでアレなんだけど、ファクトが固いというか、True,Falseからしかルールを導いてないので、もうちょっと確率的なものを扱いたい。8割くらい正しいのでTrueとかそんな感じの緩いルール。
これも気になるが、なか見検索できないので躊躇している。
Prologで学ぶAIプログラミング―「論理プログラミング」「Prolog」の入門から「人工知能」の基礎まで (I・O BOOKS)
赤間 世紀
工学社 / ¥ 2,415 ()
通常2~4週間以内に発送
赤間 世紀
工学社 / ¥ 2,415 ()
通常2~4週間以内に発送
追記
これ見たら、この本よりも、Prolog Programming for Artificial Intelligenceを買うべきな気がしてきた。
Prolog Programming for Artificial Intelligence (International Computer Science Series)
Ivan Bratko
Longman Group United Kingdom / ¥ 7,091 ()
通常11~13日以内に発送
Ivan Bratko
Longman Group United Kingdom / ¥ 7,091 ()
通常11~13日以内に発送