Created
December 19, 2011 15:50
-
-
Save frasten/1497741 to your computer and use it in GitHub Desktop.
Istruzioni blocchi ADL PPDL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Considerare il mondo dei blocchi a 4 operatori | |
vogliamo che generi uno stato in cui tutti i blocchi sono sul tavolo. | |
In un qualche istante. | |
Possiamo farlo come un'azione speciale che ha come precondizione che tutti | |
i blocchi siano sul tavolo. | |
Aggiungo al dominio l'azione: | |
( | |
:action all-on-table | |
:parameter (?t - table) | |
:precondition ( | |
(forall | |
(? b - block) | |
(on ?b ?t) | |
) | |
) | |
:effect (all-on-table) | |
) | |
===================================================== | |
Esempio: (t.e.) | |
Modificare il mondo dei blocchi a 4 operatori in modo che tutte le soluzioni | |
abbiano n. mosse: | |
a) al piu' 10 | |
b) esattamente 10 | |
c) tra 8 e 10 | |
Dobbiamo mettere in relazione due quantita', quindi mettiamo l'operatore next: | |
(next ?l1 ?l2 - level) | |
e step: | |
(step ?l - level) | |
indica il numero di mosse effettivamente compiuto. | |
Per a, tutto ok: ho solo 10 livelli. | |
Per b, aggiungo al gol: | |
step l10 | |
(vediamo) | |
http://chronus.ing.unibs.it/download/BW/ | |
Vogliamo che il braccio robotico non formi piu' di 3 torri. | |
Devo contare il numero di torri: | |
- creo una torre quando appoggio un blocco sul tavolo | |
- elimino una torre quando raccolgo un blocco dal tavolo. | |
=================================== | |
Blocchi, alcuni rossi alcuni blu. | |
AB rossi | |
CD blu | |
C | |
A | |
B D | |
Goal: | |
D | |
C | |
A | |
B | |
Sono condizioni sul percorso per arrivare. | |
esiste un t1 in cui tutti i blocchi rossi sono sul tavolo | |
esiste un t2, in cui t2 > t1, un blocco rosso sopra uno blu. | |
:action red-block-son-table | |
:parameters(?t - table) | |
:precondition (forall (?b - block) (imply (red ?b) (on ?b ?t))) | |
:effect (all-red-on-table) | |
Aggiungo al dominio l'aczione: | |
:action one-red-block-on-blue | |
:parameters (?t - table) | |
:precondition (and (all-red-on-table) (exists (?b1 ?b2 - block) (and (red ?b1) (blue ?b2) (on ?b1 ?b2)))) | |
:effect (red-blckon-blue) | |
e red-block-on-blue alla lista dei predicati | |
La definizione del problema e': | |
blabla | |
(red a) (red b) ... | |
:goal: | |
all-red-on-table | |
red-block-on-blue |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment