• Aucun résultat trouvé

Algorithme génétique

Dans le document Présenté par : AKKA ALI. Intitulé (Page 64-69)

Chapitre III: Méthode d’optimisation métaheuristiques

III.2 Algorithme génétique

Le principe des algorithmes génétiques est la stimulation du processus d’évolution des espèces dans leur milieu naturel, tout en s'inspirant des théories de l'évolution énoncées par Charles Darwin. Pour une population donnée, les individus les mieux adaptés au milieu sont ceux qui survivent et qui peuvent procréer. C’est dans les années 60 que les premiers algorithmes génétiques (AGs) ont été mis au point par John Holland [62]. Ils ont été raffinés par De Jong [63] et ensuite popularisés par Goldberg et Holland [64][65].

Les algorithmes génétiques sont des approches basés sur le modèle de l’évolution. Les individus soumis à l’évolution sont des solutions appartenant à l’espace de recherche du problème à optimiser. Ces individus traités collectivement par l’algorithme génétique forme une population, l’algorithme itère et passe d’une génération à l’autre jusqu’à la satisfaction d’un critère d’arrêt. Pour chaque génération, un ensemble d’opérateurs est appliqué aux individus d’une population pour engendrer une nouvelle génération.

Le principe d’un algorithme génétique est simple. Une population initiale est choisie au hasard ; chaque individu de la population possède une certaine performance, qui évalue son rang d’adaptation à l’objectif visé (fitness). Pour aller de la génération k à la génération k+1, on effectue les opérations suivantes : au départ, la population est reproduite par sélection, ensuite, on applique un croisement aux couples d’individus père et mère (les parents) pour en engendrer des nouveaux individus (les enfants). Un opérateur de mutation est appliqué à une fraction de la population. Enfin, les nouveaux individus sont évalués et intégrés à la population de la génération suivante (de manière à conserver une population de taille constante). D’une génération à une autre, la force des individus de la population grandit et après un certain nombre d’itérations, la population est entièrement homogène constituée d’individus tous forts, d’où des solutions quasi-optimales du problème posé.

L’algorithme de l’AG est donnée par : Initialisation de la population

Evaluer des fonctions objectives de chaque individu Calculer l'efficacité de chaque individu

Tant que le critère d'arrêt n'est pas atteint faire Sélection des parents pour la reproduction

Mutation Croisement

Evaluer des fonctions objectives de chaque enfant Calculer l'efficacité de chaque enfant

Sélection pour remplacement Fin Tant que

Algorithme 1: Algorithme génétique

III.2.1 Codage

La première étape consiste à indiquer les différents états réalisables de la variable dont on cherche la valeur optimale sous un modèle utilisable pour un algorithme génétique: c’est le codage. Ce qui permet d’établir une liaison entre la valeur de la variable et les individus de la population, de façon à calquer la transcription génotype- phénotype qui existe dans le monde vivant. On a deux types de codage : le codage binaire, le codage réel.

III.2.1.1 Codage binaire

Le principe du codage binaire des algorithmes génétiques est de coder la solution selon une chaîne de bits (acceptant les valeurs 0 ou 1). Les variables sont des gènes dans le chromosome conditionnant la manifestation et la transmission d'un caractère héréditaire déterminé. Ils sont en binaire (une chaîne est composée des chiffres 0 et 1). Ce qui exige un décodage de ces chaînes à chaque fois afin de calculer leurs valeurs en réel et avant de calculer la fonction objective, et ceci ce fait pour chaque individu et à chaque itération.

III.2.1.2 Codage réel

Dans ce type de codage dit réel, les variables réelles se montrent directement dans le chromosome et sont utilisées par des opérateurs génétiques simples et spéciaux (expressions mathématiques). Dans ce codage, la méthode d’évaluation des chromosomes est rapide dû à l’absence de l’étape de transcodage (du binaire vers le réel). A partir des résultats donnés par [66] [67], et dans le cas d’optimisation avec des variables réelles, on arrive fréquemment à une meilleure précision et un gain précieux de temps d’exécution avec un codage réel comparé à un codage binaire.

III.2.2 Population initiale

La population initiale c’est la population de départ de l'algorithme. Elle doit inclure des chromosomes parfaitement répartis dans l'espace des solutions pour livrer à l'AG un matériel

génétique varié. La sélection de la population initiale d'individus détermine solidement la convergence de l'algorithme. Si la position de l'optimum dans l'espace de solutions est complètement inconnue, alors on génère aléatoirement des individus. Pour ce cas, la génération de solutions aléatoires peut produire des solutions irréalisables [68].

III.2.3 Opérateur de sélection

Une fois l’évaluation de la population initiale terminée, la phase suivante réside dans la délimitation des individus à se reproduire (les parents de la génération suivante). Cette sélection est basée sur l’aptitude des individus, évaluée par la fonction d'adaptation (fonction objective).

Dans tous les cas, la probabilité de continuité d’un individu est liée à son efficacité relative au sein de la population. Il existe diverses méthodes de sélection. On cite à titre d'exemple: La sélection par roulette et la sélection par tournois.

III.2.3.1 Sélection par roulette

On détermine les individus à sélectionner par un opérateur qui imite le fonctionnement d’une roulette de jeux, une portion de roue est affectée à chaque individu, le lancer de roue est simulé par un tirage aléatoire. L’individu est sélectionné dans la portion de roue désignée. On effectue N lancers, de façon à sélectionner Nindividus. Par suite, certains individus s’effacent de la population, alors d’autres sont dupliqués. Pour que la sélection soit efficace, les individus ayant le meilleur record devront être sélectionnés. On utilise donc une roulette “truquée”, la portion affectée à chaque individu étant choisie proportionnellement à sa performance. La probabilité pi pour un individu i de performance fi d’être sélectionné est :

1 i

i N

j j

p f

f

=

=

(III.1)

III.2.3.2 Sélection par tournois

Pour exclure le choix de la probabilité de sélection proportionnelle à la performance, qui est un des inconvénients de la sélection par roulette. On opte pour la sélection par tournois qui a pour référence le rang, ou le classement, des individus plutôt que leur performance. Un rang est affecté à chaque individu, on a une répartition par ordre décroissant de la performance. Plus un individu est de rang faible et plus il a une forte probabilité d’être sélectionné. La sélection est

donc déterminée par analogie des performances plutôt que par la valeur de la performance elle-même.

La démarche de sélection est simple. On tire k individus aléatoirement dans une population de N individus, où k est un paramètre appelé taille du tournoi. On a deux types de sélection soit par tournoi déterministe ou probabiliste. Pour le cas de sélection par tournoi déterministe, le plus compétitif des k individus domine et gagne le tournoi. Pour le second cas c'est-à-dire la sélection par tournoi probabiliste ou chaque individu peut être choisi comme vainqueur avec une probabilité proportionnelle à sa fonction d'évaluation.

Certains individus concourent à plusieurs tournois. Et peuvent gagner plusieurs fois, ils participent donc à la phase de reproduction plusieurs fois, ce qui conforte la durabilité de leurs gènes. La diversité de cette méthode est grande. Si on étend ou on réduit la valeur de k on exerce respectivement une diminution ou une augmentation de la pression de la sélection.

On a divers opérateurs de sélection [64][68], chaque opérateur a ses mérites et limites. La performance d’un opérateur est généralement liée au problème traité. On introduit le plus souvent un principe d’élitisme dans le processus de sélection à fin de garder automatiquement le meilleur individu de la population courante dans la génération suivante, sans qu’il passe par des opérateurs de croisement ou de mutation qui sont capables de l’anéantir.

III.2.4 Croissement

Après la sélection des chaînes les plus adaptés dans le processus de reproduction, on passe à l'opération du croisement qui consiste à échanger des matériels génétiques entre les deux chaînes reproductrices (les parents) pour donner deux nouvelles chaînes (les enfants). Le croisement est un processus aléatoire de probabilité Pc utilisé dans la multiplication et la sélection des espèces, le couple de parents est choisi arbitrairement dans la population. De nombreuses variantes de ces opérateurs existent, nous présentons les plus communément employées.

III.2.4.1 Croisement à un point

Soit un entier k représentant une position sur la chaîne, il est choisi aléatoirement entre 1 et la longueur de la chaîne l (k ∈[1,l −1]).Cet entier indique la position ou se produit le croisement, et on la formation deux nouvelles chaînes en échangent le matériel génétique (caractères) compris entre les positions k+1 et 1 inclues des chaînes reproductrices. Ce processus est illustré

dans la figure (III.1) ou p1 et p2 sont les parents o1 et o2 sont les enfants résultants de l'opération

Figure (III.1): Croisement à un point

III.2.4.2 Croissement à multiples points

Dans ce type de croisement dit à multiples points, on choisit k points de croisement et on échange l’ensemble des caractères existant entre ces k points. Comme dans le cas précédent on choisit aléatoirement k positions entre 1 et l, créant ainsi k+1 fragments. Ce processus est illustré dans la figure (III.2) ou p1 et p2 sont les parents o1 et o2 sont les enfants résultants de l'opération du croisement par exemple (k = 2 et i, j les points de croisement générés).

1 1 2 3 1 1

Figure (III.2): Croisement à deux points

III.2.4.3 Croisement uniforme

On associe à chaque bit de parents 1 une probabilité d’être échangé avec le bit qui correspond dans le parent 2, la probabilité de croissement doit être assez grande pour assurer la différence entre la nouvelle et précédente génération. ce processus est illustré dans la figure (III.3) on génère deux fois six valeurs aléatoires dans {0,1}, soient (0,1,1,0,1,0) et (1,0,0,1,1,0).

Le 0 indique qu’on prend le gêne du 1er parent et le 1 indique qu’on prend celui du 2ème parent.

III.2.5 Mutation

La mutation est la transformation aléatoire exceptionnelle d’un patrimoine héréditaire avec une faible probabilité Pm (fixée par l’usager) de la valeur d’un ou plusieurs gènes d’un chromosome. La mutation est un vecteur de diversité dans l’évolution des individus et contourne les optimums locaux.On cite les deux variantes suivantes:

III.2.5.1 Mutation à un point

Cette mutation admet la transformation aléatoire d’une seule valeur d’un chromosome.

La figure (III.4) présente un exemple d’une mutation à un point.

4

parent 10100100

enfant 10110100

k =

Figure (III.4): Mutation à un point

III.2.5.2 Mutation à multiples points

Elle admet la transformation aléatoire de deux ou plusieurs valeurs d’un chromosome. La figure (III.5) donne un exemple d’une mutation à trois points.

2 et 5 et 7

parent 10100110

enfant 11101100

k = k = k =

Figure (III.5): Mutation à multiple points

Dans le document Présenté par : AKKA ALI. Intitulé (Page 64-69)