関数を表すには
f(x) =
if x < -2 then -1
else
if x > 2 then +1
else
0
決定木は次のように表されます。
[-1, [lt, -2], [1, [gt, 2], 0] ]
同様に、関数を表すには
f(x) =
if x < 0 then
if x < -3 then -1
else 0
else
if x < 3 then +1
else +2
ツリーを使用します。
[-1,[lt,-3],0],[lt,0],[1,[lt,3],2]]
evaluate( DT, X, Y )
Y が値 X で決定木 DT を評価することによって得られる値である場合に成立する述語の Prolog コードをどのように記述すればよいですか?
入力と出力の例は次のとおりです。
?- evaluate([-1,[lt,-2],[1,[gt,2],0]],1,X).
X = 0 ? ;
?- evaluate([[-1,[lt,-3],0],[lt,0],[1,[lt,3],2]],7,X).
X = 2 ? ;