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ęść 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 Będzie rozpatrywany następujacy problem optymalizacyjny: min x X f(x), Problem polega na znalezieniu takiego dopuszczalnego rozwiazania x X, dla którego wartość funkcji celu f(x) jest najmniejsza. Metody optymalizacji Paweł Zieliński p. 2/55
Metody przeszukiwania lokalnego Problem (mink Tree) Dana jest liczba naturalna k > 2 i graf nieskierowany G = (V,E) taki, że V > k. Każdej krawędzi e grafu G przypisana jest dodatnia waga w e. Należy znaleźć w G drzewo składajace się 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) = e Zw e. Metody optymalizacji Paweł Zieliński p. 3/55
Metody przeszukiwania lokalnego Podstawowym pojęciem w konstrukcji metod przeszukiwania lokalnego jest pojęcie ruchu. Ruchem nazywamy procedurę przejścia z rozwiazania dopuszczalnego x X do innego rozwiazania dopuszczalnego y X. Problem (mink Tree) Operacja ruchu polega na usunięciu wybranej krawędzi z bieżacego drzewa T i dodaniu innej krawędzi 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 krawędź (5,4) i dodajac krawędź (2,3). 1 2 3 6 5 4 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 (mink Tree) Atrybutami każdego ruchu jest para (add(i, j), drop(k, l)) określajaca odpowiednio dodana i usunięta krawędź. W poprzednim przykładzie atrybutem ruchu jest para ((5, 4),(2, 3)). Sasiedztwem danego rozwiazania dopuszczalnego x X nazywamy zbiór N(x) wszystkich rozwiazań 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: x 3 x 1 x 2 x 0 Idea algorytmu zachłannego polega na pełnym przegladzie sasiedztwa bieżacego rozwiazania x 0. Metody optymalizacji Paweł Zieliński p. 7/55
Algorytm zachłanny Algorytm zachłanny kończy pracę jeżeli w sasiedztwie bieżacego rozwiazania nie istnieja rozwiazania o mniejszej wartości funkcji celu, czyli: x N(x0 )f(x) f(x 0 ). Algorytm 1 (Algorytm zachłanny). 1: Wygeneruj losowo lub heurystycznie punkt startowyx 0 X 2: locallyoptimal f alse 3: repeat 4: Znajdźx N(x 0 ) dla któregof(x) jest najmniejsze 5: if f(x) < f(x 0 ) then 6: x 0 x 7: else 8: locallyoptimal true 9: end if 10: until locallyoptimal = true 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 x 1 x 0 Algorytm startuje z punktu x 0 i znajduje x 1 N(x 0 ) takie, że f(x 1 ) < f(x 0 ). Jeżeli dla każdego x N(x 1 ) f(x) f(x 1 ), wówczas x 1 jest więc minimum lokalnym. Algorytm kończy pracę 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ęść przestrzeni rozwiazań. Algorytm nie korzysta z informacji zebranej w poprzednich iteracjach (np. może okazać się, ż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 następujace cechy: Rezygnuje się z pełnego przegladania sasiedztwa bieżacego rozwiazania x 0. Zamiast tego kolejne rozwiazanie x jest wybierane z N(x 0 ) w sposób losowy. Metody optymalizacji Paweł Zieliński p. 11/55
Algorytm Symulowanego Wyżarzania Ruch z x 0 do x jest wykonywany z prawdopodobieństwem określonym za pomoca następujacej formuły: P(x 0,x) = min{1,exp( f(x) f(x 0 ) T i )}, gdzie T i określa temperaturę w i-tej iteracji algorytmu. Im wyższa jest temperatura tym większe jest prawdopodobieństwo przejścia z x 0 do x. Zadana jest pewna poczatkowa temperatura T max, która jest następnie obniżana w trakcie kolejnych iteracji. Algorytm kończy pracę jeżeli temperatura spadnie poniżej zadanej wielkości T min lub przekroczy zadana liczbę iteracji. Metody optymalizacji Paweł Zieliński p. 12/55
Porównanie Algorytm 2 (Algorytm symulowanego wyżarzania). Wygeneruj punkt startowyx 0 X T T max x opt x 0 repeat Wybierz w sposób losowyx N(x 0 ) if random[0,1) < P(x 0,x) then x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if end if T g(t) {Obniż temperaturę} until warunek końca=true Algorytm 3 (Algorytm zachłanny). Wygeneruj punkt startowyx 0 X x opt x 0 locallyoptimal f alse repeat Znajdź x N(x 0 ) dla którego f(x) jest najmniejsze if f(x) < f(x 0 ) then else x 0 x x opt x 0 locallyoptimal true 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 T max, np.: (a) T max = C, gdzie C jest stała, (b) T max = 10max i i, gdzie i = f(x i ) f(x i+1 ), i = 1,...,parametr. 2. Obniżanie temperatury g(t), np.: (a) g(t) = αt, gdzie α < 1 (α = 0.95), (b) g(t) = T 1+βT, gdzie β = T max T min maxitt max T min, T min = 10 4 T max i maxit maksymalna liczba iteracji (maxit = 10 5 ), (c) inne funkcje obniżania temperatury g(t) można znaleźć w (Wieczorkowski 1995). 3. Warunek końca np.: (a) T < T min, (b) przekroczenie maksymalnej liczby iteracji maxit. Metody optymalizacji Paweł Zieliński p. 14/55
Algorytm Tabu Search Ideę metaheurystyki Tabu Search oddaje następujacy cytat z ksiażki jej twórcy: Metaheurystyka Tabu Search może być określona jako metoda dynamicznej zmiany sasiedztwa danego rozwiazania. Oznacza to, że zbiór N(x) nie jest z góry ustalony dla każdego x lecz może zmieniać się 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 następujace charakterystyczne elementy: Funkcję oceny wartości ruchu, Listę ruchów zakazanych (Tabu List), Kryterium aspiracji, Strategię wyboru rozwiazań, Strategię dywersyfikacji. Tabu Search jest metoda bardzo ogólna a szczegóły jej implementacji różnia się 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 Dla każdych rozwiazań dopuszczalnych x i y N(x) definiujemy rzeczywista funkcję MVal(x,y) określajac a wartość ruchu z rozwiazania x do rozwiazania y. Ruch jest tym lepszy im większa jest dla niego wartość tej funkcji. Algorytm 4 (Algorytm TS1). Wygeneruj losowo lub heurystycznie punkt startowyx 0 X x opt x 0 repeat Znajdźx N(x 0 ), dla którego wartośćmval(x 0,x) jest największa x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if until warunek końca=true Najprostsza i najczęściej stosowana funkcja oceny wartości ruchu jest funkcja: MVal(x,y) = f(x) f(y). Metody optymalizacji Paweł Zieliński p. 17/55
Funkcja oceny wartości ruchu Problem (mink Tree) Załóżmy, że TS1 wykonał K iteracji i uzyskano K bieżacych rozwiazań x 0. Dla każdej krawędzi (i,j) E w grafie G obliczamy: 1. R(i,j) ile razy krawędź (i,j) należała do bieżacego rozwiazania x 0, 2. SR(i, j) suma wartości funkcji celu wszystkich rozwiazań zawierajacych krawędź (i, j), 3. MR(i,j) = SR(i,j)/R(i,j) średnia wartość funkcji dla rozwiazań zawierajacych krawędź (i,j) (MR(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ć: MVal(x,y) = α 1 (f(x) f(y))+α 2 R(i,j)/K+α 3 R(k,l)/K+α 4 MR(i,j)+α 5 MR(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ść wpadnięcia w cykl (algorytm wpada w cykl jeżeli jakieś rozwiazanie zostanie po raz drugi przyjęte jako rozwiazanie bieżace. x 3 x 4 x 2 x 0 x 1 Algorytm TS1 może wpaść w cykl. Ma to miejsce, gdy pewne rozwiazanie stanie się po raz drugi bieżacym rozwia- zaniem. W takim przypadku algorytm może w nieskończoność przegladać te same rozwiazania. Prawdopodobieństwo wpadnięcia w cykl można zminimalizować konstruujac w odpowiedni sposób funkcję MVal oraz stosujac listę ruchów zakazanych. Metody optymalizacji Paweł Zieliński p. 20/55
Lista ruchów zakazanych (Tabu List) TABU = {(atrybut 1,kadencja 1 ), (atrybut 2,kadencja 2 ),...,(atrybut l,kadencja l )) Ruch z rozwiazania x do rozwiazania y N(x) jest zakazany jeżeli pewien jego atrybut znajduje się na liście TABU. Parametr kadencja i określa liczbę iteracji przez która element (atrybut i,kadencja i ) znajduje się na liście TABU. Zdefiniujmy dla każdego x X zmodyfikowane sasiedztwo N (x): N (x) = {y y N(x) i ruch z x do y nie jest zakazany}. Metody optymalizacji Paweł Zieliński p. 21/55
Lista ruchów zakazanych (Tabu List) Algorytm 5 (Algorytm TS2). Wygeneruj losowo lub heurystycznie punkt startowyx 0 X x opt x 0 TABU repeat Znajdźx N (x 0 ), dla którego wartośćmval(x 0,x) jest największa x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if Dodaj nowe elementy do listytabu for all(atrybut i,kadencja i ) TABU do kadencja i kadencja i 1 ifkadencja i = 0 then usuń element(atrybut i,kadencja i ) ztabu end if end for until warunek zakończenia = true Metody optymalizacji Paweł Zieliński p. 22/55
Lista ruchów zakazanych (Tabu List) Problem (mink 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ć następujaco: TABU TABU {(drop(i,j),4),(add(k,l),2)} Do listy TABU 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 krawędź (i,j), a przez dwie kolejne iteracje zakazujemy ruchów, w których dodawana jest krawędź (k, l). Metody optymalizacji Paweł Zieliński p. 23/55
Wady i zalety algorytmu TS2 Zalety Zmniejsza ryzyko wpadnięcia 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 większy rozmiar problemu tym kadencje powinny być dłuższe, 2. im bardziej restrykcyjna jest lista TABU (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 Większa dokładność przeszukiwania (Intensyfikacja). Duże ryzyko wpadnięcia w cykl w pobliżu lokalnego minimum. Większy zakres przeszukiwania (Dywersyfikacja). 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 TABU. 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 TABU w sposób losowy z pewnego zakresu [t min,t max ]. 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 kadencję ustalamy na 10, następna 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 TABU moga zostać zakazane bardzo dobre ruchy. Kryterium aspiracji jest pewnym warunkiem narzuconym na każde rozwiazanie y N(x), które pozwala na wykonanie ruchu z x do y nawet jeżeli ruch ten jest zakazany. Kryterium aspiracji anuluje więc zakaz ruchu wynikajacy z listy TABU. Dla każdych rozwiazań x,y N(x) definiuje się funkcję Aspiration(x, y) przyjmujac a wartości TRUE lub FALSE, przy czym jeżeli Aspiration(x,y) = TRUE, to możliwe jest 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 się następujace kryteria aspiracji: 1. Aspiration(x,y) = TRUE jeżeli f(y) < f(x opt ) ruch prowadzi do rozwiazania y lepszego niż najlepsze do tej pory znalezione, 2. Aspiration(x,y) = TRUE jeżeli MVal(x,y) α wartość ruchu do rozwiazania y jest większa od pewnego parametru α, 3. inne, wynikajace ze struktury problemu i dotychczasowego przebiegu algorytmu. Zdefiniujmy dla każdego x X zmodyfikowane sasiedztwo N (x): N (x) = {y y N(x) i (ruch z x do y nie jest zakazany lub Aspiration(x,y) = TRUE)}. Metody optymalizacji Paweł Zieliński p. 29/55
Kryterium aspiracji Algorytm 6 (Algorytm TS3 (z kryterium aspiracji)). Wygeneruj losowo lub heurystycznie punkt startowyx 0 X x opt x 0 TABU repeat Znajdźx N (x 0 ), dla którego wartośćmval(x 0,x) jest największa x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if Dodaj nowe elementy do listytabu for all(atrybut i,kadencja i ) TABU do kadencja i kadencja i 1 ifkadencja i = 0 then usuń element(atrybut i,kadencja i ) ztabu 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 do N (x 0 ), co może być bardzo czasochłonne. 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ć liczbę przegladanych rozwiazań należacych do zbioru N (x). Jedna z najprostszych i najbardziej popularnych jest strategia aspiracji plus. Strategia aspiracji plus (Aspiration plus) 1. Przegladamy zawsze nie mniej niż minm i nie więcej niż maxm rozwiazań należacych do N (x). 2. Jeżeli znajdziemy y N (x) taki, że MVal(x,y) Aspiration, to przegladamy jeszcze tylko następne Plus rozwiazań pamiętajac o założeniu w punkcie 1 (czyli nie mniej niż minm i nie więcej niż maxm). 3. Przechodzimy do tego spośród przegladniętych rozwiazań y N (x) dla którego wartość MVal(x,y) jest największa. Metody optymalizacji Paweł Zieliński p. 32/55
Strategia aspiracji plus Mval y 0 Plus Aspiration 4 7 11 First minm maxm Liczba przegladanych ruchów 1 2 3 5 6 8 9 10 12 13 14 Po przegladnięciu F irst maxm ruchów zostało znalezione rozwiazanie dla którego MVal(x,y) Aspiration. Przegladamy więc jeszcze min{max{first+plus,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 się więc 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 x n x n x 0 x 0 Brak dywersyfikacji Przeszukiwanie z dywersyfikacja Metody optymalizacji Paweł Zieliński p. 34/55
Strategia dywersyfikacji Metoda zdarzeń krytycznych (Critical Events Memory), składajaca się z dwóch elementów: 1. Funkcji CriticalEvent() przyjmujacej wartości TRUE lub FALSE. Funkcja przyjmuje wartość TRUE 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 (pojęcie 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 (mink Tree) Przykład konstrukcji funkcji Restart() w problemie min k Tree dla k = 4. Dany jest następujacy graf G = (V,E): 26 2 1 6 23 3 5 12 20 17 18 15 1 4 6 25 8 6 16 9 16 9 24 16 7 16 11 9 7 8 10 20 9 Rozwizaniex i Ocena rozwiazania f(x i ) x 0 { (1,2), (1,4), (4,7), (6,7) } 40 x 1 { (1,2), (1,4), (4,6), (6,7) } 47 x 2 { (1,2), (1,4), (4,6), (6,8) } 57 x 3 { (1,4), (4,6), (6,8), (8,9) } 63 x 4 { (4,7), (4,6), (6,8), (8,9) } 46 x 5 { (4,7), (6,7), (6,8), (8,9) } 37 x 6 { (4,7), (6,7), (6,9), (8,9) } 37 x 7 { (6,7), (6,9), (8,9), (8,10)} 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 się z następujacych ł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ędzie należace do E\L o najmniejszej wadze tak aby w kolejnych krokach otrzymać drzewo składajace się z odpowiednio 1, 2, 3 i 4 krawędzi: y 0 {(3,5)} y 0 {(3,5),(5,9)} y 0 {(3,5),(5,9),(9,12)} y 0 {(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ędzi z E \L, to należy wybrać losowo krawędź 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 TABU repeat x 0 AspirationPlus(x 0 ) {Lub inna strategia wyboru rozwiazania} if f(x 0 ) < f(x opt ) then x opt x 0 end if Dodaj nowe elementy do listy T ABU for all (atrybut i,kadencja i ) TABU do kadencja i kadencja i 1 if kadencja i = 0 then usuń element (atrybut i,kadencja i ) z TABU end if end for if CriticalEvent() = true then x 0 Restart() {Dywersyfikacja} if f(x 0 ) < f(x opt ) then 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ęściej przekroczenie zadanej liczby iteracji. Zamiast AspirationP lus można wykorzystać inna strategię wyboru rozwiazań. Należy jednak pamiętać, że musi ona brać pod uwagę listę TABU i kryterium aspiracji. Jeżeli rozmiar zmodyfikowanego sasiedztwa N (x) nie jest duży, to należy dokonać jego pełnego przegladu. Powyższy schemat przedstawia jedynie bardzo ogólna ideę metody Tabu Search. Komputerowe implementacje tej metody różnia się 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 większości przypadków musza być ustalone w sposób eksperymentalny. Konstruujac algorytm oparty na idei Tabu Search dla konkretnego problemu należy wykazać się własna inwencja i pomysłowościa. Nie trzeba koniecznie ograniczać się do powyższego schematu. Należy dokładnie przeanalizować strukturę 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ć metodę 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. między każda para wierzchołków istnieje krawędź), V = 200 wagi krawędzi w ij, (i,j) E, sa liczbami losowymi z przedziału [1,10 4 ] i k = 14. Oscylacje 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. Najlepsze znalezione rozwiazanie Metody optymalizacji Paweł Zieliński p. 42/55
Problem szeregowania1 w i T i Dany jest zbiór prac J = {1,...,n}, które maja być wykonywane na jednej maszynie. Zakłada się, że przestoje maszyny sa nie dozwolone. Dla każdej pracy i J sa zadane: czas trwania p i, pożadany termin zakończenia d i oraz waga w i charakteryzujaca ważność pracy i. Każdy harmonogram jest pewna permutacja π = (π(1),...,π(n)) prac należacych do zbioru J. Przez C i (π), i J, oznacza się czas zakończenia pracy i w permutacji π, czyli jeżeli i = π(k) to C i = k j=1 p π(j). Celem jest wyznaczenie permutacji π dla której: w i max{0,c i (π) d i } min. i J w i T i (π) = i J Metody optymalizacji Paweł Zieliński p. 43/55
Problem szeregowania1 w i T i Możliwa realizacja Rozwiazania moga być kodowane jako (π(1),...,π(n)) prac należacych do zbioru J. Jako ruch można przyjać np. zamianę 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. TABU = {(swap(i 1,j 1 ),kadencja 1 ),(swap(i 2,j 1 ),kadencja 2 ),...}. Metody optymalizacji Paweł Zieliński p. 44/55
Problem szeregowaniafm C max Dany jest zbiór prac J = {1,...,n}, które maja być wykonywane na m maszynach M 1,...,M m. Zakłada się: 1. każda maszyna może wykonywać w danym momencie tylko jedna pracę, 2. każda praca musi być wykonywana najpierw na maszynie M 1 następnie na maszynie M 2 i na końcu na maszynie M m, 3. kolejność wykonywania prac na wszystkich trzech maszynach jest taka sama. Dla każdej pracy i J sa zadane czasy trwania p j i, na maszynie M j, j = 1,...,m. Każdy harmonogram jest jednoznacznie określony przez pewna permutację π = (π(1),...,π(n)) prac należacych do zbioru J. Przez C i (π) oznacza się czas zakończenie pracy i J na maszynie M m dla permutacji π. Celem jest wyznaczenie permutacji π takiej, że: C max = C π(n) min. Metody optymalizacji Paweł Zieliński p. 45/55
Problem szeregowaniafm C max Możliwa realizacja Rozwiazania moga być kodowane jako (π(1),...,π(n)) prac należacych do zbioru J. Jako ruch można przyjać zamianę miejscami dwóch prac w bieżacym rozwiazaniu. swap(i,j), gdzie i,j sa zamienianymi pracami. Niech π(k) i π(l) oznaczaja pozycję odpowiednio pozycję 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 pracę i na pozycję π(l) i wstaw pracę j na pozycję π(k). Atrybutami ruchu sa więc 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 szeregowaniafm C max 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 więc (3,1,2,4,5,6), co jest równoważne swap(5, 1) swap(4, 1) swap(2, 1). Atrybutami ruchu sa więc 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
Możliwa realizacja Problem komiwojażera Rozwiazania moga być kodowane jako permutację miast (π(1),...,π(n)). Każda taka permutacja jednoznacznie wyznacza następujac a trasę komiwojażera: π(1) π(2) π(1) o koszcie: c(π(n),π(1))+ n 1 i=1 c(π(i),π(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 1 5 4 3 W wyniku ruchu z trasy (1, 2, 3, 4, 5) otrzymujemy trasę (1,3,2,4,5). Atrybutem ruchu jest change(i,j), gdzie i,j sa zamienianymi miastami TABU = {(change(i 1,j 1 ),kadencja 1 ),(change(i 2,j 2 ),kadencja 2 ),...,}. Metody optymalizacji Paweł Zieliński p. 49/55
Problem programowania binarnego Dla danych c j, a ij i b i, i = 1,...,m, j = 1,...,n wyznaczyć wektor (x 1,...,x n ), dla którego n j=1 c jx j min n j=1 a ijx j b i i = 1,...,n x j {0,1} j = 1,...,n Możliwa realizacja Każde rozwiazanie może być kodowane jako wektor binarny (x 1,...,x n ) będacy 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 więc neg(i), gdzie i jest indeksem zanegowanej zmiennej. TABU = {(neg(i 1 ),kadencja 1 ),(neg(i 2 ),kadencja 2 ),...,}. Nie każdy wektor binarny spełnia zadane ograniczenia. Należy uwzględnić ten fakt wprowadzajac odpowiednia funkcję oceny wartości ruchu. Np. ruch z rozwiazania x = (x 1,...,x n ) do rozwiazania y = (y 1,...,y n ) można ocenić w następujacy sposób: n n m n MVal(x,y) = c j x j c j y j α max{0,b i c j x j }. j=1 j=1 i=1 Człon α m i=1 max{0,b i n j=1 c jx j } jest kara za naruszenie ograniczeń przez y. j=1 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 N(x 0 ) w sposób losowy. Rezygnuje się z akceptacji ruchu opartej na prawdopodobieństwie akceptacji. Zamiast tego ruch z x 0 do x jest wykonywany jeżeli spełniony jest następujacy progowy warunek akceptacji f(x) f(x 0 ) < T i, gdzie T i określa wartość progu w i-tej iteracji algorytmu. Im wyższy próg T i tym gorsze rozwiazania od rozwiazania bieżacego sa akceptowane (przeszukiwany jest większy zakres przestrzeni rozwiazań). Metody optymalizacji Paweł Zieliński p. 52/55
Algorytm TA threshold accepting Progi T i sa nierosnacym ciagiem nieujemnych liczb rzeczywistych. Najczęściej, w realizacjach algorytmu, sa one zadawane w tablicy. Algorytm TA kończy pracę jeżeli przekroczy zadana liczbę iteracji. Metody optymalizacji Paweł Zieliński p. 53/55
Porównanie Algorytm 7 (Algorytm symulowanego wyżarzania). Wygeneruj punkt startowyx 0 X T T max {poczatkowa temperatura} x opt x 0 repeat fork = 1 tok do {K jest zadana liczba powtórzeń} Wybierz w sposób losowyx N(x 0 ) if random[0,1) < P(x 0,x) then x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if end if end for T g(t) {Obniż temperaturę} until warunek końca=true Algorytm 8 (Algorytm TA). Wygeneruj punkt startowyx 0 X T T max {poczatkowy próg akceptacji} x opt x 0 repeat fork = 1 tok do {K jest zadana liczba powtórzeń} Wybierz w sposób losowyx N(x 0 ) if f(x) f(x 0 ) < T then x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if end if end for Weź z tablicy kolejny próg akceptacji T 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 10 6. Wybór losowy x N(x 0 ) jest realizowany za pomoca metody 2-opt, tj. wybiera się losowo dwa miasta i i j z trasy, następnie usuwamy połaczenia między 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