Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_1 V1.4 Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie. Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall autore. Sono graditi commenti o suggerimenti per il miglioramento del materiale Nota: è utilizzato in parte il materiale didattico associato al testo di Stuart J. Russell, Peter Norvig A5 Ricerca Spazio Stati Paolo Salvaneschi 1
INDICE Risolvere problemi con una ricerca Modellazione del problema Applicazioni Algoritmi di ricerca Misure di prestazioni (complessità di algoritmi e problemi) A5 Ricerca Spazio Stati Paolo Salvaneschi 2 A5 Ricerca Spazio Stati Paolo Salvaneschi 2
Risolvere problemi con una ricerca Model-based Goal-based agent Agenti basati su un modello del mondo in cui il mondo è descritto come uno spazio di stati nel quale applicare un processo di ricerca Agenti dotati di un obiettivo A5 Ricerca Spazio Stati Paolo Salvaneschi 3 A5 Ricerca Spazio Stati Paolo Salvaneschi 3
Risolvere problemi con una ricerca I problemi si possono modellare come problemi di ricerca in uno spazio degli stati Spazio degli stati: lo spazio degli stati è l insieme di tutti gli stati raggiungibili dallo stato iniziale con una qualunque sequenza di operatori. Strategie di ricerca. A5 Ricerca Spazio Stati Paolo Salvaneschi 4 A5 Ricerca Spazio Stati Paolo Salvaneschi 4
Risolvere problemi con una ricerca Formulazione del problema Definizione degli stati Definizione dell obiettivo Definizione delle azioni (transizioni tra stati) Problema Ricerca di una soluzione Esame di diverse sequenze di azioni e scelta di una sequenza che permetta di raggiungere l obiettivo Soluzione: sequenza di azioni Esecuzione Realizzazione della sequenza di azioni trovata A5 Ricerca Spazio Stati Paolo Salvaneschi 5 A5 Ricerca Spazio Stati Paolo Salvaneschi 5
Risolvere problemi con una ricerca Schema di funzionamento dell agente (dato uno stato iniziale restituisce una singola azione) A5 Ricerca Spazio Stati Paolo Salvaneschi 6 A5 Ricerca Spazio Stati Paolo Salvaneschi 6
Risolvere problemi con una ricerca Dato uno stato iniziale restituisce una singola azione Se è invocato con una lista di azioni vuota Definisce lo stato di partenza Formula un obiettivo Formula il problema (quali sono gli stati, quali sono le azioni applicabili agli stati) Esegue una ricerca e produce una sequenza di azioni da eseguire Estrae un azione dalla sequenza e la restituisce Altrimenti Estrae un azione dalla sequenza e la restituisce Aspetti diversi: Formulazione obiettivo e modellazione del problema; Ricerca; Esecuzione A5 Ricerca Spazio Stati Paolo Salvaneschi 7 A5 Ricerca Spazio Stati Paolo Salvaneschi 7
Risolvere problemi con una ricerca Nota: L agente percepisce il mondo esterno solo all inizio (stato iniziale) Quando esegue la sequenza di azioni ignora le percezioni e suppone che la soluzione trovata funzioni in ogni caso A5 Ricerca Spazio Stati Paolo Salvaneschi 8 A5 Ricerca Spazio Stati Paolo Salvaneschi 8
Risolvere problemi con una ricerca Tipo di agente Statico: la formulazione e la soluzione del problema non considerano cambiamenti nell ambiente Ambiente completamente osservabile: lo stato iniziale è noto Discreto Deterministico Open Loop System A5 Ricerca Spazio Stati Paolo Salvaneschi 9 A5 Ricerca Spazio Stati Paolo Salvaneschi 9
Modellazione del problema Esempio A5 Ricerca Spazio Stati Paolo Salvaneschi 10 A5 Ricerca Spazio Stati Paolo Salvaneschi 10
Modellazione del problema Esempio A5 Ricerca Spazio Stati Paolo Salvaneschi 11 A5 Ricerca Spazio Stati Paolo Salvaneschi 11
Modellazione del problema Definizione del problema Un problema è definito da quattro elementi: Stato iniziale Funzione successore Test obiettivo Costo del cammino A5 Ricerca Spazio Stati Paolo Salvaneschi 12 A5 Ricerca Spazio Stati Paolo Salvaneschi 12
Modellazione del problema Stato iniziale Es. in Arad Funzione successore S(x) Un insieme di coppie azione-stato Es. Test obiettivo Un test per verificare se abbiamo raggiunto l obiettivo Può essere esplicito Es. in Bucharest o implicito (la proprietà scaccomatto nel gioco degli scacchi) A5 Ricerca Spazio Stati Paolo Salvaneschi 13 A5 Ricerca Spazio Stati Paolo Salvaneschi 13
Modellazione del problema Costo del cammino g Somma dei costi delle singole azioni lungo il cammino (es. somma delle distanze, numero di azioni eseguite) C(x,a,y) costo del singolo step >= 0 Soluzione Sequenza di azioni che portano dallo stato iniziale allo stato obiettivo A5 Ricerca Spazio Stati Paolo Salvaneschi 14 A5 Ricerca Spazio Stati Paolo Salvaneschi 14
Modellazione del problema Soluzione Una sequenza di azioni che porta dallo stato iniziale allo stato obiettivo Soluzione ottima Soluzione a path cost minimo tra tutte le soluzioni A5 Ricerca Spazio Stati Paolo Salvaneschi 15 A5 Ricerca Spazio Stati Paolo Salvaneschi 15
Modellazione del problema Modellazione degli stati e degli operatori A5 Ricerca Spazio Stati Paolo Salvaneschi 16 A5 Ricerca Spazio Stati Paolo Salvaneschi 16
Modellazione del problema Gli algoritmi di ricerca sono stati oggetto di ampio studio La modellazione è un processo creativo A5 Ricerca Spazio Stati Paolo Salvaneschi 17 A5 Ricerca Spazio Stati Paolo Salvaneschi 17
Applicazioni Esempio NB A5 Ricerca Spazio Stati Paolo Salvaneschi 18 A5 Ricerca Spazio Stati Paolo Salvaneschi 18
Applicazioni Esempio j j j A5 Ricerca Spazio Stati Paolo Salvaneschi 19 A5 Ricerca Spazio Stati Paolo Salvaneschi 19
Applicazioni Il problema del commesso viaggiatore: Un commesso viaggiatore ha una lista di città che deve visitare tutte una sola volta. Vi sono strade dirette fra ogni coppia di città. Si trovi la strada più breve che il commesso deve seguire per compiere un viaggio completo che inizi e termini in una qualsiasi delle città. Problema NP-Hard Esempio A5 Ricerca Spazio Stati Paolo Salvaneschi 20 A5 Ricerca Spazio Stati Paolo Salvaneschi 20
Applicazioni Pianificazione dei movimenti delle perforatrici automatiche di circuiti su schede VLSI layout Esempio Posizionamento dei componenti e delle piste su un circuito Navigazione di un robot A5 Ricerca Spazio Stati Paolo Salvaneschi 21 A5 Ricerca Spazio Stati Paolo Salvaneschi 21
Algoritmi di ricerca Algoritmi di ricerca Idea di base: generare un albero (grafo) di ricerca Nota: grafo lo stesso stato può essere raggiunto da percorsi multipli Vedi Il problema degli stati ripetuti A5 Ricerca Spazio Stati Paolo Salvaneschi 22 A5 Ricerca Spazio Stati Paolo Salvaneschi 22
Algoritmi di ricerca Algoritmi di ricerca Idea di base: generare un albero (grafo) di ricerca Stato iniziale Stato finale Operatore (trasforma uno stato in un altro) Funzione successore (dato uno stato attuale lo espande genera gli stati che si raggiungono applicando tutti gli operatori che si possono applicare) Soluzione (sequenza di operatori la cui applicazione trasforma lo stato iniziale nello stato finale) A5 Ricerca Spazio Stati Paolo Salvaneschi 23 A5 Ricerca Spazio Stati Paolo Salvaneschi 23
Algoritmi di ricerca Strategia di ricerca Regole di scelta dello stato da espandere Nota: lo spazio degli stati e l albero di ricerca sono due concetti distinti Es. nell esempio di ricerca del percorso da Arad a Bucharest ci sono: 20 stati (uno per città) un infinito numero di possibili percorsi (è un grafo) => albero di ricerca con infiniti nodi A5 Ricerca Spazio Stati Paolo Salvaneschi 24 A5 Ricerca Spazio Stati Paolo Salvaneschi 24
Algoritmi di ricerca Stati del problema e nodi dell albero di ricerca A5 Ricerca Spazio Stati Paolo Salvaneschi 25 A5 Ricerca Spazio Stati Paolo Salvaneschi 25
Algoritmi di ricerca Definizioni Parent. Nodo che ha generato il nodo che si considera Children. Nodo generato dal nodo che si considera Fringe (confine, frontiera). Collezione dei nodi generati ma non ancora espansi Depth. Numero di passi lungo il percorso dal nodo iniziale Path Cost. costo g(x) dallo stato iniziale al nodo che si considera Implementazione dell albero di ricerca Coda A5 Ricerca Spazio Stati Paolo Salvaneschi 26 A5 Ricerca Spazio Stati Paolo Salvaneschi 26
Algoritmi di ricerca Nota: due costi diversi: Costo della ricerca Costo dell esecuzione A5 Ricerca Spazio Stati Paolo Salvaneschi 27 A5 Ricerca Spazio Stati Paolo Salvaneschi 27
Algoritmi di ricerca Nodi espansi Nodi generati ma non ancora espansi Nodi non ancora generati A5 Ricerca Spazio Stati Paolo Salvaneschi 28 A5 Ricerca Spazio Stati Paolo Salvaneschi 28
Algoritmi di ricerca A5 Ricerca Spazio Stati Paolo Salvaneschi 29 A5 Ricerca Spazio Stati Paolo Salvaneschi 29
Algoritmi di ricerca Fringe A5 Ricerca Spazio Stati Paolo Salvaneschi 30 A5 Ricerca Spazio Stati Paolo Salvaneschi 30
Algoritmi di ricerca GENERAL TREE SEARCH ALGORITHM Per ogni possibile effetto di ogni possibile azione della funzione successore (insieme di coppie azione-stato) del nodo corrente Costruisci la struttura di dati del nuovo nodo espanso Restituisci i nodi successori A5 Ricerca Spazio Stati Paolo Salvaneschi 31 A5 Ricerca Spazio Stati Paolo Salvaneschi 31
Algoritmi di ricerca GENERAL TREE SEARCH ALGORITHM I nodi sono conservati in memoria. Trovato il nodo goal, attraverso il puntatore al node genitore si ricostruisce il cammino Nota: la struttura di dati contiene: -- Il puntatore al nodo genitore -- L azione che ha portato al nodo dal nodo genitore (una volta trovato il goal sarà possibile ricostruire all indietro il percorso e la sequenza di azioni da eseguire) -- Il costo del percorso -- La profondità del nodo A5 Ricerca Spazio Stati Paolo Salvaneschi 32 A5 Ricerca Spazio Stati Paolo Salvaneschi 32
Algoritmi di ricerca Nota La struttura dati di fringe è una coda Non è detto in che modo i dati sono inseriti /estratti dalla coda Il tipo di coda (FIFO, LIFO) incide sull ordine della ricerca A5 Ricerca Spazio Stati Paolo Salvaneschi 33 A5 Ricerca Spazio Stati Paolo Salvaneschi 33
Algoritmi di ricerca Strategie di ricerca. Una strategia è definita dall ordine con cui si espandono i nodi (es. in larghezza o in profondità) Classi di strategie Non informate (cieche). Non ci sono informazioni aggiuntive relativamente agli stati rispetto a quelle fornite dalla definizione del problema Informate (euristiche). Ci sono informazioni aggiuntive (uno stato è più promettente di altri) A5 Ricerca Spazio Stati Paolo Salvaneschi 34 A5 Ricerca Spazio Stati Paolo Salvaneschi 34
Misure di prestazioni Misura delle prestazioni degli algoritmi di ricerca shallowest goal node A5 Ricerca Spazio Stati Paolo Salvaneschi 35 A5 Ricerca Spazio Stati Paolo Salvaneschi 35
Misure di prestazioni Esempio A5 Ricerca Spazio Stati Paolo Salvaneschi 36 A5 Ricerca Spazio Stati Paolo Salvaneschi 36
Misure di prestazioni Nota: Analisi di algoritmi e notazione O() Domanda: quali prestazioni ha un algoritmo in termini di risorse (tempo, memoria)? Primo modo: Benchmarking Specifico del contesto di esecuzione Di limitata estrapolazione A5 Ricerca Spazio Stati Paolo Salvaneschi 37 A5 Ricerca Spazio Stati Paolo Salvaneschi 37
Secondo modo Misure di prestazioni Analisi dell algoritmo indipendentemente dalla specifica implementazione T(n) = 2n+2 Numero totale T di passi dell algoritmo (N. righe di codice eseguite. Astrazione dell implementazione) Lunghezza n della sequenza in ingresso (Astrazione dell input) Difficoltà di condurre un analisi esatta di algoritmi complessi A5 Ricerca Spazio Stati Paolo Salvaneschi 38 A5 Ricerca Spazio Stati Paolo Salvaneschi 38
Misure di prestazioni Terzo modo (Indipendentemente dalla specifica implementazione) Analisi asintotica (Ordine) Importa come cresce l utilizzo delle risorse al crescere della dimensione dell ingresso Risorse Dimensione dell ingresso A5 Ricerca Spazio Stati Paolo Salvaneschi 39 A5 Ricerca Spazio Stati Paolo Salvaneschi 39
Misure di prestazioni Ordine; Notazione O (o grande) f(n) è O(g(n)) Date due costanti positive c ed n 0, una funzione f(n) appartiene all insieme O(g(n)), ovvero f(n) O(g(n)) se: c, n 0 > 0 n > n 0, 0 f(n) c g(n) A5 Ricerca Spazio Stati Paolo Salvaneschi 40 A5 Ricerca Spazio Stati Paolo Salvaneschi 40
Misure di prestazioni Significato: A partire da una certa dimensione n 0 del dato di ingresso, la funzione g(n) maggiora la funzione f(n). La g(n) rappresenta un limite superiore per la f(n). Il limite non è stretto. Se f(n) O(n 2 ) vuol dire che f(n), da un certo punto in poi, è maggiorata da n 2 : se ciò è vero, anche n 3 maggiorerà la f(n), e quindi f(n) appartiene anche a O(n 3 ), limite meno stretto del precedente Nota sull uso improprio L utilizzo corretto delle notazioni asintotiche è in espressioni del tipo f(n) O(g(n)) E prassi comune l utilizzo del tipo f(n) = O(n 2 ). A5 Ricerca Spazio Stati Paolo Salvaneschi 41 A5 Ricerca Spazio Stati Paolo Salvaneschi 41
Misure di prestazioni Significato: Il comportamento per tutti gli n < n 0 non è tenuto in conto, per cui potranno esserci dei valori di n < n 0 tali che f(n) > g(n), Esempio di funzione f(n) che appartiene all insieme O(g(n)) A5 Ricerca Spazio Stati Paolo Salvaneschi 42 A5 Ricerca Spazio Stati Paolo Salvaneschi 42
Misure di prestazioni Complessità lineare O(n) Es.: ricerca sequenziale n log n O(n log n) Es.: Algoritmi di ordinamento ottimi. n k, con k>=2 O(n k ) Es.: moltiplicazione di due 2 matrici Esponenziale O(k n ) Es.: un algoritmo che debba produrre tutte le possibili stringhe lunghe n di k simboli A5 Ricerca Spazio Stati Paolo Salvaneschi 43 A5 Ricerca Spazio Stati Paolo Salvaneschi 43
Misure di prestazioni Confronto tra complessità polinomiale e esponenziale Tempo di esecuzione di tre algoritmi su un calcolatore che esegue un operazione in 10-6 secondi n.operazioni n complessità O(g(n)) n 2 n 5 2 n s= secondi, m= minuti, c=secoli A5 Ricerca Spazio Stati Paolo Salvaneschi 44 A5 Ricerca Spazio Stati Paolo Salvaneschi 44
Misure di prestazioni Nota:Analisi di complessità dei problemi Domanda:dato un problema, quale è la classe di complessità degli algoritmi che lo risolvono (indipendentemente dallo specifico algoritmo)? Scopo: comprendere le prestazioni massime raggiungibili da un algoritmo applicato a un problema A5 Ricerca Spazio Stati Paolo Salvaneschi 45 A5 Ricerca Spazio Stati Paolo Salvaneschi 45
Misure di prestazioni P classe dei problemi polinomiali Possono essere risolti in un tempo O(n k ) per un qualche k facili. Attenzione: includono anche O(n 1000 ) NP classe dei problemi non deterministici polinomiali Esiste un algoritmo che ipotizza una soluzione e verifica in un tempo polinomiale se la soluzione è corretta. Se si hanno tanti processori o si è fortunati i problemi NP diventano P A5 Ricerca Spazio Stati Paolo Salvaneschi 46 A5 Ricerca Spazio Stati Paolo Salvaneschi 46
Misure di prestazioni NP è equivalente a P se non si ha un infinità di processori? Problema aperto NP- completo (NP-hard) sottoclasse della classe NP Dato un problema np-completo non esiste un algoritmo che risolve tutte le istanze del problema in un tempo polinomiale Specifiche istanze possono essere risolte efficientemente A5 Ricerca Spazio Stati Paolo Salvaneschi 47 A5 Ricerca Spazio Stati Paolo Salvaneschi 47
Misure di prestazioni co-npcomplemento di NP Per ogni problema di decisione in NP c è un corrispondente problema in co-np con le risposte si e no invertite co-np- completo idem A5 Ricerca Spazio Stati Paolo Salvaneschi 48 A5 Ricerca Spazio Stati Paolo Salvaneschi 48