Esercizio3 - codice prolog
planninges3.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).