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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 2 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 3 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 4 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 5 5 Risolvere problemi con una ricerca • Schema di funzionamento dell’agente (dato uno stato iniziale restituisce una singola azione) A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 6 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 7 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 8 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 9 9 Modellazione del problema Esempio A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 10 10 Modellazione del problema Esempio A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 11 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 12 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 13 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 14 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 15 15 Modellazione del problema • Modellazione degli stati e degli operatori A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 16 16 Modellazione del problema • Gli algoritmi di ricerca sono stati oggetto di ampio studio • La modellazione è un processo creativo A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 17 17 Applicazioni Esempio NB A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 18 18 Applicazioni Esempio j j j A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 19 19 Applicazioni • Il problema del commesso viaggiatore: Esempio – 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 A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 20 20 Applicazioni • Pianificazione dei movimenti delle perforatrici Esempio automatiche di circuiti su schede • VLSI layout – Posizionamento dei componenti e delle piste su un circuito • Navigazione di un robot A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 21 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 22 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 23 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 24 24 Algoritmi di ricerca • Stati del problema e nodi dell’albero di ricerca A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 25 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 26 26 Algoritmi di ricerca • Nota: due costi diversi: – Costo della ricerca – Costo dell’esecuzione A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 27 27 Algoritmi di ricerca Nodi espansi Nodi generati ma non ancora espansi Nodi non ancora generati A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 28 28 Algoritmi di ricerca A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 29 29 Algoritmi di ricerca Fringe A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 30 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 31 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 A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati 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 Paolo Salvaneschi Paolo Salvaneschi 32 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 33 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 34 34 Misure di prestazioni • Misura delle prestazioni degli algoritmi di ricerca shallowest goal node A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 35 35 Misure di prestazioni Esempio A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 36 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 37 37 Misure di prestazioni • Secondo modo • 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 38 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 39 39 Misure di prestazioni • Ordine; Notazione O (o grande) f(n) è O(g(n)) Date due costanti positive c ed n0, una funzione f(n) appartiene all’insieme O(g(n)), ovvero f(n) ∈O(g(n)) se: ∃ c, n0 > 0 | ∀ n > n0, 0 ≤ f(n) ≤ c g(n) A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 40 40 Misure di prestazioni •Significato: A partire da una certa dimensione n0 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 41 41 Misure di prestazioni •Significato: Il comportamento per tutti gli n < n0 non è tenuto in conto, per cui potranno esserci dei valori di n < n0 tali che f(n) > g(n), Esempio di funzione f(n) che appartiene all’insieme O(g(n)) A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 42 42 Misure di prestazioni • Complessità – lineare O(n) Es.: ricerca sequenziale – n log n O(n log n) Es.: Algoritmi di ordinamento ottimi. – nk , con k>=2 O(nk) Es.: moltiplicazione di due 2 matrici – Esponenziale O(kn) Es.: un algoritmo che debba produrre tutte le possibili stringhe lunghe n di k simboli A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 43 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 n2 complessità O(g(n)) n5 2n s= secondi, m= minuti, c=secoli A5 Ricerca Spazio Stati A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 44 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 45 45 Misure di prestazioni • P classe dei problemi polinomiali – Possono essere risolti in un tempo O(nk) per un qualche k – “facili”. Attenzione: includono anche O(n1000) • 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 46 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 47 47 Misure di prestazioni • co-NP complemento 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 A5 Ricerca Spazio Stati Paolo Salvaneschi Paolo Salvaneschi 48 48