Vous êtes sur la page 1sur 108

République algérienne démocratique et populaire

Ministère de l'enseignement supérieur et de la recherche scientifique


Université L’arbi Ben M'hidi - Oum El Bouaghi
Faculté des sciences exactes et des
des sciences de la nature et de la vie
Département de Mathématique et d’Informatique

Mémoire
Pour l’obtention du diplôme de Master en informatique
Option : Architectures Distribuées

Intitulé :
Résolution des problèmes d’optimisation
par algorithmes évolutionnaires inspirées-
quantiques
(approche parallèles & distribuées)

Présenté par :

BECHOUA Chouaib & MEHELLOU Abdelatif

Soutenue le : 09/06/2015 devant le jury constitué de :

Mr. Derdouri Lakhdar Université Larbi ben M’hidi Président

Mr. Tebessi Kamel Université Larbi ben M’hidi Examinateur

Mr. Laboudi Zakaria Université Larbi ben M’hidi Encadreur

L’année Universitaire 2014 / 2015


Dédicace
A ma très chère mère Nadia.

Tu es l’exemple de dévouement. Tu n’as pas cessé de m’encourager et de

prier pour ma réussite. Puisse Dieu, le tout puissant, te préserver et

t’accorder santé, longue vie, et bonheur.

A mon cher père Kamel.

Rien au monde ne vaut tes efforts fournis jours et nuits pour mon

éducation et mon bien-être. Ce travail est le fruit de tes sacrifices que tu

as consentis pour mon éducation et ma formation.

A mes frères Mohamed-Ramzi, Takieddine et leurs épouses Rym et

Hanane. Vous vous êtes dépensés pour moi sans compter pour me

permettre d’atteindre cette étape de ma vie.

A mes oncles ; Salim, Abdallah et Noureddine. A mes tantes ; Zineb,

Hayet, Wassila, Bouchra et Leïla.

A mon grand-père Ahmed et Ma grande mère Malika.

A mes cousins : Karim, Nassim, Djaber, Yasser, Aymen, Malek et Badr

eddine. Et ainsi, à mes affectueuses cousines: Bouthaina, Amel, Hanaa,

Soumia, Amina et le petit ange Adam.

A mes amis : Abderrahmane, Hachem, Hamza, Hakim, Walid, Hachemi,

Zouheyr, Walid, Salah, Houcem, Hichem, Ahmed et à tous ceux qui me

connaissent et m’aiment.

Je vous remercie de votre patience et de votre aide qui m’ont aidé à

avancer. Merci à tous

BECHOUA Chouaib
Remerciements
En préambule à ce mémoire nous remercions Allah qui nous aide et

nous donne la patience et le courage durant ces longues années

d’études.

Mes remerciements vont tout d’abord au corps professoral et

administratif de la faculté des Sciences Exactes et Sciences de la

Nature et de la Vie pour la richesse et la qualité de leur enseignement

et les efforts déployés pour nous assurer une formation actualisée.

Je tiens à remercier sincèrement et chaleureusement mon encadrant

Dr Laboudi Zakaria, directeur de mémoire, qui s’est montré disponible

et toujours à l’écoute tout au long de la réalisation de ce mémoire.

Sans son aide, son inspiration et le temps consacré, ce mémoire

n’aurait jamais vu le jour.

Nos vifs remerciements vont également aux membres du jury pour

l’intérêt qu’ils ont porté à nos recherches, en acceptant d’examiner

notre travail et de l’enrichir par leurs propositions.

Enfin, j’adresse mes plus sincères remerciements à mes parents pour

leur contribution, leur patience et leur soutien.

A tous mes proches et amis qui m’ont encouragé pour la réalisation de

ce mémoire.

Merci à toutes et à tous


‫ھا‬ ! "# ‫ ف‬$ ، " ‫ ھ ا ا‬.' ‫ھ ف وا أو أ‬ ‫إ دا لا‬ ‫ا‬
‫* ا‬+ ‫ ا‬, '-# ‫ة‬ ‫ ا‬, ‫ ر‬0 ‫ ارز ت ا‬3 ‫ ا‬,4 5‫ و‬،, ‫ ر‬0 ‫ ارز ت ا‬3 ‫! ط' ا‬ ‫ا‬ ‫ ع‬8‫ا‬
,$ 8‫" ! ھ‬9 ‫ت وا‬ ‫ ارز‬3 ‫ > ا= < ة ; ه ا‬8"?‫و‬ ., + ‫ ا‬,@$ ‫ ھ * ا‬A ‫ @ دئ و‬C"> *; 9
‫!ة‬ <‫ أ‬،.*H ،, +@ ‫ ا‬,@$ ‫ت وا‬I + ‫ وا‬،LAN ‫ ت‬+@D ،‫ت " دة ا " ت‬EF‫ا‬ ,!‫ أو ز‬/ ‫ و‬, ‫از‬
, $ ‫* إ<'اء‬9 ،‫ 'ات‬K ‫ ءة وأداء ھ ه ا‬A ‫ س‬.M#‫ أو " دة ا ا‬, ‫أ د‬ ‫ اء‬$ ، ‫ا‬ ‫ت‬N
‫ ظ‬A ‫ ا‬Q , ‫ ت از‬N > " ‫داء ا‬R‫ا‬ "9 ;#‫أ‬ , ‫ ذج ا‬8 ‫ل ا‬I5 ‫ @ 'ا‬8 9 U= 8 ‫ أظ;'ت ا‬.‫ا رب‬
. ;9‫ ء‬A !

,@$ ‫ ا‬,*+ ‫ ا‬, '-# ‫ة‬ ‫ ا‬, ‫ ر‬0 ‫ ارز ت ا‬3 ‫ ا‬,, ‫ ر‬0 ‫ ارز ت ا‬3 ‫ ا‬, ‫ا‬ : ‫ت‬
.Q ‫ ا ز‬,‫ازاة‬ ‫ ا‬,, + ‫ا‬

Résumé
La résolution des problèmes d’optimisation consiste à trouver des solutions optimales afin
d’atteindre un ou plusieurs objectifs. Dans ce travail, nous allons travailler sur la résolution de
ce type de problèmes par algorithmes évolutionnaires, en particulier les algorithmes
évolutionnaires inspirés-quantiques qui font introduire des principes et des concepts inspirés
de l’informatique quantique. Ainsi, nous avons développé de nouvelles variantes de ces
algorithmes qui tournent sur des architectures parallèles et/ou distribuées comme les machine
multiprocesseurs, les LAN, les clusters et les grilles de calcul, les Cloud, pour la résolution de
plusieurs classes de problèmes d'optimisation, que ce soit des problèmes mono ou multi-
objectifs. Pour mesurer l’efficacité et les performances de ces variantes, une série
d’expérimentations a été réalisée. Les résultats ont montré une nette amélioration par rapport
aux modèles classiques dans la mesure où ils s’exécutent dans des environnements parallèles
en haute performance tout en préservant l’aspect efficacité.

Mots clés : problèmes d’optimisation, algorithmes évolutionnaires, algorithmes


évolutionnaires inspirés-quantiques, informatique quantique, problèmes mono et/ou multi-
objectifs, parallélisation, distribution.
Abstract
Solving optimization problems consists in finding optimal solutions to achieve one or more
objectives. In this work, we will work on solving these problems by evolutionary algorithms,
especially quantum-inspired evolutionary algorithms which inspired from principles and
concepts of quantum computing. Thus, we have developed new variants of these algorithms
running on parallel and / or distributed architectures such as multiprocessor machines, LAN,
clusters and grid computing, cloud, for solving several classes of problems optimization,
whether for single or multi-objective problems. To measure the efficiency and performance of
these variants, a series of experiments was performed. The results showed a significant
improvement over conventional models as they run in high performance in parallel
environments while preserving their efficiency.

Keys words: optimization problems, evolutionary algorithms, quantum-inspired evolutionary


algorithm, single or multi-objective problems, parallelization, distribution.
o Table des matières.
o Table des figures.
o Liste des tables.
o Liste des acronymes.
Sommaire o Introduction générale.
Introduction générale ............................................................................................................... 1
Chapitre I : Résolution de problèmes d’optimisation
1.1. Introduction ......................................................................................................................... 3
1.2. Notion du problème d’optimisation combinatoire .............................................................. 3
1.3. Problème d’optimisation mono-objectif.............................................................................. 3
1.3.1. Concepts de base .......................................................................................................... 4
1.3.2. Classification des problèmes d’optimisation................................................................ 5
1.4. Optimisation multi-objectif ................................................................................................. 6
1.4.1. Définition ..................................................................................................................... 6
1.4.2. Formulation d’un problème d’optimisation multi-objectif .......................................... 6
1.4.3. La notion de dominance ............................................................................................... 6
1.4.4. La dominance au sens de Pareto .................................................................................. 6
1.4.5. Le sous-ensemble non dominé ..................................................................................... 7
1.4.6. Le front de Pareto ......................................................................................................... 8
1.4.7. Le point idéal ................................................................................................................ 8
1.4.8. Le point nadir ............................................................................................................... 8
1.4.9. La convexité ................................................................................................................. 9
1.5. Méthode de résolution des PMO ......................................................................................... 9
1.5.1. Les méthodes exactes ................................................................................................... 9
1.5.2. Les méthodes approchées ........................................................................................... 10
1.6. Approches de résolution des PMO .................................................................................... 10
1.6.1. Approche transformant un PMO en un problème mono-objectif............................... 11
1.6.1.1. Les méthode d’agrégation ................................................................................... 11
1.6.1.2. La méthode ε-contrainte ...................................................................................... 12
1.6.1.3. La méthode de programmation par but ............................................................... 13
1.6.2. L’approche non-Pareto ............................................................................................... 14
1.6.2.1. La sélection parallèle ........................................................................................... 14
1.6.2.2. La sélection lexicographique ............................................................................... 15
1.6.3. L’approche Pareto ...................................................................................................... 15
1.6.3.1. Les méthodes non-élitistes .................................................................................. 15
1.6.3.2. Les méthodes élitistes.......................................................................................... 18

1.7. Conclusion......................................................................................................................... 20
Chapitre II : Algorithmes évolutionnaires
2.1. Introduction ....................................................................................................................... 21
2.2. Source d’inspiration .......................................................................................................... 21
2.3. Principe des algorithmes évolutionnaires .......................................................................... 22
2.3.1. Initialisation de la population ..................................................................................... 23
2.3.2. Evaluation des individus............................................................................................. 23
2.3.3. La sélection des individus........................................................................................... 24
2.3.4.Opérateurs de variations .............................................................................................. 25
2.3.5. Le remplacement ........................................................................................................ 25
2.3.6. Critère d’arrêt ............................................................................................................. 25
2.4. Classes d’algorithmes évolutionnaires .............................................................................. 26
2.5. Domaine d’applications d’AE ........................................................................................... 27
2.6. Etude de cas : Les algorithmes génétiques ........................................................................ 27
2.6.1. Concepts de base ........................................................................................................ 27
2.6.2. Principe de fonctionnement d’un AG......................................................................... 28
2.6.2.1. Codage des individus .......................................................................................... 30
2.6.2.2. Les opérateurs génétiques ................................................................................... 31
2.7. Conclusion......................................................................................................................... 34
Chapitre III : Algorithmes évolutionnaires inspirés-quantiques
Introduction .............................................................................................................................. 35
Partie I : Informatique quantique ............................................................................................. 35
3.1. Source d’inspiration de l’informatique quantique............................................................. 35
3.2. Eléments de base de l’informatique quantique ................................................................. 37
3.2.1. Les Qubits .................................................................................................................. 37
3.2.2. Les registres quantiques ............................................................................................. 38
3.3. Principes de l’informatique quantique .............................................................................. 38
3.3.1. La superposition d’états ............................................................................................. 38
3.3.2. L’interférence ............................................................................................................. 39
3.3.3. L’enchevêtrement ....................................................................................................... 39
3.3.4. Le non-déterminisme.................................................................................................. 39
3.3.5. La non-duplication ..................................................................................................... 39
3.4. Les défis de réalisation des ordinateurs quantiques .......................................................... 39
3.5. Le calcul quantique ........................................................................................................... 40
3.5.1. Les portes quantiques ................................................................................................. 40
3.5.2. Les circuits quantiques ............................................................................................... 42
Partie II : Les algorithmes évolutionnaires inspirés-quantique ................................................ 43
3.1. Les algorithmes évolutionnaires inspirés-quantiques ....................................................... 43
3.2. Structure globale d’un algorithme évolutionnaire inspiré-quantique ................................ 44
3.2.1. Codage d’un individu quantique ................................................................................ 44
3.2.2. Initialisation de la population ..................................................................................... 45
3.2.3. Opération de mesure................................................................................................... 45
3.2.4. Evaluation des individus ............................................................................................ 46
3.2.5. L’opérateur d’interférence quantique ......................................................................... 46
Partie III : Les algorithmes évolutionnaires inspirés-quantique multi-objectif........................ 48
3.1. Algorithmes évolutionnaires inspirés quantique multi-objectifs ...................................... 48
Conclusion................................................................................................................................ 53
Chapitre IV : Parallélisation et distribution des algorithmes évolutionnaires
inspirés-quantiques.
4.1. Introduction ....................................................................................................................... 54
4.2. Motivation et objectifs ...................................................................................................... 54
4.3. Adaptation des AEIQ/AEIQM pour supporter un traitement parallèle-distribué ............. 55
4.3.1. Algorithmes proposés ................................................................................................. 56
4.3.1.1. Algorithme évolutionnaires inspiré quantique parallèle-distribué (AEIQPD) .... 56
4.3.1.2. Algorithme évolutionnaires inspiré quantique multi-objectif parallèle-distribué
(AEIQMPD) ..................................................................................................................... 57
4.4. Architecture du système .................................................................................................... 59
4.5. Conception du système...................................................................................................... 62
4.5.1. Le package « Individu » ............................................................................................. 63
4.5.2. Le package « Opérateur »........................................................................................... 64
4.5.3. Le package « Problème » ........................................................................................... 65
4.5.4. Le Package « Topologie » .......................................................................................... 66
4.5.5. Le package « Processus » ........................................................................................... 67
4.6. Implémentation du système ............................................................................................... 69
4.6.1. Les outils de parallélisation des calculs ..................................................................... 70
4.6.2. Langage de programmation ........................................................................................ 71
4.6.3. Environnement de développement ............................................................................. 71
4.7. Utilisation du système ....................................................................................................... 72
4.8. Résultats expérimentaux ................................................................................................... 74
4.8.1. Enoncé du problème de sac à dos multi-objectifs en 0/1 (MOKP 0/1) ...................... 74
4.8.2. Test d’efficacité .......................................................................................................... 74
4.8.3. Test de performance ................................................................................................... 76
4.8.4. Discussion .................................................................................................................. 78
4.9. Conclusion......................................................................................................................... 79
Conclusion générale ............................................................................................................... 80
Bibliographie & Sitographie ................................................................................................. 81
Table des figures

Figure 1.1. Espace de recherche et espace réalisable…………………………………………..4


Figure 1.2. Les différents minima……………………………………………………………...5
Figure 1.3. Exemple de dominance de Pareto……………………………………….…...……7
Figure 1.4. Front de Pareto, point idéal et point Nadir………………………………...……...9
Figure 1.5. Ensemble convexe et ensemble non convexe……………………………..….…...9
Figure 1.6. Approches et méthode de résolution des PMO……………………………..……11
Figure 1.7. Illustration de la méthode d’agrégation dans un cas de problème bi-obj……..….12
Figure 1.8. Illustration graphique de la méthode ε-contrainte……………………………......13
Figure 1.9. Schéma de fonctionnement de VEGA……………………………………….…..15
Figure 1.10. Représentation de fonctionnement de MOGA. ………………………….……. 16
Figure 1.11. Classement des solutions selon la méthode de Ranking………………..………17
Figure 1.12. Fonctionnement générale de SPEA-II……………………………………….…18
Figure 1.13. Schéma du fonctionnement de NSGA-II……………………………………… 20
Figure 2.1. Population initiale aléatoire. ……………………………………………………. 22
Figure 2.2. Population évoluée……………………………………………………………… 22
Figure 2.3. Organigramme d’un algorithme évolutionnaire………………………………… 23
Figure 2.4. La forme de la roue de loterie…………………………………………………... 24
Figure 2.5. Différentes classes d’algorithmes évolutionnaires……………………………... 27
Figure 2.6. Corps d’un algorithme génétique ………………………………………………. 29
Figure 2.6. Corps d’un algorithme génétique……………………………………………..... 29
Figure 2.7. Représentation génétique………………………………………………………. 30
Figure 2.8. Structure d’un chromosome sous forme binaire……………………………...... 31
Figure 2.9. Structure d’un chromosome sous forme réelle……………………………….... 31
Figure 2.10. Croisement en un point……………………………………………………….. 32
Figure 2.11. Croisement en deux points………………………………………………...….. 32
Figure 2.12. Croisement uniforme………………………………………………………….. 33
Figure 2.13. Mutation aléatoire…………………………………………………………….. 33
Figure 3.1. Développement des circuits selon la loi de Moore…………………………….. 36
Figure 3.2. Porte d’Hadamard……………………………………………………….……... 42
Figure 3.3. La porte CNot(a) et la porte Toffoli (b) ………………………………….…..... 42
Figure 3.4. Circuit de Bell……………………………………………………………...…... 43
Figure 3.5. Pseudo code d’un AEIQ……………………………………………….………. 44
Figure 3.6. Structure d’un individu quantique…………………………………….……….. 45
Figure 3.7. Opération de mesure d’un individu quantique………………………………… 45
Figure 3.8. Pseudo code de la fonction de mesure………………………………….……… 46
Figure 3.9. Interférence quantique………………………………………………………… 47
Figure 3.10. Organigramme générale d’un AEIQM……………………………………… 49
Figure 3.11. Pseudo-code universel d’un AEIQM……………………………………….. …50
Figure 3.12. La porte de rotation……………………………………………………………. 53
Figure 4.1. Description d’un AEIQPD……………………………………………………… 57
Figure 4.2. Description d’un AEIQMPD…………………………………………………… 58
Figure 4.3. Architecture globale du système……………………………………………… 59
Figure 4.4. Architecture détaillée du système……………………………………………… 61
Figure 4.5. Topologie du modèle maître-esclave………………………………………….. 62
Figure 4.6. Package d’individu……………………………………………………………... 64
Figure 4.7. Package d’opérateur……………………………………………………………..65
Figure 4.8. Package de problème………………………………………………………….…66
Figure 4.9. Package de topologie………………………………………………………….…67
Figure 4.10. Package de processus…………………………………………………………..69
Figure.4.11. Interface graphique pour la résolution des problèmes mono-objectif…………73
Figure.4.12. Interface graphique pour la résolution des problèmes multi-objectif…………. 73
Figure.4.13. Nombre de solutions non-dominées des instances exécutées.………………….76
Figure.4.14. Comparaison des temps d’exécution des tâches paralléles……...……………...77
Figure.4.15. Comparaison des temps d’exécution de la tâche séquentielle…….……..……...77
Liste des tables

Table 3.1. Comparaison entre le bit et qubit……...…………………………….……………38

Table 3.2. Les états de Bell………………..……...…………………………….……………43

Table 3.3. Table de recherche pour la rotation des portes quantiques………….……………47

Table 4.1. Matrice de nombre de solutions dominées ………………..……...………………75

Table 4.2. Nombre de solutions non-dominées………..……...…………..…….……………75

Table 4.3. L’accéleration en niveau de génération paralléle……...…………….……………78

Table 4.4. L’accéleration en niveau de génération séquentielle……………………………...79


Liste des acronymes

Acronymes Description
PMO Problèmes Multi-Objectif
PO Pareto Optimale
AG Algorithme Génétique
VEGA Vector Evaluated Gentic Algorithm
MOGA Multiple Objective Genetic Algorithm
NSGA Non-dominated Sorting Genetic Algorithm
SPEA Strength Pareto Evolutionary Algorithm
AE Algorithme Évolutionnaire
ES Evolution Strategies
EP Evolutionnary Programming
GP Genetic Programming
Qubit Quantum bit
CNot Controlled-Not
AEIQ Algorithme Évolutionnaire Inspiré Quantique
AEIQM Algorithme Évolutionnaire Inspiré Quantique Multi-Objectif
AEMO Algorithme Évolutionnaire Multi-Objectif
PradisEO Parallel and Distributed Evolving Objects
LAN Local Area Network
WAN Wide Area Network
AEIQPD Algorithme Évolutionnaire Inspiré Quantique Parallèle Distribué
AEIQMPD Algorithme Évolutionnaire Inspiré Quantique Multi-Objectif Parallèle
Distribué
AEIQPS Algorithme Évolutionnaire Inspiré Quantique Mono-objectif Parallèle
Séquentiel
AEIQMPS Algorithme Évolutionnaire Inspiré Quantique Multi-objectif Parallèle
Séquentiel
IDE Integrated Development Environment
MOKP 0/1 MultiObjective Knapsack 0/1
GPU Graphics Processing Unit
CUDA Compute Unified Device Architecture
Introduction générale

Les problèmes d’optimisation combinatoire occupent une partie importante du domaine


informatique, en particulier dans la recherche opérationnelle. Leur caractéristique principale
est la grande complexité qui augmente généralement de façon exponentielle avec la taille du
problème, ce qui veut dire que leur résolution est très difficile du fait que le temps de calcul
nécessaire pour trouver une solution acceptable n’est pas linéaire. Selon le nombre d’objectifs
à atteindre, nous distinguons les problèmes d’optimisation mono et multi-objectifs.
Au début, la résolution de ce type de problèmes s’appuyait sur des approches visant à trouver
des solutions optimales exactes. Cependant, il n’est pas toujours possible de calculer des
solutions exactes souvent dû à la grande taille des espaces des solutions potentielles. Pour
cela, la nouvelle tendance s’orientait vers la recherche des solutions qui rapprochent le mieux
possible à la solution optimale. Nous parlons donc des méthodes dites heuristiques,
notamment celles qui sont génériques capables de résoudre de nombreuses classes de
problèmes : les métaheuristiques.
Dans ce mémoire, nous allons focaliser sur les algorithmes évolutionnaires qui constituent une
des plus puissantes métaheuristiques pour la résolution de ce type de problèmes. Ils sont
fondés sur des principes issus de l’évolution naturelle, élaborée par Charles Darwin.
Pratiquement, ces algorithmes ont pour autant été appliqués avec succès à la résolution des
problèmes d’optimisation pour lesquels il ne peut exister d’algorithmes de résolutions exacts
plus efficaces.
Plus récemment, une nouvelle classe d’algorithmes évolutionnaires a vu le jour : les
algorithmes évolutionnaires inspirés-quantiques. Il s’agit d’une hybridation entre les
algorithmes évolutionnaires classiques et le calcul quantique qui s’avérait très viable quand
appliquée à la résolution de nombreux problèmes d’optimisation mono et multi-objectifs. En
fait, les algorithmes évolutionnaires sont à base de population et s’adaptent alors, par nature,
pour subir des traitements parallèles et/ou distribués. L’objectif principal tracé dans le cadre
de ce mémoire est d’étudier les possibilités offertes pour faire paralléliser et/ou distribuer les
calculs effectués par des algorithmes évolutionnaires inspirés-quantiques pour la résolution
des problèmes d’optimisation mono et multi-objectifs. Partant de ce contexte, les objectifs
visés peuvent alors se résumer en le développement d’un environnement pour faire exécuter
ces algorithmes sur :
1. Des architectures centralisées multiprocesseurs / multi-cœurs comme les architectures à
processeurs GPU, CUDA...etc., et on parle alors du vrai parallélisme.
2. Des architectures géographiquement distribuées comme les réseaux LAN, les clusters de
calcul, les grilles de calcul et les Cloud où chaque station est dotée d’une architecture
multiprocesseurs / multi-cœurs, et on parle alors de la combinaison entre le vrai
parallélisme et la distribution des calculs.
Ainsi, il sera possible de mesurer l'impact de chaque version sur l’efficacité et les
performances en temps d’exécution.
Le mémoire est structuré de la manière suivante :
Le chapitre I retrace le cadre technique et formel des problèmes d’optimisation ainsi
qu’une présentation des différentes méthodes de résolution qui existent.
Le chapitre II aborde une étude détaillée sur la résolution des problèmes
d’optimisation mono et multi-objectifs par algorithmes évolutionnaires.
Le chapitre III comporte une présentation des algorithmes évolutionnaires inspirés-
quantiques où nous allons montrer d’abord l’intérêt pour l’informatique quantique.
Ensuite, nous allons retracer les principes sur lesquels sont fondés ces nouveaux
algorithmes. Enfin nous terminerons le chapitre en présentant l’extension de ces
algorithmes pour supporter la résolution des problèmes d’optimisation multi-objectifs.
Le chapitre IV est réservé à nos contributions où nous présenterons nos propres
algorithmes de parallélisation et/ou distribution des algorithmes évolutionnaires
inspirés-quantiques pour la résolution des problèmes d’optimisation. Pour des raisons
de validation, nous avons effectué quelques expérimentations dans le but de mesurer
l’efficacité et les performances de nos algorithmes.
Enfin, nous terminerons par une conclusion générale où nous résumons l’essentiel de
nos travaux de recherche ainsi que les perspectives du travail réalisé dans le cadre de
ce mémoire.
Chapitre I

o Introduction.
o Notion du problème
d’optimisation combinatoire.

Résolution de o Problème d’optimisation


mono-objectif.
o Optimisation multi-objectif.

problèmes o

o
Méthode de résolution des
PMO.
Approches de résolution des

d’optimisation o
PMO.
Conclusion.
Résolution de problèmes d’optimisation Chapitre I

1.1. Introduction
De nombreux problèmes du monde réel nécessitent l’optimisation simultanée de plusieurs
objectifs souvent contradictoires. Ce chapitre présente les principes de l’optimisation mono-
objectif et l’optimisation multi-objectifs, associés à leurs concepts de bases qui sont décrits de
manière formelle. Ensuite, nous abordons à détailler les approches qui mettent à disposition
pour la résolution des problèmes multi-objectifs.

1.2. Notion du problème d’optimisation combinatoire


Un problème d’optimisation est caractérisé par un ensemble de solutions admissibles non
vide dites réalisables, qui appartient à l’ensemble des solutions discrètes S, et une fonction
d’objectif qui associe à chaque solution s ∈ , un nombre réel (ou entier) ( ). Résoudre

un tel problème consiste à trouver une solution ∈ optimisant la valeur de la fonction du

coût . Dans ce cas, la solution sera appelée une solution optimale ou un optimum global.

Un problème d’optimisation est dit combinatoire si la résolution se heurte à une explosion du


nombre de combinaisons à explorer, comme le problème de conception d’emploi du temps.
Aussi, le nombre de solutions réalisables des problèmes combinatoires augmente
exponentiellement en fonction de la taille du problème [5].

1.3. Problème d’optimisation mono-objectif


La résolution d’un problème d’optimisation mono-objectif consiste à obtenir une solution qui
maximise ou minimise un objectif particulier. Dans certains cas, l’optimum découvert n’est
pas unique, et peut être un ensemble de solutions minimisant ou maximisant l’objectif étudié.
Formellement un problème d’optimisation mono-objectif est représenté comme suit [3] :
Optimiser ( ) (fonction à optimiser) avec
( ) ≤ 0 (m contraintes d’inégalité) et (1.1)
ℎ( ) = 0 (p contraintes d’égalité).
L’ensemble de contraintes restreint l’espace de recherche de la solution optimale. On note ici
que tous les problèmes étudiés dans ce chapitre sont des problèmes de minimisation. La
notation qui décrit un vecteur de solutions est donnée soit ou x. Mais, pour transformer un
problème de minimisation en maximation, il suffit de multiplier la fonction objectif
par (−1 ).

3
Résolution de problèmes d’optimisation Chapitre I

1.3.1. Concepts de base


Nous donnons ici les principaux concepts utilisés dans le contexte d’optimisation mono-
objectif [15, 4, 1] :
La fonction objectif : c’est la fonction , appelée aussi la fonction coût pour lequel
l’algorithme d’optimisation doit l’optimiser.
Les variables de décision : l’ensemble des variables du problème, elles sont regroupées
dans le vecteur , noté par :
=( , ,…, ) avec, n le nombre de variables.
Un espace de recherche S : représente l’ensemble des valeurs pouvant être prises par
les variables du problème (voir la figure 1.1).
Un espace de solutions réalisables X : représentent l’ensemble des valeurs des
variables satisfaisant les contraintes du problème (voir la figure 1.1).

Figure 1.1. Espace de recherche et espace réalisable.


Le minimum global : un point ∗ est un minimum global de si et seulement si :

∀ ∗ ∈ , ∗ pour tout ∗ (1.2)


Le point P3 illustré dans la figure 1.2 est un minimum global.
Le minimum local fort : un point ∗ est dit minimum local fort de si et seulement
si :

∀ ∈ ∗ ∗ pour tout ∗ (1.3)

tel que ∗ définit un voisinage de ∗

Le point P2 et P4 illustrés dans la figure 1.2 sont des minimas locaux forts.

4
Résolution de problèmes d’optimisation Chapitre I

Le minimum local faible : un point ∗ est dit minimum local faible de si et


seulement si :
∀ ∈ ∗ ∗ pour tout ∗ (1.4)

tel que ∗ définit un voisinage de ∗

Le point P1 illustré dans la figure 1.2 est un minimum local faible.

Figure 1.2. Les différents minima.

1.3.2. Classification des problèmes d’optimisation


Les problèmes d’optimisation que l’on rencontre au monde réel sont classifiés selon leurs
caractéristiques [15]. Nous distinguons ainsi les problèmes selon :
Le nombre de variables de décision :
Mono-variable.
Multi-variables.
Le type de variables de décision :
Variables continues : où les valeurs sont des nombres réels.
Variables discrètes : où les valeurs sont nombres entiers.
Variables combinatoires : où les valeurs sont des permutations sur un
ensemble fini de nombre.
Le type de la fonction-objectif
Fonction linéaire.
Fonction non linéaire.
Fonction quadratique.

5
Résolution de problèmes d’optimisation Chapitre I

La formulation du problème :
Problème sans contraintes.
Problème avec contraintes.

1.4. Optimisation multi-objectif


La plupart des problèmes du monde réel sont par nature multi-objectifs où nous avons
généralement plus d’une fonction-objectif à optimiser. Cela nécessitera des outils
mathématiques et algorithmiques spécifiques pour le traitement [49].

1.4.1. Définition
Un problème d’optimisation multi-objectifs (PMO), ou multicritères, comme le mentionne
son nom, consiste à optimiser plusieurs fonctions-objectifs simultanément (deux fonctions ou
plus), souvent contradictoires [69].

1.4.2. Formulation d’un problème d’optimisation multi-objectif


Un PMO peut être formulé comme suit [54] :

Minimiser ℱ ( ) = ( ( ), ( ), … , ( ) ) avec ∈ →

( ) ≤ 0 avec ( ) ∈ !
(1.5)

ℎ"( ) = 0 avec ℎ"( ) ∈ #

où, k désigne le nombre d’objectifs, n est le nombre de variables de décision, m représente le


nombre de contraintes d’inégalité, et q est le nombre de contraintes d’égalité.

1.4.3. La notion de dominance


La résolution d’un PMO fournit plusieurs solutions ; cependant seul un nombre restreint de
celles-ci sont acceptables. Contrairement, à l’optimisation mono-objectif, ici la comparaison
des solutions n’est pas toujours possible. Pour cela, nous devrons faire intervenir à la notion
de la relation de dominance entre les solutions trouvées. Elle est définie comme suit [69] :
On dit que le vecteur domine le vecteur si seulement si :
est au moins aussi bon que pour tous les objectifs.
est strictement meilleur que pour au moins un objectif.

1.4.4. La dominance au sens de Pareto


La dominance au sens de Pareto est la plus célèbre et la plus utilisée dans la littérature. Cette
relation de dominance définit des solutions non dominées par d’autres solutions, dites
solutions optimales au sens de Pareto.

6
Résolution de problèmes d’optimisation Chapitre I

Soient $ et % deux vecteurs de décision [4] :


$ ≺ % ($ domine % ) ssi ($) (%).
$ ≼ % ($ domine faiblement %) ssi ($) ≤ (%).
$ ∼ % ($ incomparable avec %) ssi ($) ≰ (%) *+ (%) ≰ ($).
Pour un problème de maximisation, ces relations sont définies par symétrie. La figure ci-
dessous illustre cette relation de dominance par un exemple de minimisation de deux
fonctions-objectifs. Selon cet exemple, nous pouvons distinguer trois zones par rapport au
point de référence y1 :
La zone de préférence contient les points dominés (comme le point y2) par y1.
La zone de dominance contient les points qui dominent y1, comme le point y3.
La zone d’équivalence contient les points incomparables comme le point y3 et le point
y4.

Figure 1.3. Exemple de dominance de Pareto.

1.4.5. Le sous-ensemble non dominé


Pour un PMO donné, l’ensemble des solutions non dominées est appelé l’ensemble optimal de
Pareto, il est défini comme suit :
ND(X) = { ∈ X | est non dominé par rapport à X} (1.6)

L'ensemble optimal de Pareto se compose de toutes les solutions qui satisfont la condition de
dominance de Pareto. Les solutions non dominées de cet ensemble qui constituent le front de
Pareto peuvent généralement se représenter par une courbe comme illustrée dans la figure 1.4
[48].

7
Résolution de problèmes d’optimisation Chapitre I

1.4.6. Le front de Pareto


Dans un PMO donné, soit ℱ l’image dans l’espace des objectifs de l’ensemble réalisable X.
Le front de Pareto ND(ℱ) de ℱ est défini comme suit :
,-(ℱ) = . / ∈ ℱ | ∄ 2 ∈ ℱ, 2 / }, ou encore :

,-(ℱ) = { / = ℱ( ) | ∈ ND(X) }. (1.7)

où ND est l’ensemble optimal de Pareto (les solutions non dominées). Le front de Pareto est
appelé aussi la surface de compromis, qui est obtenue lorsque l’ensemble optimal de Pareto
est tracé sur l’espace des objectifs [49].
1.4.7. Le point idéal
Comme l’indique son nom, c’est un point optimal associé à chaque objectif selon les points
du front de Pareto. Ce point définit une meilleure valeur obtenue en optimisant chaque
objectif séparément. Le point idéal est utilisé dans certaines approches comme point de
référence pour orienter la recherche vers le front de Pareto. Les coordonnées du point idéal
sont calculées comme suit [8] :

456 = 758 . /6 | / ∈ 9:(ℱ) } (1.8)

1.4.8. Le point nadir


Le point nadir consiste aux pires valeurs possibles de chaque objectif des points du front de
Pareto, en d’autre terme, celui qui est dominé par tous les autres points de la surface de
compromis. Dans certaines méthodes d’optimisation multi-objectifs, ce point peut servir pour
délimiter l’espace de recherche. Les coordonnées du point nadir sont représentées comme suit
[4] :

486 = 7; . /6 | / ∈ 9:(ℱ)} (1.9)

Illustrons maintenant dans la figure 1.4 les deux points décrits précédemment par rapport aux
frontières du Pareto.

8
Résolution de problèmes d’optimisation Chapitre I

Figure 1.4. Front de Pareto, point idéal et point Nadir.

1.4.9. La convexité
La convexité est considérée comme un indicateur de difficulté pour les problèmes
d’optimisation. En effet, certaines méthodes n’ont pas la capacité de résoudre des problèmes
non convexe de façon optimale. Un ensemble X est dit convexe, si pour n’importe quels deux
points distincts de cet ensemble, le segment qui les relie est contenu dans l’ensemble X (voir
la figure 1.5) [1].

Figure 1.5. Ensemble convexe et ensemble non convexe.

1.5. Méthode de résolution des PMO


Les méthodes de résolutions des PMO se divisent en deux grandes familles : les méthodes
exactes et les méthodes approchées.

9
Résolution de problèmes d’optimisation Chapitre I

1.5.1. Les méthodes exactes : Elles permettent de trouver la (les) solution(s) optimale(s) d’un
problème d’optimisation donné. Néanmoins, le temps de recherche augmente
exponentiellement en fonction de la taille de l’espace de recherche ce qui rend ce type de
résolution inapplicable aux grandes instances de problèmes d’optimisation [29].

1.5.2. Les méthodes approchées : ces méthodes ne permettent pas d’obtenir nécessairement
une solution optimale pour un problème donné. Nous distinguons deux grandes catégories :
Les heuristiques : elles sont proposées pour la résolution d’un problème particulier
lorsqu’elles prennent en compte des caractéristiques propres à celui-ci. Elles visent à
trouver une solution qui sera le plus proche possible de l’optimum de l’espace de
recherche dans un temps raisonnable.
Les métaheuristiques : les métaheuristiques désignent le cadre générale de résolution
des problèmes d’optimisation difficiles. Elles sont indépendantes du problème à
traiter, telle qu’elles permettent d’avoir une solution de bonne qualité, plus proche de
la solution optimale du problème à traiter en temps d’exécution convenable [96]. On
signale ici que dans ce contexte, les algorithmes évolutionnaires ont été largement
adoptés pour résoudre ce type de problèmes en découvrant des solutions de très haute
qualité pour de nombreux cas d’utilisation. Pour cette raison, nous allons consacrer le
chapitre suivant à leur étude de manière plus approfondie.

1.6. Approches de résolution des PMO


Dans la littérature, il existe plusieurs approches de résolution des PMO qui peuvent être
divisées en trois grandes classes (voir la figure 1.6) [61] :
Approches basées sur la transformation des PMO en d’autres mono-objectif.
Approches non-Pareto.
Approches Pareto.

10
Résolution de problèmes d’optimisation Chapitre I

Figure 1.6. Approches et méthode de résolution des PMO.

1.6.1. Approche transformant un PMO en un problème mono-objectif


Cette approche permet de retourner le problème initial (PMO) à un ou plusieurs problèmes
mono-objectif. Généralement, les méthodes utilisées par cette approche nécessitent une bonne
connaissance du problème et ne retournent qu’une solution unique. Plusieurs algorithmes ont
été proposés en respectant cette stratégie, parmi lesquels nous citons la méthode d’agrégation,
la méthode ε-contrainte et la méthode de programmation par but [20].

1.6.1.1. Les méthode d’agrégation


C’est la méthode la plus largement utilisée en pratique. Elle s’appelle « l’approche naïve ».
Elle se base sur le principe de la somme pondérée [15]. Elle consiste à combiner de façon
linéaire plusieurs fonctions-objectifs fi d’un PMO en un seul objectif ℱ, en associant à chaque
fonction-objectif un coefficient de pondération pour désigner l’importance de chaque objectif
puis faire la somme de ces fonctions pondérées pour obtenir une nouvelle fonction-objectif.
Le problème définit dans la formule (1.5), sera redéfini comme illustré dans la formule 1.10.

<58 ∑6?@ >6 6 ( ) avec k ≥ 2 et wi ≥ 0 (1.10)


où le paramètre wi représente les poids relatives de chacun des objectifs, k désigne le nombre
d’objectifs du problème sachant que ∑6?@ >6 = 1 [1].
Lors de la résolution du problème, différentes valeurs de poids sont affectées aux objectifs. Il
est clair que lorsque nous utiliserons un vecteur de poids figé, cela permet de ne nous donner

11
Résolution de problèmes d’optimisation Chapitre I

que quelques solutions Pareto optimales (PO). Donc, pour obtenir un ensemble de PO, on doit
résoudre plusieurs fois le problème en modifiant à chaque itération les valeurs de wi.
L’avantage de cette méthode réside dans sa simplicité de mise en œuvre et son efficacité.
Puisque d’une part elle peut réutiliser tous les algorithmes classiques destinés aux problèmes
d’optimisation mono-objectif, et d’autre part elle produira une seule solution PO [65].
Par ailleurs, cette approche a aussi deux inconvénients importants. Le premier concerne le
choix des valeurs wi qui doivent être sélectionnées de façon judicieuse pour garantir une
meilleure répartition des points sur le front de Pareto. Il est donc nécessaire d’avoir une bonne
connaissance du problème. Tandis que, le deuxième inconvénient provient du fait que cette
méthode ne permet pas de calculer intégralement la surface de Pareto lorsque celle-ci n’est
pas convexe comme illustré dans la figure 1.7.b. Autrement dit, elle ne permet pas de trouver
les solutions enfermées dans les concavités (entre le point z et y), parce que cette méthode
n’est pas applicable qu’à des ensembles X convexes comme le montre la figure 1.7.a [4].

(a) (b)

Figure 1.7. Illustration de la méthode d’agrégation dans un cas de problème bi-objectif. (a)
Une frontière de Pareto convexe d’un problème de minimisation, où x est solution Pareto.
(b) Une frontière de Pareto non-convexe d’un problème de maximisation.

1.6.1.2. La méthode ε-contrainte


Cette méthode permet d’optimiser un seul objectif fj choisi par un ordre de priorité défini au
préalable, tandis que les autres objectifs fi sont considérés comme étant des contraintes.
L’ensemble des solutions de compromis est recherché en faisant varier les valeurs de εi [5].
La transformation du problème défini dans la formule (1.5) à travers cette méthode est décrite
par la forme suivante :

Nous supposons que la fonction-objectif prioritaire est la fonction fj (rang 1).

12
Résolution de problèmes d’optimisation Chapitre I

Nous choisissons un vecteur de contraintes de façon arbitraire εi ϵ {1, n-1}

Minimiser A( ) avec j ϵ {1…n} (1.11)

6( ) ≤ ε6 avec i ϵ {1…n} et i ≠ j.

La résolution d’un PMO est donc devenue un problème mono-objectif avec des contraintes.
Cependant, il est demandé de réitérer ce processus sur les autres objectifs en terminant par le
traitement de fk afin de trouver une solution PO où la solution finale du problème sera xk*. La
figure 1.8 illustre le déroulement de cette technique dans le cas d’un problème bi-objectifs.

Contrairement à la méthode précédente, cette méthode assure la résolution des problèmes non
convexes, comme illustré par la figure 1.8 qui nous montre la localisation du point C qui est
trouvé dans la partie non convexe. L’inconvénient de cette méthode réside dans le choix des
valeurs de εi. Généralement, un choix aléatoire de ces valeurs ne permet pas d’avoir une
bonne répartition des PO sur la surface de compromis. En outre, cette technique est très
gourmande en temps de calcul et la programmation de l’algorithme peut être difficile et
fastidieuse à cause de l’augmentation de nombre de contraintes à chaque itération [15].

Figure 1.8. Illustration graphique de la méthode ε-contrainte.

1.6.1.3. La méthode de programmation par but


Dans cette méthode, le décideur doit définir un vecteur de buts ou références à atteindre pour
chacun des objectifs [15]. Ces valeurs sont mises dans la formulation du problème afin de le
ramener en un problème mono-objectif. A travers la norme pondérée de la fonction du coût,

13
Résolution de problèmes d’optimisation Chapitre I

l’algorithme tente de minimiser la somme d’écarts entre les résultats et les buts à atteindre. Le
problème défini dans la formule 1.5 peut donc être reformulé de la manière suivante :
/D
<58 ∑6? >6 | 6 ( ) − C6 |D (1.12)

où Bi représente le but à atteindre pour le ième objectif, wi est le vecteur de pondération défini
sur [0.1] et la valeur de p est engendrée entre 0 et ∞. La norme utilisée est la métrique de
Tchebycheff (Lp- métrique) [60].
Le problème de cette méthode réside dans le choix des valeurs de la pondération et du vecteur
des buts qui pose une question délicate car si nous utilisons de mauvaises valeurs, cela ne
permet pas une meilleure répartition sur la surface de compromis [65]. En revanche,
l’avantage principal de cette technique est qu’elle permet de travailler avec un ensemble de
solutions X pas nécessairement convexes [15].

1.6.2. L’approche non-Pareto


Cette approche est nommée aussi « approche non agrégée ». Elle est basée sur les solutions
de population, et les méthodes utilisées par cette approche traitent les objectifs séparément.
Deux types de méthodes existent dans la littérature : la sélection parallèle et la sélection
lexicographique [65].

1.6.2.1. La sélection parallèle


La sélection parallèle est basée sur l’utilisation des algorithmes génétiques (AGs) pour
résoudre des PMO. L’algorithme VEGA (Vector Evaluated Gentic Algorithm) développé par
Schaffer [78] sélectionne les individus de la population courante selon chaque objectif de
manière indépendante des autres. A chaque génération, la population générée initialement est
subdivisée en k sous-populations, où k désigne le nombre d’objectifs de la fonction coût. En
outre, chacune des sous-populations est composée de N/k individus, où N est la taille de la
population, en associant à chaque sous-population i un objectif fi. Ensuite, les k sous-
populations vont subir à un brassage à travers les opérateurs génétiques (croissement et
mutation) (voir la figure 1.9) [73].
Les meilleurs individus de chaque sous-population sont donc associés à un objectif particulier.
La méthode VEGA favorise les individus qui aient une forte performance pour cet objectif.
Tandis que, ces individus ne seront sélectionnés que lorsqu’on effectuera la sélection sur cet
objectif [11].
La critique principale de cette méthode est la possibilité d’obtenir à la fin de l’algorithme une
population d’individus de qualité moyenne sur l’ensemble de tous les objectifs. Ces individus

14
Résolution de problèmes d’optimisation Chapitre I

ne fournissent pas une surface de compromis bien formulée. Donc, elle ne permet pas de
trouver les solutions qui se situent dans des zones concaves [15].

Figure 1.9. Schéma du fonctionnement de VEGA.

1.6.2.2. La sélection lexicographique


Forman a créé cette méthode en se basant sur la sélection des objectifs selon un ordre
d’importance défini a priori par le décideur. Le traitement de ces objectifs suit cet ordre
pendant le processus d’optimisation [5]. Le choix du classement attribué aux objectifs
importants affecte directement le résultat d’optimisation. Une fois la meilleure solution
trouvée pour le premier objectif, cela aidera l’algorithme à faire converger vers une zone
limitée de l’espace et d’enfermer les points dans une niche. D’autre part, cette méthode
permet d’utiliser des algorithmes d’optimisation classiques [63].

1.6.3. L’approche Pareto


Contrairement aux approches abordées précédemment, qui combinent les objectifs en une
seule fonction linéaire ou traitent indépendamment les différents objectifs. Une nouvelle
approche basée sur les AG a été proposée par Goldberg [31]. Elle permet d’utiliser
directement la notion de dominance dans la sélection des solutions générées, afin d’obtenir
des solutions PO appartenant au front de Pareto. D’autre part, cette approche ne privilège pas
un objectif par rapport à un autre ce qui permet de donner un traitement équitable entre les
objectifs. Nous distinguons deux grandes familles d’algorithmes pour cette approche : les
méthodes non-élitistes et les méthodes élitistes [60].

15
Résolution de problèmes d’optimisation Chapitre I

1.6.3.1. Les méthodes non-élitistes


La stratégie des méthodes non-élitistes consiste à ne conserver les individus PO obtenus en
cours de processus d’optimisation. Cela, conduit de dégager deux aspects importants :
Difficile à garantir une diversification des solutions sur la frontière du Pareto.
Une convergence lente vers la frontière de Pareto [65].
Dans ce qui suit, on définit deux des techniques les plus populaires dans la littérature.

a) Algorithme génétique à objectifs multiples (Multiple Objective Genetic Algorithm


– MOGA –)
MOGA est le premier algorithme qui exploitait la notion de dominance au sens de Pareto. Cet
algorithme se base sur le principe de ranking (classement) qui consiste à classer un individu i
par rapport aux autres selon le nombre d’individus pi qui lui dominent. Un rang ri = (1+pit)
est calculé, où pit indique le nombre d’individus qui dominent l’individu i à la génération t.
(voir la figure 1.10.b). Ainsi, le rang d’une solution non-dominée de la population est
évidement égale 1, mais d’autre part ce rang ne peut pas être plus grand que la taille de la
population N [1].
L’efficacité d’un individu dépend de son rang et se calcule selon les étapes suivantes :
Les individus sont classés en fonction de leur rang.
Attribuer une valeur d’efficacité pour chacun des individus selon leur ordre en
utilisant une fonction linéaire f(r) (voir la figure 1.10.a).

(a) (b)

Figure 1.10. Représentation de fonctionnement de MOGA. (a) Un exemple de fonction


d’efficacité. (b) Illustration de la méthode de Ranking.

Parmi les limites de cette technique, on trouve que dans certains cas, elle ne fournit pas une
bonne diversité dans la représentation des solutions sur la surface de compromis. Pour
combler ces insuffisances, d’autres algorithmes ont été proposés [15].

16
Résolution de problèmes d’optimisation Chapitre I

b) Algorithme génétique à tri non-dominé (Non-dominated Sorting Genetic


Algorithm – NSGA –)
Cette méthode a été proposée initialement par Goldberg [31] et implémentée par Srinivas et
Deb [89]. Son principe est fondé sur la séparation de la population en plusieurs groupes
d’individus en fonction de degré de dominance de Pareto. Les individus non dominés de la
population possèdent le rang 1, pour lesquelles est constitué le premier groupe qui représente
la première frontière de Pareto. Ensuite, ces individus sont retirés de la population.
L’ensemble suivant d’individus sont ceux qui ne sont dominés que par les individus du
groupe précédent, et on leur attribue le rang 2 (voir la figure 1.11). Ce mécanisme est répété
jusqu’à ce que tous les individus de la population aient un rang.
La probabilité de sélection d’un individu i appartenant à En se fait par l’expression de Baker,
où S désigne la pression de sélection, En représente l’ensemble d’individus d’un rang n et tp
est la taille de la population En. La probabilité qu’un individu du rang n d’une population En
sera sélectionné est calculée selon la formule suivante [90]:

G (HDI JKL )IKL J


F (5) = HD (HDJ )
avec (1.13)

Rn = 1+ |En| + 2 * ∑A ∈N , J O MA

Cette méthode garantit une bonne diversité dans la population grâce à l’utilisation d’une
fonction de partage « Sharing » qui permet de distribuer efficacement les solutions sur les
frontières de Pareto. En revanche, elle expose une complexité élevée au niveau des calculs
notamment le processus de tri de la population car il dépend du nombre d’objectifs et de la
taille de population [11].

Figure 1.11. Classement des solutions selon la méthode de Ranking.

17
Résolution de problèmes d’optimisation Chapitre I

1.6.3.2. Les méthodes élitistes


Pour combler les problèmes et les difficultés des algorithmes précédents, d’autres méthodes
ont été introduites : les méthodes élitistes. Le principe de ces méthodes est de maintenir les
meilleures solutions produites par la génération courante Pt pour la prochaine génération Pt+1
[43], ce qui permet de sauvegarder toutes les solutions PO durant la recherche et de
perfectionner la performance des algorithmes génétiques pour certains problèmes [27].

a) SPEA-II (Strength Pareto Evolutionary Algorithm)


Cet algorithme a été proposé par Zitzler et al [97] qui ont fait une amélioration de
l’algorithme SPEA [98]. Ce dernier est un algorithme élitiste qui conserve les meilleurs
individus du front de Pareto trouvés pendant la recherche dans une population externe,
appelée une archive. Initialement, cette population contient seulement un nombre limité
d’individus non dominés qui apparaissent au début d’exécution. Lorsque le processus
génétique est appliqué à chaque itération, de nouveaux individus non dominés seront
découverts puis sont comparés avec les individus archivés au sens de dominance de Pareto.
Seuls les individus non dominés seront inclus dans l’archive [1]. Une fois l’archive excédera
une taille fixée a priori, une phase de clustring est appliquée dans le but de ne préserver que
les meilleurs représentants [4]. D’autre part, s’il n’y a pas un nombre suffisant d’individus
non dominés dans l’archive, on doit la compléter par des individus dominés.
Soit P la population initiale de taille N, et P’ est la population d’archive de taille N0, la figure
1.12 illustre le fonctionnement de l’algorithme SPEA-II [1].
Cet algorithme possède une très haute efficacité de répartition des solutions sur la frontière de
Pareto, cependant il est question de bien choisir la taille de la population externe [11].

Figure 1.12. Fonctionnement générale de SPEA-II.

18
Résolution de problèmes d’optimisation Chapitre I

b) NSGA-II (Non-Sorting Dominated Genetic Algorithm)


L’algorithme NSGA-II a été proposé par Deb et al [17] comme une version améliorée de
l’algorithme NSGA [19]. Il est considéré comme un des algorithmes évolutifs les plus connus
et les plus utilisés pour faire des comparaisons.
Contrairement à NSGA qu’utilise une fonction consommable en temps de calcul pour le
partage des performances afin de maintenir la diversité, dans NSGA-II, une fonction de
surpeuplement « Crowding » est utilisée autour de chaque individu afin d’assurer la diversité
de la population. Le principe de fonctionnement de cet algorithme est schématisé dans la
figure 1.13. En premier lieu, soit une population initiale Rt = Pt ∪ Qt, où Pt sont les meilleurs
individus (des parents) obtenus durant la génération t de taille N, et Qt est une population des
individus générés lors de la première phase de l’algorithme à travers des opérateurs
génétiques. Ensuite, on aura une population Rt composée des parents et des enfants classés
selon le concept de dominance de Pareto en différents front de non-domination (ℱ 1, ℱ 2, …,
ℱ n) [21].

Afin de construire la population Pt+1, qui est une sous population de Rt+1, on doit inclure
intégralement les meilleurs individus des fronts ℱ i en commençant par le premier front ℱ 1
jusqu’à ce que le nombre d’individus de la population Pt+1 sera égale à N. Donc l’autre cas
(Pt+1 < N), il reste encore N-|Pt+1| individus à inclure. La procédure de crowding est appliquée
sur les fronts ℱ i qui ne sont pas traités afin d’insérer les meilleurs individus N-|Pt+1| dans Pt+1.

Maintenant, pour remplir la sous population Qt+1, il suffit d’utiliser les opérateurs génétiques
sur les individus Pt+1, puis d’insérer les individus générés (descendants) dans Qt+1 [4].
L’algorithme NSGA-II a permis de réduire la complexité de l’algorithme, et de créer une
méthode plus élitiste [11].

19
Résolution de problèmes d’optimisation Chapitre I

Figure 1.13. Schéma de fonctionnement de NSGA-II.

1.7. Conclusion
Nous avons vu dans ce chapitre les différents concepts de bases de l’optimisation mono et
multi-objectifs ainsi que la classification des approches de résolution des PMO accompagnée
par un ensemble d’algorithmes. Les approches agrégatives et celles non-Pareto semblent être
peu efficaces du fait qu’elles sont très sensibles à la géométrie des fronts de Pareto. Par
opposition, les approches Pareto issues des métaheuristiques comme les algorithmes
évolutionnaires ont montrées leurs efficacités pour trouver des solutions satisfaisantes pour
certains problèmes même s’ils ont des surfaces de Pareto non convexes. Par ailleurs, nous
pouvons considérer ces dernières approches comme les plus adaptées aux PMO vu leur
rendement et leur utilisation par de nombreux auteurs dont nous citons à titre d’exemple [66,
83, 3, 13]. Nous consacrerons le chapitre suivant à l’étude détaillée de l’utilisation des
algorithmes évolutionnaires pour la résolution des PMO.

20
Chapitre II

o Introduction.

Algorithmes o Source d’inspiration.


d’optimisation combinatoire.
o Principe des algorithmes

évolutionnaires o
évolutionnaires
Classes d’algorithmes
évolutionnaires.
o Domaine d’applications d’AE.
o Etude de cas : Les algorithmes
génétiques
o Conclusion.
Algorithmes évolutionnaires Chapitre II

2.1. Introduction
Le chapitre qui suit a pour but de présenter une classe très connue d’algorithmes appelée
‘‘Algorithmes évolutionnaires’’ (AE). Ces algorithmes constituent une famille très célèbre de
métaheuristiques. Cela nous amène alors très rapidement à la résolution des problèmes
d’optimisation pour lesquels il ne peut exister d’algorithmes de résolutions exacts plus
efficaces. De manière générale, les AE s’inspirent de la théorie de la sélection naturelle
élaborée par Charles Darwin pour résoudre de différents problèmes. Ils consistent à faire
évoluer des populations de solutions candidates (individus) codés sous une forme adéquate au
problème traité ; le but étant la recherche de nouvelles solutions de plus en plus viables en
utilisant des opérateurs évolutionnaires. Nous allons donc essayer, dans ce qui suit, d’exposer
ces algorithmes tout en montrant leurs sources d’inspiration, leurs principes ainsi que leurs
sous-classes. En particulier, nous allons aborder en détail la classe d’algorithmes génétiques
qui constituent la plus célèbre classe d’algorithmes évolutionnaires et la plus utilisée par
rapport à d’autres.

2.2. Source d’inspiration


Les Algorithmes Evolutionnaires (AE) sont des méthodes d’optimisation fondées sur des
principes inspirés de la biologie, en particulier la théorie de l’évolution naturelle. Ces
algorithmes sont issus du paradigme de l’évolution darwinienne des espèces, telle qu’elle a
été définie par Charles Darwin [16] et publiée dans son livre " The Origin of Species " qui met
l’accent sur la lutte pour la survie et sur les mécanismes d’adaptation des êtres vivants, qui
leur permettent de générer des espèces différentes. Paradoxalement, ce livre ne parlait pas de
l’évolution et ce n’est qu’à partir de l’an 1900 que la notion d’évolution darwinienne est
réellement née, quand Hugo de Vries et Carl Correns redécouvrent le travail de l’autrichien
Gregor Mendel [58] qui réalisa une étude détaillée sur les variations dans des plantes et
développa un modèle génétique proche de celui utilisée actuellement, en proposant une
analyse de l’hérédité basée sur la combinaison des gènes dominants et récessifs.
L´évolution, telle qu’on la connait aujourd’hui, est un processus où les individus doivent
s’adapter à un milieu naturel qui impose une concurrence induite par des ressources limitées.
Les variations entre individus sont expliquées par deux facteurs principaux : l’action des
agents mutagènes, qui produisent des variations dans la séquence d’ADN, et la combinaison
de l’ADN des deux parents lors de la reproduction [56].

21
Algorithmes évolutionnaires Chapitre II

2.3. Principe des algorithmes évolutionnaires


Les AEs sont une classe d’algorithmes d’optimisation par recherche probabiliste
(stochastique) basée sur le modèle de l’évolution naturelle. Ils modélisent l’évolution d’une
population d’individus codés sous une forme donnée dans le but de représenter des points
dans un espace de recherche. Le point de départ étant une population initiale générée
aléatoirement (voir la figure 1.1) [88].
Dans un AE, le processus d’évolution est itératif où à chaque itération (génération) de
l’algorithme, les solutions de la population (parents) sont sélectionnées, rassemblées puis
recombinées afin de produire de nouvelles solutions (enfants) qui remplacent leurs parents qui
sont moins adaptés à la résolution du problème en question, d’où l’utilisation d’une fonction
d’évaluation (performance ou fitness en anglais) qui associe une valeur d’adaptation à chaque
individu afin de mesurer sa pertinence ou son degré d’adaptation par rapport à son
environnement [9]. Ce mécanisme de sélection espère de permettre aux bons individus de se
reproduire dans le but de générer une descendance (futur parents) censée capable de porter de
améliorations par rapport aux générations précédentes. Le processus d’évolution continue à
itérer jusqu’à atteindre le critère d’arrêt qui est souvent désigné par le nombre maximum de
génération déjà fixé. A la fin de l’exécution, le ou les meilleurs individus découverts pendant
l’évolution de l’algorithme sont retournés comme le montre la figure 2.2 [27].

Figure 2.1. Population initiale aléatoire. Figure 2.2. Population évoluée.


Dans ce qui suit, nous allons détailler la structure générale d’un AE comme illustrée par la
figure 2.3 [32].

22
Algorithmes évolutionnaires Chapitre II

Figure 2.3. Organigramme d’un algorithme évolutionnaire

2.3.1. Initialisation de la population


La génération de la population initiale P0 est une phase préparatoire à partir de laquelle l’AE
commence son exécution. Elle est souvent générée de façon aléatoire en fonction de la taille
de la population, la structure et la taille de chaque individu (le codage des individus) ainsi que
leur domaine de définition. D’autre part, il est nécessaire que la population initiale soit bien
répartie sur l’espace de recherche ce qui permet une variété qui aide à mieux explorer l’espace
de recherche. En outre, le nombre d’individus d’une population et leur structure sont d’une
grande importance pour un AE du fait qu’ils doivent être déterminés de façon rigoureuse étant
donné leur influence sur l’exécution ultérieurement [7].
2.3.2. Evaluation des individus
L’évaluation des individus se fait à travers une fonction dite d’adaptation. Celle-ci consiste à
calculer la performance des individus en associant à chacun une valeur d’adaptation F en
fonction du problème à résoudre, ce qui permettra de comparer les individus pour en
sélectionner ceux qui sont plus adaptés. La performance et l’efficacité de l’AE peut fortement
être sensible au choix de cette fonction [28].

23
Algorithmes évolutionnaires Chapitre II

2.3.3. La sélection des individus


Une fois réalisée l’évaluation de la population, on opère une sélection selon les valeurs
d’adaptation. Seuls les individus passant l’épreuve de sélection peuvent se reproduire [85]. On
distingue plusieurs techniques de sélection parmi lesquelles nous citons :

La sélection par élitisme : le principe de cette sélection consiste à trier les individus
de la population selon leurs valeurs d’adaptation. Seule la moitié supérieure des
individus de la population seront sélectionnés pour se reproduire. En revanche, les
individus qui sont moins adaptés n’ont aucune chance pour être sélectionnés [70].
La sélection par tirage de roulette : Cette méthode a été introduite par Goldberg
[31]. Elle consiste à partitionner une roulette en des cases dont chacune est réservée à
un individu de la population. La taille de chaque case est proportionnelle à la valeur
d’adaptation de l’individu i correspondant, et se calcule selon la formule : P(i)
P(Q)
= V . On lance la roulette puis on sélectionne l’individu correspondant à la case
RWXY S(TU)

où elle est tombée comme le montre la figure 2.4. Ce processus sera répété q fois pour
extraire les individus constituant la population temporaire P’ (population de
reproduction).

Figure 2.4. La forme de la roue de loterie

Il est clair que cette méthode favorise les meilleurs individus mais aussi elle n’écarte
pas ceux qui sont mauvais où ils ont toujours des chances d’être sélectionnés.
Cependant, elle peut causer une perte de la diversité du fait qu’avec un peu de mal
chance, la population intermédiaire pourrait n’avoir de mauvais individus [69].

24
Algorithmes évolutionnaires Chapitre II

La sélection par tournoi : cette méthode s’appuie sur la comparaison entre les
valeurs d’adaptation relatives aux individus. Elle consiste à tirer au hasard un certain
nombre d’individus q dans la population puis à sélectionner celui qui a la meilleure
performance pour la reproduction. Cette opération est répétée autant de fois qu’il y a
d’individus à sélectionner [85]. En effet, on peut accorder plus ou moins de chance
aux individus qui sont peu adaptés. Si par exemple le nombre de participants est assez
grand, un individu faible sera, presque toujours, sûrement écarté. Pour combler cette
insuffisance, il est possible de compter sur un mécanisme stochastique en introduisant
un facteur de probabilité le plus souvent compris entre 0.5 et 1 selon lequel les
individus les plus adaptés seront acceptés, ceci permet de contrôler la pression de
sélection si nécessaire [50].

2.3.4. Opérateurs de variations


Durant cette étape, de nouveaux individus doivent se créer à partir des parents sélectionnés
[9]. Cette phase est réalisée par un ou plusieurs opérateurs qui permettre l’exploration et
l’exploitation de l’ensemble des solutions potentielles où les parents sélectionnés subissent
généralement des transformations par des opérateurs de variations.

2.3.5. Le remplacement
Le remplacement consiste à déterminer quels individus seront remplacés dans la nouvelle
génération. La construction de la nouvelle génération peut se faite selon deux techniques de
remplacement :
Le remplacement générationnel (stationnaire) : ce type de remplacement est le plus
simple car la prochaine population Pt+1 est composée automatiquement par les
descendants des parents sélectionnés de la population Pt sans tenir compte de leurs
valeurs d’adaptation.
Le remplacement élitiste : il s’agit de préserver au moins les individus ayants les
meilleures performances d’une génération à la suivante [85].
2.3.6. Critère d’arrêt
Le critère d’arrêt indique que la solution est suffisamment rapprochée à l’optimum. Plusieurs
critères d’arrêt sont possibles parmi lesquels on cite :
lorsque l’algorithme a pu découvrir l’optimum.
lorsque l’évolution est ralentie (il n’y a pas d’amélioration).
lorsque la fonction d’adaptation d’un individu dépasse un seuil fixé au départ.
arrêter l’algorithme après un certain nombre de générations.

25
Algorithmes évolutionnaires Chapitre II

2.4. Classes d’algorithmes évolutionnaires


Historiquement, quatre grandes familles d’algorithmes évolutionnaire ont séparément vu le
jour.
Les algorithmes génétiques: Les AGs sont la classe la plus connue et la plus utilisée
dans le calcul évolutionnaire. Ils ont été introduits par Holland [40] comme un modèle
de méthode adaptative. Ils s’appuient sur un codage de l’information sous forme de
chaînes souvent binaires de longueur fixe et d’un ensemble d’opérateurs
génétiques comme la sélection, la mutation, le croisement, …etc. Nous allons les
aborder dans une section sui suit.
Les stratégies d’évolution : Les stratégies d’évolution (SE) sont apparues dans les
années 70 avec les travaux d’Ingo Rechenberg [75] poursuivis par Hans-Paul
Schwefel [85]. Ils utilisent des paramètres réels pour représenter les caractéristiques
d’une solution potentielle. Les SE fournissent deux stratégie différentes nommées
respectivement sous la forme (µ, λ)-ES et (µ+λ)-ES, où µ désigne l’ensemble de
parents pour produire un ensemble de descendants λ. La (µ, λ)-ES indique que µ
parents sont choisis pour former la nouvelle génération parmi les meilleurs λ
descendants, par contre la (µ+λ)-ES s’agit de prendre le meilleure entre les µ parents et
leurs λ descendants. Ces techniques ont été développées pour la résolution des
problèmes d’optimisation numériques.
La Programmation évolutionnaire : La programmation évolutionnaire (PE) a été
introduite par Larry Fogel [26]. Au début, il l’a conçue pour faire évoluer des
machines à états finis pour qu’elle s’étende en supportant la résolution des problèmes
d’optimisation de paramètres. Lors de la résolution d’un problème quelconque, on
génère aléatoirement une population de taille µ où chaque individu i va générer λ
descendants qui seront susceptible de subir des modifications à travers l’opérateur de
mutation.
La programmation génétique : John Koza [47] a été le premier à exprimer
formellement le concept de PG au début des années 1990 en s’appuyant sur les
techniques des algorithmes génétiques pour faire évoluer une structure d’arborescence
d’une population représentée par des programmes. La PG a pour le but d’aider les
programmeurs de faire écrire des programmes par un autre programme.

26
Algorithmes évolutionnaires Chapitre II

Figure 2.5. Différentes classes d’algorithmes évolutionnaires.


2.5. Domaine d’applications d’AE
Les algorithmes évolutionnaires sont des méthodes stochastiques de résolution de divers
problèmes pour lesquels il est difficile de trouver des solutions optimales dans un temps
raisonnable. En effet, les champs d’application des AEs sont très vastes, et grâce à leur
souplesse et efficacité, ils ont été appliqués avec succès à des applications complexes réelles
comme le contrôle du flux de pipelines de gaz [87], le routage aérien [77], la planification des
trajectoires de robots [53]. En outre, ils ont été un très puissant outil de résolution de
problèmes d’optimisation combinatoire académique comme le développement des chaines
logistique et du commerce [12, 42, 87, 71], le transport [59, 52, 14], la génétique [64, 44], la
médecine [82, 86], les jeux [10] et l’apprentissage [71]

2.6. Etude de cas : Les algorithmes génétiques


Les algorithmes génétiques sont des algorithmes d’optimisation stochastiques s’appuyant sur
des techniques inspirées de l’évolution naturelle et la génétique moderne (c’est-à-dire fondés
sur le Néo-Darwinisme). Ils ont été proposés en 1975 par J. Holland et ses collègues à
l’université de Michigan en travaillant sur les systèmes adaptatifs [40], et grâce à
l’approfondissement de D. Goldberg qui a largement contribué à les populariser [31], les AG
sont devenus un outil très utilisé notamment pour la résolution des problèmes d’optimisation.
Avant d’aborder le principe fonctionnement d’un AG, nous avons estimé qu’il est nécessaire
de définir quelques concepts que l’on utilise souvent dans ce domaine.
2.6.1. Concepts de base
Le génotype : en biologie, le génotype est l’ensemble du matériel génétique (les
gènes). Dans un AG, il s’agit de l’ensemble des chaines constituant les chromosomes.

27
Algorithmes évolutionnaires Chapitre II

Le phénotype : en biologie, le phénotype est généré par l’interaction de l’ensemble


des génotypes avec son environnement. Dans un AG, les structures décodées forment
un ensemble de point ou solution correspondant dans l’espèce de recherche.
Le chromosome : en biologie, le chromosome est le porteur de l’information
génétique qui constitue la molécule d’ADN par des milliers des gènes. Dans un AG, il
représente une solution possible pour un problème donné.
Le gène : en biologie, le gène est une structure moléculaire d’ADN qui représente une
portion du chromosome. En revanche, dans un AG, il correspond à une unité d’un
chromosome de plusieurs unités.
Le locus : c’est une position spécifique d’un gène dans un chromosome d’une
molécule.
L’individu : en biologie, un individu est une forme qui est le produit de l’activité des
gènes. Par contre dans les AGs, il est réduit à un chromosome et on l’appelle donc une
solution potentielle dans un espace de recherche.
La population : en biologie, une population est un ensemble d’individus et de même
pour un AG, elle correspond à un ensemble de chromosomes (solutions potentielles).
Le fitness : c’est une valeur affectée par une fonction d’adaptation qui exprime le
degré d’adaptation de chaque individu.
La descendance : c’est le résultat de la reproduction entre les individus qui font la
naissance d’autres dits descendance.
La mutation : est due à la modification aléatoire d’un gène dans un chromosome.
Croisement : il s’agit de la recombinaison entres les chromosomes qui s’échangent de
parties pour donner des nouveaux chromosomes [2, 50, 24].

2.6.2. Principe de fonctionnement d’un AG


Analogiquement avec l’évolution naturelle, dans un AG, un individu se caractérise par son
génotype (empreinte génétique) qui peut avoir différents représentation (réelles,
binaires…etc.). L’algorithme démarre alors avec une population de chromosomes qui
représentent des solutions possibles pour un problème donné. La qualité d’un individu ou son
"fitness" peut être mesuré par une fonction d’adaptation qui dépend du problème à résoudre.
Chaque chromosome de la population, peut ensuite subir des modifications par les opérateurs
génétiques de croisement et de mutation qui permettent d’explorer et d’exploiter l’espace des
solutions. Enfin, la création d’une nouvelle génération se fait en opérant à un remplacement
des parents sélectionnés (de la génération précédente) [70].

28
Algorithmes évolutionnaires Chapitre II

En résumé, pour mettre en évidence le déroulement d’un algorithme génétique, nous décrirons
sa structure algorithmique comme illustrée dans la figure 2.6.

Entrées : N : taille de la population


T : nombre maximum de génération
Pc : probabilité de croisement
Pm : probabilité de mutation
Sorties : S : la meilleure solution
Etape 0 : Codage
Définir un codage pour les solutions du problème sous forme d’un
chromosome
Etape 1 : Initialisation
Soient P0 = {}, t = 0, I : espace des individus
Pour c = 1, …, N faire :
a) Choisir i ∈ I de façon aléatoire.
b) P0 = P0 + {i}.
Etape 2 : Evaluation des individus (affectation de fitness)
Soit F la fonction d’évaluation
Pour chaque individu i ∈ Pt :
Calculer F(i) pour chaque individu i de Pt
Etape 3 : Sélection
Soit P’ = {} ;
Pour c = 1, …, N faire :
a) Sélectionner un individu i ∈ Pt selon sa valeur de F(i).
b) P’ = P’ + {i} ;
La population temporaire P’ est pour le groupe de reproduction.
Etape 4 : Croisement
Soit P’’ = {}
Pour c = 1, …, N/2 faire :
a) Choisir aléatoirement une paire d’individus (i, j) ∈ P’.
b) Croiser i et j pour produire les descendants k et l tels que k, l ∈ I.
c) Ajouter k et l à P’’.
Etape 5 : Mutation
Soit P’’’ = {}
Pour chaque individu i ∈ P’’ faire :
a) Muter i avec une probabilité Pm, l’individu résultant est j tel que j ∈ I.
b) P’’’ = P’’’ + {j}.
Etape 6 : Remplacement
Soit P’’’’ = {} ;
Remplir P’’’’ par des individus de P’ et P’’’ (selon la stratégie adoptée) ;
Etape 7 : Terminaison
Soit Pt+1 = P’’’’ ; t = t + 1 ;
Si t ≥ T (ou un autre critère d’arrêt) alors

Figure 2.6. Corps d’un algorithme génétique.

29
Algorithmes évolutionnaires Chapitre II

Vu que les différentes classes d’AE se diffèrent au niveau du codage d’individus et les
opérateurs de recombinaison, nous n’allons aborder que ces deux aspects car les autres
comme la sélection et le remplacement s’exécutent indépendamment de la structure d’AE
adopté.

2.6.2.1. Codage des individus


Dans un AG, la structure des individus est celle d’un chromosome. La difficulté principale de
cette étape est le choix du codage approprié au problème, bien que l’efficacité d’un AG ne
dépende pas seulement au choix du codage adopté, mais aussi de la fonction à optimiser. Soit
la notation de la représentation du chromosome C suivante :
C = (G1, G2,…, Gi,..., GL)
où L représente le nombre de paramètres dans le chromosome et Gi représente le ième gène du
chromosome C (voir la figure 2.7) [7].

Figure 2.7. Représentation génétique.

Parmi les propositions les plus fréquemment utilisées pour coder les individus, on cite :

Le codage binaire : ce codage est proposé par Holland lui-même [40]. Son principe,
est de coder les chromosomes sous forme d’un vecteur binaire, où chacun des gènes
(ou paramètres) est représenté ainsi par une sous chaine des bits {0 ou 1} de longueur
fixée a priori (voir la figure 2.8). Evidemment, ce codage est le plus répandus en
raison de ses nombreux avantages lors de la manipulation des gènes.

30
Algorithmes évolutionnaires Chapitre II

Figure 2.8. Structure d’un chromosome sous forme binaire.


Le codage réel : certes le codage binaire est très utile mais sa représentation montre
ses limites lorsque le nombre des paramètres d’une solution est assez grand, ce qu’il
rend plus fastidieux et plus difficile de gérer les chromosomes. Une solution possible
est l’utilisation des nombres réels pour coder les gènes des chromosomes [50].

Figure 2.9. Structure d’un chromosome sous forme réelle.

2.6.2.2. Les opérateurs génétiques


Les algorithmes génétiques sont basés essentiellement sur les opérateurs suivants :
a) Croisement
Une fois les individus les plus adaptés sont sélectionnés, ils seront répartis aléatoirement en
couples. L’opérateur de croisement consiste à l’échange du matériel génétique des couples
(parents), ce qui permet de former deux descendants (enfants) qui héritent les caractéristiques
issues de leurs parents [7]. Il existe plusieurs manières pour réaliser cette opération parmi
lesquelles on cite :
Le croisement en un point : c’est un croisement simple qui consiste à choisir au
hasard position qui désigne le point de coupure (locus) dans chaque couple de parents,
puis on permute les parties qui situent après le locus choisi permettant de construire
deux nouveaux individus [88] (voir la figure 2.10).

31
Algorithmes évolutionnaires Chapitre II

Figure 2.10. Croisement en un point.

Le croisement en deux points : il s’agit de tirer aléatoirement deux points de


croisement puis échanger la partie des parents située entre ces deux points (voir la
figure 2.11). Ce principe peut également se généraliser pour effectuer un croisement
multipoints [28].

Figure 2.11. Croisement en deux points.

Le croisement uniforme : cette technique est dissemblable aux autres techniques


expliquées. Ici on utilise un masque de croisement généré aléatoirement pour chaque
couple d’individus ou pour chaque génération. La taille de ce masque est de même
longueur que celle d’un chromosome. Les valeurs du masque sont binaires [88]. Le
principe de fonctionnement de ce croisement est schématisé dans la figure 2.12. Si la
valeur du bit du masque est égale à 1 alors la valeur du gène du parent (P1) est copiée
chez l’enfant (E1) et si la valeur du bit du masque est égale à 0 alors la valeur du gène

32
Algorithmes évolutionnaires Chapitre II

du parent (P2) est transmise à l’enfant (E1), et de même façon l’enfant (E2) sera
construit [9].

Figure 2.12. Croisement uniforme.

b) La mutation
L’opérateur de mutation intervient après le croisement et s’applique à l’ensemble des
descendants. Cet opérateur consiste à modifier au hasard certains gènes souvent suivant une
faible probabilité Pm, typiquement entre 0.01 et 0.001 [85].
La mutation la plus classique dans la représentation binaire consiste à sélectionner
aléatoirement un gène du chromosome d’un individu et modifier sa valeur (voir la figure
2.13). Par contre, dans le cas d’un codage réel des chromosomes, le gène est modifié en
remplaçant sa valeur par une autre choisie aléatoirement dans l’intervalle [ai, bj] [69].

Figure 2.13. Mutation aléatoire.

33
Algorithmes évolutionnaires Chapitre II

2.7. Conclusion
Les AE ont connu depuis quelques décennies un intérêt croissant notamment pour la
résolution des problèmes combinatoires nécessitant une exploration d’espaces de recherche.
Ce sont des algorithmes capables de simuler l’évolution d’une population de solutions codées
sous une forme qui dépend du problème traité. En fait, l’un des points clés de leur popularité
est leur généricité qui permet la résolution de plusieurs classes de problèmes en changeant
seulement le codage des individus et la fonction à optimiser. L’autre caractéristique
fondamentale que possèdent les AG est celle du parallélisme intuitif où l’on peut traiter
plusieurs chromosomes en même temps s’il existe un nombre suffisant de ressources
matérielles (processeurs) ce qui permet de développer systèmes hautement performants.
L’intérêt de leur utilisation peut donc être résumé par la formule : " puissance + généricité ".
Néanmoins, plus récemment de nombreuses nouvelles métaheuristiques ont vu le jour et qui
ont montré des améliorations profondes par rapport aux anciennes, en particulier les AE
classiques. Le chapitre qui suit fait donc l’objet d’une présentation d’une nouvelle classe
d’AE très puissante : les algorithmes évolutionnaires inspirés-quantiques.

34
Chapitre III

Introduction
Partie I : Informatique quantique
o Source d’inspiration de

Algorithmes o
l’informatique quantique.
Éléments de base de
l’informatique quantique.
évolutionnaires o Principes de l’informatique
quantique.

inspirés- o Les défis de réalisation des


ordinateurs quantiques.

quantiques o Le calcul quantique.


Partie II : Les AEIQ
o Algorithmes évolutionnaires
inspirés quantiques.
o Structure globale d’un
algorithme évolutionnaire
inspiré-quantique.
Partie III : Les AEIQM
o Algorithmes évolutionnaires
inspirés quantique multi-
objectifs.
Conclusion.
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Introduction
Le chapitre qui suit a pour but de présenter une nouvelle classe d’algorithmes évolutionnaires
appelées ‘‘Algorithmes Evolutionnaires Inspirés-Quantique’’ (AEIQ). Ces algorithmes
constituent une famille très célèbre de métaheuristiques. Nous avons déjà vu dans le chapitre
précédent que les AE s’inspirent de la théorie de la sélection naturelle élaborée par Charles
Darwin pour résoudre de différents problèmes d’optimisation. Ils consistent à faire évoluer
des populations de solutions candidates (individus) codés sous une forme adéquate au
problème traité, le but étant la recherche de nouvelles solutions de plus en plus viables en
utilisant des opérateurs évolutionnaires. En particulier, les AEIQ reposent sur des principes
issus de l’informatique quantique pour la représentation d’individus et même pour les
opérateurs d’exploration et d’exploitation des espaces de recherche. Sur le plan pratique, de
nombreux résultats ont montré leur efficacité et leur performance par rapport à d’autres
classes d’AE. Nous allons donc aborder ce sujet en présentant d’abord l’intérêt pour
l’informatique quantique ainsi qu’une initiation au domaine. Ensuite, nous nous concentrons
sur l’étude des AEIQ en s’intéressant à leurs caractéristiques principales et aux choix offerts
pour leurs mises en pratique. Enfin, nous clôturons ce chapitre en étudiant l’extension de cette
approche inspirée-quantique où ils servent à résoudre des problèmes d’optimisation multi-
objectifs.

Partie I : L’informatique quantique

3.1. Source d’inspiration de l’informatique quantique


En 1982, le physicien Richard Feynman fait ressortir l’idée de la complexité de simulation des
systèmes quantiques par ordinateur, mais son constat n’a pas attiré l’attention à cause de
l’incapacité de proposer des solutions concrètes [25]. Ce n'est qu’en 1985 que David
Deutsch a publié un article contenait une description réelle d’un ordinateur quantique
universel [18]. Les recherches après cette publication s’orienter vers la conception des
circuits quantiques, équivalentes des circuits logiques de l’informatique classique. Plusieurs
modèles ont par conséquent été proposés.
L’an 1994, enregistre l’apparition d’un des plus célèbres algorithmes quantiques, développé
par Peter Shor qui conçoit un algorithme quantique [84] permettant de factoriser de grands
nombres dans un temps polynomial. Shor clarifie que les résultats obtenus avec un ordinateur

35
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

classique prendrait des millions d’années, tandis qu’avec un ordinateur quantique, cela ne
prendrait qu’une année. En 1996 Lov Grover inventa un algorithme quantique plus efficace
qu’un tout autre algorithme classique pour la recherche d’un élément dans une base de
données non triée [33].
Pendant les années 1998, 1999 et 2001, la société américaine IBM réussit à présenter des
ordinateurs quantiques à 2 qubits, 3 qubits et 7 qubits grâce en implémentant l’algorithme de
Shor et celui de Grover.
En fait, la publication du cofondateur Gordon Moore de la société Intel en 1975, précisa d’une
part que le nombre de transistors contenus dans les microprocesseurs double tous les deux ans
puis rectifia plus tard que la puissance des ordinateurs se croit exponentiellement [62]. Par
ailleurs, selon son constat empirique, nous estimons que selon la loi de Moore (voir la figure
3.1) nous seront face à une situation inévitable environ l’an 2020. Que ce soit à court ou à
long terme, les composants électroniques deviendront de la taille des atomes ce qui conduit à
aboutir à un stade final pour le développement de l’informatique classique. La solution de
cette impasse semble être le changement du paradigme en s’orientant vers d’autres nouveaux
paradigmes pour assurer la continuité du développement : se tourner vers l'informatique
quantique. Pour preuve, la société D-Wave a déjà fait la présentation officielle d’Orion en
2007, le premier processeur au monde composé de 16 qubits et censé pouvoir être
commercialisé. D-Wave, a pris l’exemple de problème de voyageur de commerce pour
représenter la puissance de calcul de son produit. En 2009, le deuxième processeur a été
annoncé pour une puce de 128 qubits [50].

Figure 3.1. Développement des circuits selon la loi de Moore.

36
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

3.2. Eléments de base de l’informatique quantique


L’informatique quantique est à base des éléments suivants :
3.2.1. Les Qubits
Dans le cadre de l’informatique classique, l’unité fondamentale de l’information est le bit, qui
peut prendre deux valeurs 0 ou 1, signifiant que le courant passe ou pas. Tandis qu’en
informatique quantique, l’élément de base pour le traitement de l’information est le bit
quantique, ou Qubit (de l’anglais ‘Quantum bit’). Contrairement à un bit classique, un qubit se
trouve dans état de superposition de deux valeurs représentant les états de base, notés par
convention |0〉 et |1〉. En d’autres termes, un qubit peut porter soit un 1 soit un 0 soit une
superposition des deux [93]. L’état de qubit peut être représenté selon les trois notations
suivantes [22, 67] :
La notation de Dirac : la représentation formelle de l’état de qubit selon cette
notation est noté par :
|Ψ〉 = α |0〉 + β |1〉 avec
0 → |0〉 et (3.1)
1 → |1〉
où α et β sont deux nombres complexes appelés amplitudes de probabilité. |Ψ〉 vaut 0
avec une probabilité |α|2 et 1 avec une probabilité |β|2, tel que | α |2 + | β |2 =1.
La notation vectorielle : la représentation vectorielle de qubit se fait sous la forme
suivante :
|0〉 → @
@
|1〉 →

|Ψ〉 → [\
]
^

Notation matricielle : l’état du qubit se représente en utilisant la matrice de densité :


1 0
|0〉 → [ ^
0 0
0 0
|1〉 → [ ^
0 1
Afin de comprendre la dissemblance entre le bit classique et le qubit, le tableau suivant
fournit un comparatif [51].

37
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Bit classique Bit quantique


Un bit classique a toujours une valeur On ne peut pas savoir la valeur de l’état d’un
définie. qubit non mesuré.

Un bit peut avoir exclusivement 1 ou 0. Un qubit peut être dans une superposition de
1 et 0 simultanément.
Le bit peut être copié sans être détérioré. Impossible de copier un qubit dans un état
inconnu.
Un bit peut être lu sans affecter sa valeur Lire un qubit dans une superposition
changera sa valeur.
Lire un bit n’affecte pas un autre Si un qubit est enchevêtré avec un autre, la
lecture de l’un affectera le second.

Table 3.1. Comparaison entre le bit et le qubit.

3.2.2. Les registres quantiques


La notion de registre quantique est importante dans le contexte d’informatique quantique. Il
n’est pas utile de travailler seulement sur des qubits d’où la nécessité de définir des registres
de taille N. Il s’agit d’un ensemble de N qubits mis dans une superposition arbitraire
permettant de représenter 2N valeurs simultanément. Un registre de taille N s’écrit donc [36] :
VJ

_ `6 | 5 〉
6?@

où les amplitudes `6 satisfont la règle de normalisation suivante :


VJ

_ |`6 | = 1
6?@

3.3. Principes de l’informatique quantique


L’informatique quantique est basée principalement sur un vocabulaire inspiré de la mécanique
quantique. Le vocabulaire utilisé est donc le suivant :

3.3.1. La superposition d’états


Un qubit peut être dans l’état 0 comme il peut être dans l’état 1. Mais également, il peut être
dans les deux états simultanément. Cet évènement offre donc des capacités de traitement et de
stockage exponentielles [72], ce qui permettait à un autre concept de faire apparaitre : le
parallélisme quantique [18].

38
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Imaginons par exemple un système à 3 bits, il peut se trouver dans une configuration parmi 8
possibles (000, 001, ..., 111). Avec un système quantique à 3 qubits, les 8 configurations sont
mémorisées simultanément. Un système à N qubits travaillera sur 2N nombres à la fois. Là où
l’ordinateur classique répétera 2N fois l’opération ou fera 2N calculs en parallèle, avec
l’ordinateur quantique cela est fait en une seule étape où l’on pourra appliquer la même
opération sur 2N nombres distincts [23].

3.3.2. L’interférence
Ce principe permet d’une part d’augmenter la probabilité d’avoir un état, en termes
d’interférence constructive. Et d’autre part, permet de diminuer la probabilité d’obtenir un
état, en termes d’interférence destructive [67].

3.3.3. L’enchevêtrement
Le phénomène d’enchevêtrement est appelé aussi "l’intrication". Deux bits quantiques sont
dits enchevêtrés ou bien intriqués si l’un dépend totalement de l’autre. Donc tout changement
de l’un affecte directement l’autre [93].

3.3.4. Le non-déterminisme
La mécanique quantique est indéterministe, ce qui implique que les mêmes causes ne
fournissent pas les mêmes effets. La valeur d’un qubit dans une superposition d’états n’est pas
connue avant d’effectuer sa mesure [72].

3.3.5. La non-duplication
La non-duplication ou encore la non clonabilité énoncée par W. Wootters, W. Zurek et D.
Dieks permet d’affirmer que la copie des qubits n’est pas toujours possible car un état inconnu
ne peut pas être dupliqué. En d’autres termes, on ne peut pas copier ce que l’on ne connaît pas
[72].
3.4. Les défis de réalisation des ordinateurs quantiques
Aujourd’hui, l’informatique quantique se trouve face à certains défis. L’un de ces défis est le
problème de la décohérence [76]. La définition suivante de Larousse décrit ce problème :
‘‘ Un système physique n'est jamais parfaitement isolé de son environnement. Ce couplage au
monde introduit un « bruit » dans le système quantique qui fait rapidement disparaître
les superpositions d'états. Ce brouillage, appelé « décohérence », est d'autant plus rapide que
la taille du système est grande ’’ [101]. Cette définition donne naissance aux problèmes liés
aux erreurs de calcul. Pour le remédier, quelques méthodes de corrections des erreurs ont été
proposées dans la littérature. Mais, la situation de correction pour les systèmes quantique est

39
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

différente et plus compliquée que les systèmes classiques. La principale raison est que dans un
système quantique il n’est pas possible de mesurer des valeurs de qubits sans détruire la
superposition d’états, ce qui signifie que la correction d’erreurs quantique ne serait jamais
faisable, surtout en tenant compte sur l’impossibilité de copier un état [93].
Verra-t-on un jour d’un ordinateur quantique ? Selon les spécialistes, aucune interception
physique n’a été déclarée qui empêche à réaliser d’un tel ordinateur quantique. Donc les défis
pour les prochaines années touche à comment passer à l’échelle et à construire des ordinateurs
capables de manipuler des milliers/millions de qubits ? Le travail pour lequel Serge Haroche a
reçu le prix Nobel, pourrait conduire à des implantations de bits quantiques plus efficaces,
plus stables, plus faciles à manipuler, mais ce n’est que le premier pas dans un long chemin
[101].

3.5. Le calcul quantique


Le calcul quantique s’effectue sur des circuits qui forment la base de construction des
machines quantiques. Ils permettent de manipuler des données quantiques représentées sous
forme de bits quantiques. On distingue deux types d’opérateurs quantiques :

3.5.1. Les portes quantiques


Comme dans les calculateurs classiques qui sont à base des portes logiques, les calculateurs
quantiques utilisent des portes quantiques, parmi lesquelles on cite :
Les portes quantiques simples : les transformations de base sont applicables sur un
seul qubit. Ces portes peuvent être représentées par des matrices unitaires 2x2[76,
93] :
I : La transformation Identité
|1a ⟶ |1a *+ |0a ⟶ |0a
1 0
[ ^
0 1
X : La négation
|0a ⟶ |1a *+ |1a ⟶ |0a
0 1
[ ^
1 0
Z : La transformation de décalage en phase
|1a ⟶ |1a *+ |0a ⟶ |0a
1 0
c d
0 ‫ـ‬1
Y : La combinaison de X et Z qui donne Y = XZ

40
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

|0a ⟶ |1a *+ |1a ⟶ |0a


0 1
c d
‫ـ‬1 0
La porte Controlled-Not : la porte Controlled-Not (CNot) opère sur deux qubit de la
manière suivante [93] : Si le premier qubit est à 1, le deuxième qubit est modifié,
sinon rien ne sera changé.
|00a ⟶ |00a |01a ⟶ |00a
|10a ⟶ |11a |11a ⟶ |10a
1 0 0 0
f0
0
1
0
0
0
0g
1
0 0 1 0
Cette porte est très utile pour effectuer des opérations contrôlées (voir la figure 3.3)
[51].
La porte Walsh-Hadamard : appelée la transformation de Hadamard, c’est une
opération très importante dans les algorithmes quantique puisqu’elle permet de créer
des superpositions cohérentes (voir la figure 3.2) [36]:
1 1
hij |0a |0a m |1a hij |1a | 0a |1a
√2 √2
1 1 1
j [ ^
√2 1 1
Elle permet de représenté 2n valeurs dans un registre à n qubits à partir de l’état initial
|0a comme suit :
1 1 1
hno |0a ⊕ hno |0a … ⊕ hno |0a |0a m |1a ⊕ |0a m |1a ⊕ … ⊕ |0a m |1a
√2 √2 √2

|00 … 0a m |00 … 1a m ⋯ m |11 … 1a


√ L

|0a m |1a m |2a m ⋯ m |2 1a


√ L

Figure 3.2. Porte d’Hadamard.

41
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

La porte de Toffoli : l’opération AND est une opération irréversible dune grande
importante pour effectuer des calculs [50]. Cette porte binaire permet la construction
de la porte AND comme suit :
r(| , /, 0a | , /, s9: / a

Récapitulons maintenant par un exemple d’application [36]. Soit le qubit |ta |0a m

u |1a. L’application de la porte Hadamard au qubit |ta donne le nouveau qubit :


v
w

1
1 m √3
1 1 1 z2€ z 2√ 2 € 1 m √3 1 √3
|t, a [ ^∗y • y • ‚ | 0a m • ‚ | 1a .
√2 1 1 3 1 √ 3• 2√ 2 2√ 2
{
x 4~ x 2√ 2 ~

Figure 3.3. La porte CNot(a) et la porte Toffoli (b).

3.5.2. Les circuits quantiques


Un circuit quantique est constitué d’une combinaison de deux ou plusieurs portes quantiques.
Un exemple de circuit quantique (l’état de Bell) sera représenté comme suit [68]:
L’état de Bell est un circuit composé d’une porte Hadamard suivi par la porte CNot. L’état
d’entrée de la porte Hadamard est |00a ce qui donne |0a m |1a |0a/√2 comme état de sortie
qui devienne à son tour un état d’entrée pour la porte CNot. Cette dernière le transforme à un
état de sortie correspondant à |00a m |11a /√2 . L’ensemble des états de Bell est représenté
dans le tableau suivant :

42
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Entrés Sorties
1
|00a m |11a ≡ |…@@ a
|00a
√2
|01a 1
|01a m |10a ≡ |…@ a
√2
|10a 1
|00a |11a ≡ |… @ a
√2
|11a 1
|01a |10a ≡ |… a
√2

Table 3.2. Les états de Bell.

Figure 3.4. Circuit de Bell.

Partie II : Les algorithmes évolutionnaires inspirés-quantiques


(AEIQ)

3.1. Les algorithmes évolutionnaires inspirés-quantiques


En effet, les algorithmes purement quantiques confrontent à quelques problèmes en raison de
la non-disponibilité d’ordinateurs quantiques. De nombreux chercheurs ont donc pensé à faire
des inspirations de ce paradigme de calcul, en les combinant avec les calculs ordinaires
pour en bénéficier de quelques avantages. C’est le cas pour les algorithmes évolutionnaires
inspirés-quantiques qui combinent des principes issus des algorithmes évolutionnaires
classiques avec d’autres de l’informatique quantique. L’atout principal de cette nouvelle
classe d’algorithmes est la non-nécessité d’une machine quantique pour leur exécution [74].
L’hybridation du concept du calcul quantique avec des algorithmes évolutionnaires classiques
a été introduite par K.H. Han et J.H. Kim [39]. Un algorithme évolutionnaire inspiré-

43
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

quantique ou (de l’anglais Quantum-Inspired Evolutionary Algorithm) utilise des concepts de


calcul quantique comme le bit quantique, la superposition d’états, les portes quantiques,…
etc. l’AEIQ travaille avec une population d’individus quantiques où chacun est représenté par
une suite de qubits, ce qui permet d’obtenir une superposition d’états [34]. Les portes
quantiques sont ensuite utilisées pour interférer ces individus afin de modifier les amplitudes
des qubits en guidant par le processus de recherche vers une solution rapprochée de bonne
qualité. La puissance de ces algorithmes tient de la grande diversité des solutions qu’ils
fournissent grâce à l’utilisation de codage quantique [81].

3.2. Structure globale d’un algorithme évolutionnaire inspiré-quantique


Etant donné que les AEIQ ont presque les mêmes caractéristiques d’un AE classique, cela
signifie que les opérateurs de variations seront totalement redéfinis afin de pouvoir
s’adapter avec ces nouvelles caractéristiques. La structure générale d’un AEIQ [38] peut être
décrite comme illustrée dans la figure 3.5.

Entrées : Q(t) : Une population quantique à l’instant t.


P(t) : Une population binaire issue par mesure de la Q(t).
t : La génération correspondante.
Sorties : B(t) : La meilleure solution jusqu’à la génération t.
t←0;
Initialiser Q(t) ;
Produire P(t) par observation de Q(t) ;
Evaluer P(t) ;
Sauvegarder la meilleure solution parmi P(t) dans B(t) ;
Tant que (le critère d’arrêt n’est pas satisfait) faire
t←t+1;
Produire P(t) par observation de Q(t-1) ;
Evaluer p(t) ;
Interférer Q(t) en utilisant une porte quantique sur Q(t-1) ;
Sauvegarder la meilleure solution parmi B(t-1) et P(t) dans B(t) ;
Fin Tant que

Figure 3.5. Pseudo code d’un AEIQ.

44
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

3.2.1. Codage d’un individu quantique


Comme l’élément de base de représentation de l’information est le qubit, un individu
quantique est souvent représenté par une suite de n qubits constituant un registre quantique
(voir la figure 3.6) [50].

Figure 3.6. Structure d’un individu quantique.


3.2.2. Initialisation de la population
La création des individus quantiques de la population initiale se fait tout simplement en
initialisant toutes les amplitudes des qubits par la valeur , ce qui signifie que les états de

superpositions sont représentés avec la même probabilité [37].

3.2.3. Opération de mesure


Cette opération conduit à extraire un individu classique à partir d’un autre quantique. Elle
permet d’avoir une solution parmi celles qui sont formées par superposition d’états des qubit
(voir la figure 3.7). Cependant, contrairement aux systèmes purement quantiques, cette
mesure ne détruit pas la superposition d’états, ce qui permet de préserver la superposition
pour les prochaines itérations. Le but de cette observation est de permettre l’évaluation des
individus de la population en fonction des individus binaires extraits.

Figure 3.7. Opération de mesure d’un individu quantique.

45
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Afin de mieux comprendre le déroulement de la fonction de mesure, la figure 3.8 nous montre
un pseudo code possible pour son implémentation [35].

Entrées : Q(t) : Population quantique.


r : Nombre aléatoire entre [0,1].
t : La génération correspondante.
N : Taille de population.
n : Taille de qubit.
Sorties : P(t) : Population classique

Pour tout individu quantique qj ← (Ψ1 〉, Ψ2 〉, … , Ψn 〉), tel que j ←1,...,N faire
Pour tout qubits Ψi 〉← αi |0〉 + βi |1〉, tel que i ← 1,…,n où | αi |2 + | βi |2 =1
faire
Si r > | αi |2 alors
xi ← 1
sinon
xi ← 0
Fin Si
Fin Pour
Individu pj ← (x1, x2, …, xn) a ajouté à P(t)

Figure 3.8. Pseudo code de la fonction de mesure.

3.2.4. Evaluation des individus


Après avoir généré les individus de la population classique en utilisant la fonction de mesure,
une valeur de performance associée à chaque individu grâce à une fonction d’adaptation selon
le problème à optimiser [30].

3.2.5. L’opérateur d’interférence quantique


L’opération d’interférence consiste à modifier les amplitudes des individus afin de guider la
population quantique. Elle repose essentiellement à dévier les amplitudes de chaque qubit
d’un individu au sens de la valeur du bit correspondant de la meilleur solution déjà trouvée
dans le but d’obtenir d’autres solutions plus performantes. Cette opération est donc utile pour
intensifier la recherche autour de la meilleure solution.
Pratiquement, l’interférence se réalise à travers une transformation unitaire qui effectue une
rotation dont l’angle de rotation est en fonction des amplitudes αi, et βi de la valeur du bit
correspondant dans la solution référence (voir la figure 3.9).

46
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Figure 3.9. Interférence quantique.


Où ∆θi est l’angle de rotation de la porte quantique du qubit i de chaque individu. En fait,
l’angle de rotation ∆θi doit être soigneusement choisi de manière à éviter la convergence
prématurée ou la divergence de l’algorithme. Sa valeur et sa direction sont souvent obtenues à
partir d’une table de recherche dont la sa structure est mentionnée dans la table 3.3.

xi bi f (x) > f(b) ∆θi s (αi, βi)


αi βi > 0 αi βi < 0 αi = 0 βi = 0
0 0 0 ∆θ1 +/- +/- ± ±
0 0 1 ∆θ2 +/- +/- ± ±
0 1 0 ∆θ3 +/- +/- ± ±
0 1 1 ∆θ4 +/- +/- ± ±
1 0 0 ∆θ5 +/- +/- ± ±
1 0 1 ∆θ6 +/- +/- ± ±
1 1 0 ∆θ7 +/- +/- ± ±
1 1 1 ∆θ8 +/- +/- ± ±

Table 3.3. Table de recherche pour la rotation des portes quantiques.

xi et bi sont les ièmes bits de l’individu extrait x et de la meilleure solution b respectivement. f


est la fonction objective et s(αi, βi) est le signe de l’angle ∆θi.

47
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Partie III : Les Algorithmes évolutionnaires inspirés quantique


multi-objectifs (AEIQM)

3.1. Algorithmes évolutionnaires inspirés quantique multi-objectifs


Les problèmes d’optimisation combinatoire multi-objectifs sont difficiles à résoudre. Ils font
donc appel à utiliser des méthodes de résolution qui doivent être puissantes et efficaces. En
2006, Han et Kim [46] étend les AEIQ pour supporter la résolution des problèmes
d’optimisation multi-objectifs (PMO), ce sont « les Algorithmes évolutionnaires inspirés
quantiques multi-objectifs » ou AEIQM en abrégé (de l’anglais Multiobjective Quantum-
Inspired Evolutionary Algorithm). Ces algorithmes incorporent les fonctionnalités de
l’informatique quantique avec les algorithmes évolutionnaires, dans le but d’améliorer
l’équilibre entre l’exploitation et l’exploration de l’espace de recherche pour une solution
Pareto optimale. En d’autre terme, augmenter la proximité du front de Pareto optimal et
maintenir la diversité de la population dans les problèmes multi-objectifs, avec l’appui d’une
représentation probabiliste basée sur le concept du qubit.
Dans ce qui suit, nous allons entamer l’exposition de l’architecture de base d’un AEIQM [45]
en combinant les AEIQ avec des concepts issus des AEMO ordinaires, tel que le NSGA-II
[17]. La figure 3.10 illustre l’organigramme d’un AEIQM.

48
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Global population A(t – 1)


H H H H
… … †
Copy Copy
Nondominated solution

Archive A(t) ;H ;H … … ;•J


H
;•H

Subpopulations

1‰Š Subpopulation • è!‰ Subpopulation


Global rondom
migration
Reference solutions
Reference solutions Reference solutions
(+) ‡H … ‡H Œ (+) ‡H … ‡H

, (+) H … H
,Œ (+) H … H

8 solutions … 8 solutions

Crowding distance assignment Crowding distance assignment


-1 -2 -3 -4 -1 -2 -3 -4
Nondominated sorting Nondominated sorting
, (+ 1) Parent(n) ,Π(+ 1) Parent(n)
, (+) Solution (n) ,Π(+) Solution (n)

Multiple observation Multiple observation


‹ (+ 1) ˆHJ … ˆHJ Q-gate ‹Œ (+ 1) ˆHJ … ˆHJ Q-gate

Update Update

Figure 3.10. Organigramme générale d’un AEIQM1.

Avant d’expliquer le principe de fonctionnement d’un AEIQM, le pseudo-code qui suit


montre les étapes de calcul correspondant [45] :

1
N est la taille de population globale, s est le nombre de sous-population, n est la taille d’une sous-population et l est le
nombre des solutions non dominées

49
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Qk(t) : Population quantique pour la génération t correspondant à la kème sous-


population.
Pk(t) : Population binaire pour la génération t correspondant à la kème sous-
population.
A(t) : Population d’archive pour la génération t
Rk(t) : Population de référence pour la génération t correspondant à la kème sous-
population.
Début
t←0;
1) Initialiser Qk(t) ;
2) produire Pk(t) par mesure des états des qubits de Qk(t) ;
3) évaluer Pk(t) ;
4) sauvegarder toutes les solutions de , (+) dans ,(+) et les solutions non dominées
en P(t) dans A(t) ;
5) Tant que (le critère d’arrêt n’est pas satisfait) faire
Début
t←t+1;
6) produire Pk(t) par mesure des états des qubits de Qk(t-1) ;
7) évaluer Pk(t) ;
8) exécuter le tri rapide des solutions non dominées (nondominated sorting)
et calculer la distance de surpeuplement (crowding) Pk(t) ∪ Pk(t-1) ;
9) construire Pk(t) par les premiers 8 individus dans la population triée de
taille 2n ;
10) sauvegarder toutes les solutions de chaque Pk(t) dans P(t) ;
11) construire A(t) par les solutions non dominées en A(t-1) ∪ P(t) ;
12) migration de solutions sélectionnées aléatoirement depuis A(t) vers
chaque Rk(t) ;
13) mise à jour des amplitudes des qubits de Qk(t) en utilisant des portes
quantiques (Q-gates) référents aux solutions de Rk(t) ;
Fin ;
Fin tant que
Fin.

Figure 3.11. Pseudo-code universel d’un AEIQM.

50
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Le déroulement de l’AEIQM pour chaque sous-population k est comme suit [45] :


Etape 01 : cette étape consiste à initialiser les amplitudes αi0 et βi0 de chaque individu

qj0 de la population quantique Qk(t = 0) avec la valeur , tel que i = 1,…, m et j = 1,


…, n, où m est la taille d’un individu et n est la taille de chaque sous-population. Cela


signifie que chaque qubits d’un individu qj0 représente la superposition linéaire de tous
les états possibles avec la même probabilité.
Etape 02 : après l’initialisation de Qk(0), l’opération de mesure est appliquée sur les
qubits de chaque individu qj0 de Qk(0) afin de produire des solutions binaires
constituant la population classique Pk(0), où Pk(0) = {x10, x20, …, xn0} pour la
génération t = 0. Chaque solution binaire xj0 est générée en appliquant la fonction
mesure sur qj0.
Etape 03 : chaque solution binaire xj0 de Pk(0) sera évaluée en fonction du problème à
résoudre.
Etape 04 : les solutions initiales de la population globale P(0) sont remplies par toutes
les solutions de chaque Pk(0), où P(0) = {x10, x20, …, xn0, …, xN0}, et N= (n*s) est la
taille de population globale de l’AEIQM. Ensuite, les solutions non dominées de P(0)
seront copiées dans l’archive A(0), où A(0) = {a10, a20, …, al0}, tel que l est la taille
courante de l’archive (l ≤ N).
Etape 05 : le critère de terminaison utilisée dans la boucle (tant que) est généralement
le nombre maximum de génération.
Etape 06 et 07 : les solutions binaires de Pk(t) seront formées par des multiples
observations des qubits grâce à la fonction de mesure, comme dans l’étape 02, puis
chaque solution binaire sera évaluée. En se basant sur le principe de dominance, xjt
sera remplacée par la meilleure solution xot, où o est l’indice de l’observation.
Etape 08 : les individus de la population Pk(t-1) ∪ Pk(t) de taille 2n seront triés par le
tri rapide des solutions non dominées où seulement n individus seront sélectionnés
après avoir calculé la distance de surpeuplement (crowding). La procédure de tri
rapide des solutions non dominées se déroule comme suit : les solutions non dominées
du premier front F1 seront sauvegardées temporellement pour chercher d’autres
solutions non dominées du front suivant. Cette procédure sera répétée jusqu’à ce que
tous les individus soient classés.
Le calcul de la distance de crowding estime la densité de chaque individu. Cette
information de densité sera utilisée pour sélectionner des individus de la population

51
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

pour la prochaine génération. La distance de crowding d’un individu repose sur la


longueur moyenne des côtés du parallélépipède qui représente les sommets des voisins
les plus proches.
Etape 09 : les n premiers individus (les supers classés) dans une génération restent
dans Pk(t) alors que les autres seront enlevés. Les individus quantiques de Qk(t) seront
par conséquent réorganisés en correspondance avec les individus de Pk(t). Cette
dernière devient la population des parents dans la prochaine génération, et Qk(t) sera
mise à jour en fonction de la stratégie de rotation des qubits adoptée.
Etape 10 : P(t) sera remplie par toutes les solutions de chaque Pk(t).
Etape 11 : seules les solutions non dominées dans A(t-1) ∪ P(t) construisent A(t). Si le
nombre de solutions non dominées est plus grand que la taille de population globale,
A(t) sera remplie aléatoirement par des solutions non dominées dans A(t-1) ∪ P(t)
jusqu’à ce que la valeur de l devienne égale à N.
Etape 12 : la migration aléatoire globale est exécutée où toutes les solutions dans
chaque population référence Rk(t) seront remplacées par des solutions de A(t) choisies
au hasard, où Rk(t) = {r1t, r2t, …, rnt}. Nous notons que les solutions de Rk(t) sont
utilisées comme une référence pour mettre à jours les individus quantiques, qui sont
équivalent aux meilleures solutions de Bk(t) [39]. Ce processus joue un rôle similaire à
la migration globale d’AEIQ. Cependant, elle est différente dans la mesure où la
méthode de remplacement par des solutions aléatoires maintient plusieurs meilleures
solutions globales telles qu'elle peut préserver la diversité pour les PMO. En outre, la
migration aléatoire globale se produit chaque génération, à savoir la période de
migration globale est 1.
Etape 13 : les valeurs de performance de rjt et xjt dans chaque sous-population seront
comparées afin de décider le sens des mises à jour des individus quantiques. Pour ce
faire, l’utilisation d’une porte quantique adéquate est nécessaire. La porte la plus
utilisée dans ce contexte est celle de rotation U(∆θ) où les mises à jour des qubits sont
effectuées comme suit [39] :
ˆAH = h(∆’) ∙ ˆAHJ
cos(∆’) sin(∆’)
(∆’) = ” š
sin(∆’) cos(∆’)
où, ∆θ est l’angle de rotation de chaque individu quantique comme illustré dans la
figure 3.12.

52
Algorithmes évolutionnaires inspirés-quantiques Chapitre III

Figure 3.12. La porte de rotation.


Conclusion
Afin de s’adapter avec le monde quantique, nous avons présenté dans ce chapitre les
différents concepts et principes de l’informatique quantique, qui à son tour offre un gain
éminent en temps de calcul, et une capacité énorme au niveau du traitement et de stockage des
données. Par ailleurs, la difficulté de construction des ordinateurs quantiques a permis aux
chercheurs de trouver de nouvelles approches et techniques de calcul en combinant des
principes issus de l’informatique quantique avec des calculs classiques. Les AEIQ est un très
bon exemple de telle hybridation. En effet, les AEIQ peuvent d’une part explorer l’espace de
recherche avec un nombre très réduit d’individus où nous pouvons effectuer plusieurs
mesures sur un même individu, et d’autre part d’exploiter cet espace de recherche pour
obtenir une solution globale dans un temps très raisonnable. L’évolution de ces algorithmes a
permis leur extension pour supporter la résolution des PMO où les résultats expérimentaux
effectués dans [45] ont montré la découverte de solutions proches du front de Pareto optimale
en maintenant une très bonne répartition de l’ensemble des solutions non dominées.
Dans le chapitre qui suit, nous allons présenter notre contribution qui consiste à faire
paralléliser et distribuer le processus d’évolution des AEIQ et des AEIQM afin d’aller encore
plus vite.

53
Chapitre IV

o Introduction
o Motivations et objectifs
o Adaptation des AEIQ/AEIQM

Parallélisation pour supporter un traitement


parallèle-distribué

et distribution o
o
Architecture du système.
Conception du système
o Implémentation du système.
des algorithmes o Utilisation du système.
o Résultats des expérimentaux.

évolutionnaires o Conclusion

inspirés-
quantiques
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

4.1. Introduction
Nous avons vu dans le chapitre précèdent que les AEIQ se sont imposés comme un outil
puissant pour la résolution des problèmes d’optimisation. En fait, la capacité de ces
algorithmes pour subir des traitements parallèles lors de leur exécution nous a motivé à
réfléchir de concevoir d’autres variantes pour améliorer le rendement de ces algorithmes, que
ce soit au niveau des performances de calcul, ou en termes d’efficacité des solutions. Partant
de ce contexte, une nouvelle adaptation des AEIQ est proposée afin qu’ils supportent une
exécution dans un environnement parallèle et/ou distribué pour la résolution des
problèmes d’optimisation combinatoire mono et multi-objectif. Deux variantes d’adaptation
ont été proposées : la première est purement parallèle rendant les AEIQ exécutables sur des
machines multiprocesseurs (comme les processeurs multi-cœurs, les processeurs GPU,
CUDA…etc.) ; la deuxième est mixte en combinant le vrai parallélisme (comme dans la
première variante) et la distribution du calcul sur des machines distantes. Pour la validation de
ces variantes, nous nous sommes comptés sur des problèmes d’optimisation combinatoires
académiques tels que le problème du sac à dos mono et multi-objectifs, les problèmes
d’optimisation des fonctions numériques …etc.
Nous allons commencer tout d’abord par la présentation de nos algorithmes proposés en
introduisant leurs architectures. Ensuite, nous abordons l’étape de conception et
d’implémentation de nos algorithmes. Enfin, nous clôturons le chapitre par une série
d’expérimentations ainsi que l’ensemble des résultats obtenus afin de montrer l’utilité de nos
travaux de recherche.

4.2. Motivation et objectifs


Malgré l’évolution croissante dans la construction des calculateurs, le besoin en performance
demeure toujours un obstacle du fait que les applications sont devenues de plus grandes tailles
ce qui nécessite un traitement des données et des calculs de façon plus fiable et plus rapide.
Toutefois, il est possible de rendre un programme plus puissant soit en perfectionnant son
algorithme soit en augmentant la vitesse de la machine sur laquelle il s’exécute, ou encore
combiner les deux où l’on peut paralléliser et distribuer les calculs en se comptant sur des
machines puissantes.
En fait, il existe quelques outils qui permettent la résolution des problèmes multi-objectifs
comme par exemple la plateforme PradisEO qui est dédiée à la conception des
métaheuristiques parallèles / distribuées, mais qui ne n’incorporent pas les AEIQ dans leur
architectures. D’autre part, à notre modeste connaissance, nous étions incapables de trouver

54
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

des travaux de recherche qui mettent l’accent sur la parallélisation et la distribution des
AEIQM. C’est ce point qui nous a encouragés à choisir cet axe de recherche en essayant de
développer de nouveaux algorithmes et outils puissants destinés à la résolution des PMO et
même mon-objectif sur des environnements parallèles et/ou distribués, sachant que l’efficacité
des résultats obtenus dans ce contexte nécessite un temps de calcul énorme notamment pour
de grandes instances des problèmes (comme les Big Data par exemple) ce qui rend
l’utilisation des ressources parallèles et distribuées indispensable. De ce fait, la recherche des
meilleures solutions par des métaheuristiques est tout à fait justifiée. Sachant que les AEIQ
sont des algorithmes gourmands en temps de calcul, notamment pour l’étape d’évaluation des
individus des populations, nous visons à concevoir une métaheuristique parallèle et/ou
distribuée exploitant les structures et les modèles du vrai parallélisme ainsi que les
infrastructures de calcul intensif comme les clusters de calculs pour assurer :

La généricité : ce nouvel environnement doit supporter la résolution d’un grand


nombre de classes de problèmes d’optimisation combinatoires mono et multi-objectifs
en utilisant les mêmes algorithmes. L’utilisateur n’a donc que de concentrer ces efforts
à l’implémentation des problèmes d’optimisation alors que notre application en
s’occupe du reste.
L’extensibilité : lors de la distribution des calculs aux ressources, nous pouvons
diminuer et augmenter le nombre de serveurs de calculs.
La performance : nous aurons une haute performance de calcul au niveau de temps
d’exécution grâce à l’utilisation des infrastructures de calcul intensif.
L’efficacité : nous pouvons facilement adapter les paramètres influant le temps
d’exécution comme les tailles des populations par exemple, ce qui permet d’avoir une
très bonne exploration de l’espace de recherche.
Multi-utilisateurs : avec ce nouvel environnement, les utilisateurs peuvent se connecter
et envoyer leurs calculs simultanément.

4.3. Adaptation des AEIQ/AEIQM pour supporter un traitement parallèle-


distribué
Dans cette section, nous allons présenter la structure globale des nouveaux algorithmes
proposés pour la résolution des problèmes d’optimisation combinatoire.

55
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

4.3.1. Algorithmes proposés


Pour des problèmes d’optimisation réels ou académiques, l'exécution d'un cycle des
AEIQ/AEIQM avec une large population exige des ressources matérielles très élevées.
Généralement, cette exigence est due à la complexité de la phase de mesure, évaluation et
interférence des individus qui sont exécutées sur tous les individus d’une population,
notamment l’étape d’évaluation qui dépend du problème à optimiser. Pendant que, la manière
de lancer ces étapes en parallèle n’est pas la seule technique d’envisager la vraie
parallélisation des AEIQ/AEIQM. Il est néanmoins possible d’exploiter les différentes
ressources, en distribuant à chaque ressource disponible un sous-ensemble de calculs.
Dans ce contexte, nous avons conçu deux algorithmes génériques pour les problèmes
d’optimisation combinatoires, s’adaptant avec un environnement parallèle-distribué :

4.3.1.1. Algorithme évolutionnaires inspiré quantique parallèle-distribué (AEIQPD)


Cet algorithme est une adaptation de l’algorithme proposé par le l’inventeur Ham et Kim en
(cf.III.II.2), où s’intéresse à la résolution de plusieurs classes de problèmes d’optimisation
mono-objectif. La structure de l’AEIQPD est illustrée dans la figure ci-dessous :

t←0;
Initialiser Q(t) ;
Diviser la population quantique globale ‹(+) selon le nombre de serveurs m ;
Faire distribuer la population divisée ‹! (+) en associant chacune par un
serveur ;
Faire paralléliser
Produire ,! (+) par mesure d’états de ‹! (+) ;
Evaluer ,! (+) ;
Fin de parallélisation
Sauvegarder toutes les solutions en ,! (+) dans la population binaire
globale ,(+) ;
Sauvegarder la meilleure solution parmi P(t) dans B(t) ;
Tant que (le critère d’arrêt n’est pas satisfait) faire
t←t+1;
Diviser la population ‹(+ 1) selon le nombre de serveurs ;
Faire distribuer la population divisée ‹! (+ 1) en associant
Chacune par un serveur ;

56
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Faire paralléliser
Produire ,! (+) par mesure d’états de ‹! (+ 1) ;
Evaluer , (+) ;
Fin de parallélisation.
Sauvegarder toutes les nouvelles solutions en ,! (+) dans la
population ,(+) ;
Interférer Q(t) en utilisant une porte quantique sur Q(t-1) ;
Sauvegarder la meilleure solution parmi B(t-1) et P(t) dans B(t) ;
Fin Tant que

Figure 4.1. Description d’un AEIQPD.

4.3.1.2 Algorithme évolutionnaires inspiré quantique multi-objectif parallèle-distribué


(AEIQMPD)
Cet algorithme est une adaptation de l’algorithme proposé par le l’inventeur Ham et Kim en
(cf.III.III.1), où s’intéresse à la résolution de plusieurs classes de problèmes d’optimisation
multi-objectif. La structure de l’AEIQMPD est illustrée dans la figure ci-dessous :

+ ← 0
Initialiser la population quantique globale ‹(+) ;
Diviser la population quantique globale ‹(+) selon le nombre de serveurs
m;
Faire distribuer la population divisée ‹! (+) en associant chacune par u
serveur ;
Faire paralléliser
Produire ,! (+) par mesure d’états de ‹! (+) ;
Evaluer ,! (+) ;
Fin de parallélisation.
Sauvegarder toutes les solutions en ,! (+) dans la population binaire globale ,(+) ;

57
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Diviser la population évaluée ,(+) en sous-populations , (+) selon le nombre


de sous-populations k ;
Appliquer le fast non dominated sort sur la population ,(+) et copier les
solutions non-dominées de ,(+) dans la population d’archive s(+) ;
Tant que (non condition de terminaison) faire
début
+ ⟵ + m 1
Diviser la population ‹(+ 1) selon le nombre de serveurs ;
Faire distribuer la population divisée ‹! (+ 1) en associant chacune par
un serveur ;
Faire paralléliser
Produire ,! (+) par mesure d’états de ‹! (+ 1) ;
Evaluer , (+) ;
Fin de parallélisation.
Sauvegarder toutes les nouvelles solutions en ,! (+) dans la
population ,(+) ;
Diviser la nouvelle population évaluée ,(+) en sous-populations
, (+) selon le nombre de sous-populations ;
Appliquer le fast non dominated sort sur , (+) ∪ , (+ 1) et
calculer leur distance en exécutant le crowding ;
Extraire les nouvelles sous-populations ,′ (+) par les premiers
meilleures 8 solutions dans la population triée de taille 28 ;
Copier toutes les solutions de chaque sous-population ,′ (+) dans ,(+) ;
Reconstruire la population s(+) par les solutions non-dominées en
appliquant le fast non dominated sort sur s(+ 1) ∪ ,(+) ;
Migrer des solutions sélectionnées aléatoirement dans s(+) pour chaque
sous-population de référence (+) ;
Faire paralléliser
Mis à jour de ‹ (+) par les solutions de référence de (+) en
utilisation la porte de rotation quantique;
Fin de parallélisation.
Fin

Figure 4.2. Description d’un AEIQMPD.

58
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

4.4. Architecture du système


L’architecture de notre nouveau système prend en considération deux aspects importants : le
vrai parallélisme dans une même machine et la distribution de calculs sur des machines
distantes. Nous avons donc réalisé un nouveau système, qui permet aux utilisateurs de trouver
des solutions à leurs problèmes d’optimisation en garantissant l’efficacité et la performance
en temps de calcul. En conséquent, l’utilisateur peut faire ses calculs de manière plus
accélérée en lui offrant l’accès aux ressources (ensemble des machines d’ordinateurs
connectées par un réseau local LAN ou des infrastructures distantes de calculs intensifs
comme les clusters de calculs accédées via Internet). Une fois les calculs sont distribués sur
les serveurs, ces derniers ont la capacité d’effectuer des traitements parallèles grâce au
nombre élevé des processeurs dont il comporte chacun d’eux. Chaque serveur s’occupe alors
de traiter une sous-partie du calcul associé au problème en renvoyant les résultats aux
utilisateurs. L’architecture globale de notre système est illustrée dans la figure 4.4.

Figure 4.3. Architecture globale du système.

59
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Nous rappelons ici que les tâches de mesure, d’évaluation et d’interférence des individus
d’une population peuvent être facilement parallélisables. Il est donc possible s’il existe
plusieurs processeurs de mesurer, d’évaluer et d’interférer plusieurs individus d’une
population simultanément.
Plus pratiquement, l’idée de base de ce nouveau système consiste à diviser la population
quantique globale Q en plusieurs sous-populations globales selon le nombre des nœuds m du
cluster de calculs, où chaque sous-population globale est envoyée avec une instance du
problème à traiter à un nœud spécifique. Chaque nœud se charge alors à effectuer la
parallélisation des tâches de mesure et l’évaluation des individus de la sous-population reçue.
Une fois le calcul est terminé, chacun des nœuds renvoie ses résultats de calculs à l’utilisateur.
Pour la phase d’interférence, nous avons choisi à l’exécuter parallèlement au niveau de la
machine de l’utilisateur pour éviter d’une part l’accroissement du nombre de messages (trafic
sur le réseau) et de l’autre part la perte du temps du fait que sa durée n’est pas aussi longue, ce
qui peut influencer les performances d’exécution. La parallélisation de cette tâche a été faite
en divisant la population binaire globale P en sous-populations locales selon le nombre de
processeurs de l’utilisateur l. L’architecture détaillée de notre système est illustrée dans la
figure 4.4.

60
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Figure 4.4. Architecture détaillée du système.


En respectant le principe de l’architecture décrite en-dessus, nous avons implémenté notre
nouveau système dans un environnement parallèle / distribué selon la topologie maitre-
esclave en s’appuyant sur un réseau local d’ordinateurs LAN. Son principe de fonctionnement
est le suivant :

61
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Le site maître se charge à la répartition des calculs dont il a besoin sur l’ensemble des
sites esclaves et à l’application des opérateurs comme l’interférence, l’algorithme de
tri rapide des solutions non dominées…etc.
Les sites esclaves sont réservés à réaliser la grande quantité de calcul où ils se
chargent à effectuer la tâche de mesure et d’évaluation des individus de manière
parallèle.

Concernant l’échange de calculs au niveau de notre nouveau système, la communication peut


se faire en s‘appuyant sur un simple protocole de communication entre le site maitre et les
sites esclaves, ce protocole est basé sur deux primitives : Envoyer et Recevoir.
Bien que différents modèles ont leurs propres avantages et inconvénients, nous avons préféré
l’utilisation du modèle maître-esclave vu sa facilité de mise en œuvre en outre à son
adéquation de la nature des calculs manipulés dans le domaine de l’optimisation des
problèmes par métaheuristiques. L’architecture de ce modèle est montrée dans la figure 4.5.

Figure 4.5. Topologie du modèle maître-esclave.

4.5. Conception du système


La conception est une phase très importante qui précède l’implémentation de tout système. En
conséquence, nous nous sommes comptés sur les principes de l’approche orientée objet en
présentant la modélisation de notre système selon un ensemble de diagrammes de packages
dans la but d’obtenir une visualisation complète et une représentation graphique de haut
niveau de l’organisation des modules. Par ailleurs, vu le nombre considérable des classes

62
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

définies, il s’avère important de les découper en packages pour mieux comprendre leurs rôles
d’une part, et de faciliter la maintenance du code d’autre part. Notre système se composent de
cinq packages dont chacun contient un ensemble de classes et/ou de sous-packages, définis
comme suit :
4.5.1. Le package « Individu »
Ce package est illustré dans la figure 4.6. Il est principalement composé des quatre classes
suivantes :
La classe « GenericQIndividual » : étant donné la représentation d’une information
dans les AEIQ est le Qubit, cette classe mère permet de regrouper la structure globale
commune d’un individu quantique accompagnée par ses caractéristiques. Et comme un
individu quantique représente une solution possible d’un problème d’optimisation,
l’utilisation des interfaces prédéfinies Serializable et Cloneable du langage Java est
indispensable, où elle nous permet de transmettre un objet de type
GenericQIndividual à travers le réseau du cluster de calculs, pour afin d’appliquer
l’opération de mesure et d’évaluation de son performance.
La classe SingleObjectiveFitnessQIndividual : cette classe hérite la classe mère
GenericQIndividual. Elle est destinée spécialement pour les problèmes d’optimisation
mono-objectifs.
La classe MultiObjectiveFitnessQIndividual : nous avons vu dans le chapitre I (cf.
1.4) qu’il existe plusieurs problèmes d’optimisation qu’ils ont d’optimiser plus d’une
fonction-objectif. Pour cela, nous avons modélisé cette classe qui hérite de la classe
mère toutes les caractéristiques d’un individu quantique générique, où cette classe est
utilisée particulièrement pour des problèmes d’optimisation multi-objectif.
La classe Population : comme dans les AEIQ, une population est un ensemble des
qubits. Partant de cette définition, cette classe est le responsable de créer et gérer les
individus de la population globale ainsi que les sous-populations. Cette classe utilise
aussi les interfaces Serializable et Cloneable pour le transfert d’une part les sous-
populations globales aux nœuds du cluster pour faire leurs parallélisation et d’autre
part, pour garder la version originale d’une population à envoyer sur le réseau.

63
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Figure 4.6. Package d’individu.

4.5.2. Le package « Opérateur »


Ce package est illustré dans la figure 4.7. Il est essentiellement composé de :
L’interface IGenericOperators : Nous avons choisi de concevoir une interface
générique admettant plusieurs implémentations d’opérateurs d’interférence qui
peuvent être appliqués durant le processus évolutif.
La classe InterferenceOperator : dans les AEIQ, l’opérateur principal de variation
appliqué aux individus est celui d’interférence. Alors, Cette classe implémente
l’interface IGenericOperators.

64
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Figure 4.7. Package d’opérateur.

4.5.3. Le package « Problème »


Ce package est illustré dans la figure 4.8. Il est composé des classes et des sous-packages
suivants :
L’interface IGenericSolver : dans la littérature, il se trouve plusieurs problèmes
d’optimisation combinatoires, réels ou académiques. Et pour cela, nous avons
modélisé un problème par une interface générique à implémenter suivant le problème
d’optimisation combinatoire, que ce soit mono-objectif ou bien multi-objectif.
Le sous-package des problèmes mono-objectif : ce package contient des classes
pour des problèmes d’optimisation mono-objectif comme, le problème du sac-à-dos et
le problème max-one. Ces classes doivent implémenter l’interface IGenericSolver.
Le sous-Package des problèmes multi-objectif : il comporte évidemment un
ensemble de problèmes académiques implémentés dans le cadre multi-objectif comme
par exemple, le problème d’affectation des tâches, le problème du sac à dos multi-
objectifs…etc. Ce package contient également un autre package pour plusieurs
fonctions numériques. Toutes les classes de package des problèmes multi-objectifs
doivent implémenter l’interface IGenericSolver.

65
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Figure 4.8. Package de problème.

4.5.4. Le Package « Topologie »


Le package topologie illustré dans la figure 4.9 est une abstraction du modèle maître-esclaves.
Il est principalement constitué des classes suivantes :
La classe SharedObjects : Vu que le client doit envoyer des objets à évaluer au
serveur à travers le réseau, il est nécessaire d’envoyer un objet qui contient les
données nécessaires pour effectuer une opération.
La classe Clients : comme le serveur est lié avec plusieurs clients, donc on a créé
cette classe pour gérer la communication (envoie et réception des données) entre le
serveur et les différents clients.
La classe Servers : cette classe est responsable de gérer les demandes de connexion
des clients. Le serveur reste en état d’écoute où il satisfait les demandes des clients
simultanément à l’héritage de la classe prédéfinie Thread du langage Java et qui nous
permet de lancer plusieurs tâches en même temps. Donc, lorsqu’une demande d’un
client arrive, la classe serveur ouvre une connexion avec celui-ci et crée un esclave
pour lui servir.
La classe Slaves : cette classe est responsable au calcul et d’évaluation parallèle des
objets envoyés (SharedObjects) par le client. La classe Slaves peut traiter en parallèle
ces objets et lui renvoyant les résultats des calculs demandés.

66
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Figure 4.9. Package de topologie.

4.5.5. Le package « Processus »


Ce package est illustré dans la figure 4.10. Il se compose des 4 classes importantes pour le
processus de développement du notre nouveau système.
La classe ParallelSequentialQIEA : c’est la classe responsable à l’évolution du
processus de résolution des problèmes d’optimisation mono-objectif dans une
architecture parallèle-séquentielle. Elle a besoin d’une part, de connaitre la structure
d’un individu quantique en s’appuyant sur la classe
SingleObjectiveFitnessQIndividual et d’autre part, d’initialiser la population globale
en utilisant la classe Population. En outre, elle nécessite un opérateur d’interférence
défini par l’interface IGenericOperators. Le processus doit également avoir un
problème à optimiser en utilisant l’interface IGenericSolver. L’utilisation des
interfaces permet donc de créer un processus abstrait.
La classe ParallelDistributedQIEA : cette classe hérite les structures et les
fonctionnalités de la classe mère ParallelSequentialQIEA. Elle est responsable à
l’évolution du processus de résolution des problèmes d’optimisation combinatoire
mono-objectif dans une architecture parallèle-distribuée. Cette classe doit redéfinir le
fonctionnement du processus pour l’adapter au nouvel environnement, où il découpe
la population globale en sous-populations globales selon le nombre de nœuds du

67
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

cluster, puis distribuer chacune d’elles à un nœud spécifique accompagnée par un


problème à optimiser. Ces deux objets distribués sont mis sous forme d’un objet de la
classe SharedObjects.
La classe ParallelSequentialMQIEA : c’est la classe responsable à l’évolution du
processus de résolution des problèmes PMO (fast nondominated sort, crowding,
migration, …) dans une architecture parallèle-séquentielle. Est très similaire à la classe
ParallelSequentialQIEA.
Class ParallelDistributedMQIEA : Elle est responsable à l’évolution du processus
de résolution des problèmes d’optimisation combinatoire multi-objectif dans une
architecture parallèle-distribuée. Cette classe hérite les structures et fonctionnalités de
la classe mère ParallelSequentialMQIEA. Elle est très similaire à la classe
ParallelDistributedQIEA.

68
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Figure 4.10. Package de processus.

4.6. Implémentation du système:


L’implémentation est la phase de la concrétisation d’un système en passant de l’abstrait vers
le concret. Pour la réalisation du notre nouveau système, nous avons besoin aux outils et
langages suivants :

69
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

4.6.1. Les outils de parallélisation des calculs


Les outils que nous avons utilisés pour réaliser ce nouveau système sont :

La bibliothèque Ateji PX : c’est une bibliothèque conçue pour la programmation


parallèle en java [95]. Elle est destinée à faciliter le calcul parallèle sur plusieurs
processeurs comme les processeurs multi-cœurs, les processeurs GPU …etc. Cette
bibliothèque fonctionne sous l’environnement d’Eclipse [94], telle qu’elle ne modifie
pas beaucoup le processus du développement en raison du petit nombre de primitives
parallèles, ce qui rend la programmation parallèle simple, intuitive, efficace et facile à
apprendre.
Dans la littérature, il n’existe que quelques outils de parallélisation et distribution de
calculs pour les métaheuristiques comme par exemple le Framework ParadisEO
(Parallel and Distributed Evolving Objects) [102], développé en C++, mais qui ne
supporte pas les traitements inspirés-quantique. Le choix de la bibliothèque Ateji PX
reporte alors à :
Comme Ateji PX est basée sur le langage java, donc un nombre très limité de
nouvelles instructions et primitives à apprendre pour la parallélisation.
Simplicité de leur intégration et leur utilisation.
Si on travaille sur une machine multi-cœur, Ateji PX nous permet à utiliser la
puissance totale de notre la machine par la parallélisation de plusieurs tâches
sur les différents processeurs simultanément.

Pour bien avoir une idée sur la parallélisation des calculs par la bibliothèque Ateji PX,
nous présentons l’exemple illustratif suivant :
Exemple
Dans le cas de programmation séquentielle, pour faire l’exécution d’un code
séquentiel, les instructions sont séparées par ‘ ;’ comme suit :
a=a+1;b=b+1
Le compilateur va incrémenter premièrement la valeur de a, puis incrémenter la valeur
de b. Dans le cas de la programmation parallèle, pour faire l’exécution d’un code
parallèle, les instructions sont séparées par ‘ | | ’ comme suit :
a=a+1||b=b+1
Le compilateur va donc incrémenter la valeur de a et b en parallèle, c’est-à-dire dans
ordre quelconque.

70
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

4.6.2. Langage de programmation


Le choix du langage de programmation pour le développement de ce nouveau système est
influencé par plusieurs besoins comme la dépendance du langage en niveau logiciel comme le
système d’exploitation et en niveau matériel, comme le type de la machine utilisée pour le
développement. Le langage doit offrir également la portabilité du code, pour l’exécuter sur
différents systèmes d’exploitations (Windows, Mac, Unix, …) et sur différentes machines
(Ordinateur, Cluster, …). De fait, le langage qui assure l’ensemble de nos besoins c’est bien le
langage Java. Alors, le choix de ce dernier est justifié par [100]:
La facilité de leur utilisation à cause de son extensibilité par une richesse de
bibliothèques.
La machine virtuelle (Java Virtual Machine) rend le code en dépendance totale du
système d’exploitation.
Java est un langage de programmation purement orienté objet de haut niveau.
Il facilite la création des applications réseaux.
C’est l’un des langages de programmation multithread, ce qui nous permet de
développer des programmes multithread (multitâches).

Comme étant java permet de développer des applications parallèles et distribuées,


l’implémentation de notre nouveau système a besoin d’utiliser d’une part, les sockets qui
assurent l’ouverture des connexions entre les sites esclaves et le site maître par un réseau
LAN ou WAN tout en permettant l’échange des objets et messages entre eux et d’autre part,
les threads afin de permettre au site maître de pouvoir traiter plusieurs messages en
concurrence.

4.6.3. Environnement de développement


L’environnement de développement utilisé pour la réalisation de notre nouveau système est
celui d’Eclipse. Ce dernier, est un IDE, Integrated Development Environment (ou en français
environnement de développement intégré) principalement écrit en java et qui permet de
simplifier la programmation. En outre, il supporte la programmation sous différents langage
de programmation comme Java, C, C++, XML,…, etc. Eclipse est un éditeur libre (open
source), composé de sous-systèmes d’une forme des plug-ins. Le choix de cet environnement
est lié par les points suivants [99] :
Extensible grâce à la notion du plug-in.
Est un environnement multi-langages et multiplateformes.
Permet le développement des propres plug-ins.

71
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Offre un ensemble des raccourcis pour simplifie la tâche de développement.

La raison principale d’utiliser cet environnement est que la bibliothèque de parallélisation


Ateji PX elle-même est un plug-in intégré implicitement dans la version d’Eclipse Helios 3.6.
4.7. Utilisation du système
Nous allons aborder dans cette partie la description de notre système depuis ses interfaces
graphiques. Deux sortes d’interfaces sont à utiliser : la première est destinée à la résolution
des problèmes d’optimisation mono-objectif, et l’autre pour la résolution des PMO (voir les
figures 4.11 et 4.12). Chaque interface est constituée des zones suivantes :

La première zone concerne le processus de résolution des problèmes d’optimisation où


nous trouvons des processus s’exécutant sur différentes architectures : séquentielle,
parallèle-séquentielle et parallèle-distribuée.
La deuxième zone est réservée à la saisie des paramètres de chaque problème
implémenté.
La troisième zone concerne les paramètres de chaque processus choisi de la première
zone pour la résolution d’un problème d’optimisation.
La quatrième zone consiste à la gestion de l’exécution où l’on peut lancer l’exécution
d’un processus de résolution ou encore de l’arrêter.
La cinquième zone est un afficheur de résultat qui dépend du problème à résoudre.
La sixième zone vise à exposer les résultats de résolution du problème sous frome des
courbes.

72
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Figure.4.11. Interface graphique pour la résolution des problèmes mono-objectif.

Figure.4.12. Interface graphique pour la résolution des problèmes multi-objectif.

73
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

4.8. Résultats expérimentaux


Dans cette partie, nous allons exposer quelques résultats expérimentaux pour valider nos
algorithmes proposés. Deux tests ont été réalisés : la première touche à l’aspect efficacité ; la
deuxième touche à l’aspect performance. Tous les tests ont été générés sur le problème
académique du sac à dos multi-objectifs en 0/1 (MultiObjective Knapsack 0/1) avec deux
objectifs. Les ressources matérielles et logiciels étant une machine dotée d’un processeur Intel
i7 core avec 4 cœurs avec 4Go de RAM, Windows 8, JDK 1.7, Eclipse Helios 3.6.
4.8.1. Enoncé du problème de sac à dos multi-objectifs en 0/1 (MOKP 0/1)
Avant d’exhiber nos résultats expérimentaux, nous devons d’abord présenter la description du
problème d’optimisation adopté. Le problème choisi est le problème du sac à dos multi-
objectifs en 0/1. Il est considéré comme l’un des problèmes combinatoires les plus étudiés lors
de la phase de validation. Son principe est le suivant :

Soit un ensemble d’objets où à chacun d'entre eux est associé un profit et un poids. Le
problème du sac à dos multi-objectif en 0/1 consiste à sélectionner un sous-ensemble d'objets
pour le mettre dans des sacs à capacité limitée en maximisant une fonction multi-objectifs,
exprimée en fonction des valeurs du profit, tout en respectant un ensemble de contraintes liées
au dépassement de la capacité des sacs. Le problème du MOKP 0/1 peut être défini
formellement de la manière suivante [4] :

A
Maximiser 2 A = ∑6? ž6 6 j = 1, …, m Telle que

∑6? >6• 6 ≤ ¡• ¢ = 1, … , ˆ Et (4.1)

6 ∈ .0, 13 5 = 1, … , 8

Où :
n est le nombre d’objets.
xi désigne la variable de décision.
m est le nombre d’objectifs.
zi est la ième composante de la fonction multi-objectifs Z.
q indique le nombre de contraintes du sac à dos du problème.
4.8.2. Test d’efficacité
L’objectif de ce test est d’étudier l’effet de changement des tailles des populations sur la
qualité des solutions lors de la résolution du problème étudié. Dix instances de l’AEIQM ont
été exécutées, pour chacune les paramètres ont été choisis comme suit :

74
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

Utilisation du problème de sac à dos avec 1000 objets.


Une variation sur la taille de la population [10 - 1000].
Processus d’exécution :
Exécution du processus évolutionnaire pendant 100 générations.
A la fin de l’exécution, nous avons collecté les solutions non-dominées.
L’objectif de ce test est de comparer la relation de dominance entre les différentes instances
exécutées afin de pouvoir juger l’efficacité de l’algorithme en fonction de la taille des
individus. Ainsi nous avons calculé pour chaque instance les nombre de solutions qui sont
dominés par des solutions des autres instances. Les résultats obtenus sont représentés dans les
tables 4.1 et 4.2.

10 20 30 40 50 60 70 80 90 100 200 300 400 500 1000


10 12 13 7 13 18 16 18 19 12 24 18 21 17 25
20 3 8 13 16 19 10 17 15 15 23 18 22 23 29
30 2 10 8 8 15 7 13 14 15 21 14 18 17 28
40 6 23 26 15 26 20 29 28 29 33 32 30 30 37
50 5 17 21 12 24 12 20 20 25 29 26 28 30 35
60 1 7 11 5 9 10 15 17 15 23 13 25 17 31
70 14 26 28 24 31 35 28 32 28 35 24 39 39 41
80 4 13 16 12 10 18 14 15 24 25 17 27 26 23
90 5 12 18 15 18 22 10 20 20 23 24 17 31 31
100 7 10 13 13 17 23 18 15 23 29 16 27 21 36
200 5 11 16 11 11 14 16 15 14 32 15 32 22 32
300 4 17 26 17 23 30 23 27 32 35 43 52 43 52
400 1 10 16 10 8 10 10 18 16 16 26 12 12 27
500 3 9 7 9 10 19 14 15 15 21 28 15 37 42
1000 0 3 4 1 4 8 7 6 6 10 27 5 18 11

Table 4.1. Matrice de nombre des solutions dominées

|pop| 10 20 30 40 50 60 70 80 90 100 200 300 400 500 1000

Nbr.SND 25 33 35 43 42 40 51 46 53 51 64 76 56 57 74

Table 4.2. Table de nombre des solutions non-dominé

75
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

80

70
Nombre de solutions non-dominées

60

50

40 Solution
Non-1
Série
30 Dominée

20

10

0
0 200 400 600 800 1000 1200
Le nombre de popolation

Figure 4.13. Nombre des solutions non-dominées des instances exécutées.

4.8.3. Test de performance

L’objectif de ce test est d’étudier l’effet de changement des tailles du problème en fonction du
nombre de processeurs utilisé. L’objectif étant de déduire l’accélération atteignable. Pour ce
faire, nous avons changé le nombre de processeurs utilisé dans une machine multi-cœurs. Les
figures 4.14 et 4.15 montrent les résultats obtenus.

76
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

5000

4500

4000

3500

3000
1 processeur
Ms 2500
2 processeurs
2000
3 processeurs
1500
4 processuers
1000

500

0
Sac avec Sac avec Sac avec Sac avec Sac avec Sac avec
100 Objets 500 Objets 1000 2000 3000 4000
Objets Objets Objets Objets

Figure 4.14. Comparaison des temps d’exécution de la partie parallélisée en fonction du


nombre de processeurs.

12000

10000

8000

1 processeur
Ms 6000
2 processeurs

4000 3 processeurs
4 processuers
2000

0
Sac avec Sac avec Sac avec Sac avec Sac avec Sac avec Sac avec
100 500 1000 2000 3000 4000 5000
Objets Objets Objets Objets Objets Objets Objets

Figure 4.15. Comparaison des temps d’exécution de la tâche séquentielle (la moyenne de
10 générations) en fonction du nombre de processeurs.

77
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

4.8.4. Discussion
En ce qui concerne l’aspect efficacité, il nous semble clairement que le nombre de solutions
non-dominées augmente avec l’augmentation de la taille de la population. Cela est excepté du
fait que l’espace de recherche n’a pas été bien exploré. Il semble aussi que l’utilisation des
populations de taille plus grandes que 200 et 300 n’a pas amélioré le rendement de
l’algorithme car le nombre de solutions non-dominées a abouti une certaine stabilité. Il est
probable que le nombre de génération peut jouer un rôle pour la vitesse de convergence.
Concernant la qualité des solutions retenues, nous voyons clairement que la qualité des
solutions a été améliorée quand le nombre d’individu est augmenté. Pour preuve, il suffit de
consulter la table de dominance (voir la table 4.1), la fraction des solutions dominées diminue
quand le nombre d’individus est augmenté. Une conclusion est que l’utilisation des
populations de grande taille peut améliorer la qualité des solutions retenues avec une vitesse
de convergence élevée. Cependant, cela augmentera certainement le temps d’exécution. Pour
cela nous avons réalisé le deuxième test pour calculer l’accélération atteignable en s’appuyant
sur des architectures parallèles.

De manière générale les figures illustrée ci-dessus (4.14 et 4.15), nous observons nettement
une différence entre le temps moyen d’une génération exécutée en parallèle et celui d’une
instance exécutée en séquentiel. L’accélération est généralement définie par la formule :
A = le temps de la tâche sans utiliser le parallélisme / le temps de la tâche en utilisant le
parallélisme.
La table ci-dessous résume les accélérations atteintes en fonction du nombre des processeurs.

1 processeur 2 processeurs 3 processeurs 4 processeurs


100 objets 1 1.17 1.17 1.17
500 objets 1 1.02 0.84 0.59
1000 objets 1 0.93 0.83 0.64
2000 objets 1 1.23 1.16 0.91
3000 objets 1 1.37 1.35 1.14
4000 objets 1 1.42 1.49 1.32
5000 objets 1 1.47 1.59 1.43

Table 4.3. L’accélération en niveau de génération parallèle.

78
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques

La question qui se pose ici est pourquoi l’accélération est assez-faible ? La réponse est claire :
la partie de l’algorithme qui ne peut être parallélisée (algorithme de tri…) est très grande par
rapport à la partie parallélisée (l’évaluation et la mesure). Pour preuve, nous avons recalculé
l’accélération au niveau de la partie séquentielle.

1 processeur 2 processeurs 3 processeurs 4 processeurs


100 objets 1 1.27 1.12 0.98
500 objets 1 1.52 1.85 2.17
1000 objets 1 1.60 2.10 2.44
2000 objets 1 1.62 2.06 2.53
3000 objets 1 1.69 2.18 2.75
4000 objets 1 1.69 2.23 2.85
5000 objets 1 1.69 2.25 2.47

Table 4.4. L’accélération en niveau de génération séquentielle.

Donc lorsqu’on a augmenté le nombre d’objets mis dans le sac, le temps d’exécution est
réduit par rapport aux nombre de processeurs, ce qui signifie que pour obtenir une haute
performance d’exécution, il suffit que la taille du problème soit assez importante en limitant
autant que possible sa partie séquentielle qui ne peut être parallélisée.
4.9. Conclusion
Dans ce chapitre, nous avons proposé deux variantes d’AEIQ / AEIQM qui tournent sur des
architectures parallèles et/ou distribuées. L’objectif est donc d’offrir un environnement
d’exécution efficace, performant, générique et extensible pour la résolution des problèmes
d’optimisation.
La réalisation de cet outil a nécessité l’utilisation des technologies s’incluant sous la catégorie
des calculs à haute performance (High Performance Computing ou HPC en abrégé) comme la
bibliothèque Ateji PX, le langage Java et l’environnement Eclipse. Les classes implémentées
ont fortement utilisé la notion de généricité à travers la modélisation par des interfaces,
permettant ainsi de rendre l’application comme un puzzle admettant de remplacer une pièce
par une autre sans affecter le corps des algorithmes développés.

Enfin et pour des raisons de validation, nous avons effectués deux tests expérimentaux
touchant à l’aspect performance et efficacité où les résultats ont été très satisfaisant

79
Conclusion et perspectives

Au cours de ce travail, nous avons adressé un sujet de recherche qui porte sur la résolution des
problèmes d’optimisation (mono et multi-objectifs) par AE, en particulier les AEIQ et les
AEIQM. De manière générale, les AE s’inspirent de la théorie de la sélection naturelle
élaborée par Charles Darwin pour résoudre de différents problèmes. Ils consistent à faire
évoluer des populations de solutions candidates (individus) codés sous une forme adéquate au
problème traité ; le but étant la recherche de nouvelles solutions de plus en plus viables en
utilisant des opérateurs évolutionnaires. En particulier, les AEIQ reposent sur des principes
issus de l’informatique quantique pour la représentation d’individus et même pour les
opérateurs d’exploration et d’exploitation des espaces de recherche. Sur le plan pratique, de
nombreux résultats ont montré leur efficacité et leur performance par rapport à d’autres
classes d’AE.
Afin d’aller encore plus vite, nous avons étendu les AEIQ et les AEIQM pour supporter des
traitements parallèles et/ou distribués tournant sur des architecture allant de simples machines
jusqu’aux clusters des machines connectées en passant par les architectures modernes comme
les processeurs GPU et CUDA. Pour cela, nous avions besoin d’outils qui assurent le support
de calcul en vrai parallélisme, c’est-à-dire qui exploitent le maximum des ressources de la
machine. Par conséquent, l’implémentation a été réalisée en langage Java doté d’une
bibliothèque qui assure la programmation parallèle, et ce vu ses nombreux avantages. En fait,
les résultats expérimentaux ont montré que la parallélisation et la distribution des calculs
peuvent atteindre une bonne accélération tout en gardant l’aspect efficacité.
Comme perspective à ce travail, nous planifions à l’exécuter sur des clusters de calculs afin de
détecter les limites de l’accélération atteignable dû au trafic des paquets dans le réseau. Un
autre point essentiel, est la tolérance aux panes lors d’une exécution distribuée. Nous pensons
donc à intégrer des mécanismes pour supporter la dégradation en exécutant des algorithmes de
régénération des plans d’exécutions comme la régénération des individus perdus et la
redistribution de ceux-ci.
Enfin, nous espérons que notre application sera utile à notre département de n’être qu’un
début pour développer d’autres

80
Bibliographie

[1] Alaya, I., (2009). “Application de m-ACO au problème du sac à dos multidimensionnel
multi-objectif ”. Thèse de doctorat : Informatique. Université des Sciences et
Technologie de Toulouse I. France. 170 p.
[2] Annie, C., (1991). “Glossaire de génétique moléculaire et génie génétique”. Institut
National de la Recherche Agronomique. Paris. ISBN : 2-7380-0328-1.
[3] Bandyopadhyay, S., and Mukherjee, A., (2014). “An algorithm for many-Objective
optimization with reduced objective computations: A study in differential evolution”.
IEEE Transactions on Evolutionary Computation.
[4] Barichard, V. (2003). “Approches hybrides pour les problèmes multiobjectifs”. Thèse
de doctorat : Informatique. Université d'Angers. France. 162 p.
[5] Basseur, M. (2014). “Analyse et conception de recherches locales génériques pour
l’optimisation combinatoire à un ou plusieurs objectifs”. Mémoire d’habilitation à
diriger des recherches : Informatique. Université d'Angers. France. 180 p.
[6] Belhoul., L. (2014). “ Résolution de problèmes d’optimisation combinatoire mono et
multi-objectifs par énumération ordonnée”. Thèse de doctorat : Analyse et
Modélisation de Systèmes pour l’Aide à la Décision. Université Paris-Dauphine. 140
p.
[7] Benhamed, N., (2002). “Optimisation de réseaux de neurones pour la reconnaissance
de chiffres manuscrits isolés : sélection et pondération des primitives par algorithmes
génétiques”, Ecole de technologie supérieure : Génie de la production automatisée.
Montréal : Université de Montréal, Québec. 137 p.
[8] Benlahrache, N. (2007). “Optimisation multi-objectif pour l’alignement multiple de
séquences”, Mémoire de Magister : Génie Logiciel et Intelligence Artificielle.
Université Mentouri de Constantine, Algérie. 134 p.
[9] Bercachi, M., (2010). “Algorithme évolutionnaire à états pour l'optimisation difficile”,
Thèse de doctorat : Informatique. Nice : Université Sophia Antipolis de Nice, France.
191 p.
[10] Berghman, L, Goossens, D, Leus, R., (2009). “Efficient solutions for mastermind
using genetic algorithms”, Computers & Operations Research, 36 : 1880–1885.
[11] Berro, A. (2001). “Optimisation multiobjectif et stratégies d’évolution en
environnement dynamique”. Thèse de doctorat : Informatique. Université des Sciences
et Technologie de Toulouse I. France. 170 p.

[12] Borisovsky, P, Dolgui, A, and Eremeev, A., (2009). “Genetic algorithms for a supply
management Problem : Mip-recombination vs greedy decoder. European Journal of
Operational Research”. 195 : 770–779.
[13] Chabane, B., Basseur, M., et Hao, J.K. (2015) .“Cas pratique pour le problème du
sac-à-dos multiobjectif : Conception, modélisation, tests et analyse”.16éme conférence
de la Recherche Opérationnelle et Aide à la Décision Française.
[14] Chung, J.W, Oh, S.M, and Choi, I.C., (2009). “A hybrid genetic algorithm for train
sequencing in the korean railway”. Omega. 37 : 555–565.
[15] Collette, Y, et Siarry, P. (2002). “Optimisation multiobjectif ”. Eyrolles. ISBN-
13: 978-2212111682.
[16] Darwin, C., (1859). “On The Origin of Species”.
[17] Deb, K., Pratap, A., Agrawal, S., et Meyarivan, T. (2002). “A fast and elitist
multiobjective genetic algorithm: NSGA-II”. IEEE Transactions on Evolutionary
Computation. 6(2):182–197 p.
[18] Deutsch, D. (1985). “Quantum theory, the Church-Turing principle and the universal
quantum computer”. Proceedings of the Royal Society of London. A4OO: 97-117 p.
[19] Deutsh, D., and Jozsa, R. (1992). “Rapid solution of problems by quantum
computation”. Proceedings of the Royal Society of London SER. A439, 553-558 p.
[20] Dhaenens, C. (2005). “Optimisation combinatoire multi-objectif : Apport des
méthodes coopératives et contribution à l'extraction de connaissances”. Thèse de
doctorat : Modélisation et simulation. Université des Sciences et Technologie de Lille
I. France. 133 p.
[21] Dipama, J., (2010). “Optimisation multi-objectif des systèmes énergétiques”. Thèse de
doctorat : Génie nucléaire. Université de Montréal. Québec. 205 p.
[22] Dirac, P.A.M. (1958). “The principles of Quantum Mechanisms”. 4th ed. Oxford
University Press. Oxford.
[23] Dousson, D. (1991). “2021, l’Odyssée quantique”. Ecole polytechnique fédérale de
Lausanne. Service informatique central. 1-5 p.
[24] Dutuit, P, et Gorenflot, R., (2008) “Glossaire pour le développement durable : des
mots pour les maux de la planète” Archives contemporaines. Paris. ISBN : 978-2-
914610-73-5.
[25] Feynman, R. (1982). “Simulating physics with computers”. International Journal of
Theoretical Physics. 21(6): 467-488 p.
[26] Fogel, L.J, Owens, A.J, and Walsh, M.J., (1966). “Artificial Intelligence through
Simulated Evolution”, John Wiley & Sons.
[27] Francisci, D., (2002). “Algorithmes évolutionnaires et optimisation multi-objectifs en
Data Mining”, Rapport de recherche : Laboratoire I3S. Nice : Université de Sophia
Antipolis de Nice, France. 46 p.
[28] Frédéric, G., (2006). “Optimisation de stratifiés en utilisant un algorithme génétique”.
Mémoire d’un M.Sc : Génie mécanique. Laval : Université de Laval, Québec. 182 p.
[29] Gardeux, V. (2011). “Conception d'heuristiques d'optimisation pour les problèmes de
grande dimension : application à l'analyse de données de puces à ADN”. Thèse de
doctorat : Informatique. Université Paris-Est. France. 158 p.
[30] Giraldi, G., Poertugal, R., and Thess, R. (2004). “Genetic Algorithms and Quantum
Computation”. National Laboratory for Scientific Computing, Petropolis, RJ, Brazil.
[31] Goldberg, D.E., (1989). “Genetic Algorithms in Search, Optimization and Machine
learning”, Addison-Wesley.
[32] Grégoire, A., (2007). “Conception optimale de structures”. Nouvelle edition.
Springer-Verlag Berlin Heidelberg. New York. ISBN 978-3-540-36856-4.
[33] Grover, L.K. (1996). “A fast quantum mechanical algorithm for database search”.
Proceedings of the 28th ACM Symposium on the Theory of Computing. 212-219 p.
[34] Gupta, S., and Kumar, N. (2014). “Parameter tuning in quantum-inspired
evolutionary algorithms for partitioning complex networks”. ACM Proceedings of the
2014 conference companion on Genetic and Evolutionary Computation Companion.
Vancouver, Canada. 1045-1048 p.
[35] Gupta, S., Kumar, N., and Taneja, S. (2014). “Quantum inspired genetic algorithm for
community structure detection in social networks”. ACM Proceedings of the 2014
conference companion on Genetic and Evolutionary Computation Companion.
Vancouver, Canada. 1045-1048 p.
[36] Hamani, N. (2009). “Application des fourmis quantiques au partitionnement avec
ordonnancement en Codesign”, Mémoire de Magister : Systèmes informatiques. INI
d’Alger, Algérie. 108 p.
[37] Han K., and Kim, J. (2003). “On setting the parameters of quantum-inspired
Evolutionary algorithm for practical applications”. in Proceedings of the 2003 IEEE
Congress on Evolutionary Computation. IEEE Press. Vol. 1. 178-184 p.
[38] Han, K.H., and Kim, J.H. (2000). “Genetic Quantum Algorithm and its Application to
Combinatorial Optimization Problem” in Proceedings of the 2000 Congress on
Evolutionary Computation, Piscataway, NJ: IEEE Press, vol. 2. 1354-1360 p.
[39] Han, K. H., and Kim, J.H. (2002). “Quantum-inspired evolutionary algorithm for a
class of combinatorial optimization”. IEEE Transactions on Evolutionary
Computation, vol. 6(6): 580- 593 p.
[40] Holland, J., (1975). “Adaptation in Natural and Artificial Systems”. University of
Michigan Press. Volume Ann Arbor.
[41] Hurley, S, Moutinho, L, and Witt, S.F., (1998). “Genetic algorithms for tourism
marketing”. Annals of Tourism Research, 25 : 498–514.
[42] Jawahar, N, and Balaji, A.N., (2009). “A genetic algorithm for the two-stage supply
chain distribution problem associated with a fixed charge”. European Journal of
Operational Research. 194 : 496–537.
[43] Jong, K.A.De. (1975). “An analysis of the behaviour of a class of genetic adaptive
systems”. PhD thesis : Computer and communication science. University of Michigan.
USA. 256 p.
[44] Kim, J.S, Lee, J.W, Noh, Y.K, Park, J.Y, Lee, D.Y, Yang, K.A, Chai, Y.G, Kim, J.C,
and Zhang, B.T., (2008). “An evolutionary monte carlo algorithm for predicting DNA
hybridization”. Biosystems. 91 : 69–75.
[45] Kim, Y.H., and Kim, J.H. (2009). “Multiobjective quantum-inspired evolutionary
algorithm for fuzzy path planning of mobile robot” in Proceedings of IEEE Congress
on Evolutionary Computation, Trondheim, Norway. 1185–1192 p.
[46] Kim, Y.H., Kim, Y.H., and Han, K.H. (2006). “Quantum-inspired Multiobjective
Evolutionary Algorithm for Multiobjective 0/1 Knapsack Problems”. in Proceedings of
IEEE Congress on Evolutionary Computation. Vancouver, Canada. 9151–9156 p.
[47] Koza, J.R., (1992). “Genetic Programming: On the programming of computers by
means of natural selection”. Cambridge. Massachusetts. USA. ISBN: 0-262-11170-5.
[48] Kumari, A.C., Srinivas, K., Gupta, M.P. (2012). “Multi-objective test suite
minimization using quantum-inspired multi-objective differential evolution
algorithm”. IEEE International Conference on Computational Intelligence and
Computing Research. ISBN: 978-1-4673-1344-5
[49] Kumari, A.C., Srinivas, K., Gupta, M.P. (2012). “Software Requirements Selection
using Quantum inspired Elitist Multi-objective Evolutionary Algorithm”. IEEE
International Conference On Advances In Engineering, Science And Management.
ISBN: 978-81-909042-2-3.
[50] Laboudi, Z. (2009). “Evolution d’automates cellulaires par algorithmes génétiques
quantiques sur un environnement parallèle”, Mémoire de Magister : Informatique.
Université Mentouri de Constantine, Algérie.
[51] Layeb, A. (2005). “Approche quantique évolutionnaire pour l'alignement multiple de
séquences en bioinformatique”, Mémoire de Magister : Information & Computation.
Université Mentouri de Constantine, Algérie. 136 p.
[52] Liu, S, Huang, W, and Ma, H., (2008). “An effective genetic algorithm for the fleet
size and mix vehicle routing problems”. Transportation Research Part E: Logistics and
Transportation Review.
[53] Lucidarme, P, Liegeois, A, Vercher, J.L et Bootsma, R., (2007). “Un Algorithme
Evolutionniste pour l’Auto-Apprentissage de Groupes de Robots Mobiles Autonomes”,
Journées Neurosciences et Sciences pour l’Ingénieur, La Londe des Maures, France.
[54] Marler, R.T., and Arora, J.S. (2004). “Survey of multi-objective optimization
methods for engineering”. Springer-Verlag. 26(6) : 369-395.
[55] Mathieu, B., (2008). “Méthode de comparaison statistique des performances
d'algorithmes évolutionnaires”. Ecole de technologie supérieure : génie électrique.
Montréal. Université de Montréal, Québec. 132 p.
[56] Maturana, J., (2009). “Contrôle générique de paramètres pour les algorithmes
évolutionnaires”, Thèse de doctorat : Informatique. Université d'Angers. France. 147
p.
[57] Mayr, E., (1942). “Systematics and the origin of species, from the viewpoint of a
zoologist”. Harvard University Press. ISBN-13: 978-0674862500.
[58] Mendel, G., (1865). “Experiments in plant hybridization”, Harvard University Press.
ISBN-13: 978-0674278004.
[59] Mendoza, J.E, Medaglia, A.L, and Velasco, N., (2009). “An evolutionary-based
decision support system for vehicle routing: The case of a public utility”. Decision
Support Systems. 46 : 730–742.
[60] Meunier, H. (2002). “ Algorithmes évolutionnaires parallèles pour l’optimisation
multi-objectif de réseaux de télécommunications mobiles”. Thèse de doctorat :
Informatique. Université des Sciences et Technologie de Lille I. France. 148 p.
[61] Mouelhi, O. (2010). “ Contribution à l’optimisation multiobjectif en conception
multidisciplinaire”. Thèse de doctorat : Electronique. Institut des Sciences Appliqués
Lyon. France. 170 p.
[62] Moore, G. (1975). “Progress in Digital Integrated Electronics”. IEEE, International
Electron Devices Meeting Technique Digest. 11-13 p.
[63] Monin, C. (2014). “ Optimisation multiobjectif de l’allocation stratégique par un
algorithme ”, Mémoire : Science financière et d’assdurance. Université Claude
Bernard de Lyon I, France. 93 p.
[64] Moscato, P, Mendes, A, and Berretta, R., (2007). “Benchmarking a memetic
algorithm for ordering microarray data”. Biosystems. 88 : 56–75.
[65] Nakib, A. (2007). “Conception de métaheuristiques d'optimisation pour la
segmentation d'images : application aux images biomédicales”. Thèse de doctorat :
Sciences de l’ingénieur. Option : Traitment d’image et optimisation. Université Paris
XII Val de Marne. France. 130 p.
[66] Ngatchou, P., Zarei, A., and El-Sharkawi, M. A. (2005). “Pareto multi objective
optimization”. Intelligent Systems Application to Power Systems. Proceedings of the
13th International Conference on IEEE. Arlington, VA. ISBN: 1-59975-174-7. 84-91
p.
[67] Nielsen, M.A., and Chuang, I.L. (2000). “quantum Computation and quantum
Information”. Cambridge University Press. ISBN: 9780521635035.
[68] Nielsen, M. A., and Chuang, I. L. (2010). “Quantum Computation and Quantum
Information”. 10th Anniversary Edition. Cambridge University Press.
[69]Olga, R., (2004). “Application des algorithmes évolutionnaires aux problèmes
d'optimisation multi-objectif avec contraintes”. Thèse de doctorat : Mathématiques
appliquées. France. 164p.
[70] Omary, F., (2006). “Applications des algorithmes évolutionnistes à la cryptographie”,
Thèse de doctorat : Informatique. Rabat : Université Mohamed V de Rabat, Maroc.
139 p.
[71] Panzoli D., (2003). “ Simulation comportementale par réseau de neurones et
apprentissage par algorithme génétique”, Mémoire de DEA : Informatique de l'image
et du langage. International Institute of Learning, France. 83 p.
[72] Preskill, J. (2015). “Quantum Information and Computation”. Lecture Notes for
Physics 229. ISBN-13: 978-1506189918.
[73] Picarougne, F. (2004). “Recherche d'information sur Internet par algorithmes
évolutionnaires” .Thèse de doctorat : Informatique. Université de François Rabelais,
France. 233 p.

[74] Ramdane, C. (2006). “Le clustering des données : une nouvelle approche
évolutionnaire quantique”, Mémoire de Magister : Information & Computation.
Université Mentouri de Constantine, Algérie. 126 p.
[75] Rechenberg, I., (1973). “Evolutions strategie: Optimierung Technisher Systeme nach
Prinzipien der Biologischen Evolution”. Fromman-Holzboog. Germany. ISBN-
13: 978-3772803734
[76] Rieffel, E., and Polak, W. (2000). “An introduction to quantum computing for non-
physicists”. ACM Computing Surveys. Vol. 32(3) : 300–335 p.
[77] Rivière T., (2006). “Optimisation de graphes sous contrainte géométrique : création
d’un réseau de routes aériennes pour un contrôle Sector-Less”, Thèse de doctorat :
Programmation et systèmes. Toulouse : Institut national de polytechnique de
Toulouse, France. 115 p.
[78] Rodrigeuz H.G., (2011). “Optimisation multiobjectif de réseaux de transport de gaz
naturel ”, Thèse de doctorat : Génie des Procédés et de l'Environnement. Toulouse :
Université de Toulouse, France. 171 p.
[79] Schaffer, J.D. (1985). “Multiple objective optimization with vector evaluated genetic
algorithms”. Pages 93-100 of: Grefenstette, J.J., ICGA International Conference on
Genetic Algorithms. Lecture Notes in Computer Science.
[80] Schwefel, H.P., (1995). “Numerical Optimization of Computer Models”. 2nd edition.
John Wiley & Sons. New York.
[81] Setia, R., and Hans Raj, K. (2012). “Quantum inspired evolutionary algorithm for
optimization of hot extrusion process”. International Journal of Soft Computing and
Engineering. Vol. 2(5). ISSN: 2231-2307.
[82] Setzkorn, C, Taktak, A.F.G, and Damato, B.E., (2007). “On the use of multi-objective
evolutionary algorithms for survival analysis”. Biosystems. 87 : 31–48.
[83] Shim, V.A., Tan, K.C., Chia, J.Y., and Al Mamun, A. (2013). “Multi-objective
optimization with estimation of distribution algorithm in a noisy environment”. MIT
Press. Massachusetts Institute of Technology. Evolutionary computation. 21(1): 149–
177 p.
[84] Shor, P W. (1994). “Algorithms for quantum computation: Discrete log and
factoring”, In Proceedings of the 35th Annual Symposium on Foundations of
Computer Science, IEEE press 124–134 p.
[85] Siarry, P, Dréo, J, Pétrowski, A, and Taillard, E., (2006). “Metaheuristics for hard
optimization”, Springer-Verlag Berlin Heidelberg. New York. ISBN-13: 978-
3540230229.
[86] Smith, S.L, and Timmis, J., (2008). “An immune network inspired evolutionary
algorithm for the diagnosis of parkinson’s disease”. Biosystems. 94 : 34–46.
[87] Soak, S.M, Lee, S.W, Yeo, G.T, and Jeon, M.G., (2008). “An effective evolutionary
algorithm for the multiple container packing problem”. Progress in Natural Science.
18 : 337–344.
[88] Spalanzani, A., (1999). “Algorithmes évolutionnaires pour l’étude de la robustesse
des systèmes de reconnaissance de la parole”, Thèse de doctorat : Informatique
Systèmes et Communication. Grenoble : Université Joseph-Fourier de Grenoble I,
France. 186 p.
[89] Srivinas, N., and Deb, K. (1995). “Multiobjective optimization using non-dominated
sorting genetic algorithms”. Evolutionay computation. 2(8) : 221-248.
[90] Talbi E.G., (2000). “Métaheuristiques pour l'optimisation combinatoire multi-objectif
: Etat de l'art”. Rapport interne. Université de sciences et Technologies de Lille,
France.
[91] Talbi, H., Draa, A., et Batouche, M. (2004). “A quantum genetic algorithm for image
registration”. in Proceedings of the International Conference on Information &
Communication Technologies: from Theory to Application (ICTTA’2004). Damascus.
IEEE Press.
[92] Talbi, H., Draa, A., et Batouche, M. (2007). “A Quantum-Inspired Evolutionary
Algorithm for Multiobjective Image Segmentation”. International Journal of
Mathematical, Physical and Engineering Sciences. Vol. 1(2): 109-114 p.
[93] Talbi, H. (2009). “Algorithmes évolutionnaires quantiques pour le recalage et la
segmentation multiobjectif des images”. Thèse de doctorat : Informatique. Université
Mentouri de Constantine, Algérie. 171 p.
[94] Viry, P., (2011). “Parallel programming made simple”, Ateji PX for Java.
[95] Viry, P., (2011). “The Ateji PX 1.2 Manual”, (Revision 22.
[96] Wilbaut., C. (2006). “Heuristiques hybrides pour la résolution de problèmes en
variables 0-1 mixtes”. Thèse de doctorat : Modélisation et simulation. Université de
Valenciennes et du Hainaut-Cambresis. 207 p.
[97] Zitzler, E., and Thiele, L. (1999). “Multiobjective evolutionary algorithms : a
comparative case study and the strength Pareto approach”. IEEE Transactions on
Evolutionary Computation. 257-271.
[98] Zitzler, E., Laumanns, M., and Thiele, L. (2001). “SPEA2 : Improving the Strength
Pareto Evolutionary Algorithm”. Pages 12-21 of : In : Giannakoglou, K., et al. (Eds.)
EUROGEN 2001, “Evolutionary Methods for Design, Optimization and Control with
Applications to Industrial Problems”. Athens. Greece.
Sitographie

[99] Eclipse Integrated Development Environment. http://eclipse.org Consulté le 21 Mai

2015.

[100] Java Programming language. http://java.com Consulté le 21 Mai 2015.

[101] Larousse Dictionnaire de Français et Encyclopédie. http://www.larousse.fr/

Consulté le 15 Mars 2015.

[102] ParadisEO A software framework for metaheuristics. http://paradiseo.gforge.inria.fr/

Consulté le 20 Mai 2015.

Vous aimerez peut-être aussi