La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Ricerca euristica Maria Simi a.a. 2006/2007 Ricerca euristica La ricerca esaustiva non è praticabile in problemi di complessità esponenziale Noi usiamo.

Presentazioni simili


Presentazione sul tema: "Ricerca euristica Maria Simi a.a. 2006/2007 Ricerca euristica La ricerca esaustiva non è praticabile in problemi di complessità esponenziale Noi usiamo."— Transcript della presentazione:

1

2 Ricerca euristica Maria Simi a.a. 2006/2007

3 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à

4 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

5 Esempi di euristica La città più vicina (o la città più vicina alla mèta in linea daria) nel route-finding Il numero delle caselle fuori posto nel gioco dell'otto Il vantaggio in pezzi nella dama o negli scacchi

6 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.

7 Strategia best-first: esempio La Best First non è in generale completa, né ottimale Passo 1 A 3 Passo 2 BD 5 1 C Passo 3 D EF 4 6 Passo 4 B GH 6 5 Passo 5 E GI 2 1 Passo 6 I Passo 7 G

8 Ricerca greedy best-first Si usa come euristica una stima della distanza della soluzione, da ora in poi h(n) [h0] Esempio: ricerca greedy per Route Finding h(n) = distanza in linea daria tra lo stato di n e la destinazione In generale lalgoritmo non è completo

9 Ricerca greedy: esempio

10 Route finding con Greedy Best-First Search

11 Ricerca greedy: esempio Da Arad a Bucarest … Greedy: Arad, Sibiu, Fagaras, Bucharest (450) Ottimo: Arad, Sibiu, Rimnicu, Pitesti, Bucarest (418) Da Iasi a Fagaras: … falsa partenza

12 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 dellalgoritmo 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

13 Algoritmo A: esempio Esempio nel gioco dellotto f(n) = #mosse + #caselle-fuori-posto f(Start) = 0 + 7Dopo,,, f = 4 + 7

14 Completezza dellalgoritmo A Teorema: Lalgoritmo 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 e che il costo lungo un cammino non cresca abbastanza.

15 Completezza di A: dimostrazione Sia [n 0 n 1 n 2 … n… n k =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

16 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) eh(n) è una stima di h*(n)

17 Algoritmo A*: definizione Definizione: euristica ammissibile n. h(n) h*(n)h è una sottostima Es. leuristica della distanza in linea daria 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)

18 Route finding con A*

19 Osservazioni su A* 1. Una sottostima può farci compiere del lavoro inutile, però non ci fa perdere il cammino migliore 2. La componente g fa sì che si abbandonino cammini che vanno troppo in profondità 3. Una funzione che qualche volta sovrastima può farci perdere la soluzione ottimale

20 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) f(n) = g(n) + h(n), con h(n) 0 e h(goal)=0 e inoltre n. h(n) h*(n)h è una sottostima

21 Ottimalità di A*: dimostrazione (tree-search) Sia G un nodo goal ottimale e G 2 un nodo goal subottimale: g(G 2 ) > g(G) = f*(s) con s nodo iniziale e che, per assurdo, G 2 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 G 2 [s … n … G] anche quando viene selezionato G 2 : sia questo n.

22 Ottimalità di A*: dimostrazione Quindi f(G 2 ) f(n) altrimenti verrebbe preferito n f(n) f*(n) = f*(s) la h è una sottostima di h* f(G 2 ) f*(s)transitività della diseguaglianza contro l ipotesi che G 2 non sia ottimale Nel caso di GraphSearch: o usiamo una versione che riaggiusta i costi o serve una proprietà più forte...

23 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'

24 Proprietà delle euristiche monotòne Uneuristica 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.

25 Un euristica monotona è ammissibile Teorema: uneuristica monotona è ammissibile Sia [n n 1 n 2 … n k =goal] un cammino minimo da n a goal h(n) h(n 1 ) g(n 1 ) g(n) h(n 1 ) h(n 2 ) g(n 2 ) g(n 1 ) … h(n k-1 ) h(goal) g(goal) g(n k-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 lespansione g(n)=g*(n), e quindi sono ottimali.

26 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

27 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*)

28 Beam search Nel Best First viene tenuta tutta la frontiera; se loccupazione 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 lampiezza del raggio. La Beam Search non è completa.

29 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.

30 Esempio Iteraz. 1f=(0+2)l=1 Iteraz. 2(0+2)l=2 (1+1)(1+2) (2+1) Iteraz. 3(0+2)l=3 (1+1)(1+2)(2+1)(3+1) Iteraz. 4(0+2)l=4 (1+1)(1+2)(2+1)(3+1) (4+1)(4+0) soluzione! Cruciale la scelta dell'incremento che potrebbe far perdere lottimalità

31 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).

32 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 lesplorazione 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

33 Best-first ricorsivo: esempio

34 Best-first ricorsivo

35 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.

36 Funzioni euristiche A parità di ammissibilità, una euristica può essere più efficiente di unaltra 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)

37 Confronto di euristiche ammissibili h 2 è più informata di h 1 se n. h 1 (n) h 2 (n) Es. due euristiche per il gioco dell8 h 1 :conta il numero di caselle fuori posto h 2 : somma delle distanze delle caselle fuori posto (Manhattan distance) h1 = 7 h2= =19

38 Più informata, più efficiente Se h 1 h 2, A* con h 2 è più efficiente che con h 1 Teorema: Se h 1 h 2, i nodi visitati da A* con h 2 sono un sottoinsieme di quelli visitati da A* con h 1. TRADE-OFF: un euristica più informata riduce lo spazio di ricerca, ma è più costosa da calcolare

39 Costo ricerca vs costo euristica [figura da Nilsson 1980]

40 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 dellequazione 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

41 Esempio: dal gioco dellotto dIDSA*(h1)A*(h2) … 10 (2,43) 112 (2,87) 680 (2,73) 6384 (2,80) (2,79) (2,78)... 6 (1,79) 13 (1,48) 20 (1,34) 39 (1,33) 93 (1,38) 227 (1,42) 539 (1,44)... 6 (1,79) 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

42 Capacità di esplorazione Con b=2 d=6 N=100 d=12N= ma con b=1.5 d=12N=100 d=24 N= … migliorando di poco leuristica si riesce, a parità di nodi espansi, a raggiungere una profondità doppia!

43 La lezione da imparare … 1. Tutti i problemi dellIA (o quasi) sono di complessità esponenziale … ma cè esponenziale e esponenziale! 2. Leuristica può migliorare di molto la capacità di esplorazione dello spazio degli stati rispetto alla ricerca cieca 3. Migliorando anche di poco leuristica si riesce ad esplorare uno spazio molto più grande.

44 Come si inventa uneuristica? - 1 Alcune tecniche consigliate: 1. Rilassamento del problema: pensare a un problema con meno vincoli Es. h 1 e h 2 nel gioco dell8 sono calcoli della distanza esatta in versioni semplificate del puzzle: h 1 gioco con scambi a piacimento tra caselle; h 2 gioco con spostamenti a piacimento anche su caselle occupate

45 Come si inventa uneuristica? Massimizzazione di euristiche Se si hanno una serie di euristiche h 1, h 2, … h k senza dominanza tra queste allora conviene massimizzare h(n)=max(h 1 (n), h 2 (n), …, h k (n)) Se le h i sono ammissibili anche la h lo è

46 Come si inventa uneuristica? Apprendere dall'esperienza Far girare il programma, raccogliere dati: coppie 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)

47 Come si inventa uneuristica? Combinazione di euristiche Quando diverse caratteristiche influenzano la bontà di uno stato, si può usare una combinazione lineare h(n)= c 1 h 1 (n) + c 2 h 2 (n) + … + c k h k (n) Il peso dei coefficienti può essere aggiustato con lesperienza, automaticamente o meno. Es. scacchi: h(n)= c 1 vant-pezzi + c 2 pezzi-attacc. + c3 regina + …


Scaricare ppt "Ricerca euristica Maria Simi a.a. 2006/2007 Ricerca euristica La ricerca esaustiva non è praticabile in problemi di complessità esponenziale Noi usiamo."

Presentazioni simili


Annunci Google