Vous êtes sur la page 1sur 16

Méthodes approchées

Algorithmes Génétiques

05/03/2023 Optimisation combinatoire 1


Métaheuristique à population

Algorithme:

Début
Initialisation : Génération d’une population initiale
Tant que (critère d’arrêt non atteint)
Exécuter une procédure de coopération
Exécuter une procédure d’adaptation individuelle
Fin Tant que
Fin

05/03/2023 Optimisation combinatoire 2


Algorithme génétique
Les algorithmes génétiques (AG) utilisent les concepts de la génétique sur
lesquels est appliqué le modèle de l’évolution proposé par Darwin (naturaliste,
scientifique).

Ils utilisent des populations qui vont évoluer pour s'adapter à leur milieu.

Le mécanisme de l’évolution repose d’après Darwin sur le hasard et sur la


sélection naturelle. Cette sélection dépend forcement du fait que les individus
les mieux adaptés à leur environnement ont tendance à devenir prédominants,
tandis que les moins adaptés disparaissent.

05/03/2023 Optimisation combinatoire 3


Algorithme génétique

Les algorithmes génétiques (AG) sont à l'origine le fruit des recherches de John Holland et de ses
collègues et élèves de l‘Université du Michigan qui ont travaillé sur ce sujet depuis l’année 1960. Les
AG s'appuient essentiellement sur un codage universel sous forme de chaînes binaires de longueur
fixe et sur un ensemble d'opérateurs dits opérateurs génétiques tels que la mutation et le
croisement.

Une solution est appelée individu ou chromosome.


• gène c’est une information qui est placée sur un chromosome à un emplacement donné appelé
"locus".
• chromosome c’est une combinaison de plusieurs gènes formant une solution proposée pour
résoudre le problème.

05/03/2023 Optimisation combinatoire 4


Le cycle de fonctionnement d’un algorithme génétique
Population
Génération k

Reproduction

Probabilité Pm Probabilité Pc

Mutation Croisement

Evaluation

Population
Génération k+1

05/03/2023 Optimisation combinatoire 5


1. Codage
Codage binaire
Le principe du codage binaire est de coder la solution par une chaîne de
bits. Les premiers travaux de J. Holland, ont été élaborés en se basant sur
ce type de codage, Et même si la plupart de ces théories peuvent être
étendues à des données autres que des chaînes de bits, elles n'ont pas été
autant étudiées dans ces contextes. Le codage binaire est utilisé dans
presque tous les problèmes de décision tels que le problème de voyageur
de commerce, le problème de sac à dos, …etc.

Codage réel
Ce type de codage utilise directement des réels pour représenter les
variables .

05/03/2023 Optimisation combinatoire 6


2. Génération de la population initiale

La génération de la population initiale est une étape décisive et


compliquée dans un algorithme génétique.

Elle peut être générée aléatoirement ou en utilisant une autres


méthodes

05/03/2023 Optimisation combinatoire 7


3. Evaluation de la qualité d'une solution

Lorsqu'une solution est générée, il faut pouvoir évaluer sa


qualité en introduisant ce que l’on nomme une fonction
d’adaptation (appelé également «fitness»). La façon de
déterminer cette fonction est dépendante du problème.

05/03/2023 Optimisation combinatoire 8


4. Sélection

Pour que la génération suivante soit plus adaptée au problème, il faut


combiner les meilleurs individus de la population courante. Une étape
d’identification et de sélection de ces meilleurs individus est donc nécessaire.
• Sélection par roulette (Roulette Wheel selection) : Pour chaque individu, la
probabilité d'être sélectionné est proportionnelle à son adaptation au problème. Le
principe de Roulette est celui de la roue de la fortune biaisée. On effectue un tirage
aléatoire utilisé dans les roulettes de casinos avec une structure linéaire. Avec ce
système, les grands segments, c'est-à-dire les bons individus, seront naturellement
plus souvent adressés que les petits.

Point sélectionné

05/03/2023 Optimisation combinatoire 9


4. Sélection

• Sélection par tournoi : La sélection par tournoi consiste à sélectionner N


individus au hasard et à prendre le meilleur parmi ces n individus. On
organise autant de tournois qu'il y a d'individus à repêcher. Le nombre N
permet de donner plus ou moins de chance aux individus peu adaptés.
Avec un nombre élevé de participants, un individu faible sera presque
toujours sûr de perdre.

05/03/2023 Optimisation combinatoire 10


4. Sélection

• Sélection élitiste : A la création d'une nouvelle population, il y a de grandes


chances que les meilleurs chromosomes soient perdus après les opérations
de croisement et de mutation. Pour éviter cela, on utilise la méthode
d'élitisme, qui consiste à copier un ou plusieurs des meilleurs chromosomes
dans la nouvelle génération. Ensuite, on génère le reste de la population
selon les opérateurs de reproduction usuels. L’avantage de cette méthode
de sélection est qu’elle permet de ne pas perdre les meilleures solutions.

05/03/2023 Optimisation combinatoire 11


5. Croisement

L’opérateur de croisement est appliqué après avoir appliqué l'opérateur de


sélection sur la population, afin d’enrichir la diversité de la population en
produisant de nouveaux individus (enfants) à partir d’autres individus
(parents), ainsi à partir du croisement de chaque couple de parents, résultent
deux fils.
Le croisement est effectué avec une probabilité 0<Pc<1

05/03/2023 Optimisation combinatoire 12


5. Croisement
• Crossover à un-point : Celui-ci consiste à choisir aléatoirement un site de
croisement (il s'agit d'une valeur comprise entre 1 et w-1, où w est la taille du
chromosome), et à échanger entre les parents la partie de leur chromosome se
trouvant sous le locus sélectionné.

• Crossover à deux-points

05/03/2023 Optimisation combinatoire 13


5. Croisement
Linear Order Crossover LOX
a b
↓ ↓ P1
P1 : 1 3 2|6 4 5|9 7 8 E1
P2 : 3 7 8|1 4 9|2 5 6 P2
E1 : 3 7 8 6 4 5 1 9 2 Complété en balayant P2
E2 : 3 2 6 1 4 9 5 7 8 Complété en balayant P1

Order Crossover (OX), cyclique


P1 : 1 3 2|6 4 5|9 7 8 P1(a)…P1(b) va dans C1
P2 : 3 7 8|1 4 9|2 5 6 P2(a)…P2(b) va dans C2
E1 : 8 1 9 6 4 5 2 3 7 Finition circulaire à partir de b
E2 : 2 6 5 1 4 9 7 8 3
05/03/2023 Optimisation combinatoire 14
6. Mutation

Cet opérateur permet de changer (permuter) un gène (ou plus) d'un


chromosome par d’autre d’une manière aléatoire.
Note : la mutation permet la diversité et s’effectue d’une probabilité
0,001<Pm<0,01

05/03/2023 Optimisation combinatoire 15


Exemple

Application : Problème de sac à dos


n
Max  x i Vi
i =1
n

x
i =1
i Pi  W

x i  0,1

05/03/2023 Optimisation combinatoire 16

Vous aimerez peut-être aussi