Esercizio1 - codice prolog
planninges1.pl
—
text/x-perl,
686 bytes
Contenuto del file
holds(on(a,d),s0).
holds(on(b,e),s0).
holds(on(c,f),s0).
holds(clear(a),s0).
holds(clear(b),s0).
holds(clear(c),s0).
holds(clear(g),s0).
% Effetti dell'azione move(X,Y,Z) (Post)
holds(clear(Y),do1(move(X,Y,Z),S)).
holds(on(X,Z),do1(move(X,Y,Z),S)).
% Clausola che esprime le precondizioni dell'azione move(X,Y,Z) (Pre)
pact(move(X,Y,Z),S):-
holds(clear(X),S),holds(clear(Z),S),holds(on(X,Y),S),X\=Z.
% Clausola per esprimere le condizioni di frame (FA)
holds(V,do1(move(X,Y,Z),S)):-holds(V,S),V\=clear(Z),V\=on(X,Y).
% Clausola per esprimere la raggiungibilit? di uno stato (Meta-assioma)
poss(s0).
poss(do1(A,S)):-poss(S),pact(A,S).