środa, 4 lutego 2015

Algorytm Rojowy PSO

Pisałem już o ewolucyjnym, to czemu mam nie naskrobać coś o rojowym. Moja implementacja tego algorytmu szuka minimum funkcji, lecz trochę inaczej. W skrócie istnieje rój pszczółek, który szuka swojego ulubionego kwiatka (mógłbym użyć much ale wiadomo do czego one się zlatują :) ). Kwiatkiem tym jest oczywiście minimum, a pszczółkami wartości punktów. Do rzeczy funkcja wygląda tak:
Rys. 1.1 Wykres badanej funkcji

Gdy pokazywałem ją znajomym wielu jej kształt zaskakiwał, ja zaś widziałem w niej niezłe pole do popisu dla moich pszczółek, które latają tak:


 


Jak widać zlatują się idealnie do minimum funkcji. Poniżej jeszcze kilka wykresów z działania programu:




Wykresów nie opisuje, to co prezentują jest wręcz identyczne do tego, co opisywałem w algorytmie ewolucyjnym. Serdecznie zapraszam do przeczytania tego posta. Pszczółki latają wszystko fajnie ale jak to się dzieje. Otóż wszystko zaczyna się od umieszczenia punktu w przestrzeni, a dokładnie kilkunastu zwanych - rojem. Mamy już punkty więc liczymy wartości funkcji dla każdego z nich. Wartość najmniejsza jest to cel podążania. Jednak nie jest to proste bo wchodzą tutaj w grę jeszcze trzy poziomy ufności:
- zaufanie pszczółki do swojego kierunku
- zaufanie pszczółki do swojego najlepszego rozwiazania
-zaufanie pszczółki do najlepszego rozwiązania w roju
Po opisaniu tego konkretnymi równaniami otrzymujemy wektor prędkości, dzięki niemu pszczółka wie gdzie ma lecieć. chyba najlepiej widać to na zamieszczonym "filmie"

Generalnie prezentuję moją implementację kodu, zaś teorie samych algorytmów napiszę w najbliższym czasie.

Pozdrawiam..

P.S Nauczyłem się wstawiać kod poniżej, choć opcja nie jest profesjonalna (Blogger jest dość toporny w wstawianiu kodu źródłowego).

A oto Kod




Brak komentarzy:

Prześlij komentarz