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