ここでは,以下の加算を解くモデルを構築しよう。
402 +123 ---- ???
まず,ワーキングメモリは,以下のようになる。
(Slot 4 COLUMN3 ROW2)ROW2は上段を示し,ROW1は下段を示す。COLUMNは,右から数えて何列目かを示す。この例では,右から数えて3番目の行の上段に,4という数字が入っていることを示している。
(Leftof COLUMN2 COLUMN1)ある列の左側にどの列が来ているかを現す。
(Leftmost COLUMN3)3列目が一番左側の列であること,つまり3桁の加算の問題であることを示す。
(Sum 3 5 8)システムは1桁の加算の知識を持っている。この例では,3と5を足すと8になることを示している。
(Processing COLUMN1)どの行を現在処理しているのかを示す。処理は一番右のCOLUMN1から始まり,順次右の行へと推移してゆく。
以下が,ワーキングメモリの初期状態の内容である。
- (Slot 4 COLUMN3 ROW2) - (Slot 0 COLUMN2 ROW2) - (Slot 2 COLUMN1 ROW2) - (Slot 1 COLUMN3 ROW1) - (Slot 2 COLUMN2 ROW1) - (Slot 3 COLUMN1 ROW1) - (Answer EMPTY COLUMN1) - (Answer EMPTY COLUMN2) - (Answer EMPTY COLUMN3) - (Leftof COLUMN2 COLUMN1) - (Leftof COLUMN3 COLUMN2) - (Leftmost COLUMN3) - (Processing COLUMN1) - (Sum 0 0 0) - (Sum 0 1 1) - (Sum 0 2 2) - (Sum 0 3 3) - (Sum 0 4 4) - (Sum 0 5 5) - (Sum 0 6 6) - (Sum 0 7 7) - (Sum 0 8 8) - (Sum 0 9 9) - (Sum 0 10 10) - (Sum 1 0 1) - (Sum 1 1 2) - (Sum 1 2 3) - (Sum 1 3 4) - (Sum 1 4 5) - (Sum 1 5 6) - (Sum 1 6 7) - (Sum 1 7 8) - (Sum 1 8 9) - (Sum 1 9 10) - (Sum 1 10 11) - (Sum 2 0 2) - (Sum 2 1 3) - (Sum 2 2 4) - (Sum 2 3 5) - (Sum 2 4 6) - (Sum 2 5 7) - (Sum 2 6 8) - (Sum 2 7 9) - (Sum 2 8 10) - (Sum 2 9 11) - (Sum 2 10 12) - (Sum 3 0 3) - (Sum 3 1 4) - (Sum 3 2 5) - (Sum 3 3 6) - (Sum 3 4 7) - (Sum 3 5 8) - (Sum 3 6 9) - (Sum 3 7 10) - (Sum 3 8 11) - (Sum 3 9 12) - (Sum 3 10 13) - (Sum 4 0 4) - (Sum 4 1 5) - (Sum 4 2 6) - (Sum 4 3 7) - (Sum 4 4 8) - (Sum 4 5 9) - (Sum 4 6 10) - (Sum 4 7 11) - (Sum 4 8 12) - (Sum 4 9 13) - (Sum 4 10 14) - (Sum 5 0 5) - (Sum 5 1 6) - (Sum 5 2 7) - (Sum 5 3 8) - (Sum 5 4 9) - (Sum 5 5 10) - (Sum 5 6 11) - (Sum 5 7 12) - (Sum 5 8 13) - (Sum 5 9 14) - (Sum 5 10 15) - (Sum 6 0 6) - (Sum 6 1 7) - (Sum 6 2 8) - (Sum 6 3 9) - (Sum 6 4 10) - (Sum 6 5 11) - (Sum 6 6 12) - (Sum 6 7 13) - (Sum 6 8 14) - (Sum 6 9 15) - (Sum 6 10 16) - (Sum 7 0 7) - (Sum 7 1 8) - (Sum 7 2 9) - (Sum 7 3 10) - (Sum 7 4 11) - (Sum 7 5 12) - (Sum 7 6 13) - (Sum 7 7 14) - (Sum 7 8 15) - (Sum 7 9 16) - (Sum 7 10 17) - (Sum 8 0 8) - (Sum 8 1 9) - (Sum 8 2 10) - (Sum 8 3 11) - (Sum 8 4 12) - (Sum 8 5 13) - (Sum 8 6 14) - (Sum 8 7 15) - (Sum 8 8 16) - (Sum 8 9 17) - (Sum 8 10 18) - (Sum 9 0 9) - (Sum 9 1 10) - (Sum 9 2 11) - (Sum 9 3 12) - (Sum 9 4 13) - (Sum 9 5 14) - (Sum 9 6 15) - (Sum 9 7 16) - (Sum 9 8 17) - (Sum 9 9 18) - (Sum 9 10 19) - (Sum 10 0 10) - (Sum 10 1 11) - (Sum 10 2 12) - (Sum 10 3 13) - (Sum 10 4 14) - (Sum 10 5 15) - (Sum 10 6 16) - (Sum 10 7 17) - (Sum 10 8 18) - (Sum 10 9 19) - (Sum 10 10 20)
まず,各行の足し算を行うルールである。
IF節 (Processing ?C) (Answer EMPTY ?C) (Slot ?Nlower ?C ROW1) (Slot ?Nupper ?C ROW2) (1)
THEN節 (*delete (Answer EMPTY ?C)) (*deposit (Answer ?NAnswer ?C))
実際にルールを構築してみよう。
[課題]さらに,ある行の答がすでに埋まっている時には,処理の行を一つ左に移す。
IF節 (Processing ?C) (1) (Answer ?N ?C) (*test-not-equal ?N EMPTY)
THEN節 (*delete (Processing ?C)) (*deposit (Prodessing ?Cleft))
実際にルールを構築してみよう。
[課題]ここでは,もう少し複雑な桁上がりのある加算を解くモデルを構築しよう。
488 +123 ---- ???まずは,一旦ワーキングメモリを消去して,再度この問題をワーキングメモリに登録しよう。IMPORTのウインドウで例題1の一部を書き直せばよい。 ルールは,桁上がりに関連する以下の3つのルールを追加しなければならない。
IF節 (Processing ?C) (Answer EMPTY ?C) (Slot ?Nlower ?C ROW1) (Slot ?Nupper ?C ROW2) (Sum ?Nlower ?Nupper ?NAnswer) (*test-exist ?NAnswer (10 11 12 13 14 15 16 17 18 19 20)) (Sum ?NnewAnswer 10 ?NAnswer) THEN (*delete (Answer EMPTY ?C)) (*deposit (Answer ?NnewAnswer ?C)) (*deposit (SENDED))
例題2を解決するモデルを構築しよう。
[課題]先に述べたように,どこプロは,基本的に上位にならべられたルールが優先して発火する。ルールの優先順位なども工夫して,強制発火を使わずに,右矢印ボタンだけで問題解決できるようにモデルを構築せよ。