CogModel

Larkin and Simonに掲載されていたモデル。PSEWでは動作しない。 競合解消がうまくいかない。一度使ったバインディングで何度も発火。 条件節の順序を何度も入れ替えねばならない。ルールを使うたびに優先順位が下がるといいのかも。

ワーキングメモリ

- (Weight W1)
- (Roape Rp)
- (Roape Rq)
- (Pulley Pa)
- (hangs W1 from Rp)
- (pulley-system Rp Pa Rq)
- (Weight W2)
- (hangs W2 from Rq)
- (Rope Rx)
- (Pulley Pb)
- (Roape Ry)
- (Pulley Pc)
- (Rope Rz)
- (Rope Rt)
- (Rope Rs)
- (Ceiling c)
- (hangs Pa from Rx)
- (pulley-system Rx Pb Ry)
- (pulley-system Ry Pc Rz)
- (hangs Pb from Rt)
- (hangs Rt from c)
- (hangs Rx from c)
- (hangs Rs from Pc)
- (hangs W2 from Rs)
- (value W1 1)

ルール

- name: P1
  if:
  - (Weight ?Wx)
  - (Roape ?Ry)
  - (value ?Wx ?n)
  - (hangs ?Wx from ?Ry)
  then:
  - (*deposit (value ?Ry ?n))

- name: P2
  if:
  - (Pulley ?P)
  - (Roape ?R1)
  - (Roape ?R2)
  - (pulley-system ?R1 ?P ?R2)
  - (value ?R1 ?n1)
  then:
  - (*deposit (value ?R2 ?n1))

- name: P31
  if:
  - (Pulley ?P)
  - (Roape ?R1)
  - (Roape ?R2)
  - (pulley-system ?R1 ?P ?R2)
  - (hangs ?R3 from ?P)
  - (value ?R1 ?n1)
  - (value ?R2 ?n2)
  then:
  - (*deposit (value ?R3 (*addition ?n1 ?ne)))

- name: P32
  if:
  - (Pulley ?P)
  - (Roape ?R1)
  - (Roape ?R2)
  - (pulley-system ?R1 ?P ?R2)
  - (hangs ?P from ?R3)
  - (value ?R1 ?n1)
  - (value ?R2 ?n2)
  then:
  - (*deposit (value ?R3 (*addition ?n1 ?n2)))

- name: P4
  if:
  - (Weight ?W1)
  - (Roape ?R1)
  - (Roape ?R2)
  - (hangs ?W1 from ?R1)
  - (hangs ?W1 from ?R2)
  - (value ?R1 ?n1)
  - (value ?R2 ?n2)
  then:
  - (*deposit (value ?W1 (*addition ?n1 ?n2)))

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-08-26 (火) 13:03:33 (5724d)