Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata 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 non inform Paolo Salvaneschi 1
INDICE Algoritmi di ricerca non informati Breadth-first Uniform-cost Depth-first Depth-limited Iterative-Deepening Depth-first Search Bidirectional Search Il problema degli stati ripetuti Ricerca con informazioni parziali Esempio A5 Ricerca non inform Paolo Salvaneschi 2 A5 Ricerca non inform Paolo Salvaneschi 2
Algoritmi di ricerca non informati Strategie di ricerca non informata La ricerca utilizza solo le informazioni disponibili dalla definizione del problema Vari algoritmi di ricerca Breadth-first Uniform-cost Depth-first Depth-limited Iterative-Deepening Depth-first Search Bidirectional Search A5 Ricerca non inform Paolo Salvaneschi 3 A5 Ricerca non inform Paolo Salvaneschi 3
Breadth-first A5 Ricerca non inform Paolo Salvaneschi 4 A5 Ricerca non inform Paolo Salvaneschi 4
Breadth-first Nodi espansi Nodi generati ma non ancora espansi A Implementazione della ricerca con una coda FIFO (contiene i nodi da espandere - fringe) A5 Ricerca non inform Paolo Salvaneschi 5 A5 Ricerca non inform Paolo Salvaneschi 5
Breadth-first CB A5 Ricerca non inform Paolo Salvaneschi 6 A5 Ricerca non inform Paolo Salvaneschi 6
Breadth-first EDC A5 Ricerca non inform Paolo Salvaneschi 7 A5 Ricerca non inform Paolo Salvaneschi 7
Breadth-first Prossimo nodo da espandere GFED A5 Ricerca non inform Paolo Salvaneschi 8 A5 Ricerca non inform Paolo Salvaneschi 8
Breadth-first shallowest goal node A5 Ricerca non inform Paolo Salvaneschi 9 A5 Ricerca non inform Paolo Salvaneschi 9
Breadth-first Nota: Completezza Se il nodo obiettivo più superficiale nell albero di ricerca è a profondità d, alla fine la ricerca lo troverà dopo avere espanso tutti i nodi più superficiali (se il branching factor b è finito) A5 Ricerca non inform Paolo Salvaneschi 10 A5 Ricerca non inform Paolo Salvaneschi 10
Breadth-first Nota: Ottimalità In presenza di più nodi obiettivo nell albero di ricerca, il nodo obiettivo più superficiale non è necessariamente quello ottimo Lo è se costo = 1 per ogni step (o più precisamente se il path cost del nodo obiettivo è una funzione non decrescente della profondità del nodo obiettivo. (Ciò, come caso particolare, si ottiene quando tutte le azioni hanno lo stesso costo) A5 Ricerca non inform Paolo Salvaneschi 11 A5 Ricerca non inform Paolo Salvaneschi 11
Breadth-first NB Più nodi obiettivo nell albero di ricerca corrispondono allo stesso stato obiettivo nello spazio degli stati 10 B 30 Passo appenninico Stato iniziale: città A A E 10 10 D C 10 Stato obiettivo: città E Costo (km stradali) Path cost A5 Ricerca non inform Paolo Salvaneschi 12 A5 Ricerca non inform Paolo Salvaneschi 12 10 40 Il goal node più superficiale non è ottimo Path cost del nodo obiettivo B E 40 A 10 20 30 C D E Depth 1 Depth 2 Depth 3 funzione decrescente 30 1 2 3 Profondità del nodo obiettivo
Breadth-first Step cost costante 10 B 10 Stato iniziale: città A A E 10 10 D C 10 Stato obiettivo: città E Costo (km stradali) Path cost A5 Ricerca non inform Paolo Salvaneschi 13 A5 Ricerca non inform Paolo Salvaneschi 13 10 20 Il goal node più superficiale è ottimo Path cost del nodo obiettivo B E A 10 20 30 C D E 20 30 Depth 1 Depth 2 Depth 3 funzione non decrescente 1 2 3 Profondità del nodo obiettivo
Breadth-first Nota: Spazio e tempo Ogni nodo generato deve restare in memoria (o è parte del fringe o è un predecessore) La memoria e il tempo sono un problema La tecnica può essere utilizzata solo per problemi limitati Problema generale per tutti gli algoritmi di ricerca non informati A5 Ricerca non inform Paolo Salvaneschi 14 A5 Ricerca non inform Paolo Salvaneschi 14
Breadth-first Including the expanded nodes at the depth level. NB1 NB2 N.B. A5 Ricerca non inform Paolo Salvaneschi 15 A5 Ricerca non inform Paolo Salvaneschi 15
Uniform-cost A5 Ricerca non inform Paolo Salvaneschi 16 A5 Ricerca non inform Paolo Salvaneschi 16
Uniform-cost Nota: complete if step cost >= ε (piccola costante positiva) Path Cost. costo g(x) dallo stato iniziale al nodo che si considera la ricerca considera il costo totale del percorso eseguito + il costo del passo successivo 0 1 3 ε 1 3 1 2 1 2 Ricerca non completa loop Ricerca completa No loop (sommando ε si supererà 1) A5 Ricerca non inform Paolo Salvaneschi 17 A5 Ricerca non inform Paolo Salvaneschi 17
Depth-first A5 Ricerca non inform Paolo Salvaneschi 18 A5 Ricerca non inform Paolo Salvaneschi 18
Depth-first La ricerca procede al livello più profondo dell albero, fino a che i nodi non hanno successori Quando un nodo è espanso completamente, viene rimosso da fringe E la ricerca torna indietro al nodo successivo più superficiale che ha ancora successori non esplorati A5 Ricerca non inform Paolo Salvaneschi 19 A5 Ricerca non inform Paolo Salvaneschi 19
Depth-first A Implementazione della ricerca con uno stack (contiene i nodi da espandere - fringe) A5 Ricerca non inform Paolo Salvaneschi 20 A5 Ricerca non inform Paolo Salvaneschi 20
Depth-first B C A5 Ricerca non inform Paolo Salvaneschi 21 A5 Ricerca non inform Paolo Salvaneschi 21
Depth-first D E C A5 Ricerca non inform Paolo Salvaneschi 22 A5 Ricerca non inform Paolo Salvaneschi 22
Depth-first H I E C A5 Ricerca non inform Paolo Salvaneschi 23 A5 Ricerca non inform Paolo Salvaneschi 23
Depth-first I E C I nodi che sono stati espansi e non hanno discendenti in fringe possono essere eliminati dalla memoria A5 Ricerca non inform Paolo Salvaneschi 24 A5 Ricerca non inform Paolo Salvaneschi 24
Depth-first La ricerca torna indietro al nodo successivo più superficiale che ha ancora successori non esplorati E C I nodi che sono stati espansi e non hanno discendenti in fringe possono essere eliminati dalla memoria A5 Ricerca non inform Paolo Salvaneschi 25 A5 Ricerca non inform Paolo Salvaneschi 25
Depth-first A5 Ricerca non inform Paolo Salvaneschi 26 A5 Ricerca non inform Paolo Salvaneschi 26
Depth-first A5 Ricerca non inform Paolo Salvaneschi 27 A5 Ricerca non inform Paolo Salvaneschi 27
Depth-first A5 Ricerca non inform Paolo Salvaneschi 28 A5 Ricerca non inform Paolo Salvaneschi 28
Depth-first A5 Ricerca non inform Paolo Salvaneschi 29 A5 Ricerca non inform Paolo Salvaneschi 29
Depth-first A5 Ricerca non inform Paolo Salvaneschi 30 A5 Ricerca non inform Paolo Salvaneschi 30
Depth-first Goal node A5 Ricerca non inform Paolo Salvaneschi 31 A5 Ricerca non inform Paolo Salvaneschi 31
Depth-first shallowest goal node A5 Ricerca non inform Paolo Salvaneschi 32 A5 Ricerca non inform Paolo Salvaneschi 32
Depth-first Nota: completezza Rischio di esplorare in profondità (anche infinita) una parte dell albero, mentre la soluzione era più superficiale altrove Es. nell albero precedente se una soluzione è C, la parte sinistra dell albero è totalmente esplorata inutilmente A5 Ricerca non inform Paolo Salvaneschi 33 A5 Ricerca non inform Paolo Salvaneschi 33
Depth-first Nota: ottimalità Non ottimo Esplorando in profondità può trovare una soluzione (es. J) mentre esiste un altra soluzione (es. C) più superficiale che non è considerata A5 Ricerca non inform Paolo Salvaneschi 34 A5 Ricerca non inform Paolo Salvaneschi 34
Depth-first Nota: Spazio Deve restare in memoria il singolo percorso dalla radice alla foglia con i nodi parenti non ancora espansi Quando tutti i discendenti di un nodo sono stati esplorati il nodo può essere rimosso dalla memoria A5 Ricerca non inform Paolo Salvaneschi 35 A5 Ricerca non inform Paolo Salvaneschi 35
Depth-first Variante: backtracking search Non sono generati tutti i successori di un nodo ma uno solo alla volta Ogni nodo espanso parzialmente ricorda il nodo successivo da espandere Se, nelle espansioni derivanti dal nodo in considerazione non è raggiunto l obiettivo, si torna indietro e si espande il nodo successivo ricordato Risparmia memoria A5 Ricerca non inform Paolo Salvaneschi 36 A5 Ricerca non inform Paolo Salvaneschi 36
Depth-limited Introduce una causa ulteriore di incompletezza A5 Ricerca non inform Paolo Salvaneschi 37 A5 Ricerca non inform Paolo Salvaneschi 37
Depth-limited A5 Ricerca non inform Paolo Salvaneschi 38 A5 Ricerca non inform Paolo Salvaneschi 38
Iterative-Deepening Depth-first Search Esegue una ricerca depth-limited incrementando gradualmente la profondità A5 Ricerca non inform Paolo Salvaneschi 39 A5 Ricerca non inform Paolo Salvaneschi 39
Iterative-Deepening Depth-first Search A5 Ricerca non inform Paolo Salvaneschi 40 A5 Ricerca non inform Paolo Salvaneschi 40
Iterative-Deepening Depth-first Search Combina i vantaggi della ricerca breadth-first e depth-first Depth-first: requisiti modesti di memoria Come breadth-first: E completa (se branching factor finito) E ottima se path cost del nodo obiettivo è funzione non decrescente della profondità del nodo obiettivo (ad es costo = 1 per ogni step). In generale non è ottima Nota: l iterazione sui livelli consuma tempo ma le iterazioni all interno dei livelli alti usano poco tempo (se branching factor simile per tutti i livelli) A5 Ricerca non inform Paolo Salvaneschi 41 A5 Ricerca non inform Paolo Salvaneschi 41
Iterative-Deepening Depth-first Search In generale è il metodo preferito con Larghi spazi di ricerca Profondità della soluzione non nota A5 Ricerca non inform Paolo Salvaneschi 42 A5 Ricerca non inform Paolo Salvaneschi 42
Iterative-Deepening Depth-first Search A5 Ricerca non inform Paolo Salvaneschi 43 A5 Ricerca non inform Paolo Salvaneschi 43
Iterative-Deepening Depth-first Search A5 Ricerca non inform Paolo Salvaneschi 44 A5 Ricerca non inform Paolo Salvaneschi 44
Iterative-Deepening Depth-first Search shallowest goal node A5 Ricerca non inform Paolo Salvaneschi 45 A5 Ricerca non inform Paolo Salvaneschi 45
Bidirectional Search Bidirectional Search Sono eseguite due ricerche simultanee Una forward dallo stato iniziale L altra backward dall obiettivo Stop quando le due ricerche si trovano Problema: quando l obiettivo è dato come definizione implicita di un largo insieme di stati A5 Ricerca non inform Paolo Salvaneschi 46 A5 Ricerca non inform Paolo Salvaneschi 46
Sintesi degli algoritmi Algoritmi di ricerca A5 Ricerca non inform Paolo Salvaneschi 47 A5 Ricerca non inform Paolo Salvaneschi 47
Il problema degli stati ripetuti Se lo spazio degli stati è un albero ogni stato è incontrato ed espanso una sola volta durante la ricerca Se lo spazio è un grafo è possibile perdere tempo espandendo stati già espansi (problema degli stati ripetuti) Uno spazio finito di stati può diventare un albero di ricerca infinito A5 Ricerca non inform Paolo Salvaneschi 48 A5 Ricerca non inform Paolo Salvaneschi 48
Il problema degli stati ripetuti Il problema degli stati ripetuti si pone per tutti problemi applicativi in cui le azioni sono reversibili (es. trovare la strada su un grafo stradale) Soluzione:implementazione di un algoritmo di ricerca che mantiene in una struttura dati tutti i nodi espansi. Se il nodo corrente coincide con un nodo già espanso allora è scaricato A5 Ricerca non inform Paolo Salvaneschi 49 A5 Ricerca non inform Paolo Salvaneschi 49
Il problema degli stati ripetuti GENERAL GRAPH SEARCH ALGORITHM Se è la prima volta che lo stato relativo al nodo è considerato, allora inserisci lo stato in closed ed espandi il nodo, altrimenti non considerare il nodo Closed-list nodi già espansi Open-list (fringe) nodi da espandere A5 Ricerca non inform Paolo Salvaneschi 50 A5 Ricerca non inform Paolo Salvaneschi 50
Algoritmi di ricerca GENERAL TREE SEARCH ALGORITHM Confronta con GRAPH SEARCH 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 A5 Ricerca non inform Paolo Salvaneschi 51 A5 Ricerca non inform Paolo Salvaneschi 51
Il problema degli stati ripetuti Complessità nel tempo e nello spazio di GENERAL GRAPH SEARCH ALGORITHM Proporzionale alla dimensione dello spazio degli stati A5 Ricerca non inform Paolo Salvaneschi 52 A5 Ricerca non inform Paolo Salvaneschi 52
Il problema degli stati ripetuti Ottimalità di GENERAL GRAPH SEARCH ALGORITHM Quando più percorsi passano dallo stesso stato, l algoritmo considera il primo ed elimina i successivi. E se un successivo percorso è a costo minore del primo percorso? L algoritmo può perdere un percorso ottimo? Si dimostra che ciò non può accadere per uniform-cost search e breadth-first search con step cost costante, mentre può accadere per Iterative deepening search A5 Ricerca non inform Paolo Salvaneschi 53 A5 Ricerca non inform Paolo Salvaneschi 53
Ricerca con informazioni parziali Assunzione: ambiente completamente osservabile e deterministico. L agente conosce le conseguenze delle proprie azioni e conosce sempre in quale stato è Che succede se la conoscenza degli stati o delle azioni è incompleta? A5 Ricerca non inform Paolo Salvaneschi 54 A5 Ricerca non inform Paolo Salvaneschi 54
Ricerca con informazioni parziali Agente privo di sensori. Non conosce il suo stato iniziale Ricerca in uno spazio di stati in cui ogni stato è un insieme di stati reali in cui l agente può credere di essere (belief state) Lo stato obiettivo è un belif state i cui stati reali sono tutti obiettivi La ricerca avviene nello spazio dei belief states A5 Ricerca non inform Paolo Salvaneschi 55 A5 Ricerca non inform Paolo Salvaneschi 55
Ricerca con informazioni parziali L ambiente è parzialmente osservabile o il risultato delle azioni è incerto L agente ottiene nuove percezioni dopo ogni azione L agente non cerca prima ed esegue il percorso trovato successivamente, ma interfoglia ricerca ed esecuzione considerando ad ogni passo l eventuale nuova informazione Algoritmi di pianificazione in ambienti reali A5 Ricerca non inform Paolo Salvaneschi 56 A5 Ricerca non inform Paolo Salvaneschi 56
Esempio Gioco dell otto Partendo da una disposizione assegnata di tessere, raggiungere una disposizione finale attraverso una successione di mosse A5 Ricerca non inform Paolo Salvaneschi 57 A5 Ricerca non inform Paolo Salvaneschi 57
Esempio Stato: Configurazione di tessere Rappresentazione dello stato: tabella 3x3 contenente i numeri 1,2,..8; 0 rappresenta lo spazio vuoto A5 Ricerca non inform Paolo Salvaneschi 58 A5 Ricerca non inform Paolo Salvaneschi 58
Esempio Azioni : Scorrimento della posizione vuota Azioni possibili: A5 Ricerca non inform Paolo Salvaneschi 59 A5 Ricerca non inform Paolo Salvaneschi 59
Esempio Stato iniziale e stato finale A5 Ricerca non inform Paolo Salvaneschi 60 A5 Ricerca non inform Paolo Salvaneschi 60
Porzione dello spazio degli stati che contiene una soluzione Esempio A5 Ricerca non inform Paolo Salvaneschi 61 A5 Ricerca non inform Paolo Salvaneschi 61
Esempio Schema di ricerca di una soluzione S stato attuale Si stato iniziale Sf stato finale A5 Ricerca non inform Paolo Salvaneschi 62 A5 Ricerca non inform Paolo Salvaneschi 62
Esempio Ricerca in profondità Si applicano gli operatori (applicabili) nell ordine SINISTRA, ALTO, DESTRA, BASSO Si seleziona lo stato generato più di recente Si eliminano gli stati ripetuti SINISTRA non è applicabile Stati iniziale e finale A5 Ricerca non inform Paolo Salvaneschi 63 A5 Ricerca non inform Paolo Salvaneschi 63
Esempio Ricerca in ampiezza A5 Ricerca non inform Paolo Salvaneschi 64 A5 Ricerca non inform Paolo Salvaneschi 64
Esempio A5 Ricerca non inform Paolo Salvaneschi 65 A5 Ricerca non inform Paolo Salvaneschi 65
Esempio A5 Ricerca non inform Paolo Salvaneschi 66 A5 Ricerca non inform Paolo Salvaneschi 66