小テスト3

小テスト3
以下を、前向き推論、後向き推論の2方法で示せ。









講義への出席率が良ければ、AかBかC
講義への出席率が悪ければ、BかCかD
小テストの成績が良ければ、1ランク上
小テストの成績が普通であれば、ランク変わらず。
小テストの成績が悪ければ、1ランク下
勉強すれば、小テストの成績は良くなる。
講義を聴いていれば、小テストの成績は良くなる。
理解の仕方が良ければ、小テストの成績は良くなる。
勉強もせず、講義も聴いていなければ小テストの成績は
非常にわるい。
文法
If 判定部 Then 行動部;
(1) 記述要素 変数は大文字、定数は数字または小文字で始まる文字列(アトム)
(2) 判定部 ①ワーキングエリアとマッチングする要素の列
②各要素はAnd条件で結合
③non(Alfa)はAlfaという要素がワーキングエリアに存在しないことを示す。
(例1) a(b), c(d) : ワーキングエリアにa(b)があり、かつc(d)がある。
(例2) a(X)
: a(X)とマッチングするXがワーキングエリアに存在する。
(3) 行動部 ①ワーキングエリアに挿入する要素の列を記述。
②終わらせるときはExit
③eval(式)は式を評価することを示す。
④remove(Alfa)はAlfaという要素を削除する。
(例1) a(b), c(d) : ワーキングエリアにa(b)とc(d)を挿入する。
(例2) remove(a(X) )
: a(X)とマッチングした要素を削除する。
(4) ワーキングエリアの初期値は次の形式で指定
Initial Working Area 行動部;行動部; end Initial;
前向き推論
Initial Work Area(A,X,Y,Z)
成績(0), 出席率(A), 勉強(X), 講義(Y),理解方法(Z);
end Initial;
If non(flag0), 出席率(良い)
Then flag0, ランク(2);
If non(flag0), 出席率(悪い)
Then flag0, ランク(1);
If non(flag1), 勉強(する),成績(X)
Then flag1, remove(成績(X)),成績(eval(X+1));
If non(flag1), 勉強(しない)
Then flag1;
If non(frag2), 講義(聴く) ,成績(X)
Then flag2, remove(成績(X)),成績(eval(X+1));
If non(flag2), 講義(聴かない)
Then flag2;
If non(flag3), 理解方法(良い) ,成績(X) Then flag3, remove(成績(X)),成績(eval(X+1));
If non(flag4), 理解方法(悪い)
Then flag3;
If flag0,flag1,flag2,flag3, ランク(Y), 成績(X),X>2
Then
結果(eval(Y+1)), exit;
If flag0,flag1,flag2,flag3, ランク(Y), 成績(X),X=2
Then
結果(Y),
exit;
If flag0,flag1,flag2,flag3, ランク(Y), 成績(X),X<2
Then
結果(eval(Y-1)), exit;
後向き推論
Initial Work Area(A)
成績(0), ランク(A);
end Initial;
If
If
If
If
If
If
If
If
If
If
If
If
If
If
ランク(a)
Then tmp(a, 出席率(良い), 成績(良い));
ランク(b)
Then tmp(b, 出席率(良い), 成績(普通));
ランク(c)
Then tmp(c, 出席率(良い), 成績(悪い));
ランク(b)
Then tmp(b, 出席率(悪い), 成績(良い));
ランク(c)
Then tmp(c, 出席率(悪い), 成績(普通));
ランク(d)
Then tmp(d, 出席率(悪い), 成績(悪い));
tmp(X ,Y , 成績(良い)) Then 理由(X,Y,成績(良い), 勉強(する),
tmp(X ,Y ,成績(普通)) Then 理由(X,Y,成績(普通), 勉強(する),
tmp(X , Y ,成績(普通)) Then 理由(X,Y,成績(普通), 勉強(する),
tmp(X , Y ,成績(普通)) Then 理由(X,Y,成績(普通), 勉強(しない),
tmp(X , Y ,成績(悪い)) Then 理由(X,Y,成績(悪い), 勉強(する),
tmp(X , Y ,成績(悪い)) Then 理由(X,Y,成績(悪い), 勉強(しない),
tmp(X , Y ,成績(悪い)) Then 理由(X,Y,成績(悪い), 勉強(しない),
tmp(X , Y ,成績(悪い)) Then 理由(X,Y,成績(悪い), 勉強(しない),
講義(聴く),
講義(聴く),
講義(聴かない),
講義(聴く),
講義(聴かない),
講義(聴く),
講義(聴かない),
講義(聴かない),
理解方法(良い)),exit;
理解方法(悪い)),exit;
理解方法(良い)),exit;
理解方法(良い)),exit;
理解方法(悪い)),exit;
理解方法(悪い)),exit;
理解方法(良い)),exit ;
理解方法(悪い)),exit;