You are on page 1of 72

Remerciements

C'est un agréable devoir de s'acquitter des dettes de reconnaissance cumu-


lées tout au long de ce projet de n d'études. Donc, au terme de mon projet
de n d'études, je tiens à adresser mes plus vifs remerciements à toutes les
personnes qui, de près ou de loin, ont contribué à l'aboutissement de ce tra-
vail dans les meilleures conditions. Je remercie les membres du jury qui ont
accepté d'examiner et d'évaluer mon travail. Qu'ils trouvent ici ma profonde
reconnaissance pour l'attention qu'ils ont apportée à ce rapport et pour le temps
qu'ils ont consacré à son évaluation. Je témoigne d'une grande reconnaissance
envers mon encadrant le Docteur Sadok BOUAMAMA pour la qualité de l'en-
cadrement qu'il m'a assuré, sa disponibilité, son intérêt envers mon travail et
surtout pour la conance qu'il m'a accordée et ses encouragements continuels.
Je remercie très cordialement tous les membres de l'unité de recherche SOIE
(Stratégie d'Optimisation des Informations et de connaissancE) pour leur sym-
pathie et leurs amitiés. Je ne pourrais pas terminer ces remerciements sans ex-
primer une reconnaissance venant du plus profond du c÷ur à ma famille pour
avoir fait preuve d'une grande tolérance, dans la consécration de leur temps
et de leurs encouragements. J'adresse aussi ma reconnaissance à toutes mes
amis qui m'ont toujours soutenue pendant mes années d'études. Je les remer-
cie également pour les très bons moments que nous avons passés ensemble. Je
ne laisserai pas cette occasion passer sans exprimer ma reconnaissance envers
tous mes professeurs ainsi qu'au personnel de l'École Nationale des Sciences
de l'Informatique.

i
Acronymes

 AG Algorithme Génétique.
 AUML Agent Unied Modeling Language.
 CSOP Constraint Satisfaction Optimization Problems.
 CSP Constraint Satisfaction Problem.
 D3 G2 A Distributed Dynamic Double Guided Genetic Algorithm.
 D3 GPSO Distributed Dynamic Double Guided Particule Swarm Opti-
mization.
 DGPSO Double Guided Particule Swarm Optimization.
 FV Fitness Value.
 LOD Local Optimum Detector.
 OEP Optimisation par Essaims Particulaires.
 Pgbest Particule global best.
 Pguidage Probablité de guidage.
 Plbest Particule local best.
 PSO Particule Swarm Optimization.
 SMA Système Multi-Agents.

ii
Table des matières

Introduction générale 1
1 Etat de l'art 3
1.1 Problèmes de satisfaction de contrainte . . . . . . . . . . . . . . 3
1.1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Extension des CSPs . . . . . . . . . . . . . . . . . . . . . 5
1.1.4 Les méthodes de résolution des CSPs . . . . . . . . . . . 7
1.1.4.1 Méthodes complètes . . . . . . . . . . . . . . . 7
1.1.4.2 Méthodes incomplètes . . . . . . . . . . . . . . 10
1.2 Essaims particulaires . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.2 Description générale . . . . . . . . . . . . . . . . . . . . 17
1.2.3 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.4 Principales caractéristiques . . . . . . . . . . . . . . . . 21
1.3 Les systèmes multi-agents . . . . . . . . . . . . . . . . . . . . . 22
1.3.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3.2 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3.2.1 Agent . . . . . . . . . . . . . . . . . . . . . . . 23
1.3.2.2 Système multi-agents . . . . . . . . . . . . . . 24
1.3.3 Les modèles d'agent . . . . . . . . . . . . . . . . . . . . 25
1.3.3.1 Agent réactif . . . . . . . . . . . . . . . . . . . 25
1.3.3.2 Agent cognitif . . . . . . . . . . . . . . . . . . 26

iii
2 Algorithme d'Optimisation par Essaims Particulaires Distri-
bués Dynamiques Doublement Guidés (D3 GPSO) 27
2.1 Principes de base . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1 Correspondances entre CSP et PSO . . . . . . . . . . . 27
2.1.2 Concept de Template . . . . . . . . . . . . . . . . . . . . 29
2.1.3 Dynamique Globale . . . . . . . . . . . . . . . . . . . . . 30
2.1.4 Structure des agents . . . . . . . . . . . . . . . . . . . . 31
2.1.4.1 L'agent interface . . . . . . . . . . . . . . . . . 31
2.1.4.2 L'agent espèce . . . . . . . . . . . . . . . . . . 32
2.1.5 L'heuristique de minimisation des conits . . . . . . . . . 32
2.1.6 Probabilité de guidage . . . . . . . . . . . . . . . . . . . 32
2.1.7 Le détecteur des optimums locaux et l'opérateur de pé-
nalisation . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.1.8 Processus détaillé . . . . . . . . . . . . . . . . . . . . . 34
2.2 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2.1 Architecture de l'application . . . . . . . . . . . . . . . . 37
2.2.2 Diagramme des cas d'utilisation . . . . . . . . . . . . . . 37
2.2.2.1 Les acteurs . . . . . . . . . . . . . . . . . . . . 38
2.2.2.2 Description textuelle . . . . . . . . . . . . . . 38
2.2.3 Diagramme de classes . . . . . . . . . . . . . . . . . . . . 39
2.2.4 Diagramme de séquences . . . . . . . . . . . . . . . . . . 40

3 Réalisation et expérimentations 42
3.1 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . 42
3.1.1 Environnement matériel . . . . . . . . . . . . . . . . . . 42
3.1.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . 42
3.2 Choix de la Platform . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3 Expérimentations et illustration . . . . . . . . . . . . . . . . . . 46
3.3.1 Description de processus d'expérimentation . . . . . . . 46
3.3.1.1 Démarrage de l'application . . . . . . . . . . . 46
3.3.1.2 Achage du résultat . . . . . . . . . . . . . . 46
3.3.2 Mode expérimentale . . . . . . . . . . . . . . . . . . . . 48

iv
3.3.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.3.1 Comparaison avec l'optimum . . . . . . . . . . 51
3.3.3.2 Comparaison avec l'approche centralisée et l'al-
gorithme génétique . . . . . . . . . . . . . . . . 52
3.4 Chronogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Conclusion générale et perspectives 56


Bibliographie 57
A i

v
Table des gures

1.1 Détermination du plus court chemin par une colonie de fourmis. 14


1.2 Choix des informatrices parmi les sept particules . . . . . . . . . 18
1.3 Principe de déplacement d'une particule . . . . . . . . . . . . . 19
1.4 Dénition d'un système multi-agents. . . . . . . . . . . . . . . . 25
1.5 Agent réactif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.6 Agent cognitif. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.1 La position xi d'une particule . . . . . . . . . . . . . . . . . . . 28


2.2 Le changement de la position d'une particule à travers la vitesse
Vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3 Exemple sur la notion de Template. . . . . . . . . . . . . . . . . 30
2.4 Un exemple d'un bassin d'attraction. . . . . . . . . . . . . . . . 33
2.5 Architecture de l'application. . . . . . . . . . . . . . . . . . . . 37
2.6 Digramme de cas d'utilisation. . . . . . . . . . . . . . . . . . . . 38
2.7 Diagramme de classes. . . . . . . . . . . . . . . . . . . . . . . . 39
2.8 Diagramme de séquence "initialisation". . . . . . . . . . . . . . 40
2.9 Diagramme de séquence " l'exécution de processus d'optimisa-
tion D3 GPSO" . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.1 le Modèle de MadKit. . . . . . . . . . . . . . . . . . . . . . . . . 44


3.2 Architecture générale de MadKit. . . . . . . . . . . . . . . . . . 45
3.3 Interface de l'application. . . . . . . . . . . . . . . . . . . . . . . 46
3.4 Exemple d'exécution avec deux agents espèces. . . . . . . . . . . 47
3.5 Temps d'exécutions moyen pour les onze problèmes. . . . . . . . 51

vi
3.6 Ratio de tness avec les optimums connus. . . . . . . . . . . . . 52
3.7 Ratio de tness avec les résultats trouvés par PSO et AG20000 . . 52
3.8 Chronogramme. . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

vii
Liste des Algorithmes

1 Algorithme de Metropolis . . . . . . . . . . . . . . . . . . . . . . 11
2 Algorithme de recuit simulé . . . . . . . . . . . . . . . . . . . . . 12
3 Algorithme de Recherche Tabou . . . . . . . . . . . . . . . . . . 14
4 Algorithme de colonie de fourmis pour un problème d'aectation
général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 Algorithme évolutionnaire générique . . . . . . . . . . . . . . . . 16
6 Algorithme d'optimisation par essaim particulaire (basique) . . . 21

7 Algorithme d'optimisation par essaims particulaires doublement


guidé (DGPSO) . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8 Comportement de l'espècei . . . . . . . . . . . . . . . . . . . . . 36

viii
Liste des tableaux

3.1 Sommaire sur les problèmes de test. . . . . . . . . . . . . . . . . 49


3.2 Comparaison entre les moyennes des valeurs de tness obtenu
pour les onze problèmes. . . . . . . . . . . . . . . . . . . . . . . 50
3.3 Calcule Ratio de tness . . . . . . . . . . . . . . . . . . . . . . 51

ix
Introduction générale

Les problèmes de satisfaction de contrainte occupent une place très im-


portante dans diverses disciplines de recherche opérationnelle et d'intelligence
articielle. Leur importance se justie, par le fait que plusieurs problèmes que
nous rencontrons peuvent être facilement formalisés par le formalisme CSP
(Constraint Satisfaction Problem). On peut citer, à titre d'exemple, les pro-
blèmes d'aectation des fréquences, les problèmes d'ordonnancement, les pro-
blèmes de tournée des véhicules...

Il faut signaler que les problèmes de satisfaction de contrainte sont des


problèmes NP-dur[1]. Toutefois, un grand nombre de méthodes de résolution
ont été développées. Elles sont classées en deux catégories :

La première catégorie est les méthodes complètes, elles permettent de ga-


rantir la solution ou d'informer sur son inexistence par l'exploration totale
de l'espace de recherche. C'est pourquoi ces méthodes sont contrecarrées par
l'explosion combinatoire.

La deuxième catégorie est celles des méthodes incomplètes, qui sont des
méthodes qui ne donnent aucune garantie sur l'existence d'une solution. Mais
elles donnent des solutions approchées de l'optimum global. Parmi ces mé-
thodes, on peut citer les algorithmes évolutionnaires, ces méthodes sont basées
sur une analogie avec le phénomène de l'évolution et de la sélection naturelle.
Actuellement, les approches évolutives constituent des algorithmes robustes
qui sont à la base d'un axe en plein essor de l'informatique. Cependant, les
algorithmes évolutifs ont une principale limite qui réside dans le fait qu'ils

1
sont gourmands en temps de calcul. En eet,ils ne permettent pas parfois d'at-
teindre une solution dans un temps raisonnable.

L'optimisation par les essaims particulaires (OEP) constitue l'exemple le


plus récent des algorithmes évolutifs. Cette approche est issue d'une analogie
avec les comportements collectifs des animaux. A travers la communication,
les diérentes particules ajustent leur comportement pour atteindre le but
commun. En eet, chez certains groupes d'animaux, comme les oiseaux, les
abeilles, les poissons, nous observons souvent des mouvements complexes. Alors
que les individus eux-mêmes n'ont accès qu'à des informations limitées, comme
la vitesse et la position de leurs voisins.

Il faut dire que des tentatives de parallélisations des méthodes évolutives


ont été conçues an de réduire le temps de calcul. Ces méthodes deviennent
ainsi plus adaptées et permettent d'obtenir une convergence plus rapide vers
des solutions de bonne qualité.

Dans ce cadre, le présent projet consiste en premier lieu, à implémenter la


nouvelle extension de l'algorithme PSO qui est D3 GPSO (Dynamic Distribu-
ted Double Guided Particule Swarm Optimization Algorithm) pour le cas des
CSOPs proposée par Sadok BOUAMAMA[2]. Puis d'expérimenter la perfor-
mance de l'algorithme sur des instances de problèmes de la littérature[3].

Le présent mémoire détaille notre contribution.Il est structuré comme suit :


Nous verrons dans le premier chapitre, l'état de l'art relatif aux problèmes de
satisfaction de contrainte, ainsi que l'algorithme des essaims particulaires et
les systèmes multi-agents. Le deuxième chapitre, décrit la nouvelle approche
D3 GPSO ainsi qu'une conception de l'application. Dans le troisième chapitre,
nous détaillons la plateforme de développement ainsi que les résultats. Enn,
la conclusion récapitule les résultats de notre travail ainsi que des perspectives
sur les travaux futurs.

2
Chapitre 1

Etat de l'art

Introduction

Ce chapitre est consacré à une présentation générale des problèmes de satis-


faction de contrainte, ainsi que leurs extensions et leur méthodes de résolution
connues dans la littérature. Ces méthodes sont réparties en méthodes exactes,
permettant d'obtenir des solutions optimales et des métaheuristiques, permet-
tant d'obtenir des solutions approchées. Puis, nous présentons une revue sur
l'optimisation par essaims particulaires ainsi que quelques approches connues
dans la littérature. Enn, nous présentons les systèmes multi-agents.

1.1 Problèmes de satisfaction de contrainte

1.1.1 Présentation
Les problèmes de satisfaction de contrainte introduits par Montanari en
1974, occupent une place importante en intelligence articielle. En eet, ils se
dénissent par un ensemble des variables, chacune est associée à un domaine
de valeurs et qui sont sujettes à des contraintes qui les mettent en relation. Le

3
but est de trouver une solution qui est une instanciation de toutes les variables
à partir de leurs domaines respectifs et qui satisfait toutes les contraintes.

1.1.2 Dénitions
a. Dénition 1
Un problème de satisfaction de contrainte est la donnée d'un quadruplet
(X, D, C, R) avec :

 X = x1 , x2 , ..., xn est l'ensemble des n variables xi .


 D = D1 , D2 , ..., Dn est l'ensemble des n domaines Di ou D(xi ) qui
peuvent être soient :
 discrets et nis où chaque Di représente les q valeurs possibles de la
variable xi : Di = d1 , d2 , ..., dq .
 continus où chaque Di représente l'intervalle des valeurs possibles de
la variable xi : Di = [d1 ..dq ].
 C = C1 , C2 , ..., Cm est l'ensemble des m contraintes Ci où chaque Ci
porte sur tous les éléments d'un sous-ensemble Var ( Ci )de p variables :
Ci = xi1 , xi2 , ..., xip .
 R = R1 , R2 , ..., Rm est l'ensemble des relations où chaque Ri ou R(Ci )
est associée à une Ci pour dénir l'ensemble des combinaisons de valeurs
satisfaisant Ci . Ri est dénie par un sous-ensemble du produit cartésien
Di1 × Di2 × ... × Dip .

b. Dénition 2
 L'arité d'une contrainte Ci est le nombre de variables impliquées dans
cette contrainte : c'est le cardinal de Var (Ci ) ( | var(Ci ) | ).
 Le degré d'une variable est le nombre de contraintes dans lesquelles est
impliqué une variable.
 Un CSP est dit binaire si toutes les contraintes ont une arité <= 2 et au
moins une contrainte est d'arité =2.
 Un CSP est dit n-aire si toutes les contraintes ont une arité <= n et au

4
moins une contrainte a une arité = n.

c. Dénition 3
Un tel problème peut être représenté par diérents types de représenta-
tions :
1. Une représentation par graphe global.
2. Une représentation par extension : où chaque relation est représentée par
un ensemble de t-uples qui respectent la contrainte associée.
Exemple :R1 = (x11 , x21 ), (x11 , x23 ).
3. Une représentation par intension : où chaque relation est représentée par
un prédicat ou par une fonction caractéristique. Exemple : x1 + x2 = 0.
4. Une représentation par graphe des contraintes : quand un CSP est consti-
tué uniquement des contraintes binaires, on peut le représenter par un
graphe non orienté, appelé graphe des contraintes où les n÷uds désignent
les variables et les arcs représentent les contraintes.
d. Dénition 4
Une solution d'un CSP : P = (X, D, C, R) est une instanciation consistante
complète. En d'autres termes, c'est une instanciation de toutes les variables de
X sur D qui doit satisfaire toutes les contraintes de C.

e. Dénition 5
Un CSP : P = (X, D, C, R) est consistant si et seulement si Sp 6=Ø.

f. Dénition 6
Soit P= (X, D, C, R) et P'= (X', D', C', R').On dit que P et P' sont
équivalents (P ≡ P 0 ) si et seulement si Sp =Sp'.

1.1.3 Extension des CSPs


Diverses extensions de CSP ont été mise en ÷uvre pour répondre à des
besoins de formalisation des problèmes réels. Parmi les extensions, nous trou-

5
vons :
 CSOP (Constraint Satisfaction and Optimization Problem) : Le
CSOP[4] est un CSP avec une fonction objectif f à optimiser relative à
une évaluation numérique de chaque solution. Le but dans ce cas n'est
pas seulement une instanciation qui ne viole aucune des contraintes, mais
aussi qui optimise la fonction f (maximiser ou minimiser). Plus formelle-
ment, un CSOP est déni par <X, D, C, R, F> :

1. <X, D, C, R> est un CSP ordinaire.


2. F est la fonction objectif à optimiser.

Pour la résolution des CSOPs il existe plusieurs méthodes de recherche


de solutions, nous citons par l'exemple la méthode Branch and Bound
[17].
 PCSP (Partial Constraint Satisfaction Problem) : le formalisme
PCSP [5][6] est une extension de CSP, qui a pour objectif de trouver une
assignation qui satisfait un nombre maximal de contraintes. Un PCSP
implique la recherche d'un sous-ensemble de variables qui satisfait un
sous-ensemble des contraintes. Contrairement aux CSOPs qui exigent
que toutes les contraintes soient satisfaites. Un PCSP consiste à trouver
une solution qui minimise le nombre de contraintes violées. Les PCSP
peuvent être vue comme un cas particulier des CSOPs où la fonction à
optimiser est le nombre de contraintes violées.
 Les CSPs valués (VCSP) (Valued Constraint Satisfaction Pro-
blem) : le VCSP[22] est une extension des CSPs où une valuation ex-
prime une probabilité d'existence ou d'interdiction est associée à chaque
contrainte. Ces valuations expriment l'impact de la violation d'une contrainte
ou du choix de l'aectation des variables sur la qualité de la solution.
 MAX-CSP (MAXimal Constraint Satisfaction Problem) : ce
sont des PCSPs ou chaque contrainte possède un coût[4]. Le but est
de minimiser le nombre de coûts des contraintes violées (maximisation
de la somme des coûts des contraintes satisfaites).

6
D'autres extensions existent comme les CSPs temporels qui s'intéressent
à la résolution des problèmes de satisfaction de contrainte temporelle où les
variables représentent le temps et les contraintes les relations temporelles entre
elles. Le choix du formalisme de codication d'un problème d'aectation sous
contraintes dépend du spécicité de la problématique et du point de vue de
concepteur.

1.1.4 Les méthodes de résolution des CSPs


Il est facile de se rendre compte que malgré le nombre ni des solutions
des problèmes d'optimisation combinatoire, la stratégie de résolution naïve,
qui consiste à les énumérer toutes, en évaluant à chaque fois et en retenant
la meilleure, est non concevable en pratique puisque le nombre de solutions
croît généralement de manière exponentielle avec la taille du problème. Cette
approche ne peut fonctionner que pour des problèmes de petite taille. A la
frontière de la recherche opérationnelle et de l'intelligence articielle, la re-
cherche des méthodes de résolution a constituée l'objectif majeur de divers
travaux. Ainsi, diverses méthodes de résolution des CSPs ont été proposées,
elles peuvent être classées en deux grandes familles :
 Méthodes complètes
 Méthodes incomplètes.

1.1.4.1 Méthodes complètes

Une méthode de résolution est dite exacte, complète ou optimale si elle


arrive à garantir l'obtention des solutions admissibles ( qui satisfait l'ensemble
des contraintes) et optimales au sens de la fonction objectif. Si les solutions
n'existent pas, elle doit être capable de détecter l'échec. On dit que ces mé-
thodes assurent la consistance et la complétude. Ainsi, ces méthodes ne pro-
duisent pas des résultats faux (inconsistants) et on peut dire qu'un algorithme
qui cherche toutes les solutions d'un problème CSP est complet s'il produit

7
eectivement toutes ses solutions. Les méthodes complètes reposent sur une
recherche arborescente. Elles partent d'une instanciation vide où aucune va-
riable n'est instanciée et construisent la solution si elle existe en parcourant
l'ensemble des variables et en les instanciant une à une. Ce sont des méthodes
qui opèrent selon une approche dite par construction.

a. Séparation et évaluation (Branch and Bound)


Cette méthode est une méthode constructive [15] [17] puisqu'elle utilise une
heuristique capable d'estimer les meilleures valeurs de toutes les possibilités
d'aectation des variables sous la branche courante de l'arbre de recherche. Par
cette heuristique la méthode Branch and Bound évite l'exploration couteuse
des espaces de recherche qui ne contiennent pas la solution optimale.

Cette méthode, qui a été utilisée pour résoudre les CSOPs eectue une
recherche en profondeur sur l'arbre de recherche. Cette technique nécessite
une fonction heuristique h qui aecte une valeur numérique à chaque tuple t
de valeurs et à chaque n÷ud de l'arbre de recherche.

Deux valeurs sont calculées : La valeur f-value qui représente la valeur réelle
de l'instanciation partielle de la racine jusqu'au n÷ud courant et la valeur h-
value estimée de l'instanciation des n÷uds suivants jusqu'au dernier n÷ud du
sous-arbre. Dans les problèmes de maximisation/minimisation et pour que la
fonction heuristique utilisée soit admissible, il faut que la h-value de chaque
tuple soit une surestimation/sous-estimation (la meilleure valeur possible) de
la valeur réelle (f-value) de chaque tuple de solution. Une variable appelée
bound, est initialisée à (moins/plus) l'innie dans les problèmes de (maximi-
sation/minimisation). Avant d'instancier une nouvelle variable et étendre ainsi
une aectation partielle, la h-value est calculée pour la solution partielle cou-
rante. Si cette valeur estimée est moins bonne que la variable bound alors le
sous-arbre est élagué de la recherche puisqu'il n'aura pas de chance de contenir
une solution meilleure que celle déjà trouvée. Dans le cas contraire, l'algorithme
continu à instancier des nouvelles valeurs pour la variable. Quand l'algorithme
trouve une meilleure solution, il met à jour automatiquement la valeur de la

8
variable bound.

b. Generate and Test


Cette méthode de résolution est parmi les premiers algorithmes conçus pour
résoudre les problèmes de satisfaction de contrainte. Cette approche consiste à
tester toutes les combinaisons possibles des valeurs admissibles (qui respectent
toutes les contraintes). Donc, chaque combinaison sera générée et testée pour
vérier si elle satisfait toutes les contraintes. La vérication de satisfaction des
contraintes est donc testée après l'instanciation complète de toutes les variables
du problème. Le nombre de combinaisons considérées par cette méthode est
de taille du produit cartésien de tous les domaines des variables.

c. Test and Generate (Backtrack)


Le Test and Generate[25] se base essentiellement sur une recherche en pro-
fondeur d'abord tout en réalisant des retours en arrière chronologiques [12].
Cet algorithme instancie les variables dans un ordre prédéterminé et procède
par essais et erreurs : avant la phase du Backtrack, si une instanciation Ik
est consistante, une variable supplémentaire Xk+1 est alors instanciée. Dans la
phase de Backtrack. Si aucune valeur du domaine de Xk+1 ne peut prolonger
Ik consistant, un retour est eectué sur la dernière variable Xk instancier et à
laquelle sera aectée une nouvelle valeur de son domaine. L'algorithme s'ar-
rête lorsqu'une solution est trouvée ou tout l'espace de recherche a été exploré.
Contrairement à l'algorithme précédant Generate and Test, la vérication de
satisfaction des contraintes se fait après l'instanciation partielle des variables.
Quand une instanciation partielle viole une contrainte, l'algorithme élimine un
sous-espace de produit cartésien des domaines de toutes les variables.

Il existe aussi le Backtrack intelligent [20] qui est une stratégie basée sur
l'identication de la vraie cause des échecs an que l'algorithme puisse revenir
sur la variable qui a causé l'échec et de prendre ainsi des décisions pertinentes.
Cependant, cette stratégie nécessite un temps de calcul élevé.

Des versions de backtrack intelligent développées pour la résolution des

9
CSPs sont proposées dans [13][25].

d. Backjumping
Le principe de l'algorithme Backjumping est de sauter plusieurs niveaux
en arrière jusqu'à la dernière variable liée par une contrainte avec la variable
courante (retour à la dernière mauvaise décision). Si cette variable de retour ne
possède pas d'autres valeurs, l'algorithme retourne plus loin à la variable liée
par une contrainte avec la nouvelle variable de retour et ainsi de suite. Une ver-
sion plus puisante de cet algorithme est appelée conict-directed backjumping
[18] ou graph based backjumping [21].

D'autres méthodes existent comme Le Backchecking et le backmarking [21].

1.1.4.2 Méthodes incomplètes

Ces méthodes sont appelées aussi les méthodes approchées, elles sont uti-
lisées généralement dans les problèmes de grande taille. Ces méthodes sont
basées sur l'exploration progressive de l'espace an de trouver une solution de
qualité dans un temps raisonnable. Contrairement aux méthodes complètes,
les méthodes incomplètes permettent de contrôler le temps puisque l'exécu-
tion peut être arrêtée à tout moment tout en obtenant une solution complète
au problème. La qualité des résultats de ces algorithmes dépend généralement
du temps d'exécution et la probabilité d'avoir une solution meilleure augmente
au cours du temps (sans toutefois garantir une solution meilleure).

Des progrès ont été réalisés avec l'apparition d'une nouvelle génération de
méthodes approchées puissantes et générales, appelées méta-heuristique qui
constituent des mécanismes très généreux qui peuvent être adaptés pour trai-
ter plusieurs problèmes diérents.

a. Recuit simulé
Le recuit simulé [11] est parmi les méthodes les plus anciennes et populaires.
Il a acquis son succès essentiellement grâce à des résultats pratiques obtenus.

10
Tel que est le cas des applications présentées dans [29].

La méthode de recuit simulé repose sur l'algorithme Metropolis décrit par


l'algorithme 1 et s'inspire du processus de recuit physique utilisé en métal-
lurgie pour améliorer la qualité d'un solide (la structure d'un solide refroidi
dépend de la vitesse de refroidissement). Nous débutons avec une haute tem-
pérature. La température est contrôlée par une fonction décroissante qui dénit
un schéma de refroidissement. Chaque température est maintenue jusqu'à ce
que la matière trouve un équilibre thermodynamique. Quand la température
tend vers zéro, seules les transitions d'un état à un état d'énergie plus faible
sont possibles [16].

Initialiser un point de départ x0 et une température T;


pour i=1 à n faire faire
tant que xi n'est pas accepté faire
si f (xi ) ≤ f (xi−1 ) alors
Accpter xi ;
n
si f (xi ) > f (xx−i ) alors
Accepter xi avec la probabilité e−
f (xi )−f (xi−1 )
; T

n
n
n
Algorithme 1: Algorithme de Metropolis

Le processus consiste à partir d'une température élevée T et à l'abaisser


petit à petit, suivant un schéma d'abaissement de température. A chaque ité-
ration, une nouvelle conguration S' appartenant à V(S) (le voisinage de S la
conguration courante) est générée d'une manière aléatoire.

Si ∆ = f (s0 ) − f (s) <= 0 alors la nouvelle conguration est retenue.


Sinon, elle est acceptée avec la probabilité de transition e(−∆/T ) . Par cette
règle d'acceptation, le recuit simulé échappe aux optima locaux. L'algorithme

11
de recuit simulé est résumé par l'algorithme 2.
Données : mécanismes de perturbation d'une conguration
Résultat : Une conguration S
initialiser la température T;
tant que La condition d'arrê n'est pas atteinte faire
tant que L'équilibre n'est pas atteint faire
Tirer une nouvelle conguration S';
Appliquer l'algorithme de Metropolis;
si f (S 0 ) < f (S) alors
Smin =S';
fmin =f(S');
n
n
Décroître la température
n
Algorithme 2: Algorithme de recuit simulé
b. Recherche Tabou
La recherche Tabou[7] est une méta-heuristique introduite pour guider
des heuristiques d'optimisation locale, an de pouvoir explorer l'espace de
recherche, sans être piégée par les optimums locaux. Cette technique d'optimi-
sation est très proche du recuit simulé, dans le sens où elle cherche également
la conguration suivante dans un voisinage autour de la conguration cou-
rante. An de ne pas rester bloqué dans un minimum local, le recuit simulé
accepte de façon probabiliste des congurations accroissantes temporairement.
La recherche Tabou procède de même, mais de manière déterministe en pre-
nant comme nouvelle conguration celle qui a le coût le plus faible dans le
voisinage de la conguration courante. Celle-ci peut éventuellement être moins
bonne que la conguration courante. Comme toutes les méthodes de répara-
tion, il s'agit de partir d'une conguration initiale et de procéder à une série
de mouvements d'une solution S à une autre solution S' appartenant au V(S)
choisie de la manière citée précédemment. Cette stratégie présente l'inconvé-

12
nient de pouvoir se bloquer dans des cycles en revenant sur des congurations
déjà rencontrées. C'est pourquoi, on contraint la recherche en classant certains
mouvements (le passage d'une conguration à une autre) comme tabous dans
une liste tabou de longueur n ainsi, on interdit tout mouvement (un mouve-
ment (X,val) est le changement de la valeur d'une seule variable qui mène à
une solution voisine) qui conduit à une solution déjà choisie et éviter tous les
cycles de longueur inférieure ou égale à n.

An d'éviter une mémorisation trop coûteuse des congurations entières,


lorsqu'un mouvement vient d'être eectué, la liste tabou mémorise seulement
la caractéristique perdue par la conguration courante. Un mécanisme parti-
culier appelé l'aspiration [8] qui permet de lever le statut tabou d'une con-
guration. Ce mécanisme peut être déni par plusieurs façons, la façon la plus
simple consiste à révoquer le statut tabou d'un mouvement si ce dernier permet
d'atteindre une solution de qualité supérieure à celle de la meilleure solution
trouvée.

Il existe encore d'autres techniques pour améliorer la performance de la


recherche Tabou, en particulier, l'intensication et la diversication.

L'intensication se base sur l'idée d'apprentissage des propriétés favorables :


les propriétés communes souvent rencontrées dans les meilleures congurations
visitées sont mémorisées au cours de la recherche, puis favorisées pendant la
période d'intensication.

La diversication à un objectif inverse de l'intensication : elle cherche à di-


riger la recherche vers des zones inexplorées. Sa mise en ÷uvre consiste souvent
à modier temporairement la fonction de coût pour favoriser des mouvements
n'ayant pas été eectués ou à pénaliser les mouvements ayant été souvent
répétés. L'algorithme de recherche Tabou peut être résumé par l'algorithme 3.

La méthode Tabou suscite un intérêt toujours croissant depuis sa décou-


verte et des nombreux ranements ont été introduits [7]. Des résultats pra-
tiques intéressants ont été obtenus pour de nombreux problèmes d'optimisation
combinatoire.

13
Résultat : Une conguration S
Initialiser une liste tabou vide;
tant que le critère d'arrêt n'est pas atteint faire
Perturbation de S suivant N mouvements non tabous;
Évaluation des N voisins;
Sélection du meilleur voisin t;
Actualisation de la meilleure position connue S∗ ;
Insertion du mouvement t→ S dans la liste tabou;
n
Algorithme 3: Algorithme de Recherche Tabou

c. Optimisation par colonie de fourmis

Fig. 1.1  Détermination du plus court chemin par une colonie de fourmis.

La méthode de colonie de fourmis[21] s'inspire du comportement des colo-


nies de fourmis réelles. En eet, malgré la vision très limitée de chaque fourmi,
une colonie de fourmis parvient à minimiser la longueur du chemin condui-
sant à une source de nourriture, grâce aux phéromones laissées par chacune
des fourmis (cf. Figure 1.1). Cette méthode est caractérisée par la combinai-
son d'une approche de construction et des mécanismes d'apprentissage fondés
sur la mémorisation. Elle consiste à réitérer un algorithme de construction,
assimilé à l'action d'une fourmi, dans lequel chacun des choix est déterminé
en tenant compte à la fois d'un critère glouton, d'un aspect aléatoire et des

14
traces laissées par les fourmis précédentes. L'algorithme 4 présente un résumé
sur l'algorithme de colonie de fourmis appliqué pour un problème d'aectation
général.

Initialiser f(s∗ ) ; ncycles=0 ; meilleur_cycle=0;


tant que le critère d'arrêt n'est pas atteint faire
ncycles=ncycles+1;
pour Chaque fourmis faire
pour k=1 à n faire
Choisir un objet i avec une probablitéObj ;
Choisir une ressource admissible j pour l'objet i avec
probabilitéres ;
Aecter la ressource j à l'objet i;
n
Calculer le coût f(sf ) de la solution sf=(x1 ,...,xn );
n
s∗ =min{f(s)| s∈ σ ={s1 ,s2 ,...,snf ourmis }};
si f(s)<f(s∗ ) alors
s∗ =s ; et meilleure_cycle=ncycles;
Évaporer les traces τ ;
n
n
Algorithme 4: Algorithme de colonie de fourmis pour un problème d'af-
fectation général

d. Algorithmes génétiques
Il existe plusieurs versions de l'algorithme génétique dans la littérature [4]
[9] [10] [28]. L'algorithme génétique consiste essentiellement de faire évoluer
une population d'individus qui représentent des solutions potentielles au pro-
blème traité vers une nouvelle population en utilisant une sorte de sélection
naturelle et en appliquant ensuite les opérateurs de reproduction. Au cours de
chaque génération, les structures de la population courantes sont classées selon

15
leur ecacité et une nouvelle population sera créée en utilisant des opérateurs
génétiques tels que le croisement et la mutation.

L'algorithme génétique est une méthode itérative de recherche qui main-


tient une population d'individus pour chaque génération. La manière d'évoluer
consiste à sélectionner certains individus de la population P(t) (les parents) et
d'en transformer quelques-uns avec des opérateurs génétiques pour générer une
nouvelle population P(t+1) (les enfants) qui nous espère, aura des meilleurs in-
dividus que la population de la génération précédente. Le processus s'arrêtera
une fois qu'il a trouvé une solution du problème ou quand un nombre maximal
de générations aura été généré. L'algorithme génétique peut être résumé par
l'algorithme 5.

Résultat : le meilleure individu


Initialiser de la population de µ individus;
Évaluation des µ individus;
tant que critère d'arrêt n'est pas atteint faire
Sélection de λ individus en vue de la phase de reproduction;
Croisement des λ individus sélectionnés;
Mutation des λ individus sélectionnés;
Évaluation des λ enfants obtenus;
0

Sélection pour le remplacement;


n
Algorithme 5: Algorithme évolutionnaire générique

1.2 Essaims particulaires

1.2.1 Présentation
L'optimisation par essaims particulaires (OEP) ou (PSO (Particule Swarm
Optimization) en anglais)[19] est une métaheuristique d'optimisation, inven-
tée par Russel Eberhart (ingénieur en électricité) et James Kennedy (socio

16
psychologue) en 1995.

Cet algorithme s'inspire à l'origine du monde des vivants. Il s'appuie no-


tamment sur un modèle développé par le biologiste Craig Reynolds à la n
des années 1980, permettant de simuler le déplacement d'un groupe d'oiseaux.
Cette méthode d'optimisation se base sur la collaboration des individus entre
eux. Elle a d'ailleurs des similarités avec les algorithmes des colonies de four-
mis, qui s'appuient eux aussi sur le concept d'auto-organisation. Cette idée
veut qu'un groupe d'individus peu intelligents puisse posséder une organisa-
tion globale complexe. Ainsi, grâce à des règles de déplacement très simples
(dans l'espace des solutions), les particules peuvent converger progressivement
vers un minimum global. Cette méta-heuristique semble cependant mieux fonc-
tionner pour des espaces en variables continues. Au départ de l'algorithme,
chaque particule est donc positionnée (aléatoirement ou non) dans l'espace de
recherche du problème. Chaque itération fait bouger les particules en fonction
de 3 composantes :

 L'ancienne vitesse de la particule.


 La meilleure position de la particule.
 La meilleure position des informatrices.

1.2.2 Description générale


Au départ de l'algorithme, les essaims sont repartis au hasard dans l'espace
de recherche, chaque particule possède une vitesse et une position aléatoire.
Ensuite à chaque pas du temps :
1. Chaque particule évalue la qualité de sa position ainsi elle peut mémoriser
la meilleure position (dans le cas des CSOPs c'est une instanciation valide
des diérentes variables) et la qualité (aussi dans le cas des CSOPs la
qualité est présentée par la valeur de la fonction objectif à optimiser) de
cette position qu'elle a trouvée jusqu'à cet instant.
2. Chaque particule a la capacité de communiquer avec ces congénères et

17
d'échanger les meilleures solutions trouvées. Ces particules sont appelées
les informatrices.
3. Chaque particule, à chaque instant, doit aussi choisir la meilleure parmi
les meilleures performances qu'elle connaisse (soit ces propres perfor-
mances soit les performances des informatrices), elle modie sa vitesse
en fonction de ce choix et se déplace par conséquent.
Pour le choix des informatrices, il y a plusieurs approches. Mais l'approche la
plus utilisée c'est que les informatrices sont xées dès le début de la manière
suivante (cf. Figure 1.2).

Fig. 1.2  Choix des informatrices parmi les sept particules

Les particules sont organisées dans la structure d'un anneau virtuelle et


comme le nombre des informatrices est un paramètre à xer au moment du
lancement de l'algorithme les informatrices d'une particule seront les particules
adjacentes (Exemple dans la gure 1.2 pour un nombre des informatrices de
taille trois pour la particule numéro 1, les informatrices sont les particules
numéros 2 et 7).

A chaque pas du temps la particule doit modier sa vitesse ce qui est en


faite une combinaison linéaire de trois tendances et à l'aide du coecient de

18
conance.
 La tendance aventureuse : La particule continue à se déplacer avec la
vitesse actuelle.
 La tendance conservatrice : La particule revienne sur ces pas (vers les
meilleures positions déjà trouvées) pour cette tendance il peut y avoir
un terme de hasard qui favorise l'exploration de l'espace de recherche.
 La tendance sociale : La particule suit l'informatrice qui a la meilleure
position.

Fig. 1.3  Principe de déplacement d'une particule

Pour réaliser son prochain mouvement, chaque particule combine trois ten-
dances : suivre sa propre vitesse, revenir vers sa meilleure performance et aller
vers la meilleure informatrice. La gure 1.3 illustre la stratégie de déplacement
d'une particule.

1.2.3 Formalisation
L'OEP peut être formalisée par, la dimension de l'espace de recherche D.
La position courante d'une particule dans cet espace à l' instant (t) est donnée
par le vecteur X(t). La vitesse courante est V(t). La meilleure position trouvée

19
localement est notée par Pl (t). La meilleure position donnée par les informa-
trices est donnée par Pg (t). Le nieme élément de vecteur X(t) est noté xn (t).
Les équations de mouvement d'une particule pour chaque dimension d sont :

V (t) = w ∗ V (t − 1) + α × (Pl − X(t − 1)) + β × (Pg − X(t − 1)) (a)

X(t) = V(t)+X(t-1) (b)

Pour une bonne convergence, les valeurs d'α et β ne doivent pas être choisies
indépendamment. En pratique, ces deux variables peuvent être calculées par
une formule.

Lors de l'évolution de l'essaim, il peut arriver qu'une particule sorte de l'es-


pace de recherche initialement déni. Plus généralement, on souhaite souvent
rester dans un espace de recherche ni donné. Par conséquent, on ajoute un
mécanisme pour éviter qu'une particule ne sorte de cet espace. Le plus fréquent
est le connement d'intervalle.

Supposons, par simplicité, que l'espace de recherche soit [xmin , xmax ].Alors,
ce mécanisme stipule que si une coordonnée xd , calculée selon les équations de
mouvement, sort de l'intervalle [xmin , xmax ], on lui attribue en fait la valeur du
point frontière le plus proche. De plus, on complète souvent le mécanisme de
connement par une modication de la vitesse.

L'algorithme PSO est initialisé par une population des solutions potentielles
aléatoires, interprétées comme des particules se déplaçants dans l'espace de re-
cherche. Chaque particule est attirée vers sa meilleure position découverte par
le passé ainsi que vers la meilleure position découverte par les particules de son
voisinage (ou de tout l'essaim, dans la version globale de l'algorithme). L'algo-
rithme d'optimisation par essaims particulaires est résumé par l'algorithme 6.

20
Initialisation aléatoire des positions de chaque particule;
tant que le critère d'arrêt n'est pas atteint faire
pour chaque particule i faire
pour i = 1 à N faire
Déplacement de la particule selon les formules (a) et (b) ;
Évaluation des positions;

si f (Xi ) < f (p→i ) alors
→ →
pi =Xi ;
n

si f (p→i ) < f ( g ) alors
→ →
pi = g ;
n
n
n
n
Algorithme 6: Algorithme d'optimisation par essaim particulaire (ba-
sique)

1.2.4 Principales caractéristiques


L'algorithme PSO présente quelques propriétés intéressantes, qui le font
un bon outil pour de nombreux problèmes d'optimisation, particulièrement
les problèmes fortement non linéaires, continus ou mixtes (certaines variables
étant réelles et d'autres entières) :
 Il est facile à programmer, quelques lignes de code susent dans n'im-
porte quel langage évolué.
 Il est robuste (de mauvais choix de paramètres dégradent les perfor-
mances, mais n'empêchent pas d'obtenir une solution).
Signalons de plus, qu'il existe des versions adaptatives qui évitent même
à l'utilisateur la peine de dénir les paramètres (taille de l'essaim, taille des
groupes d'informatrices, coecients de conance). Par ailleurs, on notera que

21
cette heuristique se démarque des autres méthodes évolutionnaires (typique-
ment les algorithmes génétiques) sur deux points essentiels : elle met l'accent
sur la coopération plutôt que sur la compétition et il n'y a pas de sélection (au
moins dans les versions de base), l'idée étant qu'une particule même actuelle-
ment médiocre mérite d'être conservée, car c'est peut-être justement elle qui
permettra le succès futur, précisément du fait qu'elle sort des sentiers battus.

1.3 Les systèmes multi-agents

1.3.1 Présentation
L'intelligence articielle IA est reconnue comme étant une discipline infor-
matique qui a pour objectif de modéliser ou de simuler des comportements
humains dits intelligents tels que la perception, la prise de décision, la com-
préhension, l'apprentissage, etc.

L'intelligence articielle classique s'attache à la construction de programmes


informatiques, capables d'exécuter des tâches complexes en s'appuyant sur
une centralisation et une concentration de l'intelligence au sein d'un système
unique. Elle nécessite d'intégrer au sein d'une même base de connaissances,
l'expertise, les compétences et les connaissances des diérents individus qui,
dans la réalité, communiquent et collaborent à la réalisation d'un but com-
mun. En eet, elle considère les programmes comme des entités individualisées
capables d'accomplir une tâche nécessitant des connaissances, une capacité de
raisonnement et une part d'expérience. Il s'agit d'une décision centralisée et de
traitement séquentiel. D'autre part, l'intelligence articielle distribuée IAD dé-
signe la mise en commun de la capacité de raisonnement de plusieurs individus
an d'atteindre un but qui est impossible ou plus dicile sans cette coopéra-
tion. Elle propose de distribuer l'expertise sur un groupe d'agents non soumis
à un contrôle centralisé, devant être capable de travailler et d'agir dans un en-
vironnement commun et de résoudre les conits éventuels. Ainsi, la résolution

22
est partagée entre plusieurs entités ou chacune d'entre elles étant responsables
d'une tâche bien déterminée et possède une vue limitée du problème. La résolu-
tion d'un problème est donc le fruit d'une interaction entre entités relativement
autonomes et indépendantes appelé agent. En résumé, l'IAD s'intéresse entre
autres à la modélisation des comportements intelligents qui sont le produit de
l'activité coopérative entre plusieurs agents d'où la réalisation des systèmes
dits " multi-agents ".

1.3.2 Dénitions
1.3.2.1 Agent

Un agent[23] est une entité physique ou virtuelle :


1. Qui est capable de percevoir et d'agir dans un environnement de manière
autonome.
2. Qui peut interagir directement avec d'autres agents.
3. Qui possède un ensemble de buts individuels ou une fonction de satisfac-
tion.
4. Qui possède des ressources propres.
5. Qui possède des compétences, des expertises et des services.
Un agent est une entité ayant un comportement autonome et tend à satis-
faire ses objectifs, en tenant compte des ressources et des compétences dont elle
dispose et en fonction des communications et des interactions avec les autres
agents. Il évolue dans son environnement pour lequel il est capable de le per-
cevoir et d'y agir dessus. Les agents sont organisés selon des lois de type social
et possèdent des fonctions principales de perception, de décision, d'action, de
communication, de négociation et de coopération.

Les agents sont autonomes et exibles. L'autonomie désigne l'auto-contrôle.


En eet, ils ne sont ni dirigés ni guidés par des commandes provenant de
l'utilisateur, mais par un ensemble des tendances qui peuvent prendre la forme

23
des buts individuels ou d'une fonction de satisfaction. La exibilité signie :
réactivité (rapidité d'agir), pro-activité (agir à une situation avec une prise
d'initiative et pouvoir prendre en charge une tâche qui aura intérêt après sans
être guidé), et capacités sociales (savoir interagir avec les autres).

Un agent doit être placé dans un environnement. Ce dernier est une com-
posante principale qui inue le comportement de l'agent puisqu'un agent fait
la perception de son environnement et réagit selon cette perception.

Une architecture interne d'un agent présente :


1. Ses objectifs à atteindre.
2. Ses ressources : pour agir, un agent a besoin d'un certain nombre des
ressources : énergie, CPU, quantité de mémoires, accès à certaines res-
sources.
3. Ensemble d'actions qui peuvent être réparties en :

(a) propres compétences, connaissances et actions qu'il est capable d'ac-


complir.
(b) Une couche de communication et de dépendance avec les autres
agents pour les tâches qu'il est incapable d'accomplir.
(c) Un plan d'action : chaque agent procède par étape de planication
de ses actions pour atteindre ses objectifs.

1.3.2.2 Système multi-agents

Un système multi-agents (SMA) est un système composé :


 Un ensemble d'agents.
 Un environnement.
 Un ensemble d'opérateurs d'interaction, de perception, manipulation,
etc...
 Ensemble des relations.
Donc un système multi-agents (SMA)[23] est un système composé d'un
ensemble d'agents situés dans un certain environnement et interagissant selon

24
Fig. 1.4  Dénition d'un système multi-agents[23].

certaines relations. Un système multi-agents est résumé par la gure 1.4

1.3.3 Les modèles d'agent


1.3.3.1 Agent réactif

Les agents réactifs sont considérés comme des agents simples qui sont li-
mités a leur perception dans l'environnement et leur comportement. Ce type
d'agent n'est pas capable de décider ni de raisonner(cf. Figure 1.5).

Fig. 1.5  Agent réactif.

25
1.3.3.2 Agent cognitif

Un agents cognitifs est un agent qui possède des croyances, d'intensions.


Il est capable de raisonner et prendre des décisions. Il dispose d'une base de
connaissances comprenant les diverses informations liées à ses domaines d'ex-
pertise et à la gestion des interactions avec les autres agents et son environne-
ment. Les agents cognitifs sont généralement intentionnels, ils possèdent des
buts des plans explicites leur permettant d'accomplir leurs buts (cf. Figure
1.6).

Fig. 1.6  Agent cognitif.

Conclusion

Dans ce chapitre, nous avons dressé l'état de l'art du formalisme CSP par
quelque dénition, exemples des extensions et méthodes de résolution. Puis
nous avons donné une revue sur l'algorithme des essaims particulaires. Enn,
nous avons également donné un aperçu sur les systèmes multi-agents.

26
Chapitre 2

Algorithme d'Optimisation par


Essaims Particulaires Distribués
Dynamiques Doublement Guidés
(D3GPSO)

Introduction

Dans ce chapitre, nous allons donner une description concrète de l'algo-


rithme D3 GPSO et détailler les diérents concepts utilisés par cet algorithme.
Puis nous présentons une conception de l'application à développer.

2.1 Principes de base

2.1.1 Correspondances entre CSP et PSO


Pour pouvoir utiliser l'algorithme PSO dans la résolution des CSP, il faut
mettre les CSP dans une forme exploitable par l'algorithme. Nous supposons

27
que le CSP comporte n variables et chaque variable peut être assignée par une
seule valeur de son domaine. Chaque contrainte peut inclure de 1 à n variables.

D'abord, le PSO demande un espace de recherche où les particules peuvent


se déplacer. Donc, nous pouvons utiliser le nombre des variables de CSP comme
dimension de l'espace de recherche, une variable pour chaque dimension. Dans
chaque dimension i la particule ne prend qu'une valeur qui est dans le do-
maine de la variable i. Donc une position d'une particule est une instanciation
complète des variables (var1 , var2 ,..., varn ) (cf. Figure 2.1).

Fig. 2.1  La position xi d'une particule

La vitesse Vi (t) d'une particule Pi est un vecteur de dimension n qui permet


le changement de la position de la particule Xi (t-1) vers la position Xi (t)(cf.
Figure 2.2).

28
Fig. 2.2  Le changement de la position d'une particule à travers la vitesse Vi .

2.1.2 Concept de Template


L'approche proposé s'inspire de l'algorithme D3 G2 A de S. BOUAMAMA
et K. GHEDIRA[4]. A chaque variable du vecteur position, nous allons atta-
cher une nouvelle structure de donnée que nous appelons Template. Pour une
variablei,j on associe une Templatei,j où les indices i et j désigne la variable j de
la particule i. la Templatei,j de la variablei,j contient un poids qui représente le
nombre des contraintes violées par cette variable. Un poids est un entier positif
qui ne dépasse pas le nombre total des contraintes du problème. Pour chaque
vecteur de position, l'opérateur de pénalisation commence par l'initialisation
de tous les poids de la Template correspondante. Puis il vérie la violation des
contraintes. Pour une contrainte violée Cj , tous les poids des variables impli-
quées dans cette contrainte sont incrémentés et le traitement sera répété pour
toutes les contraintes. Pour chaque nouvelle position, l'opérateur de pénalisa-
tion vérie la violation des contraintes et met à jour les poids de la Template
associée. La gure 2.3 présente un exemple sur la notion de Template.

29
Fig. 2.3  Exemple sur la notion de Template.

2.1.3 Dynamique Globale


L'idée de la dynamique globale est de partitionner la population initiale
en sous-populations et d'aecter chacune à un agent qui s'appelle " Agent-
Espèce ". Une sous-population est composée des particules qui ont la fonction
de tness dans le même FFR (Fitness Function Range), qui est la spécicité
de cet agent. Aussi un autre type d'agent intermédiaire qui existe qui s'appelle
" Agent Interface " qui est nécessaire entre la société des agents Espèces et
l'utilisateur. Cet agent à pour objectif de détecter les optimums, récupérer les
paramètres depuis l'utilisateur et il se charge de la création des nouveaux "
Agents Espèces " si nécessaire.

L'agent interface génère une population des particules d'une manière aléa-
toire. Cette population initiale est partitionnée selon une spécicité. L'agent
interface crée autant d'agents espèce que le nombre des spécicités distinctes
des particules générées aléatoirement. Ensuite, il aecte à chaque agent espèce
une sous population. Puis il lui demande de commencer le processus d'optimi-
sation.

Avant que l'agent espèce commence son processus d'optimisation, chaque

30
agent espèces initialise les Templates puis il exécute l'algorithme PSO sur la
sous-population attribuée par l'agent Interface au début.

A chaque génération, l'agent vérie la valeur de tness de chaque particule


de sa sous population. Si ce nombre est égal à la spécicité de l'agent à laquelle
la particule appartient alors cet agent conserve cette particule dans sa sous-
population. Dans le cas contraire, deux types de traitements sont possibles.

 S'il existe un agent dont la spécicité peut contenir la valeur de tness


de la particule courante donc cette particule sera envoyée à cet agent.
 Sinon la particule sera envoyée à l'agent interface qui va créé un autre
agent espèce avec la spécicité convenable et lui envoi la particule cor-
respondante.

Après avoir créé un nouvel agent espèce, l'agent interface informe tous les
autres agents espèces sur sont existence.

Les agents poursuivant l'exécution de processus tant que le critère d'arrêt


n'ait pas été atteint qui est le nombre des générations xé par l'utilisateur au
début.

2.1.4 Structure des agents


Chaque agent dans cette approche possède une structure simple qui se
résume dans deux types de connaissance : dynamiques et statiques.

2.1.4.1 L'agent interface

L'agent interface possède :


 Le problème à résoudre.
 Les diérents paramètres introduits par l'utilisateur.
 Connaissance dynamique : la meilleure position visitée par les diérentes
particules.
 Connaissance dynamique : les accointances (liste de tous les agents es-

31
pèces et leur spécicité).

2.1.4.2 L'agent espèce

Chaque agent espèce possède :


 Le problème à résoudre.
 Les paramètres de son algorithme PSO.
 Sa spécicité.
 Connaissance dynamique : la sous-population qu'il gère à chaque géné-
ration.
 Connaissance dynamique : les accointances (les adresses de tous les agents
espèces et de l'agent interface).

2.1.5 L'heuristique de minimisation des conits


Le principe de l'heuristique de minimisation des conits, pour une position
donnée elle détermine la variable qui a violé plus des contraintes. Puis elle
choisit une valeur de son domaine et qui minimise le nombre des contraintes
violées par cette variable.

2.1.6 Probabilité de guidage


Comme cet algorithme appartient aux méthodes de recherche locale, il est
nécessaire d'ajouter un mécanisme de diversication qui permet l'echapement
des optimaux locaux (cf. Fig 2.4). Le mécanisme le plus simple pour diversier
la recherche c'est l'ajout d'un bruit durant le processus de recherche. Dans [25],
la recherche eectue un mouvement aléatoire avec une probabilité P et suit le
processus normal avec une probabilité (1-P). L'algorithme 7 illustre l'utilisation
de la probabilité de guidage pour modier la position d'une particule.

32
Fig. 2.4  Un exemple d'un bassin d'attraction.

tant que le critère d'arrêt n'est pas atteint faire


pour Chaque particule faire
Initialiser aléatoirement;
n
pour Chaque particule faire
FV← Calcule-du-valeur-de-tness-augmenté(particulei );
si FV meilleure que LBest alors
LBest ← FV;
n
si random[0,1]<Pguidage alors
Calculer la vitesse de la particule avec l'équation du calcule
de la vitesse;
Mise à jour de la position de la particule;
sinon
Mise à jour aléatoire de la position de la particule;
n
n
n
Algorithme 7: Algorithme d'optimisation par essaims particulaires dou-
blement guidé (DGPSO)

33
2.1.7 Le détecteur des optimums locaux et l'opérateur
de pénalisation
An de garantir que les particules ne restent pas dans des parties de l'es-
pace de recherches qui ne contiennent que des optimums locaux et évités la
stagnation de la population pendant plusieurs générations. L'approche utilise
le détecteur des optimums locaux LOD (Local Optimum Detector) qui re-
présente le nombre des générations dans lesquelles le voisinage ne donne pas
d'amélioration. Si la meilleure solution trouvée par cet agent reste inchangée
pendant LOD génération on peut conclure que les particules gérer sont blo-
quées dans un optimum local. En conséquence, la meilleure particule ayant
cette valeur de tness sera pénalisée, c'est-à-dire que le compteur de pénalité,
qui lui est relié, sera incrémenté de 1.

CPi = CPi + 1.

Et donc, pour la nouvelle valeur de LOD, si la valeur de tness inchangée


et inférieur à la meilleure valeur de tness donc automatiquement le LOD sera
remise à 1. Sinon la variable LOD restera inchangée. Cette variable est donnée
par l'utilisateur au début de la processus d'optimisation, mais il est changée
par chaque agent selon la valeur de tness et le paramètre 

2.1.8 Processus détaillé


L'approche d'optimisation utilisée par les agents espèces est une extension
des OEP ou PSO classique par l'utilisation de la probabilité de guidage, le
concept de Template et l'heuristique de minimisation des conits. L'approche
commence pour chaque particule par la génération d'une valeur aléatoire dans
l'intervalle [0 . . 1] , selon la valeur générée il existe deux traitements possibles.
1. Si cette valeur est inférieure à la valeur de la probabilité de guidage
donc, la vitesse et la nouvelle position sont calculées selon les formules
suivantes :

34
(a) V (t) = w ∗ V (t − 1) + α ∗ (Plbest − Xid ) + β ∗ (Pgbest − Xid )
(b) Xid = Xid + V (t)

Les valeurs d'α et β sont calculés en utilisons les Templates des vecteurs
positions selon la formule suivante :
(a) α = templatelbest /(templatelbest + templategbest + 1).
(b) β = templategbest /(templatelbest + templategbest + 1).
Avec ces formules, les paramètres α et β garantissent que les particules
poursuivent les meilleures particules.
2. Sinon, la position de la particule va être changée aléatoirement (pour
diversier la recherche) par la formule suivante.
 Xid = random ∗ Xid .
Après avoir calculé la nouvelle position de la particule courante, le processus
calcule la valeur de tness augmentée de cette position qui est denie par :
P
g(ps) = f (ps) + λ ∗ i (CPi ∗ Ii (ps))

Où ps est une solution potentielle, λ est un paramètre de régularisation qui


détermine la proportion de la contribution des pénalités dans la fonction de
tness augmentée. CPi est le compteur de pénalité correspondant a la particulei
(tout les CPi sont initialisés à 0) et Ii est une fonction booléenne qui indique
si ps satisfait toutes les contraintes ou non : Ii (ps) = 1 si ps satisfait toutes les
contraintes, 0 sinon.

Puis l'agent vérie le FVR de la position trouvée et applique le concept de


dynamique global (cherche l'agent responsable de cette spécicité et il envoie
la particule à cet agent). Ensuite, si la solution est meilleure que le best alors
le best prend cette position comme valeur. Enn, le processus vérie s'il existe
une stagnation avec l'opérateur LOD (Local Optimum Detector) et l'opérateur
de pénalisation.L'algorithme 7 résume le comportement d'un agent espèce.

35
Initialiser les connaissances locales;
tant que Le nombre maximal des génération n'est pas atteint faire
pour Chaque particule j de la sous population faire
FVj ←Calcule de la valeur de tness augmenté(Particulej );
n
si F Vj meilleure que Best-FV alors
Best-FV← FVj ;
Best-Particule←Particulej ;
n
si FVj ∈/ rangei alors
si Existe-agent(EspèceF V ) alors
Envoyer
Msg(Espècei ,EspèceF V ,take-into-account(particulej ));
sinon
Envoyer Msg(Espècei ,Interface,create-agent(particulej ));
n
n
n
si best-FV=Last-FV alors
Stat-counter←stat-counter+1;
sinon
Last-FV=best-FV ;
n
si Stat-counter=LODi alors
Last-stat-FV←Last-FV;
Pénaliser(Best-Particule);
CalculeOperateurLOD();
Stat-counter←1;
n
Algorithme 8: Comportement de l'espècei

36
2.2 Conception

2.2.1 Architecture de l'application


Pour commencer le processus d'optimisation, l'utilisateur commence par
donner les paramètres nécessaires (Nombre des générations, LOD ... ) à l'agent
interface. Puis il lance l'exécution. Enn, il récupère la solution trouvée.

Il faut signaler que l'utilisateur peut interrompre l'exécution de l'algorithme


à tout moment et récupérer la meilleure solution trouvée jusqu'à l'arrêt de
l'exécution (cf Figure 2.5).

Fig. 2.5  Architecture de l'application.

2.2.2 Diagramme des cas d'utilisation


Dans cette partie, nous présentons le diagramme de cas d'utilisation (cf
Figure 2.6) qui nous permet de spécier les rôles des diérents acteurs et les
fonctionnalités nécessaires du système.

37
Fig. 2.6  Digramme de cas d'utilisation.

2.2.2.1 Les acteurs


1. L'utilisateur : représente la personne qui utilise l'application pour ré-
soudre un problème.
2. L'agent espèce : c'est une entité logicielle qui exécute l'algorithme d'op-
timisation.
3. L'agent interface : c'est une entité logicielle qui permet la communication
avec l'utilisateur et gère les agents espèces.

2.2.2.2 Description textuelle


1. Communication : ce cas d'utilisation permet la communication de l'uti-
lisateur avec l'agent interface (introduction des paramètres, achage des
résultats,...).

38
2. Gestion des agents espèces : permet de gérer les diérents agents
espèces crés (ajout, suppression,...).
3. Gestion des messages : permet l'envoi et la réception des messages
entre les diérents agents pour coordonner leurs comportements.
4. Appliquer D3 GPSO (Distributed Dynamic Double Guided Par-
ticul Swarm Optimization) : ce cas d'utilisation est composé des plu-
sieurs autres cas et il permet d'appliquer le processus d'optimisation.

2.2.3 Diagramme de classes


Dans cette partie, nous présentons le diagramme de classes (cf. Figure 2.7)
qui représente le modèle statique de l'application.

Fig. 2.7  Diagramme de classes.

39
2.2.4 Diagramme de séquences
Dans cette partie, nous présentons les diagrammes des séquences qui per-
mettent de représenter les interactions entre les diérents objets selon un point
de vue temporel.

Fig. 2.8  Diagramme de séquence "initialisation".

Dans le diagramme Figure 2.8, nous décrivons l'initialisation des diérents


composants de l'application (agent interface, agent espèce, particule).

Le diagramme 2.9 présente le processus d'optimisation exécuté pour la


recherche des solutions. Le diagramme détaille l'ordre chronologique d'envoi
des messages et l'invocation des méthodes.

40
Fig. 2.9  Diagramme de séquence " l'exécution de processus d'optimisation
D3 GPSO"

Conclusion

Dans ce chapitre, nous avons présenté le principe de base de l'approche,


qui comporte les diérentes techniques, heuristiques et les structures des agents
utilisé. Puis nous avons présenté une conception de l'application qui donne une
vision claire sur les tâches à réaliser.

41
Chapitre 3

Réalisation et expérimentations

Introduction

Dans ce chapitre, après une introduction sur l'environnement matériel et


logiciel utilisé, nous présentons des résultats numériques relatifs à l'algorithme
proposé appliqué sur des problèmes de la littérature. Puis ces résultats seront
analysés et commentés.

3.1 Environnement de travail

3.1.1 Environnement matériel


Du point de vue matériel nous avons développé et expérimenté l'algorithme
sur une machine doubles processeurs à 2.0 GHZ, 3 Go de RAM.

3.1.2 Environnement logiciel


De point de vue logiciel, nous avons travaillé sur une Platform Windows
Vista sur laquelle sont installés les outils nécessaires :

42
 Environnement de développement et d'exécution : MadKit(Multi agents
developpement KIT ).
 Logiciel de modalisation AUML :OpenTool.
 Outil de documentation et rapport : Compilateur Latex avec l'éditeur
TecXnicCenter.

3.2 Choix de la Platform

MadKit est une plateforme de développement et d'exécution des systèmes


multi-agents et plus particulièrement les systèmes basés sur l'organisation AGR
(Agent Group Rôle).

L'organisation AGR (cf. Figure 3.1) propose que le système doive être com-
posé de :
 Agent : qui est une entité informatique qui envoie et reçoit des messages,
qui peuvent entrer et sortir des groupes et qui joue des rôles dans ces
groupes. Cette entité est autonome et communicante.
 Groupe : qui est constitué des rôles et regroupe des agents qui ont soit un
aspect en commun par exemple des agents qui possèdent le même langage
de communication, soit un ensemble d'agents qui travaillent ensemble,
qui collaborent à une même activité (des agents qui essayent de résoudre
un problème).
 Rôle : qui correspond soit à un statut d'un agent, soit à une fonction
particulière qu'un agent joue dans un groupe. Les rôles sont locaux aux
groupes et n'ont de sens qu'à l'intérieur d'un groupe. Un rôle ne peut
pas être à cheval sur deux groupes.

43
Fig. 3.1  le Modèle de MadKit.

La paltforme MadKit est reconnue par les qualités suivantes :


1. Simplicité de mise en ÷uvre et de prise en main.
2. Pas de langage prédéni de communication.
3. Plusieurs types des messages peuvent être utilisés (StringMessage, Act-
Message, XMLMessage, ObjectMessage).
4. Possibilité d'avoir des vues (graphiques).
5. Plate-forme distribuée open source (GPL/LGPL).
6. Les agents peuvent être programmés à partir de plusieurs langages de
programmation et des scripts (Java, Python, Scheme, Jess (langage de
règles), BeanShell (interprète Java), ...).
7. Intégration très facile de la distribution au sein d'un réseau.
8. L'aspect pratique et ecace des concepts organisationnels pour créer
diérents types d'applications.
9. Hétérogénéité des applications et des types d'agents utilisables : on peut
faire tourner sur MadKit aussi bien des applications utilisant des agents
réactifs simples de type fourmis plus de 50000 agents ayant un com-
portement simple ont tourné en MadKit, que des applications disposant
d'agents cognitifs sophistiqués.

44
Aussi MadKit est écrit en Java et fonctionne en mode distribué de manière
transparente à partir d'une architecture "peer to peer" sans nécessiter de ser-
veur dédié. Il est ainsi possible de faire communiquer des agents à distance
sans avoir à se préoccuper des problèmes de communication qui sont gérés par
la plateforme.

MadKit est construit autour du concept de "micro-noyau" et "d'agenti-


cation de services". Le micro-noyau de MadKit est très petit moins de 100Ko
de code, car il ne gère que les organisations (groupes et rôles) et les communi-
cations à l'intérieur de la plateforme. Le mécanisme de distribution, les outils
de développement et de surveillance des agents, les outils de visualisation et
de présentation sont des outils supplémentaires qui viennent sous la forme
d'agents que l'on peut ajouter au noyau de base(cf. Figure 3.2).

Fig. 3.2  Architecture générale de MadKit.

45
3.3 Expérimentations et illustration

3.3.1 Description de processus d'expérimentation


3.3.1.1 Démarrage de l'application

An d'exécuter l'application l'utilisateur doit lancer la plateforme multi-


agents MadKit. Puis, lancer l'agent interface. Enn, fournir les paramètres
nécessaires(cf. Figure 3.3).

Fig. 3.3  Interface de l'application.

3.3.1.2 Achage du résultat

Après avoir lancer l'exécution, l'agent interface instancie la classe parti-


cule pour initialiser des particules aléatoires. Puis, pour chaque particule il
calcule le FVR (Fitness Value Range) et cré un agent Espèce pour chaque
FVR. Ensuite, il envoi à chaque agent espèce les particules qu'il doit gérer et

46
un message (ApplyBehaviour) pour que l'agent espèces commence l'exécution
de l'algorithme d'optimisation proposé. A la n de l'exécution, chaque agent
espèce doit envoyer dans un message une copie de la meilleure particule(cf Fi-
gure 3.4).

Fig. 3.4  Exemple d'exécution avec deux agents espèces.

L'achage renferme :
1. L'agent Interface :

(a) La meilleure solution globale trouvée.


(b) Les diérentes valeurs des variables.
(c) Le nombre des contraintes violées par cette solution.

2. L'agent Espèce :
(a) La meilleure solution trouvée par sa sous-population des particules.
(b) Le nombre des contraintes violées par la solution local.

47
3.3.2 Mode expérimentale
Le but des expérimentations est de comparer l'approche proposée à l'ap-
proche centralisée proposée par Hu et Eberhart [24] et l'algorithme génétique
proposé par Kozeil et al [3].

Les expérimentations ont été eectuées sur onze problèmes de la littéra-


ture[3] qui sont proposés dans l'annexe. Ces problèmes contiennent plusieurs
types des fonctions objectifs (linéaire, quadratique, non linéaire,...) avec plu-
sieurs nombres et types des contraintes et des variables.

Les problèmes de test possèdent la particularité que les espaces faisables


sont de topologies diérentes. Les informations sur les fonctions de test sont
présentées dans le tableau 3.1. Pour chaque cas nous présentons le nombre
de variables, le type de la fonction f, la taille de l'espace faisable donné par
un ratio ρ = (Espace f aisable)/(Espace total) et le nombre de contraintes
de chaque type (inéquation linéaire LI, inéquation non linéaire NI et équation
non linéaire NE).

Concernant les paramètres de l'algorithme, nous employons :


 Nombre de générations égal à 1000.
 Taille de la population initiale égale à 100.
 Le facteur d'inertie w égal à [0.5*(Random/2)].
 LOD égal à 3.
  égal à 0.6.
 λ égal à 10.
 Pguidage égale à 0.6.
Nous exécutons 12 fois l'algorithme pour chaque cas et nous prenons la
moyenne sans considérer les points aberrants.

48
Fonction n Type du fonction ρ LI NE NI
G1 13 quadratique 0.0111% 9 0 0
G2 k non linéaire 99.84874 % 0 0 2
G3 k polynomial 0.0000% 0 1 0
G4 5 quadratique 52.1230% 0 0 6
G5 4 cubique 0.0000% 2 3 0
G6 2 cubique 0.0066% 0 0 2
G7 10 quadratique 0.0003% 3 0 5
G8 2 non linéaire 0.8560% 0 0 2
G9 7 polynomial 0.5121% 0 0 4
G10 8 linéaire 0.0010% 3 0 3
G11 2 quadratique 0.0000% 0 1 0

Tab. 3.1  Sommaire sur les problèmes de test.

Les performances de l'approche sont dégagées par les deux mesures sui-
vantes :
 Temps d'exécution : temps CPU nécessaire pour résoudre une instance
du problème.
 La solution trouvée.
La première mesure montre la complexité, et la deuxième la qualité. La com-
paraison des approches sera eectuée que pour la qualité de la solution parce
que Hu et Eberhart dans [24] n'ont présenté que les solutions obtenues sans les
temps d'exécution qui présente le point de faiblesse de l'approche centralisée.
Puisqu'à chaque génération les particules doivent être obligatoirement initiali-
sées dans des espaces faisables (si n'existe pas un espace faisable, le processus
se bloque).

3.3.3 Résultats
Pour une meilleure évaluation du performance de l'approche, nous avons
exécuté l'algorithme 12 fois pour chaque cas de test.

49
La moyenne des valeurs de tness sont calculées pour chaque cas. Les ré-
sultats sont illustrés dans le tableau si dessous.

* Tous les résultats trouvés par D3 GPSO pour ce cas violent trois contraintes.

Fonction Optimum D3 GPSO PSO AG20000


G1 -15 -14,9495284 -15 -14,7864
G2 0,8036 0,803555075 0,5237 0,796
G3 1 0,99999 0,99999 -0,9997
G4 -30665,5 -30665,5 -30665,5 -30664,5
G5∗ 5126,4981 -115230812,9 - -
G6 -6961,8 -6960,840061 -6960,7 -6952,1
G7 24,306 24,77263091 26,7188 24,62
G8 0,09583 0,095829903 0,09583 0,095825
G9 680,63 682,0562133 680,876 680,91
G10 7049,33 7050,634315 7594,65 7147,9
G11 0,75 0,75 0,75 0,75

Tab. 3.2  Comparaison entre les moyennes des valeurs de tness obtenu pour
les onze problèmes.

Le tableau 3.2 donne les résultats trouvés pour les onze problèmes de test.
Il faut noter que l'algorithme a pu trouver des solutions intéressantes avec un
temps d'exécutions réduit (comparé avec les approches de la littérature) pour
tous les cas à l'exception du cas G5 et à cause de la dureté des contraintes, l'ap-
proche a pu trouver que des solutions qui violent trois contraintes. Par contre,
les autres approches n'ont pas reporté aucune solution (même des solutions qui
violent quelques contraintes) pour le problème G5 (Puisqu'à l'initialisation des
particules doivent être obligatoirement initialisées dans des espaces faisables).

Concernant le temps d'exécution, il faut signaler que d'après le digramme


3.5 nous constatons que la moyenne des temps d'exécution pour tous les pro-
blèmes est raisonnable à l'exception des problèmes G7 et G10 à cause du dureté

50
Fig. 3.5  Temps d'exécutions moyen pour les onze problèmes.

des contraintes et de taille des domaines des diérentes variables.

en se basent sur les résultats déjà trouvés dans le tableau 3.2 et pour avoir
des comparaisons claires et rapides des performances des diérentes approches,
nous calculons les ratios des performances des deux algorithmes à comparer en
utilisant la valeur de tness trouvée comme suit :

Problème Min Max


Optimum Positif ratio=F_ALGO2 /F_ALGO1 ratio=F_ALGO1 /F_ALGO2
Optimum Négatif ratio=F_ALGO1 /F_ALGO2 ratio=F_ALGO2 /F_ALGO1

Tab. 3.3  Calcule Ratio de tness

Tout ratio supérieur ou égal à 1 nous indique une performance supérieure


de l'algorithme ALGO1 .

3.3.3.1 Comparaison avec l'optimum

Nous calculons les performances de la valeur de tness de D3 GPSO et de


l'optimum trouvé dans la littérature.

Du point de vue valeur de tness nous remarquons que les résultats obtenus
sont égale ou très proche de l'optimum à l'exception de problème G5 à cause
du taille réduite de l'espace faisable (0 ,0000%) et la dureté des contraintes.

51
Fig. 3.6  Ratio de tness avec les optimums connus.

3.3.3.2 Comparaison avec l'approche centralisée et l'algorithme gé-


nétique

Fig. 3.7  Ratio de tness avec les résultats trouvés par PSO et AG20000 .

Du point de vue valeur de tness, l'approche proposée trouve des solu-


tions meilleures ou égales à celles de l'approche centralisée et de l'algorithme
génétique. Pour le problème G2, l'approche permet de trouver des solutions
meilleures que celles données par les autres approches avec un nombre d'itéra-
tions moins important (5000 itérations). Par contre, l'approche centralisée ne

52
permet pas d'obtenir des solutions proches de l'optimale avec sa version globale
en utilisant un grand nombre d'itération (20000 itération). Ce qui concerne l'al-
gorithme génétique il permet d'atteindre des résultats proches de l'optimum,
mais avec un temps d'exécution énorme et un nombre d'itérations important
(20000 itérations). Pour le cas G5 ni la version centralisée (PSO) ni l'algorithme
génétique arrivent à trouver une solution à cause du dureté des contraintes.
Mais pour tous les cas où les autres approches n'arrivent pas à des solutions,
l'approche proposée arrive à garantir des solutions qui ne violent que quelques
contraintes. Ces solutions présentent un apport considérable et peuvent être
très utiles dans des problèmes réels.

3.4 Chronogramme

Ce travail a été réalisé pendant une période de 4 moins du 08/02/2010 au


08/06/2010. Le travail a été bien élaboré comme suit :

Fig. 3.8  Chronogramme.

53
Conclusion

Dans ce chapitre, nous avons présenté les environnements de travail. Puis,


l'aperçu de l'application. Enn, les diérents résultats des expérimentations
eectuées dans le but de déterminer la performance de l'approche proposée.
Comparé à PSO et AG20000 , D3 GPSO donne l'optimum ou des meilleurs résul-
tats à la moyenne. L'amélioration est due à la nouvelle technique ajoutée de
(diversication et intensication). Rappelons que selon la probabilité de gui-
dage le changement de la position de la particule est tantôt aléatoire (ce qui
diversie la recherche) et tantôt guidé (ce qui intensie la recherche) d'où une
accélération de la recherche des solutions.

54
Conclusion générale et
perspectives

Au cours de ce travail, nous avons implémenté, expérimenté et validé la


nouvelle approche D3 GPSO.

En eet, l'approche D3 GPSO représente une société d'agents créés dyna-


miquement. Ces agents coopèrent pour donner non seulement une bonne "
solution " pour les CSOPs mais aussi pour réduire le temps d'exécution des
PSO. Dans ce cadre, nous avons utilisé deux types d'agents : un agent Interface
et un agent Espèce. Chaque agent Espèce est responsable d'un sous-ensemble
des particules, sur laquelle il applique PSO doublement guidé par une nou-
velle structure de données, dite " Template ", et enrichies avec l'heuristique de
minimisation des conits et la probabilité de guidage.

Comparé à l'algorithme PSO et l'algorithme génétique, l'approche D3 GPSO


s'est montrée meilleure en terme de qualité des solutions est en terme de temps
d'exécution.

Cette ecacité est due à l'utilisation de la probabilité de guidage, le calcul


des positions des particules qui est parfois aléatoire, visant à diversier le
processus de recherche et s'échapper des optimums locaux,et qui est parfois,
guidé an d'améliorer la qualité des solutions.

Nous avons commencé le travail par une étude bibliographique, qui nous
a permis de nous nous situons par rapport à la littérature. En deuxième lieu
nous avons donné un aperçu sur l'approche proposée et une conception de l'ap-

55
plication à développer. Enn, nous avons expérimenté et validé l'application à
une version centralisée de PSO et l'algorithme génétique.

Nous prévoyons comme perspectives de ce travail, l'application de l'ap-


proche proposée sur des problèmes réels comme le problème d'allocation des
fréquences, problème de tournée des véhicules... Etendre l'approche pour ré-
soudre des autres extensions de CSP comme les fuzzy-CSPs, les dynamic CSPs.
L'ajout des autres mécanismes pour rendre l'approche plus ecace.

56
Bibliographie

[1] R. FOWLER, M. PATERSON et S. TANIMOTO : Optimal packing and


covering in the plane are NP-Complete, Information Processing Letters,
volume 12, pages 133-137 ; 1981.
[2] S.BOUAMAMA, A new Distributed Particle Swarm Optimization Algo-
rithm for Constraint Reasoning, KES'2010, the 14th International Confe-
rence on Knowledge-Based and Intelligent Information and Engineering
Systems, Cardi, Wales, UK.
[3] S. KOZIEL et Z. MICHALEWICZ, Evolutionary Algorithms, Homomor-
phous Mappings, and Constrained Parameter Optimization , Evolutionary
Computation.
[4] S. BOUAMAMA et K. GHEDIRA ; A Dynamic Distributed Double Guided
Genetic Algorithm for Optimization and Constraint Reasoning ; Interna-
tional Journal of Computational Intelligence Research.
[5] E. C. FREUDER et M. QUINN, Taking advantage of stable sets of variables
in constraint satisfaction problems, Proceedings of the 9th International
Joint Conference on Articial Intelligence, 1076 -1078, (1985).
[6] E. C. FREUDER et R. J. WALLACE, Partial constraint satisfaction, Pro-
ceedings of the 9th International Joint Conference on Articial Intelligence,
21-70, (1992).
[7] F. GLOVER, Future paths for integer programming and links to articial
intelligence, Computers and Operations Research pages 533-549, 1986.

57
[8] F. GLOVER et M. LAGUNA, Tabou Search, Kluwer Academic Publishers,
1997.
[9] J. H. HOLLAND, Adaptation in natural and articial systems, The Uni-
versity of Michigan Press, Ann Arbor, 1975.
[10] J. H. HOLLAND, Adaptation in natural and articial systems, An intro-
ductory analsis with applications to biology, control, and articial intelli-
gence, MIT Press/Bradford Books, 1992.
[11] S. KIRKPATRICK, C. D. GELATT et P. M. VECCHI, Optimization by
simulated annealing, Science, pages 671-680, 1983.
[12] V. KUMAR, Depth-rst search, Articial Intelligence, pages 1004-1005,
USA, 1987.
[13] V. KUMAR et Y. J. LIN, A data-dependency-based intelligent backtra-
cking scheme for prolog, Logic Programming, pages 165-181, 1988.
[14] E. L. LAWLER et D. E. WOOD, Partial constraint satisfaction, Procee-
dings of the 9th International Joint Conference on Articial Intelligence,
21-70, (1992).
[15] E. L. LAWLER et D. E WOOD, Branch and Bound methods, Operations
Research, 699-719, (1996).
[16] N. METROPOLIS, A. W. ROSENBLUTH, A. H. TELLER et E. TEL-
LER, Simulated Annealing, J. Chem, pys. 21, 1953.
[17] C. H. PAPADIMITRIOU ET K. STEIGLITZ , Combinatorial optimiza-
tion : Algorithms and complexity, Prentice Hall, 1982.
[18] P. PROSSER, MAC- CBJ, Maintaining arc consistancy with conict-
directed backjumping , Technical Report 95/177, Departement of Com-
puter Science, Université de Strathclyde, Scotland, 1995.
[19] AURICE CLERC et PATRICK SIARRY, Une nouvelle métaheuristique
pour l'optimisation dicile : la method des essaims particulaires, 2003.
[20] R. STALLMAN et G. J. SUSSMAN, Forward reasoning and dependency-
directed backtracking, Articial Intelligence, pages 135-196, 1977.

58
[21] E. P. K TSANG, Foundation of constraint satisfaction ; Academic press,
London, 1993.
[22] T. SHIEX, H. Fargier et G. Verfaillie, Valued Constrait satisfaction pro-
blems : hard and easy problems , In : proc. Of the 14th IJCAI, Montréal
Canada, 1995.
[23] J. FERBER. Les systèmes multi-agents, vers une intelligence collective.
InterEditions, 1995.
[24] HU X. et EBERHART R., Solving Constrained Nonlinear Optimization
Problems with Particle Swarm Optimization,6th World Multiconference on
Systemics, Cybernetics and Informatics (SCI'02), 2002, Orlando,Florida,
USA.
[25] M. BRUYNOOGHE et L. M. PEREIRA, Deduction revision by intelligent
backtracking, Implementations of Prolog, Page 194-215, 1984.
[26] A. SARI, C. ESPANET et D. HISSEL, Optimisation par essaims particu-
laires appliquée à la co-conception du circuit d'air d'une pile à combustible,
présentation detravaux, Laboratoire de recherche en Electronique, Electro-
technique et Systèmes (2ES),2007.
[27] N. E COLLINS, R. W. EGLESE et B. L. GOLDEN, Simulated annealing,
an annotated bibliography, Mathematical and Management Sciences, pages
209-307, 1988.
[28] D. E. GOLDBERG, Genetic algorithms in search, Optimization, and ma-
chine learning, Addison-Wesley, ISA, 1989.
[29] E. BONOMI et J. L. LUTTON, the N-city travelling salesman problem,
Statistical Mechanics and the Metroplis Algorithm, SIAM Review, pages
551-568, 1984.

59
Annexe A

Cette annexe donne une description sur les 11 problèmes de test utlisé pour
évaluer la performance de l'application. c'est fonction sont données par Koziel et
al[3]

 Minimiser
P4 2
P13
G1(x) = 5x1 + 5x2 + 5x3 + 5x4 − 5 i=1 xi − i=5 xi .
Les Contraintes :
2x1 +2x2 +x10 +x11 ≤ 10, 2x1 +2x3 +x10 +x12 ≤ 10, 2x2 +2x3 +x11 +x12 ≤ 10,
− 8x1 + x10 ≤ 0, −8x2 + x1 1 ≤ 0, −8x3 + x1 2 ≤ 0,
− 2x4 − x5 + x10 ≤ 0, −2x6 − x7 + x11 ≤ 0, −2x8 − x9 + x1 2 ≤ 0
Les bornes 0 ≤ xi ≤ 1, i = 1; ...; 9, 0 ≤ xi ≤ 100, i = 10; 11; 12, 0 ≤ x13 ≤ 1.
G1 est une fonction quadratique son minimum global x = (1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1)ou
G1(x) = −15

 Maximiser
P
n cos4 (xi )−2 Qn cos2 (xi )
G2(x) = i=1 √Pn 2 i=1
i=1 xi

Les Contraintes :
Qn Pn
i=1 xi ≥ 0.75, i=1 xi ≤ 7.5n
Les bornes 0 ≤ xi ≤ 10 ; 0 ≤ i ≤ n
G2 est une fonction nonlinear et a un maximum global connue G2(x) = 0.8036 pour
n=10.

i
 Maximiser
√ n Q
G3(x) = ( n ). ni=1 xi avec
Pn 2
i=1 xi = 1; 0 ≤ xi ≤ 1; 1 ≤ i ≤ n La fonction G3
a une solution globale (x1 , ..., xn ) = ( √1n , ..., √1n ) de valeur 1.

 Minimiser

G4(x) = 5.3578547x23 + 0.8356891x1 x5 + 37.293239x1 − 40792.141,


avec les contraintes suivantes :
0 ≤ 85.334407 + 0.0056858x2 x5 + 0.0006262x1 x4 − 0.0022053x3 x5 ≤ 92
90 ≤ 80.51249 + 0.0071317x2 x5 + 0.0029955x1 x2 + 0.0021813x32 ≤ 110
20 ≤ 9.300961 + 0.0047026x3 x5 + 0.0012547x1 x3 + 0.0019085x3 x4 ≤ 25

avec les bornes :


78 ≤ x1 ≤ 102, 33 ≤ x2 ≤ 45, 27 ≤ xi ≤ 45; i = 3, 4, 5. La solution optimal est :
x = (78, 33, 29.995, 45, 36.776), avec G4(x) = −330665.5

 Minimiser
G5(x) = 3x1 + 0.000001x31 + 2x2 + 0.000002/3x32
avec
x4 − x3 + 0.55 ≥ 0,
x3 − x4 + 0.55 ≥ 0
1000 sin(−x3 − 0.25) + 1000 sin(−x4 − 0.25) + 894.8 − x1 = 0,
1000 sin(x3 − 0.25) + 1000 sin(x3 − x4 − 0.25) + 894.8 = 0,
1000 sin(x4 − 0.25) + 1000 sin(x4 − x3 − 0.25) + 1294.8 = 0
0 ≤ xi ≤ 1200; i = 1, 2 et −0.55 ≤ xi ≤ 0.55, i = 3, 4.
La solution connue est :
x = (679.9453, 1026.067, 0.1188764, −0.3962336) avec G5(x) = 5126.4981.

 Minimiser
G6(x) = (x1 − 10)3 + (x2 − 20)3 ,
avec
(x1 − 5)2 + (x2 − 5)2 − 100 ≥ 0,
− (x1 − 6)2 − (x2 − 5)2 + 82.81 ≥ 0,

ii
13 ≤ x1 ≤ 100 et 0 ≤ x2 ≤ 100.
la solution connue est x = (14.095, 0.84296) et G6(x) = −6961.81381.

 Minimiser
G7(x) = x21 + x22 + x1 x2 + 14x1 + 16x2 + (x3 + 10)2 + 4(x4 + 5)2 + (x5 + 3)2 +
2(x6 + 1)2 + 5x27 + 7(x8 − 11)2 + 2(x9 − 10)2 + (x1 0 − 7)2 + 45,
avec
105 − 4x1 − 5x2 + 3x7 − 9x8 ≥ 0,
− 3(x1 − 2)2 − 4(x2 − 3)2 − 2x32 + 7x4 + 120 ≥ 0,
− 10x1 + 8x2 + 17x7 − 2x8 ≥ 0,
− x21 − 2(x2 − 2)2 + 2x1 x2 − 14x5 + 6x6 ≥ 0,
8x1 − 2x2 − 5x9 + 2x10 + 12 ≥ 0,
− 5x21 − 8x2 − (x3 − 6)2 + 2x4 + 40 ≥ 0,
3x1 − 6x2 − 12(x9 − 8)2 + 7x10 ≥ 0,
− 0.5(x1 − 8)2 − 2(x2 − 4)2 − 3x25 + x6 + 30 ≥ 0, −10.0 ≤ xi ≤ 10.0; i = 1, ..., 10.
la fonction G7 est une fonction quadratique avec un minimum global
x = (2.171996, 2.363683, 8.773926, 5.095984, 0.9906548, 1.430574, 1.430574
, 1.321644, 9.828726, 8.280092, 8.375927)
G7(x) = 24.3062091

 Maximiser
sin3 (3πx1 ). sin(2πx2 )
G8(x) = x31 .(x1 +x2 )
,
avec
x21 − x2 + 1 ≤ 0, 1 − x1 + (x2 − 4)2 ≥ 0
0 ≤ x1 ≤ 10 et 0 ≤ x2 ≤ 10.
pour la solution optimale, la fonction G8(x) = 0.1

 Minimiser
G9(x) = (x1 −10)2 +5(x2 −12)2 +x43 +3(x4 −11)2 +10x65 +7x26 +x47 +4x6 x7 −10x6 −8x7
avec
127 − 2x21 − 3x42 − x3 − 4x24 − 5x5 ≥ 0,

iii
282 − 7x1 − 3x2 − 10x23 − 10x23 − x4 + x5 ≥ 0
196 − 23x1 − x22 − 6x26 + 8x7 ≤ 0
− 4x21 − x22 + 3x1 x2 − 2x23 − 5x6 + 11x7 ≥ 0
et
−10 ≤ xi ≤ 10; i = 1, ..., 7.
la fonction G9 est une fonction non linéaire son optimum global est
x = (2.330499, 1.951372, −0.4775414, 4.365726, −06244870, 1.038131, 1.594227)

avec G9(x) = 680.6300573.


 Minimiser
G10(x) = x1 + x2 + x3 ,
avec
1 − 0.0025(x4 + x6 ) ≥ 0,
1 − 0.0025(x5 + x7 − x4 ) ≥ 0,
1 − 0.01(x8 − x5 ) ≥ 0,
x1 x6 − 833.33252x4 − 100x1 + 83333.333 ≥ 0,
x2 x7 − 1250x5 − x2 x4 + 1250x4 ≥ 0
x3 x8 − 1250000 − x3 x5 + 2500x5 ≥ 0
et
100 ≤ x1 ≤ 10000; 1000 ≤ xi ≤ 10000; i = 2, 3; 10 ≤ xi ≤ 1000; i = 4; ...; 8
La fonction G10 est une fonction linéaire et son global minimum est :
x = (579.3167, 1359.943, 5110.071, 182.0174, 295.5985, 217.9799, 286.4162, 395.5979)
G10(x) = 7049.330923

 Minimiser

G11(x) = x21 + (x2 − 1)2


avec
x2 − x21 = 0,
et
−1 ≤ xi ≤ 1, i = 1, 2
avec une solution global x = (±0.70711; 0.5) and G11(x) = 0.75000455.

iv

You might also like