La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Ricerca locale M. Simi, 2006-2007 Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non.

Presentazioni simili


Presentazione sul tema: "Ricerca locale M. Simi, 2006-2007 Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non."— Transcript della presentazione:

1

2 Ricerca locale M. Simi,

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

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

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

6 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

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

8 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

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

10 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

11 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

12 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

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

14 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

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

16 Algoritmi online Maria Simi, a.a. 2006/07

17 Problemi di esplorazione  Gli agenti per il problem-solving assumono:  ambienti deterministici e osservabili  il piano generato può essere generato offline e eseguito senza imprevisti  Che cosa succede se rilasciamo queste assunzioni?  Solo lo stato corrente è osservabile, non si conosce l’effetto delle azioni e il loro costo  Gli stati futuri e le azioni che saranno possibili non sono conosciute a priori

18 Algoritmi online  Si devono compiere azioni esplorative  Si alternano pianificazione e azione  Cosa conosce un agente online …  Le azioni legali nello stato attuale  Il costo della mossa c(s1, a, s2) ma dopo averla eseguita  Goal-test(s)  La stima della distanza: dal goal: h(s) 

19 Esempio: Teseo con mappa e senza  Con mappa  applicabili tutti gli algoritmi di pianificazione visti  Senza mappa  l'agente non può pianificare può solo esplorare nel modo più razionale possibile  Ricerca online h=4h=3h=2h=1 T h=3 h=2h=1h=0 h=4h=3h=2h=1 h=5h=4h=3h=2 h=4h=3h=2h=1 T h=3 h=2h=1h=0 h=4h=3h=2h=1 h=5h=4h=3h=2

20 Assunzione ulteriore  Ambienti esplorabili in maniera sicura  Non esistono azioni irreversibili  Diversamente non si può garantire una soluzione

21 Ricerca in profondità online  Gli agenti online ad ogni passo decidono l'azione da fare (non il piano) e la eseguono.  Ricerca in profondità online  Un metodo locale  Il backtracking significa tornare sui propri passi  È necessario ricordarsi ciò che si è scoperto  Esplorazione sistematica delle alternative

22 Esempio  Sceglie il primo tra (1,1) e (2,2)  In (1, 1) deve tornare indietro T T T TT T T T T T

23 Algoritmo DF online function Agente-Online-DFS(s) returns an action static: risultato, notexp, notback, s- ( stato precedente ), a- ( ultima azione) if Goal-Test(s) then return stop if s nuovo stato then notexpl[s]  AzioniLegali(s) if s- non è null then risultato[a-, s-]  s; notback[s]  s-; if notexpl[s] vuoto then if notbackl[s] vuoto then return stop else a  azione per tornare in POP(notback[s]) else a  POP(notexpl[s]) s-  s; return a

24 Ricerca euristica online  Nella ricerca online si conosce il valore della funzione euristica una volta esplorato lo stato.  Un algoritmo di tipo Best First non funzionerebbe.  Serve un metodo locale  Hill-climbing con random-restart non praticabile  Come sfuggire a minimi locali?

25 Due soluzioni  Random-walk  si fanno mosse casuali in discesa  Apprendimento Real-Time:  esplorando si aggiustano i valori dell'euristica per renderli più realistici.  H: migliore stima fin qui  Come si valutano i successori: Costo-LRTA*(s, a, s', H) = h(s) se s' indefinito H(s') + costo(s,a,s') altrimenti

26 Esempio di Real Time Learning A* T (h=3) T (h=2) T (h=3) T (h=2) T (h=1) T (h=2) T (h=3) T (h=2) T (h=1) T (h=0)

27 LRTA* function Agente-LRTA*(s) returns an action static: risultato, H, s-, a- if Goal-Test(s) then return stop if s nuovo (non in H) then H[s]  h[s] 1. if s-  null risultato[a-, s-]  s H[s-]  min Costo-LRTA*(s-, b, risultato[b, s-], H) 2. a  un'azione b tale che minimizza Costo-LRTA*(s, b, risultato[b, s], H) s-  s; return a b  AzioniLegali(s)


Scaricare ppt "Ricerca locale M. Simi, 2006-2007 Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non."

Presentazioni simili


Annunci Google