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

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Prof. Salvatore Di Gregorio Dr. William Spataro Dr. Donato D’Ambrosio
Politecnico di Torino Tesi di Laurea
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
Ricerca euristica Maria Simi a.a. 2006/ /03/2017
AGENTI CHE RISOLVONO PROBLEMI Ottimizzazione euristica
Algoritmi e Strutture Dati
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Alberi binari di ricerca
Teoria e Implementazione
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
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
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)
Modelli probabilistici
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)
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Intelligenza Artificiale Algoritmi Genetici
Intelligenza Artificiale Risoluzione di Problemi
CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.
Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.
Intelligenza Artificiale
Elementi di Informatica di base
Strutture dati per insiemi disgiunti
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi e Strutture Dati
Seminario di Metodi Matematici per l’Ottimizzazione
Euristiche: algoritmi costruttivi e di ricerca locale
Problemi con soddisfacimento dei vincoli
Cammini minimi da un sorgente
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.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Oltre la ricerca classica Cap 4 – Ricerca locale, ricerca online Maria Simi a.a. 2014/2015.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
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
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Elementi di statistica Le cifre significative
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.
I giochi con avversario Maria Simi a.a. 2008/2009.
Algoritmi e Strutture Dati
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Sistemi e Tecnologie Informatiche Complessità di calcolo.
Come risolvere il cubo di RUBIK
Ricerca locale Maria Simi Assunzioni sui problemi  Gli algoritmi visti esplorano gli spazi di ricerca alla ricerca di un goal e restituiscono.
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Agenti risolutori di problemi Risolvere i problemi mediante ricerca Maria Simi a.a 2013/2014.
Ricerca online Maria Simi a.a. 2011/2012 Ambienti più realistici  Gli agenti risolutori di problemi “classici” assumono:  Ambienti completamente osservabili.
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.
Ricerca euristica Maria Simi a.a. 2010/ /07/2019
Transcript della presentazione:

Ricerca euristica Maria Simi a.a. 2005/2006

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à

Funzioni di valutazione euristica Conoscenza data tramite una funzione di valutazione dello stato, detta funzione di valutazione euristica: f : n  R La funzione dipende solo dallo stato

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

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.

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

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

Ricerca greedy: esempio

Route finding con Greedy Best-First Search

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

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

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

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 e che il costo lungo un cammino non cresca “abbastanza”.

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

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)

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)

Route finding con A*

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

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

Ottimalità di A*: dimostrazione (tree-search) Sia G un nodo goal ottimale e G 2 un nodo goal subottimale: g(G 2 ) > f*(s) = g(G), 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’.

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

Euristica consistente o monotòna  Definizione: euristica monotòna o localmente consistente. Sia n’=succ(n) h(n)  costo_arco(n, n’) + h(n’)  Equivalentemente Se n’=succ(n) allora f(n)  f(n’) la f aumenta sempre lungo i cammini. n n'

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.

Un euristica monotona è ammissibile Teorema: un’euristica 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 l’espansione g(n)=g*(n), e quindi sono ottimali.

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

Come migliorare l ’ occupazione di memoria  Beam search (già vista)  A* con approfondimento iterativo (IDA*)  Ricerca best-first ricorsiva (RBFS)  A* con memoria limitata (MA*) in versione semplice (SMA*)

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.

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.

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 l’ottimalità

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

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

Best-first ricorsivo: esempio

Best-first ricorsivo

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.

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)

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 dell’8 h 1 :conta il numero di caselle fuori posto h 2 : somma delle distanze delle caselle fuori posto (Manhattan distance) h1 = 7 h2= =19

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

Costo ricerca vs costo euristica [figura da Nilsson 1980]

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

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

Esempio: dal gioco dell’otto 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

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 l’euristica si riesce, a parità di nodi espansi, a raggiungere una profondità doppia!

Come si inventa un’euristica? - 1 Alcune tecniche consigliate: 1. Rilassamento del problema: pensare a un problema con meno vincoli Es. h 1 e h 2 nel gioco dell’8 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

Come si inventa un’euristica? 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 è

Come si inventa un’euristica? 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)

Come si inventa un’euristica? 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 l’esperienza, automaticamente o meno. Es. scacchi: h(n)= c 1 vant-pezzi + c 2 pezzi-attacc. + c3 regina + …

Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non necessario un puntatore al padre) e si spostano su stati adiacenti  Per problemi in cui:  il cammino che si segue non è importante: basta trovare la soluzione  tutti gli elementi della soluzione sono nello stato ma alcuni vincoli sono violati. Es. le regine nella versione completa.  Gli stati come punti su una superficie su cui l’algoritmo provoca movimento: i picchi sono massimi locali o soluzioni ottimali (se la f è da ottimizzare).

Ricerca in salita (Hill climbing)  Vengono generati i successori e valutati; viene scelto un nodo, che migliora la valutazione dello stato attuale:  il primo (salita semplice)  il migliore (salita rapida)  uno a caso (stocastico)  Se non ce ne sono l’algoritmo termina (non si tiene traccia degli altri)

Problemi con Hill-climbing  Massimi locali  Pianori  Crinali collinamontagna ? ?

Miglioramenti Miglioramenti della strategia di base: 1. Espandere l’albero di ricerca 2 o 3 livelli e ripetere la valutazione 2. Ripartire da un punto scelto a caso (Hill- Climbing con random restart)  Se la probabilità di successo è p saranno necessari 1/p ripartenze per trovare la soluzione

Tempra simulata (simulated annealing)  Ad ogni passo si sceglie un successore a caso:  se migliora lo stato corrente viene espanso  se no (caso in cui  E=f(n’)-f(n)  0) quel nodo viene scelto con probabilità p=e  E/T [0  p  1]  Si genera un numero casuale tra 0 e 1: se questo è  p il successore viene scelto, altrimenti non si fa niente.  T descresce col progredire dell’algoritmo secondo uno schedule definito (lo schedule definisce valore iniziale e decremento). [Kirkpatrick, Gelatt, Vecchi 1983]

Osservazione  Hill-climbing è un metodo locale; funziona bene quando la funzione di valutazione non ha essa stessa un carattere locale.  Le funzioni “più globali” costano di più.

Simulated annealing: analisi  La probabilità di una mossa in discesa diminuisce col tempo e l’algoritmo si comporta sempre di più come Hill Climbing. Se T viene decrementato abbastanza lentamente siamo sicuri di raggiungere la soluzione ottimale.  Analogia col processo di tempra dei metalli  T corrisponde alla temperatura   E alla variazione di energia  Valori per T determinati sperimentalmente: il valore iniziale di T deve essere tale che per valori medi di  E, e  E/T sia all’incirca 0.5

Il mondo dei blocchi Operatori: Sposta un blocco da un blocco ad un altro Sposta un blocco da un blocco al tavolo Sposta un blocco dal tavolo ad un altro blocco A D C B Stato iniziale C B A D Stato finale

Euristica “locale” per il mondo dei blocchi Euristica dei blocchi fuori posto: +1 per ogni blocco a posto, -1 fuori posto A D C B A D C B L’algoritmo si blocca A D C B 2-2=0 3-1=2 2-2=0

Euristica “non locale” per il mondo dei blocchi Euristica dei blocchi con supporto corretto: (#blocchi supporto OK - #blocchi supporto non OK) A D C B A D C B A D C B C B A D …3+2+1

Ricerca local beam  Si tiene traccia di k stati anziché uno solo  Ad ogni passo si generano i successori di tutti i k stati  Se si trova un goal ci si ferma  Altrimenti si prosegue con i k migliori  Nella variante local beam stocastica, si scelgono k successori a caso con probabilità maggiore per i migliori (selezione naturale).

Algoritmi genetici  Popolazione: k stati generati casualmente  Ogni 'individuo rappresentato come stringa  Es stato delle 8 regine  Gli individui sono valutati f. di fitness  Es. n. di coppie di regine che non si attaccano  Si scelgono gli individui con probabilità proporzionale alla fitness

Esempio  Per ogni coppia viene scelto un punto di cross-over e i due genitori producono due figli scambiandosi pezzi  Viene infine effettuata una mutazione casuale che da luogo alla prossima generazione.