Algorithme Génétique
L'algorithme génétique est une technique de recherche basée sur la
la théorie de l'évolution de Darwin, qui a pris une immense ampleur
popularité dans le monde entier au cours des dernières années. On
présenteront ici les concepts de base nécessaires pour
l'aborder, ainsi que quelques exemples simples qui permettent aux
lecteurs comprendre comment l'appliquer au problème de leur choix.
Les Algorithmes Génétiques (AG) sont des méthodes adaptatives qui
peuvent être utilisés pour résoudre des problèmes de recherche et
optimisation. Ils sont basés sur le processus génétique de
organismes vivants. Au fil des générations, les populations
évoluent dans la nature conformément aux principes de la
sélection naturelle et la survie des plus forts, postulats
par Darwin. Par imitation de ce processus, les Algorithmes
Génétiques sont capables de créer des solutions pour des problèmes
du monde réel. L'évolution de ces solutions vers des valeurs
les optimaux du problème dépendent en bonne mesure d'un
codage adéquat de ceux-ci.
Un algorithme génétique consiste en une fonction mathématique ou un
routine logicielle qui prend comme entrées les exemplaires et
retourne comme sorties lesquels d'entre eux doivent générer une descendance
pour la nouvelle génération.
Des versions plus complexes des algorithmes génétiques génèrent un
cercle itératif qui prend directement l'espèce (le total des
exemplaires) et crée une nouvelle génération qui remplace le
antigua une quantité de fois déterminée par son propre design.
L'une de ses caractéristiques principales est celle de perfectionner
sa propre heuristique dans le processus d'exécution, donc ne
nécessite de longs périodes d'entraînement spécialisé par
partie de l'être humain, principal défaut des autres méthodes pour
résoudre des problèmes, comme les Systèmes Experts.
Avantages et Inconvénients
Ils n'ont pas besoin de connaissances spécifiques sur le problème que
essayent de résoudre.
Opèrent simultanément avec plusieurs solutions, au lieu de
de travailler de manière séquentielle comme les techniques
traditionnels.
Lorsque vous les utilisez pour des problèmes d'optimisation maximiser
une fonction objectif - sont moins affectés par les
maximales locaux (fausses solutions) que les techniques
traditionnelles.
Il est extrêmement facile de les exécuter sur les modernes
architectures massivement parallèles.
Ils utilisent des opérateurs probabilistes au lieu des typiques.
opérateurs déterministes des autres techniques.
Ils peuvent prendre beaucoup de temps à converger, ou ne pas converger dans
absolu, dépendant dans une certaine mesure des paramètres
que se utilisent la taille de la population, le nombre de
générations, etc.-.
Ils peuvent converger prématurément en raison d'une série de
problèmes de diverse nature.
L'application la plus courante des algorithmes génétiques a été la
solution de problèmes d'optimisation, où ils ont montré
être très efficaces et fiables. Cependant, pas tous les
des problèmes pourraient être appropriés pour la technique, et se
recommande en général de prendre en compte les suivantes
caractéristiques de celui-ci avant d'essayer de l'utiliser :
Votre espace de recherche (c'est-à-dire vos solutions possibles) doit
être délimité dans une certaine plage.
Une fonction d'aptitude doit pouvoir être définie qui nous
indique à quel point une certaine réponse est bonne ou mauvaise.
Les solutions doivent être codées d'une manière qui soit
relativement facile à mettre en œuvre sur l'ordinateur.
Le premier point est très important, et il est fortement recommandé de
tentatives de résoudre des problèmes ayant des espaces de recherche
discrets bien que ceux-ci soient très grands. Cependant, aussi
il pourra être tenté d'utiliser la technique avec des espaces de recherche
continu, mais de préférence lorsque qu'il existe une gamme de
solutions relativement petites.
La fonction de fitness n'est rien d'autre que la fonction objectif de
notre problème d'optimisation. L'algorithme génétique
uniquement maximiser, mais la minimisation peut être effectuée
facilement en utilisant le réciproque de la fonction maximisante
(il faut bien sûr faire attention à ce que le réciproque de la fonction ne
génère une division par zéro). Une caractéristique que doit avoir
cette fonction doit être capable de "punir" les mauvaises
solutions, et de "récompenser" les bonnes, de sorte que ce soient elles
les dernières qui se propagent avec la plus grande rapidité.
La codification la plus courante des solutions se fait par
cadenas binaires, bien qu'on ait également utilisé des nombres
réels et lettres. Le premier de ces schémas a bénéficié de
beaucoup de popularité puisque c'est celui qui a proposé à l'origine
Hollande, et en plus parce que cela s'avère très simple à mettre en œuvre.
Algorithmes Génétiques
Les premiers exemples de ce que nous pourrions appeler aujourd'hui
les algorithmes génétiques sont apparus à la fin des années 50 et au début de
les années 60, programmés sur des ordinateurs par des biologistes évolutionnistes qui
cherchaient explicitement à réaliser des modèles d'aspects de la
évolution naturelle. Aucun d'eux n'a pensé que cette
la stratégie pourrait s'appliquer de manière plus générale aux problèmes
artificielles, mais cette approche ne tarderait pas à arriver : la
l'informatique évolutionnaire était définitivement dans l'environnement
depuis les premiers jours de l'ordinateur électronique.
Qu'est-ce qu'un algorithme génétique ?
Brièvement, un algorithme génétique (AG) est une technique
de résolution de problèmes qui imite l'évolution biologique
comme stratégie pour résoudre des problèmes, en s'intégrant à l'intérieur
de ce que nous avons auparavant appelé techniques basées sur
populations. Given a specific problem to solve, the input
del AG est un ensemble de solutions potentielles à ce problème,
codées d'une certaine manière, et une métrique appelée fonction de
aptitude, de condition physique, qui permet d'évaluer quantitativement chaque
solution candidate.
The input is a URL and not a translatable text.
http://www.cs.us.es/~fsancho/?e=65