A/B test
Variante orthographique d'A/B testing désignant la même méthode de comparaison de deux versions p...
Méthode d'optimisation inspirée de la sélection naturelle et de l'évolution biologique pour trouver des solutions approchées à des problèmes complexes
Les algorithmes génétiques font partie de ces concepts fascinants qui montrent comment l'informatique peut s'inspirer de la nature pour résoudre des problèmes complexes. Imaginez un algorithme qui "évolue" au fil des générations, où les meilleures solutions "survivent" et se "reproduisent" pour donner naissance à des solutions encore meilleures, un peu comme dans la théorie de l'évolution de Darwin. C'est exactement le principe des algorithmes génétiques [citation:7].
Les algorithmes génétiques appartiennent à la famille des algorithmes évolutionnistes. Leur but est d'obtenir une solution approchée à un problème d'optimisation, lorsqu'il n'existe pas de méthode exacte (ou que la solution est inconnue) pour le résoudre en un temps raisonnable [citation:7].
Ils s'inspirent directement de la notion de sélection naturelle et l'appliquent à une population de solutions potentielles au problème donné. La solution est approchée par "bonds" successifs, chaque génération étant en moyenne meilleure que la précédente [citation:7].
Pour comprendre les algorithmes génétiques, il faut d'abord s'intéresser au vocabulaire qu'ils empruntent à la génétique [citation:7] :
Individu : une solution potentielle au problème.
Population : un ensemble d'individus (de solutions).
Chromosome : la représentation d'une solution, souvent sous forme d'une chaîne de caractères (par exemple, une chaîne binaire comme 0100110).
Gène : une partie du chromosome, correspondant à un paramètre de la solution.
Allèle : la valeur que prend un gène.
Fonction d'adaptation (fitness) : une note qui évalue la qualité d'un individu, sa capacité à résoudre le problème. C'est l'équivalent de "l'adaptation à l'environnement" en biologie.
Un algorithme génétique suit généralement ces étapes [citation:7] :
Initialisation : on crée une population initiale de solutions, généralement de façon aléatoire. Chaque individu est une solution potentielle, représentée par son chromosome.
Évaluation : on calcule la fonction d'adaptation pour chaque individu. Les meilleurs ont une note élevée.
Sélection : on choisit les individus qui vont se reproduire. Plus un individu est adapté, plus il a de chances d'être sélectionné. Plusieurs méthodes existent : la sélection par rang (on prend toujours les meilleurs), la sélection proportionnelle (la probabilité de sélection est proportionnelle à la note, comme une roue de la fortune biaisée), ou la sélection par tournoi (on prend les meilleurs de paires tirées au sort).
Croisement (ou enjambement) : les individus sélectionnés échangent des parties de leurs chromosomes pour donner naissance à de nouveaux individus. Par exemple, avec un croisement simple, on prend deux chromosomes, on choisit un point de coupure, et on échange les parties terminales. C'est l'opération principale qui permet d'explorer de nouvelles combinaisons de gènes.
Mutation : de façon aléatoire, on modifie un gène chez certains individus (par exemple, changer un 0 en 1 dans une représentation binaire). Le taux de mutation est généralement faible (entre 0,001 et 0,01) pour ne pas tomber dans une recherche purement aléatoire. La mutation sert à éviter une convergence prématurée de l'algorithme vers un optimum local.
On remplace alors l'ancienne population par la nouvelle, et on répète le processus un grand nombre de générations. Au fil du temps, la population évolue et les individus s'améliorent, imitant le principe de l'évolution naturelle [citation:7].
Prenons un exemple simplifié. On veut trouver la combinaison de 8 bits qui donne la valeur maximale quand on les interprète comme un nombre binaire. Au lieu de tester les 256 possibilités une par une, on utilise un algorithme génétique [citation:7] :
Population initiale : on génère aléatoirement des chaînes de 8 bits : A = 00110010, B = 01010100, C = 11100011, D = 00011110.
Évaluation : on convertit chaque chaîne en nombre décimal. C = 227 est le meilleur, A = 50 est le moins bon.
Sélection : on donne plus de chances à C et B de se reproduire.
Croisement : on croise C (11100011) et B (01010100) après le 4e bit : on obtient 11100100 et 01010011.
Mutation : on change aléatoirement un bit chez un individu.
Nouvelle génération : on remplace les moins bons par les nouveaux. La population s'est améliorée en moyenne.
En répétant sur de nombreuses générations, on finira par trouver 11111111 (255), la solution optimale.
Les algorithmes génétiques sont utilisés dans de nombreux domaines où les problèmes sont trop complexes pour être résolus par des méthodes exactes : conception de circuits électroniques, optimisation de trajectoires, planification de production, conception de réseaux, apprentissage automatique, création artistique, ou encore optimisation de portefeuilles financiers.
Les algorithmes génétiques ne garantissent pas de trouver la solution optimale, mais généralement une très bonne solution approchée. Leur efficacité dépend de nombreux paramètres (taille de la population, taux de croisement, taux de mutation, méthode de sélection) qu'il faut ajuster selon le problème. Ils peuvent aussi converger prématurément vers un optimum local si la diversité de la population diminue trop vite. Mais bien paramétrés, ils restent une méthode puissante et élégante pour résoudre des problèmes complexes [citation:7].
Découvrez comment appliquer les algorithmes génétiques à vos problèmes d'optimisation.
Demander un expertVariante orthographique d'A/B testing désignant la même méthode de comparaison de deux versions p...
Méthode d'expérimentation qui compare deux versions d'un même élément pour déterminer laquelle pe...
Terme désignant les actions de communication publicitaire réalisées dans les médias de masse trad...