Symulowane wyżarzanie Hybrydy symulowanego wyżarzania Inspiracje fizyczne Urszula Boryczka
ENTROPIA Nieporządek mierzymy liczbą sposobów, na które można poustawiać składniki, nie naruszając wyglądu zewnętrznego ciała. Przez porządek nie rozumiemy przyjemnego ładu, ale to, że liczba różnych sposobów, na które możemy go zmienić nie naruszając wyglądu zewnętrznego jest względnie ograniczona (R. Feymann). W potocznym rozumieniu wzrost entropii kojarzy się z nieporządkiem. Ponieważ w trakcie krzepnięcia stopień uporządkowania cząsteczek drastycznie się zmienia, można oczekiwać, że zmianom fazowym towarzyszy zmiana entropii (P. W. Atkins).
Demony w fizyce Fizyka zajmuje się demonami bo są one przydatne w rozważaniu zjawisk i praw fizycznych. Są to jednak stwory istniejące wyłącznie w umysłach fizyków (czasem też na papierze bądź ekranie). Najsłynniejszym z nich jest termodynamiczny demon Maxwella (1867 r.), który usiłuje obalić prawo wzrostu entropii. Zgodnie z nim wielkość fizyczna będąca miarą nieuporządkowania (bałaganu) i nazywana entropią musi zawsze rosnąć. Żeby się o tym przekonać wystarczy przez jakiś czas nie sprzątać. Sprzątanie jednak powoduje spadek entropii (wzrost uporządkowania), ale jest to wzrost lokalny i zachodzący wyłącznie dlatego, że wkładamy weń wiele energii, która po rozproszeniu na ciepło tak czy siak powiększa entropię. Każdy układ zmierza więc zawsze w stronę bałaganu.
Demony w fizyce Z zasady Landauera wynika, że wymazanie jednego bitu informacji w otoczeniu o temperaturze T wymaga dyssypacji energii (summa summarum wydzielenia ciepła) o wartości nie mniejszej niż kt ln(2) gdzie k 1,38 10-23 J/K jest stałą Boltzmanna (tak właśnie informacja jest formą energii). Demon może więc przez pewien czas funkcjonować ale koniec końców nie jest w stanie pokonać entropii.
RÓWNANIE L. BOLTZMANNA Związek pomiędzy entropią a liczbą mikrostanów (czyli wielkością statyczną) : Entropia jest równa logarytmowi naturalnemu z liczby mikrostanów pomnożonemu przez stałą Boltzmanna. S = k ln W P(E) e(-e/kt)
NIEPORZĄDEK A ENTROPIA Jeśli definicję nieporządku oprzemy na definicji technicznej określającej liczbę sposobów rozłożenia elementów składających się na dane ciało (układ) bez zmiany jego wyglądu zewnętrznego, to im więcej jest tych sposobów, tym większa jest entropia. Stąd tym większa entropia im większy nieporządek. Niekoniecznie musi to oznaczać nieład przestrzenny struktury. Struktury regularne (miłe dla oka) mogą mieć większą entropię niż struktury nieregularne bez wyraźnego porządku. Brak ruchu powoduje, że liczba sposobów porozmieszczania elementów maleje, a tym samym maleje entropia. Im większa swoboda ruchu, tym większa entropia. Jeśli elementy układu są rozmieszczone regularnie to średnio każdy może dostać więcej miejsca do ruchu niż wtedy, gdy elementy są rozłożone nieregularnie. Zależy to od gęstości tj ile elementów przypada na jednostkę objętości.
ALGORYTM METROPOLIS Podstawy algorytmu symulowanego wyżarzania zostały opisane po raz pierwszy w roku 1953 przez Metropolisa. Zarówno swoją nazwę, jak i sposób działania zawdzięcza on analogii do pewnych zjawisk fizycznych. W procesach ochładzania (zestalania) cieczy, jak i stygnięcia metali zaobserwowano, że przy stopniowym, powolnym ochładzaniu, cząsteczki ciała oddając energię rozkładają się w sposób bardziej systematyczny tworząc bardziej równomierne struktury. Jeżeli spadek temperatury jest zbyt szybki, to cząsteczki ciała nie znajdą optymalnego położenia i rozłożą się bardziej chaotycznie.
IDEA SYMULOWANEGO WYŻARZANIA Metoda symulowanego wyżarzania (ang. simulated annealing), nazywana również symulowanym wygaszaniem, należy do grupy nowoczesnych heurystyk, które poszukują rozwiązania w sposób stochastyczny, badając podprzestrzeń przestrzeni przeszukiwań, zwaną sąsiedztwem. Metoda ta jest modyfikacją błądzenia przypadkowego (czyli metody Monte Carlo), w której nowo wygenerowany punkt nie zawsze staje się rozwiązaniem roboczym: dzieje się tak wówczas, gdy poprawia on wartość funkcji celu, natomiast w przeciwnym przypadku, akceptacja następuje z prawdopodobieństwem równym ( ) p a = exp f T gdzie: f - moduł różnicy funkcji celu w starym i nowo wygenerowanym punkcie, T 0 parametr nazywany temperaturą.
SYMULOWANE WYŻARZANIE Algorytm symulowanego wyżarzania jest rozwinięciem wcześniejszych metod iteracyjnych, które opierały się na ciągłym ulepszaniu istniejącego rozwiązania do momentu, gdy nie udawało się go dalej poprawić. Przejście z jednego rozwiązania do drugiego jest realizowane przez tzw. funkcję przejścia i polega na znalezieniu rozwiązania sąsiedniego, co jest zależne od problemu, w którym algorytm jest zastosowany. Wadą tych metod było to, że zatrzymywały się one przy rozwiązaniu pseudo-optymalnym stanowiącym jedynie minimum lokalne optymalizowanej funkcji. Algorytm taki nie miał możliwości wyjść z niego, aby kontynuować optymalizację w kierunku globalnego minimum. Ważną różnicą pomiędzy pierwotnymi metodami iteracyjnymi, a algorytmem symulowanego wyżarzania jest możliwość wyboru przez niego gorszego rozwiązania. Wybór taki jest dokonywany z pewnym prawdopodobieństwem. Dzięki temu algorytm symulowanego wyżarzania może w określonych warunkach wyjść ze znalezionego minimum lokalnego i dalej podążać w kierunku rozwiązania optymalnego.
TEMPERATURA W SA Parametrem algorytmu, który ma wpływ na prawdopodobieństwo wyboru gorszego rozwiązania jest parametr przeniesiony bezpośrednio z podstaw termodynamicznych algorytmu, czyli temperatura. Im wyższa, tym prawdopodobieństwo wyboru gorszego rozwiązania jest większe. Im niższa, tym algorytm jest bardziej zbliżony w działaniu do typowych metod iteracyjnych. To właśnie znajduje odzwierciedlenie w drugim ważnym aspekcie algorytmu symulowanego wyżarzania, czyli w powolnym ochładzaniu. Na początku działania algorytmu temperatura jest wysoka, dzięki czemu algorytm może bardzo często zmieniać konfigurację rozwiązania, niejednokrotnie wybierając rozwiązanie gorsze. Wraz z kolejnymi iteracjami algorytmu temperatura spada i wybierane są częściej rozwiązania lepsze. Pod koniec pracy algorytmu, temperatura jest na tyle niska, że prawdopodobieństwo wyboru gorszego rozwiązania jest bliskie zeru. Algorytm zachowuje się wówczas, jak typowy algorytm iteracyjny i stara się maksymalnie ulepszyć rozwiązanie.
ALGORYTM SA Wyznaczyć rozwiązanie początkowe s Wyznaczyć temperaturę początkową T repeat for i = 0 to L Wyznaczyć losowo sąsiednie rozwiązanie s N(s) f = f(s ) f(s) if f < 0 then s = s else Wylosować x z zakresu (0,1) if x < exp(- f/t) then s = s T= α(t) until warunek zatrzymania = true Zwrócić rozwiązanie s
WYJAŚNIENIE s bieżące rozwiązanie, N(s) zbiór sąsiednich rozwiązań dla rozwiązania s, f różnica kosztów rozwiązań: nowego i poprzedniego, f(s) funkcja oceny rozwiązania (funkcja kosztu), T aktualna temperatura, α(t) funkcja zmiany temperatury, L długość epoki (liczba wewnętrznych iteracji).
ALGORYTM SA ze strategią lidera Wyznaczyć rozwiązanie początkowe s i sb Wyznaczyć temperaturę początkową T repeat for i = 0 to L Wyznaczyć losowo sąsiednie rozwiązanie s N(s) if (f(s ) < f(sb)) then sb = s f = f(s ) f(s) if f < 0 then s = s else Wylosować x z zakresu (0,1) if x < exp(- f/t) then s = s T= α(t) until warunek zatrzymania = true Zwrócić rozwiązanie sb
OPIS ALGORYTMU SA Sednem działania tej wersji algorytmu jest wykorzystanie jeszcze jednego rozwiązania oprócz bieżącego i sąsiedniego. Jest to rozwiązanie najlepsze, które na początku działania algorytmu jest rozwiązaniem inicjalnym. W toku dalszego działania algorytmu rozwiązanie to zostaje zastąpione nowo znalezionym rozwiązaniem sąsiednim w przypadku, gdy koszt rozwiązania sąsiedniego jest niższy niż koszt rozwiązania najlepszego. Na koniec działania algorytmu zwracane jest właśnie to rozwiązanie najlepsze. Dzięki temu mamy pewność, że rozwiązanie zwracane przez algorytm jest najlepszym rozwiązaniem znalezionym podczas jego działania. W pierwotnej wersji algorytmu zwracane jest rozwiązanie bieżące, w takim stanie w jakim znajduje się ono po osiągnięciu kryterium zatrzymania. Może więc się zdarzyć, że algorytm po osiągnięciu najlepszego możliwego rozwiązania, przejdzie do rozwiązania gorszego i zostanie w tym punkcie. Jeśli nie uda mu się ponownie wyjść z tego punktu do rozwiązania lepszego, to w rezultacie otrzymamy rozwiązanie gorsze od najlepszego, mimo że po drodze takie rozwiązanie zostało znalezione.
WYGASZANIE GENETYCZNE - Kenneth Price W przypadku wygaszania genetycznego do każdego łańcucha bitów przypisuje się próg energii. Początkowo, każdy z progów równy jest energii przypadkowego łańcucha, do którego został przypisany. W przeciwieństwie do kryterium zachłannego, próg łańcucha bitów, a nie jego energia, określa, która próbna mutacja stanowi akceptowalne ulepszenie. Jeśli energia mutanta przewyższa próg łańcucha bitów, który go wytworzył, wówczas mutant jest usuwany i przenosimy się do łańcucha bitów. Jeśli jednak jego energia jest mniejsza lub równa progowi, wtedy mutant jest przyjmowany w miejsce swojego poprzednika. Należy tutaj zaznaczyć, iż omawiany przykład dotyczy zadania minimalizacji, w związku z czym im mniejsza energia mutanta, tym lepsza jest jakość uzyskanego rozwiązania.
BANK ENERGII Wygaszanie genetyczne wykorzystuje tak zwany bank energii, reprezentowany przez zmienną rzeczywistą DE, celem śledzenia ilości energii uwalnianej przez udanych mutantów. Za każdym razem, gdy mutant przejdzie przez test progu, różnica pomiędzy energią progu a energią mutanta dodawana jest do DE. Kiedy już uwolniona ilość ciepła zostanie wzięta pod uwagę, próg zostaje przywrócony do poziomu energii zaakceptowanego mutanta, a my przechodzimy do następnego łańcucha bitów. Po poddaniu każdego łańcucha bitów przypadkowej mutacji, odgrzewamy całą populację poprzez małe podniesienie każdego z progów. To, o ile podnosimy progi, zależy od ilości energii zgromadzonej w banku energii, a także od szybkości, z jaką chcemy chłodzić populację. Jeśli N przyjmiemy za liczbę łańcuchów bitów, wówczas średni wkład każdego z nich wyniesie DE/N. Żeby w pełni odgrzać populację, należy po prostu dodać DE/N do każdego z progów. Wygaszanie pojawi się tutaj jako efekt powtarzających się cykli zbierania energii od udanych mutantów (spontaniczne ochładzanie) i przeprowadzania redystrybucji prawie całej energii poprzez jednakowe podnoszenie progów energii członków całej populacji.
STAŁA SCHŁADZANIA Żeby rozprężyć łańcuchy bitów w sposób optymalny, trzeba je chłodzić bardzo powoli. W programie wygaszania genetycznego szybkość chłodzenia kontrolowana jest stałą C liczbą rzeczywistą z domkniętego przedziału [0,1], która reprezentuje zwracaną populacji część banku energii DE. Na przykład C=1 utrzymuje całą populację w stałej temperaturze poprzez wykorzystywanie 100% energii przechowywanej w banku energii DE do podgrzania progów. Dla kontrastu C=0 zatrzymuje całą energię przechowywaną w DE i nie zmienia progów. W efekcie C=0 stanowi przykład algorytmu zachłannego, ponieważ każdy próg jest równy energii łańcucha bitów, do jakiego jest przypisany. Większość problemów wymaga jednak bardzo powolnego chłodzenia. Zwykle C waha się od 0,9 do 0,99 i więcej, chociaż dla danego problemu wybór optymalnego C zależy od całej gamy różnorodnych czynników.
SCHEMAT SCHŁADZANIA Tradycyjne metody wygaszania opierają się poza tym na schemacie wygaszania, który kontroluje tempo, w jakim powinna być obniżana temperatura Metropolis. Zaletą wykorzystania progów do śledzenia uśrednionej po czasie straty jednostkowej energii jest to, że możemy utrzymać równowagę w jakiejkolwiek temperaturze bez korzystania ze schematu wygaszania, po prostu poprzez dodawanie energii progowi z taką samą średnią prędkością, z jaką traci ją cała populacja. Prawdopodobnie największą zaletą, jaką przynosi równoległe chłodzenie całej populacji jest możliwość wykorzystania krzyżowania jako formy mutacji. Zamiast kombinowania par łańcuchów bitów w oddzielnych procedurach krzyżowaniach (tak, jak robi się to w algorytmach genetycznych), algorytm wygaszania genetycznego przekazuje informację genetyczną pomiędzy łańcuchami poprzez ich splatanie. Splatanie próbnie zamienia fragment docelowego łańcucha z korespondującą sekcją łańcucha przypadkowo wybranego spośród całej populacji. W scenariuszu splatania przypadkowo wybrany łańcuch pozostaje nie zmieniony, ale dostarcza docelowemu łańcuchowi kopie segmentu swojego materiału genetycznego, w celu przeprowadzenia próbnej mutacji. Poprzez czerpanie z lepszych konfiguracji obecnych w populacji, splatanie daje algorytmowi wygaszania genetycznego całą moc rozwiązywania problemów, którą krzyżowanie daje algorytmom genetycznym.
WYGASZANIE FEROMONOWE Wygaszanie feromonowe bazuje na właściwościach klasycznego algorytmu mrowiskowego, który został rozbudowany o pewne elementy. Nową cechą występującą w wygaszaniu feromonowym jest potrzeba rozróżniania i pamiętania wszystkich mrówek (agentów) wraz z ich dotychczasowym najlepszym wynikiem (najlepszą wyznaczoną trasą). Drugą podstawową nowością jest wprowadzenie odpowiednika drugiej listy tabu (TL). W klasycznym ACS lista tabu zawierała listę miast odwiedzonych już przez mrówkę w danej iteracji. W algorytmie wygaszania feromonowego istnieją dwie listy, przechowujące miasta już odwiedzone przez mrówkę: LISTA LOKALNA i LISTA GLOBALNA. Na LIŚCIE LOKALNEJ, tak jak w odpowiadającej jej liście TABU w algorytmie mrowiskowym, pamiętane są miasta, które mrówka odwiedziła w danej iteracji. Dodatkowo wymagane jest więc pamiętanie progów energii charakterystycznych dla każdej mrówki (a raczej dla każdego rozwiązania wyznaczonego przez mrówki w danej iteracji). LISTA GLOBALNA zawiera zaś najlepsze rozwiązania osiągnięte do tej pory przez mrówki, co wiąże się (podobnie jak w przypadku LISTY LOKALNEJ) z koniecznością pamiętania progów energii tych rozwiązań. Dodatkowo pamiętana jest wartość zmiennej DE, określająca bank energii wszystkich mrówek.
STRATEGIE PA (wygaszania feromonowego) Istotną różnicą w stosunku do algorytmów mrowiskowych jest ponadto wprowadzenie nowej procedury, zwanej strategią chłodzenia, której ważnym elementem jest kryterium akceptacji. Kryterium to umożliwia porównywanie nowo otrzymywanych rozwiązań z rozwiązaniami wcześniej uzyskanymi i ich akceptację ich, gdy spełnione są określone warunki. W wygaszaniu feromonowym przyjęto metaforę wyżarzania traktując jakość rozwiązań jako energię (temperaturę), przy czym nie stosuje się kryterium zachłannego, w którym nowe rozwiązania akceptuje się, gdy ich energia jest mniejsza lub równa energii rozwiązań poprzednich, lecz rozpatruje się progi energii, które jedynie początkowo równe są energii rozwiązań, do których zostały przypisane. Inną cechą zaczerpniętą z wygaszania genetycznego jest strategia schładzania i proces odgrzewania. Wyżarzanie pojawia się tu jako efekt powtarzających się cykli zbierania energii, gdy rozwiązanie jest akceptowane i przeprowadzania redystrybucji energii przez jednakowe podnoszenie wszystkich progów (odgrzewanie).
STRATEGIE PA (wygaszania feromonowego) Nieformalnie, zasada działania strategii optymalizacyjnej włączanej po pierwszym etapie algorytmu wygaszania feromonowego, to znaczy po wyznaczeniu rozwiązań początkowych zgodnie z klasycznym ACS, polega na zastosowaniu procedury schładzania, a następnie uruchomieniu procesu odgrzewania. Jednak zanim to nastąpi, każda mrówka musi być ponumerowana i dla każdej musi być zapamiętany na LIŚCIE GLOBALNEJ jej najlepszy dotąd wynik. Na początku zmienna próg dla każdej mrówki będzie równa jakości tego najlepszego dotąd, zapamiętanego rozwiązania. Strategia schładzania sprowadza się do wyznaczenia nowych rozwiązań i poddania ich weryfikacji na podstawie kryterium akceptacji. Nowe rozwiązania wyznacza się zgodnie z zasadami ACS, przy czym różnicą jest to, że po zakończeniu iteracji każda mrówka może nałożyć ślad feromonowy, zgodnie z globalną regułą uaktualniania, na krawędzie należące do jej trasy, jeżeli jej rozwiązanie przeszło pomyślnie przez kryterium akceptacji i zostało zapamiętane na LIŚCIE GLOBALNEJ. Natomiast samo kryterium określa, czy nowe rozwiązanie jest lepsze, niż dotychczas uzyskane, czy nie. Porównanie odbywa się tu na poziomie progów energii - nowego rozwiązania i rozwiązania poprzedniego danej mrówki (znajdującego się na LIŚCIE GLOBALNEJ). Pozytywna weryfikacja powoduje zapamiętanie nowego wyniku w tablicy.
WSPÓŁCZYNNIK WYGASZANIA Zmienna próg, charakterystyczna dla każdej mrówki (a właściwie przypisana do jej najlepszego osiągniętego rozwiązania), reprezentuje jakość rozwiązania i na początku równa jest długości jej najlepszej (najkrótszej) trasy. W strategii podgrzewania progi wszystkich mrówek są podnoszone o wartość C (DE/N), gdzie 0 C 1, a N to liczba agentów, równa liczbie wszystkich rozwiązań (parametr C nazywany jest współczynnikiem wygaszania). W ten sposób następuje redystrybucja energii zgromadzonej w trakcie procesu schładzania w banku energii. Bank energii, reprezentowany przez zmienną DE, na początku przebiegu procedury schładzania jest zerowany, ale potem jego wartość wzrasta, wraz z akceptowaniem nowych rozwiązań. Gdy nowe rozwiązanie zostanie pozytywnie ocenione, wówczas różnica między jego energią, a energią rozwiązania, które zastępuje na LIŚCIE LOKALNEJ, dodawana jest do zmiennej DE. Natomiast zmienna C, która wpływa na ilość energii rozprowadzonej podczas procesu odgrzewania, jest czynnikiem decydującym o tym, czy algorytm wygaszania feromonowego jest algorytmem zachłannym (C = 0), czy też zostanie uzyskana stała temperatura w całym zbiorze rozwiązań (C = 1).
ALGORYTM PA 1 Wyznacz rozwiązania początkowe zgodnie z algorytmem mrowiskowym. 2 Dla każdego rozwiązania (dla każdej mrówki) przeprowadź proces schładzania. 1 Każdemu następnemu rozwiązaniu przypisz próg równy jakości rozwiązania (najlepszego dla każdej mrówki). 2 DE = 0. 3 Utwórz w kolejnej iteracji nowe rozwiązania (zgodnie z ACS) 4 Jeżeli energia nowego rozwiązania jest mniejsza lub równa progowi energii jego poprzednika, to zapamiętaj to najlepsze rozwiązanie dla danego agenta na LIŚCIE GLOBALNEJ. 5 Różnicę energii dodaj do DE. 6 Ustaw próg równy progowi rozwiązania bieżącego dla danej mrówki. 3 Przeprowadź procedurę odgrzewania. Podnieś wszystkie progi o C (DE/N). 4 Wróć do punktu 2.
PODSUMOWANIE Wygaszanie feromonowe jest nowym podejściem do problemu uczenia się mrówek. W systemie mrowiskowym mrówki uczą się od siebie poprzez ślad feromonowy pozostawiany na podłożu i podążają za liderem, to znaczy najlepsze osiągnięte rozwiązanie jest dla nich wzorem do naśladowania. Mrówki oceniane są globalnie, a nagradzane jest jedynie rozwiązanie najlepsze (zgodnie z globalną regułą uaktualniania). Tymczasem w wygaszaniu feromonowym wystąpiła istotna zmiana, ponieważ każda mrówka jest oceniana i nagradzana indywidualnie pod warunkiem, że osiąga coraz lepsze rezultaty. Punktem odniesienia w tym wypadku są jej wcześniejsze wyniki, a nie osiągnięcia innych mrówek. Takie indywidualne podejście do procesu uczenia się agentów jest nowością w algorytmach mrowiskowych. Można się również spodziewać, iż taka właśnie modyfikacja algorytmu mrowiskowego wyeliminuje problem lokalnych minimów. Jest to możliwe dzięki temu, że poszczególni agenci (czyli mrówki) zachęcani są do indywidualnych poszukiwań, nie zaś do wzajemnego naśladowania się (co w klasycznej wersji algorytmu mrowiskowego było główną przyczyną występowania zjawiska zachowania pojedynczej ścieżki). Mimo tych wszystkich wprowadzonych zmian nie zrezygnowano z podstawowej idei algorytmu mrowiskowego: mrówki wciąż wymieniają informacje oraz uczą się od siebie za pośrednictwem pozostawianego na podłożu śladu feromonowego.
KONSEKWENCJE Mutacja nierównomierna dynamiczna. Mutacja, która nazywa się losową dotyczy cyfry w reprezentacji zmiennoprzecinkowej, nie bitu. Wynikiem takiej mutacji jest liczba losowa z przedziału <LB, UB>. { v k = vk + (t,ub v k ) v k (t,v k LB) (t, y) = y(1 r (1 t T )b ) LB i UB są dolnym i górnym ograniczeniem zmiennej, t jest numerem pokolenia, T maks. liczba pokoleń r jest liczbą losową (0, 1), b jest stopniem zależności od numeru iteracji
Interpretacja graficzna op. Herrery