FC2ブログ
--.--
--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

01.15
Tue
もう一つユニフィケーションがすこし多くなる例を忘備録として書きます

child(x,y) xはyの子供である
grandc(x,y) xはyの孫である


として

a,b,c,dが個体定数で

前提が

child(c , a) cはaの子供である
child(c , b) cはbの子供である
child(d , c) dはcの子供である

∀w∀x∀y(child(w,x)∧child(x,y)⊃grandc(w,y))


とある時

∃z(grandc(d , z))

で、dの祖父・祖母にあたる人は誰がいるかってのを質問します.

節形式に直して導出するのですが、どの親節を選ぶがという戦略が難しいんでした。

どの節を親節に選ぶかという戦略

そこでPrologなんかの言語はホーン節という特殊な節を使って導出を行います

これを使うと簡単に?(探索空間が少なく?)導出ができるっぽいです

そのホーン節(の規則節)ってのはこんな感じになってる節です

¬A1∨¬A2∨¬A3∨¬A4...∨B

一つだけ正のリテラルがあるような節です

普通はこれを変形して

A1∧A2∧A3∧A4...->B


A1,A2,A3,A4...->B

でこれを

B<-A1,A2,A3,A4...

こんな感じに逆にした表記を用いるっぽいです

この規則節とゴール節といわれるやつで初め導出するんですが

規則節を選ぶ方法がゴール節の一番左のリテラルと逆のリテラルを持つやつを使うみたいです

やってみますと


resolution5_convert_20130115204044.gif


な感じになってdの祖父・祖母というかdからみて2等親に当たるのは

zの最後の置換からa,とbの二人であることがわかりますね



スポンサーサイト

comment 0 trackback 0
トラックバックURL
http://telracsmoratori.blog.fc2.com/tb.php/159-d8289815
トラックバック
コメント
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。