第3章 どこでもプロダクションシステム


login

では,まずシステムにloginしましょう。以下のURLにアクセスし,LoginにUserアカウント,Passwordにパスワードを入力すると,システムにloginできます。

http://133.6.222.18:3000


ワーキングメモリ

では,第1章,第2章で取り上げた積み木の組み立て問題を使って,実際にシステムを構築してみよう。以下が,システムの初期画面である。
まずは,ワーキングメモリに,積み木の初期状態を登録する。
上段のメニューから,「WM」の「Import」をクリックする。そこに,以下のワーキングメモリの内容を,コピー&ペーストする。

- (On BLOCK-U TABLE)
- (On BLOCK-A BLOCK-U)
- (On BLOCK-I TABLE)
- (Clear BLOCK-A)
- (Clear BLOCK-I)


プロダクションルール

ワーキングメモリの内容が,「現在のWM」ウインドウに現れる。
右側のウインドウが,ルールの登録ウインドウである。ルールの登録は,「New Rule」をクリックすることで行う。
「新しいルールの名前」を登録し(例えば,ルール:ブロックの上のブロックを持ち上げる),「末尾に追加」をクリックすると,このルールが登録できるようになる。



実行

実行に関わるいくつかの機能を示す。


CKECK ALLボタン

CHECK ALLボタンを押すと,その時点でワーキングメモリの内容と照合が成功する発火可能なルールを確認することができます。


束縛変数チェック機能

さらに,○もしくは×ボタンを押すと,変数束縛チェックのためのウインドウに移動します。



ルール発火の優先順位
強制発火

変数束縛チェックウインドウの末尾にある「強制的に発火」をおすと,そのルールが,その変数束縛で強制的に発火します。
通常は,「右矢印ボタン」で推論を1つずつ進めて進めてゆきます。しかし,複数のルールが発火可能な場合,ルールの一覧ウインドウの上方にあるルールが先に発火します。下の方にあるルールを強制的に発火させたい時に,この機能を使います。

ルール順序の変更

どこプロは,基本的に上位にならべられたルールが優先して発火する。ルールの順序を変更したい時には,「全部閉」をクリックしてルール簡略表示にし,ルールのバーをドラッグで移動することができる。



問題1

ワーキングメモリをセットし,以下の4つのルールを構築した後,その動作に関して,以下の問題に答えなさい。
変数はx, yのみ用いること.例えば,ブロックyの上にブロックxが乗っている場合は,(On ?x ?y)とする.

[課題]

ルールの保存と消去

ここまでに構築したルールを,保存しておこう。メニューから,「Export」をクリックする。すると,Windowにルールが内部形式で表示されるので,それをコピーしてどこかのテキストファイルとして保存しておこう。この書式は,後に読み込むことが可能である。


その後,ルールの「全消去」をクリックすると,ルールは消去される。同様に,WMの「全消去」をクリックすることにより,WMも消去される。