Vous êtes sur la page 1sur 11

OPTIMISATION SANS CONTRAINTES

METHODES GLOBALES
1. Introduction
Les méthodes globales s’appuient sur des mécanismes de transition aléatoire. Elles ne
nécessitent aucune connaissance sur la continuité ou la dérivabilité de la fonction
objectif. Cependant, elles sont dédiées aux problèmes de grande taille. Ces méthodes
globales sont réparties en deux classes :

• Les méthodes de Voisinage manipulant une seule solution. On


distingue :

Recuit simulé

Recherche Tabou

• Les méthodes évolutionnaires manipulant un ensemble de solutions


potentielles. On cite :

Essaims particulaires

Colonies de fourmis

Algorithmes génétiques (AGs)

On s’intéresse dans ce cours aux AGs

2. Algorithmes génétiques (AGs)

2.1 Introduction

Les algorithmes génétiques (AGs) sont des méthodes d’optimisation stochastiques


fondées sur les mécanismes de la sélection naturelle et de la génétique. Les principes
de base des AGs ont été développés par Holland, simulant le processus d’évolution
d’une population, réalisant un compromis équilibré et raisonnable entre l’exploitation
des meilleurs solutions disponibles à un moment donné et l’exploration de l’espace de
recherche du problème.
Ils sont basés sur les opérateurs de sélection, croisement et mutation. L’évolution des
populations repose d’une part sur l’intervention du hasard au cours des croisements et
des mutations, et d’autre part sur un processus de sélection des individus les plus
aptes à survivre. C’est précisément cette notion de hasard guidé par la sélection qui
est à la base du fonctionnement des AGs.
Le mérite des AGs est qu’ils convergent vers l’optimum global et ne nécessitent
aucune connaissance particulière sur la fonction objectif (pas de calcul de gradient ni
hessien).

1
2.2 Description d’un AG
Un AG est un algorithme itératif, de recherche globale dont le but est d’optimiser une
fonction définie par l’utilisateur (fonction coût, fitness,….).
Pour atteindre cet objectif, l’algorithme travaille en parallèle sur une population
aléatoire d’individus (chromosomes) représentant des solutions possibles distribuées
dans tout l’espace de recherche. Chaque individu est caractérisé par son chromosome.
Chaque chromosome est constitué d’un ensemble de gènes (trait/caractéristique). Un
chromosome peut être codé de différentes manières.
A chaque itération (génération), une nouvelle population est créée avec le même
nombre d’individus (les enfants descendants).
Cette nouvelle génération constituée généralement d’individus mieux adaptés à
l’environnement tel qu’il est représenté par la fonction fitness. Au fur et à mesure que
les générations évoluent, les individus vont tendre en général vers l’optimum de la
fonction fitness.
La génération de la nouvelle population à partir de la précédente s’effectue par les
étapes suivantes :
• Evaluation : l’AG évalue la fonction fitness de chaque individu de l’ancienne
population
• Sélection : il sélectionne les individus sur la base de leur fitness
• Croisement : recombinaison de deux parents avec une probabilité Pc pour
donner naissance à deux enfants
• Mutation : modification aléatoire d’un ou plusieurs gêne(s) d’un chromosome
avec une probabilité Pm
2.3 Développement d’un AG
Le développement d’un AG passe par les étapes suivantes :
• Choix du codage
• Choix du vecteur contrôle / taille de la population, Pc, Pm, max génération,
précision
• Génération d’une population initiale aléatoire de taille N
• Définir la fonction objectif (fitness)
• Choix des opérateurs génétiques (sélection, croisement et mutation)
• Sélectionner le critère d’arrêt

2
Les différentes étapes de l’AG sont répétées jusqu’à satisfaction du critère de
convergence.
A. Codage du chromosome
Les AGs utilisent un codage des éléments de l’espace de recherche et non pas les
éléments eux-mêmes. Par analogie avec la biologie, chaque individu de la population
est représenté par un chromosome qui est un ensemble de gènes. Chaque gène est
associé à une variable du problème d’optimisation. Un gène peut être codé de
différentes manières : binaire, gray, réel, arbres, tableaux, listes ou tous autres objets.
Les codages binaire et réel sont les plus répandus.
A.1 Codage binaire
Le codage binaire attribue une chaîne de bits de valeurs 0 ou 1 au chromosome. Ce
codage était à l’origine des premiers AGs. Il présente l’avantage d’être facile et
permet de coder toutes sortes d’objets : des réels, des entiers, des chaînes de
caractères.
C’est la représentation la plus fréquente, soit f une fonction à optimiser de
paramètres x . La variable x représente un individu de la population, il est codé sous
forme d’une chaîne de n bits. Soit x ∈ [x min , x max ] avec x ∈ ℜ et x a un nombre de

décimale noté d .
Dans une représentation binaire, la taille de l’individu n vérifie l’inéquation suivante:

| x max − x min | ∗ 10 d ≤ 2 n (1)

En considérant l’écart ∆x entre deux variables adjacentes, la taille de l’individu n


vérifie l’inéquation suivante:
| x max - x min | + ∆x
≤ 2n (2)
∆x
Exemple
Soit à coder les individus d’une population pour mettre en place un AG minimisant
une fonction dont les solutions sont définies dans l’intervalle x ∈ [-1,28, 1,28]. La
précision d est de 2 décimales.
• La taille nécessaire pour coder l’individu est :

|1,28 + 1,28| ∗ 10 2 ≤ 2 n ⟹ 8 ∗ ln2 ≤ n ∗ ln2 ⟹ n = 8

3
Dans ce type de codage pour chaque variable réel x de précision d correspond un

entier long g tel que g max = 2 n − 1 où n est la taille de la chaîne de bits (taille de
code de l’individu).
g est codé sur n bits suivant la représentation suivante :

bn −1 bn − 2 bn − 3 ……….. b2 b1 b0

b0 est le bit de plus faible poids et bn −1 de plus fort poids. Alors l’entier long g , tel
n −1
que 0 ≤ g ≤ g max , est calculé par la relation suivante : ∑ b j .2 j (3)
j =0

Enfin, il est facile de trouver la correspondance entre la variable réel x et l’entier long
g , les relations (3) et (4) permettent le passage entre les deux représentations.
• Réel – Entier long
x − x min
g= * g max (4)
x max − x min

• Entier long – Réel


(xmax − xmin ) * g
x = xmin + (5)
g max
A.2 Codage Gray
Le codage binaire choisi pour l'algorithme historique présente des anomalies. Il suffit
de constater que deux chromosomes variant d'un unique gène peuvent fournir deux
valeurs de variables de contrôle très éloignées. Pour exemple, on considère le codage
binaire des entiers entre 0 et 7 : [000] [001] [010] [011] [100] [101] [110] [111]. On
constate que les valeurs 3 et 7, ou 1 et 5 correspondent à des chromosomes dont un
seul gène diffère. Par conséquent, deux variables de contrôle très proches pourront
avoir des représentations génétiques très différentes. Cette caractéristique est
généralement néfaste à la résolution d'un problème présentant certaines propriétés de
régularité.
On peut facilement améliorer le codage binaire en introduisant un codage de type
Gray. Une caractéristique de ce codage est que deux valeurs adjacentes ne diffèrent
que d'un seul gène. Le codage Gray des entiers entre 0 et 7 devient : [000] [001] [011]
[010] [110] [111] [101] [100]. L'utilisation d'un codage Gray est généralement
bénéfique, pour la plupart des problèmes dont les variables de contrôle sont réelles.

4
A.3 Codage réel
La représentation la plus efficace est celle qui s’appuie sur des nombres réels. Le
codage réel est plus précis et moins encombrant du point de vue mémoire que le
binaire. Cependant, le choix du codage des données dépend de la spécificité du
problème à traiter. Il influe sur les performances de l’AG.

B. Population initiale
Le choix de la population initiale se fait dans le domaine de recherche dont la
délimitation est primordiale, car il doit nécessairement contenir la solution. Ainsi, Si
l’ordre de grandeur de la solution est inconnu, il est naturel de générer aléatoirement
des individus en faisant des tirages uniformes dans des domaines susceptibles de
contenir la solution. Si l’ordre de grandeur de la solution est connu, il est plus
judicieux de générer les individus dans un domaine contenant la solution.
Par ailleurs, cette étape présente un problème principal qui est celui de choix de la
taille de la population. En effet une taille de population trop grande augmente le
temps de calcul et nécessite un espace mémoire considérable, alors qu’une taille de
population trop petite limite l’exploration de l’espace de recherche et conduit à un
optimum local.
C. Evaluation
La fonction objectif ou d’adaptation, ou fitness, associe une valeur pour chaque individu.
Cette valeur a pour but d’évaluer si un individu est mieux adapté qu’un autre à son
environnement. Ce qui signifie qu’elle quantifie la réponse fournit au problème pour une
solution potentielle donnée. Ainsi les individus peuvent être comparés entre eux.

D. L’opérateur de sélection
La sélection permet de choisir les individus aptes à être croisés dans la population.
Cette opération est fondée sur la performance des individus, estimée à l’aide de la
fonction objectif. Différentes sélections sont proposées dans la littérature dont on
évoquera les plus connues :
• Sélection proportionnelle
• Sélection linéaire par rapport rang
• Sélection uniforme par rapport au rang
• Sélection par tournoi
• Sélection de Boltzmann

5
D.1 Sélection proportionnelle
La sélection proportionnelle consiste à sélectionner chaque individu dépendant de la
valeur de sa fonction objectif réelle. Ceci peut être effectué en procédant à des tirages
aléatoires consécutifs. Dans un problème de minimisation, la probabilité de sélection
d’un individu est donnée par :

fit ( i )
1− N
∑ fit ( j )
j =1
p (i ) = (6)
( N − 1)
Dans un problème de maximisation, la probabilité de sélection d’un individu est
donnée par :

fit ( i )
p (i ) = N (7)
∑ fit ( j )
j =1

fit (i ) : Valeur de la fonction objectif réelle du ième individu


N : Taille de la population

En pratique, on calcule pour chaque individu xi sa probabilité cumulée


i
q i = ∑ p (x j ) et on choisit aléatoirement un nombre r compris entre 0 et 1.
j =1

L’individu retenu est x1 si q1 ≥ r ou xi ( 2 ≤ i ≤ N ) si qi −1 < r < qi .


Ce processus est répété N fois. Avec une telle sélection, un individu fort peut être
choisi plusieurs fois. Par contre, un individu faible aura moins de chance d’être
sélectionné. Une illustration de la roulette est donnée dans l’exemple suivant.

Exemple En pratique, on utilise une roue de loterie divisée en N secteurs


(représentant les individus à sélectionner) dont la surface est proportionnelle à la
probabilité de sélection correspondante. N tirages aléatoires sont ensuite réalisés pour
sélectionner N individus. Cette sélection basée sur la performance, présente
l’inconvénient de favoriser la multiplication de "super-individus". Par conséquent une
convergence prématurée de l’algorithme peut se présenter. Pour éviter cela et

6
préserver la diversité des individus, il est recommandé de réaliser un réajustement de
la fonction fitness avant la sélection.
Comme l’opérateur de sélection est appliqué N fois, l’espérance mathématique du
nombre d’enfant de l’individu i sera

N . fit (i )
ps = N
(8)
∑ fit (i)
i =1

Figure 1: Exemple de roulette biaisée


E. Croisement
Le croisement de deux parents génère deux enfants. Le croisement est réalisé avec
une probabilité Pc. Il s’agit d’un processus essentiel pour explorer l’espace des
solutions possibles. Différents types de croisement sont employés par les AGs:
• Le croisement discret est assez similaire aux méthodes de croisement utilisées
dans le cas du codage binaire. Il consiste à permuter les variables de chaque
parent entre des sites du chromosome choisis aléatoirement. Le croisement
discret peut être à un site, multi-sites ou uniforme.

Figure 2: Croisement à un site

7
Figure 3 : Croisement en deux sites

Figure 4 : Croisement uniforme


• Le croisement continu assure le mixage de gènes de deux parents pour la
production de leurs progénitures. Les gènes des deux enfants ’a1’ et ‘a2’ sont
choisis proches de leurs parents comme le montre le système d’équation
suivant:
  
 a1 = a parent 1 + r . a parent 2 − a parent 1 
  

a 2 = a  
+ r . a −a 
 parent 2  parent 1 parent 2 

F. Mutation
La mutation réalise un changement mineur dans le code génétique appliqué à un
individu pour introduire de la diversité et éviter de tomber dans un optimum local.
Différentes manières de mutation d’un chromosome sont aussi définies dans la
littérature.
F.1 Mutation en codage binaire
La mutation en codage binaire est la modification aléatoire occasionnelle (de faible
probabilité) de la valeur d’un caractère de la chaîne.

F.2 Mutation en codage réel


Pour le codage réel, les opérateurs de mutation les plus utilisés sont les suivants :
• Mutation par inversion
Deux positions sont sélectionnées au hasard et tous les gènes situés entre ces positions
sont inversés. L'individu i avant mutation est représenté dans la partie (a) avec le

8
segment formé par les deux positions sélectionnées. L'inversion est effectuée à l'étape
(b) afin de produire l'individu i'.
i (a)
1 2 3 4 5 6 7 8 9
i’ (b)
1 2 3 7 6 5 4 8 9
Figure 5 : Mutation par inversion
• Mutation par insertion
Deux positions sont sélectionnées au hasard et le gène appartenant à l'une est inséré
dans l'autre position. Dans la Figure 6 partie (a), les gènes "3" et "6" de l'individu i
sont sélectionnés. La deuxième étape, illustrée par la partie (b), montre l'insertion de
"6" avant "3" et le décalage de tous les autres gènes.
i (a)
1 2 3 4 5 6 7 8 9
i’ (b)
1 2 6 3 4 5 7 8 9

Figure 6 : Mutation par insertion


• Mutation par déplacement
Une séquence est sélectionnée au hasard et déplacée vers une position elle-même tirée
au hasard. Un exemple de mutation par déplacement est illustré à la figure 7. Dans la
partie (a), la séquence "3-4-5-6" est sélectionnée et déplacée à la première position
pour former l'individu i' représenté dans la partie (b).
i (a)
1 2 3 4 5 6 7 8 9
i’ (b)
3 4 5 6 1 2 7 8 9

Figure 7 : Mutation par déplacement


• Mutation par permutation
Deux positions sont sélectionnées au hasard et les gènes situés dans ces positions sont
permutés. Comme il est illustré à la Figure 8, les éléments "3" et "6" sont sélectionnés
dans i (partie (a)) et permutés dans i' (partie (b)).

9
i (a)
1 2 3 4 5 6 7 8 9
i’ (b)
1 2 6 4 5 3 7 8 9

Figure 8 : Mutation par permutation

G. Remplacement
Après l’étape de mutation, faut-il garder les enfants ou les parents ou bien un certain
pourcentage des deux en respectant la taille de la population (N) qui reste constante. Il
s’agit de concevoir une stratégie d’évolution de la population.
L’élitisme consiste à remplacer quelques meilleurs individus dans la nouvelle
population. Il accroît l’efficacité de l’algorithme génétique basé sur la méthode de
remplacement générationnelle. L’objectif est d’éviter que les meilleurs individus
soient perdus après les opérations de croisement et de mutation.
• L’AG remplaçant la population entière, est appelé AG générationnel
• L’AG remplaçant seulement une petite portion d’individus dans le temps est
appelé AG stationnaire. Les meilleurs individus remplacent les plus mauvais.
L’AG stationnaire diffère de l’AG générationnel par la stratégie d’élitisme
(préservation des meilleurs individus)

2.4 Performance d’un AG


Le fonctionnement d’un AG repose sur les paramètres de base constituant le vecteur
contrôle composé de :
• Taille de la population
• Taux de mutation Pm
• Taux de croisement
Trouver les bonnes valeurs de ses trois paramètres est un problème délicat. C’est
généralement par essai/erreur qu’on détermine les valeurs optimales du vecteur
contrôle d’un problème.
Ainsi il n’existe pas de paramètres qui soient adaptés à la résolution de tous les
problèmes qui peuvent être posés à un AG. Cependant, certaines valeurs sont souvent

10
utilisées (définies dans la littérature) et peuvent être de bons points de départ pour
démarrer une recherche de solutions à l’aide d’un AG.
• La probabilité de croisement est choisie dans l’intervalle [0.5, 0.9] ;
• La probabilité de mutation est choisie dans l’intervalle [0.05, 0.1].

2.5 Test d’arrêt


Plusieurs critères d’arrêt sont envisageables :
• Arrêt après un nombre fixé à priori de générations
• Arrêt lorsque la population cesse d’évoluer ou n’évolue plus suffisamment.
Il est à noter qu’aucune certitude concernant la bonne convergence de l’algorithme
n’est assurée. Comme dans toute procédure d’optimisation l’arrêt est arbitraire, et la
solution en temps fini ne constitue qu’une approximation de l’optimum.
Conclusion
Les performances des AGs dépendent du choix des opérateurs génétiques et du
vecteur contrôle. Le mérite des AGs est de converger vers un minimum global, par
contre ils sont gourmands en temps de calcul et ils souffrent de la convergence
prématurée.

11

Vous aimerez peut-être aussi