Szukaj szkoły ryb
Fish School Search (FSS), zaproponowany przez Bastosa Filho i Limę Neto w 2008 roku, jest w swojej podstawowej wersji jednomodalnym algorytmem optymalizacyjnym inspirowanym zbiorowym zachowaniem ławic ryb. Mechanizmy karmienia i skoordynowanego ruchu posłużyły jako inspiracja do stworzenia operatorów wyszukiwania. Główną ideą jest sprawienie, aby ryby „pływały” w kierunku dodatniego gradientu, aby „jeść” i „przybierać na wadze”. Łącznie cięższe ryby mają większy wpływ na cały proces poszukiwań, co powoduje, że środek ciężkości ławicy przesuwa się w kierunku lepszych miejsc w przestrzeni poszukiwań w kolejnych iteracjach.
FSS stosuje następujące zasady:
- Proste obliczenia dla wszystkich osobników (tj. ryb)
- Różne sposoby przechowywania informacji (np. wagi ryb i szkolna barycentrum)
- Obliczenia lokalne (tj. pływanie składa się z odrębnych elementów)
- Niska komunikacja między sąsiadującymi osobnikami (tj. ryby mają myśleć lokalnie, ale także być świadome społecznie)
- Minimalna kontrola scentralizowana (głównie do samokontroli promienia szkoły)
- Niektóre odrębne mechanizmy różnorodności (aby uniknąć niepożądanego zachowania stadnego)
- Skalowalność (pod względem złożoności zadań optymalizacji/wyszukiwania)
- Autonomia (tj. zdolność do samokontroli funkcjonowania)
Algorytm
FSS to algorytm wyszukiwania oparty na populacji, inspirowany zachowaniem pływających ryb, które rozszerzają się i kurczą podczas poszukiwania pożywienia. Każda ryba reprezentuje możliwe rozwiązanie problemu optymalizacji. Algorytm wykorzystuje wagi dla wszystkich ryb, co stanowi zbiorczy rachunek tego, jak skuteczne było poszukiwanie każdej ryby w ławicy. FSS składa się z operatorów karmienia i ruchu, przy czym ten ostatni jest podzielony na trzy podkomponenty, którymi są:
Indywidualny składnik ruchu
Każda ryba w ławicy przeprowadza lokalne poszukiwania obiecujących regionów w przestrzeni poszukiwań. Odbywa się to w sposób przedstawiony poniżej:
gdzie i reprezentują pozycję ryby odpowiednio przed i po indywidualnym operatorze ruchu. jest równomiernie rozłożoną liczbą losową wahającą się od -1 do 1 i jest parametrem określającym maksymalne przemieszczenie dla tego ruchu. Nowa pozycja kondycja ryby poprawia się Jeśli tak nie jest, ryba pozostaje w tej samej pozycji i .
Zbiorowo-instynktowny składnik ruchu
Średnia z poszczególnych ruchów jest obliczana na podstawie:
Wektor przemieszczeń każdej ryby. Oznacza to, że ryby, które doświadczyły większej poprawy, będą przyciągać ryby na swoje stanowisko. Po obliczeniu wektora każda ryba zostanie zachęcona do ruchu zgodnie z: ja
Kolektywno-wolitywny składnik ruchu
Operator ten służy do regulowania możliwości eksploracji/eksploatacji szkoły podczas procesu wyszukiwania. wszystkim środek ciężkości szkoły jest obliczany na podstawie pozycji każdej ryby:
a następnie, jeśli całkowita waga szkoły ostatniej do bieżącej środek barytonu zgodnie z równaniem A. Jeżeli całkowita waga ławicy nie uległa poprawie, ryby są rozkładane od środka ciężkości zgodnie z równaniem B:
równanie A:
równanie B:
gdzie określa wielkość maksymalnego przemieszczenia wykonywanego za pomocą tego operatora. odległość euklidesowa między rybami pozycja i środek ciężkości szkoły. jest równomiernie rozłożoną liczbą losową wahającą się od 0 do 1.
Oprócz operatorów ruchu zdefiniowano również operator karmienia służący do aktualizacji wag każdej ryby według:
gdzie parametrem wagi dla ryb Δ sprawności między ostatnim i nową pozycję, a sprawności może zmieniać się tylko od 1 użytkownika Wagi wszystkich ryb są inicjowane wartością .
Pseudokod dla FSS
- Zainicjuj parametry użytkownika
- Losowo inicjalizuj pozycje ryb
- dopóki warunek zatrzymania nie jest spełniony wykonaj
- Oblicz przydatność dla każdej ryby
- Uruchom indywidualny ruch operatora
- Oblicz przydatność dla każdej ryby
- Uruchom operatora karmienia
- Uruchom kolektywno-instynktowny operator ruchu
- Uruchom operatora ruchu kolektywno-wolitywnego
- koniec póki
Parametry i zanikają liniowo zgodnie z:
i podobnie:
gdzie i użytkownika wartości początkowe odpowiednio dla p . to maksymalna liczba iteracji dozwolona w procesie wyszukiwania.
Odmiany FSS
dFSS (wyszukiwanie ławic ryb w oparciu o gęstość)
Ta wersja doskonale sprawdza się w multimodalnych funkcjach hiperwymiarowych. Zawiera modyfikacje dotychczasowych operatorów: Feeding i Swimming, a także nowe: operatory Memory i Partition. Te dwie ostatnie zostały wprowadzone w celu uwzględnienia podziału szkoły głównej na podgrupy. Pewne zmiany zostały również uwzględnione w warunkach zatrzymania, które teraz muszą uwzględniać również podroje.
wFSS (wyszukiwanie szkół ryb na podstawie wagi)
wFSS to niszowa wersja FSS oparta na wadze, przeznaczona do tworzenia wielu rozwiązań. Strategia niszowania opiera się na nowym operatorze o nazwie link formator. Ten operator służy do definiowania liderów dla ryb w celu utworzenia szkół podrzędnych.
FSS-SAR (Rutynowe wyszukiwanie ławic ryb w celu unikania stagnacji)
W oryginalnej wersji algorytmu pojedynczy składnik ruchu może poruszyć rybę tylko wtedy, gdy poprawia kondycję. Jednak w bardzo gładkiej przestrzeni wyszukiwania byłoby wiele prób ruchu bez powodzenia, a algorytm mógłby nie osiągnąć zbieżności. Aby rozwiązać te problemy, wprowadzono parametr X , dla którego 0 <= X <= 1 w poszczególnych składnikach ruchu. X maleje wykładniczo wraz z iteracjami i mierzy prawdopodobieństwo pogorszenia dodatku dla każdej ryby. Oznacza to, że za każdym razem, gdy ryba próbuje przemieścić się do pozycji, która nie poprawia jej kondycji, wybierana jest losowa liczba i jeśli jest mniejsza niż X , ruch jest dozwolony.
bFSS (Binary Fish School Search)
bFSS zamierzał poradzić sobie z przedwczesną konwergencją. Zaproponowanie wykorzystania binarnego schematu kodowania dla wewnętrznych mechanizmów przeszukiwania ławic ryb. Połączyło FSS z modelowaniem rozmytym w podejściu opakowującym do wyboru funkcji.
MOFSS (wyszukiwanie szkół ryb z wieloma celami)
W MOFSS operatorzy są przystosowani do rozwiązywania problemów wielocelowych. Algorytm wdraża zewnętrzne archiwum do przechowywania najlepszych niezdominowanych rozwiązań znalezionych podczas procesu wyszukiwania. Podejście to było szeroko stosowane w przypadku różnych inspirowanych biologią optymalizatorów wielocelowych. Ponadto rozwiązania w ramach Archiwum Zewnętrznego służą do kierowania przepływami ryb w wersji propozycji.
Zobacz też
- Algorytmy optymalizacji kolonii mrówek
- Algorytm sztucznej kolonii pszczół
- Optymalizacja roju cząstek