SICP 読み (235) 4.4.1 推論的情報検索
いつものように机上な問題がしばらく続くはず。can-do-job なソレが微妙ですが、最初の問題をヤッてみる。
問題 4.55
a.は
(supervisor ?x (Bitdiddle Ben))
で良いかな。あるいは b.は
(job ?x (accounting . ?y))
とかで良いのかなぁ。c.は
(address ?x (Slumerville . ?y))
で OK でしょうか。
問題 4.56
読み進めつつ、どんどんヤる。
a.はこうなるかな??
(and (supervisor ?name (Betididdle Ben)) (address ?name ?add))
b.は微妙。最初は別で考えると Ben より給料が少ない、は以下??
(and (salary ?name ?amount) (salaly (Bitdiddle Ben) ?bamount) (lisp-value > ?bamount ?amount))
あら、別でと言いつつ上記が解なのかなぁ。c.はどうかいな。まず計算機部門にいない人、とゆーのは例示されてるな。(違
(not (job ?x (computer . ?type)))
この人が監督している人、は
(and (supervisor ?name ?x) (not (job ?x (computer . ?type))))
あら、微妙。こうしないと駄目なのかなぁ。
(and (supervisor ?name ?x) (job ?x ?y) (not (job ?x (computer . ?type))))
うーむ。なんか適当にヤッツケてしまってる感が (以下略
再帰な規則
書いて理解しようとしてみる。
(rule (outranked-by ?staff-person ?boss) (or (supervisor ?staff-person ?boss) (and (supervisor ?staff-person ?middle-manager) (outranked-by ?middle-manager ?boss))))
なんじゃこれは。出力を予想してみる。staff-person に Ben を指定してみる
(outranked-by (Bitdiddle Ben) ?boss)
で以下が出てくるはず。
(supervisor (Bitdiddle Ben) (Warbucks Oliver))
あるいは staff-person に Hacker Alyssa P 指定だと
(outranked-by (Hacker Alyssa P) ?boss)
こうなるんかな
(supervisor (Hacker Alyssa P) (Bitdiddle Ben))
以下のソレはどーゆー意味か不明ですが
(outranked-by (Hacker Alyssa P) (Warbucks Olyber))
以下が出るのか
(supervisor (Hacker Alyssa P) (Warbucks Olyber)) (supervisor (Bitdiddle Ben) (Warbucks Olyber))
あるいは
(outranked-by (Cratchet Robert) (Warbucks Olyber))
だと以下
(outranked-by (Cratchet Robert) (Warbucks Olyber)) (outranked-by (Scrooge Eben) (Warbucks Olyber))
がしかし社長を boss 指定の
(outranked-by ?x (Warbucks Oliver))
だと出力がどうなるか、が微妙。何も出ないのかなぁ。机上問題は現実トウヒにもってこいなんで (以下略
気が向けば 4.57 以降も追記するかも。