Pianificazione Non Lineare

Documenti analoghi
Problema di Planning

Pianificazione (Planning)

Problema di Planning

COMPITO DI APPLICAZIONI DI INTELLIGENZA ARTIFICIALE L-S 23 Giugno 2004 Docente: Michela Milano

Intelligenza Artificiale. Lezione 14. Pianificazione automatica

Fondamenti di Intelligenza Artificiale M. Altri possibili esercizi

Planning. un task di per se e attività comune a molti task, ad esempio

Utilizzare un pianificatore SHOP. Specificare le conoscenze. Definizione del dominio. Rappresentazione della conoscenza nel pianificatore

GRAPH PLAN GRAPH PLAN

GRAPH PLAN. A ogni passo dell albero di ricerca viene estesa questa struttura dati. Inserisce il fattore TEMPO nella costruzione del piano.

Intelligenza Artificiale. Pianificazione. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 0

Fondamenti di Intelligenza Artificiale M

Esercizi su planning 1

PIANIFICAZIONE BASATA SU GRAFI

Planning. Trovare una sequenza di azioni che, dato un particolare stato iniziale del mondo, consente di soddisfare un dato goal.

PLANNING. diagnosi: pianificazione di test o azioni per riparare (riconfigurare) un sistema scheduling robotica

Fondamenti di Intelligenza Artificiale M a.a. 2010/2011. Note sul compito d esame

PLANNING. diagnosi: pianificazione di test o azioni per riparare (riconfigurare) un sistema scheduling robotica

Pianificazione basata su ricerca euristica state-space forward: Fast Forward (FF)

La pianificazione automatica (planning) rappresenta un importante attività di problem solving che consiste nel sintetizzare una sequenza di azioni

Uno stato soddisfa un obiettivo G se contiene tutti gli atomi di G (possibilmente anche altri)

Pianificazione del Discorso

Ciclo di lezioni su pianificazione automatica

PLANNING LINEARE FORWARD. Esercizio in Prolog

Ciclo di lezioni su pianificazione automatica

Multiagent Planning. Presentazione. Andrea Bonisoli. 24 Novembre Università degli studi di Brescia

COMPITO DI APPLICAZIONI DI INTELLIGENZA ARTIFICIALE 13 Luglio 2005 (Punteggio su 30/30; Tempo 2h )

COMPITO DI APPLICAZIONI DI INTELLIGENZA ARTIFICIALE 21 Giugno 2005 (Punteggio su 30/30; Tempo 2h )

Problemi CSP: Problemi di. soddisfacimento di vincoli. Colorazione di una mappa. Formulazione di problemi CSP. Formulazione. Tipi di problemi CSP

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Sommario. Tecniche di Decomposizione dei Problemi. Algoritmi: Costruzione. Tipi di problemi

Seconda Parte del Corso

COMPITO DI APPLICAZIONI DI INTELLIGENZA ARTIFICIALE 12 aprile 2006 (Punteggio su 30/30; Tempo 2h )

Constraint Satisfaction Problems

Un problema di programmazione dei lavori

Calcolo degli Eventi (EC)

Cenni di pianificazione automatica. Sistemi distribuiti LS Prof. Andrea Omicini A.A

Come utilizzare il pianificatore SHOP

RISOLVERE I TEMI D ESAME

Corso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Problemi, istanze, soluzioni

Corso di Perfezionamento

Pianificazione. Corso di Intelligenza Artificiale, a.a Prof. Francesco Trovò

LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L. Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso

Programmazione Dinamica (PD)

SISTEMI BASATI SULLA CONOSCENZA: PRINCIPI ARCHITETTURALI

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Esercitazioni di Informatica B A.A. 2010/2011 Pseudocodice. Nicola Vitucci

Algoritmo Branch and Cut (B&C)

Esercizi di Algoritmi e Strutture Dati

Problemi di soddisfacimento di vincoli. Colorazione di una mappa. Formulazione di problemi CSP. Altri problemi

Soluzione del problema come ricerca in uno spazio degli stati:

Descrizione dello stato iniziale Descrizione delle azioni, con le condizioni della loro applicabilità e i loro effetti Descrizione dell obiettivo

TEST: RAGGIUNGIMENTO DEL GOAL La verifica può essere solo l appartenenza dello stato raggiunto all insieme dello stato (o degli stati) goal. A volte l

Generazione di Piani attraverso Grafi di Pianificazione

Partizioni intere. =! i# P. Es: Dato {38, 17, 52, 61, 21, 88, 25} possiamo rispondere positivamente al quesito poiché

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE

Introduzione alla programmazione

Ricerca backward: Goal Regression

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 1 parte (6 CFU) 13 Luglio 2011 Tempo a disposizione: 2 h Risultato: 32/32 punti

Linguaggi di programmazione. Paradigmi di programmazione

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Il debugging di astrazioni

Introduzione agli Algoritmi

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

2.2 Alberi di supporto di costo ottimo

Grafi: ordinamento topologico

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Per regnare occorre tenere divisi i nemici e trarne vantaggio. fai ad ogni passo la scelta più conveniente

Fluenti Ogni predicato che può variare nel tempo (fluente ) ha un argomento in più: la situazione

Sviluppo di programmi

trovare un percorso senza collisioni per passare da una configurazione ad un altra del sistema robotico

Partial Order Planning (POP) Pianificazione (non lineare) nello spazio dei piani

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:

Il passo del gambero. Nel labirinto. Nel labirinto. La soluzione di problemi con la tecnica del Backtracking

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Ricerca non informata

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Algoritmi. Andrea Passerini Informatica. Algoritmi

Il problema dello zaino

2.2 Alberi di supporto di costo ottimo

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Esercizi svolti a lezione

Algoritmi e Strutture Dati. Luciano Gualà

2.2 Alberi di supporto di costo ottimo

Grafi di pianificazione: GRAPHPLAN avrim/graphplan.html

Programmazione Strutturata

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

Automi e Linguaggi Formali

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Il linguaggio macchina

PLANNING. diagnosi: pianificazione di test o azioni per riparare (riconfigurare) un sistema scheduling robotica

Modellazione di sistemi software

Dall algoritmo al programma

Transcript:

Pianificazione Non Lineare Pianificare -> prendere molte decisioni. Il pianificatore non conosce a priori l effetto che ogni decisione avrà sul piano. Può essere necessario tornare indietro e prendere decisioni differenti Le decisioni su come scomporre un goal in sottogoal viengono prese in maniera esplicita e formalizzate dagli operatori. Decisioni da prendere durante la pianificazione: La scelta di quale scomposizione usare per risolvere il problema La scelta dell ordine nel quale risolvere I problemi irrisolti La scelta di quali oggetti del dominio instanziare per le azioni scelte per risolvere il problema; La scelta dell ordine nel quale eseguire le azioni del piano 4/12/2005 1 Pianificazione Non Lineare Quando una decisione influenza un altra decisione diciamo che le decisioni sono dipendenti o, nella situazione contraria, sono indipendenti. Esempio: voglio bere del vino e non c e nessuna bottiglia aperta.quindi devo decidere di aprire una bottiglia di vino. Least Commitment Planning. L idea è di non prendere decisioni finchè non e assolutamente indispensabile. Se lo faccio prima che sia richiesto dal pianificatore quella potrebbe essere la decisione sbagliata e quindi devo ritirarla e prenderne un altra. Se la decisione è ritardata finchè non si e forzati a prenderla allora, presumibilmente, quella decisione dipende da altre già prese. Se la decisione non è forzata, allora è indipendente. Il Least Commitment Planning non garantisce una soluzione al problema ma può semplificarlo. 4/12/2005 2

Pianificazione Ricerca nello spazio dei piani Alternativa: cercare nello spazio dei piani, piuttosto che in quello degli stati. Si parte da un piano parziale che viene espanso e rifinito fino a che non si genera un piano completo che risolve il problema. Operatori di raffinamento: aggiungono vincoli al piano parziale e lo modificano. Operatori STRIPS-style: Op(ACTION: RightShoe, PRECOND: RightSockOn, EFFECT: RightShoeOn) Op(ACTION: RightSock, EFFECT: RightSockOn) Op(ACTION: LeftShoe, PRECOND: LeftSockOn, EFFECT: LeftShoeOn) Op(ACTION: LeftSock, EFFECT: leftsockon) 3 Piano non Lineare Un piano non-lineare è costituito da: (1) Un insieme di steps {S 1, S 2, S 3, S 4 } Ogni step corrisponde alla descrizione di un operatore (2) Un insieme di link causali { (S i,c,s j ) } Significa che uno step S i soddisfa una precondizione C per lo step S j (3) Un set di vincoli di ordinamento { S i <S j } Se lo step S i deve venire, essere eseguito, prima di dello step S j Un piano non lineare è completo sse Ogni step in (2) e (3) è in (1) Se S j ha una precondizione C, allora esiste un link causale in (2) della forma (S i,c,s j ) per qualche step S i Se (S i,c,s j ) è in (2) e uno step S k è in (1), e S k minaccia (S i,c,s j ) (fa diventare C falso), allora (3) contiene sia S k <S i oppure S j >S k 4

Ogni piano inizia così: Il piano iniziale S1:Start Initial State Goal State S2:Finish 5 Un esempio Operatori: Op(ACTION: RightShoe, PRECOND: RightSockOn, EFFECT: RightShoeOn) Op(ACTION: RightSock, EFFECT: RightSockOn) Op(ACTION: LeftShoe, PRECOND: LeftSockOn, EFFECT: LeftShoeOn) Op(ACTION: LeftSock, EFFECT: leftsockon) S1:Start RightShoeOn ^ LeftShoeOn S2:Finish Steps: {S1:[Op(Action:Start)], S2:[Op(Action:Finish, Pre: RightShoeOn^LeftShoeOn)]} Links: {} Orderings: {S1<S2} 6

Soluzione Start Left Sock LeftSockOn Left Shoe Right Sock RightSockOn Right Shoe RightShoeOn ^ LeftShoeOn Finish 7 Solution Start Left Sock Right Sock Left Shoe Right Shoe Finish 8

POP vincoli Aggiungere step che aggiungono precondizioni che sono correntemente non soddisfatte. Usare l approccio least-commitment: Non ordinare gli step a meno che non sia necessario ordinare Rispettare I link causali S 1 S 2 che protegge una c condizione c: Non aggingere uno step S 3 che viola c Se una azione parallela minaccia c (i.e., ha l effetto di negarlo), risolverlo aggiungendo link di ordinamento: S 3 prima di S 1 (demotion) S 3 dopo S 2 (promotion) 9 Risolvere le minacce Threat Demotion Promotion 10

4/12/2005 11 4/12/2005 12

4/12/2005 13 4/12/2005 14

4/12/2005 15 Algoritmo POP 4/12/2005 16

Algoritmo POP 4/12/2005 17 Proprietà di POP Algoritmo nondeterministico: in caso di fallimento effettua backtracking sui punti di scelta (choice point) scelta di S add per raggiungere S need scelta di demotion o promotion in caso di minaccia la selezione di S need è irrevocabile POP è corretto, completo e sistematico (nessuna ripetizione) Esistono estensioni (es. azioni rappresentate con FOL) Efficiente se fornito di euristiche derivate dalla descrizione del problema 4/12/2005 18

Operazioni sui piani aggiunta di un legame causale da un azione esistente ad una condizione aperta aggiunta di un azione per soddisfare una condizione aperta ordinamento di un azione rispetto ad un altra per annullare una minaccia: A retrocessione (A m < A p ) m avanzamento (A m > A c ) c retrocessione A p c A c avanzamento 4/12/2005 19 Pianificare per livelli di astrazione Gestire la complessità Strutturare e distinguere fra: Proprietà più o meno importanti Operatori più o meno importanti Due modi di fare astrazione nella pianificazione: Astrazione dello stato o situazione - abstrips (Abstraction-Based Strips ) Idea Principale: introdurre dei pesi per ogni termine e considerare solo quelli più importanti a quel livello di astrazione, raffinare considerando i termini con il secondo peso più alto. MONDO dei BLOCCHI: Pesi dei predicati: On 4 Clear 3 Holds 2 Ontable 2 Handempty 1 Pesi più alti indicano proprietà più importanti. Operatori del mondo dei blocchi PICKUP(x) preconditions Clear 3(x) Ontable 2(x) Handempty 1 delete list Clear(x) Ontable(x) Handempty add list Holds(x) PUTDOWN(x) preconditions Holds 2(x) delete list Holds(x) add list Clear(x) Ontable(x) Handempty STACK(x,y) preconditions Holds 2(x) Clear 3(y) delete list Holds(x) Clear(y) add list Clear(x) On(x,y) Handempty UNSTACK(x,y) preconditions Clear 3(x) On 4(x,y) Handempty 1 4/12/2005delete list Clear(x) On(x,y) Handempty add list Holds(x) Clear(y) 20

Pianificare per livelli di astrazione 4/12/2005 21 Pianificare per livelli di astrazione peso 4 (On): peso 3(On e Clear): 4/12/2005 22

Pianificare per livelli di astrazione peso 2 (Holds e OnTable): 4/12/2005 23 Pianificare per livelli di astrazione peso 1 (Handempty): 4/12/2005 24

Astrazione degli operatori Supponiamo che PICKUP, PUTDOWN, STACK, e UNSTACK siano operatori astratti Supponiamo che una descrizione più dettagliata di PICKUP lo divida in tre parti: POSITION per posizionare la mano del robot CATCH per prendere il blocco LIFT per sollevarlo. E quindi bisogna specificare questi operatori elementari PICKUP può essere visto come una astrazione di operatore di POSITION, CATCH, e LIFT Esempio Definiamo l operatore FREE come una astrazione di UNSTACK e PUTDOWN FREE(x,y) preconditions Handempty On(x,y) delete list On(x,y) add list Clear(y) plot (UNSTACK(x,y),PUTDOWN(x)) Differenza: dopo l applicazione non tutte le precondizioni vengono cancellate. Handempty è vera anche dopo l esecuzione plot -> scomposizione. 4/12/2005 25 FREE(x,y) preconditions Handempty On(x,y) delete list add list On(x,y) Clear(y) Plot 4/12/2005 26

Building a Frame House Build House decomposes to Obtain Permit Hire Builder Construction Pay Builder decomposes to Build Foundation Build Frame Build Roof Build Walls Build Interior 4/12/2005 27 HD-POP Operatori Primitivi Non-Primitivi: Hammer(Nail), Build(House)... Un insieme di metodi di scomposizione: Decompose(o,p): operatore n.p. -> o può essere scomposto in un piano p Decompose (Construction, Plan(Passi: {S1: Build(Foundation), S2: Build(Frame), S3: Build(Roof), S4: Build(Walls): S5: Build(Interior)} Ordinamento: {S1<S2<S3<S5, S2<S4<S5} Vincoli: {} LINKS {S1 S2, S2 S3, S2 S4, S3 S5, S4 S5})) 4/12/2005 28

HD-POP: Estensione dell algoritmo POP Function HD-POP(plan, operators, methods) returns plan Inputs: plan: an abstract plan with start and goal steps ( and possibly other steps) Loop do If SOLUTION?(plan) then return plan S need,c SELECT-SUB-GOAL(plan) CHOOSE-OP(plan, operators, S need,c) S nonprim SELECT-NONPRIM(plan) CHOOSE-DECOMP(plan, methods, S nonprim ) RESOLVE-THREATS(plan) End 4/12/2005 29 HD-POP: Esempio Buy Land Get Loan Own Land Have Money Build House Have House Move In decomposes to Own Land Obtain Buy Land Permit Hire Builder Construction Pay Builder Have House Move In Get Loan Have Money 4/12/2005 30