Salta ai contenuti. | Salta alla navigazione

Strumenti personali

Esercizio Compito Esame

Codice Sicstus Prolog Esercizio 3

text/x-perl icon plaes3.pl — text/x-perl, 1 kB (1675 bytes)

Contenuto del file

%Esercizio 3:


%%%%%%%%%%%%%%%%%%%%%%%
%Stato iniziale 
%%%%%%%%%%%%%%%%%%%%%%%

holds(in(carico1,carrello1),s0).
holds(at(carrello1,milano), s0).
holds(connected(milano,bologna),s0).
holds(connected(bologna,roma),s0).
holds(carrello(carrello1),s0).
�
%%%%%%%%%%%%%%%%%%%%%%%
%Caricamento di un oggetto:
%%%%%%%%%%%%%%%%%%%%%%%
%effetti azione

holds(in(Oggetto,Carrello),do1(load(Oggetto,Carrello,Z),S)).
�
%Frame axiom
holds(V, do1(load(Oggetto,Carrello,Location),S)):-
    holds(V,S),
    V\==at(Oggetto,Location).
�
%Precondizioni
pact(load(Oggetto,Carrello,Location),S):-
	holds(at(Oggetto,Location),S), 
holds(at(Carrello,Location),S).
�
�
%%%%%%%%%%%%%%%%%%%%%%%
%Scaricamento di un oggetto:
%%%%%%%%%%%%%%%%%%%%%%%%effetti azione
holds(at(Ogg,Location),do1(unload(Ogg,Carrello,Location),S)).
�
%Frame axiom
holds(V, do1(unload(Oggetto,Carrello,Location), S)):-
    holds(V,S),
    V\== in(Oggetto,Carrello).
�
%Precondizioni
pact(unload(Oggetto,Carrello,Location),S):-
	holds(in(Oggetto,Carrello),S), 
holds(at(Carrello,Location),S).
�
�

%%%%%%%%%%%%%%%%%%%%%%%
%Trasporto
%%%%%%%%%%%%%%%%%%%%%%%
%effetti azione
holds(at(Carrello,Location2),do1(drive(Carrello,Location1,Location2),S)).
�
%Frame axiom
holds(V, do1(drive(Carrello,Location1,Location2),S)):-
    holds(V,S),
    V\== at(Carrello, Location1).
�
%Precondizioni
pact(drive(Carrello,Location1,Location2),S):-
	holds(connected(Location1,Location2),S), 
holds(at(Carrello,Location1),S), 
holds(carrello(Carrello), S). 
�
�
%Clausola per esprimere la raggiungibilit� di uno stato:
poss(s0).
poss(do1(U,S)):-
    poss(S),
    pact(U,S).