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 以降も追記するかも。