Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a. 2000-2001 Strategia di ricerca Criteri di valutazione della strategia : • Completezza (se esiste una soluzione viene trovata sempre) • Complessità temporale • Complessità spaziale • Ottimalità Strategie di ricerca 1. Ricerca non informata ( o cieca) Non si ha alcuna informazione sul numero di passi o sul costo di cammino dallo stato attuale all’obiettivo 1. Ricerca informata ( euristica) Si hanno informazioni di preferenze tra gli stati Ricerca informata più efficace di quella non informata Ricerca in ampiezza • Tutti i nodi di profondità d nell’albero si espandono prima dei nodi di profondità d+1 • Strategia sistematica (esaminati prima i cammini di lunghezza i, poi i+1,poi i+2,…) Ricerca in ampiezza Se esiste una sola soluzione, la ricerca in ampiezza la trova Se esistono più soluzioni, viene trovato per prima lo stato obiettivo più alto (quindi a costo minimo) Valutazione: ricerca completa ed ottimale Ricerca in ampiezza Se fattore di ramificazione = b al livello i si avrà ramificazione = b i Se la soluzione si trova dopo un cammino di lunghezza d, il numero massimo (soluzione peggiore) di nodi espansi è 1 b b b ... (b 1) O(b ) 2 3 d d (l’obiettivo non viene espanso) Ricerca in ampiezza Complessità spaziale coincide con complessità temporale perché tutti i nodi foglia dell’albero di ricerca devono essere mantenuti in memoria contemporaneamente Ricerca a costo uniforme La ricerca a costo uniforme trova gli obiettivi più superficiali. Modifica la strategia in ampiezza espandendo sempre il nodo sul confine con il costo più basso (misurato con il costo del cammino g(n)), invece del nodo di profondità minima La prima soluzione trovata è quella più conveniente Ricerca a costo uniforme • Si trova sempre la soluzione più economica se si verifica che il costo del cammino non decresce mai quando lo percorriamo. g ( Successore (n)) g (n) • Il costo del cammino di un nodo è somma dei costi degli operatori che determinano il cammino Ricerca a costo uniforme Ricerca in profondità • La ricerca in profondità espande sempre il primo dei nodi al livello più profondo dell’albero. • La ricerca torna indietro ed espande nodi a livelli più superficiali solo quando arriva ad un nodo foglia non obiettivo. • La funzione di ricerca userà un meccanismo di inserimento in un pila Ricerca in profondità Ricerca in profondità • Occupazione di memoria modesta (memorizza un solo cammino dalla radice al nodo foglia, oltre ai nodi fratelli di ciascun nodo del cammino che rimangono non espansi) • Con uno spazio degli stati con fattore di ramificazione b e profondità massima m, la ricerca in profondità memorizza bm nodi • Complessità temporale della ricerca in profondità è O(b m ) • La ricerca in profondità può rimanere bloccata in un cammino sbagliato di lunghezza infinita. • Valutazione: né completa, né ottimale Ricerca bidirezionale La ricerca bidirezionale ricerca contemporaneamente sia in avanti, dallo stato iniziale, sia all’indietro, dall’obiettivo, fermandosi quando le due ricerche si incontrano. Con fattore di ramificazione pari a b in entrambe le direzioni e soluzione a profondità d, allora la soluzione verrà trovata in O(2b d / 2 ) O(b d / 2 ) Ricerca bidirezionale Ricerca bidirezionale • Problemi: • Definire predecessori di un nodo n (quei nodi che abbiano n come successore) • Gli operatori in genere non sono reversibili, per cui il calcolo dei predecessori in genere risulta complesso. • Cosa succede quando si hanno più stati obiettivo? Ripetizioni di stati • Si possono semplificare alberi di ricerca infiniti dovuti a ripetizioni di stati, generando solo la porzione di albero che ricopre il grafo dello spazio degli stati. • Evitare riduzioni di stati può generare una riduzione esponenziale del costo di ricerca. Ripetizioni di stati Suggerimenti: • Non ritornare allo stato da cui si proviene • Non creare cammini che abbiano cicli • Non generare alcuno stato già generato prima