Vous êtes sur la page 1sur 7

1

ELEC 2311 - Projet Tutoriel Algorithme Gntique Dest.: Etudiants


27-11-08 v.1 Auteur : JD

Introduction :

Lobjectif de ce tutoriel est de se familiariser avec les mthodes doptimisation de type mta-heuristique et
particulirement avec la famille des algorithmes gntiques. Les deux avantages principaux de ces algorithmes sont
la possibilit de travailler en multi-objectifs et la particularit dtre un algorithme de type global, c'est--dire quen
partant de solutions initiales diffrentes, il est capable de retrouver la mme solution finale. Cette particularit lui
donne la capacit de retrouver les minima globaux.

Dfinition du problme :

Le problme propos concerne le design de deux barres attaches au plafond par une extrmit et relies entre-elles
en leur seconde extrmit. A cette liaison sajoute une force verticale de 100kN. Les trois paramtres de design sont
x
1
, x
2
et y. Les variables x
1
et x
2
reprsentent les sections (en m) des barres et la variable y reprsente la hauteur du
point dintersection (en m). Le schma ci-dessous reprsente le problme tudier.



Le problme consiste minimiser deux fonctions dvaluations, le volume des barres et les contraintes en traction
dans celles-ci :

) , max( ) , (
, 1 16 ) , (
2
2
2
2
1 1
BC AC
y x f
y x y x y x f
=
+ + + =
r
r


o
AC
et
BC
, les contraintes normales dans chacune des deux barres, sont donnes par les relations :

1
2
16 20
x y
y
AC

+
=

2
2
1 80
x y
y
BC

+
=


Les paramtres de design sont contraints par les relations suivantes :

, , 0
max 2 1
A x x

3 1 y
A cela sajoute galement une contrainte relevant de la rsistance des matriaux en traction :

max
) , max( S
BC AC



Les valeurs choisies pour S
max
et pour A
max
sont respectivement 10
5
kPa et 0.01 m
2
.


2
Structure de lalgorithme gntique :

Lalgorithme gntique propos se base sur un concept classique. Il travail partir dune population compose de N
individus sur qui des oprations mathmatiques lmentaires de croisement et de mutation sont appliques.

Chaque individu reprsente un jeu de paramtre variant entre 0 et 1, x
1
, x
2
et y sous la forme normalise dans notre
cas, qui sera utilis dans les fonctions dvaluation pour estimer ladaptation de lindividu son milieu. Le schma
suivant reprsente les principales tapes et actions de lalgorithme :




Population Initiale : La population sera dfinie par un nombre
de N individus la composant et qui sera constant.


Croisement : Cette opration mathmatique permettra
dutiliser les qualits de chaque individu lors de la priode de
reproduction.

Mutation : Cette opration mathmatique reprsente
loprateur dexploration en permettant aux paramtres de se
balader dans le domaine de dfinition [0 ;1].

Population Enfant : La population est dfinie comme
possdant N individus provenant de N oprations de
reproduction. Le choix des parents peut tre rptitif.

Slection : On regroupe la population Enfant et Initiale pour
former un groupe de 2N individus. On ne slectionne que les
meilleurs individus selon certains critres.

Population Elite : Reprsente les N meilleurs individus sortant
de la slection. En fin de processus doptimisation, cest la
population de solution optimale.


Lopration de cration dun individu enfant est la combinaison dune opration de croisement afin dobtenir un
rsultat provenant des parents et dune opration de mutation afin dobtenir une diversification possible selon une
certaine probabilit de mutation.




Croisement

Lopration de croisement se base sur la moyenne arithmtique des 2 individus parents sur chacun des paramtres de
design. Dans notre cas, cela donnera :

3
2
2
2 1
2 1
p p
enf
p p
enf
y y
y
x x
x
+
=
+
=
r r
r


Mutation

Lopration de mutation permet lalgorithme de gnrer des solutions originales dans le domaine des solutions.
Afin de ne pas provoquer une convergence trop lente, lopration de mutation ne seffectue sur un paramtre
quavec une probabilit fixe P
mut
.

La mutation seffectue simplement en utilisant une variable alatoire comprise entre -1 et 1.

[ ] 1 , 1 , + = avec X X
mut


Cependant cette mthode permet au paramtre davoir des valeurs infrieures ou suprieures aux bornes [0,1]. Pour
viter ce dsagrment, le coefficient sera multipli par un facteur de distance variant entre 0 et 1. Ce facteur de
distance est calcul selon la distance minimale qui existe avec lune des bornes :

) , min(
2 1
X B B X d =

Dans le cas de lalgorithme, les bornes tant fixes 0 et 1 :

) 1 , min( X X d =

La valeur maximale ou minimale que peut avoir est d, ce qui amne dire que = d.
Slection

La slection des individus va se baser selon deux principes :

Rcuprer les meilleurs individus
Diversifier au maximum les solutions

Lorsque lon travaille avec plusieurs fonctions dvaluation proposant un compromis entre-elles, il nexiste pas de
solution optimale rpondant toutes les fonctions dvaluation (voir T.42 du cours). Afin de rcuprer les meilleurs
individus, un classement par rang de non-dominance est ncessaire. La rcupration des individus se fait rang par
rang de manire recomposer une nouvelle population de N individus. Cependant, arriv au dernier rang ajouter,
il arrive souvent que celui-ci soit trop grand pour terminer la composition de la population finale. Un nouveau
facteur de dcision intervient pour obtenir les individus les plus intressants, c'est--dire ceux qui permettent de
diversifier les solutions. La mthode permettant dvaluer cette diversification consiste calculer la distance qui
existe entre les individus voisins dans le rang de non-dominance au sein du domaine des solutions. Il ne reste alors
qu rcuprer les individus avec les distances les plus leves.

Implmentation sur Matlab de lalgorithme gntique :
Structure du programme

Le programme est crit sur Matlab et compos par une srie de fichiers. Seuls deux de ces fichiers, c'est--dire
GA.m et evaluationFonction.m sont modifier pour une simple utilisation du programme, mais rien nempche
une modification des autres fichiers pour amliorer les performances de lalgorithme. Celui-ci nest quune version
non optimale au niveau du code, mais permet dj dobtenir de trs bons rsultats en des temps raisonnables.

Le schma ci-dessous regroupe les fichiers utiliss ainsi que les liaisons entre-eux.

4



Lalgorithme en temps que tel ncessite deux types dintervention de la part de lutilisateur. Le premier type est la
configuration des paramtres tels que les probabilits de mutation, le nombre de gnration effectuer etc. Ces
modifications sont faire dans le fichier GA.m qui est le fichier excuter pour lancer lalgorithme. Le deuxime
type de modification est ladaptation au problme. Lalgorithme ne connait pas le problme analyser, il faut donc
le lui soumettre. Pour cela, il suffit simplement de rentrer les fonctions dvaluation et les contraintes dans le fichier
evaluationFonction.m.

Le schma de droite reprsente finalement le fonctionnement de
lalgorithme en considrant les fichiers non-modifiables comme
tant une boite noire.

Il existe un transfert dinformation important entre les
diffrentes botes, mais plus particulirement entre lalgorithme
gntique et le fichier dvaluation. Au cours de chaque
gnration, lalgorithme fait appel N fois au fichier dvaluation
pour valuer chaque individu la fois.

Les valeurs transmises au fichier dvaluation sont sous la forme
vectorielle dont la taille dpend du nombre de variable relle
utilise.

Les valeurs retournes par la fonction dvaluation Matlab sont
au nombre de deux vecteurs, un premier pour les valuations et
un deuxime pour les contraintes. Leur dimension dpendant du
nombre de fonction dvaluation et du nombre de contrainte
ncessaire.





5

GA.m

Les lignes de code suivantes se retrouvent dans le fichier GA.m. Elles permettent de configurer le nombre
dindividus, le nombre de gnrations, la probabilit de muter, le nombre de paramtres rels, le nombre de
fonctions dvaluation et le nombre de contraintes.

% Nombre d'individu
nb_ind = 200;

% Nombre de gnration (itration effectuer)
nb_generation = 600;

% Probabilit de mutation
p_mut = 0.1; % ->10% de chance de muter

% Nombre de variables relles
nb_xReal = 3;

% Nombre de fonction d'valuation
nb_fitness = 2;

% Nombre de contrainte
nb_cstr = 1;

Tous ces paramtres sont envoys dans la routine principale du programme :

% on appel le code principal
pop = main_GA(nb_ind, nb_generation, p_mut, nb_xReal, ...
nb_fitness, nb_cstr);

La solution finale est retourne par lintermdiaire de la variable pop dont la structure est reprsente ci-dessous.










6
evolutionFonction.m

Ce fichier permet dvaluer un individu la fois. Les paramtres dentres sont regroups dans le vecteur X. La
premire tape avant dexploiter tel quel les informations provenant de ce vecteur, il convient de redimensionner les
valeurs sachant que les lments X(1), X(2), varient de 0 1. Dans le cas du problme tudier, il faut considrer
que les paramtres x
1
et x
2
varient entre 0 et A
max
qui vaut 0.01 [m] et que le paramtre y varie entre 1 et 3.

x1 = X(1) * 0.01;
x2 = X(2) * 0.01;
y = X(3) * 2 + 1;

Il ne reste plus qu introduire les quations du problme. C'est--dire, dabord dfinir les constantes A
max
et S
max
,
ensuite calculer les valeurs de
AC
et
BC
, ensuite calculer les fonctions dvaluation et terminer par le calcul de la
contrainte. La valeur de 1000 pour le non respect de la contrainte est simplement une valeur choisit alatoirement
servant de pnalit.


Amax = 0.01; % [m]
Smax = 1e5; % [kPa]

sigmaAC = 20 * sqrt(16+y*y) / (y*x1);
sigmaBC = 80 * sqrt(1+y*y) / (y*x2);

fitness(1) = x1 * sqrt(16+y*y) + x2* sqrt(1+y*y);
fitness(2) = max(sigmaAC, sigmaBC);

cstr = 0;
if (max(sigmaAC, sigmaBC)>Smax)
cstr = 1000;
end


Rsultats :


Les graphiques ci-dessous reprsentent les rsultats. Celui de gauche est le front de Pareto obtenu. Les points verts
sont les populations enfants de la dernire gnration, les points bleus sont les populations de parents de la dernire
gnration et tous les individus slectionns sont mis en vidence par un cercle rouge. Les ordonnes reprsentent la
deuxime fonction dvaluation et les abscisses reprsentent la premire fonction dvaluation.



En considrant le ratio suivant reprsentant le rapport entre le nombre de parent slectionn et le nombre denfant
slectionn :

7
,
enfant
parent
S
S
r =

on peut dire que lorsque lalgorithme dbute ses gnrations, la valeur de r tendra plus vers 0 alors quen fin de
processus, il tendra vers linfini. Cela montre limportance en dbut de processus davoir une diversification de la
population, obtenue grce aux enfants et leur mutation. Alors quen fin de processus, il est seulement ncessaire de
faire que des recherches locales obtenues grces aux croisements.

Le graphique de droite reprsente les valeurs du couple (X(1) ; X(2)) des paramtres pour toutes les solutions
appartenant au front.

Le tableau suivant donne les rsultats pour la meilleure solution de la premire fonction dvaluation et la meilleure
solution pour la deuxime fonction dvaluation, ce qui reprsente en fait les deux points extrmes du graphique de
gauche ci-dessus.