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