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).