Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a. 2003-2004.

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Ricorsione in SQL-99.
Procedure e funzioni A. Ferrari.
Due esempi di valutazione per competenze nella matematica.
Problem solving Metodologia di lavoro.
Linguaggi di programmazione
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
Generazione di Piani attraverso Grafi di Pianificazione
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Iterazione enumerativa (for)
Maria Teresa PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Basi di conoscenza: rappresentazione e ragionamento (2 - Reti semantiche, Frames) Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Macchine non completamente specificate
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Corso di Informatica (Programmazione)
Introduzione alla programmazione ll
Gioco conversazionale
Unità Didattica 2 I Linguaggi di Programmazione
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Fondamenti di Informatica Algoritmi
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Problemi e algoritmi. I problemi È un quesito che attende una risposta detta soluzione Ma come trovare la soluzione? Spesso si ricorre a tentativi fino.
Algoritmi e Strutture Dati
Un esempio: Calcolo della potenza n-esima di un numero reale
Pensiero, Ragionamento & Intelligenza
Commenti alle Attività Generiche. Attività Generiche (Pressman) Principali: Comunicazioni; Pianificazione; Modellazione; Costruzione, Dispiegamento Collaterali:
Interrogare il database
Sistemi basati su conoscenza Gestione della conoscenza Prof. M.T. PAZIENZA a.a
Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale Apprendimento automatico Prof. M.T. PAZIENZA a.a
Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si.
PERCEZIONE Processo psicologico di creazione di un’immagine interna del mondo esterno.
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano Reti Logiche A Macchine non completamente specificate.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Rappresentazione dell’informazione nel calcolatore.
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite la regola di risoluzione, che una formula (goal) segue.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Algoritmi.
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale Risoluzione di Problemi
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
Sistemi basati su conoscenza Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 14 Prof. M.T. PAZIENZA a.a
Progettazione di basi di dati: metodologie e modelli
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Cloud informatica V anno.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
Transcript della presentazione:

Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a

Sistemi di pianificazione I sistemi di pianificazione vengono definiti per supportare un agente nella risoluzione razionale di problemi, ovvero a fronte delle sue credenze sulle azioni e sulle loro conseguenze (rappresentazione di obiettivi, stati ed azioni). Necessità di suddividere un problema/task(complesso) in sotto-obiettivi/sottotask le cui soluzioni possono essere combinate per fornire una soluzione per il problema completo.

Pianificazione: task vs. sottotask La struttura dei sottotask di un task costituisce di per sé un piano per la sua realizzazione Si può identificare nei task una struttura gerarchica: alla base ci sono i task primitivi, le cui azioni non richiedono alcuna pianificazione per essere realizzati Un task è primitivo o meno a seconda della granularità con cui è definito il problema e delle potenzialità del sistema

Pianificazione: task vs. sottotask Le task networks sono una specie di mappa temporale: ciò che vogliamo il pianificatore faccia è quello di partire con una mappa temporale a mala pena abbozzata, ed aggiungere via via dettagli scegliendo (decidendo) cosa fare ed in che ordine. Una mappa temporale completa consiste di un modello della situazione iniziale, più la sequenza delle azioni (senza alcuna informazione su quanto durino queste azioni e quale intervallo temporale esista tra loro).

Pianificazione: task vs. sottotask La generazione di un piano (plan generation) è un problema deduttivo: dato un task e la situazione corrente, trova un modo per eseguire quel task considerando le soluzioni al problema specifico. Non esiste un modo generale di fare il plan generation

Pianificazione delle decisioni La pianificazione delle decisioni può essere di due tipi: 1.Plan selection (decidere quale tra i piani candidati attivare per un particolare task) 2.Plan coordination (decidere quale sequenza di piani eseguire tra sequenze alternative) Entrambe le decisioni si basano sull’aspettativa relativamente al piano, considerato come una cosa sola

Pianificazione delle decisioni La pianificazione delle decisioni è meno domain- dependent della generazione di un piano. Esistono poi regole domain-specific per proiettare gli effetti degli eventi. Ciascun plan generator (essendo domain- dependent) deve saper predire gli effetti delle sue azioni: eventuali possibili insuccessi, consumo delle risorse,…

Pianificazione delle decisioni Ogni situazione (set di task incontrati dal sistema) è unica per il sistema; la sua speranza per interagire con nuove situazioni è di dividerla in elementi più piccoli e familiari, generare da loro dei piani, selezionare e combinare questi frammenti in un piano unico. Protection violation: uno stato è protetto durante un intervallo temporale se si richiede che sia sempre vero durante quell’intervallo affinché il task si completi con successo. Una protezione è violata se lo stato diventa falso durante quell’intervallo.

Pianificazione: fasi 1.Qual è la notazione corretta per i piani? 2.Come vengono prodotte le mappe temporali e come sono mantenute? 3.Come possono essere previsti e risolti problemi come la violazione della protezione? 4.Come gestire la ricerca nello spazio dei possibili piani? 5.Come tradurre i piani in azioni reali del mondo? 6.Come monitorare il progresso di un piano? 7.Come programmare di nuovo il sistema quando le cose vanno male?

Pianificazione Cercare un linguaggio: abbastanza espressivo per i problemi che si vogliono risolvere che ammetta un algoritmo ragionevolmente efficiente per generare un piano d’azione soddisfacente

Programmazione vs. Pianificazione 1.Un programma è disegnato per essere eseguito molte volte al cambiare dei dati, un piano, generalmente, è eseguito una sola volta 2.Un programma vive in un ambiente controllato (in un calcolatore), un piano vive in un mondo sconosciuto da cui possono sorgere problemi di varia natura incognita 3.Un piano, che probabilmente sarà attuato, è una sorta di ragionamento relativamente al tempo

Pianificazione PIANIFICAZIONE non è RISOLUZIONE DI PROBLEMI Si distinguono nella: Rappresentazione di obiettivi Rappresentazione di stati Rappresentazione di azioni Rappresentazione e costruzione di sequenze di azioni

Ricerca di soluzioni di problemi Rappr. azioni in programmi in cui vengono generate descrizioni di stati successori Rappr. stati (iniziale,.., finale) completa e non ambigua Rappr. obiettivi attraverso il test obiettivo e le funzioni euristiche per il raggiungimento Rappr. piani come sequenza ininterrotta di azioni per raggiungere lo stato finale dallo stato iniziale; non sono previste interferenze da processi/agenti esterni (tempo fisso)

Agente pianificatore Guarda al futuro per cercare azioni che contribuiscono al raggiungimento dell’obiettivo. Un agente pianificatore genera un obiettivo da raggiungere, quindi formula dei piani di azione per raggiungerlo dallo stato corrente e poi li esegue. Una volta che ha un piano continua ad eseguirlo finché il piano è finito, poi ricomincia con un nuovo obiettivo. L’uso di esplicite rappresentazioni logiche permette al pianificatore di indirizzare le sue deliberazioni razionalmente.

Agente pianificatore Quando lo stato del mondo è accessibile, un agente può usare le percezioni fornite dall’ambiente esterno per costruire un modello completo e corretto dello stato corrente del mondo. L’agente deve anche occuparsi del caso in cui l’obiettivo sia irrealizzabile, oppure sia già vero nello stato iniziale (piano completo vuoto). L’agente interagisce con l’ambiente in modo minimo, utilizza le percezioni per definire lo stato iniziale (e l’obiettivo iniziale), quindi segue i passi del piano che ha costruito.

Problema della spesa: comprare latte, banane e trapano … L’agente fa dei tentativi considerando le azioni possibili (cosa comprare e dove), che sono classificate dalla funzione di valutazione (giusto/sbagliato). Finita una azione non sa cosa cercare successivamente e ricomincia il processo per tentativi. Bisogno di strutturare le proprie deliberazioni per lavorare allo stesso modo sia nello stato iniziale che in quello corrente, date le informazioni correnti. Un cammino attraverso questo spazio dallo stato iniziale a quello obiettivo costituisce un piano per il problema della spesa

Problema della spesa

Pianificazione 1. Il pianificatore deve essere in grado di fare connessioni dirette tra stati ed azioni. Gli algoritmi di panificazione utilizzano descrizioni in linguaggi formali (logica del primo ordine), per cui gli stati e gli obiettivi sono rappresentati da insiemi di formule mentre le azioni sono rappresentate da descrizioni logiche di precondizioni ed effetti (le azioni modificano gli stati).

Pianificazione 2. Il pianificatore può aggiungere azioni al piano ove sia necessario e non attraverso una sequenza incrementale che comincia dallo stato iniziale. Non è necessaria alcuna connessione tra l’ordine di pianificazione e l’ordine di esecuzione; si può ridurre così il fattore di ramificazione e la necessità di tornare indietro a causa di decisioni arbitrarie se costretti a prendere decisioni sin dall’inizio o in istanti iniziali.

Pianificazione 3. Molte parti del mondo sono indipendenti da molte altre parti del mondo. Adozione di obiettivi congiunti ed uso di algoritmi di divide-et-impera (efficienti perché portano a risolvere sottoproblemi di minore difficoltà e nel caso in cui l’effort per la ricomposizione dei risultati parziali non sia elevato).

Calcolo delle situazioni Lo spazio di ricerca di situazioni nel mondo (es. il mondo della spesa) prevede di poter individuare un cammino attraverso questo spazio dallo stato iniziale allo stato obiettivo, (ovvero permette di individuare un piano per il problema della spesa)

Pianificazione nel calcolo delle situaz. Il calcolo delle situazioni è una formalizzazione, con il calcolo dei predicati, degli stati, delle azioni e degli effetti delle azioni sugli stati (le azioni trasformano gli stati) Si rappresenta la conoscenza sugli stati e sulle azioni con formule del calcolo dei predicati del primo ordine e poi si usa un sistema di deduzione per porre domande. La risposta alla domanda costituisce un piano per raggiungere lo stato desiderato.

Pianificazione nel calcolo delle situaz. Un problema di pianificazione (nel calcolo delle situazioni) è rappresentato da formule logiche che descrivono le tre parti del problema: Stato iniziale (una formula logica arbitraria che descrive una situazione S°) Stato obiettivo (un’interrogazione logica che cerca situazioni opportune S) Operatori (un insieme di descrizioni di azioni che trasformano gli stati S°->S)

Pianificazione nel calcolo delle situaz. Il calcolo delle situazioni si basa sulla considerazione che le azioni trasformano gli stati. E’ importante gestire sequenze di azioni oltre ad azioni singole. Sequenza di azioni (definizione): una sequenza di azioni vuota non ha alcun effetto su una situazione, il risultato di una sequenza di azioni non vuota è comparabile all’applicazione della prima azione e poi all’applicazione delle azioni rimanenti nella situazione che si ottiene.

Pianificazione nel calcolo delle situaz Una soluzione è un piano p che, quando applicato allo stato iniziale S°, produce una situazione che soddisfa l’interrogazione dell’obiettivo. Con il linguaggio formale (logica del primo ordine) si esprimono obiettivi e piani, mentre tramite il procedimento di inferenza si trovano i piani più opportuni. Però il procedimento di inferenza non fornisce alcuna garanzia sul piano risultante p a parte il fatto che raggiunga l’obiettivo.

Pianificazione nel calcolo delle situaz Per rendere fattibile la pianificazione occorre: Restringere il linguaggio con cui si pongono i problemi per ridurre il numero di soluzioni possibili da cercare Usare un sistema di ragionamento specializzato (pianificatore)

Linguaggio per pianificatori Rappresentazione di stati Una descrizione di stato non deve essere necessariamente completa (es. agente in un ambiente inaccessibile) e corrisponde ad un insieme di stati completi possibili per i quali l’agente vorrebbe ottenere un piano di successo (=soddisfacente l’obiettivo)

Linguaggio per pianificatori Rappresentazione di stati Gli stati sono rappresentati da congiunzioni di letterali ground privi di funzioni, cioè predicati applicati a simboli costanti eventualmente negati. Le formule del calcolo dei predicati che descrivono un insieme di stati del mondo vengono considerate esse stesse uno stato (=struttura dati che può essere modificata in modo corrispondente alle azioni dell’agente)

Linguaggio per pianificatori Rappresentazione di obiettivi Gli obiettivi sono rappresentati da congiunzioni di letterali. Gli obiettivi possono contenere anche variabili. Nel pianificatore si verifica l’esistenza di una sequenza di azioni che renda vero l’obiettivo.

Linguaggio per pianificatori Data una formula ben formata -obiettivo-, il metodo di ricerca trova una sequenza di azioni che produca uno stato del mondo descritto da una certa descrizione di stato S che soddisfi l’obiettivo

Linguaggio per pianificatori Le azioni per passare da uno stato ad un altro hanno operatori corrispondenti che modificano una descrizione di stato prima dell’azione in una descrizione di stato dopo l’azione

Linguaggio per pianificatori (STRIPS) Rappresentazione per azioni Gli operatori STRIPS consistono di: Descrizione dell’azione (ciò che l’agente restituisce all’ambiente quando agisce) Precondizione (congiunzione di atomi –letterali positivi- che dice cosa deve essere vero prima che l’operatore possa essere applicato) Effetto (congiunzione di letterali –positivi o negativi- che descrivono come cambia la situazione quando è applicato l’operatore)

Linguaggio per pianificatori (STRIPS) Notazione grafica per rappresentare azioni Non esiste alcuna variabile di situazione esplicita Ogni cosa nella precondizione si riferisce alla situazione immediatamente prima dell’azione, ogni cosa nell’ effetto si riferisce alla situazione che è il risultato dell’azione

Linguaggio per pianificatori (STRIPS) Un operatore con variabili si dice schema di operatore o regola STRIP (non corrisponde ad una singola azione eseguibile, ma piuttosto ad una famiglia di azioni, una per ciascuna differente istanziazione delle variabili= particolarizzazioni di base delle regole che corrispondono agli operatori reali). Possono essere eseguiti solo operatori istanziati

Linguaggio per pianificatori (STRIPS) Un operatore op è applicabile in uno stato S se c’è qualche modo per istanziare le variabili di op in modo che ognuna delle precondizioni di op sia vera in S

Pianificazione di progressione La pianificazione di progressione ricerca in uno spazio di situazioni possibili (descrizioni di stato) nella direzione in avanti, dalla situazione iniziale a quella obiettivo, applicando ripetutamente particolarizzazioni di regole di STRIPS (alto fattore di ramificazioni)

Pianificazione di progressione Potremmo risolvere un problema dato (es. problema della spesa) cominciando dallo stato iniziale e applicando gli operatori uno alla volta finché si raggiunge uno stato che includa tutti i letterali dell’obiettivo. Un tale algoritmo risolutore è pianificatore nello spazio delle situazioni in quanto effettua una ricerca nello spazio delle situazioni possibili, e pianificatore di progressione in quanto cerca in avanti dalla situazione iniziale a quella obiettivo.

Pianificazione di regressione La pianificazione di regressione ricerca all’indietro dallo stato obiettivo a quello iniziale riducendo il fattore di ramificazione (sotto-obiettivi) Un operatore è appropriato per un obiettivo se l’obiettivo è un effetto dell’operatore E’ più efficiente della pianificazione di progressione

Pianificatore I nodi dell’albero di ricerca di un pianificatore in uno spazio di situazioni corrispondono a situazioni e il cammino attraverso l’albero di ricerca è il piano che viene restituito alla fine dal pianificatore. Ciascun punto di ramificazione aggiunge un altro passo all’inizio (regressione) o alla fine (progressione) del piano.

Pianificatore: ricerca nello spazio dei piani In domini complessi non è possibile effettuare una ricerca nel piano delle situazioni. Occorre cercare attraverso lo spazio dei piani piuttosto che attraverso lo spazio delle situazioni. Partendo da un piano iniziale parziale lo si espande fino a trovare un piano finale completo che risolva il problema. Operatori di ricerca su piani

Piani condizionali Si può inserire un condizionale per l’esecuzione nel piano in corrispondenza del punto di applicazione dell’operatore Nel costruire il piano successivo a un condizionale, il processo di pianificazione si divide in tanti rami quanti sono i disgiunti che potrebbero soddisfare le pre-condizioni di un operatore (contesti)

Pianificatore: ricerca nello spazio dei piani Gli operatori per la ricerca nello spazio dei piani trasformano i piani in altri piani mediante: Aggiunta di nuovi passi al piano Riordino di passi già presenti nel piano Trasformazione di un piano parzialmente ordinato in uno completamente ordinato Trasformazione dello schema di piano con variabili in una particolarizzazione (istanziazione di una variabile precedentemente non legata) La soluzione è il piano finale; il cammino seguito per raggiungerla è irrilevante.

Piano E’ una struttura dati con 4 componenti: 1.Insieme dei passi del piano (ciascun passo è uno degli operatori del problema) 2.Insieme dei vincoli di ordinamento dei piani (S1<S2, S1 deve verificarsi prima di S2 ma non necessariamente immediatamente prima) 3.Insieme dei vincoli sui legami delle variabili 4.Insieme delle relazioni causali

Soluzione Una soluzione è un piano completo e consistente In un piano completo ogni precondizione di un passo viene raggiunta da qualche altro passo. Un passo raggiunge una condizione se la condizione è uno degli effetti del passo e se nessun altro passo può eliminare la condizione. In un piano consistente non c’è alcuna contraddizione nell’ordinamento o nei vincoli sui legami (se validi entrambi c’è contraddizione)

Piano iniziale

Linearizzazioni

Piano iniziale

Piano parziale (iniziale) (con relaz. causali)

Piano parziale (con raffinamenti )

Piano errato

Piani con condizioni

Protezione delle relazioni causali

Piano finale

Pianificazione Decidere di cosa parlare Decidere un vocabolario di condizioni (letterali), operatori ed oggetti Codificare una descrizione dell’istanza specifica del problema Porre problemi al pianificatore ed ottenere piani