Metody przeszukiwania lokalnego

Transkrypt

Metody przeszukiwania lokalnego
Metody przeszukiwania lokalnego
Literatura
[1] F. Glover, T. Laguna, Tabu search, Kluwer Academic
Publishers, 1997.
[2] R. Ahuja, O. Ergun, J. Orlin, A. Punnen, A survey of very
large-scale neighborhood search techniques, Discrete Applied
Mathematics 123 (2002) 75–102.
[3] S. Kirkpatrick, C.D. Gelatt Jr., M.P. Vecchi, Optimization by
Simulated Annealing, Science 220 (1983) 671–680.
[4] R. Wieczorkowski, Algorytmy stochastyczne w optymalizacji
dyskretnej przy zaburzonych wartościach funkcji, Matematyka
Stosowana 38 (1995) 119–153.
Znaczna cz˛eść wykładu została przygotowana na podstawie
ksiażki
˛ [1].
Metody optymalizacji – Paweł Zieliński – p. 1/55
Metody przeszukiwania lokalnego
Algorytm zachłanny
Algorytm symulowanego wyżarzania
Algorytm Tabu Search
Bedzie
˛
rozpatrywany nastepuj
˛ acy
˛ problem optymalizacyjny:
x),
min f (x
x ∈X
Problem polega na znalezieniu takiego dopuszczalnego
x) jest
rozwiazania
˛
x ∈ X, dla którego wartość funkcji celu f (x
najmniejsza.
Metody optymalizacji – Paweł Zieliński – p. 2/55
Metody przeszukiwania lokalnego
Problem (min k – Tree)
Dana jest liczba naturalna k > 2 i graf nieskierowany
G = (V, E) taki, że |V | > k . Każdej krawedzi
˛
e grafu
G przypisana jest dodatnia waga we . Należy
znaleźć w G drzewo składajace
˛ sie˛ z k łuków dla
którego suma wag na łukach jest najmniejsza.
W problemie tym:
X = {T = (W, Z) | |Z| = k, W ⊆ V, Z ⊆ E, T jest drzewem},
f (T ) =
X
we .
e∈Z
Metody optymalizacji – Paweł Zieliński – p. 3/55
Metody przeszukiwania lokalnego
Podstawowym pojeciem
˛
w konstrukcji metod
ruchu.
przeszukiwania lokalnego jest pojecie
˛
Ruchem nazywamy procedure˛ przejścia z rozwiazania
˛
dopuszczalnego x ∈ X do innego rozwiazania
˛
dopuszczalnego y ∈ X.
Problem (min k – Tree)
Operacja ruchu polega na usunieciu
˛
wybranej
krawedzi
˛
z bieżacego
˛
drzewa T i dodaniu innej
krawedzi
˛
należacej
˛ do G tak, że otrzymany graf jest
również drzewem.
Metody optymalizacji – Paweł Zieliński – p. 4/55
Metody przeszukiwania lokalnego
Na poniższym przykładzie wykonujemy ruch usuwajac
˛ z
drzewa krawedź
˛ (5, 4) i dodajac
˛ krawedź
˛ (2, 3).
2
1
3
4
6
5
7
Metody optymalizacji – Paweł Zieliński – p. 5/55
Metody przeszukiwania lokalnego
Atrybutami ruchu nazywamy parametry, które
pozwalaja˛ jednoznacznie określić nowe rozwiazanie
˛
otrzymane z rozwiazania
˛
x w wyniku wykonania ruchu.
Problem (min k – Tree)
Atrybutami każdego ruchu jest para (add(i, j),
drop(k, l)) określajaca
˛ odpowiednio dodana˛ i
usuniet
˛ a˛ krawedź
˛ . W poprzednim przykładzie
atrybutem ruchu jest para ((5, 4), (2, 3)).
Sasiedztwem
˛
danego rozwiazania
˛
dopuszczalnego
x) wszystkich rozwiaza
x ∈ X nazywamy zbiór N (x
˛ ń
dopuszczalnych y ∈ X, które można otrzymać z x
poprzez wykonanie ruchu.
Metody optymalizacji – Paweł Zieliński – p. 6/55
Algorytm zachłanny
Korzystajac
˛ z określenia sasiedztwa
˛
zdefiniujemy algorytm
zachłanny, który jest najprostszym algorytmem
przeszukiwania lokalnego:
x3
x1
x2
x0
Idea algorytmu zachłannego polega na pełnym przegladzie
˛
sasiedztwa
˛
bieżacego
˛
rozwiazania
˛
x0.
Metody optymalizacji – Paweł Zieliński – p. 7/55
Algorytm zachłanny
Algorytm zachłanny kończy prace˛ jeżeli w sasiedztwie
˛
bieżacego
˛
rozwiazania
˛
nie istnieja˛ rozwiazania
˛
o mniejszej
wartości funkcji celu, czyli:
x) ≥ f (x
x0 ).
∀x∈N (xx0 ) f (x
Algorytm 1 (Algorytm zachłanny).
1: Wygeneruj losowo lub heurystycznie punkt startowy x 0
2:
∈X
locallyOptimal ← f alse
3: repeat
4:
5:
6:
7:
8:
x0 ) dla którego f (x
x) jest najmniejsze
Znajdź x ∈ N (x
x) < f (x
x0 ) then
if f (x
x0 ← x
else
locallyOptimal ← true
end if
10: until locallyOptimal = true
9:
Metody optymalizacji – Paweł Zieliński – p. 8/55
Wady algorytm zachłannego
Algorytm daje rozwiazanie,
˛
które może być lokalnym
minimum znacznie gorszym niż rzeczywiste
rozwiazanie
˛
optymalne. Ponadto nie ma żadnej
możliwości opuszczenia lokalnego minimum.
y
x1
x0
Algorytm startuje z punktu
x0 ) tax 0 i znajduje x 1 ∈ N (x
x1 ) < f (x
x0 ). Jekie, że f (x
x1 )
żeli dla każdego x ∈ N (x
x) ≥ f (x
x1 ), wówczas
f (x
x 1 jest wiec
˛ minimum lokalnym. Algorytm kończy
prace˛ w punkcie x 1 mimo,
że w pobliżu może istnieć
lepsze rozwiazanie
˛
y.
Metody optymalizacji – Paweł Zieliński – p. 9/55
Wady algorytm zachłannego
Algorytm przeglada
˛ wszystkie rozwiazania
˛
należace
˛ do
sasiedztwa
˛
bieżacego
˛
rozwiazania,
˛
co może to być
kosztowne.
Sasiedztwo
˛
każdego rozwiazania
˛
jest z góry ustalone i
nie jest modyfikowane podczas działania algorytmu.
Algorytm zazwyczaj przeszukuje bardzo niewielka˛
cz˛eść przestrzeni rozwiaza
˛ ń.
Algorytm nie korzysta z informacji zebranej w
poprzednich iteracjach (np. może okazać sie,
˛ że ruchy
o pewnych atrybutach daja˛ średnio lepsze rozwiazania
˛
od pozostałych).
Metody optymalizacji – Paweł Zieliński – p. 10/55
Algorytm Symulowanego Wyżarzania
Algorytm Symulowanego wyżarzania jest modyfikacja˛
algorytmu zachłannego polegajac
˛ a˛ na wprowadzeniu
pewnych elementów losowych. Posiada on nastepuj
˛ ace
˛
cechy:
Rezygnuje sie˛ z pełnego przegladania
˛
sasiedztwa
˛
bieżacego
˛
rozwiazania
˛
x 0 . Zamiast tego kolejne
x0 ) w sposób losowy.
rozwiazanie
˛
x jest wybierane z N (x
Metody optymalizacji – Paweł Zieliński – p. 11/55
Algorytm Symulowanego Wyżarzania
Ruch z x0 do x jest wykonywany z
prawdopodobieństwem określonym za pomoca˛
nastepuj
˛ acej
˛ formuły:
x) − f (x
x0 )
f (x
x0 , x ) = min{1, exp (−
P (x
)},
Ti
gdzie Ti określa temperature˛ w i-tej iteracji algorytmu.
Im wyższa jest temperatura tym wieksze
˛
jest
prawdopodobieństwo przejścia z x 0 do x .
Zadana jest pewna poczatkowa
˛
temperatura Tmax , która
jest nastepnie
˛
obniżana w trakcie kolejnych iteracji.
Algorytm kończy prace˛ jeżeli temperatura spadnie
poniżej zadanej wielkości Tmin lub przekroczy zadana˛
liczbe˛ iteracji.
Metody optymalizacji – Paweł Zieliński – p. 12/55
Porównanie
Algorytm 2 (Algorytm symulowanego wyżarzania).
Wygeneruj punkt startowy x 0
∈X
Algorytm 3 (Algorytm zachłanny).
Wygeneruj punkt startowy x 0
∈X
T ← Tmax
x opt ← x 0
x opt ← x 0
locallyOptimal ← f alse
repeat
repeat
x0 )
∈ N (x
x0 , x ) then
if random[0, 1) < P (x
x0 ← x
x0 ) < f (x
xopt ) then
if f (x
x opt ← x 0
Wybierz w sposób losowy x
Znajdź
mniejsze
if
end if
x) < f (x
x0 ) then
f (x
x0 ← x
x opt ← x 0
else
locallyOptimal ← true
end if
T ← g(T ) {Obniż temperature}
˛
until warunek końca=true
x0 ) dla którego f (x
x) jest najx ∈ N (x
end if
until locallyOptimal
= true
1. Inny sposób wyboru nowego rozwiazania.
˛
2. Inna reguła akceptacji nowego rozwiazania.
˛
3. Inny warunek zakończenia.
Metody optymalizacji – Paweł Zieliński – p. 13/55
Symulowane wyżarzanie – szczegóły
1. Ustalenie temperatury poczatkowej
˛
Tmax , np.:
(a) Tmax = C , gdzie C jest stała,
˛
xi ) − f (x
xi+1 ),
(b) Tmax = 10 maxi |∆i |, gdzie ∆i = f (x
i = 1, . . . , parametr.
2. Obniżanie temperatury g(T ), np.:
(a) g(T ) = αT , gdzie α < 1 (α = 0.95),
T
Tmax −Tmin
−4 T
(b) g(T ) = 1+βT
,
T
=
10
, gdzie β = maxitT
max
min
max Tmin
i maxit maksymalna liczba iteracji (maxit = 105 ),
(c) inne funkcje obniżania temperatury g(T ) można
znaleźć w (Wieczorkowski 1995).
3. Warunek końca np.:
(a) T < Tmin ,
(b) przekroczenie maksymalnej liczby iteracji maxit.
Metody optymalizacji – Paweł Zieliński – p. 14/55
Algorytm Tabu Search
Idee˛ metaheurystyki Tabu Search oddaje nastepuj
˛ acy
˛ cytat
z ksiażki
˛ jej twórcy:
Metaheurystyka Tabu Search może być określona jako
metoda dynamicznej zmiany sasiedztwa
˛
danego
x) nie jest z góry
rozwiazania.
˛
Oznacza to, że zbiór N (x
ustalony dla każdego x lecz może zmieniać sie˛ w
zależności od informacji zebranych w poprzednich etapach
przeszukiwania.
Metody optymalizacji – Paweł Zieliński – p. 15/55
Algorytm Tabu Search
Metoda Tabu Search posiada nastepuj
˛ ace
˛
charakterystyczne elementy:
Funkcje˛ oceny wartości ruchu,
Liste˛ ruchów zakazanych (Tabu List),
Kryterium aspiracji,
Strategie˛ wyboru rozwiaza
˛ ń,
Strategie˛ dywersyfikacji.
Tabu Search jest metoda˛ bardzo ogólna˛ a szczegóły jej
implementacji różnia˛ sie˛ znacznie w zależności od
problemu, do którego została zastosowana.
Metody optymalizacji – Paweł Zieliński – p. 16/55
Funkcja oceny wartości ruchu
x)
Dla każdych rozwiaza
˛ ń dopuszczalnych x i y ∈ N (x
x, y ) określajac
definiujemy rzeczywista˛ funkcje˛ M V al(x
˛ a˛
wartość ruchu z rozwiazania
˛
x do rozwiazania
˛
y . Ruch jest
tym lepszy im wieksza
˛
jest dla niego wartość tej funkcji.
Algorytm 4 (Algorytm TS1).
Wygeneruj losowo lub heurystycznie punkt startowy x 0
∈X
xopt ← x0
repeat
Znajdź x
x0 ), dla którego wartość M V al(x
x0 , x ) jest najwieksza
∈ N (x
˛
x0 ← x
x0 ) < f (x
xopt ) then
if f (x
x opt ← x 0
end if
until warunek końca=true
Najprostsza˛ i najcz˛eściej stosowana˛ funkcja˛ oceny wartości ruchu jest
x, y ) = f (x
x) − f (yy ).
funkcja: M V al(x
Metody optymalizacji – Paweł Zieliński – p. 17/55
Funkcja oceny wartości ruchu
Problem (min k – Tree)
Załóżmy, że TS1 wykonał K iteracji i uzyskano K bieżacych
˛
rozwiaza
˛ ń
x 0 . Dla każdej kraw˛edzi (i, j) ∈ E w grafie G obliczamy:
1. R(i, j)–ile razy kraw˛edź (i, j) należała do bieżacego
˛
rozwiazania
˛
x0,
2. SR(i, j)–suma wartości funkcji celu wszystkich rozwiaza
˛ ń
zawierajacych
˛
kraw˛edź (i, j),
3. M R(i, j) = SR(i, j)/R(i, j) średnia wartość funkcji dla rozwiaza
˛ ń
zawierajacych
˛
kraw˛edź (i, j) (M R(i, j) = 0 jeżeli R(i, j) = 0).
Załóżmy, że oceniamy ruch z x do y posiadajacy
˛ atrybuty add(i, j),
drop(k, l). Funkcja oceny wartości ruchu w K-tej iteracji może mieć
postać:
M V al(x, y) = α1 (f (x)−f (y))+α2 R(i, j)/K+α3 R(k, l)/K+α4 M R(i, j)+α5 M R(k, l),
gdzie αi sa˛ zadanymi współczynnikami (również ujemnymi).
Metody optymalizacji – Paweł Zieliński – p. 18/55
Wady i zalety algorytmu TS1
Zalety
Możliwość opuszczenia minimum lokalnego.
Wykorzystanie informacji zgromadzonej w poprzednich
iteracjach do sterowania przeszukiwaniem.
Wady
Trudność w konstrukcji funkcji oceny ruchu (brak
ogólnych zaleceń) i oszacowaniu jej parametrów.
Metody optymalizacji – Paweł Zieliński – p. 19/55
Wady i zalety algorytmu TS1
Możliwość wpadniecia
˛
w cykl (algorytm wpada w cykl
jeżeli jakieś rozwiazanie
˛
zostanie po raz drugi przyjete
˛
jako rozwiazanie
˛
bieżace.
˛
x3
x2
x1
x4
x0
Algorytm TS1 może wpaść w cykl. Ma
to miejsce, gdy pewne rozwiazanie
˛
stanie sie˛ po raz drugi bieżacym
˛
rozwia˛
zaniem. W takim przypadku algorytm
może w nieskończoność przegladać
˛
te
same rozwiazania.
˛
Prawdopodobieństwo wpadniecia
˛
w cykl można zminimalizować konstruujac
˛ w odpowiedni
sposób funkcje˛ M V al oraz stosujac
˛ liste˛ ruchów zakazanych.
Metody optymalizacji – Paweł Zieliński – p. 20/55
Lista ruchów zakazanych (Tabu List)
T ABU = {(atrybut1 , kadencja1 ),
(atrybut2 , kadencja2 ), . . . , (atrybutl , kadencjal ))
x) jest
Ruch z rozwiazania
˛
x do rozwiazania
˛
y ∈ N (x
zakazany jeżeli pewien jego atrybut znajduje sie˛ na liście
T ABU .
Parametr kadencjai określa liczbe˛ iteracji przez która˛
element (atrybuti , kadencjai ) znajduje sie˛ na liście T ABU .
Zdefiniujmy dla każdego x ∈ X zmodyfikowane sasiedztwo
˛
x ):
N ′ (x
x) = {yy | y ∈ N (x
x) i ruch z x do y nie jest zakazany}.
N ′ (x
Metody optymalizacji – Paweł Zieliński – p. 21/55
Lista ruchów zakazanych (Tabu List)
Algorytm 5 (Algorytm TS2).
Wygeneruj losowo lub heurystycznie punkt startowy x 0
∈X
x opt ← x 0
T ABU ← ∅
repeat
Znajdź x
x0 ), dla którego wartość M V al(x
x0 , x ) jest najwieksza
∈ N ′ (x
˛
x0 ← x
x0 ) < f (x
xopt ) then
if f (x
x opt ← x 0
end if
Dodaj nowe elementy do listy T ABU
∈ T ABU do
kadencjai ← kadencjai − 1
if kadencjai = 0 then
usuń element (atrybuti , kadencjai ) z T ABU
for all (atrybuti , kadencjai )
end if
end for
until warunek zakończenia = true
Metody optymalizacji – Paweł Zieliński – p. 22/55
Lista ruchów zakazanych (Tabu List)
Problem (min k – Tree)
Podamy sposób konstruowania listy T ABU (krok (10)
algorytmu TS2) dla problemu min k – Tree.
Załóżmy, że w kroku (6) algorytmu został wykonany ruch z
rozwiazania
˛
x 0 do rozwiazania
˛
x o atrybutach
(add(i, j), drop(k, l)). Krok (10) może wygladać
˛
nastepuj
˛ aco:
˛
T ABU ← T ABU ∪ {(drop(i, j), 4), (add(k, l), 2)}
Do listy T ABU dodajemy dwa elementy (drop(i, j), 4) i
(add(k, l), 2).
Oznacza to, że przez cztery kolejne iteracje zakazujemy
ruchów w których usuwana jest krawedź
˛ (i, j), a przez dwie
kolejne iteracje zakazujemy ruchów, w których dodawana
jest krawedź
˛ (k, l).
Metody optymalizacji – Paweł Zieliński – p. 23/55
Wady i zalety algorytmu TS2
Zalety
Zmniejsza ryzyko wpadniecia
˛
w cykl (tym mniejsze im
dłuższe kadencje).
Umożliwia systematyczne badanie przestrzeni
rozwiaza
˛ ń odległej od punktu poczatkowego.
˛
Wady
Istnieje możliwość, że bardzo dobre ruchy zostana˛
zakazane.
Trudność w wyznaczeniu odpowiednich kadencji.
Metody optymalizacji – Paweł Zieliński – p. 24/55
Problem wyznaczania kadencji
Można podać dwa ogólne zalecenia dotyczace
˛ długości
kadencji, które zostały w pewnym stopniu potwierdzone
empirycznie:
1. im wiekszy
˛
rozmiar problemu tym kadencje powinny
być dłuższe,
2. im bardziej restrykcyjna jest lista T ABU (tzn. im
mniejszy jest średnio współczynnik |N ′ (x)|/|N (x)|) tym
kadencje powinny być krótsze.
Metody optymalizacji – Paweł Zieliński – p. 25/55
Długość kadencji, a zachowanie algorytmu
krótka
KADENCJA
długa
Wieksza
˛
dokładność
przeszukiwania
(Intensyfikacja).
Wiekszy
˛
zakres
przeszukiwania
(Dywersyfikacja).
Duże ryzyko wpadniecia
˛
w cykl w pobliżu lokalnego minimum.
Pogorszenie
jakości
uzyskanych rozwiaza
˛ ń
spowodowanych
brakiem
dokładniejszego
przeszukiwania sasiedz˛
twa dobrych rozwiaza
˛ ń.
Metody optymalizacji – Paweł Zieliński – p. 26/55
Wybrane sposoby ustalania kadencji
1. Kadencja stała dla każdego elementu listy T ABU .
2. Kadencja stała dla każdego typu elementu listy T ABU
(na przykład w problemie min k – Tree dla elementów
postaci (add(i, j), kadencja) kadencja może być inna niż
dla elementów postaci (drop(k, l), kadencja)).
3. Kadencja jest ustalana dla każdego elementu listy
T ABU w sposób losowy z pewnego zakresu [tmin , tmax ].
4. Wartości kadencji wybierane sa˛ w sposób cykliczny z
zadanego ciagu
˛ wartości, (na przykład dla zadanego
ciagu
˛ (10, 8, 5, 6, 4, 1) pierwsza˛ kadencje˛ ustalamy na 10,
nastepn
˛ a˛ na 8 itd. Po ustaleniu kadencji na 1 kolejna
kadencja ponownie jest ustalana na 10).
Metoda wyboru kadencji oraz konkretne wartości
przyjmowane przez kadencje powinny być ustalane dla
każdego problemu w sposób eksperymentalny.
Metody optymalizacji – Paweł Zieliński – p. 27/55
Kryterium aspiracji
W wyniku zastosowania listy T ABU moga˛ zostać zakazane
bardzo dobre ruchy.
Kryterium aspiracji jest pewnym warunkiem narzuconym na
x) , które pozwala na wykonanie
każde rozwiazanie
˛
y ∈ N (x
ruchu z x do y nawet jeżeli ruch ten jest zakazany.
Kryterium aspiracji anuluje wiec
˛ zakaz ruchu wynikajacy
˛ z
listy T ABU .
x) definiuje sie˛ funkcje˛
Dla każdych rozwiaza
˛ ń x, y ∈ N (x
x, y ) przyjmujac
Aspiration(x
˛ a˛ wartości T RU E lub F ALSE ,
przy czym jeżeli Aspiration(x, y) = T RU E , to możliwe jest
x)
wykonanie ruchu z rozwiazania
˛
x do rozwiazania
˛
y ∈ N (x
nawet jeżeli ruch ten jest zakazany.
Metody optymalizacji – Paweł Zieliński – p. 28/55
Kryterium aspiracji
Stosuje sie˛ nastepuj
˛ ace
˛ kryteria aspiracji:
x, y ) = T RU E jeżeli f (yy ) < f (x
xopt )
1. Aspiration(x
ruch prowadzi do rozwiazania
˛
y lepszego niż najlepsze
do tej pory znalezione,
x, y ) = T RU E jeżeli M V al(x
x, y ) ≥ α
2. Aspiration(x
wartość ruchu do rozwiazania
˛
y jest wieksza
˛
od
pewnego parametru α,
3. inne, wynikajace
˛ ze struktury problemu i
dotychczasowego przebiegu algorytmu.
Zdefiniujmy dla każdego x ∈ X zmodyfikowane sasiedztwo
˛
x ):
N ′′ (x
x) = {y
N ′′ (x
|
y ∈ N (x
x) i (ruch z x do y nie jest zakazany
lub Aspiration(x, y) = T RU E)}.
Metody optymalizacji – Paweł Zieliński – p. 29/55
Kryterium aspiracji
Algorytm 6 (Algorytm TS3 (z kryterium aspiracji)).
Wygeneruj losowo lub heurystycznie punkt startowy x 0
∈X
x opt ← x 0
T ABU ← ∅
repeat
Znajdź x
x0 ), dla którego wartość M V al(x
x0 , x ) jest najwieksza
∈ N ′′ (x
˛
x0 ← x
x0 ) < f (x
xopt ) then
if f (x
x opt ← x 0
end if
Dodaj nowe elementy do listy T ABU
∈ T ABU do
kadencjai ← kadencjai − 1
if kadencjai = 0 then
usuń element (atrybuti , kadencjai ) z T ABU
for all (atrybuti , kadencjai )
end if
end for
until warunek zakończenia = true
Metody optymalizacji – Paweł Zieliński – p. 30/55
Wady algorytmu TS3
W kroku (5) badane sa˛ wszystkie rozwiazania
˛
należace
˛
x0 ), co może być bardzo czasochłonne.
do N ′′ (x
Zbyt mała dywersyfikacja.
Metody optymalizacji – Paweł Zieliński – p. 31/55
Strategia wyboru rozwiaza
˛ ń
Strategia wyboru rozwiazania
˛
jest pewna˛ procedura,
˛ która
pozwala ograniczyć liczbe˛ przegladanych
˛
rozwiaza
˛ ń
x). Jedna˛ z najprostszych i
należacych
˛
do zbioru N ′′ (x
najbardziej popularnych jest strategia aspiracji plus.
Strategia aspiracji plus (Aspiration plus)
1. Przegladamy
˛
zawsze nie mniej niż minM i nie wiecej
˛
x ).
niż maxM rozwiaza
˛ ń należacych
˛
do N ′′ (x
x) taki, że
2. Jeżeli znajdziemy y ∈ N ′′ (x
x, y ) ≥ Aspiration, to przegladamy
M V al(x
˛
jeszcze tylko
nastepne
˛
P lus rozwiaza
˛ ń pamietaj
˛ ac
˛ o założeniu w
punkcie 1 (czyli nie mniej niż minM i nie wiecej
˛
niż
maxM ) .
3. Przechodzimy do tego spośród przegladni
˛ etych
˛
x) dla którego wartość M V al(x
x, y )
rozwiaza
˛ ń y ∈ N ′′ (x
jest najwieksza.
˛
Metody optymalizacji – Paweł Zieliński – p. 32/55
Strategia aspiracji plus
y0
Plus
M val
Aspiration
4 5 6 7 8 9 10 1112 13 14
F irst minM
maxM
Liczba przegladanych
˛
ruchów
1 2 3
Po przegladni
˛ eciu
˛
F irst ≤ maxM ruchów zostało
znalezione rozwiazanie
˛
dla którego
x, y ) ≥ Aspiration. Przegladamy
M V al(x
˛
wiec
˛ jeszcze
min{max{F irst + P lus, minM }, maxM } rozwiaza
˛ ń.
Najlepszym znalezionym rozwiazaniem
˛
jest y 0 .
Metody optymalizacji – Paweł Zieliński – p. 33/55
Strategia dywersyfikacji
Tabu Search jest metoda˛ przeszukiwania lokalnego, w
której przegladane
˛
sa˛ kolejne rozwiazania
˛
należace
˛ do
sasiedztwa
˛
bieżacego
˛
rozwiazania.
˛
Może sie˛ wiec
˛ zdarzyć,
że pewne obszary przestrzeni rozwiaza
˛ ń X nigdy nie
zostana˛ sprawdzone
Strategia dywersyfikacji jest procedura,
˛ która pozwala na
przegladanie
˛
różnych obszarów przestrzeni rozwiaza
˛ ń.
X
X
xn
xn
x0
Brak dywersyfikacji
x0
Przeszukiwanie z dywersyfikacja˛
Metody optymalizacji – Paweł Zieliński – p. 34/55
Strategia dywersyfikacji
Metoda zdarzeń krytycznych (Critical Events Memory),
składajaca
˛ sie˛ z dwóch elementów:
1.
Funkcji CriticalEvent() przyjmujacej
˛ wartości T RU E lub
F ALSE . Funkcja przyjmuje wartość T RU E jeżeli zaszły
określone warunki wymagajace
˛ wygenerowania
nowego rozwiazania
˛
startowego. Na przykład:
przez K kolejnych iteracji nie zostało znalezione
lepsze rozwiazanie,
˛
algorytm wykonał K iteracji od wygenerowania
nowego rozwiazania
˛
startowego,
przez K kolejnych iteracji były przegladane
˛
rozwiazania
˛
“bliskie” rozwiazaniu
˛
startowemu
(pojecie
˛
“bliskie” zależy od konkretnego problemu).
Metody optymalizacji – Paweł Zieliński – p. 35/55
Metoda zdarzeń krytycznych
2.
Funkcji Restart(), która generuje nowe rozwiazanie
˛
poczatkowe.
˛
Algorytm ponownie rozpoczyna działanie
od wygenerowanego rozwiazania.
˛
Funkcja Restart()
może wykorzystywać informacje zgromadzone podczas
dotychczasowego przebiegu algorytmu.
Metody optymalizacji – Paweł Zieliński – p. 36/55
Strategia dywersyfikacji
Problem (min k – Tree)
Przykład konstrukcji funkcji Restart() w problemie min k
Tree dla k = 4. Dany jest nastepuj
˛ acy
˛ graf G = (V, E):
2
26
1
6
3
20
17
1
15
4
23
5
18
6
12
16
16
16
9
9
24
11
25
8
6
7
7
8
20
x0
x1
x2
x3
x4
x5
x6
x7
16
xi
Rozwizaniex
{ (1,2), (1,4), (4,7), (6,7) }
{ (1,2), (1,4), (4,6), (6,7) }
{ (1,2), (1,4), (4,6), (6,8) }
{ (1,4), (4,6), (6,8), (8,9) }
{ (4,7), (4,6), (6,8), (8,9) }
{ (4,7), (6,7), (6,8), (8,9) }
{ (4,7), (6,7), (6,9), (8,9) }
{ (6,7), (6,9), (8,9), (8,10)}
9
10
9
xi )
Ocena rozwiazania
˛
f (x
40
47
57
63
46
37
37
38
Funkcja Restart() uruchamiana jest po 7 iteracjach przedstawionych w tabeli.
Metody optymalizacji – Paweł Zieliński – p. 37/55
Strategia dywersyfikacji
1. Wybieramy lokalne minima z poprzednich iteracji, czyli rozwiazania:
˛
x 0 , x 5 , x 6 . Rozwiazania
˛
te składaja˛ sie˛ z nastepuj
˛ acych
˛
łuków:
L = {(1, 2), (1, 4), (4, 7), (6, 7), (6, 8), (8, 9)}.
2. Przyjmujemy y 0 ← ∅.
3. Dokładamy do y 0 kolejne kraw˛edzie należace
˛ do E \ L o najmniejszej
wadze tak aby w kolejnych krokach otrzymać drzewo składajace
˛ sie˛ z
odpowiednio 1, 2, 3 i 4 kraw˛edzi:
y 0 ← {(3, 5)}
y0
← {(3, 5), (5, 9)}
y0
← {(3, 5), (5, 9), (9, 12)}
y0
← {(3, 5), (5, 9), (9, 12), (11, 12)}
4. Przyjmujemy y 0 jako nowe rozwiazanie
˛
(“odległe” od rozwiaza
˛ ń
poprzednio badanych).
Uwaga: jeżeli nie można wybrać odpowiedniej kraw˛edzi z E \ L, to należy
wybrać losowo kraw˛edź z L.
Metody optymalizacji – Paweł Zieliński – p. 38/55
Pełny schemat algorytmu Tabu Search
Wygeneruj losowo lub heurystycznie punkt startowy x 0 ∈ X
x opt ← x 0
T ABU ← ∅
repeat
x0 ) {Lub inna strategia wyboru rozwiazania}
x 0 ← AspirationP lus(x
˛
x0 ) < f (x
xopt ) then
if f (x
x opt ← x 0
end if
Dodaj nowe elementy do listy T ABU
for all (atrybuti , kadencjai ) ∈ T ABU do
kadencjai ← kadencjai − 1
if kadencjai = 0 then
usuń element (atrybuti , kadencjai ) z T ABU
end if
end for
if CriticalEvent() = true then
x 0 ← Restart() {Dywersyfikacja}
x0 ) < f (x
xopt ) then
if f (x
x opt ← x 0
end if
end if
until warunek zakończenia = true
Metody optymalizacji – Paweł Zieliński – p. 39/55
Uwagi końcowe
Warunkiem zakończenia w metodzie Tabu Search jest
najcz˛eściej przekroczenie zadanej liczby iteracji.
Zamiast AspirationP lus można wykorzystać inna˛
strategie˛ wyboru rozwiaza
˛ ń. Należy jednak pamietać,
˛
że musi ona brać pod uwage˛ liste˛ TABU i kryterium
aspiracji. Jeżeli rozmiar zmodyfikowanego sasiedztwa
˛
x) nie jest duży, to należy dokonać jego pełnego
N ′′ (x
przegladu.
˛
Powyższy schemat przedstawia jedynie bardzo ogólna˛
idee˛ metody Tabu Search. Komputerowe
implementacje tej metody różnia˛ sie˛ znacznie w
zależności od rodzaju problemu.
Metody optymalizacji – Paweł Zieliński – p. 40/55
Uwagi końcowe
Metoda Tabu Search zaimplementowana w postaci
algorytmu dla pewnego problemu wymaga podania
wielu parametrów. Optymalne wartości tych
parametrów w wiekszości
˛
przypadków musza˛ być
ustalone w sposób eksperymentalny.
Konstruujac
˛ algorytm oparty na idei Tabu Search dla
konkretnego problemu należy wykazać sie˛ własna˛
inwencja˛ i pomysłowościa.
˛ Nie trzeba koniecznie
ograniczać sie˛ do powyższego schematu. Należy
dokładnie przeanalizować strukture˛ problemu i
odpowiednio wykorzystać wszystkie wykryte własności.
Szczególnie ważne jest odpowiednie zdefiniowanie
ruchu i funkcji oceny wartości ruchu.
Można łaczyć
˛
metode˛ Tabu Search z innymi
heurystykami.
Metody optymalizacji – Paweł Zieliński – p. 41/55
Problem (min k – Tree)
G = (V, E) jest grafem pełnym (tzn. miedzy
˛
każda˛ para˛ wierzchołków
istnieje kraw˛edź), |V | = 200 wagi kraw˛edzi wij , (i, j) ∈ E, sa˛ liczbami
losowymi z przedziału [1, 104 ] i k = 14.
Oscylacje
Najlepsze
znalezione
rozwiazanie
˛
Przebieg algorytmu Tabu Search dla min k – Tree. Na osi X przedstawione
sa˛ kolejne iteracje. Na osi Y przedstawione sa˛ wartości funkcji celu
bieżacego
˛
rozwiazania
˛
x 0 i najlepszego rozwiazania
˛
w danej iteracji x opt .
Metody optymalizacji – Paweł Zieliński – p. 42/55
Problem szeregowania 1||
P
wi Ti
Dany jest zbiór prac J = {1, ..., n}, które maja˛ być
wykonywane na jednej maszynie. Zakłada sie,
˛ że przestoje
maszyny sa˛ nie dozwolone. Dla każdej pracy i ∈ J sa˛
zadane: czas trwania pi , pożadany
˛
termin zakończenia di
oraz waga wi charakteryzujaca
˛ ważność pracy i. Każdy
harmonogram jest pewna˛ permutacja˛ π = (π(1), . . . , π(n))
prac należacych
˛
do zbioru J . Przez Ci (π), i ∈ J , oznacza
sie˛ czas zakończenia pracy i w permutacji π , czyli jeżeli
Pk
i = π(k) to Ci = j=1 pπ(j) . Celem jest wyznaczenie
permutacji π dla której:
X
X
wi Ti (π) =
wi max{0, Ci (π) − di } → min .
i∈J
i∈J
Metody optymalizacji – Paweł Zieliński – p. 43/55
Problem szeregowania 1||
P
wi Ti
Możliwa realizacja
Rozwiazania
˛
moga˛ być kodowane jako (π(1), . . . , π(n))
prac należacych
˛
do zbioru J .
Jako ruch można przyjać
˛ np. zamiane˛ miejscami dwóch
prac w bieżacym
˛
rozwiazaniu
˛
π(1) π(2) π(3) π(4) π(5) π(6)
Atrybutem powyższego ruchu jest swap(i, j), gdzie i, j
sa˛ zamienianymi pracami.
T ABU =
{(swap(i1 , j1 ), kadencja1 ), (swap(i2 , j1 ), kadencja2 ), . . .}.
Metody optymalizacji – Paweł Zieliński – p. 44/55
Problem szeregowania F m||Cmax
Dany jest zbiór prac J = {1, ..., n}, które maja˛ być wykonywane na m
maszynach M1 , . . . , Mm . Zakłada sie:
˛
1. każda maszyna może wykonywać w danym momencie tylko jedna˛
prace,
˛
2. każda praca musi być wykonywana najpierw na maszynie M1
nastepnie
˛
na maszynie M2 i na końcu na maszynie Mm ,
3. kolejność wykonywania prac na wszystkich trzech maszynach jest
taka sama.
Dla każdej pracy i ∈ J sa˛ zadane czasy trwania pji , na maszynie Mj ,
j = 1, . . . , m. Każdy harmonogram jest jednoznacznie określony przez
pewna˛ permutacje˛ π = (π(1), ..., π(n)) prac należacych
˛
do zbioru J. Przez
Ci (π) oznacza sie˛ czas zakończenie pracy i ∈ J na maszynie Mm dla
permutacji π. Celem jest wyznaczenie permutacji π takiej, że:
Cmax = Cπ(n) → min .
Metody optymalizacji – Paweł Zieliński – p. 45/55
Problem szeregowania F m||Cmax
Możliwa realizacja
Rozwiazania
˛
moga˛ być kodowane jako (π(1), . . . , π(n))
prac należacych
˛
do zbioru J .
Jako ruch można przyjać
˛ zamiane˛ miejscami dwóch
prac w bieżacym
˛
rozwiazaniu.
˛
swap(i, j), gdzie i, j sa˛
zamienianymi pracami.
Niech π(k) i π(l) oznaczaja˛ pozycje˛ odpowiednio
pozycje˛ prac i i j w permutacji π . Wówczas swap(i, j)
jest równoważna operacjom insert(i, π(l)) i
insert(j, π(k)), gdzie oznaczajacym
˛
wstaw prace˛ i na
pozycje˛ π(l) i wstaw prace˛ j na pozycje˛ π(k).
Atrybutami ruchu sa˛ wiec
˛ insert(i, π(l)) i insert(j, π(k)).
Ruch jest zakazany jeżeli jeden z jego atrybutów jest na
liście T ABU .
Metody optymalizacji – Paweł Zieliński – p. 46/55
Problem szeregowania F m||Cmax
Inna propozycja
Jako ruch można przyjać
˛ wstawienie pracy i w inne
miejsce.
Powyższy ruch można wyrazić jako ciag
˛ operacji
swap(i, j).
Np. dla danej permutacji (3, 2, 4, 5, 1, 6) prace 1
wstawiamy przed praca˛ 2 otrzymujemy wiec
˛
(3, 1, 2, 4, 5, 6), co jest równoważne
swap(5, 1) swap(4, 1) swap(2, 1).
Atrybutami ruchu sa˛ wiec
˛ swap(i, j).
Ruch jest zakazany jeżeli jeden z jego atrybutów jest na
liście T ABU .
Metody optymalizacji – Paweł Zieliński – p. 47/55
Problem komiwojażera
Możliwa realizacja
Rozwiazania
˛
moga˛ być kodowane jako permutacje˛
miast (π(1), . . . , π(n)). Każda taka permutacja
jednoznacznie wyznacza nastepuj
˛ ac
˛ a˛ trase˛
komiwojażera: π(1) → π(2) · · · → π(1) o koszcie:
c(π(n), π(1)) +
n−1
X
c(π(i), π(i + 1)).
i=1
Metody optymalizacji – Paweł Zieliński – p. 48/55
Problem komiwojażera
Jako ruch można przyjać
˛ zamianie miejscami dwóch
sasiednich
˛
miast w bieżacym
˛
rozwiazaniu
˛
2
3
1
5
W wyniku ruchu z trasy
(1, 2, 3, 4, 5) otrzymujemy
trase˛ (1, 3, 2, 4, 5).
4
Atrybutem ruchu jest change(i, j), gdzie i, j sa˛
zamienianymi miastami
T ABU =
{(change(i1 , j1 ), kadencja1 ), (change(i2 , j2 ), kadencja2 ), . . . , }.
Metody optymalizacji – Paweł Zieliński – p. 49/55
Problem programowania binarnego
Dla danych cj , aij i bi , i = 1, . . . , m, j = 1, . . . , n wyznaczyć
wektor (x1 , . . . , xn ), dla którego
Pn
j=1 cj xj
→ min
Pn
≥ bi i = 1, . . . , n
xj ∈ {0, 1} j = 1, . . . , n
j=1 aij xj
Możliwa realizacja
Każde rozwiazanie
˛
może być kodowane jako wektor
binarny (x1 , . . . , xn ) bed
˛ acy
˛ wektorem rozwiaza
˛ ń
problemu.
Ruch może polegać na zanegowaniu wartości wybranej
zmiennej w bieżacym
˛
rozwiazaniu.
˛
Metody optymalizacji – Paweł Zieliński – p. 50/55
Problem programowania binarnego
Atrybutem jest wiec
˛ neg(i), gdzie i jest indeksem
zanegowanej zmiennej.
T ABU =
{(neg(i1 ), kadencja1 ), (neg(i2 ), kadencja2 ), . . . , }.
Nie każdy wektor binarny spełnia zadane ograniczenia.
Należy uwzglednić
˛
ten fakt wprowadzajac
˛ odpowiednia˛
funkcje˛ oceny wartości ruchu. Np. ruch z rozwiazania
˛
x = (x1 , . . . , xn ) do rozwiazania
y = (y1 , . . . , yn ) można
˛
ocenić w nastepuj
˛ acy
˛ sposób:
n
n
m
n
X
X
X
X
x, y ) =
M V al(x
cj x j −
cj yj −α
max{0, bi −
cj xj }.
j=1
Pm
j=1
i=1
j=1
Pn
Człon α i=1 max{0, bi − j=1 cj xj } jest kara˛ za
naruszenie ograniczeń przez y .
Metody optymalizacji – Paweł Zieliński – p. 51/55
Algorytm TA „threshold accepting”
Algorytm TA jest uproszczona˛ wersja˛ algorytmu
symulowanego wyżarzania.
Kolejne rozwiazanie
˛
x jest wybierane z sasiedztwa
˛
x0 ) w sposób losowy.
N (x
Rezygnuje sie˛ z akceptacji ruchu opartej na
prawdopodobieństwie akceptacji. Zamiast tego ruch z
x 0 do x jest wykonywany jeżeli spełniony jest
nastepuj
˛ acy
˛ progowy warunek akceptacji
x) − f (x
x 0 ) < Ti ,
f (x
gdzie Ti określa wartość progu w i-tej iteracji algorytmu.
Im wyższy próg Ti tym gorsze rozwiazania
˛
od
rozwiazania
˛
bieżacego
˛
sa˛ akceptowane (przeszukiwany
jest wiekszy
˛
zakres przestrzeni rozwiaza
˛ ń).
Metody optymalizacji – Paweł Zieliński – p. 52/55
Algorytm TA „threshold accepting”
Progi Ti sa˛ nierosnacym
˛
ciagiem
˛
nieujemnych liczb
rzeczywistych.
Najcz˛eściej, w realizacjach algorytmu, sa˛ one
zadawane w tablicy.
Algorytm TA kończy prace˛ jeżeli przekroczy zadana˛
liczbe˛ iteracji.
Metody optymalizacji – Paweł Zieliński – p. 53/55
Porównanie
Algorytm 7 (Algorytm symulowanego wyżarzania).
Wygeneruj punkt startowy x 0
∈X
Algorytm 8 (Algorytm TA).
Wygeneruj punkt startowy x 0
∈X
T ← Tmax {poczatkowa
˛
temperatura}
x opt ← x 0
T ← Tmax {poczatkowy
˛
próg akceptacji}
x opt ← x 0
repeat
repeat
= 1 to K do
{K jest zadana˛ liczba˛ powtórzeń}
x0 )
Wybierz w sposób losowy x ∈ N (x
x0 , x ) then
if random[0, 1) < P (x
x0 ← x
x0 ) < f (x
xopt ) then
if f (x
x opt ← x 0
for k
end if
end if
= 1 to K do
{K jest zadana˛ liczba˛ powtórzeń}
x0 )
Wybierz w sposób losowy x ∈ N (x
x) − f (x
x0 ) < T then
if f (x
x0 ← x
x0 ) < f (x
xopt ) then
if f (x
x opt ← x 0
for k
end if
end if
end for
end for
T ← g(T ) {Obniż temperature}
˛
Weź z tablicy kolejny próg akceptacji T
until warunek końca=true
until warunek końca=true
Metody optymalizacji – Paweł Zieliński – p. 54/55
Problem komiwojażera
Realizacja algorytmu TA
Progi akceptacji sa˛ zadane w tablicy. Np.
T = {0.13, 0.12, . . . , 0.10, 0.095, . . . , 0.075, 0.07, . . . , 0.07,
0.065, . . . , 0.02, 0}
Maksymalna liczba iteracji, np. 4 × 106 .
x0 ) jest realizowany za pomoca˛ metody 2-opt,
Wybór losowy x ∈ N (x
tj. wybiera sie˛ losowo dwa miasta i i j z trasy, nastepnie
˛
usuwamy
połaczenia
˛
miedzy
˛
miastami i i i + 1 oraz j i j + 1 na koniec łaczymy
˛
miasta i i j oraz i + 1 i j + 1.
i+1
i
j
j+1
Metody optymalizacji – Paweł Zieliński – p. 55/55

Podobne dokumenty