Vous êtes sur la page 1sur 37

(Méta)(heuristique)

Algorithme Génétique

Présenté par :
Me Derkaoui Orkia
Université Docteur Moulay TAHAR de Saida
derkaouiorkia@gmail.com
Plan
Aperçu globale sur Algorithme
Génétique(AG)

Exemple illustratif: Application de l’AG au


Problème du voyageur de commerce (TSP)
L’Algorithme Génétique est une Métaheuristique basée sur une approche à population.

Les métaheuristiques utilisent deux approches principales pour résoudre un


problème.
La première est nommée "approche à population". Elle désigne les
algorithmes qui traitent plusieurs solutions à la fois. Elles maintiennent et
améliorent plusieurs solutions candidates en même temps.: (Algorithme
Génétique (AG), Algorithme de fourmis (ACO), Optimisation par Essaim
Particulaire (PSO), etc...). [1]
La seconde est nommée "approche de trajectoire". Elle représente les
algorithmes qui font évoluer une fonction objectif unique à chaque
itération. La stratégie est basée sur la recherche locale: (Recherche
Tabou(RT), Recuit Simulé (RS), etc …). [1]
ILLUSTRATION GRAPHIQUE

Techniques de recherche des métaheuristiques, figure empruntée à [1]


Les Algorithme Génétiques
L’idée d’un algorithme génétique est déduite de de la théorie darwinienne de
l’évolution.
L’algorithme utilise la notion de sélection naturelle sur une population de
solutions potentielles.
Chaque groupe d’individus appelé aussi population, donne lieu à une nouvelle
génération par reproduction.
Cette population subit une sélection, métaphore de la sélection naturelle : seuls les
individus les mieux adaptés à l’environnement survivent.
 Cette génération consiste à croiser les individus entre eux pour donner des
descendants possédant les caractères des deux parents.
En plus de ce croisement, des mutations de caractères interviennent aléatoirement
dans la génération de la population suivante.
Enfin, à son tour, cette population donnera lieu par le même processus à une
Formalisme
Les individus sont représentés par des chromosomes
(chromosome = chaîne d’informations sur
un alphabet fini (des chaînes d'ADN)).
 L'élément de base des chromosomes est un gène.
 La position d'un gène sur le chromosome est son locus.
 L'ensemble des gènes d'un individu est son génotype.
 L’ensemble du patrimoine génétique d'une espèce est le génome.
 Les différentes versions d'un même gène sont appelées allèles.
Codage
Pour les algorithmes génétiques, un des facteurs les plus importants est la
façon dont sont codées les solutions (chromosomes), c'est-à-dire les
structures de données qui coderont les gènes.
Il faut trouver une manière de coder chaque allèle différent de façon
unique.

Un principe de codage de l’élément de population. Après la modélisation


mathématique du problème traité. Cette étape associe à chacun des
points de l’espace d’état une structure de données.
Le codage des données conditionne le succès des algorithmes
génétiques.
Types de Codage
Codage Binaire:
Son principe est de coder la solution selon une chaîne de bits (0 et 1) le
plus utilisé proche du réel.
Codage réel : il y’a des cas ou le codage binaire n’est pas possible,
Chaque chromosome est représenté par une série de valeurs quelconque,
du contexte de problème, il devient plus utilisé.
Codage Gray:
• En codage binaire deux éléments voisin (en distance de Hamming) ne
codent pas toujours deux solutions proches.
• En codage gray, on évite cet inconvénient .
• La distance de Hamming entre deux éléments n et n + 1 (voisins dans
l’espace de recherche) est 1.
Types de Codage
NOTA:
Les codages binaires ont été très employés à
l’origine.
 Les codages réels sont désormais largement
utilisés, notamment dans les domaines
applicatifs, pour l’optimisation de problèmes à
variables continues.
PRINCIPE DU AG
Principe : On génère initialement un grand nombre d’individus(ou solutions) et
l’algorithme les fait évolués en 3 phases (d’où le nom évolutionnaire):
1. Sélection ,
2. Croisement (Reproduction),
3. Mutation,
Le processus de sélection est basé sur une fonction d’évaluation (ou fonction objectif)
qui correspond à une performance de l’individu( c’est une fonction à optimiser).
On en déduit une probabilité pour chaque individu de se reproduire ou de générer des
clones. (Cette probabilité s’appelle fitness).
• Finalement, ce processus contribue à produire une population ayant une meilleure
adaptabilité(convergence vers l’optimum).
ÉVALUATION

Evaluation:
On évalue chaque individu en calculant la valeur de sa fonction objectif, c’est-à-dire
la longueur du cycle parcouru par le voyageur de commerce.
1 2 3 4 5-------- f(x)=
54321
41532
21354
23154
PARAMÈTRES DE L’AG
Pour utiliser les AG, on doit disposer des cinq éléments suivants:
 Un mécanisme de génération de la population initiale (n),
 Un principe de codage des éléments de la population,
 Une fonction à optimiser (fitness ou fonction d’évaluation),
 Des opérateurs (croisement et mutation)permettant de diversifier la
population,
 Des paramètres de dimensionnement;
 Un critère d’arrêt de l’algorithme.
GÉNÉRATION DE LA POPULATION INITIALE

Un mécanisme de génération de la population initiale. Ce mécanisme


doit être capable de produire une population d’individus non homogène
qui servira de base pour les générations futures.
La différence crée la diversité
Le choix de la population initiale est important car il peut rendre plus ou
moins rapide la convergence vers l’optimum global.
Dans le cas où l’on ne connaît rien du problème à résoudre, il est
essentiel que la population initiale soit répartie sur tout le domaine de
recherche.
PARAMÈTRES DE CROISEMENT ET DE MUTATION
Les opérateurs permettant de diversifier la population au cours des
générations et d’explorer l’espace d’état.
L’opérateur de croisement recompose les gènes d’individus existant
dans la population,
L’opérateur de mutation a pour but de garantir l’exploration de
l’espace d’état., pour améliorer la qualité de la nouvelle génération.
PARAMÈTRES DE DIMENSIONNEMENT

Les paramètres de dimensionnement :


 taille de la population,
 nombre total de générations,
 critère d’arrêt,
 probabilités d’application des opérateurs de croisement et de
mutation.
TEST D’ARRÊT
Puisque c’est un algorithme itératif, Différents critères d'arrêt peuvent
être choisis. Les plus courants pour arrêter la processus :
Le nombre de générations que l’on souhaite exécuter peut être fixé a
priori. C’est ce que l’on est tenté de faire lorsque l’on doit trouver une
solution dans un temps limité.
L’algorithme peut être arrêté lorsque la population n’évolue plus ou
plus suffisamment rapidement.
Après qu’un certain nombre d'itérations ou un certain temps de calcul
aient été effectuées sans qu'il y ait eu d'amélioration de la population
(la solution ).
APPLICATION DE L’AG AU PROBLÈME TSP (VOYAGEUR DE COMMERCE)
Le problème du voyageur de commerce ou TSP (Traveling Salesmen Problem) est
largement étudié et fait l’intérêt de plusieurs recherches.
Très connu dans le domaine de l’optimisation combinatoire et de la recherche
opérationnelle
Il reste un problème NP difficile avec une complexité exponentielle.
C’est un modèle qui représentent un nombre important de problèmes réels
L’objectif est de le résoudre en un le temps de calcul raisonnable et avec une qualité
de la solution meilleure.
Il existe de nombreux algorithmes approchés ou d’approximation pour sa résolution
comme:
La méta heuristique: Algorithme Génétique.
• Les domaines d’application du TSP (problème du voyageur de commerce)
Les domaines d’application sont nombreux :
problèmes de logistique, de transport aussi bien de marchandises que de
personnes,
Problèmes d’ordonnancement,
Problème de planification,
Dans l’industrie comme l’optimisation de trajectoires de machines outils :
comment percer plusieurs points sur une carte électronique le plus vite
possible ?
Etc…..
EXEMPLE ILLUSTRATIF
Un voyageur de commerce doit visiter une et une seule fois un nombre fini de villes et
revenir à son point de départ. On veut trouver le chemin de visite des villes qui minimise
la distance totale parcourue par le voyageur. En théorie des graphe, e problème du
voyageur de commerce consiste à calculer un cycle hamiltonien de coût minimal dans G.
On va Résoudre le TSP Suivant par l’Algorithme Génétique:
MODÉLISATION DU PROBLÈME DU TSP
Le problème du voyageur de commerce peut être modélisé à l’aide d’un
graphe complet pondéré,
Comme il existe une arête entre chaque paire de sommets, on dit que ce
graphe est complet.
Chaque sommet représente une ville, une arête représente le passage d’une
ville à une autre,
Le poids pouvant représente une distance, un temps de parcours ou encore
un coût. Notons que les poids ne sont pas nécessairement symétriques, (dans notre cas,
on les considère symétriques).
Le graphe peut être représenté par une matrice de poids. En lignes figurent
les sommets d’origine des arêtes et en colonnes les sommets de destination ;
le poids sur chaque arête apparaît à l’intersection de la ligne et de la colonne
correspondantes. Pour notre exemple, cette matrice est la suivante :
MATRICE D’INCIDENCE OU DE POIDS

0 7 2 3 6
5 0 6 5 6
5 6 0 9 9
6 2 68 0 6
9 2 6 9 0
dd
LES PARAMÈTRES À FIXER AU DÉBUT DE L’AG
Notre objectif; l’inconnue est le chemin hamiltonien minimal: Une liste dans un certain
ordre contenant tous les sommets: x
Structuration du chromosome: comment représenter les informations du problème?
Initialisation: choisir le nombre d’individus dans la populations initiale N,
Fonction d’évaluation ou fitness: selon le contexte du problème f(x),
L’opérateur de sélection: probabilité que l’individu i soit sélectionné: on peut le définir
par la probabilité de sélection : ∑
,

Pc : probabilité de croisement qui détermine si le croisement est fait ou non,


NOTA: si la probabilité est supérieure pas de croisement donc on ajoutes les 2
parents choisis comme ils sont à la nouvelle génération (clonage).
Pm : probabilité qui détermine si la mutation est faite ou non.
GÉNÉRATION INITIALE
Initialisation:
Choisir aléatoirement une population: construire un nombre important d’individus,
chaque individu correspondant à une solution.
Une solution est une liste dans un certain ordre contenant tous les sommets.
Nota: Pour initialiser une population, on peut lancer plusieurs fois un algorithme
glouton, avec des paramètres différents pour obtenir des solutions différentes.
Première génération: choix aléatoire N=5, codage réel (codage direct):
1 2 3 4 5 I1
5 1 3 2 4 I2
4 1 5 3 2 I3
2 1 3 5 4 I4
2 3 1 5 4
I5
ÉVALUATION

Evaluation: On évalue chaque individu en calculant la valeur de sa fonction objectif, c-à-


d la longueur du cycle parcouru par le voyageur de commerce : ∑
Individu Evaluation
12345 -------- f(I1)=7+2+5+4= 18 Individu évaluation Fitness
51324 -------- f(I2)=3+6+2+4=15 12345 18 0.20
51324 15 0.17
41532 -------- f(I3)=8+3+6+2=17 41532 17 0.19
21354 -------- f(I4)=7+6+6+4=23 21354 23 0.26
23154 15 0.17
23154 -------- f(I5)=2+6+3+4=15
La fitness peut être une probabilité sur la valeur de la fonction Objectif:


=
SÉLECTION
On sélectionne les meilleurs individus en fonction de leur évaluation ou fitness,
Il existe plusieurs méthodes de sélection.
Sélection par rang :
 Cette technique de sélection choisit toujours les individus possédant les meilleurs
scores d'adaptation, le hasard n'entre donc pas dans ce mode de sélection. En fait, si N
individus constituent la population, la sélection appliquée consiste à conserver les k
meilleurs individus (au sens de la fonction d'évaluation) .
Sélection par roulette: Probabilité de sélection proportionnelle à l'adaptation
 Appelé aussi « roulette » ou « roue de la fortune », pour chaque individu, la
probabilité d'être sélectionné est proportionnelle à son adaptation au problème. Afin
de sélectionner un individu, on utilise le principe de la roue de la fortune biaisée.
Cette roue est une roue de la fortune classique sur laquelle chaque individu est
représenté par une portion proportionnelle à son adaptation. On effectue ensuite un
tirage au sort homogène sur cette roue.
SÉLECTION
Sélection par tournoi:

 Cette technique utilise la sélection proportionnelle sur des


paires d'individus, puis choisit parmi ces paires l'individu qui a
le meilleur score d'adaptation.

Sélection uniforme:

 La sélection se fait aléatoirement, uniformément et sans


intervention de la valeur d'adaptation. Chaque individu a donc
une probabilité 1/N d'être sélectionné, où N est le nombre total
d'individus dans la population.
SÉLECTION

Selection par rang:


5 1 3 2 4 I2 (15)

4 1 5 3 2
I3 (17)
2 3 1 5 4 I5 (15)
CROISEMENT
Croisement (Crossover):
On L’étape suivante consiste à croiser les individus précédemment sélectionnés pour
obtenir une nouvelle population.
Deux parents sont donc choisis pour appliquer un opérateur de croisement afin
d’obtenir un descendant (nouvel individu).
Il existe de nombreuses techniques de croisement ;
Croisement en un point : Cet opérateur consiste à recopier une partie du parent 1 et
une partie du parent 2 pour obtenir un nouvel individu. Le point de séparation des
parents est appelé point de croisement.
Croisement en deux points: on a 2 points de croisements.
Croisement Uniforme:
CROISEMENT
Croisement : Si la probabilité de croisement est inférieur à l’opérateur de croisement,
faire la mutation sinon non.
Dans notre cas on utilise le « crossover en un point ».
Il faut respecter la contrainte de ne pas visiter plusieurs fois la même ville (on ne
recopie pas les villes déjà visitées),
et à ne pas oublier de ville (on rajoute à la fin les villes non prises en compte).
Parent 1 Parent 2
5 1 3 2 4 4 1 5 3 2
15 17

4 1 3 2 5 5 1 5 3 2
17 remplacer 5 par 4 17
Descendant 1 Descendant 2
MUTATION
Un procédé de mutation est utilisé pour diversifier les solutions au fur et à mesure des
générations.
La mutation est importante pour éviter de tomber dans le problème de l’optimum
local, c’est-à-dire éviter de rester « coincé » autour d'une solution pas forcément
optimale.
Cette mutation consiste à modifier aléatoirement une petite partie d’un caractère
dans certains individus de la nouvelle génération.
Cette étape est effectuée avec une très faible probabilité, et consiste par exemple à
échanger deux villes consécutives dans un individu.
MUTATION
Si la probabilité de mutation est inférieur à l’opérateur de mutation, faire la mutation
sinon non.

5 1 3 2 4 4 1 5 3 2

5 1 4 3 2
4 1 3 2 5
MUTATION

NOTA: Dans certains cas, après chaque croisement et mutation, une étape d’optimisation
des descendants est appliquée. L’utilisation d’un algorithme de type recherche locale est
adapté pour effectuer cette optimisation rapidement. Nous parlerons alors d’algorithme
mimétique.
L’algorithme mimétique est intéressant pour obtenir plusieurs solutions de bonne
qualité. En effet, à la fin de l’algorithme, la population est constituée des meilleures
solutions trouvées.
RÉSULTAT 1ERE ITÉRATION
Génération initiale i
1 2 3 4 5

5 1 3 2 4

4 1 5 3 2

2 1 3 5 4
Nouvelle Génération i+1

2 3 1 5 4
PROCESSUS ITÉRATIF

On réitère jusqu’à atteindre le teste d’arrêt:


Exemple: Test d’arrêt nombre de générations = 50.
LES PARAMÈTRES CHOISIS

Génération initiale : Dimensionnement n=5,


Fonction d’évaluation: minimisation de la distance du chemin parcouru,
Dimensionnement :nombre d’individus sélectionnés: N =3
Operateur de croisement: prendre les 2 gènes de partir du 1 gènes selon la
probabilité Pc=0.8.
Opérateur de mutation: muter le 3 gène selon la probabilité Pm=0.001
Test d’arrêt nombre de générations = 50,
RÉFÉRENCES

• [1] Rejab Hajlaoui. Résolution à base d’heuristiques du problème de routage


dans les réseaux ad hoc de vehicules. Réseaux et télécommunications
[cs.NI]. Université Bourgogne Franche-Comté, 2018. Français. NNT :
2018UBFCD047. tel-02000974.
• [2] http://www.numdam.org/article/RO_1997__31_2_133_0.pdf
• [3] https://fr.wikipedia.org/wiki/Optimum_de_Pareto
• [4] https://interstices.info/le-probleme-du-voyageur-de-commerce/

Vous aimerez peut-être aussi