Bazy danych
Transkrypt
Bazy danych
2011-03-30 PLAN WYKŁADU Przeszukiwanie lokalne Reguła Metropolisa Symulowane wyżarzanie Tabu search OPTYMALIZACJA GLOBALNA Wykład 7 dr inż. Agnieszka Bołtuć HEURYSTYKI METAHEURYSTYKI z greckiego: heuresis – odnaleźć, odkryć, heureka – znalazłem metoda znajdowania rozwiązań, dla której nie ma gwarancji znalezienia rozwiązania optymalnego, a często nawet prawidłowego, dają „dostatecznie dobry” wynik, ale nie gwarantują go we wszystkich przypadkach, rozwiązań tych używa się np. wtedy, gdy pełny algorytm jest z przyczyn technicznych zbyt kosztowny, gdy jest nieznany lub do określania wyników przybliżonych, heurystyki nadrzędne, sterujące w procesie iteracyjnego przeszukiwania heurystykami niższego rzędu, w ostatnich kilkudziesięciu latach opracowano wiele niekonwencjonalnych metod heurystycznego przeszukiwania, inspirowanych często mechanizmami fizycznymi lub biologicznymi, zaliczanych obecnie do rzędu metaheurystyk, 1 2011-03-30 KLASYFIKACJA HEURYSTYK jedno rozwiązanie bieżące „samotnego poszukiwacza” PRZESZUKIWANIE HEURYSTYCZNE Najprostszy, Bazuje na zachowaniu ludzkim, Zachowanie to skłania do przeszukiwania wszystkich możliwych przypadków, Schemat: while (!empty(zbior)) { inicjalizacja Xi ocena Xi if ( Xi gorszy od Xi-1) { rozw=Xi-1 } else { rozw=Xi } } Algorytmy pełnego przeglądu, Algorytmy pełnego przeglądu z warunkiem stopu, Przeszukiwanie lokalne, wiele rozwiązań bieżących „populacyjne” ALGORYTMY PEŁNEGO PRZEGLĄDU ALGORYTMY PEŁNEGO PRZEGLĄDU Koszt liniowy – bo liczba porównań zawsze równa liczności zbioru, tylko wtedy istnieje pewność o optymalności, Np. zadanie komiwojażera ma 2 dopuszczalnych rozwiązań, a zadania praktyczne zmuszają do przyjęcia zbioru nawet miliona miast, Jeśli liczba rozwiązań rośnie wykładniczo wraz z rozmiarem zadania, to algorytm pełnego przeglądu przestaje mieć praktyczne zastosowanie. (N 1)! 2 2011-03-30 ALGORYTMY PEŁNEGO PRZEGLĄDU Z PRZESZUKIWANIE LOKALNE WARUNKIEM STOPU Modyfikacja algorytmu pełnego przeglądu, Zakładamy, że po przerwaniu algorytmu w dowolnym kroku mamy jakieś rozwiązanie, dlatego też można wprowadzić warunek stopu, a wynikiem będzie heurystyka będąca prototypem do bardziej złożonej metody. Opierają sie na koncepcji “odległości” lub “podobieństwa” rozwiązań, wynikającej bądź z naturalnej, bądź ze sztucznie nałożonej struktury tychże rozwiązań, W praktyce do wytworzenia rozwiązań-kandydatów używa sie ustalonego zestawu transformacji rozwiązań bieżących: heurystyki samotnego poszukiwacza - jednoargumentowe transformacje lokalne (tzw. mutacje), heurystyki populacyjne oprócz transformacji lokalnych mamy dwu- lub wieloargumentowe transformacje mieszające, znane też pod nazwą rekombinacji. PRZESZUKIWANIE LOKALNE HEURYSTYKA LOKALNYCH ULEPSZEŃ dla każdego rozwiązania określa sie zbiór rozwiązań sąsiednich, tzw. sąsiedztwo, mając dany zestaw transformacji lokalnych i :S N ( x) i ( x), i I x S Losowanie rozwiązania początkowego, W otoczeniu tego rozwiązania szukane jest rozwiązanie lepszej jakości, które staje się rozwiązaniem bazowym, W kolejnych iteracjach szukamy nowego rozwiązania w otoczeniu aktualnego, Kończymy gdy w otoczeniu nie można znaleźć lepszego rozwiązania. S, i I definiujemy sąsiedztwo elementu najprostszy wariant heurystyki samotnego poszukiwacza, Etapy: jako 3 2011-03-30 HEURYSTYKA LOKALNYCH ULEPSZEŃ Rozwiązanie uzyskane za pomocą takiego algorytmu jest optimum lokalnym, Używając metafory wspinaczki, jest to szczyt, na który dostajemy sie idąc wyłącznie pod gorę; z tego względu heurystyki lokalnych ulepszeń nazywane są tez algorytmami wspinaczkowymi (ang. hill-climbing), Ciąg rozwiązań bieżących tworzonych przez heurystykę lokalnych ulepszeń jest ciągiem ściśle monotonicznym ze względu na funkcje oceny, dlatego nazywamy je heurystykami monotonicznymi. PRZYKŁADY STRUKTUR SĄSIEDZTWA Reprezentacja binarna Transformacja lokalna polega na zamianie wartości jednego elementu wektora j ( x1 , x2 ,, x j ,, xm ) ( x1 , x2 ,,1 x j ,, xm ) Nazywamy je mutacjami punktowymi, gdyż sąsiedztwo składa się z wektorów różniących się od danego jednym elementem, tzn. odległych o 1 w sensie metryki Hamminga: m H ( x, y) xj yj 1 STRATEGIE PRZESZUKIWANIA LOKALNEGO największego spadku pierwszego ulepszenia przeszukiwanie całego otoczenia i wybranie najlepszego rozwiązania podczas każdej iteracji brane jest tylko jedno rozwiązanie należące do sąsiedztwa, jeśli jest lepsze to staje się nowym PRZYKŁADY STRUKTUR SĄSIEDZTWA Punkt w przestrzeni Rn W przestrzeni Rn sąsiedztwem punktu x jest hipersfera o środku w punkcie x i promieniu ε, Permutacje W permutacji n-elementowej można zdefiniować sąsiedztwa jako następujące typy: INSERT SWAP INVERT j 1 4 2011-03-30 PRZYKŁADY STRUKTUR SĄSIEDZTWA PRZYKŁADY STRUKTUR SĄSIEDZTWA INSERT prosta transformacja lokalna - transpozycja dwóch elementów, para liczb (i,j) powoduje usunięcie go z pozycji i-tej i wstawienie na pozycję j-tą INSERT (i,j) P=<1,…, i-1, i, i+1,…, j-1, j, j+1, …, n> P*=<1,…, i-1, j, i, i+1,…, j-1, j+1, …, n> INSERT (2,4) P=<1,2,3,4,5,6,7,8,9> P*=<1,4,2,3,5,6,7,8,9> SWAP (i,j) P=<1,…, i-1, i, i+1,…, j-1, j, j+1, …, n> P*=<1,…, i-1, j, i+1,…, j-1, i, j+1, …, n> SWAP (2,4) P=<1,2,3,4,5,6,7,8,9> P*=<1,4,3,2,5,6,7,8,9> PRZYKŁADY STRUKTUR SĄSIEDZTWA METODY UNIKANIA OPTIMÓW LOKALNYCH INVERT bardziej zaawansowany rodzaj transformacji zamiany z odwróceniem, polegają na odwróceniu całego segmentu permutacji miedzy pozycjami i, j (włącznie z końcami) SWAP prosta transformacja lokalna - transpozycja dwóch elementów, zamienia pozycje elementów (i, j) w permutacji INVERT (i,j) P=<1,…, i-1, i, i+1,…, j-1, j, j+1, …, n> P*=<1,…, i-1, j, j-1,…, i+1, i, j+1, …, n> INVERT (2,5) P=<1,2,3,4,5,6,7,8,9> P*=<1,5,4,3,2,6,7,8,9> Metoda wielostartu Metoda wielostartu ze zmodyfikowaniem bieżącego położenia, Heurystyki niemonotoniczne 5 2011-03-30 METODA WIELOSTARTU ZE ZMODYFIKOWANIEM METODA WIELOSTARTU Wielokrotne uruchamianie algorytmu lokalnych ulepszeń z różnymi losowo wybranymi punktami startowymi, gdy zostanie zauważona stagnacja algorytmu, BIEŻĄCEGO POŁOŻENIA Podobny do wielostartu, Przy stagnacji algorytm jest przerywany i uruchamiany po raz kolejny, jednak punktem startowym nie jest punkt wygenerowany losowo a brane jest rozwiązanie bieżące lekko zmodyfikowane, Pozwala to na uwzględnienie pracy wykonanej dotychczas i opuszczenie minimum lokalnego w którym algorytm mógł utknąć, Jako wynik ostateczny przyjmuje sie najlepsze rozwiązanie końcowe ze wszystkich wykonań. HEURYSTYKI NIEMONOTONICZNE REGUŁA METROPOLISA Opierają się na rezygnacji z monotoniczności, czyli dopuszczają do wybrania rozwiązania gorszego, x – rozwiązanie bieżące y – rozwiązanie kandydat Odstępstwo takie nie może być zbyt radykalne, gdyż grozi to utraceniem mechanizmu ukierunkowującego prowadzenie poszukiwań ku rozwiązaniu optymalnemu, x*= y gdy f(y) lepsze niż f(x) akceptacja bezwarunkowa y gdy f(y) gorsze niż f(x) akceptacja z prawdopodobieństwem p exp( f ( x) Postępuje się zgodnie z regułą Metropolisa. f ( y) / T ) gdzie T- parametr rzeczywisty, zwany temperaturą, T>0, 6 2011-03-30 REGUŁA METROPOLISA SYMULOWANE WYŻARZANIE Dobierając T określamy siłę selekcji gdy T 0 to p 0 i otrzymujemy regułę selekcji z heurystyk monotonicznych, gdy T losowe, to p Mateheurystyka będąca połączeniem dwóch heurystyk: lokalnego przeszukiwania z regułą selekcji Metropolisa oraz tzw. schematu chłodzenia regulującego dynamicznie temperaturę, Wywodzi się z technologii stosowanych w metalurgii i wytopie szkła. 1 i otrzymujemy błądzenie dla wartości pośrednich prawdopodobieństwo akceptacji gorszego rozwiązania maleje wraz z różnicą jakości. SYMULOWANE WYŻARZANIE SCHEMATY CHŁODZENIA Schemat wylosuj rozwiązanie początkowe i=0 T (0) while (!stop) { x= RM(T, x, losuj (N(x))) i=i+1 T } x (i ) x D Schemat logarytmiczny (Boltzmanna) (k ) STOP – gdy temperatura poniżej progu wybranego w okolicy 0 1 (1 log( k )) Schemat liniowy (Cauchego) (k ) 1 k Schemat geometryczny (k ) ak , gdzie 0 a 1 7 2011-03-30 SCHEMATY CHŁODZENIA Najpewniejszy – schemat logarytmiczny, jednak bardzo wolny (średni czas porównywalny z rozmiarem przestrzeni), Najszybszy – geometryczny, W każdym ze schematów trzeba odpowiednio dobrać temperaturę początkową. TABU SEARCH Zwany przeszukiwaniem z tabu, Jest algorytmem samotnego poszukiwacza, stanowiącym niemonotoniczne rozwiniecie deterministycznej heurystyki lokalnych ulepszeń, Zostało wymyślone przez prof. Freda Glovera w latach osiemdziesiątych. TABU SEARCH - ZASADY TABU SEARCH Rozwiązanie bieżące zawsze jest zastępowane przez najlepsze z danego otoczenia, nawet jeśli jest gorszej jakości, Zastosowano tu metodę dynamicznego sąsiedztwa, aby uniknąć powtarzania punktów bieżących – polega ona na okrojeniu sąsiedztwa poprzez wyeliminowanie rozwiązań, które były już zaakceptowane jako bieżące, Te wcześniej zaakceptowane tworzą listę TABU, której zakazy mają charakter czasowy, Istnieją odstępstwa od zakazu, tzw. kryteria przekraczania TABU : Jakość nowego rozwiązania jest lepsza od wszystkich poprzednich, Wszystkie propozycje przejść do sąsiadów są objęte TABU (kryterium przymusowego przekraczania TABU), Jakość rozwiązania jest zdecydowanie lepsza od aktualnej, 8 2011-03-30 W YKŁAD PRZYGOTOWANO NA PODSTAWIE TABU SEARCH - SCHEMAT utwórz rozwiązanie początkowe x D T=0 while (!stop) { x= RT(x, Nd(x,T)) uaktualnij T T - lista TABU RT – reguła selekcji z } kryterium przekraczania Nd – sąsiedztwo x K. Trojanowski, „Metaheurystyki praktyczne”, WIT, 2005, K. Grygiel, „Metaheurystyki, notatki do wykładu”, UW, J. Arabas „Wykłady z algorytmów ewolucyjnych”, WNT, 2001, Z. Michalewicz „Algorytmy genetyczne + struktury danych = programy ewolucyjne”, WNT, 1992, dynamiczne zależne od listy tabu 9