ADJ: l’adattamento di piani

L’adattamento di piani è un importante processo in molte applicazioni di Intelligenza Artificiale. Un tipico problema d’adattamento di piani consiste nel modificare un piano, precedentemente generato, per risolvere un nuovo problema “simile” all’originale. Questo processo può avvenire sia off-line (per esempio, adattare un piano ricavato da una libreria di piani prima della sua esecuzione), sia on-line (per esempio, adattare un piano durante una costruzione tipo “mixed-initiative”, o durante la sua esecuzione.

Una pianificazione off-line veloce è importante per esempio nel case-cased planning; mentre un adattamento “on-line” veloce è importante quando, durante l’esecuzione di un piano alcune azioni falliscono, o l’acquisizione di nuove informazioni modifica la conoscenza
sul mondo dell’agente di pianificazione, o i suoi obiettivi, rendendo il piano corrente non più valido. Da un punto di vista teorico, nel peggiore dei casi l’adattamento di piani non è più efficiente di una completa rigenerazione del piano stesso.

Tuttavia, in pratica l’adattamento di un piano esistente per risolvere un nuovo problema può essere molto più efficiente che generarne completamente uno nuovo, specialmente quando i cambiamenti richiesti riguardano solo alcune parti circoscritte.

I tipici sistemi per l’adattamento di piani suddividono il problema in tre fasi:

  • Reperimento: definito lo stato iniziale I ed i goal G di un problema PROB, si estrae da una libreria di piani un piano P.
  • Adattamento: consiste nel modificare P, aggiungendo o rimuovendo azioni o effettuando ordinamenti di azioni, finchè il piano risultante non risulta applicabile in I e soddisfa G.
  • Generalizzazione: consiste nel generalizzare e memorizzare il piano trovato P nella libreria di piani (se risulta abbastanza differente rispetto ai piani precedente memorizzati).