Wyszukiwanie szkół rybnych - Fish School Search

Fish School Search (FSS), zaproponowany przez Bastosa Filho i Limę Neto w 2008 roku, jest w swojej podstawowej wersji jednomodalnym algorytmem optymalizacji inspirowanym zbiorowym zachowaniem ławic ryb. Mechanizmy zasilania i skoordynowanego ruchu zostały wykorzystane jako inspiracja do stworzenia operatorów wyszukiwania. Główną ideą jest sprawienie, aby ryby „płynęły” w kierunku dodatniego gradientu, aby „zjeść” i „przybrać na wadze”. Łącznie, cięższe ryby mają większy wpływ na cały proces poszukiwań, co powoduje, że barycentrum ławicy ryb przesuwa się w kierunku lepszych miejsc w przestrzeni poszukiwań w stosunku do iteracji.

FSS stosuje następujące zasady:

  1. Proste obliczenia u wszystkich osobników (tj. ryb)
  2. Różne sposoby przechowywania informacji (m.in. wagi ryb i barycentrum szkolne)
  3. Obliczenia lokalne (tj. pływanie składa się z różnych elementów)
  4. Słaba komunikacja między sąsiednimi osobnikami (tj. ryby mają myśleć lokalnie, ale także być świadome społecznie)
  5. Minimalna kontrola scentralizowana (głównie do samodzielnej kontroli promienia szkoły)
  6. Niektóre wyraźne mechanizmy różnorodności (w celu uniknięcia niepożądanego zachowania floka)
  7. Skalowalność (pod względem złożoności zadań optymalizacji/wyszukiwania)
  8. 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 lokalizacja wymiarowa ryby reprezentuje możliwe rozwiązanie problemu optymalizacji. Algorytm wykorzystuje wagi dla wszystkich ryb, co stanowi skumulowany rachunek skuteczności wyszukiwania 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 wykonuje lokalne poszukiwania w poszukiwaniu obiecujących regionów w przestrzeni poszukiwań. Odbywa się to w sposób przedstawiony poniżej:

gdzie i przedstawiają pozycję ryby odpowiednio przed i za indywidualnym operatorem ruchu. to losowa liczba o rozkładzie jednostajnym od -1 do 1 i jest parametrem określającym maksymalne przemieszczenie dla tego ruchu. Nowa pozycja jest akceptowana tylko wtedy, gdy kondycja ryby poprawi się wraz ze zmianą pozycji. Jeśli tak nie jest, ryba pozostaje w tej samej pozycji i .

Kolektywno-instynktowny składnik ruchu

Średnia z poszczególnych ruchów jest obliczana na podstawie:

Wektor reprezentuje średnią ważoną przemieszczeń każdej ryby. Oznacza to, że ryby, które doświadczyły większej poprawy, będą przyciągać ryby na swoją pozycję. Po obliczeniu wektora , każda ryba będzie zachęcana do poruszania się zgodnie z:

Zbiorowo-woltywny składnik ruchu

Operator ten jest używany w celu regulowania zdolności szkoły do ​​eksploracji/eksploatacji podczas procesu poszukiwania. Przede wszystkim barycentrum ławicy jest obliczane na podstawie pozycji i wagi każdej ryby:

a następnie, jeśli całkowita waga ławicy wzrosła od ostatniej do obecnej iteracji, ryby są przyciągane do barycentrum zgodnie z równaniem A. Jeśli całkowita waga ławicy nie uległa poprawie, ryby są odsuwane od barycentrum zgodnie z równaniem B:

Równ. A:

Równ. B:

gdzie określa wielkość maksymalnego przemieszczenia wykonywanego za pomocą tego operatora. to odległość euklidesowa między pozycją ryb a centrum barycznym w szkole. to liczba losowa o rozkładzie jednorodnym w zakresie od 0 do 1.

Oprócz operatorów ruchu zdefiniowano również operatora karmienia, który służy do aktualizacji wagi każdej ryby zgodnie z:

gdzie jest parametrem wagi ryby , jest zmianą sprawności między ostatnią a nową pozycją i reprezentuje maksymalną bezwzględną wartość zmienności sprawności wśród wszystkich ryb w ławicy. może zmieniać się tylko od 1 do , co jest atrybutem zdefiniowanym przez użytkownika. Wagi wszystkich ryb są inicjowane wartością .

Pseudokod dla FSS

  1. Zainicjuj parametry użytkownika
  2. Inicjalizuj losowo pozycje ryb
  3. podczas gdy warunek zatrzymania nie jest spełniony, wykonaj
  4. Oblicz przydatność dla każdej ryby
  5. Uruchom indywidualny ruch operatora
  6. Oblicz przydatność dla każdej ryby
  7. Uruchom operatora karmienia
  8. Uruchom zbiorowy operator ruchu instynktownego
  9. Uruchom operatora ruchu zbiorowo-wolitywnego
  10. zakończ, gdy

Parametry i zanikają liniowo według:

i podobnie:

gdzie i są zdefiniowanymi przez użytkownika wartościami początkowymi odpowiednio dla i . to maksymalna liczba iteracji dozwolonych w procesie wyszukiwania.

Odmiany FSS

dFSS (wyszukiwanie ławic ryb na podstawie gęstości)

Ta wersja wyróżnia się multimodalnymi funkcjami hiperwymiarowymi. Zawiera modyfikacje w poprzednich operatorach: Karmienie i Pływanie, a także nowe: Operatory pamięci i partycji. Dwie ostatnie wprowadzono ze względu na podział szkoły głównej na podgrupy. Niektóre zmiany zostały również uwzględnione w warunkach zatrzymania, które teraz muszą również uwzględniać podroje.

wFSS (wyszukiwanie ławic ryb w oparciu o wagę)

wFSS to niszowa wersja FSS oparta na wadze, przeznaczona do tworzenia wielu rozwiązań. Strategia niszowania opiera się na nowym operatorze zwanym formatorem linków. Operator ten służy do definiowania przywódców dla ryb w celu utworzenia podszkół.

FSS-SAR (Rutynowe wyszukiwanie ławic ryb w celu uniknięcia stagnacji)

W pierwotnej wersji algorytmu pojedynczy składnik ruchu może poruszać rybę tylko wtedy, gdy poprawia to kondycję. Jednak w bardzo płynnej przestrzeni poszukiwań byłoby wiele ruchomych prób 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ładowych ruchu. X maleje wykładniczo wraz z iteracjami i mierzy prawdopodobieństwo pogorszenia dopuszczalnej dawki 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 sprawności, wybierana jest losowa liczba i jeśli jest mniejsza niż X, ruch jest dozwolony.

bFSS (binarne wyszukiwanie ławic ryb)

bFSS miał poradzić sobie z przedwczesną konwergencją. Zaproponowanie zastosowania schematu kodowania binarnego dla wewnętrznych mechanizmów przeszukiwania ławic ryb. Połączył FSS z modelowaniem rozmytym w opakowującym podejściu do wyboru funkcji.

MOFSS (wielocelowe wyszukiwanie ławic ryb)

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. To podejście jest szeroko stosowane w różnych inspirowanych biologią optymalizatorach wielozadaniowych. Ponadto rozwiązania w ramach Archiwum Zewnętrznego są wykorzystywane do kierowania ruchami ryb w wersji propozycji.

Zobacz też

Zewnętrzne linki

Bibliografia