PSO Optymalizacja wielocząsteczkowa stadna Stada ptaków Klucze ptaków Ławica ryb Ławica ryb Ławica ryb Ławica ryb Ławica ryb Ławica ryb Ławica ryb Ławica ryb Ławica ryb Zachowanie wytwórcze William H. Roetzheim – definiuje naukę o teorii złożoności jako: „Badanie zachowania wytwórczego przejawianego przez wzajemnie oddziałujące na siebie elementy, działające na granicy stabilności i chaosu”. Systemy złożone funkcjonują w skomplikowany sposób nie dający się przewidzieć. Programista tworzący model systemu na komputerze często obserwuje zachowanie niespodziewane i zaskakujące go. Nie zostało ono przez niego zaprogramowane, ale pojawia się w trakcie działania programu. To właśnie nazywamy zachowaniem wytwórczym. Zachowanie pojedynczej komórki można przewidzieć, tak jak i działanie pojedynczego neuronu, i w pewnym stopniu reakcje indywidualnego inwestora. Dopiero, gdy te elementy zaczną wzajemnie na siebie oddziaływać i wpływać na siebie poprzez te oddziaływania, to system jako całość przejawia złożone zachowanie wytwórcze. Zgodnie z definicją Nauki o Złożoności to badanie zachowania systemu i wzajemnych wpływów jego pojedynczych elementów (a nie zachowania pojedynczych elementów). Zachowania wytwórcze Stabilność dla systemów ożywionych oznacza brak adaptacji do pojawiających się zmian. W systemach złożonych, przejawiających podobne do życia zachowanie wytwórcze, oznacza to śmierć. System jako całość składa się z miliarda elementów oddziałujących na siebie w jednakowo przypadkowy sposób, bez żadnych wzorców, pamięci i zachowania wytwórczego. Są to systemy chaotyczne. W systemach ożywionych chaos uniemożliwia organizmowi zachowanie cech, które okazały się pożyteczne. System jest stabilny, gdy niektóre jego parametry są stałe, a inne chaotyczne. Te warunki często nazywane są fazami, np. faza chaotyczna. Gdy parametry określające stabilność systemu zmieniają się w taki sposób, że przechodzi on w stan chaotyczny, następuje zmiana w zachowaniu systemu. Przy wartościach parametrów, przy których przejście fazowe następuje, system wykazuje zachowanie wytwórcze, które nazywamy złożonym. System jest wtedy na tyle chaotyczny, ze może zaadaptować się i przejawić nowe zachowanie, ale jest jednocześnie na tyle stabilny, ze utrzyma te swoje właściwości, które okazały się pożyteczne. Projekt Reynoldsa Craig Reynolds zainteresował się możliwością modelowania złożonych zachowań zwierząt, gdy pracował jako animator komputerowy. W 1986 stworzył on model skoordynowanego ruchu dużej liczby zwierząt jak: stado ptaków, czy ławica ryb. Oprogramowanie, „Boids” było pierwszą metodą umożliwiającą artystom tworzenie animowanych sekwencji stad poprzez zautomatyzowanie rysowania ruchu. Przykłady produkcji opierających się na oprogramowaniu Boids (1987: Stanley and Stella in: Breaking the Ice (nagroda na SIGGRAPH- festiwalu poświęconemu komputerowej animacji oraz realizacji efektów specjalnych), 1992: Batman Returns, 1994: The Lion King). Czy trudno byłoby zachęcić komputerowe stworki zwane boidami (bird-oids, bird(ang.)- ptak) do gromadzenia się w stada? Im bardziej Reynolds badał zachowanie ptaków, tym bardziej rosło w nim przekonanie, ze złożone zachowanie, które nazywamy gromadzeniem się stada, musi opierać się na małej liczbie zasad, które każdy ptak stosuje indywidualnie. Spójność boidów Boid stara się być w środku grupy sąsiednich boidów. Separacja boidów Zachowuje bezpieczną odległość od sąsiednich boidów. Omijanie przeszkody Boidy muszą unikać zderzeń między sobą, a także z przeszkodami na swojej drodze. Podstawy PSO Obecnie istnieją dwie techniki inspirowane zbiorowym zachowaniem w obszarze obliczeń inteligentnych. Jedną z nich są algorytmy mrówkowe a drugą jest PSO (Particle Swarm Optimization - Optymalizacja Wielocząsteczkowa).[1] Pomysł PSO ma swoje korzenie w symulacji uproszczonego systemu społecznego. Ślepe stosowanie reguł przez członków stada ptaków i ławic ryb, umożliwia im zsynchronizowany i bezkolizyjny ruch dający w wyniku zdumiewającą choreografię. To zagadnienie było przedmiotem badań Heppnera i Grenandera oraz Reynoldsa. Ruch ławicy ryb, czy stada ptaków jest efektem wysiłku każdego ptaka czy ryby, koncentrującego się na utrzymaniu optymalnego dystansu od swoich sąsiadów. Inspiracje biologiczne i społeczne Społeczne zachowania zwierząt oraz w niektórych przypadkach ludzi są sterowane podobnymi regułami. W odniesieniu do ludzi, zachowania te są jednak bardziej złożone niż poruszanie się ławicy ryb. Poza fizycznym ruchem, ludzie dopasowują swoje przekonania, więc ruch ma miejsce w przestrzeni przekonań. Chociaż dwie osoby nie mogą zajmować tej samej przestrzeni fizycznego środowiska, mogą mieć te same przekonania zajmując bez kolizji to samo stanowisko w przestrzeni przekonań. Abstrakcyjność społecznego zachowania ludzi jest intrygująca i stała się motywacją do opracowania jego symulacji. Panuje ogólne przekonanie oraz wiele uzasadniających je przykładów z natury potwierdzających pogląd, że społeczne dzielenie się informacją pomiędzy osobnikami danej społeczności może stanowić przewagę ewolucyjną. Hipoteza ta stanowiła podstawę powstania PSO. Podstawowe idee PSO Pierwotnym zamierzeniem była graficzna symulacja choreografii grup ptaków oraz ławic ryb. Okazało się, że model taki może być również wykorzystany jako model obliczeniowy. Autorami tej stochastycznej techniki optymalizacji bazującej na populacji, są Eberhart i Kennedy. Ideę PSO[2] przybliży rozważenie następującego scenariusza: Grupa ptaków losowo poszukuje pożywienia na jakimś określonym obszarze. Na tym obszarze znajduje się tylko jeden kawałek pożywienia. Żaden z ptaków nie zna miejsca, w którym się on znajduje, ale każdy z nich wie w każdej chwili jak daleko jest od niego. Proces optymalizacji w PSO Ogólnie proces optymalizacji za pomocą PSO polega na zainicjowaniu populacji początkowej, której elementami są losowe wygenerowane rozwiązania i poszukiwaniu optimum poprzez modyfikację kolejnych rozwiązań. Każdym pojedynczym rozwiązaniem jest ptak w przeszukiwanej przestrzeni. Zwany jest on 'cząsteczką'. Wszystkie 'cząsteczki' optymalizują swoje wartości dopasowania (swoją odległość od pożywienia), które są oceniane przez funkcję dopasowania oraz prędkości, które wyznaczają kierunek ruchu cząsteczek i długość pokonywanego dystansu. Przemieszczają się one w przestrzeni problemu podążając za bieżącym optimum cząsteczek. Tym optimum może być najlepszy sąsiad i wówczas mówimy o lokalnej wersji PSO lub może być nim najbliższa optymalnego rozwiązania cząsteczka w całej populacji, a wtedy mówimy o wersji globalnej algorytmu. Jest więc możliwość sterowania procesem przeszukiwania na podstawie osiągnięć lokalnych lub globalnych, albo uwzględnienie obu równocześnie, a więc wykorzystanie pełnej informacji. Mechanizmy PSO Podsumowując odnieśmy się do sposobu, w jaki realizowane są dwa podstawowe mechanizmy sterujące algorytmami przeszukiwania w PSO. Pierwszy z nich to eksploracja przestrzeni przeszukiwań, o której możemy powiedzieć, że jest stochastyczna i grupowa, a więc jak do tej pory najlepsza z możliwych. Jednak w porównaniu do algorytmów ewolucyjnych, jest szybciej ukierunkowywana na obszar najlepszych znalezionych do tej pory cząsteczek, a więc eksploracja może być zbyt szybko zawężana. Z jednej strony daje to możliwość przyspieszenia procesu przeszukiwania, ale z drugiej strony zamiast optimum globalnego może zdarzyć się znaleźć tylko lokalne. Drugim mechanizmem sterującym jest wykorzystanie informacji o dotychczasowych osiągnięciach w procesie przeszukiwania. Mechanizm dzielenia się informacją w PSO polega na tym, że tylko najlepsza lokalna i (lub) najlepsza globalna cząsteczka może przekazać informacje innym cząsteczkom. Oczywiście każda cząsteczka wykorzystuje oprócz tego swoje własne doświadczenie, pamiętając swoja najlepsza pozycje w przestrzeni potencjalnych rozwiązań. Jest to mechanizm jednokierunkowego dzielenia się informacją. Literatura o PSO Więcej można znaleźć między innymi w następujących pozycjach: Kennedy J., Eberhart R. C.: Particle Swarm Optimization, Proceedings IEEE International Conference on Neural Networks, IV: pp. 1942-1948, IEEE Service Center Piscataway. NJ, 1995. 1. Kennedy J., Eberhart R. C.: Swarm Intelligence. Morgan Kaufman Publishers 2001. 2. Parsopoulos K.E., Vrahatis M.N.: Recent approaches to global optimization problems through Particle Swarm Optimization, Natural Computing 1, 235-306, 2002. 3. WZORY xi xi1 , xi 2 , , xiD xi xi1 , xi 2 , , xiD T Pi pi1 , pi 2 ,, piD T WZORY d = 1, 2, …, D, i = 1, 2, …, N, N – rozmiar stada, C – stała dodatnia, zwana stałą przyspieszenia, r1, r2 – liczby losowe z rozkładu jednorodnego w przedziale [0,1], n – 1, 2, …, - określa numer iteracji. v id n1 x id n1 v id cr1 pid x id n n x id v id n n1 n n cr p n 2 n gd x id n WZORY w – waga inercji, c1, c2 – stałe dodatnie zwane odpowiednio parametrem poznawczym (kognitywnym) i p. zbiorowym (socjalnym), χ – współczynnik ścisku, który jest używany zamiennie z w, w celu ograniczenia szybkości. v id n1 wvid c1r1 pid xid c2 r2 pgd xid n1 xid v id xid n n n n1 n n n n n Parametry PSO Rola wagi inercji w równaniu (4) jest uważana za krytyczną w zachowaniu zbieżności PSO. Waga inercji wykorzystywana do kontroli wpływu poprzedniej historii szybkości na bieżące wartości. Dokładniej – parametr w reguluje zależność między globalną (szeroko-zakresową) a lokalną (pobliską) zdolnością eksploracji stada. Duża wartość inercji wskazuje na globalna eksplorację (przeszukiwanie nowych obszarów), podczas gdy mała wartość ma tendencję do ułatwiania lokalnej eksploracji tj. dobre dostrajanie bieżącego obszaru przeszukiwania. Właściwa wartość współczynnika wagi inercji w zwykle zabezpiecza balansowanie pomiędzy globalną a lokalną eksploracją i w konsekwencji wpływa na redukcję liczby iteracji wymaganych w celu zlokalizowania optymalnego rozwiązania. Początkowo wartość inercji była stała. Jednakże wyniki eksperymentów wskazują, że jest lepiej wstawić wartość wagi inercji na dużą wartość w celu promowania eksploracji globalnej przestrzeni przeszukiwań i stopniowo należy zmniejszać ją w celu uzyskania doskonalszych rozwiązań (Ski, Eberhart, 1998). W ten sposób inicjalna wartość powinna być ustalona na około 1.2, a następnie stopniowo zmniejszana na 0, co powinno być uważane za dobrą. Parametry c1 i c2 w równaniu (4) nie są tak istotne dla zbieżności PSO. Jednakże właściwe dopasowanie może mieć wpływ na szybszą zbieżność i złagodzenie efektu lokalnych optimów. Rozszerzone studia dotyczące parametru przyspieszenia w I wersji PSO były przeprowadzone przez Kennedy’ego w 1998. Parametry (cd) Przy braku jakichkolwiek danych, ustalono c1=c2=2 jako poprawne, ale wyniki eksperymentów wskazują że c1=c2=0,5 mogą dostarczać zdecydowanie lepsze wyniki. Ostatnie prace udowadniają, że może być lepiej, gdy wybierać będziemy parametr kognitywny o większej wartości, niż parametr socjalny c2, ale ogólnie c1 + c2 ≤ 4 (Carlisle i Dozier, 2001). Parametry r1 i r2 są używane w celu utrzymania różnorodności populacji i są one zmiennymi losowymi rozkładu jednorodnego z przedziału [0, 1]. Współczynnik ścisku χ kontroluje ważność szybkości, wykorzystując metodę z parametrem Vmax, dającym kolejny wariant PSO, różniący się od metody ze współczynnikiem inercji. Kontrola szybkości Ponieważ nie istnieje właściwy mechanizm kontroli szybkości cząsteczki, było koniecznym wskazanie wartości maksymalnej Vmax. Jeżeli szybkość przekroczy ten próg, wówczas zostaje ustawiona na Vmax. Ten parametr wydaje się być kluczowym, ponieważ duże wartości mogą doprowadzić do tego, że cząsteczki mogą minąć dobre rozwiązania, podczas gdy małe wartości doprowadzają do niewystarczających eksploracji tej przestrzeni przeszukiwań. Brak mechanizmu kontroli szybkości spowodował niską efektywność PSO w porównaniu z technikami EC Program Boptaki