Robot, carrelli, oggetti colorati

Si consideri un dominio in cui ci sono: vari carrelli, vari robot e vari oggetti. Gli oggetti sono collocati in stanze. I robot possono prendere gli oggetti e posizionarli su un carrello. I robot si possono spostare e spingere un carrello da una stanza all'altra.

Le azioni possibili sono:

Si utilizzino due fluenti:

Si rappresenti il dominio in Golog e si scrivano le seguenti procedure:

  1. goto(R,P): il robot R va nel posto P (non fa nulla se già si trova in P);
  2. sposta(R,C,P): il robot R porta il carrello C nel posto P (se C già sta in P si sposta solo il robot per andare nello stesso posto);
  3. carica(X,C): qualche robot carica l'oggetto X sul carrello C (non succede nulla se X già sta su C);
  4. scarica(R,C): il robot R scarica il carrello C nel posto in cui si trova C;
  5. spostatutti(From,To): tutti gli oggetti che si trovano nella stanza From sono spostati nella stanza To.
  6. Si aggiunga un predicato statico colore(X,Col) per rappresentare il fatto che l'oggetto X ha colore Col, e si definiscano le procedure seguenti:
    1. caricacol(Col,Y,P): qualche robot carica sul carrello Y tutti gli oggetti di colore Col che stanno nella stanza P;
    2. spostacolore(Col,From,To): qualche robot sposta nella stanza To tutti gli oggetti di colore Col che stanno nella stanza From.

 
Soluzione proposta

marta
2012-04-17