Algoritmi metaeuristici
Transcript
Algoritmi metaeuristici
29/04/200 5 Algoritmi metaeuristici: I - introduzione Daniele Vigo D.E.I.S. - Università di Bologna [email protected] rev. 2.0 - Aprile 2005 Tecniche Meta-euristiche • Algoritmi Local Search che usano speciali tecniche per “uscire” dai minimi locali incontrati • devono evitare il verificarsi di “cicli” nell’evoluzione dell’algoritmo mossa “peggiorante” 1° ottimo locale D. Vigo ciclo !!! 2° ottimo locale Metaeur.2 1 29/04/200 5 Tecniche Meta-euristiche • A partire dagli anni ’80 sono stati proposti numerosi paradigmi metaeuristici: • • • • • Simulated Annealing Tabu search Genetic Algorithms Neural Networks Ant Systems … • Molti sono basati su analogie con sistemi naturali • In generale molto efficaci e di facile implementazione ma richiedono tempi molto più elevati degli euristici tradizionali (costruttivi) D. Vigo Metaeur.3 Tabu Search (Glover, 1986) • Generalizzazione di LOCAL SEARCH consentendo l’accettazione di “mosse” peggiorative. • Uso di memoria di breve termine (TABU LIST) per evitare di ritornare nelle ultime t soluzioni visitate T tabu list := memorizza le ultime t soluzioni visitate T = {xk-1, xk-2, …, xk-t} D. Vigo Metaeur.4 2 29/04/200 5 Tabu Search: algoritmo base /* per problema di minimo */ genera una soluzione iniziale s di valore z(s) s* = s ; k := 1 ; T = {s} ; while not STOP CRITERION do genera il neighborhood N(s)\T /* non tabu */ trova la migliore soluzione s’ ∈ N(s)\T rispetto a z(·) if z(s’) < z (s) then s* := s’ ; kbest := k s := s’ k := k+1 inserisci s’ in T al posto della più “vecchia” endwhile D. Vigo Metaeur.5 Tabu Search: criteri di terminazione • Criteri di arresto possibili (STOP CRITERIA): • N(s) \ T = Ø • k > kmax • time limit raggiunto • k – kbest > knon improving • s* ottima (ad esempio = ad un lower bound) D. Vigo Metaeur.6 3 29/04/200 5 Tabu Search: lista tabu • T impedisce il verificarsi di cicli di lunghezza ≤ |T| • memorizzare in T soluzioni complete può essere oneroso • es. TSP • ogni soluzione è un vettore di n elementi ; • confrontare due soluzioni costa O(n) ; • verificare se una soluzione è tabu costa O(n · |T|) D. Vigo Metaeur.7 Tabu Search: lista tabu (2) • si memorizzano “attributi” delle soluzioni e non soluzioni intere (ad esempio le mosse) • mossa m : insieme delle operazioni elementari per ottenere una soluzione s' dalla soluzione corrente s s’ = s ⊕ m (es. scambi di archi) . • N(s) := {s’ : ∃ m tale che s’ = s ⊕ m } D. Vigo Metaeur.8 4 29/04/200 5 Tabu Search: mosse inverse • TI memorizza le mosse inverse delle ultime mosse eseguite 1. TSP 1: se l’ultima mossa aveva spostato il vertice i dalla dalla 5° alla 7° posizione del circuito si proibisce di riportare i in 5° posizione 2. TSP 2: se l’ultima mossa ha scambiato gli archi (i, σ(i)) e (j, σ(j)) con (i, j), (σ(i), σ(j)) si proibiscono le mosse che coinvolgono i vertici i e/o j 3. KP-01: se l’ultima mossa ha inserito nel KP l’oggetto i si proibisce di rimuoverlo dal KP D. Vigo Metaeur.9 Limitazione delle mosse inverse • TI molto più restrittiva di T R:= {x’ : ∃ m ∈ TI tale che x’ = x ⊕ m} • | N(x)\R | ≤ | N(x)\T | (spesso <<) • Es. si considerino tutte le possibili terne di elementi distinti dell’insieme {a,b,c,d,e} Soluz. Corrente Trasformazione Tabu List abc c→d abd b→c acd d→b d→c d→c c→b d→c c→b b→d acb = abc D. Vigo Metaeur.10 5 29/04/200 5 Limitazione delle mosse inverse (2) • TI non garantisce che non si abbiano cicli di periodo ≤ |TI| • Es. TSP: TI memorizza gli ultimi vertici spostati |TI| > 2 1 2 3 4 5 6 1 3 2 4 5 6 I T = {3} 1 3 2 4 5 6 1 2 3 4 5 6 • ciclo di periodo 1 ! D. Vigo Metaeur.11 Tabu Search: criteri aspirazione • Tecnica utilizzata per sopperire alle condizioni troppo restrittive imposte dalle mosse inverse • Una mossa, anche se tabu, può essere comunque effettuata se questa conduce ad una “buona soluzione” • La bontà della soluzione si valuta con un opportuno contributo alla funzione obiettivo D. Vigo Metaeur.12 6 29/04/200 5 Intensificazione e diversificazione • TI costituisce la memoria di breve periodo (short term) • una ricerca efficace necessita anche di memoria di medio/lungo periodo che consenta : • intensificazione della ricerca: non è consentito spostarsi troppo dalla parte di regione che si sta visitando • preferire mosse con caratteristiche in comune con una buona soluzione recentemente incontrata • penalità da aggiungere a z(·) per le mosse che alterano tale caratteristica • diversificazione della ricerca: per spostarsi verso altre zone (inesplorate) dello spazio delle soluzioni • penalità da aggiungere a z(·) per le soluzioni troppo vicine alla corrente D. Vigo Metaeur.13 Tabu search: vincoli • A volte se il problema è fortemente vincolato la cardinalità di N(s) può essere molto piccola (è facile che N(x)\T = Ø ) • si rilassano alcuni vincoli aggiungendo ad f(x) una penalità proporzionale alla violazione dei vincoli in x • la ricerca si muove anche attraverso soluzioni non ammissibili • Aggiustamento adattativo della penalità: • La penalità può crescere se da molte iterazioni non si incontrano soluzioni ammissibili • La penalità può decrescere se da molte iterazioni si incontrano soluzioni tutte ammissibili D. Vigo Metaeur.14 7 29/04/200 5 Gestione della lista tabu • Tabu tenure t: lunghezza della lista tabu • costante = ... • aggiornata dinamicamente (es. ogni h iterazioni) • se s* è stata migliorata ⇒ t := max {tmax, t-1} (INTENSIFICAZIONE) • se s* rimane immutata ⇒ t := min {tmin, t+1} (DIVERSIFICAZIONE) • scelta casualmente in [tmin, tmax ] t • che valori dare a t, tmin, tmax, h ??? • Memorizzazione della lista tabu: • occupazione di memoria vs. tempo di verifica stato D. Vigo Metaeur.15 Tabu list per TSP • E’ tabu muovere il vertice i per t iterazioni 1. Salva la lista dei vertici tabu • T = {i, j, ...} Î spazio O(t), tempo O(t) 2. Salva l’iterazione in cui ho mosso un vertice • ∀ vertice i ⇒ T(i) := iterazione in cui ho mosso i k = iterazione corrente if T(i) + t ≤ k then mossa tabu else mossa ammissibile Î spazio O(n) ma tempo O(1) D. Vigo Metaeur.16 8 29/04/200 5 Tabu search di base per TSP • Glover 1986, Knox e Glover 1989, Knox 1989-1994 • Neighborhood 2-opt exchange completo ⇒ O(n2) • Tabu list : • G 86 : T contiene il lato più corto rimosso in uno scambio Î non si può reinserire • Asiration level Î si accettano mosse tabu miglioranti • K 94 : T contiene le coppie di archi rimossi più costose (meno restrittiva) Înon si possono reinserire • Aspiration level Î si accetta una mossa tabù che riduce il costo rispetto a quando c’erano gli archi rimossi D. Vigo Metaeur.17 Tabu search di base per TSP • Implementazione efficiente di 2/3-opt t3 c a t1 t3 c t4 d b t2 a t1 t4 d b t2 • ogni scambio è rappresentabile mediante la quadrupla < t1, t2, t3, t4 > • rimuovo (t1, t2), (t4, t3 ) • inserisco (t2, t3), (t1, t4 ) D. Vigo Metaeur.18 9 29/04/200 5 Tabu search di base per TSP (2) • ogni scambio corrisponde a 2 quadruple t1 = a t1 = d t2 = b t2 = c < a, b, c, d > < d, c, b, a > • ∆(a,b,c,d) = ct1t2 + ct4t3 - ct2t3 - ct1t4 perchè lo scambio sia migliorante > 0 ⇒ (a) ct1t2 > ct2t3 o (b) ct4t3 > ct1t4 o entrambi • ma se è migliorante (a) è verificato per almeno una delle due rappresentazioni D. Vigo Metaeur.19 Tabu search di base per TSP (3) • non si perdono scambi miglioranti se ci si limita alle quadruple t1, ..., t4 per cui ct1t2 > ct2t3 • dati t1 e t2 è sufficiente considerare t3 e t4 tali che : t3 : ct1t2 > ct2t3 t4 segua t3 nel tabu corrente • come implementare l’algoritmo in modo efficiente ? • ∀ i Li = {vi1, vi2, ...} lista dei vertici in ordine di distanza da i • ⇒ tempo O(n2 log n), spazio O(n2) D. Vigo Metaeur.20 10 29/04/200 5 Simulated Annealing (SA) • Algoritmo di ricerca basato su neighborhood randomizzato (Kirkpatrick et al., 1983) • Simula il comportamento del processo termodinamico di annichilazione dei metalli (raffreddamento dallo stato fuso) • data s soluzione corrente • se ∃ s’ ∈ N(s) migliorante la si esegue • altrimenti si eseguono mosse peggiorante s” ∈ N(s) con una probabiltà via via decrescente • La probabilità dipende da un parametro T (“temperatura”) che decresce nel tempo D. Vigo Metaeur.21 Algoritmo base SA genera una soluzione iniziale s di valore z(s) s* := s determina la temperatura iniziale T=T0 e la temperatura finale Tmin while T > Tmin do scegli casualmente una mossa che trasforma s in s’ ∆ = z(s’) – z(s) if ∆ ≤ 0 then /* downhill */ s := s’ if z(s) < z(s*) then z(s*) < z(S) else /* uphill */ genera un valore casuale r in [0,1] if r < e -∆/T then s := s’ diminuisci T (schema di raffreddamento, cooling schedule) endwhile D. Vigo Metaeur.22 11 29/04/200 5 Considerazioni su SA • Versione non omogenea: • la temperatura diminuisce ad ogni mossa • Versione omogenea: • si mantiene la stessa temperatura fino a quando non si e raggiunto uno stato di equilibrio e solo allora la si diminuisce • Temperatura finale: • teoricamente Tmin • in pratica ci si ferma quando • da P iterazioni non si migliora la soluzione ottima • da Q iterazioni non si accetta una mossa • Convergenza teorica all’ottimo globale D. Vigo Metaeur.23 Simulated Anealing: varianti • Reannealing • prima esecuzione: si memorizza la temperatura T° alla quale si e trovata la soluzione migliore • seconda esecuzione: ricerca locale più accurata con T=T° • Restricted neighborhood • non si considerano mosse che difficilmente possono produrre buone soluzioni • Es. TSP si considerano solo mosse che collegano vertici vicini D. Vigo Metaeur.24 12 29/04/200 5 Simulated Annealing Vs. Tabu Search • Similarità principali • ci si muove da una soluzione ad un’altra del suo intorno • sono consentite mosse peggiorative (uphills) • Differenze principali • Tabu search • mosse peggioranti solo quando si è in un ottimo locale • poco o per nulla basato sulla randomizzazione • Simulated annealing • mosse peggioranti in qualunque momento • fortemente basato sulla randomizzazione • si esaminano le soluzioni dell’intorno in ordine casuale spostandosi alla prima che risulta migliore di quella corrente o supera un particolare test randomizzato D. Vigo Metaeur.25 Algoritmi Genetici • (Holland 1975; Goldbuy 1987) • Basati sull’analogia con l’evoluzione di una popolazione di organismi elementari • individuo Ù soluzione • fitness individuo Ù costo soluzione • Gli individui si combinano per generare nuovi individui in generazioni successive • operatori di mutazione • operatori di ricombinazione • Il processo evolutivo tende a selezionare solo gli individui più idonei (fitness migliore) D. Vigo Metaeur.26 13 29/04/200 5 Algoritmi Genetici: versione base INIZIALIZZAZIONE: costruisci una popolazione iniziale di n individui S={S1, ...,Sn} repeat /* generazioni */ 1. 2. 3. MUTAZIONE: scegli m individui in S ed applica una mutazione randomizzata per ottenere m nuovi individui RICOMBINAZIONE (CROSSOVER): scegli r coppie di individui e combinali in modo randomizzato per generare r nuovi individui che riflettano gli aspetti di entrambi i genitori SELEZIONE: usa un criterio di selezione per ridurre la popolazione ad n individui selezionandoli tra gli n + m + r individui di S until STOP CRITERION D. Vigo Metaeur.27 Inconvenienti di GA base • Lo schema non è efficace per la risoluzione di problemi vincolati • Data una popolazione iniziale di soluzioni ammissibili gli operatori di mutazione e crossover producono nuove soluzioni spesso non ammissibili: • Impiego di operatori specializzati che mantengano l’ammissibilità • Impiego di un passo di ricerca locale per cercare l’ammissibilità e portare le soluzioni generate ad ottimi locali (“mandiamo gli individui a scuola prima di farli riprodurre”) D. Vigo Metaeur.28 14 29/04/200 5 Genetic Local Search INIZIALIZZAZIONE: costruisci una popolazione iniziale di n individui S={S1, ...,Sn} MIGLIORAMENTO: determina gli ottimi locali associati agli n individui con un algoritmo Local Search repeat /* generazioni */ 1. MUTAZIONE: scegli m individui in S ed applica una mutazione randomizzata per ottenere m nuovi individui 2. CROSSOVER: scegli r coppie di individui e combinali in modo randomizzato per generare r nuovi individui 3. MIGLIORAMENTO: applica un algoritmo di Local Search ad ognuno dei nuovi m+r individui per ottenere un nuovo insieme di soluzioni S’ 4. SELEZIONE: usa un criterio di selezione per ridurre la popolazione ad n individui selezionandoli tra gli n + m + r individui di S ∪ S’ until STOP CRITERION D. Vigo Metaeur.29 Operatori per GA • In un GA la soluzione è rappresentata da una stringa i cui valori sono i “geni” • Es. in KP-01 stringa delle variabili binarie associate agli oggetti • MUTAZIONE • scegli uno o più geni in modo casuale (di solito con probabilità uniforme P = 1/n) • cambia il valore dei geni selezionati D. Vigo Metaeur.30 15 29/04/200 5 Operatori per GA (2) • CROSSOVER 1. scegli 2 individui (“genitori”, “parents”) x = {x1, ..., xn} ed y = {y1, ..., yn} 2. combinali in modo da creare uno o più nuovi individui (“figli”, “offspring”) z = {z1, ..., zn} (e w = {w1, ..., wn}) i cui geni siano una combinazione dei geni dei genitori D. Vigo Metaeur.31 Operatori di CROSSOVER ONE–POINT CROSSOVER (genera 1 o 2 figli) • Scegli un punto di “taglio” t uniforme in [1,n] ⎧x zi = ⎨ i ⎩ yi i<t i≥t ⎧y wi = ⎨ i ⎩ xi i<t i≥t t x y z w D. Vigo Metaeur.32 16 29/04/200 5 Operatori di CROSSOVER TWO–POINT CROSSOVER (genera 1 o 2 figli) • Scegli due punti di “taglio” s e t uniformi in [1,n] s t x y z w D. Vigo Metaeur.33 Es. Algoritmo genetico per KP-01 • MUTAZIONE: si cambia in maniera casuale (secondo un determinata funzione di probabilità) il valore di uno o piu elementi xj (geni) della soluzione 1 0 0 1 1 1 0 ⇒ 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 • ONE-POINT CROSSOVER: 1 0 0 1 1 1 0 1 1 0 1 0 1 1 ⇒ • E’ necessario verificare l’ammissibilità delle nuove soluzioni: D. Vigo Metaeur.34 17 29/04/200 5 Algoritmi Genetici per TSP • Rappresentazione della soluzione: • sequenza di visita dei vertici (permutazione) 3 5 7 1 2 4 8 6 9 • mutazione e crossover possono produrre soluzioni inammissibili 2 3 1 4 9 7 8 65 • Es. MUTAZIONE, cambio casuale di un gene 3 5 7 1 2 4 8 6 9 ⇒ D. Vigo 3 5 7 1 2 6 8 6 9 Metaeur.35 Variante Mutazione per TSP • Nuovo operatore di mutazione che genera una nuova soluzione ammissibile • Scegli due punti di taglio ed inverti la sottosequenza compresa tra questi 5 3 5 7 1 2 4 8 6 9 D. Vigo ⇒ 3 5 4 2 1 7 8 6 9 Metaeur.36 18 29/04/200 5 Crossover per TSP • Se si utilizza un TWO-POINT CROSSOVER s t x 3 5 7 1 2 4 8 6 9 y 1 9 2 3 4 6 8 7 5 s ⇒ t 3 5 2 3 4 6 8 6 9 x’ 1 9 7 1 2 4 8 7 5 y’ • x’ ed y’ non sono tour ! • Soluzione: ORDER CROSSOVER D. Vigo Metaeur.37 Order Crossover per TSP 1. Si scelgono s e t ed in y si rimpiazzano le gli elementi nella sottostringa di x con dei “buchi” s t x 3 5 7 1 2 4 8 6 9 ▒ 9 ▒ 3 ▒ 6 8 ▒ 5 y 1 9 2 3 4 6 8 7 5 ▒ 9 ▒ 3 ▒ 6 8 5 ▒ 2. 3. Si spostano i buchi verso destra o sinistra fino a farli arrivare nella posizione centrale introducendo la minor perturbazione possibile nella sequenza originale Si sostituiscono i buchi con la sottostringa di x D. Vigo ▒ ▒ ▒ 3 ▒ 6 8 5 9 3 ▒ ▒ ▒ ▒ 6 8 5 9 3 6 ▒ ▒ ▒ ▒ 8 5 9 3 6 7 1 2 4 8 5 9 Metaeur.38 19 29/04/200 5 Considerazioni sui Metaeuristici • Schemi (paradigmi) algoritmici generali che devono essere particolarizzati per i singoli problemi. • Spesso non competitivi rispetto ad algoritmi sviluppati ad hoc (soluzioni paragonabili in tempi molto più elevati). • Tempi di sviluppo di un metaeuristico di base molto inferiori rispetto una tecnica ad hoc (ed anche di modifica per variazione del problema) . • Normalmente (molto) migliori di tecniche local search tradizionali ma con tempi (molto) superiori. • Spesso diventano molto complessi e dipendenti da numerosi parametri di difficile taratura. D. Vigo Metaeur.39 Riferimenti bibliografici • VJ RaywardSmith, IH Osman, CR Reaves, GD Smith eds Modern Heuristics Search Methods Wiley Chichester • IH Osman, JP Kelly eds MetaHeuristics Theory and Applications Kluwer Academic Publishers Boston MA • F Glover, M Laguna eds Tabu Search Kluwer Academic Publishers Boston MA • E Aarts, JK Lenstra eds Local Search in Combinatorial Optimization Wiley Chichester • S Voss, S Martello, I Osman, C Roucairol eds MetaHeuristics Advances and Trends in Local Search Algorithms for Optimization Kluwer Academic Publishers Boston MA • CC Ribeiro, P Hansen eds Essays and Surveys in Metaheuristics Kluwer Academic Publishers Boston MA D. Vigo Metaeur.40 20