1 / 38

Przeszukiwanie z tabu

Przeszukiwanie z tabu. Autor: Przemysław Gospodarczyk. Znaczenie słowa tabu.

hidi
Download Presentation

Przeszukiwanie z tabu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Przeszukiwanie z tabu Autor: Przemysław Gospodarczyk

  2. Znaczenie słowa tabu • Tabu to w religiach pierwotnych zakaz podejmowania różnych działań w stosunku do osób, miejsc, rzeczy bądź stanów rzeczy lub też wypowiadania pewnych słów. Tabu było efektem przekonania o nieczystości pewnych zachowań. Wskutek złamania tabu następuje stan skażenia związany z odpowiednimi sankcjami, głównie ze strony sił nadprzyrodzonych. • Tabu to w szerokim sensie jakiś zakaz.

  3. Historia • Autorem TS jest Fred Glover, a pierwsza praca pochodzi z 1986 roku (przeszukiwanie lokalne było znane), choć Glover przedstawił już pewne założenia w roku 1977: - pamięć krótkotrwała, gdzie zapisujemy ostatnie ruchy; - pamięć długotrwała, gdzie zapisujemy najbardziej atrakcyjne elementy przestrzeni przeszukiwań. • Równocześnie, w tym samym roku, niezależnie, Michael Hansen zaprezentował podobną koncepcję zwaną „steepest ascent mildestdescent heuristic”.

  4. Przeszukiwanie z tabu jako idea • Glover od początku myślał o przeszukiwaniu z tabu jako o metaheurystyce, tzn. heurystyce nadrzędnej, która sterować będzie wykonaniem heurystyk niższego rzędu, które są odpowiednio „skrojone” na potrzeby konkretnego problemu optymalizacji. • Samo pojęcie TS to bardzo ogólny pomysł, niezależny od problemu, pomaga ułożyć konkretny algorytm ale bezpośrednio nie rozwiązuje żadnego konkretnego problemu. • Autorem pojęcia metaheurystyka jest Fred Glover (również rok 1986).

  5. Definicja ogólna • Przeszukiwanie z tabu (TS, ang. tabu search) – metahuerystyka do rozwiązywania problemów optymalizacyjnych, oparta na iteracyjnym przeszukiwaniu przestrzeni rozwiązań, wykorzystując sąsiedztwo pewnych elementów tej przestrzeni oraz zapamiętując przy tym przeszukiwaniu ostatnie ruchy, dopóki nie spełnimy warunku końcowego. • Rozwiązanie jest zastępowane przez najlepszego sąsiada, nawet gdy prowadzi do gorszego rozwiązania. • Lista tabu (zwana czasami zbiorem) zawiera ruchy zabronione, czyli takie które zostały już ostatnio wykonane (nie same rozwiązania). • W szczególności, czasami można łamać tabu (wykonywać ruchy niedozwolone), tzw. kryterium aspiracji (ang. aspiration criterion). • Dużo aspektów można dospecyfikować samodzielnie.

  6. Cele, czyli po co jest TS ? • Pomoc przy „wychodzeniu” z optimum lokalnego (które nie jest globalne) przy przeszukiwaniu lokalnym (osłabiamy regułę selekcji) – w szczególności TS może być LS wraz z listą tabu. • Sterowanie innymi heurystykami, gwarantując różnorodność rozwiązań (zmuszamy algorytm poprzez listę tabu do przeszukiwania niezbadanych wcześniej przestrzeni, nie „zapętlamy się”) przy wyraźnej zbieżności do rozwiązania optymalnego. • Odpowiednio dopasowany do problemu TS jako jedna z kilku samodzielnych (niezależnych) heurystyk, działająca na zbiorze rozwiązań, usprawniając je.

  7. Bardzo ogólny schemat TS S – przestrzeń przeszukiwań T – lista tabu RT – reguła selekcji STOP – warunek końcowy N – sąsiedztwo, zależne od osobnika i listy tabu

  8. Struktury sąsiedztwa • Należy zdefiniować relację sąsiedztwa na parach, dla danego problemu ze względu na format rozwiązań. • Relacja ma obejmować całą dziedzinę, czyli strukturę, którą przeszukujemy. • Załóżmy, że rozwiązania to permutacje zbioru n elementowego. Niech π = <π (0), π (1), π (2), π (3), π (4), π (5), ..., π (n-1)>. • Wtedy rozważamy sąsiedztwa ze względu na przejścia: - insert(1,4): π* = <π (0), π (4), π (1), π (2), π (3), π (5), …, π (n-1)>; -swap(1,4): π* = <π (0), π (4), π (2), π (3), π (1), π (5), …, π (n-1)>; - invert(1,4): π* = <π (0), π (4), π (2), π (3), π (1), π (5), …, π (n-1)>.

  9. Atrybuty przejścia (zawartość listy tabu) • Atrybuty przejścia to jego argumenty, które to przejście określają i są zapisywane do listy tabu. • Wraz z atrybutami zapisujemy długość zakazu (liczbę iteracji w trakcie których obowiązuje zakaz), która maleje o 1 z każdą iteracją. Wartość początkową należy dobrze przemyśleć (może być z góry zadana i stała, losowa lub zmienna w zależności od jakiegoś czynnika). • Dla danych atrybutów można trzymać częstotliwość (liczba wystąpień przejścia/wszystkie przejścia) i od niej uzależnić długość pobytu na liście.

  10. Kryterium aspiracji – łamanie tabu • Czasami zabranianie pewnych ruchów, mimo, że nie prowadzi do zapętleń, to może spowodować ogólną stagnację przy przeszukiwaniu. • Tabu bywa czasami za silne, zabrania atrakcyjnych ruchów lub w ogóle uniemożliwia ruch (wszyscy sąsiedzi są na liście tabu). • Zazwyczaj kryterium aspiracji polega na wykonywaniu zabronionego ruchu wtedy, gdy ten ruch prowadzi do rozwiązania lepszego niż globalnie najlepsze znane do tej pory lub lepszego niż bieżące. • Rzadziej stosuje się algorytmy sprawdzające, czy wykonanie ruchu może doprowadzić do powstania cyklu (efektywne implementacje z lat 1989, 1991).

  11. Wykorzystanie pamięci długoterminowej • Pamiętamy określoną liczbę najlepszych rozwiązań znalezionych podczas przeszukiwania. • Pamiętamy o ruchach, które okazały się korzystne (tworzymy interesującą nas statystykę), co pozwala na: - intensyfikację, czyli zagęszczenie próbkowania obszaru, jeżeli w tym obszarze znajdują się dobre rozwiązania; - dywersyfikację, czyli rozproszenie przeszukiwania, aby nie pominąć wszystkich podobszarów; - funkcja kary, która zależy od częstotliwości wykonywania danego ruchu i zaburza wartości funkcji celu.

  12. Zdarzenia krytyczne • Jeżeli zaszło określone zdarzenie krytyczne, to algorytm generuje nowe rozwiązanie startowe. • Zdarzeniem krytycznym może być: - brak poprawy wartości f. celu, po wykonaniu ustalonej liczby iteracji z rzędu lub zaledwie minimalna poprawa rozwiązania od dłuższego czasu; - zbyt długie przeglądanie podobnych rozwiązań do startowego (mimo, że nie ma cyklu); - arbitralne ustalenie, że co k iteracji generujemy nowe rozwiązanie. • Generator nowego rozwiązania startowego po zajściu zdarzenia krytycznego może wykorzystać jakieś dodatkowe informacje o problemie nabyte przed zdarzenie.

  13. Kryterium końca przeszukiwania • Nie znamy optymalnego rozwiązania, a kiedyś trzeba skończyć przeszukiwanie… • Zazwyczaj kończymy przeszukiwanie, gdy: - wykonamy ustaloną liczbę iteracji, - po wykonaniu ustalonej liczby iteracji z rzędu bez poprawienia wartości funkcji celu (najczęściej stosowane w praktyce), - jeżeli wartość funkcji celu osiągnie z góry zadaną wartość.

  14. Probabilistyczny TS • Zwykły TS oblicza wartość f. celu dla każdego sąsiada danego rozwiązania, co może być kosztowne przy skomplikowanej f. celu i dużej przestrzeni przeszukiwań. • Probabilistyczny TS może: - sprawdzać tylko losowy podzbiór sąsiadów (choć możemy przeoczyć dobre rozwiązanie, które jest blisko), - skracać listę tabu, (zrandomizowanie to silny mechanizm „anty-cyklowy”). • Po zakończeniu działania probabilistycznego TS, można przeprowadzić krótkie przeszukiwanie lokalne startując od najlepszego znalezionego rozwiązania. • Przeprowadzanie krótkiego przeszukiwania lokalnego co pewną liczbę zrandomizowanych kroków jest mniej efektywnym rozwiązaniem, ale daje lepsze rezultaty (Glover i Laguna, 1993).

  15. Świadome generowanie listy kandydatów • Można stworzyć zastępczą f. celu, bardzo uproszczoną w stosunku do oryginalnej i skorelowaną jakoś z nią. • Liczymy wartość zastępczej f. celu dla wszystkich sąsiadów, a najlepszych wybieramy do listy kandydatów. Dla każdego kandydata liczymy wartość oryginalnej f. celu i wybieramy najlepszego (Crainic , 1993).

  16. Reactive Tabu Search • Lista tabu stałej długości ma tę wadę, że ogranicza możliwości przeszukiwania, szczególnie gdy najlepsze rozwiązania są otoczone przez rozwiązania możliwe do uzyskania poprzez wykonanie zabronionych ruchów (tzn. w danym momencie przeszukiwania lista jest za długa). • Kolejna potencjalna wada: lista tabu nie chroni nas w 100 procentach przed powstaniem cyklu (tzn. w danym momencie przeszukiwania lista jest za krótka). • Reactive Tabu Search (RTS) steruje długością listy. • Pamiętamy wszystkie dotychczasowe rozwiązania wraz z numerem iteracji (haszowanie, drzewa binarne). • Po wykonaniu ruchu, możemy sprawdzić powtarzalność konfiguracji i wyznaczyć interwał między kolejnymi odwiedzinami.

  17. Reactive Tabu Search • Gdy konfiguracje zaczynają się powtarzać, RTS zwiększa długość listy (wolniej redukuje listę) w przeciwnym przypadku listę można skrócić. • Ponadto RTS używa dywersyfikacji jako mechanizmu obronnego przed przyciąganiem ekstremów lokalnych (co da się stwierdzić na podstawie dużej liczby powtórzeń). • Czasami przestrzeń wydaje się być mocno ograniczona przez listę tabu i kierunek przeszukiwania, który obraliśmy jest kiepski (wtedy RTS proponuje inny kierunek) – dosyć skomplikowane współczynniki i warunki z nimi związane. • Wady: pamięciożerność i zwiększona złożoność. • Autorzy piszą o możliwości kompresji, do odróżnienia m rozwiązań wystarczy log(m) bitów. • Pomysł: Battiti and Tecchiolli (1994).

  18. Ograniczenia przestrzeni przeszukiwania

  19. Tabu Cycle Method • Lista tabu jest dzielona na części zwane grupami tabu, gdzie k-ta grupa zawiera elementy z dodane w określonym przedziale iteracji. • Algorytm zezwala co jakiś czas na wykonanie ruchów z pewnych „starszych” grup tabu. • Im starsza grupa, tym częstotliwość pozwoleń jest większa i zależy od pewnego współczynnika TC(k), którego wartość mówi co ile iteracji można łamać tabu dla k-tej grupy.

  20. Tabu Cycle Method

  21. Tabu Cycle Method • Wysoka częstotliwość pozwoleń na łamanie tabu nie znaczy, że będzie ono za każdym możliwym razem łamane. • CC(k) to współczynnik, zwiększany o 1, w każdej iteracji, w której nie łamiemy tabu dla k-tej grupy. CC(k) nie liczymy dla buffer group. • Dodatkowo wprowadzono 3 możliwe statusy grup: - OFF – grupie nigdy nie wolno łamać tabu, przypadek dla CC(k) < TC(K) ; - ON – grupie wolno łamać tabu co TC(K) iteracji, przypadek CC(k) >= TC(K); - FREE – na grupę nie jest nałożone żadne tabu, przypadek, gdy grupa jest ON i każda starsza od niej też jest ON.

  22. Tabu Cycle Method • TC(n) = 2 TC(k) = TC(k-1)+1 dla k = n-1 … 1 • Na początku CC(k) = 1. • Jeżeli ruch e z grupy k-tej jest wykonany, to dla każdego h >= k: CC(h) = CC(h) – TC(h) • Jeżeli dozwolony ruch dla grupy k-tej nie jest wykonany to: CC(k) = min (CC(k)+1, aTC(k)) , gdzie a jest odpowiednio dobranym współczynnikiem, który pilnuje jak dużą wielokrotność TC można osiągnąć (czasami CC(k) staje się tak duży, że grupy są ON lub wręcz FREE zbyt długo). • Pomysł: Glover i Laguna (1997).

  23. TS – nowsze trendy • Hybrydyzacja algorytmów heurystycznych tzn. łączenie TS z innymi podejściami np. algorytmy ewolucyjne (Crainic i Gendreau, 1999). • Techniki generujące już w pierwszych iteracjach informacje specyficzne o problemie i wykorzystujące je w praktyce (lepsze niż losowe rozwiązanie startowe, krzyżowanie fragmentów najlepszych rozwiązań znalezionych przez TS, wiedząc, że pewne pozycje w wektorze rozwiązań powinny być wypełnione w określony sposób lub zależą od siebie). • Równoległość, np. mamy całą populację rozwiązań (algorytm ewolucyjny) i rozwiązania są poprawiane przez TS równolegle (Cung, 2002).

  24. Problem QAP – jedna z interpretacji • Dane: - zbiór n fabryk i zbiór n lokacji; - odległości dla każdej pary lokacji ze zbioru (macierz); - wagi (zależne od ilości transportowanych towarów) dla każdej pary fabryk ze zbioru (macierz). • Problem: przypisać każdą z fabryk do jednej z lokacji (każdą do innej) tak, aby zminimalizować sumę iloczynów dystansów między lokacjami i odpowiadających wag. Problem jest NP-trudny. • Formalnie: cel:

  25. ITS – schemat ogólny algorytmu

  26. ITS - Candidate Acceptance • Dwa sposoby: - eksploatacja (może prowadzić do intensyfikacji), - eksploracja (może prowadzić do dywersyfikacji). • Eksploatacja – jeden prosty pomysł polegający na wyborze najlepszego znanego rozwiązania. • Eksploracja – wiele pomysłów, generalnie dowolne, lokalnie zoptymalizowane rozwiązanie może być wybierane. • Strategia WYA („where you are”) – każde kolejne lokalne optimum, bez względu na jakość, jest w kolejnej iteracji wybierane przez Candidate Acceptance. • Inteligentniejsze metody mogą być oparte o uczący się algorytm ewolucyjny (np. PBIL) na przechowywanych rozwiązaniach.

  27. ITS - Reconstruction • Rekonstrukcja powinna być na tyle silna, że pozwala wyjść z ekstremum lokalnego. • Jednocześnie nowe rozwiązanie powinno dziedziczyć po starym pewne cechy charakterystyczne, tak aby algorytm nie był losowy. • Sąsiedztwo generowane jest przez jeden krok strategii swap(i,j). • Rekonstrukcja polega na wykonaniu jednego kroku „podwójnego” swap, tzn. dla i < j: double_swap(i,j) = swap(i,j) i swap(i+1,(j+1) mod n).

  28. Wyniki dla problemów z QAPLIB

  29. Nowe najlepsze rozwiązania • Nowe najlepsze wyniki dla dużych problemów QAP osiągnięto po ok. 20 godzinach działania algorytmu. • Algorytm dzięki swojej ogólności testowany był również dla problemów TSP i również dawał bardzo dobre rezultaty. • Pomysł: Misevicius, Lenkevicius, Rubliauskas (2006).

  30. Szkielet hybrydy ewolucyjno-TS 1. Generujemy startowy zbiór rozwiązań (sprytniej niż losowo). Pewna z góry ustalona liczba mówi nam ile chcemy rozwiązań najlepszej jakości, a ile najbardziej różnorodnych (one rozszerzają nam przestrzeń poszukiwań i zmniejszają prawdopodobieństwo zbieżności do ekstremum lokalnego). 2. Stosujemy TS. 3. Używamy metod kombinacji rozwiązań, aby inteligentnie wygenerować nowy zbiór rozwiązań, wykorzystując informacje o typie problemu i informacje nabyte w trakcie działania. 4. Stosujemy TS.

  31. Szkielet hybrydy ewolucyjno-TS 5. Otrzymane z 4. kroku rozwiązania dodajemy do głównego zbioru rozwiązań, w zależności od przynależności, do części najlepszych rozwiązań lub najbardziej różnorodnych. • Iteracja algorytmu trwa od 3. kroku do 5. • Jeżeli zbiór rozwiązań pozostaje niezmieniony po wykonaniu danej iteracji, to kolejną iterację poprzedza inicjowanie zbioru rozwiązań najbardziej różnorodnych (ten sam algorytm co w 1. kroku). • Algorytm kończy się po zadanej liczbie iteracji.

  32. Metoda Glovera – inicjowanie populacji • Metoda gwarantuje pewien poziom zróżnicowania rozwiązań. • Jako ziarno wykorzystujemy 1 losową permutację x. • Na podstawie ziarna tworzymy nowe rozwiązania. • Dane: - b – krok, naturalne, mniejsze od n, losowe dla każdego rozwiązania; - s – pozycja startowa, na początku równa b. Algorytm: rozwiązanie x' budujemy dodając najpierw element x(s), potem kolejno x(s + b), x(s + 2b), …, x(s + rb), gdzie r jest tak dobrane, że s+rb nie przekracza n. Kiedy dojdziemy do końca ziarna, to pozycja startowa zmniejsza się o 1 i cała operacja się powtarza aż nie zapełnimy całego wektora x' (musimy odwiedzić wszystkie pozycje w x). • Algorytm generuje po 10 rozwiązań dla każdego ziarna.

  33. Tabu Search Taillarda dla QAP • Dla „lepszej” populacji stosujemy TS Erica Taillarda dla QAP (ten krok można zrównoleglić). • Heurystyka oblicza możliwe zamiany lokacji 2 firm. • Wykorzystuje prostą listę tabu (ruchy niedozwolone). • Aby zmusić algorytm do przeszukiwania niezbadanych fragmentów przestrzeni, wymieniane są ze sobą tylko te elementy, które nie były wymieniane przez kilka ostatnich iteracji (na podstawie listy tabu). • Jeżeli jednak, zabroniona zmiana doprowadza do wyprodukowania najlepszego nieznanego do tej pory przez algorytm rozwiązania, to zamiana się dokonuje, mimo obecności na liście tabu (kryterium aspiracji).

  34. Krzyżowanie path-relinking • Wszystkie rozwiązania ze zbioru łączymy w pary (metoda każdy z każdym). • Stosujemy metodę path-relinking (można zrównoleglić). • Wektorami wiodącymi, zostają te, które są lepsze w swojej parze (lepiej optymalizują f. celu), np.: x = (8, 3, 4, 2, 1, 7, 5, 6) x'= (5, 3, 2, 1, 8, 7, 4, 6) zakładamy, że wiodący jest x. • x(1) i x'(1) nie odpowiadają sobie. W związku z tym zamiana jaką rozważamy (5, 8). Zamiana jest dokonywana jeżeli nie pogorszy wartości f. celu. Zakładając, że nie, potomek w tym kroku wygląda następująco: c = (8, 3, 2, 1, 5, 7, 4, 6) • Pozycje x(2) i x'(2) są takie same, więc nie ma zamiany. • Pozycje x(3) i x'(3) powodują rozważenie zamiany (4, 2). Załóżmy, że pogorszy ona wartość f. celu, więc nie zostanie dokonana. • Pozycje x(4) i x'(4) różnią się ale zmiana nie jest rozważana, bo dotyczy 2, która raz była rozważana (algorytm nie robi zmian wstecz), itd… aż do końca permutacji.

  35. Wybór rozwiązań • R1 – zbiór b1 najlepszych rozwiązań. • R2 – zbiór b2 najbardziej zróżnicowanych rozwiązań. • Nowe rozwiązanie wchodzi do R1 jeżeli jest lepsze niż najgorsze z tego zbioru i nie ma jego kopii ani w R1 ani w R2. • Nowe rozwiązanie wchodzi do R2 jeżeli jest bardziej zróżnicowane niż najmniej zróżnicowane z tego zbioru i nie ma jego kopii ani w R1 ani w R2. • Różnorodność rozwiązania x jest zdefiniowana jako dystans między tym rozwiązaniem, a wszystkimi rozwiązaniami z R1.

  36. Wyniki dla problemów z QAPLIB • Pomysł: James, Rego, Glover (2005)

  37. Podsumowanie • Tabu Search to proste, ale potężne i ogólne narzędzie, które można stosować do trudnych problemów kombinatorycznych. • Sama heurystyka nie spowoduje, że algorytm będzie znajdował dobre rozwiązania. Do rozwiązywania danego problemu konieczna jest wiedza specyficzna na temat zadania, wybór przestrzeni przeszukiwania, umiejętność zdefiniowania relacji sąsiedztwa i doświadczenie w projektowaniu algorytmów oraz w doborze ich parametrów. • Tabu search powoduje dosyć silną zbieżność do ekstremum (być może tylko lokalnego) już na samym początku działania algorytmu, ważna jest więc umiejętność dywersyfikacji i zmiany trajektorii przeszukiwania, by umiejętnie pokierować tym silnym narzędziem.

  38. KONIEC Dziękuję za uwagę !

More Related