Algorithme évolutif - Evolutionary algorithm

Dans l' intelligence computationnelle (IC), un algorithme évolutionnaire ( EA ) est un sous - ensemble du calcul évolutionnaire , un algorithme d' optimisation métaheuristique générique basé sur la population . Une EA utilise des mécanismes inspirés de l'évolution biologique , tels que la reproduction , la mutation , la recombinaison et la sélection . Les solutions candidates au problème d'optimisation jouent le rôle d'individus dans une population, et la fonction de fitness détermine la qualité des solutions (voir aussi fonction de perte ). L'évolution de la population a alors lieu après l'application répétée des opérateurs ci-dessus.

Les algorithmes évolutionnaires donnent souvent de bonnes solutions approchées à tous les types de problèmes car ils ne font idéalement aucune hypothèse sur le paysage de fitness sous-jacent . Les techniques d'algorithmes évolutionnaires appliquées à la modélisation de l'évolution biologique se limitent généralement à l'exploration de processus microévolutifs et de modèles de planification basés sur des processus cellulaires. Dans la plupart des applications réelles des EA, la complexité de calcul est un facteur prohibitif. En fait, cette complexité de calcul est due à l'évaluation de la fonction de fitness. L'approximation de la forme physique est l'une des solutions pour surmonter cette difficulté. Cependant, une évaluation environnementale apparemment simple peut résoudre des problèmes souvent complexes ; par conséquent, il peut n'y avoir aucun lien direct entre la complexité de l'algorithme et la complexité du problème.

Mise en œuvre

Ce qui suit est un exemple d' algorithme génétique générique à objectif unique .

Première étape : Générer la population initiale d' individus au hasard. (Première génération)

Deuxième étape : répétez les étapes de régénération suivantes jusqu'à la fin :

  1. Évaluer la forme physique de chaque individu de la population (limite de temps, forme physique suffisante atteinte, etc.)
  2. Sélectionnez les individus les plus aptes à la reproduction . (Parents)
  3. Élevez de nouveaux individus par des opérations de croisement et de mutation pour donner naissance à une progéniture .
  4. Remplacer les individus les moins adaptés de la population par de nouveaux individus.

Les types

Des techniques similaires diffèrent par la représentation génétique et d'autres détails de mise en œuvre, et la nature du problème particulier appliqué.

  • Algorithme génétique - C'est le type d'EA le plus populaire. On cherche la solution d'un problème sous forme de chaînes de nombres (traditionnellement binaire, bien que les meilleures représentations soient généralement celles qui reflètent quelque chose sur le problème à résoudre), en appliquant des opérateurs tels que la recombinaison et la mutation (parfois un, parfois les deux) . Ce type d'EA est souvent utilisé dans les problèmes d' optimisation .
  • Programmation génétique - Ici, les solutions se présentent sous la forme de programmes informatiques, et leur aptitude est déterminée par leur capacité à résoudre un problème informatique. Il existe de nombreuses variantes de la programmation génétique, y compris la programmation génétique cartésien , la programmation de l' expression génique , Grammatical Evolution , programmation génétique linéaire , programmation multi expression , etc.
  • Programmation évolutive – Similaire à la programmation génétique, mais la structure du programme est fixe et ses paramètres numériques peuvent évoluer.
  • Stratégie d'évolution - Fonctionne avec des vecteurs de nombres réels comme représentations de solutions, et utilise généralement des taux de mutation auto-adaptatifs.
  • Évolution différentielle – Basée sur des différences vectorielles et est donc principalement adaptée aux problèmes d' optimisation numérique .
  • Neuroévolution - Similaire à la programmation génétique, mais les génomes représentent des réseaux de neurones artificiels en décrivant la structure et les poids de connexion. Le codage du génome peut être direct ou indirect.
  • Système de classificateur d'apprentissage – Ici, la solution est un ensemble de classificateurs (règles ou conditions). Un Michigan-LCS évolue au niveau des classificateurs individuels alors qu'un Pittsburgh-LCS utilise des populations d'ensembles de classificateurs. Initialement, les classificateurs n'étaient que binaires, mais incluent désormais les types réels, de réseau neuronal ou d' expression S. La forme physique est généralement déterminée avec un apprentissage par renforcement basé sur la force ou la précision ou une approche d' apprentissage supervisé .

Comparaison avec les processus biologiques

Une limitation possible de nombreux algorithmes évolutionnaires est leur absence de distinction claire entre génotype et phénotype . Dans la nature, l'ovule fécondé subit un processus complexe connu sous le nom d' embryogenèse pour devenir un phénotype mature . On pense que ce codage indirect rend la recherche génétique plus robuste (c'est-à-dire réduit la probabilité de mutations mortelles), et peut également améliorer l' évolutivité de l'organisme. De tels codages indirects (également appelés génératifs ou développementaux) permettent également à l'évolution d'exploiter la régularité de l'environnement. Des travaux récents dans le domaine de l' embryogenèse artificielle , ou des systèmes de développement artificiels, cherchent à répondre à ces préoccupations. Et la programmation de l'expression génique explore avec succès un système génotype-phénotype, où le génotype se compose de chromosomes multigéniques linéaires de longueur fixe et le phénotype se compose de plusieurs arbres d'expression ou de programmes informatiques de différentes tailles et formes.

Techniques associées

Les algorithmes Swarm incluent

Autres méthodes métaheuristiques basées sur la population

  • Recherche de chasse – Une méthode inspirée de la chasse en groupe de certains animaux comme les loups qui organisent leur position pour entourer la proie, chacun d'eux par rapport à la position des autres et surtout celle de leur chef. Il s'agit d'une méthode d'optimisation continue adaptée comme méthode d'optimisation combinatoire.
  • Recherche dimensionnelle adaptative – Contrairement aux techniques métaheuristiques inspirées de la nature, un algorithme de recherche dimensionnelle adaptative n'implémente aucune métaphore comme principe sous-jacent. Il utilise plutôt une méthode simple axée sur les performances, basée sur la mise à jour du paramètre de rapport de dimensionnalité de recherche (SDR) à chaque itération.
  • L'algorithme Firefly s'inspire du comportement des lucioles, s'attirant mutuellement par une lumière clignotante. Ceci est particulièrement utile pour l'optimisation multimodale.
  • Recherche d'harmonie – Basé sur les idées du comportement des musiciens dans la recherche de meilleures harmonies. Cet algorithme est adapté à l'optimisation combinatoire ainsi qu'à l'optimisation des paramètres.
  • Adaptation gaussienne – Basée sur la théorie de l'information. Utilisé pour maximiser le rendement de fabrication, l' aptitude moyenne ou les informations moyennes . Voir par exemple Entropie en thermodynamique et théorie de l'information .
  • Algorithme mémétique – Une méthode hybride, inspirée de la notion de mème de Richard Dawkins , elle prend généralement la forme d'un algorithme basé sur la population couplé à des procédures d'apprentissage individuelles capables d'effectuer des raffinements locaux. Met l'accent sur l'exploitation des connaissances spécifiques à un problème et essaie d'orchestrer la recherche locale et mondiale de manière synergique.

Exemples

En 2020, Google a déclaré que son AutoML-Zero peut redécouvrir avec succès des algorithmes classiques tels que le concept de réseaux de neurones.

Les simulations informatiques Tierra et Avida tentent de modéliser la dynamique macroévolutive .

Galerie

Les références

Liens externes

Bibliographie