Skip to content

Instantly share code, notes, and snippets.

@frasten
Created December 19, 2011 15:50
Show Gist options
  • Save frasten/1497741 to your computer and use it in GitHub Desktop.
Save frasten/1497741 to your computer and use it in GitHub Desktop.
Istruzioni blocchi ADL PPDL
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