Ricerca euristica Maria Simi a.a. 2006/ /03/2017

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Strutture dati per insiemi disgiunti
Politecnico di Torino Tesi di Laurea
Algoritmi e Strutture Dati (Mod. B)
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
Algoritmi e Strutture Dati
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Lez. 3 - Gli Indici di VARIABILITA’
Alberi binari di ricerca
Teoria e Implementazione
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a
Scenario Archi di un grafo controllati da agenti egoistici
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Intelligenza Artificiale Risoluzione di Problemi
Intelligenza Artificiale
Elementi di Informatica di base
Strutture dati per insiemi disgiunti
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Passo 3: calcolo del costo minimo
Prof. Cerulli – Dott.ssa Gentili
Algoritmi e Strutture Dati
PARTE PRIMA: Reti Cablate
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
Prof. Cerulli – Dott.ssa Gentili
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Euristiche: algoritmi costruttivi e di ricerca locale
Automatismi Scacchistici
Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone
Algoritmi online Maria Simi, a.a. 2007/08 Problemi di esplorazione  Gli agenti per il problem-solving assumono:  ambienti deterministici e osservabili.
Ricerca euristica Maria Simi a.a. 2008/2009 Ricerca euristica  La ricerca esaustiva non è praticabile in problemi di complessità esponenziale  Noi.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 2) Agostino Poggi.
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non.
Intelligenza Artificiale Risoluzione di Problemi
Gli agenti per il problem solving Maria Simi a.a 2007/2008.
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria  tengono traccia solo dello stato corrente (non.
Ricerca euristica Maria Simi a.a. 2005/2006 Ricerca euristica  La ricerca esaustiva non è praticabile in problemi di complessità esponenziale  Noi.
I giochi con avversario Maria Simi a.a. 2008/2009.
Algoritmi e Strutture Dati
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Ricerca locale Maria Simi Assunzioni sui problemi  Gli algoritmi visti esplorano gli spazi di ricerca alla ricerca di un goal e restituiscono.
Agenti risolutori di problemi Risolvere i problemi mediante ricerca Maria Simi a.a 2013/2014.
Ricerca euristica Maria Simi a.a. 2013/2014 Ricerca euristica  La ricerca esaustiva non è praticabile in problemi di complessità esponenziale  Noi.
Algoritmi e Strutture Dati Luciano Gualà
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Transcript della presentazione:

Ricerca euristica Maria Simi a.a. 2006/2007 27/03/2017 M. Simi - infosearch

27/03/2017 Ricerca euristica La ricerca esaustiva non è praticabile in problemi di complessità esponenziale Noi usiamo conoscenza del problema ed esperienza per riconoscere i cammini più promettenti. La conoscenza euristica (dal greco “eureka”) aiuta a fare scelte “oculate” non evita la ricerca ma la riduce consente in genere di trovare una buona soluzione in tempi accettabili. sotto certe condizioni garantisce completezza e ottimalità Nota: negli scacchi 10120 configurazioni. M. Simi - infosearch

Funzioni di valutazione euristica 27/03/2017 Funzioni di valutazione euristica Conoscenza del problema data tramite una funzione di valutazione dello stato, detta funzione di valutazione euristica: f : n  R La funzione dipende solo dallo stato Anche se n e’il nodo dell’albero di ricerca la funzione f dipende solo dallo stato del nodo. M. Simi - infosearch

27/03/2017 Esempi di euristica La città più vicina (o la città più vicina alla mèta in linea d’aria) nel route-finding Il numero delle caselle fuori posto nel gioco dell'otto Il vantaggio in pezzi nella dama o negli scacchi M. Simi - infosearch

27/03/2017 Algoritmo Best-first Ad ogni passo si sceglie il nodo sulla frontiera per cui il valore della f è migliore (il nodo più promettente). Migliore significa 'minore' in caso di stima della distanza della soluzione Implementata da una coda con priorità che ordina in base al valore della funzione di valutazione euristica. Qui si assume che un valore minore vuol dire che lo stato è più desiderabile. M. Simi - infosearch

Strategia best-first: esempio 27/03/2017 Strategia best-first: esempio Passo 1 A Passo 4 B G H 6 5 3 Passo 2 B D 5 1 C Passo 3 D E F 4 6 Passo 5 E G I 2 1 Passo 7 G Passo 6 I La Best First non è in generale completa: c’è sempre il rischio di dirigersi su un cammino che sembra promettente ma non porta alla soluzione. La completezza e l’ottimalità dipendono dall’euristica. La Best First non è in generale completa, né ottimale M. Simi - infosearch

Ricerca greedy best-first 27/03/2017 Ricerca greedy best-first Si usa come euristica una stima della distanza della soluzione, da ora in poi h(n) [h≥0] Esempio: ricerca greedy per Route Finding h(n) = distanza in linea d’aria tra lo stato di n e la destinazione In generale l’algoritmo non è completo M. Simi - infosearch

Ricerca greedy: esempio 27/03/2017 Ricerca greedy: esempio Esempio 1: si tende a scegliere la strada che ci avvicina di più alla destinazione ma non è detto che la strada migliore passi di lì (il percorso rosso è quello scelto dall’algoritmo greedy e quello verde quello ottimale trascurato). Esempio2: Partendo da Iasi ci si dirige verso Neamt. Da qui, se non ci sono controlli sugli stati ripetuti si torna a Iasi, poi a Neamt, poi a Iasi … e non si trova la soluzione (l’algoritmo non è completo). Se invece ci fosse un controllo di non tornare sul padre si avrebbe una falsa partenza, ma poi l’algoritmo troverebbe la strada (non ottimalità). M. Simi - infosearch

Route finding con Greedy Best-First Search 27/03/2017 Route finding con Greedy Best-First Search M. Simi - infosearch

Ricerca greedy: esempio 27/03/2017 Esempio 1: si tende a scegliere la strada che ci avvicina di più alla destinazione ma non è detto che la strada migliore passi di lì (il percorso rosso è quello scelto dall’algoritmo greedy e quello verde quello ottimale trascurato). Esempio2: Partendo da Iasi ci si dirige verso Neamt. Da qui, se non ci sono controlli sugli stati ripetuti si torna a Iasi, poi a Neamt, poi a Iasi … e non si trova la soluzione (l’algoritmo non è completo). Se invece ci fosse un controllo di non tornare sul padre si avrebbe una falsa partenza, ma poi l’algoritmo troverebbe la strada (non ottimalità). Da Arad a Bucarest … Greedy: Arad, Sibiu, Fagaras, Bucharest (450) Ottimo: Arad, Sibiu, Rimnicu, Pitesti, Bucarest (418) Da Iasi a Fagaras: … falsa partenza M. Simi - infosearch

Algoritmo A: definizione 27/03/2017 Algoritmo A: definizione Si può dire qualcosa di f per avere garanzie di completezza e ottimalità? Un algoritmo A è un algoritmo Best First con una funzione di valutazione dello stato del tipo: f(n) = g(n) + h(n), con h(n)  0 e h(goal)=0 g(n) è il costo del cammino percorso per raggiungere n h una stima del costo per raggiungere da n un nodo goal. Casi particolari dell’algoritmo A: Se h(n) = 0 [f(n) = g(n)] si ha Ricerca Uniforme Se g(n) = 0 [f(n) = h(n)] si ha Greedy Best First Studiamo adesso funzioni euristiche con una struttura particolare f(n) = g(n) + h(n) Nota: il significato di g e di h è fisso. La funzione g come al solito è determinata dal costo delle azioni possibili. g(n) può essere anche zero ma in generale è positivo. La funzione h deve essere una stima di distanza e quindi misurare quanto uno stato dista dallo stato goal. Per questo deve essere h(n)  0 e h(goal)=0. Se queste condizioni non sono verificate non siamo in presenza di un algoritmo A. M. Simi - infosearch

Algoritmo A: esempio Esempio nel gioco dell’otto 27/03/2017 Algoritmo A: esempio Esempio nel gioco dell’otto f(n) = #mosse + #caselle-fuori-posto f(Start) = 0 + 7 Dopo ,,, f = 4 + 7 M. Simi - infosearch

Completezza dell’algoritmo A 27/03/2017 Completezza dell’algoritmo A Teorema: L’algoritmo A con la condizione g(n)  d(n) ·  (  0 costo minimo arco) è completo. Nota: la condizione ci garantisce che non si verifichino situazioni strane del tipo 0.9 0.09 0.009 e che il costo lungo un cammino non cresca “abbastanza”. La funzione d(n) ci da la profondità del nodo n. La condizione equivale a dire che il costo di ogni azione è almeno . M. Simi - infosearch

Completezza di A: dimostrazione 27/03/2017 Completezza di A: dimostrazione Sia [n0 n1 n2 … n’… nk=goal] un cammino soluzione. Sia n’ un nodo della frontiera su un cammino soluzione: n’ prima o poi sarà espanso. Infatti esistono solo un numero finito di nodi x che possono essere aggiunti alla frontiera con f(x)  f(n’); Quindi, se non si trova una soluzione prima, n’ verrà espanso e i suoi successori aggiunti alla frontiera. Tra questi anche il suo successore sul cammino soluzione. Il ragionamento si può ripetere fino a dimostrare che anche goal sarà espanso Sia [n0 n1 n2 … n’… nk=goal] un cammino soluzione. La frontiera contiene sempre almeno un nodo su un cammino soluzione: sia n’. Facciamo vedere che n’ prima o poi sarà espanso a meno che non si trovi una soluzione prima. Non può succedere che n’ venga trascurato all’infinito perché esistono solo un numero finito di nodi x che possono essere aggiunti alla frontiera con f(x)  f(n’) (qui è importante la condizione postulata sul costo degli archi, che fa sì che non esistano infiniti nodi con valutazione minore di f(n’) ). n’ verrà evetualmente espanso, se non si trova una soluzione prima, e i suoi successori aggiunti alla frontiera. Tra questi anche il suo successore sul cammino soluzione. Il ragionamento si può ripetere fino a dimostrare che anche goal sarà espanso e quindi la soluzione trovata. M. Simi - infosearch

Algoritmo A*: la stima ideale 27/03/2017 Algoritmo A*: la stima ideale Funzione di valutazione ideale (oracolo): f*(n) = g*(n) + h*(n) g*(n) costo del cammino minimo da radice a n h*(n) costo del cammino minimo da n a goal f*(n) costo del cammino minimo da radice a goal, attraverso n Normalmente: g(n)  g*(n) e h(n) è una stima di h*(n) Normalmente g(n)  g*(n) perché il nodo n può essere raggiunto con il cammino migliore o con un cammino più tortuoso; h(n) è una stima di h*(n) e può in genere essere: Una sottostima (quando h(n)  h*(n) ): si pensa che la soluzione sia più vicina di quanto è in realtà; Una sovrastima: h(n) > h*(n): si pensa che la soluzione sia più distante di quanto è in realtà M. Simi - infosearch

Algoritmo A*: definizione 27/03/2017 Algoritmo A*: definizione Definizione: euristica ammissibile n . h(n)  h*(n) h è una sottostima Es. l’euristica della distanza in linea d’aria Definizione: Algoritmo A* Un algoritmo A in cui h è una funzione euristica ammissibile. Teorema: gli algoritmi A* sono ottimali. Corollario: BF e UC sono ottimali (h(n)=0) M. Simi - infosearch

27/03/2017 Route finding con A* M. Simi - infosearch

27/03/2017 Osservazioni su A* Una sottostima può farci compiere del lavoro inutile, però non ci fa perdere il cammino migliore La componente g fa sì che si abbandonino cammini che vanno troppo in profondità Una funzione che qualche volta sovrastima può farci perdere la soluzione ottimale M. Simi - infosearch

f(n) = g(n) + h(n), con h(n)  0 e h(goal)=0 27/03/2017 Riassunto Gli algoritmi Best First fanno uso di una f. di valutazione dello stato per guidare la ricerca Algoritmi A (completi) f(n) = g(n) + h(n), con h(n)  0 e h(goal)=0 Algoritmi A* (ottimali) e inoltre n . h(n)  h*(n) h è una sottostima M. Simi - infosearch

Ottimalità di A*: dimostrazione (tree-search) 27/03/2017 Ottimalità di A*: dimostrazione (tree-search) Sia G un nodo goal ottimale e G2 un nodo goal subottimale: g(G2) > g(G) = f*(s) con s nodo iniziale e che, per assurdo, G2 venga selezionato per l'espansione prima di G Ad ogni passo, sulla frontiera c’è almeno un nodo su un cammino minimo, anche quando viene selezionato G2 [s … n’ … G] anche quando viene selezionato G2: sia questo n’. c’è almeno un nodo su un cammino minimo ... purché non si buttino mai via nodi perché corrispondono a stati già incontrati come in Graph Search. M. Simi - infosearch

Ottimalità di A*: dimostrazione 27/03/2017 Ottimalità di A*: dimostrazione Quindi f(G2)  f(n’) altrimenti verrebbe preferito n’ f(n’)  f*(n’) = f*(s) la h è una sottostima di h* f(G2)  f*(s) transitività della diseguaglianza   contro l’ ipotesi che G2 non sia ottimale Nel caso di GraphSearch: o usiamo una versione che riaggiusta i costi o serve una proprietà più forte ... M. Simi - infosearch

Euristica consistente o monotòna 27/03/2017 Euristica consistente o monotòna Definizione: euristica monotòna o localmente consistente. Sia n’=succ(n) h(n)  costo_arco(n, n’) + h(n’) In questo caso … Se n’=succ(n) allora f(n)  f(n’) la f aumenta sempre lungo i cammini. n n' M. Simi - infosearch

Proprietà delle euristiche monotòne 27/03/2017 Proprietà delle euristiche monotòne Un’euristica monotona è ammissibile. Esistono euristiche ammissibili che non sono monotone, ma sono rare. Le euristiche monotone garantiscono che la soluzione meno costosa viene trovata prima e quindi sono ottimali anche nel caso di GraphSearch. M. Simi - infosearch

Un euristica monotona è ammissibile 27/03/2017 Un euristica monotona è ammissibile Teorema: un’euristica monotona è ammissibile Sia [n n1 n2… nk=goal] un cammino minimo da n a goal h(n)  h(n1)  g(n1)  g(n) h(n1)  h(n2)  g(n2)  g(n1) … h(nk-1)  h(goal)  g(goal)  g(nk-1) [h(goal) = 0]  h(n)  g(goal)  g(n) = h*(n) [g(n) = 0] Le euristiche monotone garantiscono una ottimalità locale e cioè che quando un nodo viene scelto per l’espansione g(n)=g*(n), e quindi sono ottimali. M. Simi - infosearch

27/03/2017 Bilancio su A* A* è completo: discende dalla completezza di A (A* è un algoritmo A particolare) A* con euristica monotona è ottimale A* è ottimamente efficiente: a parità di euristica nessun altro algoritmo espande meno nodi (senza rinunciare a ottimalità) Qual è il problema? ... ancora l'occupazione di memoria Discende dalla completezza di A: un algoritmo A* è anche un algoritmo A. M. Simi - infosearch

Come migliorare l’occupazione di memoria 27/03/2017 Come migliorare l’occupazione di memoria Beam search A* con approfondimento iterativo (IDA*) Ricerca best-first ricorsiva (RBFS) A* con memoria limitata (MA*) in versione semplice (SMA*) M. Simi - infosearch

27/03/2017 Beam search Nel Best First viene tenuta tutta la frontiera; se l’occupazione di memoria è eccessiva si può ricorrere ad una variante: la Beam search. La Beam Search tiene ad ogni passo solo i k nodi più promettenti, dove k è detto l’ampiezza del raggio. La Beam Search non è completa. Trascurando i nodi che non sembrano promettenti si rischia di non trovare la soluzione. M. Simi - infosearch

A* con approfondimento iterativo (IDA*) 27/03/2017 A* con approfondimento iterativo (IDA*) IDA* combina A* con ID: ad ogni iterazione ricerca in profondità con un limite dato dal valore della funzione f (e non dalla profondità) il limite viene aumentato ad ogni iterazione, fino a trovare la soluzione. M. Simi - infosearch

Esempio Iteraz. 4 (0+2) l=4 Iteraz. 2 (0+2) l=2 Iteraz. 1 f=(0+2) l=1 27/03/2017 Esempio Iteraz. 4 (0+2) l=4 (1+1) (1+2) (2+1) (2+1) (3+1) (3+1) (4+1) (4+0) soluzione! Iteraz. 2 (0+2) l=2 (1+1) (1+2) (2+1) Iteraz. 1 f=(0+2) l=1 Iteraz. 3 (0+2) l=3 (1+1) (1+2) (2+1) (2+1) (3+1) (3+1) Nel caso che i costi delle azioni siano variabili, si potrebbe ad ogni passo porre il limite al valore minimo delle f scartate (che superavano il limite) all'iterazione precedente. Cruciale la scelta dell'incremento che potrebbe far perdere l’ottimalità M. Simi - infosearch

Analisi IDA* IDA* completo e ottimale Occupazione di memoria O(bd). 27/03/2017 Analisi IDA* IDA* completo e ottimale Se le mosse hanno tutte costo 1 (caso tipico) se l'incremento di f è   (minimo costo degli archi) se il nuovo limite = min. valore di f escluso all'iteraz. prec. Occupazione di memoria O(bd). M. Simi - infosearch

27/03/2017 Best-first ricorsivo Simile a DF ricorsivo: cerca di usare meno memoria, facendo del lavoro in più Tiene traccia ad ogni livello del migliore percorso alternativo Invece di fare backtracking in caso di fallimento interrompe l’esplorazione quando trova un nodo meno promettente (secondo f) Nel tornare indietro si ricorda il miglior nodo che ha trovato nel sottoalbero, per poterci eventualmente tornare M. Simi - infosearch

Best-first ricorsivo: esempio 27/03/2017 Best-first ricorsivo: esempio Al primo livello si espande Sibiu, il nodo più promettente, ma ci si ricorda il nodo migliore tra quelli trascurati (Timisoara con 447). Tra i successori di Sibiu il migliore è Rimnicu Vilcea con 413. Prima di espanderlo ci si ricorda che l'alternativa migliore è il nodo Fagaras con 415 confrontando i valori dei fratelli e del nodo padre. Tra i successori di questo il migliore è Pitesti (417) quindi si fa backtracking perché c'è di meglio. Nel tornare indetro si annota Rimnicu Vilcea con il valore migliore trovato tra i successori, 417. Si passa ad espandere Fagaras, ricordando che l'alternativa migliore è 417. Tra i successori di Fagaras nessuno è meglio di 417. Così si torna ad espandere Rimnicu Vilcea, poi Pitesti, poi Bucarest. M. Simi - infosearch

Best-first ricorsivo 27/03/2017 RBFS viene all'inizio chiamata con il problema, il nodo costruito con lo stato iniziale e il limite che è all'inizio un valore molto alto (indicato con infinito). Si espande il nodo e si generano i successori, di cui si calcola il valore f. Tra questi si sceglie il nodo con f minore, best; se questo valore è > del limite si fa backtracking, restituendo failure e il valore f[best]. Si richiama RBFS con best e il minore tra f-limit e la f alternativa. Se il risultato è diverso da failure si restituisce il risultato altrimenti, avendo aggiornato f[best], si ripete la scelta del nodo con f minore ... M. Simi - infosearch

A* con memoria limitata (versione semplice) 27/03/2017 A* con memoria limitata (versione semplice) L'idea è quella di utilizzare al meglio la memoria disponibile SMA* procede come A* fino ad esaurimento della memoria disponibile A questo punto “dimentica” il nodo peggiore, dopo avere aggiornato il valore del padre. A parità di f si sceglie il nodo migliore più recente e si dimentica il nodo peggiore più vecchio. Ottimale se il cammino soluzione sta in memoria. M. Simi - infosearch

27/03/2017 Funzioni euristiche A parità di ammissibilità, una euristica può essere più efficiente di un’altra nel trovare il cammino soluzione migliore (visitare meno nodi): dipende da quanto informata è o dal grado di informazione posseduto. h(n)=0 minimo di informazione (BF o UF) h*(n) massimo di informazione (oracolo) In generale, per le euristiche ammissibili: 0  h(n)  h*(n) M. Simi - infosearch

Confronto di euristiche ammissibili 27/03/2017 Confronto di euristiche ammissibili Confronto di euristiche ammissibili h2 è più informata di h1 se n . h1(n)  h2 (n) Es. due euristiche per il gioco dell’8 h1: conta il numero di caselle fuori posto h2: somma delle distanze delle caselle fuori posto (Manhattan distance) Se h2 è più informata di h1 si dice anche che h2 domina h1. h1 = 7 h2= 4+2+2+2+ 2+4+3=19 M. Simi - infosearch

Più informata, più efficiente 27/03/2017 Più informata, più efficiente Se h1  h2, A* con h2 è più efficiente che con h1 Teorema: Se h1  h2, i nodi visitati da A* con h2 sono un sottoinsieme di quelli visitati da A* con h1. TRADE-OFF: un euristica più informata riduce lo spazio di ricerca, ma è più costosa da calcolare M. Simi - infosearch

Costo ricerca vs costo euristica 27/03/2017 Costo ricerca vs costo euristica [figura da Nilsson 1980] M. Simi - infosearch

Misura del potere euristico 27/03/2017 Misura del potere euristico Come valutare gli algoritmi di ricerca euristica ... Fattore di diramazione effettivo b* N: numero di nodi espansi d: profondità della soluzione b* è la soluzione dell’equazione N=b*+(b*)2+ … + (b*)d Sperimentalmente una buona euristica ha un b* abbastanza vicino a 1 ( 1.5) Esempio: d=5; N= 52 b*= 1.91 M. Simi - infosearch

Esempio: dal gioco dell’otto 27/03/2017 Esempio: dal gioco dell’otto d IDS A*(h1) A*(h2) 2 4 6 8 10 12 14 … 10 (2,43) 112 (2,87) 680 (2,73) 6384 (2,80) 47127 (2,79) 3644035 (2,78) ... 6 (1,79) 13 (1,48) 20 (1,34) 39 (1,33) 93 (1,38) 227 (1,42) 539 (1,44) 12 (1,45) 18 (1,30) 25 (1,24) 39 (1,22) 73 (1,24) 113 (1,23) I dati sono mediati, per ogni d, su 100 istanze del problema [AIMA] Nodi generati e fattore di diramazione effettivo M. Simi - infosearch

Capacità di esplorazione 27/03/2017 Capacità di esplorazione Con b=2 d=6 N=100 d=12 N=10.000 ma con b=1.5 d=12 N=100 d=24 N=10.000 … migliorando di poco l’euristica si riesce, a parità di nodi espansi, a raggiungere una profondità doppia! M. Simi - infosearch

La lezione da imparare … 27/03/2017 La lezione da imparare … Tutti i problemi dell’IA (o quasi) sono di complessità esponenziale … ma c’è esponenziale e esponenziale! L’euristica può migliorare di molto la capacità di esplorazione dello spazio degli stati rispetto alla ricerca cieca Migliorando anche di poco l’euristica si riesce ad esplorare uno spazio molto più grande. M. Simi - infosearch

Come si inventa un’euristica? - 1 27/03/2017 Come si inventa un’euristica? - 1 Alcune tecniche consigliate: 1.  Rilassamento del problema: pensare a un problema con meno vincoli Es. h1 e h2 nel gioco dell’8 sono calcoli della distanza esatta in versioni semplificate del puzzle: h1 gioco con scambi a piacimento tra caselle; h2 gioco con spostamenti a piacimento anche su caselle occupate M. Simi - infosearch

Come si inventa un’euristica? - 2 27/03/2017 Come si inventa un’euristica? - 2 2. Massimizzazione di euristiche Se si hanno una serie di euristiche h1, h2, … hk senza dominanza tra queste allora conviene massimizzare h(n)=max(h1(n), h2(n), …, hk(n)) Se le hi sono ammissibili anche la h lo è M. Simi - infosearch

Come si inventa un’euristica? - 3 27/03/2017 Come si inventa un’euristica? - 3 3. Apprendere dall'esperienza Far girare il programma, raccogliere dati: coppie <stato, h*> Usare i dati per apprendere a predire la h con algoritmi di apprendimento induttivo Gli algoritmi di apprendimento si concentrano su caratteristiche salienti dello stato (feature) M. Simi - infosearch

Come si inventa un’euristica? - 4 27/03/2017 Come si inventa un’euristica? - 4 3. Combinazione di euristiche Quando diverse caratteristiche influenzano la bontà di uno stato, si può usare una combinazione lineare h(n)= c1 h1(n) + c2 h2(n) + … + ck hk(n) Il peso dei coefficienti può essere aggiustato con l’esperienza, automaticamente o meno. Es. scacchi: h(n)= c1 vant-pezzi + c2 pezzi-attacc. + c3 regina + … M. Simi - infosearch