Algorytm kukułki (ang. cuckoo search, dosł. kukułcze poszukiwania) — metaheurystyczny, inspirowany naturą algorytm optymalizacyjny zaproponowany w 2009, którego twórcami są Xin-She Yang oraz Suash Deb. Został zainspirowany zachowaniami niektórych gatunków kukułek, które składają swoje jaja w gniazdach innych ptaków (por. powiedzenie "kukułcze jajo"). W algorytmie wykorzystane są loty Lévy'ego (ang. Lévy flights). Przykładowa implementacja algorytmu kukułki znajduje się w artykule jego twórców.

Reguły Reguły algorytmu kukułki: W danej chwili czasu kukułka może złożyć jedno jajo w losowo wybranym gnieździe gospodarza. W następnej iteracji algorytmu są uwzględnianie gniazda wysokiej jakości. Gospodarz gniazda, do którego zostało podrzucone jajo, może zauważyć to obce jajo z prawdopodobieństwem .

Oznaczenia Funkcja jest funkcją przystosowania. Gniazdo jest punktem w przestrzeni -wymiarowej i jest potencjalnym rozwiązaniem problemu optymalizacyjnego. Indeksy oraz w symbolu oznaczają -te gniazdo w -tej iteracji algorytmu kukułki. Symbol będzie stosowany zamiennie z dla oznaczenia upływu czasu.

Algorytm Poniżej przedstawiono przykładową wersję podstawowego algorytmu kukułki.

Algorytm rozpoczyna się w chwili od wygenerowania początkowej populacji gniazd gospodarzy rozmiaru :

gdzie jest -tym gniazdem w tej populacji.

Następnie w pętli wykonywane są poniższe czynności: Dokonywane jest podstawienie . Wybierany jest losowo indeks i wykonywany jest lot Lévy'ego z punktu do nowego punktu w przestrzeni . Wybierany jest losowo indeks i jeśli dokonywane jest podstawienie . Odrzucane jest gniazd o najniższej wartości funkcji przystosowania i zastępowane są one nowo wygenerowanymi w sposób losowy z użyciem lotów Lévy'ego.

Pętla kończy się, gdy zmienna osiągnie wartość graniczną lub zostanie spełniony inny warunek zakończenia.

Lot Lévy'ego thumb|Dystrybucja Lévy'ego

Lot Lévy'ego jest błądzeniem losowym, którego krok jest losowany z dystrybucji Lévy'ego.

Przypisy

Kategoria:Algorytmy ewolucyjne Kukułki