Les algorithmes génétiques sont une forme de méthode d'optimisation. Souvent, la descente de gradient stochastique et ses dérivés sont le meilleur choix pour l'optimisation des fonctions, mais des algorithmes génétiques sont encore parfois utilisés. Par exemple, l'antenne du vaisseau spatial ST5 de la NASA a été créée avec un algorithme génétique:
Quand les méthodes d'optimisation génétique sont-elles un meilleur choix que les méthodes de descente de gradient plus courantes?
Réponses:
Les algorithmes génétiques (GA) sont une famille d'heuristiques qui sont empiriquement bonnes pour fournir une réponse décente dans de nombreux cas, bien qu'elles soient rarement la meilleure option pour un domaine donné.
Vous mentionnez des algorithmes basés sur les dérivés, mais même en l'absence de dérivés, il existe de nombreux algorithmes d'optimisation sans dérivés qui fonctionnent bien mieux que les GA. Voir ceci et cette réponse pour quelques idées.
Ce que de nombreux algorithmes d'optimisation standard ont en commun (même les méthodes sans dérivé) est l'hypothèse que l'espace sous-jacent est une variété lisse (peut-être avec quelques dimensions discrètes), et que la fonction à optimiser se comporte quelque peu bien.
Cependant, toutes les fonctions ne sont pas définies sur un collecteur lisse. Parfois, vous souhaitez optimiser sur un graphique ou d'autres structures discrètes (optimisation combinatoire) - ici, il existe des algorithmes dédiés, mais les GA fonctionnent également.
Plus vous allez vers des fonctions définies sur des structures complexes et discrètes, plus les AG peuvent être utiles, surtout si vous pouvez trouver une représentation dans laquelle les opérateurs génétiques fonctionnent au mieux (ce qui nécessite beaucoup de réglages manuels et de connaissances de domaine).
Bien sûr, l'avenir pourrait conduire à oublier complètement les AG et à développer des méthodes pour mapper des espaces discrets à un espace continu , et utiliser la machinerie d'optimisation que nous avons sur la représentation continue.
la source
Les méthodes génétiques sont bien adaptées à l'optimisation multicritères lorsque la descente de gradient est dédiée à l'optimisation des monocritères. La descente en gradient permet de trouver un minimum de fonctions lorsqu'il existe des dérivées et qu'il n'y a qu'une seule solution optimale (si l'on excepte les minimas locaux). Un algorithme génétique peut être utilisé dans des problèmes multicritères et conduire à un continuum de solutions, chacune étant des individus d'une population, ayant évolué à partir d'une population initiale. Les valeurs à optimiser sont les phénotypes des individus et il peut y avoir plusieurs phénotypes. Généralement, aucun individu n'a simultanément la meilleure valeur de chaque phénotype, il n'y a donc pas qu'une seule solution. Les individus de la population finale, qui sont tous des solutions de l'optimisation, font partie du "front de Pareto" et sont marqués comme étant "Pareto rang un" personnes. Cela signifie que par rapport à tous les autres individus ayant les mêmes performances pour chaque phénotype, ils sont au moins meilleurs pour un phénotype que les autres.
la source
Meilleur dans quel sens?
D'après mon expérience, les AG sont l'un des optimiseurs les plus pragmatiques. Alors que de nombreux algorithmes plus précis nécessitent du temps et des efforts pour formaliser des problèmes réels dans le monde mathématique, les GA peuvent gérer n'importe quelle fonction de coût avec des règles et des contraintes complexes (les GA sont liés par une approche d'exécution après tout et non par un calcul spécifique). Ce processus est simple et vous pouvez essayer de nombreuses approches pour les travaux exploratoires.
J'apprécie également la possibilité de réinjecter des solutions passées à l'algorithme pour de futures exécutions, ce qui est bon pour les tâches répétées.
Conceptuellement, un algorithme génétique peut être représenté par une table de hachage des fonctions et convient donc aux langages fonctionnels comme Clojure qui est également un langage où vous pouvez obtenir de gros résultats très rapidement.
Les algorithmes génétiques peuvent également être imbriqués: la fonction de coût d'un GA peut être un GA! Ces algorithmes tirent parti du matériel et de l'infrastructure modernes qui leur permettent de calculer une très grande population de sorte que, même avec de simples opérations de mutation / sélection, vous pouvez toujours obtenir de bons résultats.
Même pour des problèmes simples comme trouver le minimum d'une fonction d'onde, les AG ne sont pas si mauvais et peuvent atteindre une précision décente dans un délai acceptable.
Alors oui, les solutions analytiques peuvent avoir un temps d'exécution et une précision plus rapides, mais le temps requis pour les produire surpondère souvent des avantages attendus! Donc quand ? Presque à chaque fois pour moi, du moins pour la méta-optimisation.
la source