Am besten in welchem Sinne?
Nach meiner Erfahrung sind GAs einer der pragmatischsten Optimierer. Während viel genauere Algorithmen Zeit und Mühe erfordern, um reale Probleme in der mathematischen Welt zu formalisieren, können GAs jede Kostenfunktion mit komplexen Regeln und Einschränkungen bewältigen (GAs werden nach einem Ausführungsansatz und nicht nach einer spezifischen Berechnung verknüpft). Dieser Vorgang ist unkompliziert und Sie können viele Ansätze für die Erkundungsarbeit ausprobieren.
Ich schätze auch die Möglichkeit, vergangene Lösungen für zukünftige Läufe wieder in den Algorithmus einzufügen, was für wiederholte Aufgaben gut ist.
Konzeptionell kann ein genetischer Algorithmus durch eine Hashmap von Funktionen dargestellt werden und eignet sich daher für funktionale Sprachen wie Clojure, eine Sprache, mit der Sie sehr schnell große Ergebnisse erzielen können.
Genetische Algorithmen können auch verschachtelt werden: Die Kostenfunktion einer GA kann eine GA sein! Diese Algorithmen nutzen moderne Hardware und Infrastruktur, die es ihnen ermöglichen, eine sehr große Population zu berechnen, sodass Sie selbst mit einfachen Mutations- / Auswahloperationen immer noch gute Ergebnisse erzielen.
Selbst bei einfachen Problemen wie dem Auffinden des Minimums einer Wellenfunktion sind GAs nicht so schlecht und können in akzeptabler Zeit eine anständige Präzision erreichen.
Ja, analytische Lösungen haben zwar eine schnellere Ausführungszeit und Präzision, aber die Zeit, die erforderlich ist, um diese Übergewichte zu erzielen, hat häufig Vorteile! Also wann? Fast immer für mich, zumindest zur Meta-Optimierung.