Académique Documents
Professionnel Documents
Culture Documents
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 :
Rien au monde ne vaut tes efforts fournis jours et nuits pour mon
Hanane. Vous vous êtes dépensés pour moi sans compter pour me
connaissent et m’aiment.
BECHOUA Chouaib
Remerciements
En préambule à ce mémoire nous remercions Allah qui nous aide et
d’études.
ce mémoire.
,@$ ا,*+ ا, '-# ة ا, ر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é.
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
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
o Introduction.
o Notion du problème
d’optimisation combinatoire.
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.
3
Résolution de problèmes d’optimisation Chapitre I
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
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.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].
Minimiser ℱ ( ) = ( ( ), ( ), … , ( ) ) avec ∈ →
( ) ≤ 0 avec ( ) ∈ !
(1.5)
6
Résolution de problèmes d’optimisation Chapitre I
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
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] :
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
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].
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.
10
Résolution de problèmes d’optimisation Chapitre I
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.
12
Résolution de problèmes d’optimisation Chapitre I
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].
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].
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].
15
Résolution de problèmes d’optimisation Chapitre I
(a) (b)
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
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].
17
Résolution de problèmes d’optimisation Chapitre I
18
Résolution de problèmes d’optimisation Chapitre I
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
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.
é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.
21
Algorithmes évolutionnaires Chapitre II
22
Algorithmes évolutionnaires Chapitre II
23
Algorithmes évolutionnaires Chapitre II
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).
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.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
26
Algorithmes évolutionnaires Chapitre II
27
Algorithmes évolutionnaires Chapitre II
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.
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é.
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
31
Algorithmes évolutionnaires Chapitre II
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].
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].
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.
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.
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].
36
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
|Ψ〉 → [\
]
^
37
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
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.
_ `6 | 5 〉
6?@
_ |`6 | = 1
6?@
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].
40
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
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
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 ~
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
43
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
44
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
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].
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)
46
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
47
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
48
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
, (+) H … H
,Œ (+) H … H
8 solutions … 8 solutions
Update Update
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
50
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
51
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
52
Algorithmes évolutionnaires inspirés-quantiques Chapitre III
53
Chapitre IV
o Introduction
o Motivations et objectifs
o Adaptation des AEIQ/AEIQM
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.
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 :
55
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
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
+ ← 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
58
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
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
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.
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
64
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
65
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
66
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
67
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
68
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
69
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
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
71
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
72
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
73
Parallélisation et distribution des algorithmes évolutionnaires
Chapitre IV
inspiré-quantiques
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 ∈ .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
Nbr.SND 25 33 35 43 42 40 51 46 53 51 64 76 56 57 74
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
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
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.
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.
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
2015.