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