Najlepszy w jakim sensie?
Z mojego doświadczenia wynika, że GA są jednym z najbardziej pragmatycznych optymalizatorów. Podczas gdy wiele bardziej precyzyjnych algorytmów wymaga czasu i wysiłku, aby sformalizować rzeczywiste problemy w świecie matematycznym, GA mogą obsługiwać każdą funkcję kosztów ze złożonymi regułami i ograniczeniami (GA są powiązane w końcu z podejściem wykonawczym, a nie z konkretnymi obliczeniami). Ten proces jest prosty i można wypróbować wiele metod pracy eksploracyjnej.
Doceniam także możliwość wprowadzenia wcześniejszych rozwiązań algorytmu dla przyszłych przebiegów, co jest dobre dla powtarzanego zadania.
Koncepcyjnie algorytm genetyczny może być reprezentowany przez zestaw funkcji i kolorów, tak więc języki funkcjonalne, takie jak Clojure, który jest także językiem, w którym można bardzo szybko osiągnąć duże wyniki.
Algorytmy genetyczne można również zagnieżdżać: funkcją kosztu jednego GA może być GA! Algorytmy te wykorzystują nowoczesny sprzęt i infrastrukturę, które pozwalają im obliczyć bardzo dużą populację, dzięki czemu - nawet przy prostych operacjach mutacji / selekcji - możesz nadal osiągać dobre wyniki.
Nawet w przypadku prostych problemów, takich jak znalezienie minimum funkcji falowej, GA nie są tak złe i mogą osiągnąć przyzwoitą precyzję w akceptowalnym czasie.
Tak, rozwiązania analityczne mogą mieć szybszy czas wykonania i większą precyzję, ale czas potrzebny do wytworzenia ich przeważa często oczekiwane korzyści! Więc kiedy ? Niemal za każdym razem, przynajmniej w przypadku metaoptymalizacji.