Algorytm ewolucyjny
Algorytm ewolucyjny – algorytm wzorowany na biologicznej ewolucji[1], stosowany do zadań optymalizacyjnych i modelowania.
Algorytmy ewolucyjne dzielą się na:
Algorytmy genetyczne
Programowanie genetyczne
Programowanie ewolucyjne
Przeszukiwanie rozproszone
Strategie ewolucyjne
Neuroewolucje (Neuroevolution)
Algorytmy ewolucyjne ( EA ) odtwarzają istotne elementy ewolucji biologicznej w algorytmie komputerowym w celu rozwiązania „trudnych” problemów, przynajmniej w przybliżeniu , dla których nie są znane dokładne lub zadowalające metody rozwiązania. Są to metaheurystyki i algorytmy inspirowane biologicznie oparte na populacjach [ 1 ] oraz obliczenia ewolucyjne , które same w sobie są częścią dziedziny inteligencji obliczeniowej . [ 2 ] Mechanizmy ewolucji biologicznej, które EA głównie naśladuje, to reprodukcja , mutacja , rekombinacja i selekcja . Kandydackie rozwiązania problemu optymalizacyjnego odgrywają rolę osobników w populacji, a funkcja sprawności określa jakość rozwiązań (patrz także funkcja straty ). Ewolucja populacji ma następnie miejsce po wielokrotnym zastosowaniu powyższych operatorów.
Algorytmy ewolucyjne często dobrze przybliżają rozwiązania wszystkich typów problemów, ponieważ idealnie nie zakładają żadnego założenia na temat podstawowego krajobrazu dostosowania . Techniki z algorytmów ewolucyjnych stosowane do modelowania ewolucji biologicznej są na ogół ograniczone do eksploracji mikroewolucji (procesów mikroewolucyjnych) i modeli planowania opartych na procesach komórkowych. W większości rzeczywistych zastosowań algorytmów ewolucyjnych złożoność obliczeniowa jest czynnikiem uniemożliwiającym. [ 3 ] W rzeczywistości ta złożoność obliczeniowa wynika z oceny funkcji dostosowania. Przybliżenie dostosowania jest jednym z rozwiązań pozwalających pokonać tę trudność. Jednak pozornie proste algorytmy ewolucyjne mogą rozwiązywać często złożone problemy; [ 4 ] [ 5 ] [ 6 ] dlatego może nie być bezpośredniego związku między złożonością algorytmu a złożonością problemu.