Найкраще в якому сенсі?
На мій досвід, ГС є одним з найбільш прагматичних оптимізаторів. Хоча багато більш точних алгоритмів вимагають часу та зусиль, щоб формалізувати реальні проблеми в математичному світі, GA можуть обробляти будь-яку функцію витрат зі складними правилами та обмеженнями (GA пов'язані підходом до виконання після, а не конкретним розрахунком). Цей процес простий, і ви можете спробувати багато підходів до пошукових робіт.
Я ціную також можливість повторного введення попередніх рішень в алгоритм для майбутніх прогонів, що добре для повторних завдань.
Концептуально генетичний алгоритм може бути представлений хешмапом функцій і підходить так функціональним мовам, як Clojure, що також є мовою, де можна досягти великих результатів дуже швидко.
Генетичні алгоритми також можуть бути вкладені: вартісна функція одного GA може бути GA! Ці алгоритми використовують переваги сучасного обладнання та інфраструктури, які дозволяють обчислити дуже велику сукупність, щоб, навіть за допомогою простих операцій з мутації / вибору, ви все одно могли досягти хороших результатів.
Навіть для простих проблем, таких як пошук мінімуму хвильової функції, GA не такі вже й погані і можуть досягти гідної точності за прийнятний час.
Так, так, аналітичні рішення можуть мати швидший час та точність виконання, але час, необхідний для їх надмірної ваги, часто очікує вигоди! Тому, коли ? Майже щоразу для мене, принаймні для метаоптимізації.