Intelligenza Artificiale. Problem Solving -Agenti risolutori di problemi

Documenti analoghi
Intelligenza Artificiale. Lezione 3. Intelligenza Artificiale Daniele Nardi, 2004/05 Lezione 3 0

Intelligenza Artificiale. Ricerca euristica Algoritmo A*

Problemi, istanze, soluzioni

PROBLEMI ALGORITMI E PROGRAMMAZIONE

3.4 Metodo di Branch and Bound

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Heap e code di priorità

Tecniche Computazionali Avanzate

Note per la Lezione 4 Ugo Vaccaro

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

Il problema del commesso viaggiatore

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.

Problema del cammino minimo

11.4 Chiusura transitiva

Esercizi proposti 10

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Esercizi di Algoritmi e Strutture Dati

Cercare il percorso minimo Ant Colony Optimization

Gara Matematica. Dipartimento di Matematica Ulisse Dini. Viale Morgagni 67/a Firenze. Soluzioni edizione 2011

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

Algoritmi. Pagina 1 di 5

Sistemi Web per il turismo - lezione 3 -

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Algoritmo basato su cancellazione di cicli

Informatica Generale Homework di Recupero 2016

Grandezze scalari e vettoriali

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Algoritmi e giochi combinatori

c) 64 caselle, identificate prima da una lettera, poi da un numero.

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Alberi ed Alberi Binari

Alberi e alberi binari I Un albero è un caso particolare di grafo

Come ragiona il computer. Problemi e algoritmi

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Elementi di Teoria dei giochi

Esercizi sugli Algoritmi numerici

Algoritmi di Ricerca. Esempi di programmi Java

Sviluppo di programmi

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di

REGOLE DI BASE DEL GIOCO DEGLI SCACCHI

Corso di elettrotecnica Materiale didattico: i grafi

Algoritmi di Ricerca

Il teorema di Rouché-Capelli

Cosa è l Informatica?

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Minimo albero di copertura

Corso di Informatica Modulo T1 1 - Il concetto di problema

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

IL CURRICOLO VERTICALE DI MATEMATICA

A. Lorenzi, R. Giupponi - Visual Basic. Teoria e ambiente di programmazione - Istituto Italiano Edizioni Atlas

Laboratorio di Python

Il concetto di calcolatore e di algoritmo

Lezione 6 Selection/Insertion Sort su interi e stringhe

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Argomento 7. Studio di funzione

Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo. Fosco.

DECLINAZIONE COMPETENZE SCUOLA PRIMARIA: MATEMATICA CLASSI 1 a 2 a 3 a

UNITÀ DIDATTICA 5 LA RETTA

Somma di numeri binari

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Corso di Informatica di Base

Progettazione di Algoritmi

ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore.

Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica

Cammini minimi fra tutte le coppie

Intelligenza Artificiale. Lezione 6bis. Sommario. Problemi di soddisfacimento di vincoli: CSP. Vincoli CSP RN 3.8, 4.3, 4.5.

Algoritmi e soluzione di problemi

Transcript:

Intelligenza Artificiale Problem Solving -Agenti risolutori di problemi

Ragionare per cercare soluzioni Un problema viene risolto ricercandone la soluzione in un ampio spazio di possibili soluzioni. La ricerca di una soluzione è la traduzione della conoscenza in una rappresentazione opportuna del mondo composta fra stati (situazioni del mondo) e in un insieme di operatori per passare da un o stato ad un altro.

Conoscenza: informazioni su cui ragionare per agire razionalmente Agire per risolvere problemi Formulazione dell obiettivo Organizza il comportamento, limitando il numero degli scopi da raggiungere Si basa sulla situazione corrente e sulle capacità del soggetto Formulazione del problema Processo che porta a decidere quali azioni da compiere dato un obiettivo La selezione della sequenza di azioni che porta all obiettivo è detta ricerca

Ragionare per cercare soluzioni Un agente con diverse opzioni immediate di esito sconosciuto può decidere cosa fare esaminando prima le differenti sequenze possibili di azioni che conducono a stati di esito conosciuto scegliendo, poi, quella migliore. Il processo di cercare tale sequenza è chiamato ricerca. L idea è quella di mantenere ed estendere un insieme di sequenze di soluzioni parziali. È utile pensare al processo di ricerca come la costruzione di un albero di ricerca i cui nodi sono stati e i cui rami sono operatori.

Risoluzione di problemi Gran parte dei problemi di Intelligenza Artificiale hanno la ricerca (o controllo) come componente fondamentale. I problemi si possono modellare come Problemi di Ricerca in uno spazio degli stati (Strategie di Ricerca).

Risoluzione di problemi Spazio degli stati Lo spazio degli stati è l insieme di tutti gli stati raggiungibili dallo stato iniziale con una qualunque sequenza di operatori. E caratterizzato da: Uno stato iniziale in cui l agente sa di trovarsi (non noto a priori); Un insieme di azioni possibili che sono disponibili da parte dell agente (Operatori che trasformano uno stato in un altro o più formalmente una funzione successore S(X) che riceve in ingresso uno stato e restituisce l insieme degli stati raggiungibili). Un cammino è una sequenza di azioni che conduce da uno stato a un altro.

Risoluzione di problemi Un algoritmo di ricerca prende un problema come input e restituisce una soluzione sotto forma di una sequenza di azioni Un agente razionale semplice opera quindi in tre fasi Formulazione del problema Ricerca della soluzione Esecuzione della sequenza di azioni

Risoluzione di problemi Un semplice agente risolutore di problemi NB durante l esecuzione delle azioni le percezioni vengono ignorate: si ipotizza che la soluzione funzioni sempre

Risoluzione di problemi Poiché durante l esecuzione delle azioni le percezioni vengono ignorate si ipotizza che l ambiente sia statico ed osservabile L idea poi di esaminare sequenze di azioni porta a pensare che l ambiente possa essere considerato discreto Infine si presuppone che l ambiente sia deterministico

Risoluzione di Problemi Problemi ben definiti e soluzioni Un problema è definito da un goal e dall insieme di strumenti a disposizione per raggiungerlo. La prima fase della risoluzione di un problema è la formulazione del problema. In questa fase, oltre a dare una buona definizione del goal, bisogna decidere quali sono le azioni, quale è lo spazio degli stati (insieme degli stati raggiungibili) e quale è lo stato da cui si parte (stato iniziale).

Risoluzione di Problemi A partire dallo stato iniziale bisogna trovare una sequenza di azioni, soluzione, che soddisfi l obiettivo E essenziale scegliere delle azioni, e quindi degli stati, che permettano di formulare soluzioni al giusto livello di dettaglio (processo di astrazione).

Risoluzione di Problemi L esecuzione di ogni azione ha un costo, che può variare da azione ad azione, che costituisce il criterio utilizzato nella ricerca della soluzione migliore. Quindi, ad ogni sequenza di azioni è possibile assegnare un costo complessivo (somma dei costi associati alle varie azioni), per valutare quale sia la soluzione migliore (soluzione ottima).

Risoluzione di Problemi La scelta della sequenza corrisponde alla seconda fase della risoluzione di un problema e viene individuata con il nome di ricerca. Infine, trovata la soluzione, nella terza fase, detta di esecuzione, le azioni sono eseguite per raggiungere il goal.

Risoluzione di Problemi Misurare l efficacia della ricerca: Si riesce a trovare una soluzione? È una buona soluzione? (con basso costo di cammino costo in linea) Qual è il costo della ricerca? (tempo per trovare una soluzione costo fuori linea) Costo totale della soluzione = costo di cammino + costo di ricerca. Scegliere stati e azioni ->L importanza dell astrazione

Risoluzione di Problemi Un esempio: vacanza in Romania. Attualmente in Arad. L aereo parte domani da Bucarest. Formulare un goal: esssere in Bucarest Formulare un problema: stati: varie città operatori: guidare da una città all altra Trovare una soluzione: sequenza di città, es: Arad, Sibiu, Faragas, Bucarest

Risoluzione di Problemi

Classi di Problemi I problemi possono poi essere divisi in quattro classi in dipendenza della conoscenza che si ha sullo stato del mondo e sulle azioni che si possono eseguire su di esso: Problemi a stato singolo (single-state problems) si ha conoscenza dello stato del mondo e degli effetti delle azioni (problema deterministico e osservabile). Problemi a stato multiplo (multiple-state or conformant problems) si ha conoscenza completa degli effetti delle azioni, ma non dello stato del mondo (problema non osservabile).

Classi di Problemi Problemi con imprevisti (contingency problems): alcune azioni possono avere effetti non del tutto determinati (incertezza, malfunzionamenti ecc.). Sono problemi non deterministici e,parzialmente osservabile. Spesso per la soluzione è necessario agire (e verificare l effetto della propria azione) prima di avere trovato una soluzione (interleave di ricerca e esecuzione). Problemi di esplorazione (exploration problems): non si ha conoscenza né sullo stato del mondo né sugli effetti delle azioni. Lo spazio degli stati è sconosciuto. E necessario apprendere i possibili stati del mondo e gli effetti delle proprie azioni attraverso l esperienza.

Risoluzione di problemi Formulazione di un problema a singolo stato: stato iniziale: essere in Arad operatori: Arad -> Zerind, Arad -> Sibiu etc. test obiettivo: La funzione successore S fa passare dallo stato x agli stati S(x). L insieme degli stati raggiungibili definisce lo spazio degli stati. esplicito: in Bucarest implicito: NonSporco(x) costo del cammino: es. Somma delle distanze, numero di operatori applicati, etc. soluzione: una sequenza di operatori che porta da uno stato iniziale a uno stato obiettivo.

Esempi di Problemi Problemi giocattolo (modelli semplificati di classi di problemi reali): Il problema dell 8-puzzle (versione ridotta del gioco del 15) Il problema delle 8 regine (disporre 8 regine su una scacchiera in modo che nessuna dia scacco alle altre) Le parole crociate (spazio di ricerca amplissimo) Il problema dei tre missionari e dei tre cannibali (trasportare 3 m. e 3 c. da un lato a un altro di un fiume con una barca a due posti in modo tale che sulle 2 rive non ci siano mai c. in sovrannumero rispetto ai m.)

Esempi di Problemi Una tipica istanza del rompicapo dell 8 Si hanno otto tessere scorrevoli numerate in una griglia 3 3. Le tessere possono scorrere nelle quattro direzioni (su, giù, destra e sinistra) ma solo se vanno ad occupare la posizione lasciata vuota. Lo scopo è quello di ordinare le tessere, lasciando lo spazio vuoto in fondo. Pur esistendo 9! = 362880 possibili disposizioni dei numeri nelle caselle, gli stati raggiungibili usando gli operatori consentiti sono 181433, ovvero circa la metà, e solo uno di questi è quello vincente.

Esempi di Problemi Una tipica istanza del rompicapo dell 8 Stati: uno stato specifica la posizione di ciascuna delle 8 tessere. Operatori: lo spazio vuoto si muove a destra, a sinistra, sopra, sotto. Test obiettivo: lo stato rispecchia la configurazione obiettivo (Goal). Costo del cammino: ciascun passo costa 1. Il costo del cammino coincide con la sua lunghezza.

Esempi di problemi Il problema delle 8 regine Si dispongono 8 regine su una scacchiera 8 8 facendo in modo che queste non si mangino l'una con l'altra e tenendo presente che le regine dominano in orizzontale, verticale e lungo le diagonali.

Esempi di problemi Il problema delle 8 regine Stati: qualsiasi configurazione da 0 a 8 regine sulla scacchiera. Operatori: aggiungi una regina in qualsiasi quadrato Test obiettivo: 8 regine sulla scacchiera, nessuna minacciata. Costo cammino: 0 (perche conta solo lo stato finale). 64 x 63 x x 57 sequenze da considerare

Esempi di problemi Il problema dei Missionari e dei Cannibali: 3 missionari e 3 cannibali devono attraversare un fiume. C'è una sola barca che può contenere al massimo due persone. Per evitare di essere mangiati i missionari non devono mai essere meno dei cannibali sulla stessa sponda (stati di fallimento). Stato: sequenza ordinata di tre numeri che rappresentano il numero di missionari, cannibali e barche sulla sponda del fiume da cui sono partiti. Stato iniziale è: (3,3,1) (importanza dell astrazione). Operatori: gli operatori devono portare in barca 1 missionario, 1 cannibale, 2 missionari, 2 cannibali, 1 missionario e 1 cannibale. Al più 5 operatori (grazie all astrazione sullo stato scelta). Test Obiettivo: (0,0,0) Costo di cammino: numero di traversate.

Risoluzione di Problemi Problemi giocattolo (toy problem) Scopo: valutare i diversi metodi di risoluzione Descritto in modo sintetico e preciso, può essere usato da diversi ricercatori per confrontare le prestazioni

Esempi di Problemi Problemi reali Il calcolo di un percorso su un grafo Il problema del commesso viaggiatore (date n città, trovare il percorso più breve che passa una e una sola volta per ciascuna di esse) Il disegno di un layout VLSI La navigazione di robot Il calcolo di una sequenza di assemblaggio

Esempi di problemi

Esempi di Problemi Classi di problemi: Problemi a stato singolo Problemi a stato multiplo SEARCH Problemi di contingenza PLANNING Problemi di esplorazione LEARNING

Risoluzione di Problemi: toy problem Il mondo dell aspirapolvere: problema a stato singolo Due soli stati : A, B Percezioni: In quale stato si trova, se c è lo sporco Azioni: Aspirare lo sporco Muoversi a destra o a sinistra Test obiettivo Non c è sporco nè a destra nè a sinistra Azioni: destra, sinistra, aspira

Risoluzione di Problemi Il mondo dell aspirapolvere Funzione successore Genera gli stati legali che risulta dal tentativo di intrapprendere le azioni {1,2,3,4,5,6,7,8,} Spazio degli stati L agente si trova in uno dei due riquadri possibili, ognuno dei quali può contenere sporco oppure no (2x2^2=8) Azioni: destra, sinistra, aspira

Risoluzione di problemi Mondo dell aspirapolvere (singolo stato). Stati: uno degli 8 stati della figura. Operatori: spostati a destra, spostati a sinistra, aspira. Test obiettivo: non lasciare alcuna sporcizia nei quadrati. Costo del cammino: ciascuna azione costa 1. Risolvere il problema da uno stato di partenza comporta seguire le frecce nel diagramma degli stati fino a uno stato obiettivo.

Problemi stati singoli vs. stati multipli Problema a stati singoli: Lo stato è sempre accessibile. L agente conosce esattamente che cosa produce ciascuna delle sue azioni e può calcolare esattamente in quale stato sarà dopo qualunque sequenza di azioni. Problema a stati multipli: Lo stato non è completamente accessibile. L agente deve ragionare su possibili stati che potrebbe raggiungere. In più: anche l effetto delle azioni può essere sconosciuto o imprevisto. Agente deve ragionare su insiemi di stati piuttosto che su stati singoli

Risoluzione di problemi Mondo dell aspirapolvere : senza sensori: (problema a stato multiplo). In ogni istante l apirapolvere si trova in uno stato di un insieme ma non sa quale stato dell insieme è. Stati: sottoinsiemi degli stati 1-8 della figura. Operatori: spostati a destra, spostati a sinistra, aspira. Test obiettivo: tutti gli stati dell insieme degli stati non contengono sporcizia. Costo del cammino: ciascuna azione costa 1. Una soluzione del problema è una qualsiasi sequenza che porti dall insieme iniziale degli stati ad un insieme di stati senza sporcizia.

Esempi di Problemi Problemi di contingenza PLANNING conoscenza incompleta degli effetti delle azioni: le conseguenze dell azione non sono predicibili e quindi vanno considerati tutti possibili effetti: alcune azioni possono avere malfunzionamenti SOLUZIONE : alberi di stati

Risoluzione di problemi Mondo dell aspirapolvere con legge di Murphy: non deterministico (problema di contigenza). Aspirare talvolta deposita sporco, ma solo se in quel punto non c e gia sporcizia (legge di Murphy). Se l aspirapolvere si trova in 4 aspirare potrebbe rimanere nello stato 4 oppure andare a finire nello stato 2 Se ho capacita di rilevamento durante la fase di esecuzione ecco che posso scegliere l azione di aspirare solo nel caso ci sia sporcizia

Esempi di Problemi Problemi di esplorazione LEARNING nessuna informazione degli effetti delle azioni nessuna informazione dello stato del mondo l agente deve compiere azioni esplorative, provare ad agire

Cercare soluzioni I problemi che i sistemi basati sulla conoscenza devono risolvere sono non-deterministici (don't know) In un certo istante più azioni possono essere svolte (azioni: applicazioni di operatori)

Cercare soluzioni Passi da seguire: 1. Determinazione obiettivo 2. Formulazione del problema 3. Determinazione della soluzione mediante ricerca 4. Esecuzione del piano

Cercare soluzioni Stato iniziale Operatori: stato -> stato (funzione successore) Spazio degli stati insieme di tutti gli stati raggiungibili dallo stato iniziale attraverso qualsiasi sequenza di azioni Test obiettivo: stato -> {true, false} Costo del cammino: assegna un costo ad ogni cammino (somma dei costi delle azioni), spesso indicata con g Un cammino nello spazio degli stati e semplicemente una qualsiasi sequenza di azioni che conduce da uno stato all altro

Risoluzione di Problemi Vacanza in Romania

Risoluzione di problemi stato iniziale: essere in Arad operatori: Arad -> Zerind, Arad -> Sibiu etc. test obiettivo: La funzione successore S fa passare dallo stato x agli stati S(x). L insieme degli stati raggiungibili definisce lo spazio degli stati. esplicito: in Bucarest costo del cammino: es. Somma delle distanze, numero di operatori applicati, etc. soluzione: una sequenza di operatori che porta da uno stato iniziale a uno stato obiettivo.

Cercare soluzioni Generare sequenze di azioni. Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati. Strategia di ricerca: ad ogni passo scegliere quale stato espandere. Albero di ricerca: rappresenta l espansione degli stati a partire dallo stato iniziale (la radice dell albero). Le foglie dell albero rappresentano gli stati da espandere.

Cercare soluzioni Albero di ricerca parziale per trovare un itinerario da Arad a Bucarest.

Cercare soluzioni Strutture dati per l albero di ricerca (struttura di un nodo). Lo stato nello spazio degli stati a cui il nodo corrisponde. Il nodo genitore. L operatore che è stato applicato per ottenere il nodo. La profondità del nodo. Il costo del cammino dallo stato iniziale al nodo

Cercare soluzioni L algoritmo generale di ricerca N.B. Spazio degli stati albero di ricerca Esempio Bucarest 20 Numero di nodi

Algoritmo Generale di ricerca Cerchiamo di definire un algoritmo generale di ricerca per il caso di problemi a stato singolo. Per semplificare la sua definizione, introduciamo alcune funzioni ausiliarie. Occorre definire il tipo di dato Problem Datatype Problem Components: Initial-State, Operators, Goal-Test, Path-Cost-Function Occorre una funzione per ricavare lo stato iniziale dalla descrizione del problema: Init-State(Problem) Occorre una funzione per trasformare una descrizione di stato nel nodo di un albero: Make-Node(State)

Algoritmo Generale di ricerca Occorre definire il tipo di dato Node Datatype Node Components: State, Parent-Node, Operator, Depth, Path-Cost Occorre una funzione per espandere un nodo: Expand(Node, Problem, [Depth ]), genera i successori del nodo se non è stata raggiunta la profondità Depth. Servono 4 funzioni per gestire delle code di nodi: Make-Queue(Elements), genera una coda contenente Elements; Empty(Queue), controlla se la coda è vuota; Remove-Front(Queue), estrae il primo elemento; Queueing-Fn(Queue, Elements), inserisce Elements nella coda. Infine serve una funzione per controllare se il nodo coincide con un goal del problema: Goal(Node, Problem)

Algoritmo Generale di ricerca Possiamo definire un algoritmo generale per la ricerca su alberi come segue: function General-Search(problem, Queueing-Fn[ Depth ]) { nodes = Make-Queue(Make-Node(Initial-State(problem))); while true { if Empty(nodes) return failure; node =Remove-Front(nodes); if Goal(State(node), problem) return node; nodes = Queueing-Fn(nodes, Expand(node, problem, Depth)); } L insieme di nodi contenuti in nodes è detta frontiera dell albero di ricerca.

Valutazione delle strategie di ricerca Completezza : l algoritmo garantisce di trovare una soluzione, se questa esiste? Complessità temporale : quanto tempo è necessario per raggiungerla? Complessità spaziale : quanta memoria è richiesta per raggiungerla? Ottimalità : la soluzione trovata è la migliore (a costo minimo) quando ci sono varie soluzioni differenti?

Valutazione delle strategie di ricerca La complessità temporale e spaziale è misurata in termini di: b - massimo fattore di diramazione dell albero di ricerca d - profondità della soluzione a costo minimo m - massima profondità dello spazio degli stati (può essere infinita)

Risoluzione di problemi La scelta di quale stato espandere nell albero di ricerca prende il nome di strategia. Distinguiamo: Strategie di ricerca non informata (blind search o ricerca cieca) Non si conosce informazione aggiuntiva sugli stati oltre a quelle fornite nella definizione del problema Strategie di ricerca informata (ricerca euristica) Sanno distinguere se un obiettivo è più promettente di un altro