Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w
Transkrypt
Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w
Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP Łukasz Strąk [email protected] Uniwersytet Śląski, Instytut Informatyki, Będzińska 39, 41-205 Sosnowiec 9 grudnia 2014, Sosnowiec |Plan prezentacji I Problem komiwojażera i jego dynamiczna wersja I Klasyczny algorytm PSO I Dyskretna wersja algorytmu PSO I Adaptacja do problemu DTSP I I Dodanie macierzy feromonowej Zastosowanie nowego sąsiedztwa I Przeszukiwanie lokalne I Wyniki eksperymentów I Podsumowanie I Dalsze kierunki badań 2/23 TSP |Definicja Klasyczny problem TSP można zdefiniować następująco: I w pełnym grafie ważonym: G = (V, E), gdzie V jest zbiorem wierzchołków, E jest zbiorem krawędzi oraz D jest macierzą odległości I znajdź minimalny cykl Hamiltona. 300 412 c b a 28 2 a b c d e a 0 412 707 509 854 b − 0 300 223 565 c − − 0 282 412 d − − − 0 360 e − − − − 0 d 36 0 854 e 3/23 DTSP |Definicja W przeciwieństwie do klasycznego problemu TSP w wersji dynamicznej, odległość jest przedmiotem zmian. Formalnie problem może być opisany poniższym równaniem: D(t) = {dij (t)}n(t)×n(t) , (1) gdzie: I D jest macierzą odległości, I t oznacza czas - parametr, który jest modyfikowany po każdej zmianie. W pracy rozpatrywana jest tylko wersja ze zmianą odległości. 4/23 DTSP |Środowisko testowe Test algorytmu rozwiązującego problem DTSP w przypadku zmiany tylko odległości między miastami wygląda następująco: Algorytm 1: Środowisko testowe DTSP Przeczytaj współrzędne miast while Kryterium stopu do Inicjuj algorytm Rozwiąż problem TSP Porównaj otrzymane rozwiązanie z optimum Zmień dane - n% // TSPLIB 5/23 DTSP |Przykład Optimal tour Optimal tour 1200 1200 1000 1000 800 800 600 600 400 400 200 200 0 0 -200 -200 0 200 400 600 800 1000 1200 1400 1600 1800 0 200 400 600 800 1000 1200 1400 1600 1800 Rysunek: Po lewej stronie wizualizacja trasy optymalnej zmodyfikowanego problemu, po prawej stronie kolorem czerwonym zaznaczono krawędzie, którymi różni się rozwiązanie optymalne sprzed zmian w stosunku do rozwiązania po zmianach. 6/23 PSO |Klasyczne równanie Wzory opisujące ruch cząsteczek po przestrzeni rozwiązań są następujące: ~vik+1 ← ω~vik ~ (0, φ1 ) ⊗ (pBest ~ − ~xk ) +U i ~ (0, φ2 ) ⊗ (gBest ~ − ~xki ) +U ~xk+1 i ← ~xki (2) + ~vik+1 gdzie: I ~v to prędkość cząsteczki, I ~x to pozycja cząsteczki, I gBest to najlepsza pozycja stada, I pBest to najlepsza pozycja cząsteczki, I I I I I I i to numer cząsteczki, k to numer iteracji, rand() to wartość losowa [0, 1], ω to wartość bezwładności, c1 to parametr kognitywny, c2 to parametr społeczny. 7/23 PSO |Przykład działania Optimum 1 0 -1 3 2 3 1 2 0 1 -1 0 -1 -2 -2 -3 -3 Rysunek: Ruch cząsteczek po przestrzeni rozwiązań. 8/23 DPSO |Adaptacja do TSP Algorytm DPSO zaproponowany przez Zhonga1 działa opierając się na zmienionym pojęciu krawędzi: I definiuje się ją jako (a, x, y), gdzie: I I I 1 a oznacza prawdopodobieństwo wybrania krawędzi. Jest wartością z przedziału [0, 1] x oraz y są końcami krawędzi (a, x, y) = (a, y, x). I Krawędź (2,3) z prawdopodobieństwem wyboru 0.4 przyjmuje postać (0.4, 2, 3). I Prawdopodobieństwo wyboru krawędzi używane jest, gdy algorytm jest w fazie selekcji omówionej w dalszej części prezentacji. Wen-liang Zhong and Jun Zhang and Wei-neng Chen 9/23 DPSO |Ruch cząsteczek Poniżej znajduje się równanie opisujące ruch cząsteczki w przestrzeni dyskretnej. Vik+1 = c2 rand() · (gBest − Xik ) + c1 rand() · (pBest − Xik ) + w · Vik Xik+1 = Vik+1 ⊕ c3 rand() (3) · Xik gdzie: I V , X to kolejna prędkość cząsteczki i jej kolejna pozycja, I gBest i pBest to zbiory zawierające najlepsze cykle Hamiltona: znalezione w całym roju oraz znalezione przez cząsteczkę i, I c1 i c2 , c3 , ω to wartości skalujące prawdopodobieństwo, że krawędź należąca do danego zbioru będzie w kolejne pozycji cząsteczki. 10/23 DPSO |Algorytm działania 1. W pierwszym kroku obliczana jest prędkość cząsteczki Vi . 2. W drugim kroku wybierane są krawędzie z Vi , zgodnie z ich prawdopodobieństwem wyboru a. 3. Następnie wybierane są krawędzie z Xi , zgodnie z ich prawdopodobieństwem wyboru a. 4. Jeśli poprzednie dwa kroki nie utworzą cyklu Hamiltona, brakujące krawędzie zostaną dodane poprzez heurystykę najbliższego sąsiada. I Dodana krawędź nie może tworzyć sub-cykli. I Wierzchołek nie może wystąpić więcej niż 2 razy. 11/23 Modyfikacje DPSO |Zastosowanie feromonu I Pierwszą modyfikacją, którą zastosowałem jest dodanie feromonu do algorytmu DPSO. Wykorzystywany jest jako atraktor lub repelent dla krawędzi, które wpływają bądź nie wpływają na poprawę najlepszego rozwiązania. I Po każdej zmianie danych, macierz feromonowa jest kopiowana z poprzedniego rozwiązania. I Wartość wzmocnienia prawdopodobieństwa wyboru krawędzi do następnej pozycji obliczana jest na podstawie wzoru: ∆τvk = (Pe − 0.5) · k kc (4) gdzie: I e oznacza wzmacnianą krawędź, I Pe to wartość odczytana z macierzy feromonowej, I k oznacza numer iteracji, I kc to liczba wszystkich iteracji. 12/23 Modyfikacje DPSO |Sąsiedztwo Drugą modyfikacją jest zastosowanie sąsiedztwa bazującego na pojęciu min 1-cyklu2 . Tworzenie go odbywa się w dwóch krokach. 1. Wyznaczamy MST z n − 1 wierzchołków. 2. Łączymy dwoma najkrótszymi krawędziami powstałe drzewo z pominiętym wierzchołkiem. Metoda Ascent zaproponowana przez Helsgauna ma na celu przekształcenie min 1-cyklu w cykl Hamiltona. 1 1 4 4 2 2 3 3 6 2 Keld Helsgaun 5 6 5 13/23 Modyfikacje DPSO |Sąsiedztwo Odległość między sąsiednimi wierzchołkami liczona jest na podstawie α - miary. Jest ona określona następująco: α(i, j) = L(T + (i, j)) − L(T ) (5) gdzie: I L oznacza sumę wag krawędzi min 1-cyklu, I T to min 1-cykl pochodzący z metody Ascent, I T + oznacza min 1-cykl z krawędzią (i, j). Każdej krawędzi przypisywana jest jej α wartość. Po sortowaniu tych wartości powstaje sąsiedztwo stosowane w pracy. 14/23 Modyfikacje DPSO |Przeszukiwanie lokalne I Uruchomienie przeszukiwania lokalne zazwyczaj poprawia jakość rozwiązania. I Zastosowanie tej metody może spowodować przedwczesną zbieżność, tym samym algorytm może zatrzymać się na optimum lokalnym. I Algorytm k-algorytm ma złożoność O(nk ). I Ze względu na najkorzystniejszy stosunek skrócenia długości trasy do czasu obliczeń, najczęściej wybiera się algorytm k ≤ 3. 15/23 Badania |Algorytmu DPSO Eksperymenty wykonano dla następujących ustawień: I c1 = 0.5, c2 = 0.5, c3 = 0.5, I ω to: berlin52 - 0.2, kroA100 i gr202 - 0.5, I i - liczba iteracji, berlin52 = 52 · 6, kroA100=100 · 7, gr202=202 · 12, I ns - rozmiar stada, berlin52 = 30, kroA100=60, gr202=80. Eksperymenty uruchomiono na komputerze z procesorem i7 o taktowaniu 3.2 GHz oraz wyposażonego w 12 GB pamięci ram. Komputer działa pod kontrolą system operacyjnego Microsoft Windows Server 2008 R2. Wszystkie testu uruchomiono na jednym rdzeniu. 16/23 Badania Problem berlin52 kroA100 eil101 kroA200 gr202 ch130 gil262 pcb442 gr666 |Warianty przeszukiwania Bez przesz. Warianty przeszukiwania lokalnego lokalnego Każda iter. Co 30 iter. Co 50 iter. Czas Opt. Czas Opt. Czas Opt. Czas Opt. 0.22 0 0.3 0 0.19 0 0.19 0 2.74 0.867 6.28 0 2.95 0.006 2.49 0.01 1.3 0.258 3.88 0.159 1.38 0.178 1.26 0.22 9.68 2.065 38.83 0 11.87 0.016 11.42 0.033 14.71 1.669 38.47 0.032 18.47 0.077 18.38 0.129 2.53 1.766 6.9 0.021 2.99 0.098 2.96 0.106 18.17 2.057 55.61 0.106 22.65 0.247 23.2 0.261 118,39 2,646 332,5 0,217 136,4 0,385 123,11 0,415 275,87 4,131 664,06 0,145 315,25 0,461 321,34 0,457 17/23 Badania |Zbieżność algorytmu Rysunek: Charakterystyka zbieżności dla problemu gr202 18/23 Badania Problem berlin52 berlin52 berlin52 berlin52 berlin52 kroA100 kroA100 kroA100 kroA100 kroA100 gr202 gr202 gr202 gr202 gr202 Proc. zmian 0% 3% 5% 10% 20% 0% 3% 5% 10% 20% 0% 3% 5% 10% 20% Licz. iter. 1 11 11 11 11 1 11 11 11 11 1 11 11 11 11 |Wyniki z LS Czas [s] LSLS+ 0,25 0,25 0,24 0,24 0,26 0,26 0,25 0,26 0,26 0,27 2,37 2,42 2,51 2,52 2,25 2,55 2,45 2,55 2,56 2,33 26,14 24,82 25,98 25,57 25,23 25,12 24,73 24,53 20,18 20,69 Odległość od opt. [%] LSLS+ 0 0 0,01 0 0,4 0,07 0,17 0 0,36 0,02 1,04 0 0,87 0,02 1,07 0,02 1,22 0,03 1,17 0,02 1,93 0,05 1,59 0,15 1,58 0,11 1,36 0,07 1,38 0,11 19/23 Badania |Podsumowanie I Przeszukiwanie lokalne często stosuje się jako metoda poprawiająca jakość rozwiązania. Znacznie przyspieszyła zbieżność do optimum, zarówno dla wersji statycznej jak i dynamicznej. I Algorytm nie ma tendencji do wpadania w lokalne optimum co zostało pokazane w badaniach. I Największą wadą jest wzrost czasu obliczeń, pomimo tego iż zastosowano przyspieszoną wersję dedykowaną dla symetrycznego problemu. I Proponowane rozwiązanie, dzięki feromonowi nie zaczyna przeszukiwania pełnej przestrzeni rozwiązań, a skupia się na poprawie najlepszych rozwiązań, co znacząco wpływa na odległość od optimum. 20/23 Dalsze prace | W najbliższej przyszłości chcemy skupić się na następujących zagadnieniach: I porównanie z algorytmami: ILS i ACO, I propozycja nowego algorytmu dla metody Ascent, I dalsze wykorzystanie teorii tolerancji w celu zwiększenia zysku związanego z kopiowaniem macierzy feromonowej. 21/23 Dalsze prace |Bibliografia I K. Helsgaun. An effective implementation of k-opt moves for the linkernighan tsp heuristic. Technical report, Roskilde University, 2006. W. liang Zhong, J. Zhang, and W. neng Chen. A novel set-based particle swarm optimization method for discrete optimization problems. In Evolutionary Computation, 2007. CEC 2007, volume 14, pages 3283 – 3287. IEEE, 1997. 22/23 Dalsze prace | Dziękuję za uwagę 23/23