MmeRIAD AMEL Développement d`une Architecture Multi

Transcription

MmeRIAD AMEL Développement d`une Architecture Multi
Université d’Oran - Es SéniaFaculté des Sciences
Département d’Informatique
MEMOIRE
Présenté par
MmeRIAD AMEL Pour obtenir
LE DIPLOME DE MAGISTER
Intitulé :
Développement d’une Architecture Multi-Agent pour un Système
Intéractif d’Aide Multicritère à la Décision
(SIAMD ) en Gestion de Production
Soutenu le :
/
/ 2009
à la salle de conférences de la faculté des sciences
Devant les membres du jury :
Mr B. BELDJILALI
Professeur, Université d’Oran, Algérie (Président)
Mr B. MESSABIH
Maître de Conférences, Université Mohamed Boudiaf d’Oran, Algérie
(Examinateur)
Mme L. BABA-HAMED Maître de Conférences, Université d’Oran, Algérie
(Examinatrice)
Mr K. BOUAMRANE
Maître de Conférences, Université d’Oran, Algérie
(Rapporteur)
Mme N. TAGHEZOUT
Maître de Conférences, Université d’Oran, Algérie
(Rapportrice)
Remerciements
Le travail de recherche présenté dans ce mémoire a été effectué au Département d’Informatique au
sein de l’équipe de l’Informatique et Automatique à l’université d’Oran Es-sénia. Il n’aurait pas
pu aboutir sans le soutien des personnes que je remercie ici.
Tout d’abord, mes prières au DIEU tout puissant !..
Un grand merci à Mr K.BOUAMRANE, Maître de Conférences à l’université d’Oran, qui a
accepté d’être le rapporteur de ce mémoire. Je le remercie pour ses conseils judicieux et pour l’intérêt
qu’il a porté à mon travail.
Un grand merci à Mme N.TAGHEZOUT, Maître de Conférences à l’université d’Oran,pour
avoir accepté de co-rapporter ce mémoire, pour m’avoir dirigée, guidée durant ce travail. Son aide
scientifique, ainsi que ses conseils ont soutenu mon travail de recherche, je la remercie pour son
engagement et sa patience, et sa disponibilité, c’était un plaisir de travailler auprès d’elle. Merci…
Mes plus sincères remerciements vont également à MrB.BELDJILALI, Professeur à l’université
d’Oran, qui nous fait l’honneur de présider le jury. Qu’il trouve ici l’expression de ma profond
respect.
Mes remerciements vont également à MrB.MESSABIH, Maître de Conférences à l’ université
Mohamed Boudiaf d’Oran, pour l’intérêt qu’il a porté à notre travail et d’avoir accepté de le juger
et d’en être examinateur. Qu’il trouve ici l’expression de ma profond respect.
Je tiens à remercier également Mme L.BABA-HAMED, Maître de Conférences à
l’ université d’Oran, d’avoir accepté de juger ce travail et d’en être l’examinatrice. Qu’elle trouve
ici l’expression de ma profond respect.
Je dédie mon travail
A mes parents pour leurs
encouragements et leur présence
dans les moments difficiles,
Je tiens à remercier plus
personnellement mon marie,
A mon beau-pére et ma belle-mére,
A mes frères et ma sœur,
Merci à tous mes camarades et mes amis de l’équipe
"Informatique et Automatique",
A tous ceux qui ont contribué par leurs encouragements
et leurs relectures à la réalisation de ce travail.
Merci…
Sommaire
Introduction générale ................................................................................. ..1
Chapitre 1 Système Intéractif d’Aide à la Décision
1.1 Introduction ............................................................................................................... ..5
1.2 La notion de décision ................................................................................................ ..6
1.3 La prise de décision ................................................................................................... ..6
1.4 Processus de décision ................................................................................................ ..7
1.5 Aide à la décision ...................................................................................................... ..9
1.6 Système Interactif d’Aide à la Décision et Pilotage .................................................. ..9
1.6.1 Système Interactif d’Aide à la Décision (SIAD) .............................................. ..9
1.6.2 Le pilotage décisionnel ...................................................................................... 10
1.6.3 Les éléments d'un système de pilotage .............................................................. 11
1.6.4 Les niveaux de décision dans le cadre du pilotage ............................................ 11
1.6.5 Nature des processus décisionnels dans le cadre du pilotage ............................ 12
1.7 Conclusion ................................................................................................................. 12
Chapitre 2 La gestion de production
2.1 Introduction ............................................................................................................... 14
2.2 Le système de production .......................................................................................... 15
2.2.1 Les caractéristiques d’un système de production ............................................. 15
2.2.2 La gestion de production .................................................................................. 17
2.3 Les Systèmes Automatisés de Production (SAP) ..................................................... 17
2.4 Le pilotage des systèmes industriels ......................................................................... 17
2.4.1 Les fonctions d’un système de pilotage ........................................................... 18
2.4.2 Le pilotage en temps réel ................................................................................. 19
2.4.3 Pilotage et ordonnancement ............................................................................. 19
2.5 Les modèles organisationnels des systèmes de pilotage ........................................... 21
2.6 Description du l’un atelier ......................................................................................... 22
2.6.1 Etats des ressources .......................................................................................... 22
2.6.2 Etats des opérations .......................................................................................... 23
2.6.3 Événements ...................................................................................................... 24
2.6.4 Décisions .......................................................................................................... …25
2.7 Les processus décisionnels associés à la conduite en temps réel
D’un système automatisé de production ................................................................... …25
2.8 Conclusion ................................................................................................................. …27
Chapitre 3 Les systèmes multi-agents
3.1 Introduction ............................................................................................................... …29
3.2 L’intelligence artificielle distribuée .......................................................................... …29
3.3 Les Systèmes Multi-Agents (SMA) .......................................................................... …30
3.3.1 Définition ......................................................................................................... …30
3.3.2 Caractéristiques des agents .............................................................................. …31
3.3.3 La typologie des agents .................................................................................... …32
3.3.4 Interactions et coopération entre agents ........................................................... …33
3.3.5 Intérêts des SMA .............................................................................................. …35
3.4 Applications industrielles .......................................................................................... …36
3.5 Choix et modélisation de la structure de pilotage ..................................................... …37
3.6 Conclusion ................................................................................................................. …39
Chapitre 4 La négociation
4.1 Introduction ............................................................................................................... …41
4.2 Définitions de base de la négociation ........................................................................ …42
4.3 Composantes du modèle de négociation dans les SMA ............................................ …43
4.4 Quelques approches de négociation .......................................................................... …44
4.4.1 Les systèmes de vote ........................................................................................ …44
4.4.2 Les enchères ..................................................................................................... …47
4.4.3 A prendre ou à laisser....................................................................................... …48
4.4.4 Les négociations multi-attributs ....................................................................... …48
4.4.5 Les négociations multi-niveaux ....................................................................... …49
4.4.6 Les négociations combinées ............................................................................. …49
4.4.7 La négociation à base des connaissances ......................................................... …49
4.4.8 La négociation à base d’argumentation............................................................ …49
4.4.9 Le Contract Net Protocol ................................................................................. …50
4.5 Hiérarchie des différents types de négociation.......................................................... …53
4.6 Conclusion ................................................................................................................. …54
Chapitre 5 Proposition d’un protocole de négociation
5.1 Introduction ............................................................................................................... …56
5.2 Architecteur de l'agent SIP (Station Intégré de Pilotage) .......................................... …56
5.3 Elaboration et expérimentation du processus décisionnel ........................................ .…61
5.4 Négociation par Contract Net .................................................................................... ….65
5.4.1Processus de négociation…………………………………………………….. … .65
5.4.2 Structure d’un agent de négociation .................................................................. ….66
5.4.3 Communication entre les agent .......................................................................... ….67
5.5 Intégration de la méthode Electre IIII ....................................................................... ….73
5.5.1 Liste des critères associés aux processus décisionnels ................................... ….73
5.5.2 Les processus considérés ................................................................................. ….75
5.5.3 Pourquoi l’approche multicritère...................................................................... ….76
5.6 Conclusion ................................................................................................................. ….80
Chapitre 6 Mise en œuvre du prototype proposé
6.1 Introduction ............................................................................................................... …82
6.2 Réalisation du logiciel ............................................................................................... …82
6.2.1 Outils de conception ......................................................................................... …82
6.2.2 Langage de programmation .............................................................................. …82
6.3 Description de l’application ...................................................................................... …83
6.3.1 Arrivée d’un nouvel ordre de fabricatio ........................................................... …83
6.3.2 L’exécution d’une tâche ................................................................................... …85
6.3.3 L’événement panne machine ............................................................................ …85
6.3.4 La fin de panne ................................................................................................. …90
6.4 Conclusion ................................................................................................................. …91
Conclusion générale ................................................................................... ...93
Bibliographie ............................................................................................... ...96
Annexe A……………………………………………………………… ….104
Annexe B…………………………………………………………………..110
Annexe C…………………………………………………………..………115
Liste des figures
Figure 1.1 : Processus de décision selon SIM .......................................................... 77
Figure 2.1 : Les fonctions de pilotage ....................................................................... 19
Figure 2.2 : Structure de pilotage distribuée supervisée ........................................... 22
Figure 3.1 : Modélisation de notre structure de pilotage par un SMA...................... 38
Figure 3.2 : Structure d’un agent SIP selon TRE 96 ................................................. 39
Figure 4.1 : Le protocole Contract Net .................................................................... 51
Figure 5.1 : Architecture d’un agent SIP superviseur ............................................... 58
Figure 5.2 : Architecture d’un agent SIP .................................................................. 60
Figure 5.3 : Schéma décrivant l’événement de fin d’exécution ............................... 62
Figure 5.4 : Schéma décrivant l’événement blocage de tâche
en cours d’exécution............................................................................. 63
Figure 5.5 : Schéma décrivant le fonctionnement générale de l’application ........... 64
Figure 5.6 : Diagramme de classe de notre protocole de négociation ................... 66
Figure 5.7 : Structure de l’agent de négociation ....................................................... 67
Figure 5.8 : Diagramme de séquence représente l’interaction
entre un agent initiateur et un participant .............................................. 69
Figure 5.9 : Diagramme de séquence représente la négociation
entre un agent initiateur et un participant .............................................. 70
Figure 5.10 : Diagramme de séquence représente la négociation
commune avec renégociation cas1 ....................................................... 71
Figure 5.11 : Diagramme de séquence représente la négociation
commune avec renégociation cas2 ........................................................ 72
Figure 5.12 : Diagramme de séquence représente la négociation
entre un agent initiateur et m participants ......................................... 73
Figure 5.13 : Architecture d’Electre III .................................................................... 77
Figure 5.14 : Résultat du préordre final .................................................................... 79
Figure 6.1 : Structure de l’agent superviseur ........................................................... 83
Figure 6.2 : Nouvel ordre de fabrication .................................................................. 84
Figure 6.3 : Réponses des agents SIP pour la demande d’affectation ...................... 84
Figure 6.4 : Interface des quatre agents .................................................................... 85
Figure 6.5 : La panne machine .................................................................................. 86
Figure 6.6 : La résolution de la panne ....................................................................... 86
Figure 6.7 : Plate-forme JADE montrant le résultat de la réaffectation.................... 87
Figure 6.8 : La matrice de performance .................................................................... 88
Figure 6.9 : Résultat de la méthode ELECTREIII .................................................... 88
Figure 6.10 : Lancement de la procédure de négociation ......................................... 89
Figure 6.11 : Plate-forme JADE montrant le résultat de négociation
avec l’agent SIP N°3 ......................................................... 89
Figure6.12 : La fin de panne .................................................................................. 90
Figure 6.13 : Agenda local de l’agent SIPN°3 ......................................................... 90
Figure 6.14 : Agenda global de l’agent superviseur ................................................. 91
Figure A.1 : Algorithme de classement ..................................................................... 108
Figure C.1 : Architecture logiciel de La plate-forme JADE ..................................... 117
Figure C.2 : L'interface de l'agent RMA ................................................................... 122
Figure C.3 : L'interface de l'agent Dammy ............................................................... 123
Figure C.4 : L'interface de l'agent DF ....................................................................... 123
Figure C.5 : L'interface de l'agent Sniffer ................................................................. 124
Figure C.6 : L'interface de l'agent Inspector ............................................................. 124
Liste des tableaux
Tableau 4.1 : Hiérarchie des différents types de négociation .................................. 53
Tableau 5.1 : Liste des critères retenus pour le processus de réaffectation ............. 75
Tableau 5.2 : Liste des critères retenus pour le processus de gestion de la file ...... 76
Tableau 5.3: Tableau des performances des différentes actions. ............................. 78
Tableau 5.4 : Seuils d’indifférence, de préférence ................................................. 79
Tableau 5.5 : Résultat des deux distillations ........................................................... 79
Introduction générale
Introduction générale
Les exigences croissantes en flexibilité ont conduit à de nouveaux paradigmes de pilotage des
systèmes de production. Ceux-ci sont basés sur le concept d'auto-organisation et sur la notion
d'agent. De plus, l'aspect décisionnel tente toujours de proposer des solutions en fonction des
objectifs prédéfinis et de l'environnement courant de l'atelier chaque fois qu'une décision doit
être prise.
Les problèmes de décisions associés à la conduite en temps réel d’un système de production
se traduisent en réalité en problèmes d’utilisation des ressources pour la réalisation des
opérations [ROU 95]. Par conséquent, une identification des événements et des états est
suffisante pour justifier une prise de décision. L’état du système de production est défini
comme étant l’ensemble des états associés, d’une part, aux opérations à réaliser et d’autres
parts aux ressources disponibles pour réaliser ces opérations. Cet ensemble doit caractériser
complètement le problème de conduite, et par conséquent il doit fournir toutes les
informations nécessaires à la prise de décision. Les recherches de plus en plus nombreuses
dans le domaine telles que de C.Briand, F.Roubellat [BRI 00] qui ont proposé une
architecture pour le pilotage temps réel d'atelier,et F.Ounar [OUN 99] qui a abordé le cadre
du pilotage, par les ressources, des systèmes de production flexibles, etc.
Aujourd'hui, la résolution des problèmes est assurée par les Systèmes Multi-Agents (SMA)
[SAV 03].Ces systèmes regroupent des agents capables de s’auto-organiser afin d'atteindre
des buts individuels ou collectifs.
Nous modélisons le système de production proposé sous forme d’un système multi-agent,
composé de plusieurs agents SIP (Station Intégrée de Pilotage), ces agents sont des entités
autonomes interactives qui communiquent entre elles. Le système multi-agents est conçu en
vue de faire négocier plusieurs agents dans des activités devant conduire à la résolution d'un
problème ou à la réalisation d'un but.
1
Introduction générale
A cet effet, la négociation des activités d'agents représente l'élément majeur dont doit tenir
compte les concepteurs de SMA. Lors du processus de négociation, les agents doivent
communiquer et interagir en vue d'atteindre l'objectif global du système et résoudre ainsi les
conflits.
L'étude de la négociation
intéresse un grand nombre de chercheurs appartenant à des
domaines aussi variés que la biologie, l'économie, la psychologie, etc. Les premiers travaux
sur la négociation ont été présentés par Malone et Crowston [MAL 94].
Les principales motivations qui nous ont conduits à effectuer ce travail sont :
1. La nécessité d’améliorer une architecture multi-agent distribuée pour un SIAMD
multicritère en gestion de production. Les modules décisionnels élaborés sont basés
sur une structure multi-agent en utilisant la méthode multicritère ELECTREIII.
2. La nécessité de développer un protocole permettant la résolution des situations
conflictuelles pouvant survenir entre les différentes activités d'agents interagissant
dans un environnement manufacturier (dynamique et à fortes contraintes industrielles).
En effet, lorsque deux agents décident d'accéder à la même ressource pour réaliser
leurs tâches ; ils peuvent entraîner dans certains cas, une incohérence au niveau du
système. Pour détecter et résoudre ces situations conflictuelles nous avons essayé de
proposer une stratégie de négociation en utilisant une hybridation du Protocole Contrat
Net [VER 04] et une approche fondée sur l'intelligence artificielle.Nous avons utilisé
la plate forme JADE (Java Agent DEvelopement framework), comme un outil de
développement pour la conception de notre application.
Ce mémoire est structuré comme suit :
Le chapitre 1 concernant l’aide à la décision, est consacré à la description des différents
principes de décision, leur typologie ainsi qu’aux étapes du processus de prise de décision.
Ensuite, nous terminons par la présentation du Système Intéractif d’Aide Multicritère à la
Décision (SIAMD).
2
Introduction générale
Le chapitre 2 présente les systèmes de production auxquels est intégrée une approche multiagents.
Le chapitre 3, aborde une définition des concepts de base de l’approche multi-agents et
détaille la structure de pilotage distribuée supervisée.
Le chapitre 4, présente respectivement les différents protocoles de négociation et introduit la
stratégie proposée pour la résolution des situations conflictuelles.
Le chapitre 5, introduit la structure des agents SIP (Station Intégrée de Pilotage) et présente le
processus de négociation élaboré. Nous justifions l’utilisation de la méthode ELECTRE III
dans le processus décisionnel adopté par les agents au cours de leurs négociations.
Finalement, le chapitre 6 permet la mise en œuvre de notre travail en présentant un exemple
d'application ainsi que l'implantation des mécanismes de résolution définis au chapitre 5.
Quelques écrans d’illustration permettent de se familiariser avec l’application réalisée en
utilisant la plateforme JADE.
Enfin, nous clôturons ce mémoire par une conclusion et des perspectives.
3
Chapitre 1 : Système Intéractif d’Aide à la Décision
Chapitre1
Système Intéractif d’Aide à
la Décision
1.1 Introduction
Les systèmes décisionnels sont de plus en plus indispensables à la définition de la stratégie
d’une entreprise et aux prises de décisions auxquelles elle est confrontée chaque jour. Ils sont
conçus pour permettre des décisions rapides et motivées.
Les SIAD ont été d’un grand apport pour la production soit au niveau du pilotage, de
l’ordonnancement ou de la conduite. Ils ont pour objet d’apporter une aide à la décision pour
des problèmes peu ou mal structurés. En situation complexe la décision n’est pas structurée et
il devient donc primordial de concevoir des systèmes coopératifs permettant une répartition
évolutive des compétences entre l’utilisateur et la machine (dépendante du problème à
résoudre) et offrant une bonne intégration des deux agents (homme et machine) dans le
processus de décision. Cette répartition est un processus dynamique qui changera au fur et à
mesure des problèmes résolus ou des décisions prises.
Dans ce chapitre nous introduisons dans un premier temps les concepts de base d’un
processus décisionnel.Nous déterminons par la suite la nature multicritère des processus
décisionnels associés au pilotage des systèmes automatisés de production . Enfin, Nous
précisons la modalité d’intégration d’un SIAD au niveau pilotage.
5
Chapitre 1 : Système Intéractif d’Aide à la Décision
1.2 La notion de décision
Le Petit Larousse définit la décision comme « l’action du décideur après examen », décider,
c’est déterminer ce qu’il faut faire » et « choisir entre plusieurs alternatives ». Il résulte de ces
définitions que décider consiste à déterminer un ensemble d’actions, après y avoir réfléchi.
Une réflexion est préalable parce que nos actes ne peuvent pas être laissés au hasard si nous
voulons qu’ils soient efficaces par rapport aux buts que nous nous sommes fixés.
Le but de la décision est de modifier les résultats de nos actions pour les rendre conformes
aux critères d’évaluations que nous nous sommes fixés où que nous sommes susceptibles
d’adopter [CIP 00]. La décision va donc entraîner une modification de notre activité qui peut
être caractérisée par :
•
Les entrées qu’elle utilise.
•
Les acteurs qui y participent.
•
Les moyens qu’elle met en œuvre.
•
L’environnement dans lequel elle se déroule.
•
Les sorties ou les résultats qu’elle permet d’obtenir.
1.3 La prise de décision
Prendre une décision signifie concevoir et s’engager sur une stratégie d’allocation irrévocable
de ressources précieuses ( au sens général du terme).Le processus de prise de décision n’inclut
pas l’allocation de ces ressources qui est appelée une action.
De manière plus générale, on peut dire que tout individu placé devant plusieurs alternatives
mutuellement exclusives, choisit l’une d’entres elles à la suite d’un processus mental que nous
appellerons décision. On peut associer à toute décision son domaine.
On peut par exemple distinguer les décisions médicales, des décisions militaires ou
industrielles. Ces domaines peuvent être eux-mêmes divisés en sous domaines. Le domaine
d’une décision est par définition générique, c'est-à-dire que plusieurs décisions partagent le
même domaine. Par contre,certains facteurs d’une décision sont uniques et dépendent de la
décision et du décideur. Nous appellerons ces derniers la situation d’une décision[SITE 01].
Cette situation se compose du contexte et des préférences du décideur. Chaque décideur a
pour décision un contexte qui lui est associé et qui affecte fortement l’intérêt et la
disponibilité des différents choix.
6
Chapitre 1 : Système Intéractif d’Aide à la Décision
Ce contexte inclut l’état des informations du décideur qui constitue sa perception des
conséquences possible de ses actions. Chaque décideur a des désirs particuliers qui sont
exprimés par préférences sur les résultats possibles de sa décision.
A toute décision sont toujours associées des alternatives parmi lesquelles le décideur doit
choisir. Sans alternative, il n’y a pas de décision. Ces alternatives peuvent être crées à partir
des variables de décision qui sont soient génériques (appartiennent au domaine de décision
)ou uniques (appartiennent à la situation de la décision ).A chaque alternative est associée un
résultat ou bénéfice espéré au sens large du terme qui peut guider le choix entre les
alternatives.
1.4 Processus de décision
Selon Levine et Pomerol [LEV 89], un processus de décision se compose de quatre phases :
une phase d’information, une phase de conception, une phase de choix et une phase
d’évaluation du choix. La procédure décrite par cette succession de phase n’est pas purement
séquentielle. Des retours arrière peuvent se produire, notamment lors de la phase de
conception,l’évaluation
des
scénarios
peut
nécessiter
l’acquisition
d’informations
supplémentaires.
Un système d’information est nécessaire dans les deux phases de préparation à la prise de
décision, et dans la phase d’évaluation du choix. En effet, la capacité de traitement des
informations des ordinateurs permet au décideur, pendant la phase d’information, d’accéder
rapidement à des informations brutes ou traitées concernant la situation courante. Cette
capacité de traitement de l’information peut être aussi utilisée lors de l’évaluation des
scénarios décrivant les différentes options envisagées par le décideur lors de la phase de
conception[DUV 01].
La figure(1.1) détaille ce processus en quatre étapes nécessairement séquentielles.
Information
Conception
Choix
Figure 1.1 : Processus de décision selon [SIM77].
7
Évaluation
Chapitre 1 : Système Intéractif d’Aide à la Décision
1. Information : Cette étape,avec la suivante,conditionne fortement la qualité de la prise
de décision.En effet,elle détermine l’ensemble des données nécessaires(mias pas
forcement suffisantes) qui seront utilisées lors des phases suivantes ;
2. Conception : Cette phase génére les différentes alternatives qui forment l’ensemble
des possibilités. Les différentes solutions sont donc élaborées à ce stade ;
3. Choix : Cette phase consiste la phase de décision proprement dite. Elle consiste à
restreindre
l’ensemble
des
possibilités
au
sous-ensemble
des
possibilités
séléctionnées ;
4. Evaluation : Cette phase a pour objet d’évaluer la qualité de la prise de décision et
peut impliquer si nécessaire un retour à l’une des phases précédentes.
Remarque :
Simon [SIM 77] considère qu’il n’existe pas de solution optimale car en phase :
•
D’analyse, nous ne disposons pas de toutes les données,
•
De modélisation, nous ne disposons pas de toutes les représentations,
•
D’élaboration de la solution : il s’agit plutôt d’un système d’itération de solutions pour
déterminer une solution satisfaisante.
Enfin,nous présentons la classification développée initialement par Simon [SIM 77] et reprise
par Levine et Pomerol [LEV 89]. Elle comporte trois grandes catégories :
1. Décision structurée : Le problème est clairement posé en termes techniques, les
données sont fiables et numériques. Les modèles associés sont clairement définis. Ils
permettent une résolution claire et algorithmique du processus décisionnel. C’est le
cas d’une facturation, d’un achat ….
2. Décision peu structurée : Le problème peut ne pas être clairement posé. Les données
sont souvent qualitatives, peu fiables, très peu stables et difficilement accessibles.
La résolution est difficilement exprimable sous forme algorithmique. Cette catégorie est
constituée de la quasi-totalité des processus de décision dans le cas du pilotage.
3. Décision non structurée : Le problème n’est pas clairement posé, le principe de la
rationalité limitée s’applique à toutes les étapes du processus décisionnel. La décision
élaborée est difficilement justifiable de manière rationnelle. C’est le cas par exemple
d’une réaction de l’opérateur face à un aléa qui n’a jamais été envisagé.
8
Chapitre 1 : Système Intéractif d’Aide à la Décision
1.5 Aide à la décision
L’aide à la décision est l’activité de celui qui, prenant appui sur des modèles clairement
explicités mais non nécessairement complètement formalisés, aide à obtenir des éléments de
réponse aux questions que se pose un intervenant dans un processus de décision. Ces éléments
concourant à éclairer la décision et normalement à recommander, ou simplement à favoriser,
un comportement de nature à accroître la cohérences entre l’évolution du processus d’une
part, les objectifs et les systèmes de valeurs au services desquels cet intervenant se trouve
placé d’autre part[ROY 93].
L’homme d’étude est celui qui prend en charge l’aide à la décision. Mettant en œuvre des
modèles dans le cadre d’un processus de décision, il contribue à l’orienter et à le transformer.
1.6 Système Interactif d’Aide à la Décision et Pilotage
1.6.1 Système Interactif d’Aide à la Décision (SIAD)
L’aide à la décision regroupe un ensemble de domaines assez disparates tels que l’intelligence
artificielle, l’ergonomie, et les Systèmes de Gestion de Bases de Données (SGBD).
Bonczek [BON 84] définit un SIAD comme étant un système informatisé qui utilise ses
connaissances sur un sujet particulier afin d’aider le responsable lors de la prise de décision
dans une catégorie de problèmes peu ou pas structurés.
Selon Courbon [COU 88], un SIAD est un système homme-machine qui à travers un dialogue
permet à un décideur d’amplifier son raisonnement dans l’identification et la résolution de
problèmes peu structurés. Cette définition introduit la notion de dialogue ou coopération
homme-machine, concept qui conditionne fortement l’efficacité d’un SIAD.
Ces diverses définitions ont mis l’accent soit sur le type de problèmes, soit sur les fonctions
du système, soit sur ses composants ou encore sur le processus de développement.
Turban [TUR 95] définit un SIAD comme un système interactif, flexible, adaptable et
spécifiquement développé pour aider à la résolution d’un problème de décision en améliorant
la prise de décision. Il utilise des données, fournit une interface utilisateur simple et autorise
l’utilisateur à développer ces propres idées ou points de vue. Il peut utiliser des modèles soit
standards, soit spécifiques ; supporter les différentes phases de la prise de décision et inclure
une base de connaissances.
Les premiers SIAD sont apparus en 1968, ils n’ont été effectifs qu’à la fin des années
soixante-dix où divers outils d’aide à la décision sont devenus opérationnels. La définition et
les spécifications d’un SIAD ne peuvent pas être fixées précisément car il n’est pas possible
de trouver une approche générique pour l’ensemble des cas et des domaines possibles. C’est
9
Chapitre 1 : Système Intéractif d’Aide à la Décision
la raison pour laquelle, un regroupement par niveaux d’aide interactive en fonction des désirs
de l’utilisateur, a été proposé dans la littérature : [TRE 96] [OUN 99]
•
SIAD passif : Donne un avis qui ne vient pas empiéter sur l’autonomie de l’utilisateur.
•
SIAD traditionnel : Est un assistant dont la principale utilisation concerne les
interactions du type « What-if ? ».
•
SIAD étendu : Assure les fonctions de consultant et se place au même niveau que
l’utilisateur.
•
SIAD nominatif : Domine le processus de décision. L’opérateur ne remplit plus qu’un
rôle passif dans la prise de décision.
Les SIAD ont été conçus pour résoudre des problèmes de décision peu ou mal structurés. Ces
problèmes possèdent les ou l’une des caractéristiques suivantes :
1. Les préférences, jugements, intuitions et l’expérience du décideur sont essentiels ;
2. La recherche d’une solution implique un mélange de recherche d’information, de
formalisation ou définition et structuration du problème, du calcul et de la
manipulation de données ;
3. La séquence des opérations ci-dessus n’est pas connue à l’avance parce qu’elle peut
être fonction des données, être modifiées, peut ne donner que des résultats partiels, ou
encore peut être fonction des préférences de l’utilisateur.
4. Les critères pour la décision sont nombreux, en conflit et dépendant de la perception
de l’utilisateur ;
5. La solution doit être obtenue en un temps limité ;
6. Le problème évolue rapidement.
1.6.2 Le pilotage décisionnel
Traditionnellement, le pilotage et le suivi de l'activité étaient assurés par le contrôle de gestion
avec une démarche analytique centrée sur des indicateurs comptable.
Aujourd'hui, pour faire face à des marchés de plus en plus complexes, le pilotage doit intégrer
des enjeux nouveaux, tels que la valeur et le suivi du capital client et donc la rentabilité client.
Il est essentiel pour l'entreprise de mettre en place un système décisionnel moderne qui repose
sur la définition d'une véritable logique de pilotage. Pour répondre à ce besoin, Soft
Computing[SITE 02] a défini une double approche, adaptable à tout secteur d'activité, qui
permet à la fois de contrôler, d'analyser l'évolution du capital client mais aussi de simuler les
ressources à mettre en œuvre en fonction du potentiel de marché.
10
Chapitre 1 : Système Intéractif d’Aide à la Décision
L'aptitude à mettre en place un système logique et structuré, avec la création de tableaux de
bord et d'indicateurs pertinents, devient alors essentielle pour l'entreprise.
1.6.3 Les éléments d'un système de pilotage
Un système de pilotage performant repose sur la bonne articulation de deux éléments
complémentaires:
1. Un système décisionnel: il s'agit d'un ensemble de données organisé sur un mode
approprié à la prise de décision, associé à une représentation intelligente de ces
données au travers d'outils spécialisés.
Un système décisionnel s'articule sur deux éléments informatiques distincts:
•
Un entrepôt de données qui permet aux utilisateurs de travailler dans un
environnement informationnel, référencé, homogène et historiés.
•
une ou plusieurs applications décisionnelles qui permettront d'extraire de
l'entrepôt de données la connaissance souhaitée selon des règles préétablies.
2. Une logique de pilotage: la valeur ajoutée la plus déterminante pour l'efficacité du
système réside dans cet élément, qui consiste en un formatage du système décisionnel
selon différents axes:
•
les spécificités métier de l'entreprise,
•
Les axes d'analyses (domaines d'application fonctionnels ou opérationnels),
•
Les indicateurs élaborés pour représenter ces domaines,
•
Les règles de gestion, qui déterminent les composantes des indicateurs,
•
Les requêtes qui permettent de lancer des analyses plus approfondies (ex:
datamining).
1.6.4 Les niveaux de décision dans le cadre du pilotage
La décision est classée en trois niveaux [TRE 96] :
•
Le niveau Stratégique concerne les décisions prises dans un horizon à long terme. Les
modèles analytiques sont utilisés dans ce niveau de décision.
•
Le niveau Tactique concerne les décisions prises dans un horizon à moyen terme. Il
décrit le plan de production global. La simulation est très utilisée du fait de la
complexité des systèmes.
•
Le niveau Opérationnel concerne les décisions prises dans un horizon à court terme.
Ce niveau de décision concerne le plan détaillé (ordonnancement, allocation de tâches,
11
Chapitre 1 : Système Intéractif d’Aide à la Décision
etc.). Des modèles physiques doivent être intégrés dans ce niveau. La simulation est là
encore très exploitée pour valider les modèles et les heuristiques.
Selon cette caractérisation, le processus décisionnel associé à une structure de pilotage est :
•
Souvent indissociable de l’opérateur humain car il est seul capable d’intégrer la
diversité et la complexité des données dans un cadre décisionnel réactif et global.
•
Naturellement peu ou pas structuré, ce qui réduit fortement l’intérêt d’exploiter un
ensemble de méthodes purement algorithmiques.
Ces caractéristiques justifient l’adoption d’une démarche décisionnelle coopérative associant
l’opérateur humain et un système interactif d’aide à la décision.
1.6.5 Nature des processus décisionnels dans le cadre du pilotage
Trentesaux [TRE 96] a démontré que les processus décisionnels au niveau du pilotage
résultent d’un compromis entre des critères conflictuels exprimés principalement en termes de
coût, délai ou qualité. Chaque processus de décision de pilotage est par essence multicritère.
L’allocation d’une tâche par exemple, est un processus décisionnel qui résulte d’une étude
portant sur des critères de coût de production, de temps de changement de série, de temps de
convoyage, de temps d’attente dans le stock amont, de qualité de production, etc. Par ailleurs
l’approche multicritère facilite l’intégration de l’opérateur humain au sein d’un SIAD.
1.7 Conclusion
Face à une demande évolutive de productions variées, les entreprises se trouvent obligées de
réorganiser leur production de manière à fabriquer à la demande, respecter les délais et assurer
une qualité suffisante à faible coût. Pour ce faire, notre étude vise à améliorer la qualité de la
décision apportée au processus décisionnel par la proposition d’une méthodologie de
conception d’un Système Interactif d’Aide Multicritère à la Décision SIMAD pour le pilotage
d’une structure dynamique, évolutive et robuste. Pour cela nous avons présenté dans ce
chapitre tout ce qui concerne la décision, le procédé de prise de décision sur lequel porte notre
étude. Nous avons mis en évidence l’aspect multicritère des décisions associées au pilotage.
Ces décisions sont exprimées principalement en termes de coût, délai ou qualité, ce qui nous a
amené à adopter l’approche multicritère comme méthode de résolution.
Les problèmes de décisions associés à la conduite en temps réel d’un atelier se traduisent en
réalité en problèmes d’utilisation des ressources pour la réalisation des opérations.
12
Chapitre2 : La gestion de production
Chapitre 2
La gestion de production
2.1 Introduction
Aujourd’hui, les entreprises doivent évoluer dans un environnement très incertain, très
changeant et dominé par une forte concurrence internationale. L'amélioration de la gestion de
production est à la base de toute recherche dans le domaine de la productivité à accroître. La
productivité est la clef de la survie et du développement des entreprises industrielles, les
modifications, les améliorations ou les transformations de produits, sont de plus en plus
communes et la notion de flexibilité est fortement liée à cette évolution. Ainsi l’organisation
employée doit pouvoir supporter un processus de fabrication robuste. La concurrence exige
que l'entreprise se dote d'un système de production efficace qui réagisse rapidement aux
contraintes du monde environnant et en particulier aux exigences et évolutions du marché
[ANN 01].
Il faut développer de nouvelles technologies d'une part, et gérer au mieux les systèmes
productifs d'autre part.Parmi les différentes fonctions de la gestion de production, nous nous
intéressons plus particulièrement à la fonction d'ordonnancement dynamique.
Dans ce chapitre nous présentons les concepts fondamentaux de la gestion de production et
nous faisons le point sur la problématique de pilotage de tels systèmes. Nous développons,
par la suite, les principales approches de pilotage.
14
Chapitre2 : La gestion de production
2.2 Le système de production
Un système de production est un ensemble de ressources réalisant une activité de production.
De manière générale on peut décomposer un système de production en deux parties
complémentaires [GEO 98] :
La partie opérative, qui désigne le flux matériel, elle est constituée des entités
appartenant à trois populations : la population des produits, des moyens de production et les
opérateurs, Elle a pour fonction de fabriquer (qualité, quantité, délais) des produits ou des
services pour lesquels le système est destiné.
La partie conduite, qui traite le flux informationnel. Elle a pour fonction d’élaborer les
ordres ou les commandes nécessaires pour la partie opérative.
Son rôle est de diriger, guider et piloter, de manière à assurer la pertinence et la cohérence
du système dans un environnement donné. La conduite peut être considérée comme l’art
d’adapter en permanence les objectifs de l’entreprise à l’évolution de l’environnement à
travers l’analyse des contraintes et des opportunités.
Les principales missions du système de pilotage peuvent être résumées de la façon suivante
: auto organisation, adaptation, optimisation et régulation.
2.2.1 Les caractéristiques d’un système de production
Solon le contexte économique dans lequel les entreprises évoluent aujourd’hui,elles
nécessitent des systèmes de production basés sur des principes, ayant des nouvelles
caractéristiques, telles que la flexibilité, la robustesse, la réactivité, et la pro activité [ALO
02].
•
Flexibilité
La flexibilité d'un système de production se caractérise par sa capacité d'adaptation à la
production des nouveaux produits. Plusieurs types de flexibilité sont mis en évidence suivant
leurs incidences sur l'objectif et sur les moyens de production permettant la réalisation de ce
dernier.
o Flexibilité sur les temps : c’est-à-dire sur les dates de début d’exécution des
opérations.
o Flexibilité sur les ordres : on autorise dans ce cadre, à modifier l’ordre dans
lequel les opérations doivent s’exécuter sur les machines.
15
Chapitre2 : La gestion de production
o Flexibilité sur les affectations : dans le cas ou les ressources existent en plusieurs
exemplaires, on autorise l’exécution d’une tâche à s’effectuer sur une autre
ressource que celle qui était prévue initialement.
o Flexibilité sur les modes d’exécution : le mode d’exécution comprend
l’autorisation ou non de la préemption, du chevauchement de gamme, la prise en
compte ou non du temps de préparation, la modification du nombre de
ressources nécessaires pour exécuter une opération.
• Réactivité
La réactivité d’un système de production est définie comme l’aptitude à répondre dans un
temps requis aux changements de son environnement interne ou externe. C'est-à-dire qu’il
doit avoir une conduite qui lui permette de réagir et s’adapter, en fonction des objectifs de
production, aux fluctuations des besoins et aux aléas du système par rapport au
fonctionnement permanent.
Cette réactivité impose une vue dynamique des événements, pour cela trois fonctions
s’avèrent nécessaires :
o Une fonction d’observation qui collecte les variables nécessaires au suivi, afin de
connaitre l’état courant du système.
o Une fonction de surveillance qui détecte et interprète les écarts et les
changements entre le plan prévisionnel et le plan courant.
o Une fonction de correction qui tente à tout instant de corriger les écarts entre ces
plans, ce qui implique un ordonnancement dynamique.
• Pro-activité
La pro-activité d’un système de production se caractérise par ses capacités d’anticipation
des changements d’état, d’apprentissage et d’enrichissement des connaissances,
d’adaptation de ses règles de fonctionnement et par sa capacité de réorganisation,
d’observation, de surveillance et de correction nécessaires pour assurer la réactivité et la
pro-activité.
• La robustesse
La robustesse d'un système de production se définit par son aptitude à produire conformément
aux résultats attendus. Cela suppose la garantie de l'obtention des performances souhaitées en
présence d'incertitudes dans le système.
16
Chapitre2 : La gestion de production
2.2.2 La gestion de production
La gestion de production a pour objet la recherche d’une organisation et de piloter le
fonctionnement des processus physiques mis en œuvre dans l’entreprise afin d’assurer une
meilleure utilisation des moyens humains, physiques et technologiques disponibles et de
satisfaire au mieux l’objectif global de production défini en terme de quantités à fabriquer
avec une qualité demandée, et des délais à respecter [AGN 01].
Cette définition présente la gestion de production comme une fonction qui doit tenir compte
de nombreuses contraintes et objectifs diversifiés selon leurs natures dans le but de piloter
l’ensemble des moyens de production :
•
Les contraintes décrites en termes d’utilisation efficace des moyens disponibles :
ressources humaines ou matérielles.
•
Les objectifs définis en terme global de qualité et de coût.
L’automatisation est le moyen le plus courant qui permet d’obtenir une gestion performante
de la production.
2.3 Les Systèmes Automatisés de Production (SAP)
On définit un système de production comme étant une combinaison d’éléments destinés à
conférer une valeur ajoutée à un ensemble de matière d’œuvre dans un contexte donné.
Une automatisation d’un système de production consiste à confier à un dispositif technique
tout ou partie des tâches de coordination effectuées par l’opérateur humain. L’automatisation
permet d’augmenter la productivité, la flexibilité, la qualité et/ou la sécurité qui sont
considérées comme faisant partie de la valeur ajoutée.
2.4 Le pilotage des systèmes industriels
Avenier [AVE 84] défini le pilotage comme suit :
Piloter un engin revient en premier lieu à choisir un objectif par rapport auquel la meilleure
trajectoire est définie. Une fois l’engin lancé, il s’agit de :
•
Corriger en permanence les écarts par rapport à la trajectoire,
•
Modifier éventuellement la trajectoire, voire l’objectif, lorsque des informations sur
l’univers extérieur et sur le comportement de l’engin montrent que le plan initial ne peut
être maintenu.
17
Chapitre2 : La gestion de production
Cette définition du pilotage est applicable aux systèmes de production, dès lors que l’on
précise que c’est l’appréciation (ou l’interprétation) des performances du système qui
conditionne les décisions de modification de trajectoire ou même d’objectifs.
2.4.1 Les fonctions d’un système de pilotage
D'une manière générale, piloter un système de production fait appel à deux fonctions
distinctes :
•
Une fonction de gestion à priori (ou planification) dont le rôle est d'assurer la
programmation d'un ensemble d'actions ou de décisions.
•
Une fonction de gestion en temps réel (ou conduite) dont le rôle est de prendre
les décisions qui relèvent de l'immédiat, c'est-à-dire qui sont motivées par les
événements liés à l'état courant du système de production.
La fonction pilotage temps réel peut être décomposée en deux sous fonctions : conduite et
commande.
1. La conduite : Elle regroupe les activités décisionnelles qui seront traduites en
ordres et transmises au niveau commande. Elle correspond au niveau
décisionnel du pilotage dont le rôle principal est de mettre en œuvre les
décisions planifiées par le niveau prévisionnel.
La fonction de conduite comprend deux sous fonctions permettant d’assurer :
•
Le contrôle et la cohérence globale du système de pilotage ainsi que la gestion
des interactions entre les centres de décisions.
•
La définition et la gestion de l’environnement qui comprend la gestion de la
logistique technique et des configurations.
Une fonction associé à chacune des deux fonctions précédentes, c’est la fonction de suivi
permettant la collecte des données de suivi de fonctionnement du système.
2. La commande : Elle s’occupe de la réalisation du processus physique et
retourne un ensemble de données de suivi à la partie conduite.
La figure (2.1) illustre les fonctions de pilotage.
18
Chapitre2 : La gestion de production
Actions planifiées
Suivi
Suivi
Temps réel
Tâches exécutables
Commande
Pilotage
Temps réel
Conduite
Actions
Capteurs
Système physique
Événements
Figure 2.1 : Les fonctions de pilotage.
2.4.2 Le pilotage en temps réel
Le pilotage en temps réel se trouve face à une problématique principale, qui est d’émettre des
décisions cohérentes face à des contraintes disjointes qui sont :
•
Les contraintes imposées par la gestion prévisionnelle en termes de décisions ou
d'objectifs,
•
Les contraintes imposées par le système physique (retard, etc.).
2.4.3 Pilotage et ordonnancement
Qu'est-ce que l'ordonnancement?
L'ordonnancement est la programmation dans le temps de l'exécution d'une série de tâches
(ou activités, opérations) sur un ensemble de ressources physiques (humaines et techniques),
en cherchant à optimiser certains critères, financiers ou technologiques, et en respectant les
contraintes de fabrication et d'organisation [AGN 01]. Les Ordres de Fabrication (OF),
suggérés par le calcul des besoins, représentent chacun une requête pour fabriquer une
quantité déterminée de pièces pour une date donnée. Ils constituent les données d'entrée de
l'ordonnancement et permettent de définir, au moyen des gammes de fabrication, l'ensemble
des tâches que la fonction ordonnancement doit planifier.
Une tâche est localisée dans le temps par une date de début et une durée ou une date de fin.
Elle utilise une ou plusieurs ressources, elle est dite préemptive si elle peut être interrompue,
ou non préemptive si elle ne peut pas être interrompue. En sortie de la fonction
19
Chapitre2 : La gestion de production
ordonnancement, on obtient un planning, ou ordonnancement, qui restitue l'affectation des
tâches fournies en entrée à des dates précises pour des durées déterminées sur les différentes
ressources. Ce planning cherche à satisfaire des objectifs, en respectant le plus possible des
contraintes que nous allons préciser.
Les objectifs de l’ordonnancement imposent de mesurer la qualité d’une solution à répondre
au problème étudié. Des critères d’efficacité sont définis et utilisés pour isoler les solutions
optimales ou satisfaisantes, par exemple : la minimisation de la durée totale de fabrication,
des temps d’interactivité des machines, du coût de l’ordonnancement ou encore du respect des
dates de fin de tâches, alors que certains cas particuliers peuvent nécessiter des critères plus
spécifiques comme par exemple la minimisation de goulots d’étranglement sur une ressource.
A partir de ce problème général de l’ordonnancement, nous nous intéressons à
l’ordonnancement d’un atelier de production qui est caractérisé par des préoccupations de
gestion optimale des ressources issue du domaine de la gestion de production [TRA 01].
Dans ce genre de problème, il faut comprendre les tâches, les ressources qu’elles utilisent. Un
travail ou un Job est une liste d’opérations élémentaires nécessaires à sa réalisation.
Les problèmes d’ordonnancement d’un atelier c’est aussi la définition de « contraintes
potentielles » [TRA 01]:
•
Contraintes d’antériorité ce sont des contraintes de succession de tâches d’un
même job.
•
Contraintes de localisation temporelle, ce sont des contraintes de temps comme
par exemple : le produit A doit être fourni ∆t avant le produit B.
•
Contraintes d’indépendance des Jobs : s’il n’y a aucune contrainte d’antériorité
entre les opérations.
•
Hypothèse de non-préemption : une fois commencée, une tâche ne peut être
interrompue.
•
Contrainte disjonctive, si un travail ne peut être effectué que sur une seule
machine à la fois, l’exécution de ces tâches ne peut être parallèle de même que la
machine, ne peut exécuter qu’une tâche à la fois.
Dans notre cas, nous nous intéressons aux tâches opératives, c’est-à-dire qu’une tâche est un
ordre de fabrication. L’allocation des ressources à une tâche, peut être réalisée en temps réel
(allocation dynamique). On peut différencier les types de pilotage selon qu’un
ordonnancement prévisionnel des tâches est réalisé ou non.
20
Chapitre2 : La gestion de production
•
Pilotage sans ordonnancement prévisionnel : L’ordonnancement dans ce cas
se fait dynamiquement, aucune planification prévisionnelle, l’allocation se fait
au fur et à mesure de l’évolution événementielle du système de production.
•
Pilotage à ordonnancement prévisionnel partiel : Seule une partie des tâches
à réaliser sont planifiées à priori. Les autres sont allouées dynamiquement.
•
Pilotage à ordonnancement prévisionnel total :Toutes les tâches à réaliser
sont allouées en amont du système de pilotage.
•
Le Ré-ordonnancement : Il y’a aussi le ré-ordonnancement qui est une
préoccupation connexe à celle de l’ordonnancement à savoir, comment
préserver les efforts calculatoires qui ont été nécessaires au calcul d’un
ordonnancement lorsque des modifications des conditions initiales le remettent
en cause. C’est un problème très réel qui s’approche de l’ordonnancement
dynamique car on doit le résoudre lorsqu ‘il survient sur le terrain et en temps
réel.
2.5 Les modèles organisationnels des systèmes de pilotage
D’une manière générale, le système de conduite se trouve à tous les niveaux de l’entreprise, il
est en relation étroite avec les autres fonctions de l’entreprise soit par les actions de
coordination, soit par des actions de coopération. On peut distinguer essentiellement cinq
structures différentes [TRE 96]:
1. Approche centralisée : Caractérisée par un pilotage localisé au sein d’une ressource
unique qui supervise la production .
2. Approche hiérarchique : Les modèles hiérarchiques répondaient bien aux exigences
industrielles, car ils apportaient des avantages en termes de qualité de la structuration
et de l’optimisation des processus de production.
3. Approche coordonnée : Cette approche est basée sur l'approche hiérarchisée. La
différence est que dans cette approche, on permet l'existence d'une coopération au sein
d'un même niveau. Théoriquement, cette structure accroît la capacité de décision de
chaque niveau.
4. Approche distribuée : Cette approche est basée sur une distribution complète de la
décision sur un ensemble d'agents. Le contrôle d'une telle architecture est
particulièrement complexe en raison de sa modularité.
21
Chapitre2 : La gestion de production
5. Approche distribuée supervisée : Le modèle de pilotage adopté pour notre projet est
le modèle distribué supervisé au sens large qui a la forme suivante figure(2.2).
Information de suivi
Ordres
Centre de décision
Centre de production
Coordination
Figure 2.2: Structure de pilotage distribuée supervisée.
Il favorise l’interaction entre les différentes entités de pilotage, afin de respecter les
contraintes globales, et laisse chaque entité de production sous le contrôle d’une seule entité
de pilotage pour que la prise de décision soit rapide. Ainsi, l’entité superviseur possède une
vision plus globale du processus de production. Ce qui donne une meilleure souplesse du
système.
2.6 Description du l’un atelier
L’état d’un atelier est défini comme étant l’ensemble des états associés d’une part aux
opérations à réaliser et d’autre part aux ressources disponibles pour réaliser ces
opérations[ROU 05].
Cet ensemble doit caractériser complètement le problème de conduite de l’atelier, et par
conséquent il doit fournir toutes les informations nécessaires à la prise de décision.
La relation entre les tâches qui nous intéressent dans notre travail est de
type
séquentiellement indépendantes, deux tâches t1 et, t2 sont dites séquentiellement
indépendantes si la tâche t1 peut être exécutée avant que la tâche t2 ne débute.
2.6.1 Etats des ressources
Les états dans lesquels peut se trouver une ressource sont :
•
Libre _Isolée (LI_I): La ressource est libre (couplée à aucune opération) et associée à
aucune autre ressource.
22
Chapitre2 : La gestion de production
•
Libre _Associée (LI _A) : Si aucune opération ne lui est affectée, et associée à un
ensemble d'autres ressources.
•
Occupée _Isolée (OC_I) : Une opération d'exécution est en cours sur une ressource
isolée.
•
Occupée _Associée (OC_A) : Lorsqu’elle exécute une opération sur une ressource
associée.
•
En Panne (PN) : Si elle ne peut pas fonctionner suite à un incident.
•
Non Active (NAC) : Lorsque l’opération est arrêtée suite à un blocage de l’ordre de
fabrication (exemple : manque d’approvisionnement), la ressource est utilisable et elle
reste alors affectée à l’opération qui était en cours. On distingue NAC_ A pour une
ressource non active dans l'état associé. NAC_I pour une ressource non active dans
l'état isolé.
2.6.2 Etats des opérations
Lors de son exécution, une opération peut se trouver dans l’un des états suivants :
•
Blanc (BL) : Lorsqu’au moins une des opération précédente n’est pas dans l’état en
cours.
•
En approche (AP) : Lorsque toutes les opérations sont passées dans l’état en cours.
•
En transport (TP) : Lorsque toutes les opérations précédentes sont terminées et que
l’opération en question est en transport vers son lieu d’exécution.
•
Disponible (DI) : Transport terminé, l’opération se trouve devant le lieu
d’exécution, elle est prête à être exécutée.
•
En cours (EC) : L’opération est en cours d’exécution sur une ressource.
•
Arrêtée (AR) : L’exécution est arrêtée car la ressource qui l’exécutait a subi une
panne sur une ou plusieurs de ces lignes de charge.
•
Bloquée (BQ) : Une opération passe à l’état bloqué suite à l’occurrence d’un
incident lié à l’ordre de fabrication ou tout autre incident autre qu’une panne sur la
ressource utilisée par cette opération.
•
Terminée (TR) : Lorsque l’exécution de l’opération est terminée.
A chaque instant, l'état du système de production est constitué de l’ensemble des opérations
à exécuter, et des ressources prévues pour l’exécution.
23
Chapitre2 : La gestion de production
2.6.3 Evénements
Les événements correspondent à des situations constatées dans l’atelier à l’aide de son
système de suivi de fabrication, qui provoquent des changements d’états susceptibles
d’engendrer des décisions.
La liste des événements correspondant aux états spécifiés est :
•
Fin d’Exécution d’une opération (FE): Une fois l’opération terminée, la ressource
qui l’exécutait devient libre.
•
Fin de Transport d’une opération (FT): L’opération est devant son lieu d’exécution
prête à être exécutée.
•
Panne (P) d’une ressource : La déclaration de la panne s’accompagne du nom de la
ressource qui tombe en panne et de l’opération concernée.
•
Fin de panne (FP) d’une ressource: Après la fin de la panne, la ressource peut
exécuter une opération.
•
Blocage (B) d’une opération : Le blocage d’une opération couvre tous les problèmes
relatifs à l’opération qui empêchent son exécution.
•
Fin de Blocage (FB) d’une opération : Après l’occurrence de cet événement
l’opération sera prête à être exécutée.
•
Panne technique de la Machine (PM) : Se produit lorsqu' une machine est bloquée
en attendant une réparation.
•
Fin de panne d'une machine (FP) : Deux situations sont possibles lors d'une fin de
panne soit:
o L'opération est restée couplée à une ressource et dans ce cas l'exécution
reprend.
o L'opération a été découplée d'une ressource, elle doit être réaffectée.
•
Panne d'un Réseau (PR): La déclaration de la panne s’accompagne du nom de la
machine qui devient indisponible.
•
Fin de Panne d'un Réseau (FPR): Après la fin de la panne, la machine peut de
nouveau exécuter une opération.
24
Chapitre2 : La gestion de production
2.6.4 Décisions
Les décisions ont pour objectif d’organiser l’utilisation des ressources pour exécuter les
opérations en respectant au mieux les délais définis par le plan de production.
Chaque décision concerne donc la relation entre une opération et la ressource utilisée pour son
exécution. On distingue les types de décisions suivants :
•
La décision de type E : Cette décision consiste à coupler une opération d'exécution et
les ressources principales et complémentaires nécessaires afin d'engager l'opération.
•
La décision de type R : Cette décision consiste à reprendre l’exécution d’une opération
sur une ligne de charge après sa réparation (elle n’est plus en panne). Si plusieurs
opérations couplées à cette ressource ont
été arrêtées, un problème de choix va se
poser.
•
La décision de type I : Consiste à libérer la ressource suite à l’interruption de
l’exécution de l’opération à laquelle la ressource était couplée.
•
La décision de type C : Consiste à changer l’affectation d’une opération. La décision
de réaffectation de l’opération doit être prise dans le cadre du respect du plan de
production.
2.7 Les processus décisionnels associés à la conduite en temps réel d’un
système automatisé de production
On à coutume de distinguer les événements attendus dont on sait qu'ils doivent se produire
pour un certain état de l'atelier des événements inattendus correspondant à un alea[ROU 05].
•
Evénements attendus
1. Après la fin de l’exécution d’une opération (FE), la ressource _associée se libère. Elle
sera donc prête à exécuter une nouvelle opération. Il s’agit donc de choisir l’opération à
exécuter. C’est une décision de type E. En conséquence toutes les opérations suivantes
dans la gamme passent à l’état en approche (AP).
2. Dans le cas d’une fin de transport (FT), une opération devient disponible. Si la ressource
qui doit exécuter l’opération est libre et associée, le décideur peut lancer son exécution
donc c’est une décision de type E.
3. Dans le cas d’une fin de panne (FP), la ressource peut à nouveau exécuter une
opération. Cet événement spécifie la ressource qui n’est plus en panne. Il faut donc
exploiter cette ressource pour l’exécution d’une opération. Un problème de choix de
25
Chapitre2 : La gestion de production
l’opération à reprendre l’exécution se pose. Si aucune opération n’est arrêtée cette
ressource sera libre, on se retrouve dans le même cas qu’une fin d’exécution.
4. Dans le cas d’une fin de blocage (FB), le décideur n’a pas le choix : il reprend
l’exécution de l’opération sur la ressource qui lui est couplée.
5. Dans le cas de fin de panne de réseau (FR), la machine devient disponible, il faut donc
exploiter
cette machine à exécuter une opération. L'agent SIP doit exploiter la
ressource:
o Soit en reprenant l'exécution de l'opération arrêtée si celle-ci n'a pas été
réaffectée.
o Soit en choisissant une autre opération.
On remarque que, face à des événements attendus les décisions consistent à coupler des
ressources à des opérations pour exécution ou à reprendre celles qui étaient interrompues.
•
Evénements inattendus
1. Suite à une Panne (P) d’une ressource, une opération se trouve arrêtée. Avant que cette
opération ne soit en retard, le décideur pourra interrompre son exécution pour la
continuer sur une autre ressource libre associée et non en panne.
2. Suite à un Blocage (B) d’une opération en cours, la ressource qui l’exécutait devient non
active. Afin de respecter les délais des opérations en attente sur cette ressource. Le
décideur pourra interrompre l’exécution de l’opération bloquée pour continuer à utiliser
la ressource à laquelle elle était couplée.
3. Suite de Panne d'un Réseau (PR), déclaration de la panne s'accompagne de nom de la
machine qui devient indisponible, le décideur pourra interrompre son exécution pour la
continuer sur une autre machine libre_ Associée. Il 'agit de choisir la meilleur ressource
Donc, on peut dire que, face à un événement inattendu, les décisions à prendre consistent à
interrompre l’exécution d’une opération ; soit pour la réaffecter vers une autre ressource, soit
pour libérer la ressource qui l’exécutait.
26
Chapitre2 : La gestion de production
2.8 Conclusion
Dans ce chapitre, nous avons voulu donner un aperçu sur les systèmes de pilotage, leur nature,
leurs caractéristiques et leurs fonctions en faisant allusion aux systèmes de production qu’ils
pilotent, sachant que le premier s’adapte au deuxième.
Nous avons défini aussi l’état d’un atelier comme étant l’ensemble des états associés d’une
part aux opérations à réaliser et d’autre part aux ressources disponibles pour réaliser ces
opérations. Cet ensemble doit caractériser complètement le problème de conduite de l’atelier,
et par conséquent il doit fournir toutes les informations nécessaires à la prise de décision.
27
Chapitre3 : Les systèmes multi-agents
Chapitre 3
Les systèmes multi-agents
3.1 Introduction
L’avènement des systèmes multi-agents qui permettent de distribuer les problèmes sur des
ensembles auto-organisés vers une gestion locale, favorisant réactivité et comportements
émergents peut faciliter la mise en oeuvre du pilotage en temps réel. En effet, le but principal
d’un Système Multi-Agents (SMA) est de faire collaborer un certain nombre d’agents afin de
résoudre un problème.
Dans ce chapitre nous discutons le concepte d’Intelligence Artificielle Distribuée
(IAD),ensuite la notion de SMA .Enfin,nous présentons certains applications industrielles
avec le choix et la modélisation de la structure de pilotage.
3.2 L’intelligence artificielle distribuée
L'un des objectifs de l'Intelligence Artificielle est la définition de systèmes capables de
représenter des connaissances, de raisonner, et de planifier des actions afin de résoudre des
problèmes pouvant être très complexes. Elle cherche à obtenir des résultats comparables à ce
que feraient des êtres humains dans des cas similaires, mais sans forcément utiliser les mêmes
moyens.
Pour résoudre certaines tâches simples, il est tout à fait possible de considérer un système dit
intelligent qui agit seul dans son environnement. Cependant, en dehors de ces problèmes
simplifiés, on se retrouve souvent dans les cas réels avec un système qui n'est plus seul à agir
sur l'environnement. Les effets de ses actions peuvent alors se trouver combinées à celles
d'autres entités avec une certaine influence. Pour cela, il faut étendre cette notion de système
29
Chapitre3 : Les systèmes multi-agents
intelligent unique et construire un système à base d'entités plus simples où chacune s'occupe
d'une partie du problème, tout en ayant au final une complexité globale moindre.
3.3 Les Systèmes Multi-Agents (SMA)
3.3.1 Définition
Les systèmes multi-agents constituent une nouvelle technique de modélisation qui place
l’objet d’étude au centre de sa démarche. Ces modèles représentent les actions individuelles,
les interactions entre les acteurs et les conséquences de ces interactions sur la dynamique du
système.
Les systèmes multi-agents empruntent à l’intelligence artificielle distribuée les modes de
communication et de concertation entre agents. Ils reprennent les idées d’autonomie et
d’émergence du résultat final à partir des interactions individuelles à la vie artificielle.
Ferber [FER 95] donne la définition suivante :
« Un système multi-agents est un système composé des éléments suivants:
•
Un environnement c’est à dire un espace disposant généralement d’une métrique,
•
Un ensemble d’objets situés dans l’espace, ils sont passifs, ils peuvent être perçus,
détruits, créés et modifiés par les agents,
•
Un ensemble d’agents qui sont les entités actives du système,
•
Un ensemble de relations qui unissent les objets entre eux,
•
Un ensemble d’opérations permettant aux agents de percevoir, de détruire, de
créer, de transformer et de manipuler les objets.
•
Un ensemble d’opérateurs chargés de représenter l’application de ces opérations
et la réaction du monde à cette tentative de modification (les lois de l’univers).
Autrement dit, un système multi-agents est un ensemble d’entités autonomes et actives (les
agents). Les phénomènes ou les comportements sont distribués au niveau individuel des
agents. Chacun est alors spécialisé et agit de façon autonome.
De ces actions individuelles, émerge la solution ou le comportement général du système, soit
par une interaction due à la modification de l’environnement par les agents où ils évoluent,
soit par une communication entre agents par le biais d’un langage symbolique, par exemple.
De cette définition, nous déduisons que l’interaction et la communication sont un phénomène
important dans les SMA. A cet effet, nous allons maintenant décrire ce qui se passe lorsque
l'on est en présence de plusieurs agents en présentant les phénomènes d'interaction et la notion
30
Chapitre3 : Les systèmes multi-agents
d'organisation qui rend possible la résolution collective de tâches dans les systèmes multiagents.
3.3.2 Caractéristiques des agents
Notion d’Agent
Le concept d'agent est utilisé dans divers domaines comme l'ingénierie, la gestion des
réseaux, les systèmes distribués, la robotique, les interfaces homme/machine et l'Intelligence
Artificielle.
En raison des applications inhérentes diverses, la définition d'un agent varie beaucoup selon le
domaine, voire le système utilisé. Ainsi, nous retiendrons deux définitions parmi les plus
connues :
Définition 1
Un agent est un système informatique encapsulé qui est situé dans un environnement et qui est
capable d’effectuer des actions autonomes et flexibles afin d’atteindre les objectifs pour
lesquelles il a été conçu.
Définition 2
Un agent [FER 95] est une entité interactive qui existe autant que partie d’un environnement
partagé par d’autres agents. C’est une entité conceptuelle qui perçoit et agit avec initiative ou
en réaction dans un environnement où d’autres agents existent et interagissent les uns avec les
autres sur la base de connaissances partagées de communication et de représentation.
Les propriétés suivantes peuvent être attribuées aux agents :
•
Adaptabilité : capacité à apprendre et à s’améliorer avec l’expérience.
•
Autonomie : actions proactives et dirigées par des buts.
•
Comportement collaboratif : capacité à travailler avec d’autres agents pour un
objectif commun.
•
Capacité inférentielle : capacité d’agir avec des spécifications abstraites des tâches.
•
Capacité de communication au niveau des connaissances : capacité de
communiquer avec les autres agents avec un langage comme celui des êtres
humains.
•
Personnalité : capacité à manifester des attributs d’un caractère humain crédible.
•
Réactivité : capacité de détecter et de réagir.
31
Chapitre3 : Les systèmes multi-agents
•
Continuité temporelle : persistance d’une identité et d’un état sur une longue
période.
Définition 3
Un agent est une entité dont l’état est considéré comme constitué de composants mentaux tels
que croyances, capacités, choix, engagements, etc.
3.3.3 La typologie des agents
•
Agent Cognitif
La notion d’agent a été développée par le biais de la psychologie humaine où le
comportement humain est prévu et expliqué à travers l’attribution d’attitudes. Ainsi, les
agents cognitifs disposent d’une base de connaissances et de plans explicites leur permettant
d’atteindre leurs buts. Par ailleurs, des modèles d’agents ont été formalisés dans le sens des
croyances, des désirs, des intentions, des objectifs, etc., [WOO 94]. Un agent a une structure
du type BDI « Belief Desire Intention » [MAR 03] est aussi qualifié « délibératif » [SHO 93].
D’ailleurs, selon la programmation orientée agent, [SHO 93] propose la définition suivante :
•
Agent Réactif
Un agent peut être réactif, il n’a ainsi pas de représentation de son environnement. Il agit avec
un comportement de stimulus / réponse et réagit à l’état présent de l’environnement dans
lequel il est situé. Ce genre d’agents ne tient pas compte du passé et ne planifie pas le futur, ce
qui présente un grand avantage et rend les systèmes réactifs plus rapides. Les propriétés
principales de ces systèmes sont la robustesse et la tolérance aux fautes. En effet, un groupe
d’agents peut compléter une tâche quand l’un deux échoue.
Par contre, les agents réactifs ont un comportement myope puisqu’ils ne prévoient pas l’effet
des décisions locales sur le comportement global du système. En plus, il est difficile de gérer
les agents pour accomplir les tâches complexes car la relation entre les comportements
individuels et le comportement global du système n’est pas bien saisi.
•
Agent hybride
Un agent hybride possède des composants réactifs et aussi des composants cognitifs pour
garantir un raisonnement de qualité [SYC 98].
Dans ce cas, un agent est composé de plusieurs couches arrangées selon une hiérarchie, la
plupart des architectures considèrent trois couches.
Au plus bas niveau, on trouve une couche purement réactive, qui prend ses décisions en se
basant sur des données brutes en provenance des senseurs. La couche intermédiaire fait
32
Chapitre3 : Les systèmes multi-agents
abstraction des données brutes et travaille plutôt avec une version qui se situe au niveau des
connaissances de l’environnement. Finalement, la couche supérieure se charge des aspects
sociaux de l’environnement (raisonnement tenant compte des autres agents).
3.3.4 Interactions et coopération entre agents
Un système multi-agents (SMA) se distingue d’une collection d’agents indépendants par le
fait que les agents interagissent en vue de réaliser conjointement une tâche ou d’atteindre
conjointement un but particulier [JAR 02]. Les agents peuvent interagir en communiquant
directement entre eux ou par l’intermédiaire d’un autre agent ou même en agissant sur leur
environnement.
Le fait d'avoir plusieurs agents actifs au même moment dans le système implique de nouveaux
phénomènes :
1. Les effets des actions de chaque agent et les lois d'évolution de l'environnement se
combinent, et peuvent parfois s'amplifier, s'annuler, se perturber...
2. Les agents peuvent percevoir les effets provoqués par les actions des autres.
Ainsi, un agent peut avoir connaissance du fait qu'il n'est pas seul dans son environnement.
Ces deux remarques nous amènent à la notion d'interaction qui peut être définie de la façon
suivante :
Une interaction est une mise en relation dynamique de deux ou plusieurs agents par le biais
d’actions réciproques [FER 95].
• La coordination
Pour garantir la cohérence globale d’un SMA et sa convergence vers une solution au
problème posé, il est nécessaire que les agents coordonnent leurs différentes actions [HAT
96].
D’après Ferber [FER 95], la coordination définit la manière dont les actions des différents
agents doivent être organisées dans le temps et l’espace de manière à réaliser les objectifs. La
coordination permet d’organiser un ensemble d’actions ce qui évite que les agents se gênent
mutuellement. Selon Durfee et Montgomery le but de la coordination [MOR 94] est de
trouver, parmi un ensemble de comportements d’agents qui interagissent, une collection de
comportements qui réalise d’une façon satisfaisante les objectifs les plus importants des
agents.
33
Chapitre3 : Les systèmes multi-agents
• La coopération
La coopération est une attitude des agents qui décident de travailler en commun. Dans ce cas,
les agents coopèrent s’ils s’engagent dans une action commune après avoir identifié un but
commun. Ferber [FER 95] considère que plusieurs agents coopèrent, pour atteindre un
objectif commun, est vérifiée l’ajout d’un nouvel agent accroît différentiellement les
performances du group et s’il existe des conflits potentiels ou actuels d’accession à des
ressources et l’action des agents sert à éviter ou à sortir de tels conflits.
• La négociation
La négociation est un processus par lequel une décision commune est prise par deux agents ou
plus où chacun d’entre eux essayant d’atteindre leurs buts ou objectifs propres. Les agents
communiquent d’abord leurs positions, qui pourraient être source de conflit, et essayent
ensuite de s’orienter vers un accord en faisant des concessions ou en recherchant des solutions
alternatives [MAZ 01].
Les dispositifs principaux de la négociation sont le langage utilisé par les agents participants,
le protocole suivi par les agents dans le processus de négociation et la procédure de décision
que chaque agent utilise pour déterminer ses positions, concessions, et critère pour l’accord.
Les techniques de négociation peuvent être centrées environnement ou centrées agent.
Centrées environnement : comment doit-on créer les agents de l’environnement pour que les
agents interagissent de façon productive ?
Centrées agent : étant donné un environnement dans lequel un agent doit évoluer, quelle est la
meilleure stratégie à suivre ?
Le mécanisme de négociation doit avoir les caractéristiques suivantes :
Efficacité (pas de perte de ressources pour aboutir à un accord).
Stabilité (un agent ne doit pas dévier de sa stratégie).
Simplicité (faible coût en calcul et en bande passante).
Durfee[DUR 90]définit la négociation comme le processus d’améliorer les accords (en
réduisant les inconsistances et l’incertitude) sur des points de vue communs ou des plans
d’action grâce à l’échange structuré d’informations pertinentes. En général les chercheurs en
IA distribuée utilisent la négociation comme un mécanisme pour coordonner un groupe
d’agents. Différentes approches ont été développées en s’appuyant sur la riche diversité des
négociations humaines dans divers contextes.
34
Chapitre3 : Les systèmes multi-agents
3.3.5 Intérêts des SMA
Les modèles informatiques classiques s’appuient généralement sur des équations
différentielles et reposent sur des relations de cause à effet. Ils sont très puissants mais
présentent cependant une faiblesse quant à la mise en évidence des rapports entre différents
niveaux [FER 95]. L’approche multi -agents a une philosophie centrée sur une représentation
directe des individus et des comportements.
• Elle permet de représenter plusieurs niveaux : l’individu, des groupements d’individus
et l’ensemble du système. L’évolution du système au niveau supérieur doit
émerger des interactions entre les individus.
• Cette
approche est particulièrement bien adaptée à la simulation des systèmes
complexes dont le fonctionnement global émerge des actions des individus.
Les SMA permettent de faire vivre virtuellement des agents autonomes sur
ordinateur et d’y effectuer des expériences difficiles, voire impossibles, à
mener dans la réalité, d’où la qualification de laboratoires virtuels.
• Elle permet une grande efficacité pour réfléchir et programmer. La programmation des
processus au niveau local dans différents modules et l’utilisation d’entités
individualisées apportent une grande flexibilité.
•
Le langage utilisé est souvent un langage orienté objet qui permet de
développer le programme de façon modulaire. Les modifications ne nécessitent
pas de large restructuration du programme.
•
Le modèle peut être facilement adapté à des cas différents en ajoutant soit des
agents soit des comportements. Les modèles sont ainsi facilement évolutifs.
•
Un autre avantage est de pouvoir manipuler à la fois des paramètres
quantitatifs et des paramètres qualitatifs (des comportements).
Dans ce qui suit, nous donnerons un petit état de l’art des applications industrielles basées sur
les SMA récoltées par [MOY 00].
35
Chapitre3 : Les systèmes multi-agents
3.4 Applications industrielles
Nous proposons dans cette section, quelques applications industrielles exploitent le concept
SMA.
•
La conception et l’ingénierie simultanée : il s’agit de produire de meilleurs produits en
un temps court. A cet effet, toutes les étapes du cycle de vie du produit (définition du
cahier des charges, conception, élaboration des méthodes, mises en fabrication…) sont
considérées aussi tôt que possible.
•
Le système d’information et le CIM (Computer Integrated Manufacturing) : il est de
plus en plus prouvé que la productivité des entreprises est plus limitée par
l’information que par le travail ou le capital. Un exemple de gêne à la circulation de
l’information provient des logiciels des différentes parties de l’entreprise qui ne
peuvent pas "discuter" entre eux. Dans l’approche SMA, chacune de ces parties peut
être vue comme un agent.
•
La distribution du système de production (multi-sites) : chaque site de production est
autonome, mais doit tenir compte des décisions des autres sites.
•
La gestion de la production : le problème consiste à faire cohabiter des objectifs qui
ont des termes plus ou moins longs.
•
L’ordonnancement et le pilotage d’un système de production : comment ré ordonnancer dynamiquement un atelier qui subit des événements perturbateurs. Ce ré ordonnancement est une résolution coopérative et distribuée de problèmes entre les
différentes entités de l’entreprise. La résolution part de la plus petite entité (le poste de
travail), et tente de résoudre le problème en mettant en jeu progressivement de plus en
plus d’entités (machines identiques, puis atelier, etc.).
•
Les chaînes logistiques : ce sont des réseaux de fournisseurs, d’usines, d’entrepôts, de
centres de distribution et de détaillants à travers lesquels des matières premières sont
acquises, transformées et livrées au consommateur. L’objectif est d’optimiser les
performances de ces chaînes logistiques. Pour cela, les niveaux de décision
stratégique, tactique et opérationnelle sont mis en jeu pour que chaque maillon opère
de manière intégrée à l’ensemble de la chaîne.
36
Chapitre3 : Les systèmes multi-agents
3.5 Choix et modélisation de la structure de pilotage
Nous avons choisi la structure de pilotage distribuée supervisée. Ce choix est motivé par les
avantages qui caractérisent cette approche et qui se résument dans :
•
Les caractéristiques de globalisation (en termes d’optimisation ou d’objectif) qui sont
celles des approches hiérarchiques : la présence d’un niveau de supervision fournit une
vision et une capacité de prise de décision globale,
•
Les caractéristiques associées aux processus d’allocation dynamique des structures
distribuées qui lui octroient une capacité satisfaisante en termes de réactivité et de
flexibilité.
Trentesaux [TRE 96] a utilisé le concept d’agent au sein d’un système multi-agents pour
modéliser la structure de pilotage distribuée supervisée.
Le système est composé d’un ensemble d’agents sous le contrôle d’un superviseur. Chaque
agent (appelé Station Intégrée de Pilotage ou SIP) est spécialisé dans les opérations de
production et est de type cognitif. Il possède un niveau de connaissance suffisant pour
permettre une prise de décision.
Le rôle d’une SIP est de :
•
Gérer localement en temps réel les processus d’allocation des tâches, les files
d’attente, etc.
•
Gérer la disponibilité des éléments nécessaires à la réalisation des tâches opératoires.
La SIP supervision doit maintenir une vue globale sur l’état du système. Pour cela, l’agent
superviseur maintient un agenda global qui lui permet de suivre l’exécution de toutes les
tâches dans la cellule de leur lancement jusqu’à leur sortie du système de production. Cet
agenda permet aussi de reconstituer les informations de n’importe quel agenda local, qui
serait sur un agent SIP. La fonction ordonnancement dynamique n’est pas attribuée à un agent
unique, mais émerge d’un processus de négociation inter-agents.
Nous considérons un système de production composé d’un ensemble d’agents sous le contrôle
d’un superviseur. La figure(3.1) présente notre architecture retenue où nous distinguons
l’agent superviseur et plusieurs autres agents simples consacrés chacun à un centre de travail
(Agent SIP local), chacun étant constitué de ses propres ressources.
37
Chapitre3 : Les systèmes multi-agents
Figure 3.1: Modélisation de notre structure de pilotage par un SMA.
ƒ Station Intégrée de Pilotage (SIP)
Un agent est composé de cinq sous-systèmes figure(3.2) :
•
Sous-système d’information : son rôle est d’assurer la communication entre les
sous-systèmes et de gérer les informations locales. Il est composé, d’un coté, d’une
base de données contenant les informations sur les ressources contrôlées par la SIP
ainsi que les informations de suivi (états des ressources et des opérations) d’un
autre coté, il inclut une base de données contenant des données liées aux modèles
de traitements (contenant par exemple la liste des critères) associés au soussystème de décision.
•
Sous-système de communication : il assure la liaison entre la SIP et les autres
agents constituant le système de production.
•
Sous-système d’interface : intermédiaire entre l’opérateur humain et l’agent
permettant ainsi l’échange d’informations entre eux.
•
Sous-système de contrôle/commande : il assure la commande des ressources de
production et transmet les informations de suivi au sous-système d’information.
•
Sous-système de décision : ce sous-système est responsable de l’ensemble des
décisions prises au cours du processus de résolution de problèmes.
38
Chapitre3 : Les systèmes multi-agents
Support de
communication
Système
d’information
Système
d’interfac
Système de
décision
Système de
communication
Opérateur
humain
Système
de contrôle
Système
piloté
Figure 3.2 : Structure d’un agent SIP selon [TRE 96].
3.6 Conclusion
Dans ce chapitre nous avons essayé de définir le plus précisément possible, ce qu’est un agent
et ce qu’est un système multi-agents avec leurs notions élémentaires, car l’idée de base des
SMA est de faire cohabiter des entités autonomes, capable de percevoir et d’agir sur
l’environnement en les faisant interagir et collaborer pour résoudre des problèmes complexes
et distribués. A cet effet, nous avons jugé judicieux d’expliquer l’interaction entre les
agents,ainsi que la nature de la communication. L’intégration d’un module de décision dans la
structure des agents SIP traduit l’importance de l’aspect décision dans la mise en œuvre d’une
fonction de pilotage. Ce module doit intégrer les données et les modèles de résolution
nécessaires permettant à l’agent de prendre la décision adéquate.
Dans cette étude, nous nous intéressons tout particulièrement à la négociation entre les agents
décideurs, le chapitre suivant sera consacré à la description du protocole de négociation ainsi
élaboré.
39
Chapitre 4 : La négociation
Chapitre 4
La négociation
4.1 Introduction
Lorsque plusieurs agents interagissent, des conflits peuvent survenir, ce qui nécessite
l’utilisation de mécanismes de résolution de conflits. Parmi ces mécanismes, on trouve
notamment la coordination, la négociation.
La négociation est un processus grâce auquel plusieurs parties aboutissent à une décision
commune.
Les parties verbalisent en premier lieu leurs demandes et convergent vers un accord par une
succession de concessions ou une recherche de nouvelles alternatives [PRU 81].
Pour cela nous nous proposons d’étudier dans ce chapitre la négociation entre agents.
En général, une négociation intervient lorsque des agents interagissent pour prendre des
décisions communes, alors qu’ils poursuivent des buts différents (indépendants). Plus
précisément, l’objectif de la négociation est de résoudre des conflits qui pourraient mettre en
péril des comportements coopératifs. Il y a d’abord un échange de points de vue,
généralement divergents, puis un ajustement réciproque (concessions ou propositions
alternatives) pour obtenir le compromis attendu. Le processus de négociation permet
d’améliorer les accords (en réduisant les inconsistances et l’incertitude) sur des points de vue
communs ou des plans d’action grâce à l’échange structuré d’informations pertinentes.
La négociation joue un rôle fondamental dans les activités de coopération en permettant aux
personnes de résoudre des conflits qui pourraient mettre en péril des comportements
coopératifs.
41
Chapitre 4 : La négociation
La négociation se décompose en cinq stratégies [LEC 96] :
1. La compétition : rester ferme et utiliser des tactiques de pression.
2. La coopération : rechercher une solution acceptable mutuellement.
3. La concession unilatérale : La concession unilatérale ne permet pas d'impliquer tous
les participants à la négociation. Toutefois, cette stratégie semble intéressante lorsque
la négociation devient inutile ou superflue pour certains agents quand des événements
parallèles se produisent.
4. L'inaction.
5. La rupture.
L'inaction et la rupture représentent des stratégies particulières qu'un agent peut adopter dans
certaines situations (abandon, épuisement des préférences, etc.).
La négociation compétitive et la négociation coopérative sont les stratégies les plus courantes
lors de la négociation.
4.2 Définitions de base de la négociation
Dans les sociétés humaines, la coordination est un aspect de la vie quotidienne vu que nous
sommes perpétuellement en contact avec d'autres personnes qui peuvent aider ou gêner nos
mouvements. Très souvent, la coordination est un processus étroitement lié à celui de la
négociation: deux ou plusieurs personnes qui se coordonnent font appel de façon implicite ou
explicite à la négociation. Celle-ci s'avère efficace lorsque les participants à la coordination
aboutissent à un accord.
Qu'est ce qu'on entend par négociation?
Il y a négociation lorsqu’il y a une discussion, des propositions entre les protagonistes et
lorsque l’accord final satisfait au mieux tous les participants [MUL 92].
Il y a probablement autant de définitions similaires de la négociation que de chercheurs dans
ce domaine.
Définition 1 : La négociation est le processus de communication d'un groupe d'agents afin de
conclure un accord mutuellement acceptable [MUL 92].
Tous les chercheurs s’accordent sur la finalité de la négociation, à savoir l’aboutissement à un
accord commun satisfaisant. Mais, la négociation est elle-même définie comme un processus,
toute la diversité des recherches en négociation provient de ce mot : processus. La
négociation peut donc être vue comme une boîte noire ayant en entrée un conflit et en sortie
42
Chapitre 4 : La négociation
un accord, dans le meilleur des cas. La recherche sur la négociation consiste donc à étudier
les mécanismes de cette boîte noire, pour la rendre transparente.
Définition 2 : La négociation est le processus d’améliorer les accords (en réduisant les
inconsistances et l’incertitude) sur des points de vue communs ou des plans d’action grâce à
l’échange structuré d’informations pertinentes [DUR 89].
Définition 3 : On entend une discussion dans laquelle des individus intéressés échangent des
informations et arrivent à un accord en commun [DAV 80].
Définition 4 : La négociation est le processus par lequel plusieurs individus prennent une
décision commune [PRU 81].
Définition 5 : La négociation consiste à améliorer les accords sur des points de vue ou des
plans d’action grâce à l’échange structuré d’informations pertinentes.
En général, les chercheurs en IA distribuée utilisent la négociation comme un mécanisme
pour coordonner un groupe d’agents. Différentes approches ont été développées en
s’appuyant sur la riche diversité des négociations humaines dans divers contextes [CON 91],
[DAV 83],[ROS 94], [SYC 89].
La définition que nous adoptons de la négociation dans le cadre de ce travail est la suivante :
La négociation est un processus par lequel une décision commune à deux agents ou plus est
prise ; chacun d’entre eux essayant d’atteindre leurs buts ou objectifs personnels.
Les agents communiquent leur position (source du conflit) et se déplacent en faisant des
concessions et en cherchant des alternatives.
Les principaux éléments sont le langage utilisé par les agents, le protocole suivi par les
agents lors des négociations et le processus utilisé par chaque agent pour déterminer sa
position, les concessions possibles et les critères d’accord.
4.3 Composantes du modèle de négociation dans les SMA
Pour modéliser la négociation dans un SMA, on prend généralement en compte les aspects
suivants [JEN 00] :
•
Le langage de négociation (fonctionnement de la société d'agents) : composé d'un
ensemble de primitives de communication, il précise la manière dont les agents
communiquent ;
•
Le protocole de négociation (fonctionnement de la société d'agents) : l'ensemble des
règles qui régit la négociation: les participants possibles dans la négociation, les
43
Chapitre 4 : La négociation
propositions légales que les participants peuvent faire, les états de la négociation (par
exemple l'état initial où commence la négociation, l'état où on accepte des
soumissions ou la fin de la négociation) et une règle pour déterminer quand on est
arrivé à un accord ou quand il faut s'arrêter parce qu'aucun accord n'a pas pu être
trouvé .
•
Les objets de négociation : sur ces objets que se porte la négociation (prix, délai,
temps de réponse) ;
•
Le processus de décision (fonctionnement de l'agent) : c'est lui qui oriente la stratégie
de l'agent au cours de la négociation. C'est le coeur du fonctionnement et l'intelligence
de la négociation.
Remarque : Muller [MUL 96] définit trois aspects de négociation :
•
Protocole de négociation,
•
Objets de négociation,
•
Raisonnement, modèles de prise de décision des agents
4.4 Quelques approches de négociation
Il existe plusieurs approches de négociation permettant la coordination d'agents pour la
résolution de problèmes distribués. Nous décrivons dans cette section quelques unes de ces
approches.
La négociation peut prendre diverses formes qui peuvent être regroupées en plusieurs
familles. La première famille est celle des systèmes de vote qui sont utilisés pour choisir une
solution parmi plusieurs. On y trouve notamment, le vote à la pluralité et les méthodes de
Borda, de Hare et de Condorcet [VER 04]. La seconde famille que nous présentons est celle
des enchères, nous présentons ensuite la famille des négociations multi-étapes et les
négociations combinées, la famille des négociations à base d’argumentation puis pour finir la
négociation basée sur le Contract Net.
4.4.1 Les systèmes de vote
Les systèmes de vote sont utilisés pour élire une alternative parmi les différentes alternatives
possibles. Les plus simples concernent un choix entre une alternative et le statu quo. Cela
revient à proposer l’alternative et à recueillir les votes pour et les votes contre cette
alternative. Les systèmes plus complexes impliquent un nombre d’alternatives supérieur à
44
Chapitre 4 : La négociation
deux, les votants devant alors choisir l’alternative qu’ils préfèrent. Le terme de choix social
est utilisé afin de représenter l’alternative qui satisfait au mieux la population. Dans ce qui
suit, nous considérons le problème suivant : soit un ensemble A de n alternatives dénotées a,
b, c, etc. et un ensemble P de personnes (de votants) dénotées P1, P2, P3, etc. Chaque
personne p de l’ensemble P classe obligatoirement toutes les alternatives sous la forme d’une
liste selon ses préférences. Nous supposons qu’il n’y a pas d’égalité au sein de ces listes.
Nous représentons ces listes de manière verticale depuis les alternatives les plus préférées en
haut de la liste jusqu’aux moins préférées en bas de la liste.
Nous présentons dans cette sous-section quelques différentes procédures de choix social qui
fournissent la ou les alternatives les plus préférées des personnes ainsi que des propriétés
souhaitables pour de telles procédures.
Une procédure de choix social est une fonction qui prend en paramètre une séquence de listes
(sans égalités) d’un ensemble A (l’ensemble des alternatives) et qui produit soit un élément
de A, soit un sous-ensemble de A (en cas d’égalité).
Nous illustrons chacune de ces procédures avec l’exemple suivant. On considère un problème
avec n = 5 alternatives a, b, c, d et e, et 7 personnes dont les listes de préférences sont les
suivantes :
P1
P2
P3
P4
P5
P6
P7
a
a
a
c
c
b
e
b
d
d
b
b
c
c
c
b
b
d
d
d
d
d
e
e
e
a
a
b
e
c
a
a
e
e
a
La pluralité : cette méthode simple consiste à nommer choix social l’alternative étant classée
première le plus grand nombre de fois parmi les listes de préférences des votants.
Avec notre exemple, a remporte 3 voix, b en remporte 1, c en remporte 2, d en remporte 0 et
e remporte 1 voix. L’alternative a avec 3 voix est donc le choix social selon cette procédure,
alors que 4 personnes sur 7 n’ont pas voté pour elle.
La méthode de borda : pour chaque liste de préférences, l’alternative classée première
remporte n−1 points, la seconde n−2 points et ainsi de suite jusqu’à la dernière qui obtient 0
point. Pour chaque alternative, on calcule le nombre total de points qu’elle a recueilli.
45
Chapitre 4 : La négociation
L’alternative ayant le meilleur score est déclarée choix social. Comme toutes les alternatives
sont classées par les votants, elles ont toutes une note, on est donc sûr de trouver le choix
social.
Avec notre exemple, a remporte 4 + 4 + 4 + 0 + 1 + 1 + 0 = 14 voix, b remporte
3+2+2+3+2+4+1 = 17 voix, c remporte 2+0+0+4+4+3+3 = 16 voix, d remporte
1+3+3+2+3+2+2 = 16 voix et e remporte 0+1+1+1+0+0+4 = 7 voix. L’alternative b est donc
le choix social selon la méthode de Borda.
La méthode de Hare : ce principe général est de déterminer le choix social en éliminant
successivement les alternatives les moins désirées. Le principe est le suivant : si une
alternative est classée première sur au moins la moitié des listes de préférences, alors c’est le
choix social et la procédure est terminée. Si aucune alternative n’est classée première sur au
moins la moitié des listes, alors on sélectionne l’alternative classée première sur le moins de
listes et on l’enlève de toutes les listes.
Si plusieurs alternatives sont à égalité, on les enlève toutes des listes. Les alternatives qui
suivaient celle qui a été enlevée sur les listes gagnent alors une place. A ce stade, les listes de
préférences sont plus courtes d’au moins une alternative. On recommence alors la procédure
qui est de chercher si une alternative est classée première sur au moins la moitié des listes et
d’effacer l’alternative la moins désirée sinon. La procédure s’arrête dès qu’une alternative
apparaît en premier sur au moins la moitié des listes ou si toutes les alternatives restantes
apparaissent en premier sur exactement le même nombre de listes. On est sûr de trouver un
choix social (ou un sous-ensemble d’alternatives) car toutes les alternatives sont classées par
les votants et on ne les enlève pas toutes puisqu’on s’arrête dès qu’une alternative est classée
première sur au moins la moitié des listes ou que toutes les alternatives restantes sont classées
premières sur exactement le même nombre de listes.
Avec notre exemple, il faut qu’une alternative soit classée première sur au moins
4 listes pour être le choix social. Aucune alternative ne répond à ce critère (l’alternative a
choisie par le plus de personne ne remporte que 3 voix), il faut donc retirer l’alternative la
moins désirée. L’alternative la moins classée première dans les listes de préférences est
l’alternative d car elle est classée première sur aucune des listes. On enlève donc l’alternative
d de toutes les listes. On obtient donc les listes suivantes :
46
Chapitre 4 : La négociation
P1
P2
P3
P4
P5
P6
P7
a
a
a
c
c
b
e
b
b
b
b
b
c
c
c
e
e
e
a
a
b
e
c
c
a
e
e
a
Nous n’avons toujours pas d’alternative classée première sur au moins quatre listes, il nous
faut donc à nouveau retirer l’alternative la moins désirée. Les alternatives b et e sont à égalité
avec une seule première place. On enlève donc ces deux alternatives des listes de préférences.
On obtient alors :
P1
P2
P3
P4
P5
P6
P7
a
a
a
c
c
c
c
c
c
c
a
a
a
a
L’alternative c est classée première sur quatre listes, elle est donc le choix social par la
méthode de Hare.
4.4.2 Les enchères
Les enchères sont des mécanismes d’interaction simples mais nécessitant une étude préalable
d’un certain nombre de problèmes, concernant principalement le choix du protocole et de la
stratégie à utiliser. Une enchère comprend habituellement un initiateur, et plusieurs
participants. Les offres des participants peuvent se faire une seule fois ou en plusieurs tours,
en fonction du protocole d’enchère. A la fin, l’initiateur choisit le gagnant, les règles pour
choisir le gagnant étant, de même, spécifiques au protocole.
Il y a beaucoup de protocoles d’enchère, nous nous contenterons donc de présenter les plus
importants, en expliquant aussi qu’elle est la meilleure stratégie à choisir, lorsqu’une telle
stratégie existe.
•
Enchère anglaise (premier-prix offre-publique) [SITE 04]
L’initiateur commence l’enchère, d’habitude par l’annonce d’un prix de réservation. Chaque
agent participant annonce de façon publique son offre, en plusieurs tours successifs. Quand
aucun participant ne veut plus augmenter son offre, l’enchère s’arrête et le participant ayant
fait la plus grande offre obtient l’objet au prix de son offre.
47
Chapitre 4 : La négociation
Dans les enchères à valeurs privées, la stratégie dominante est de faire une offre un peu plus
grande que la dernière offre et de s’arrêter quand la valeur privée est atteinte. Dans les
enchères à valeurs corrélées, il n’y a pas de stratégie dominante. Le participant augmente le
prix d’une quantité constante ou d’une quantité qu’il considère justifiée.
•
Enchère première offre-cachée [SITE 04]
L’initiateur commence l’enchère et chaque agent participant soumet une offre, dans un tour
unique, sans connaitre les offres des autres participants. Le participant qui a fait la plus
grande offre gagne l’objet au prix de son offre. Dans ce protocole il n’y a pas de stratégie
dominante, mais des algorithmes dépendant du contexte peuvent être réalisés pour évaluer la
valeur attribuée par les autres participants à l’objet.
•
Enchère hollandaise (descendante) [SITE 04]
L’initiateur commence par proposer un prix et, par des tours successifs, diminue ce prix
jusqu’au moment ou un des participants achète l’objet au prix proposé. Le protocole est
équivalent à celui de l’enchère premier-prix offre-cachée et il n’y a donc pas de stratégie
dominante, en général.
•
Enchère Vickery (deuxième -prix offre-cachée) [SITE 04]
Chaque agent participant soumet une offre sans connaitre les offres des autres, dans un seul
tour.
Jusqu’à ce moment le protocole est le même que celui de l’enchère premier-prix offrecachée. La différence est que le participant qui a fait l’offre la plus grande gagne mais il doit
payer le prix de la deuxième plus grande offre. La stratégie dominante d’un participant dans
ce cas est de soumettre une offre avec sa valeur privée de l’objet. Cette particularité à permis
à l’enchère Vickery d’être la plus utilisée pour les agents logiciels.
4.4.3 A prendre ou à laisser '' Le take it or leave it offer''
Cette forme de négociation est très primaire, puisqu’elle consiste à formuler une proposition
qui est à prendre ou à laisser par le ou les agents. Cette négociation se déroule sur un seul
tour, sans contre-proposition ni renégociation [VER 04].
4.4.4 Les négociations multi-attributs
Les négociations multi-attributs, comme leur nom l’indique, sont des négociations qui
impliquent différents attributs devant être négociés. Elles sont directement opposées aux
enchères qui n’impliquent qu’un seul attribut. Cette forme de négociation est cependant très
répandue et à la base de nombreuses variantes de négociation.
48
Chapitre 4 : La négociation
Dans [JON 01], Jonker et Treur proposent une architecture d’agents pour la négociation
multi-attributs et décrivent le modèle de négociation qu’ils proposent.
4.4.5 Les négociations multi-niveaux
C’est un type de négociation où le contrat se décompose en plusieurs “sous contrats”,
dépendants les uns des autres [MEY 88]. La négociation s’effectue séquentiellement pour
chaque sous-contrat, la réussite globale est atteinte lorsque tous les sous-contrats ont été
négociés avec succès.
Lorsqu’un sous-contrat est en cours de négociation et qu’aucune solution n’est possible, on
effectue un backtrack pour la négociation du sous-contrat précédent.
4.4.6 Les négociations combinées
Les négociations combinées sont utilisées lorsqu’une personne a besoin d’un ensemble
d’objets non disponibles auprès d’un unique vendeur. Il faut alors négocier chaque objet (ou
sous-ensemble d’objets) séparément et avoir un mécanisme de liaison entre les négociations,
car si l’ensemble des objets ne peut être acquis, aucun objet ne doit l’être. De plus, il ne faut
obtenir chaque item qu’en un seul exemplaire. Les différentes négociations sont
indépendantes les unes des autres, alors que l’ensemble des objets négociés sont typiquement
interdépendants.
4.4.7 La négociation à base des connaissances
Dans ce type de négociation, il existe un agent omnipotent qui possede les connaissances
partagées par chaque agent. Cette connaissance partielle du système global lui permet de
résoudre les conflits [HER 04].
4.4.8 La négociation à base d’argumentation
La négociation par argumentation permet aux agents d’essayer de changer le rejet ou la
modification d’une proposition faite par un autre agent en utilisant des arguments. Ainsi, un
agent peut essayer de persuader un autre agent de répondre favorablement à sa proposition en
cherchant des arguments qui identifient de nouvelles occasions ou modifient les critères
d’évaluation.
L’argumentation a alors pour but de modifier les croyances des autres agents afin qu’ils
adoptent le même point de vue, les mêmes croyances et intentions que l’agent argumentant.
Jennings [PAR 96] a présenté un rapport préliminaire sur cette forme de négociation en
1996, dans lequel il utilise des agents BDI (Belief, Desire, Intention) ainsi que des arguments
49
Chapitre 4 : La négociation
et des règles d’inférence utilisant la notation Prolog et une extension des arguments pour
indiquer le soutien ou le doute dans les propositions et pour les prouver. Amgoud et Prade
proposent une approche possibiliste de la négociation par argumentation dans [AMG 04b]
et un framework logique qui comprend de nouveaux types d’arguments dans [AMG 04a].
Dans [CAR 99], Carbogim et Robertson proposent un framework général d’argumentation.
La nature et les types des arguments peuvent varier énormément :
– Mode logique (nature déductive).
– Mode émotif.
– Mode viscéral (menace par exemple).
Chaque forme de négociation possède son propre protocole, qui définit le déroulement du
processus de négociation, c’est-à-dire les actes de langage utilisés et leur séquencement.
Un des protocoles les plus étudiés pour la négociation s’appuie sur une métaphore
organisationnelle [DAV 83]. Le protocole du réseau contractuel (“Contract-Net”) a été une
des approches les plus utilisées pour les SMA [SMI 80b].
4.4.9 Le Contract Net Protocol
D'après Smith [SMI 80], la négociation est un processus qui se caractérise par trois
éléments :
1. Les échanges d'informations se font de façon bilatérale;
2. Chaque partie évalue la négociation en tenant compte de sa propre perspective:
3. L'accord final est obtenu par sélection mutuelle.
Smith [SMI 94] propose un protocole de négociation basé sur les contrats qu'on appelle
réseau contractuel ("Contract Net"). Ce réseau est basé sur le principe des appels d'offres. Il
est constitué d'un ensemble de nœuds qui négocient entre eux par envois de messages.
50
Chapitre 4 : La négociation
Début du
protocole
Le gestionnaire (l’agent manager)
identifier la tâche à exécuter
Émet une annonce aux agents
Les agents soumettent des
propositions
Le temps de
soumissions est expiré
Le gestionnaire attribue la tâche
aux meilleurs soumissionnaires
L’agent refuse d’accomplir
la tâche
L’agent accepte
d’accomplir la tâche
Le contrat est conclu
Choisit un autre
soumissionnaire
Figure 4.1: Le protocole Contract Net [lEC 96].
4.4.9.1 Principe de l’algorithme
Avant que le processus de négociation ne débute, chaque agent possède son ensemble de
préférences. La négociation est enclenchée lorsqu'un ou plusieurs agents ont émis des
propositions. Lors de l'évaluation de la proposition, sélectionnée par ordre d'envoi, chaque
agent détermine parmi ses préférences celles qui ne sont pas compatibles avec la proposition.
Par la suite, ils mettent à jour leurs connaissances par rapport aux préférences des autres.
Lorsqu'un agent n'est pas satisfait par la proposition, il émet une nouvelle proposition.
Délai de réponse et réponse par défaut : Lors de négociations distribuées comme c’est le cas
lorsque ce sont des agents qui agissent pour le compte d’un utilisateur, il se peut qu’un
participant ne réponde pas à la proposition de l’initiateur, soit parce qu’il est absent, soit
parce qu’une panne est survenue, il faut alors que la négociation ne soit pas bloquée. Afin de
permettre à la négociation de continuer, un mécanisme de temps d’attente des réponses est
51
Chapitre 4 : La négociation
mis en place et lorsque ce temps est écoulé, l’initiateur considère une réponse par défaut pour
le participant.
Nombre de tours de parole des participants : Afin de ne pas avoir une phase de conversation
infinie, nous avons défini le nombre de tours de négociation, c’est-à-dire le nombre de fois où
les participants pourront proposer une modification du contrat, faire une contre-proposition.
Comme avantage,on peut dire que le protocole Contract Net permet de garder la
communication à son minimum, faciliter l'échange de message, faciliter la résolution
conflictuelles, tenir compte des différentes façons permettant d'atteindre un compromis,
efficacité (Pas de perte de ressources pour aboutir à un accord),stabilité (Un agent ne doit pas
dévier de sa stratégie),simplicité (Faible coût en calcul et en bande passante), permettre une
implémentation simple (utiliser des concepts et des mécanismes simples)[MIC 03]. Pour les
désavantages , la communication diffusée peut générée trop de communications pour rien.
Le Contract Net peut être combiné à un processus de décomposition de tâche : c'est le
Contract Net étendu.
4.4.9.2 Le Contract Net étendu
Le modèle Contract Net étendu [SITE 03] est basé sur une décomposition décentralisée de
tâche. L'agent gestionnaire fractionne une tâche en plusieurs sous- tâches et les annonce à un
agent ou à un groupe d'agents soumissionnaires. Mais contrairement au Contract Net_
original où une tâche ne peut être qu'accordée ou rejetée, dans le "Contract Net" étendu, une
tâche peut être accordée temporairement, rejetée temporairement, accordée définitivement et
rejetée définitivement par les agents.
Dans le Contract Net étendu, l'agent gestionnaire annonce une commande un groupe d'agents.
Il sectionne le meilleur agent soumissionnaire à qui envoie un accord temporaire. Tous les
autres agents reçoivent un rejet temporaire. Si la meilleure soumission ne couvre pas la
totalité de la commande, la partie restante de la commande est ré-annoncée par le
gestionnaire jusqu'à couvrir sa totalité. Au terme de ce processus les accords et les rejets
temporaires sont transformés par des accords et des rejets définitifs.
Quand un agent reçoit un accord temporaire, il crée une copie de son ancien plan, ainsi il sera
en mesure de le récupérer en cas de rejet définitif.
52
Chapitre 4 : La négociation
4.5 Hiérarchie des différents types de négociation
La négociation peut prendre différentes formes, de la négociation la plus basique à la plus
complexe. Le niveau le plus faible en terme de négociation est un système dans lequel cette
négociation est réduite à sa plus simple expression. C’est notamment le cas
dans la
négociation dite à prendre ou à laisser dans laquelle une offre est formulée qui sera soit
acceptée, soit refusée, mais sans autoriser de révision. La négociation s’arrête après cette
offre. Le Contract Net Protocol est une négociation de niveau plus élevé, puisqu’il consiste
en un appel d’offres de la part d’un agent appelé manager. Différentes offres sont alors
proposées au manager par des contractants, mais seulement l’une d’elles est choisie par le
manager sans autre formulation si aucune offre ne convient. La négociation telle que nous la
concevons commence à un niveau supérieur, où plusieurs offres sont échangées, des contrepropositions sont formulées et des concessions sont faites par les différentes parties
impliquées. Les enchères font partie de ces négociations à un niveau certe élémentaire,
puisque aucune concession n’est faite par l’une des parties et surtout parce que le résultat
n’est satisfaisant que pour le vendeur et l’acheteur ayant gagné l’enchère, les autres
participants n’ayant rien obtenu. Les systèmes de vote font également partie des négociations
dans une forme élémentaire puisqu’une seule intervention des participants est nécessaire pour
réaliser la procédure de vote. Les négociations combinées, les négociations multi- niveaux et
les négociations par argumentation constituent un niveau supérieur dans les différentes
formes de négociation.
La négociation sous sa forme la plus basique est en bas, la plus évoluée en haut.
Négociation par argumentation
Négociations multi-niveaux, négociations combinées
Négociations multi-attributs
Contract Net Protocol
Systèmes de vote
A prendre ou à laisser (Take it or leave it offer)
Tableau 4.1 : Hiérarchie des différents types de négociation. La négociation sous sa forme la
plus basique est en bas, la plus évoluée en haut [VER 04].
53
Chapitre 4 : La négociation
La stratégie de négociation que nous proposons est caractérisé par une suite de messages
échangés entre un initiateur et des participants. En fait, notre stratégie proposée s’inspire du
Contract Net Protocol, et en ce qui concerne :
Les négociations combinées(présentée en section 4.4.6) ne peuvent pas non plus être
implémentées avec notre stratégie proposée car elles nécessitent un lien entre plusieurs
contrats. On ne peut pas créer deux contrats et dire que les deux doivent être pris ou aucun.
La famille des négociations par argumentation (présentée en section 4.4.8) n’est pas incluse
dans notre stratégie proposée. Quant à la négociation par argumentation, elle nécessitera
l’élaboration d’agents BDI(présentée dans le chapitre précédent) et l’utilisation de formules
logiques et d’un système expert pour vérifier les assertions des agents
4.6 Conclusion
Dans ce chapitre nous avons présenté les différentes définitions de la négociation et ces
défférents formes.
Le fait que deux agents décident d'accéder à la même ressource pour réaliser leurs tâches peut
entraîner, dans certains cas, une situation conflictuelle. En fait, notre choix qui s’est porte sur
le Contract Net Protocol permet aux agents d'échanger des propositions dans le but
d'atteindre un compromis, où les agents essayent de déterminer l'accord le plus bénéfique au
groupe.
En ce sens le chapitre suivant présente le détail de la stratégie de négociation proposée.
54
Chapitre 5 : Proposition d’un protocole de négociation
Chapitre5
Propositiond’un protocole
denég ociation
5.1 Introduction
Dans ce chapitre, nous introduisons dans un premier temps la structure des agents SIP (Station
Intégrée de Pilotage). Ensuite, nous présenterons le processus de négociation élaboré par les
agents qui sont définis. Dans un second temps, nous justifions l’utilisation de la méthode
ELECTRE III dans le processus décisionnel adopté par les agents au cours de leurs
négociations.
5.2 Architecture de l’agent SIP
a) Description de l’agent SIP superviseur
Le superviseur doit posséder une vue globale sur l’état du système. Pour cela, il maintient un
agenda global qui lui permet de suivre l’exécution et l’évaluation de toutes les tâches dans le
système. Cet agenda permet aussi de reconstituer les informations de n’importe quel agenda
local, qui serait sur un agent local.Une Architecture de l’agent SIP superviseur est donnée à la
figure(5.1)
 Les comportements
Doté d’un ensemble de comportements (CP) spécifiques, l’agent superviseur peut accomplir
convenablement sa tâche, on distingue alors :
•
Comportement CPR (Comportement de Ressource): Sert à la recherche de la
ressource satisfaisant au mieux des objectifs à atteindre pour la fabrication d’un
produit.
56
Chapitre 5 : Proposition d’un protocole de négociation
•
Comportement
CPM
(Comportement
de
la
configuration
Matérielle):
Ce
comportement traite les informations reçues par l’agent superviseur sur la
configuration de la cellule, les gammes (Ajout ou suppression de ressource, nouvelle
gamme).
 Le module d’analyse et de suivi des tâches: Ce module effectue une analyse
continuelle de messages que l’agent superviseur reçoit, à travers son interface de
communication, et active les comportements qui leurs correspondent. Il met à jour aussi
les états des opérations dans l’agenda global suite aux messages envoyés par les agents
SIP.
 La liste des événements : Cette liste regroupe des événements tels que les demandes,
les contrats et les acquittements.
 Le filtre : Est un dispositif mis en place et activé par l’agent superviseur qui envoie une
requête vers les autres agents décideurs.
 L’horloge temps réel : Elle génère le facteur temps réel par l’agent superviseur.
 L’interface experte : Elle permet à l’expert (l’opérateur humain) de consulter et de
modifier la configuration de la station, de connaître l’état actuel des ressources, et de
suivre l‘évolution de l’activité de production sur cette station.

L’interface de communication : Gère les messages en transmet entre l’agent
superviseur et les autres agents du système.
Le module de communication de chaque agent est constitué des sous modules suivants :
•
Le module de préparation des messages : Ce module effectue la mise en forme et le
codage des objets messages qu’un agent veut envoyer à d’autres agents du système
selon la nature du message à transmettre et le destinataire.
•
Le module d’interprétation des messages : Son rôle est l’inverse de celui du précédent.
57
Chapitre 5 : Proposition d’un protocole de négociation
58
Chapitre 5 : Proposition d’un protocole de négociation
b)Description de l’agent SIP (local)
L’agent SIP (local) possède une vue locale sur l’état du système. Pour cela, il maintient un
agenda local qui lui permet de suivre l’exécution et l’évaluation de ses tâches dans le
système. Une Architecture de l’agent SIP est donnée à la figure(5.2)
Les composants de l’agent SIP sont les suivants :
 Les comportements
•
Comportement CPF (Comportement de la File) : A pour but de gérer la file
d’attente de l’agent SIP et sélectionner la prochaine opération à exécuter.
•
Comportement CPR (Comportement de Ressource) : Recherche de la meilleure
ressource pour traiter l’opération suivante de la production en cours.
•
Comportement CPM (Comportement de la configuration Matérielle): Il permet
à l’agent station de représenter sa capacité productive.
 Le module d’analyse et de réaction : Ce module
analyse continuellement les
messages que l’agent station reçoit, à travers son interface de communication et active
les CPi qui correspondent aux événements reçus. Il met à jour aussi l’état des
opérations, dans l’agenda local, suite aux messages envoyés par le module
d’exécution.
 La liste des événements : La liste regroupe des événements tels que les demandes,
contrats et les acquittements.
 Le filtre : Est un dispositif mis en place et activé par l’agent superviseur qui envoie
une requête vers les autres agents décideurs.
 L’horloge temps réel : Elle génère le facteur temps réel par l’agent SIP (local).
 L’interface experte : Elle permet à l’expert (l’opérateur humain) de consulter et de
modifier la configuration de la station, de connaître l’état actuel des ressources, et de
suivre l‘évolution de l’activité de production sur cette station.
 L’interface de communication : Gère les messages en transmet entre l’agent
superviseur et les autres agents du système.
59
Chapitre 5 : Proposition d’un protocole de négociation
60
Chapitre 5 : Proposition d’un protocole de négociation
Dans ce qui suit, nous allons appliquer le processus décisionnel présenté dans le chapitre II
sur la structure de pilotage distribuée supervisée définie dans le chapitre III.
Les agents utilisent une stratégie d’ordonnancement partiel, basée sur l’utilisation d’un
protocole d’interactions entre les agents.
La relation entre les tâches qui nous intéressent dans notre travail est de type séquentiellement
indépendant.
5.3 Élaboration et expérimentation du processus décisionnel
On peut distinguer deux processus décisionnels :
1. Processus décisionnels au niveau superviseur
L’agent SIP superviseur assure l’allocation de la première opération de l’ordre de
fabrication. Dès l’arrivée d’un nouvel ordre de production, il contacte les autres agents
pour pouvoir choisir la meilleure ressource pouvant exécuter l’opération en question.
2. Processus décisionnels au niveau local
Ces processus décisionnels sont appliqués par chaque agent « SIP », suite à l’occurrence
d’un événement sur les ressources ou les opérations qu’il contrôle.
 Evénements attendus
1.A la Fin de l’Exécution d’une opération (FE) :
a) La ressource se libère. Elle sera donc prête à exécuter une nouvelle opération.
l’agent SIP doit choisir l’opération à exécuter. Le problème qui se pose est
« quelle est l’opération à choisir parmi celles présentes en file d’attente de la
ressource ?».
b) Un autre problème se pose. Il s’agit du choix de la meilleure ressource (agent
SIP) pouvant exécuter l’opération suivante sur la pièce.
La figure (5.3) illustre l’événement fin d’exécution.
61
Chapitre 5 : Proposition d’un protocole de négociation
Début
Ordre de fabrication
Envoi d’une demande d’affectation par le superviseur
Envoi de message à la ressource concernée
Evénement fin d’exécution d’une tâche
Active le comportement CPF (déterminer la tâche à exécuter sur la
machine libérée)
Réaffectation de la tache vers la ressource concernée
Fin
Figure 5.3: Schéma décrivant l’événement de fin d’exécution.
2. Dans le cas d’une Fin de Transport (FT), une opération devient disponible. Si la
ressource qui doit exécuter l’opération est libre, l’agent SIP peut lancer son exécution,
sinon elle devra être placée dans la file d’attente de la ressource.
3.Dans le cas d’une Fin de Panne (FP), la ressource peut à nouveau exécuter une
opération. L’agent SIP doit exploiter cette ressource :
 Soit en reprenant l’exécution de l’opération arrêtée suite à l’occurrence de
l’événement panne si celle-ci n’a pas été réaffectée.
 Soit en choisissant une autre opération de la file d’attente de la ressource, sinon.
on se retrouve, donc, dans le même cas qu’une fin d’exécution.
4.Dans le cas d’une Fin de Blocage (FB), l’agent SIP n’a pas le choix : il reprend
l’exécution de l’opération bloquée suite à l’occurrence de l’événement blocage.
 Evénements inattendus
1. Suite à un Blocage (B), la ressource associée à l’opération bloquée devient non active.
L’agent SIP doit procéder comme suit :
•
Libérer la ressource en interrompant l’exécution de l’opération bloquée.
62
Chapitre 5 : Proposition d’un protocole de négociation
•
Exploiter la ressource en exécutant une des opérations présentes dans sa file
d’attente. Un problème de choix de l’opération à exécuter est alors posé.
La figure (5.4) illustre l’événement de blocage.
Début
Ordre de fabrication
Envoi d’une demande d’affectation par le superviseur
Envoi de message aux ressources concernées
Evénement blocage d’une tâche
Active le comportement CPF (pour l’exécution d’une
autre tâche parmi celles présentées en file d’attente)
Nouvelle tâche en cours d’exécution
Fin
Figure 5.4: Schéma décrivant l’événement blocage de tâche en cours d’exécution.
2. Suite à une panne, les opérations arrêtées doivent être réaffectées vers d’autres ressources,
dans ce cas :
L’agent SIP (local) établit un contrat avec les autres agents de façon à trouver une autre
ressource capable de réalisé l’opération en cours. L’agent SIP (local) traite les réponses
reçues pour choisir la meilleure ressource en lançant Electre III.
La figure (5.5) représente l’architecture générale de notre application :
63
Chapitre 5 : Proposition d’un protocole de négociation
Figure 5. 5: Schéma décrivant le fonctionnement générale de l’application .
64
Chapitre 5 : Proposition d’un protocole de négociation
Le processus de négociation que nous proposons s’applique dans la plupart des situations
conflictuelles. Pour chacune des situations rencontrées nous décrivons les scénarios par un
diagramme de séquence (UML: Unified Modeling Language) .
On distingue deux types d’agents, l’agent initiateur qui est responsable de l’envoie du contrat
et l’agent participant qui est le receveur.
5.4 Négociation par Contract Net
5.4.1 Processus de négociation
L’objectif du protocole est de définir les messages que les agents pourront s’envoyer entre
eux.
Le protocole de négociation que nous proposons se décompose en trois phases :
1. Distribution du problème : Le message est envoyé par l’agent SIP à tous les agents du
système, à partir de la description de la tâche.
2. Trouver les Solutions du problème : Les agents de négociation lance le processus qui
se divise en trois phases,
 La phase de proposition, elle initie la négociation. Les agents initiateurs
construisent une proposition qu’ils envoient aux participants. Chaque
participant peut soit accepter, soit refuser la proposition. Où chaque agent de
négociation possède une base de connaissance et les actes de langage
nécessaires aux agents pour faire évoluer leur connaissance.
 La phase de conversation (la communication) se déroule durant laquelle des
propositions de modifications sont échangées entres les agents. Les agents
pouvaient accepter ou repousser une proposition (offre).
 La phase de décision (aide à la décision locale) cette décision est prise par
l’initiateur selon les réponses des participants aux propositions qu’il leur a
faites. Cette phase de décision finale aboutit soit à la confirmation, soit à
l’annulation du contrat.
3. Obtenir le résultat : L’agent SIP transmet sa tâche vers la meilleure ressource.
On peut représenter notre modèle d’architecture de fonctionnement présentés à la figure(5.6)
par le diagramme de classe UML ( Unified Modeling Language) [FRE 02].
65
Chapitre 5 : Proposition d’un protocole de négociation
Figure 5.6: Diagramme de classe de notre protocole de négociation.
5.4.2 Structure d’un agent de négociation
La figure(5.7) illustre l'agent de négociation qui se compose de six modules fonctionnels:
interface,communication, le générateur de proposition, la base de connaissance, l’aide à la
décision et un module de contrôle.
 Le module d'interface permet l’échange d’informations entre les agents.
 La communication traite l'échange des messages entre les agents.
 Le générateur de proposition construit une proposition selon les paramètres de
préférence initiaux et l'intérêt de l'utilisateur.
 La base de connaissance contenant toutes les données, les contraintes et les stratégies
de négociation, historique de négociation.
 Aide à la décision où les agents s’engagent dans une démarche participative au cours
de laquelle ils mettent à contribution leurs connaissances.
 Un module de contrôle qui permet d’assurer une cohésion à l’intérieur de l’agent. Il est
responsable de l’activation des différents modules internes et aussi de la mise à jour
des connaissances en fonction de l’évolution de l’agent.
66
Chapitre 5 : Proposition d’un protocole de négociation
Communication
Interface
Générateur de proposition
Contrôle
Base de connaissance
Aide à la décision
Figure 5.7 : Structure de l’agent de négociation.
5.4.3 Communication entre les agents
Nous considérons que l’ensemble {propose, accepte, refuse, demande de modification,
propose de modification, confirmation, annulation, rétraction} contient les actes de langage
nécessaire à notre processus de négociation. Un premier acte de langage sera donc l’envoi de
la proposition de l’initiateur aux participants, puis chaque participant répond soit en acceptant
ou en refusant la proposition, soit en raffinant la proposition ou en formulant une contreproposition, les messages échangés entre ces agents sont représentés par le langage de
communication FIPA- ACL de la plate forme JADE.
D'un point de vue opérationnel nous avons proposé un environnement d'exécution supportant
le modèle basé sur la plate-forme JADE et respectant les spécifications FIPA. Cet
environnement nous a permis de développer notre prototype de pilotage de simulation de
production. De ce fait, la messagerie que nous utilisons dans notre SMA respecte les mêmes
spécifications FIPA (FIPA-ACL) (Annexe C) .
Les messages échangés entre les agents sont principalement les messages lors de la
négociation (état, contrats, acquittement, fin d’une tâche, ré-ordonnancement d’une tâche…..),
ainsi que les messages de notification envoyés par les agents système vers l’agent superviseur
pour la mise à jour de l’état du système lors de l’évolution d’un processus de négociation ou
d’un changement d’état (début, fin arrêt ou reprise d’une opération).
67
Chapitre 5 : Proposition d’un protocole de négociation
 Conversation
Une conversation est une séquence des messages échangés entre deux ou plusieurs agents.
Elle doit être conforme à un protocole d’interaction.
On appelle protocole d’interaction un ensemble de règles plus ou moins génériques qui sont
partagées par les agents du système et auxquelles les interactions doivent se conformer.
Pour mener à bien un processus de négociation entre agents, il est nécessaire de définir
plusieurs primitives de négociation entre les agents.
•
L’initiateur possède quatre primitives de négociation :
 Propose (contrat) : C’est la première primitive que l’initiateur envoie aux
participants pour leur proposer un contrat.
 Demande modification (contrat) : Ce message indique aux participants que le
contrat ne peut être conclu sous sa forme actuelle et qu’il faudra le modifier.
 Confirme (contrat) : Ce message indique aux participants que le contrat est
confirmé.
 Annule (contrat) : Ce message indique aux participants que le contrat est
annulé.
•
Le participant possède trois primitives de négociation :
 Accepte : Ce message répond à la proposition de contrat faite par l’initiateur.
Le participant indique par ce message à l’initiateur qu’il accepte le contrat tel
qu’il est. Il peut y avoir des paramètres dans le cas où le contrat est
partiellement instancié. Ce paramètre peut également être utilisé pour effectuer
une contre-proposition lorsque l’application le permet.
 Refuse : Ce message répond à la proposition de contrat faite par l’initiateur.
Le participant indique à l’initiateur qu’il refuse le contrat.
 Propose modification (liste modifications) : Ce message répond à une
demande de modification de la part de l’initiateur. Le participant envoie à
l’initiateur une liste de modifications possibles du contrat (une contreproposition). Le nombre de modifications contenues dans la liste est un
paramètre de la négociation. Cette liste peut être vide s’il n’existe pas des
modifications possibles.
68
Chapitre 5 : Proposition d’un protocole de négociation
Une primitive est commune aux initiateurs et aux participants :
 Rétractation (contrat) : Le contrat avait été confirmé mais le participant ou
l’initiateur ne peut (ou ne veut) plus l’honorer. Il décide donc de se rétracter.
Suite à cette rétractation, l’initiateur peut renégocier le contrat.
Ces conversations sont constituées de deux phases :
 Une phase de négociation : L’agent initiateur émet une proposition vers tous les
agents. Ceux-ci acceptent, refusent la proposition ou émettent une modification vers
l’agent initiateur.
 Une phase de décision : Cette prise de décision conclut la phase de négociation et
débute par un message de confirmation ou annulation envoyée à tous les agents
participant.
Une description d’une situation normale de contrat entre un agent initiateur et un participant
est donnée à la figure(5.8).
Figure 5.8 : Diagramme de séquence représente l’interaction entre un agent initiateur et un
participant.
En plus de la négociation sous Contrat Net, on ajoute dans une extension de ce protocole un
Timer pour éviter des attentes infinies de l’initiateur,car il se peut qu’un participant ne
réponde pas à la proposition soit parce qu’il est absent soit une panne est survenue.
69
Chapitre 5 : Proposition d’un protocole de négociation
Dans ce cas précis, et si l’initiateur n’a pas encore reçu toutes les réponses, qui sont au
nombre des participants, toute proposition reçue après
sera automatiquement rejetée en
envoyant un message annuler la proposition.
Dans le cas où une proposition est sélectionnée, l’initiateur envoie un message Confirme
contenant le nom du participant dont la proposition est acceptée et un message Annuler aux
autres participants.
Un message s’écrit sous la forme :
< Message > = < expéditeur > < destinataire > < contenu >.
L’activité peut se terminer par :
o Un succès, après la réception du message confirmé.
o
Un échec dans les cas suivants : (1) l’initiateur ne reçoit aucune proposition, (2)
aucune proposition n’est acceptée, dans ce cas la renégociation se fait jusqu’à que le
temps d’expiration est dépassé, si l’activité du (re) négociation se termine toujours par
un échec l’initiateur considérer une réponse par défaut aux les participants pour éviter
le blocage de la négociation.
 Scénarios de négociation
La figure(5.9) représente un exemple simple de négociation faisant intervenir deux
agents : Initiateur et le participant dont l’initiateur crée le contrat et envoie au
participant le message propose contrat, ce dernier reçoit le contrat. L’initiateur prend
la décision de confirmation du contrat et envoie le message confirmé au participant.
Figure 5.9 : Diagramme de séquence représente la négociation entre un initiateur et un
participant.
70
Chapitre 5 : Proposition d’un protocole de négociation
Etudions l’exemple donné à la figure(5.10), l’initiateur propose un contrat au participant qui
accepte et donc le contrat est confirmé, l’initiateur 2 propose à son tour un contrat au
participant pour les mêmes ressources entrant en conflit avec le précédent. Le participant
décide (méthode multicritère) alors d’accepter le contrat de l’initiateur 2, envoie par
conséquent un message accepté à l’initateur2 et une rétraction à l’initiateur1. Face à cette
situation, l’initiateur1 entame une renégociation du contrat avec le participant.
Figure 5.10: Diagramme de séquence représente la négociation commune avec renégociation
cas 1.
Une autre situation peut se présente à la figure(5.11) et explicite le conflit pour l’utilisation de
ressources communes. L’initiateur 1 propose un contrat au participant qui l’accepte.
L’initiateur2 propose au participant un contrat entrant en conflit avec le précédent, le
71
Chapitre 5 : Proposition d’un protocole de négociation
participant refuse alors ce contrat, l’initaiteur2 ne peut que demander une contre-proposition
du participant, suite à celle-ci l’initaietur2 propose un nouveau contrat au participant.
Figure 5. 11 : Diagramme de séquence représente la négociation commune avec
renégociation cas2 [TAG O7].
Pour montrer l’utilité d’un délai de réponse, on étudie l’exemple cité à la figure(5.12), ou
l’initiateur propose un contrat à m participants, seuls deux d’entre eux répondent refusent le
contrat, après l’expiration du délai par le timer par exemple 1minute alors que les autres
participants n’ont pas encore répondu, l’initiateur considérer la réponse par défaut pour ces m2 participants. Au total, il y a donc( m-2) acceptation et 2 refus, le contrat est donc confirmé.
72
Chapitre 5 : Proposition d’un protocole de négociation
Timer
Figure 5.12 : Diagramme de séquence représente la négociation entre un agent initiateur et m
participants.
Dans ce qui suit on va présenter la méthode ELECTRE III qui est utilisée dans le processus
décisionnel adopté par les agents au cours de leurs négociations.
5.5 Intégration de la méthode Electre III
5.5.1 Liste des critères associés aux processus décisionnels
Nous explicitons ci-dessous les différents critères et leurs indicateurs correspondants, le temps
induit par le changement de la ressource en panne, le coût lié à l’opération suite à la panne et
la fiabilité de la machine.
1. Le critère temps et ses indicateurs
Dans le cadre de notre étude, nous avons établi quatre indicateurs composant le critère temps,
décrits comme suit : le temps opératoire d'une opération sur une machine, le temps de
préparation d’une ressource pour une opération, le temps de transfert et le prochain instant de
disponibilité d'une machine.
73
Chapitre 5 : Proposition d’un protocole de négociation
 Indicateur N° C1 : Temps opératoire d’une opération sur une machine
(d) r : Durée de l’opération (o) sur la machine r. Deux types d’opérations sont à étudier :
1. Les opérations (o) se trouvant dans le stock en amont de la machine i tombée en
panne : (d) r correspondent à la durée de l’opération sur la machine r.
2. L’opération (o) en cours d’exécution sur la machine tombée en panne :
Deux cas sont possibles :
1. Si (o) peut être reprise après la panne alors (d) r correspond à la durée résiduelle
de (o) sur la machine r: (d) r = (d) r - te où te: temps écoulé avant la panne.
2. Si (o) est rebutée après une panne alors :(d) r est nulle. En réalité, ce produit est
supprimé de la liste objet produit.
 Indicateur N° C2 : Temps de préparation d’une ressource pour une opération
(Tpr) : Temps de préparation de la machine r pour l’exécution de l’opération (o) (le temps de
chargement sur la machine étant inclus dans Tp).
 Indicateur N° C3 : Temps de transfert
(Tf)i->r : Temps de transfert de l’opération (o) de Mi vers Mr. Cet indicateur mesure le temps
écoulé entre le stock d'entrée ou de sortie de la machine tombée en panne et le stock d’entrée
de la machine pouvant prendre en exécution l'opération bloquée.
 Indicateur N° C4 : Prochain instant de disponibilité
PI : Prochain instant de disponibilité d'une machine. Deux cas sont à étudier :
1. (PI) r: représente la date à partir de laquelle Mr sera capable d’exécuter l’opération
bloquée. Une fois que la machine de réserve est déterminée, une mise à jour de son
prochain instant de disponibilité est effectuée : (PI) r = (PI)r + (d)r
2. (PI) i : Prochain instant de disponibilité de la machine en panne : (PI) i = Ip + Tm
Ip étant l'instant de panne et Tm étant le temps moyen de réparation.
2. Le critère coût et ses indicateurs
Progressivement, les problèmes de coûts sont devenus prépondérants dans la prise de
décision. Dans la pratique, le calcul d’un coût résulte d’une convention et cette convention est
elle-même liée au type d’utilisation que l’on veut faire de cette information. La détermination
des coûts n’est donc pas une tâche simple.
C’est une approche par agrégation transitive (plus une machine est en retard sur son
programme, plus les coûts sont élevés) qui réduit fortement l’intérêt d’intégrer une approche
74
Chapitre 5 : Proposition d’un protocole de négociation
multicritère. Nous considérons comme coûts variables le coût de production sur la machine et
le coût de stockage en amont de la machine alternative.
Les coûts pris en compte étant plus particulièrement ceux liés à l’opération suite à une panne
machine, nous considérons les deux indicateurs suivants :
 Indicateur N° C5 : Coût de production sur la machine Mr ;
 Indicateur N° C6 : Coût de stockage en amont de la machine Mr ;
3. Le critère fiabilité et ses indicateurs
Définitions
La fiabilité [OUN 99] est l’aptitude d’un dispositif à accomplir une fonction requise, dans des
conditions données, pendant une durée donnée. Au sens mathématique, la fiabilité est mesurée
par la probabilité que l'entité accomplisse une ou plusieurs fonctions requises dans les
conditions données, pendant une durée donnée.
Il existe plusieurs types de fiabilité :
Nous nous intéressons à la fiabilité " ressource C7 ".
La fiabilité est souvent définie comme la probabilité de fonctionnement continu au cours de la
période (0, t) ; R(t) = 1-F(t) où : F(t) : fonction de répartition.
Chaque machine a ses propres caractéristiques de fiabilité.
5.5.2 Les processus considérés
1.Le Processus décisionnel de réaffectation
Ce processus est déclenché par :
Un agent SIP suite à l’occurrence d’un événement panne machine sur l’une des machines
trouvé et qui sont capable de réaliser son opération.
Les critères sont : C1, C2, C3, C4, C5, C6, C7 tels que :
Critères
Temps
Indicateurs
Intitulé
C1
Temps
opératoire
d’une
opération sur
une machine
Min
Max/Min
Coûts
C2
Temps de
préparation
d’une
ressource pour
une opération
Min
Fiabilité
C3
Le temps de
transfert
potentiel
C4
Prochaine date
de disponibilité
C5
Le coût de
production
C6
Le coût de
stockage
C7
Fiabilité de la
machine
Min
Min
Min
Min
Max
Tableau 5.1: Liste des critères retenus pour le processus de réaffectation.
75
Chapitre 5 : Proposition d’un protocole de négociation
2.Le Processus décisionnel de gestion de la file d’attente
Une fois l’exécution de l’opération en cours est terminée, ce processus est déclenché pour
sélectionner dans la file d’attente l’opération à exécuter.
Les critères à utiliser sont : C2, C8.
Critères
Temps
Indicateurs
C2
C8
Intitulé
Temps de préparation d’une ressource
pour une opération
Temps passé en file d’attente
Max/Min
Min
Min
Tableau 5.2 : Liste des critères retenus pour le processus de gestion de la file d’attente.
5.5.3 Pourquoi l’approche multicritère ?
Une approche multicritère a comme principale caractéristique qu’elle formalise (ou modélise)
la préparation des décisions. Tout d’abord, elle améliore la transparence du processus de
décision. Ensuite, elle définit, précise et met en évidence la responsabilité du décideur.
Bernard ROY [ROY 78] caractérise le paradigme multicritère comme un nouveau schéma de
pensée pour comprendre ou agir sur un système. Pour l’intérêt que suscite l’approche
multicritère, nous avons choisi d’utiliser la méthode Electre III dans la modélisation des
préférences conflictuelles des agents en négociation.
Electre III est une méthode multicritère fondée sur les principes de la logique floue, émettant
de prendre en compte les incertitudes liées aux calculs et à l’évaluation des performances à
travers l’utilisation de pseudo-critère.
 ELECTRE III
Les méthodes ELECTRE ont été développées par Bernard Roy
au début des années
1970[SITE 05] . Il a ainsi initié toute une série de méthodes, dites de surclasse ment, basées
sur des comparais ons d'actions deux à deux. Celles-ci demande peu d'information pour
pouvoir être implémentées; de plus cette information est facilement accessible au décideur.
Ainsi elles permettent de respecter les personnes et leurs opinions, en introduisant le
concept de concordance qui traduit le respect de la majorité et, le concept de nondiscordance qui permet de tenir compte de la forte minorité.
L’application de ces méthodes a fait preuve d’une efficacité, en remplissant le rôle de :
•
Réducteur de complexité, en permettant une analyse perspicace qui focalise une
minorité de variantes véritablement intéressantes.
76
Chapitre 5 : Proposition d’un protocole de négociation
•
Réducteur de conflits, en fournissant une base de dialogue acceptable par tous les
acteurs.
Plusieurs cas d’application des méthodes ELECTRE ont été réalisés. Nous présentons cidessous une liste non exhaustive de ces principales applications :
•
Problème d’implantation : localisation d’une usine et d’une école d’ingénieur, tracé
autoroutier, dessert ferroviaire.
•
Problème de développement national ou régional : planification agricole.
•
Problème de publicité : médiaplanning.
•
Problème de recherche et de développement industriel.
•
Problème d’exploitation : fonctionnement d’un aéroport, affectation d’engin.
•
Problème de recrutement : admission sur dossier.
•
Problème de fabrication : composition d’un produit, organisation d’un atelier.
La méthode ELECTRE III relève de la problématique γ(procédure de classement).
 Principe de la méthode
Poids des
critères
Indice de
concordance
Ensemble
des
actions et
des
critères
Matrice des
performances
Hypothèses de
surclassement entre
deux actions
Degré de
crédibilité
Graphe de
surclassement
+analyse de sensibilité
Indice de
discordance
Seuils de
veto
Figure 5.13 : Architecture d’Electre III [CHA 05].
L’attribution des différentes valeurs de la matrice de performance est basée sur l’évaluation
des différents critères par rapport aux actions après implémentation de celle-ci. De telle façon
que l’action qui a la plus grande performance, on lui affecte la valeur la plus grande et ainsi de
suite.
Les poids sont attribués par ordre d’importance des critères.
77
Chapitre 5 : Proposition d’un protocole de négociation
ELECRE III est une méthode très complète mais elle est pénalisée d’un côté par sa propre
complexité et d’un autre côté, par la construction du tableau des performances. En amont de
ce problème, l’élaboration de l’ensemble des critères peut s’avérer délicate car pour bien faire,
on doit être exhaustif et les critères doivent être bien déterminés.
Les étapes à suivre sont les suivantes :
1. Définir les différentes actions dans notre cas, représentent les agents :
La ressource N°2 contrôlée par l’agent N°1 (SIP1R02) et la ressource N°10 contrôlée
par l’agent N°4 (SIP4R10) ;
2. Définir les différents critères : les critères(présentée en section 5.5.1) retenus dans
notre étude de cas sont les suivants :
C1 : Temps opératoire d’une opération sur une machine
C2 : Temps de préparation d’une ressource pour une opération
C3 : Temps de transfert
C4 : Prochain instant de disponibilité
C5 : Coût de production sur la machine Mr ;
C6 : Coût de stockage en amont de la machine Mr ;
C7 : Fiabilité de la ressource .
3. Etablir le tableau de performance : consiste à évaluer chaque action par rapport à
chacun des critères.
(Le chapitresuivantprésente l’adaptationde laméthode Electre III dans notre système).
Ainsi, on peut construire la matrice d’évaluation avec en ligne les actions et en colonnes les
critères qui sont récapitulés dans le tableau (5.3) .
SIP1R02
SIP4R10
C1
1
3
C2
5
5
C3
9
5
C4
1
1
C5
3
2
C6
5
5
C7
7
5
Tableau 5.3 : Tableau des performances des différentes actions.
Pour pouvoir utiliser la méthode Electre III, il est nécessaire d'ajouter à cette matrice, pour
chaque critère, les poids ou coefficients d’importance, ainsi que les seuils de préférence,
d'indifférence et de veto. Le seuil d’indifférence d’un critère indique la valeur en delà de
laquelle la différence « performance de l’action ai – performance de l’action ak » ne suscite,
78
Chapitre 5 : Proposition d’un protocole de négociation
chez le décideur, que de l’indifférence entre a i et ak. Le seuil de préférence indique la valeur
au-delà de laquelle la différence « performance de ai – performance de a k » suscite, chez le
décideur, une préférence stricte pour a i. Entre le seuil d’indifférence et le seuil de préférence,
le décideur éprouve une préférence faible pour ai. Le seuil de veto indique la valeur au delà de
laquelle la différence opposée « performance de a k – performance de ai » entraîne un
impossibilité de surclassement de ak par ai, quelles que soient les performances de ces deux
actions dans les autres critères(Voir Annexe A).
Pour déterminer toutes ces valeurs, on s'est basé les avis de personnes expertes. On a alors
fixé les valeurs suivantes illustrées dans tableau (5.4), jugées les plus crédibles :
Poids
q
p
C1
8
1
5
C2
5
1
3
C3
5
2
3
C4
5
0
2
C5
10
0
1
C6
3
2
3
C7
5
1
3
Tableau 5.4 : Seuils d’indifférence, de préférence .
A travers le tableau (5.5), on présente les deux types de distillation d’Electre III selon la
manière dont elles sont dirigées. Ces deux distillations mènent évidemment à deux
classements différents à partir desquels Electre III tire le classement final. Le chiffre qui
apparaît dans ces cellules donne la position de l’action correspondante dans le classement.
SIP1R02
SIP4R10
Distillation descendante
2
1
Distillation ascendante
2
1
Tableau 5.5 : Résultat des deux distillations.
Le graphe de classement de la figure (5. 14) nous permet de classer les différentes actions (les
agents),
SIP4R10
SIP1R02
Figure 5.14: Résultat du préordre final.
79
Chapitre 5 : Proposition d’un protocole de négociation
5.6 Conclusion
Ce chapitre a présenté notre proposition de la stratégie de négociation incluant la résolution de
situation conflictuelle qui a suscité notre plus grand intérêt.
Les phases les plus importantes de notre étude sont :
–
L'amélioration la qualité de la décision apportée au processus décisionnel par la
proposition d’une méthodologie de conception d’un Système Interactif d’Aide
Multicritère à la Décision (SIAMD) pour le pilotage. Les modules décisionnels
élaborés sont basés sur une structure multi- agent en utilisant la méthode multicritère
ELECTREIII.
–
La nécessité de développer un protocole permettant la résolution des situations
conflictuelles pouvant survenir entre les différentes activités d'agents interagissant
dans un environnement manufacturier. En effet, lorsque deux agents décident
d'accéder à la même ressource pour réaliser leurs tâches peuvent entraîner dans
certains cas, une incohérence au niveau du système.
Pour démontrer la faisabilité de cette approche théorique, un système permettant de simuler la
résolution des situations conflictuelles dans un système manufacturier a été développé dans le
chapitre suivant.
80
Chapitre 5 : Proposition d’un protocole de négociation
Opérateur humain
Support de communication
Module dialogue
Sous Système
D’interface
Message
émis
Traitement des messages
Message
reçu
Sous Système
De communication
Maj. de la configuration de la
ressource
CPF
CPR
CPM
Filtre
Liste des
événement
Activation
Analyse
des
événements
Horloge
Gamme de
production
Base de
données
Liste des
agents
Agenda
local
Module d’analyse et réaction
Sous Système
De décision
Sous Système
D’information
M.A.J
Sous Système
De contrôle
Système piloté
Figure 5.2: Architecture d’un agent SIP.
60
Interface
experte
Chapitre 5 : Proposition d’un protocole de négociation
Opérateur humain
Support de communication
Module dialogue
Sous Système
D’interface
Message
émis
Traitement des messages
Message
reçu
Sous Système
De communication
Maj. de la configuration de la
ressource
CPR
CPM
Gamme de
production
Filtre
Liste des
événement
Activation
Analyse
des
événements
Module d’analyse et de suivi
des tâches
Horloge
Sous Système
De décision
Base de
données
Liste des
agents
Agenda
global
Sous Système
D’information
M.A.J
Sous Système
De contrôle
Système piloté
Figure 5.1: Architecture d’un agent SIP superviseur.
58
Interface
experte
Chapitre 6 :Mise en œuvre du prototype proposé
Chapitre 6
Mise en œuvre du prototype
proposé
6.1 Introduction
Dans ce chapitre nous allons présenter les outils de développement (le langage Java, la plate
forme JADE, MySQL) utilisés pour la conception de notre application. Nous présentons
quelques exemples de scénarios des processus décisionnels ainsi que la négociation pour
résoudre le cas de conflit.
6.2 Réalisation du logiciel
6.2.1 Outils de conception
Le logiciel a été réalisé en langage JbuilderX sous Windows XP. La machine utilisée est
caractérisée par un microprocesseur Intel Pentium 4 avec une fréquence de 2.99 GHz, une
RAM de 512 Mo et un disque dur de 40 Go.
6.2.2 Langage de programmation
Comme langage de programmation, on a choisi JbuilderX qui est un environnement de
développement orienté objet. L’interface et la bibliothèque de composants visuels de ce
langage permettent de réaliser rapidement des interfaces et des codes des applications, c'est un
outil RAD (Rapid Application Development).
82
Chapitre 6 :Mise en œuvre du prototype proposé
6.3 Description de l’application
Nous considérons une structure de pilotage composée d’un agent superviseur et quatre agents
SIP. La figure( 6.1) presente l’interface principale de l’agent superviseur.
Il faut saisir ce paramètre,
puis nous validons la
configuration
Figure 6.1 : Structure de l’agent superviseur.
6.3.1 Arrivée d’un nouvel ordre de fabrication
Supposons l’arrivée d’un nouvel ordre de fabrication composé des tâches suivantes : tâche
N°1, tâche N°10, tâche N°11,tâche N°12, tâche N°13, tâche N°14, tâche N°15.
83
Chapitre 6 :Mise en œuvre du prototype proposé
Active l’envoi d’une
demande d’affectation
aux quatre agents Figure 6.2 : Nouvel ordre de fabrication.
La réponse des agents pour la demande d’affectation est présentée dans la figure(6.3)
Figure 6.3 : Réponses des agents SIP pour la demande d’affectation.
84
Chapitre 6 :Mise en œuvre du prototype proposé
6.3.2 L’exécution d’une tâche
L’exécution de la tâche N°1 sur la machine N°10 de l’agent SIP N°4 est présenté sans la
figure(6.4).
L’exécution de la
tâche N° 1 sur la
machine N°10 de
l’agent SIP N°4.
Figure 6.4: Interface des quatre agents.
6.3.3 L’événement panne machine
La machine N°9 contrôlée par l’agent N°3 est tombée en panne. L’agent SIP N°3 transmet la
demande vers les autres agents SIP (SIP1, SIP2, SIP4), ce qui déclenche le comportement
CPR (Comportement de Ressource permet de rechercher de la meilleure ressource pour
traiter l’opération suivante de la production en cours) au niveau de chaque agent SIP.
85
Chapitre 6 :Mise en œuvre du prototype proposé
Si on souhaite provoquer la panne, on clique sur le bouton « Panne».
Etats des files d’attentes
et d’exécution ,en panne.
Figure 6.5: La panne machine.
La panne doit être résolue par l’activation du bouton « Résolution de panne».
L’agent SIP N°3 envoie un message aux autres agents de façon à trouver une autre ressource
capable de réaliser l’opération en cours.
Figure 6.6: La résolution de la panne.
Le bouton « Réaffectation» transmet la demande vers les autres agents. Les réponses sont
présentées par l’interface de la plate forme JADE.
Utilisations de la plateforme JADE
86
Chapitre 6 :Mise en œuvre du prototype proposé
Dans l’arborescence montrée ci-dessus, nous cliquons sur le Main-Container pour visualiser
tous les agents de notre plateforme afin de les sniffer(les rendre visuels).
On clique sur le bouton
pour lancer les agents et l’agent sera représenté par un rectangle
rouge portant son nom.
Agents en
interaction
Sniffer
l’agent
Figure 6.7: Plate-forme JADE montrant le résultat de la réaffectation.
L’agent SIP N°3 traite les réponses reçues pour choisir la ressource de substitution en lançant
Electre III.
Pour cela, on doit passer par trois grandes étapes afin de trouver la solution la plus adéquate,
compte tenu d’un certain ensemble de critères.
1. Définir les différentes actions : réponses des agents ;
2. Définir les différents critères ;
3. Etablir le tableau de performance ;
87
Chapitre 6 :Mise en œuvre du prototype proposé
Les critères.
Les actions.
Figure 6.8 : La matrice de performance.
Pour pouvoir utiliser la méthode Electre III, il est nécessaire d'ajouter à cette matrice, pour
chaque critère, les poids ou coefficients d’importance, ainsi que les seuils de préférence,
d'indifférence et de veto (Voir Annexe A).
Le résultat de la méthode est donné à la figure (6.9).
Résultat du
préordre final.
Seuils d’indifférence,
de préférence et de
veto.
Figure 6.9 : Résultat de la méthode ELECTREIII.
Alors l’agent SIP N°3 va transmettre sa tâches vert l’agent SIP N°4.
En effet, les deux agents décident d'accéder à la même ressource pour réaliser leurs tâches.
Pour mieux analyser, détecter et pouvoir apporter une solution à cette situation conflictuelle
nous appliquons la stratégie de négociation proposée.
88
Chapitre 6 :Mise en œuvre du prototype proposé
Le bouton « Lancer la procédure de négociation» permet de lancer la procédure de
négociation.
Figure 6.10: Lancement de la procédure de négociation.
Nous pouvons visualiser les interactions des agents par la fenêtre de l’agent Sniffer comme
nous l’avons déjà montré dans la section 6.3.3, où nous mettons en évidence tous les agents
de notre prototype implémentés dans la plate forme avec les différentes communications et
interactions.
Figure 6.11: Plate-forme JADE montrant le résultat de négociation avec l’agent SIP N°3.
89
Chapitre 6 :Mise en œuvre du prototype proposé
L’activité est terminée par un échec entre l’agent SIP N°3 et SIP N°4 , dans ce cas l’agent SIP
N°3 doit réaffecter sa tâche arrêtée vers l’agent SIP N°1, l’activité de la négociation se
termine par un succès entre l’agent SIP N°3 et SIP N°1.
6.3.4 La fin de panne
Suite à la fin de panne de la machine N°9 contrôlée par l’agent SIP N°3, et puisque la tâche
N°14 a été réaffectée vers l’agent SIP N°1, la machine devient libre et prête à exécuter une
nouvelle tâche.
Figure 6.12: La fin de panne.
Le module d’analyse et de réaction détecte la présence dans la file d’attente de la machine
réparée et déclenche le comportement CPF.
Nous visualisons les différents agendas d’où l’évolution des fabrication des pièces dans les
différentes ressources.
L’exécution et l’évaluation de la tâche est enregistrée dans l’agenda local de l’agent SIP
N°3(définis au chapitre précédent).
Figure 6.13: Agenda local de l’agent SIP N°3.
90
Chapitre 6 :Mise en œuvre du prototype proposé
L’exécution et l’évaluation de toutes les tâches sont enregistrées dans l’agenda global du
superviseur(définis au chapitre précédent).
Etats des différents
ressources
Figure 6.14: Agenda global de l’agent superviseur.
6.4 Conclusion
Dans ce chapitre, nous avons présenté le déroulement des processus décisionnels décrits
précédemment.Les processus décisionnels déclenchés correspondent aux comportements des
agents face à la situation constatée dans le système de production. Ces comportements sont
activés par le module d’analyse et de réaction en réponse aux changements d’états provoqués
par les événements survenus.
Le protocole de négociation proposé permet la résolution de la situation conflictuelle
identifiée entre les agents d'un système de production.
L’application développée a l’aide de la plateforme JADE nous a permis d’exploiter toute les
possibilités de gestion de communication entres les agents ainsi que le contrôle d’exécution
des tâches affectées aux SIP. Les résultats obtenus dans ce chapitre
nous ont
d’évaluer, par simulation, l’approche proposée dans le chapitre précédent. 91
permis
Conclusion générale
Conclusion générale
Ce projet aborde le problème de la prise en compte de la décision dans la modélisation basée
sur les SIAD implémentées sur une architecteur distribuée. L'application à développer porte
sur l'intégration d'une approche multicritère ELECTREIII au niveau des processus
décisionnels, nous exploitons le paradigme multi agent comme outil de modélisation du
système de production. Le modèle de pilotage intègre une structure d’analyse et de réaction
qui se base sur un ensemble d’états, d’évènements et de décisions associés à la conduite en
temps réel du système de production ainsi qu’un ensemble de comportements correspondant
aux processus décisionnels élaborés.
Le modèle proposé intègre un module d’analyse et de réaction, dans la structure de l’agent
SIP pour la détection des événements et l’analyse de l’état du système afin de déterminer le
comportement de l’agent en réaction à l’état constaté.
L’étude des processus décisionnels dans le cadre du pilotage temps réel et distribué a montré
que les décisions sont de nature multicritères ce qui conduit à intégrer l’approche multicritère
au niveau des processus décisionnels.
L’aspect décisionnel qui constitue l’ensemble des règles et fonctions permettant de gérer de
manière optimale les tâches à réaliser dans le système de production (lancement des produits,
affectation des ressources aux opérations, séquencement des opérations devant la file d’attente
des machines…) est traité à travers des méthodes d’ordonnancement partial.
De plus, nous nous sommes intéressés dans ce travail à la détection et à la résolution des
situations conflictuelles lorsqu'elles existent entre deux agents d'un système. La stratégie de
négociation proposée est une hybridation du Protocole Contract Net et une approche fondée
sur l'intelligence artificielle. Cette stratégie proposée est basée sur le Protocole Contract Net et
implémentée a l’aide de la plate forme JADE qui a pour but de simplifier le développement
93
Conclusion générale
des systèmes multi-agents tout en fournissant un ensemble complet de services et d'agents
conformes aux spécifications FIPA-ACL.
En fait, la négociation permet aux agents d'échanger des propositions dans le but d'atteindre
un compromis.
Pour valider notre travail on a présenté un exemple d'application ainsi qu’une simulation
développée pour la détection et la résolution des situations conflictuelles qui peuvent exister
entre les tâches effectuées par des agents d'un domaine manufacturier.
Ce travail nous a permis de constater l’efficacité de l’approche multi-agents comme outil de
modélisation des structures de pilotage des systèmes de production. Cette puissance de
modélisation est obtenue grâce à :
ƒ La correspondance entre la distribution des agents dans un système multi-agents et la
distribution physique des ressources dans un système de production.
ƒ Le haut degré de flexibilité qui caractérise l’approche multi-agents facilitant ainsi
l’adaptation de la structure de pilotage aux changements de configuration des systèmes
de production (Un changement de configuration se traduit par l’ajout et/ou la
suppression d’un agent SIP).
Les perspectives
Dans cette section, nous proposons un ensemble de perspectives que nous souhaitons
appliquer à notre modéle afin de l'améliorer encore.
Distribution de notre système sur un réseau : Pour le moment, nous avons implémenté notre
système en utilisant une plateforme adaptant le principe des threads. Il serait intéressant de
distribuer notre système sur plusieurs machines distinctes afin de profiter de la puissance de
calculs de chaque machine mais aussi, de mieux gérer les conflits qui peuvent apparaître dans
la gestion des ressources.
94
Bibliographie
[ALO 02]
ALOULOU M. A., «Structure flexible d’ordonnancements à performances
contrôlées pour le pilotage d’atelier en présence de perturbation», Thèse
de doctorat,INRIA, Lorraine,Nancy,Décembre 2000.
[AMG 04a]
AMGOUD L., PRADE H., « Generation and evaluation of different
types of arguments in negotiation»,In 10th International Workshop on
Non-Monotonic Reasoning,NMR’2004, Session Argument,
Dialogue,
Decision, Whistler, Canada .
[AMG 04b]
AMGOUD L., PRADE H., « Un modèle de négociation basé sur la
logique possibiliste». In Congrès Francophone Reconnaissance des
Formes et Intelligence Artificielle, RFIA’2004, Toulouse, France.
[ANN 01]
ANNE LEGAIT, « Multi- agents architecture for proactive management
system», 2ème congrès international franco-québécois de Génie Industriel,
Architecture multi- agents pour une gestion proactive de la production: Un
cas applicatif, Laboratoire PRISMa, Productique et Informatique des
Systèmes Manufacturiers, INSA de Lyon 2001.
[AGN 01]
AGNES LETOUZEY, « Ordonnancement interactif basé sur des
indicateurs : Applications à la gestion de commandes incertaines et à
l'affectation des opérateurs», Le titre de Docteur de l'Institut National
Polytechnique de Toulouse, SPECIALITE : Systèmes Industriels, Soutenue,
le 19 Décembre 2001.
[AVE 84]
AVENIER M.J., «Pilotage de l’entreprise et environnement complexe, une
aide à la conception d’un pilotage plus effectif», Thèse de doctorat d’Etat
ès-Sciences Economiques, Université de Droit, d’Economie des Sciences
d’Aix-Marseille, Juillet 1984.
[BEL 99]
BELLIFEMINE F., POGGI A., RIMASSA G., « JADE -- A FIPAcompliant agent framework », CSELT internal technical report. Part of this
report has been also published in Proceedings of PAAM'99, London, pp.97108, April 1999.
[BEL 00]
BELLIFEMINE F., GIOVANI C., TIZIANA T. RIMASSA G., « Jade
Programmer's
Guide»
Jade
version2.6,
(http://www.fipa.org/specs/fipa00001/), 2000.
96
Bibliographie
[BON 84]
BONCZEK R. H., HOLSHAPPLE C. W., WHINSTON A. B.,
« Developments in Decision Support Systems», Advances In Computers,
Vol, 23, 1984, pp. 141-175.
[BRI 00]
BRIAND CYRIL, ROUBELLAT FRANÇOIS, « Contribution au
pilotage réactif », Annecy, GRP – 23-24 Mars 2000.
[CAR 99]
CARBOGIM D., ROBERTSON D., « Contract based Negotiation via
Argumentation » (preliminary report), 1999.
[CHA 05]
CHARLOTE MARTIN, MICHEL LEGRET,« La méthode multicritère
ELECTREIII Définitions,principe et exemple d’application à la gestion des
eaux pluviales en milieu urbain»,Laboratoire central des poste et chaussées
Décembre2005.
[CIP 00]
CIPTOMULYONO UDISUBAKTI, « Un modèle d'aide a la sélection
des
projets : l'intégration de la procédure analyse hiérarchique (ahp) et
la programmation mathématique a objectif multiple», Thèse de doctorat,
Université de Droit, d'Economie et des sciences d'Aix Marseille, Faculté
des Sciences et des Techniques de Saint Jerome, 2000.
[CON 91]
CONRY S. E., KUWABARA K., LESSER V. R., MEYER R. A.,
« Multistage negotiation in distributed constraint satisfaction», IEEE
Transactions on Systems, Man, and Cybernetics, December 1991.
[COU 88]
COURBON J. C., « Les S.I.A.D: outil, concepts et mode d'action»,
Afcet/interfaces, n° 9, Juillet 988, pp. 30-36.
[DAV 80]
DAVIS R., SIMTH R.G.,« Frameworks for cooperation in distribute
problem solving »,IEEE Transactions on Systems, Man, and Cybernetics,
vol11,N°.1,1980.
[DAV 83]
DAVIS R., SMITH R., « Negotiation as a metaphor for distributed
Problem solving», Artificial Intelligence, 20(1): 63-109, January 1983.
[DUR 89]
DURFEE E. H., LESSER V. R., « Negotiating task de-composition and
allocation using partial global planning», In Gasser, L. and Huhns, M. N.,
editors, Distributed Artificial Intelligence, volume II, pages 229–
243,Morgan Kaufmann, San Mateo, California1989.
97
Bibliographie
[DUR 90]
DURFEE E. H., MONTGOMERY T. A., « A Hierarchical Protocol for
Coordinating Multiagent Behaviors», In Proceedings of the 8th National
Con-ference onArti_cial Intelligence, pages 86-93, Cambridge, Volume
One,July,August,1990.
[DUV 01]
DUVALLET O., « Des Systèmes d’Aide à la Décision Temps réel et
distribués : modélisation Par agent», Thèse de doctorat,Université du
Havre, 2001.
[FER 95]
FERBER JAQUES, « Les systèmes multi agents vers une intelligence
collective». Inter éditions , ISBN : 2-72960-762-X1995-.
[FRE 02]
FREDERIC JULLIARD, « UML Unified Modeling Language Unifié pour
la modélisation objet », Université de Bretagne Sud France, 2002.
[GEO 98]
GEORGE DRAGHICI, NICOLAE BRINZEI, IOANA FILIPAS, « La
modélisation et la simulation en vue de la conduite des systèmes de
production», 1998.
[HAT 96]
HATON JEAN PAUL, « Définitions de mécanisme de coopération»,
Bulletin de l’AFIA N°25 Avril 1996 p.17.
[HER 04]
HERVE CHANG, « Mécanismes de négociation pour composants
logiciels Contractualisés», Université de Nice Sophia Antipolis École
Doctorale STIC, DEA Réseaux et Systèmes Distribués, Avril-Juin 2004.
[JAR 02]
JARRAS IMED, BRAHIM CHAIB-DRAA, « Aperçu sur les système
multi- agents», Scientific Series Montréal, Juillet 2002.
[JEN 00]
JENNING S., N. R., FARATIN P., LOMUSCIO, A. R., PARSONS S.,
SIERRA C.,WOOLDRIDGE M., « Automated Negotiation: Prospects,
Methods and Challenges». Int. Journal of Group Decision and Negotiation,
10(2):199–215.2000.
[JON 01]
JONKER C. M.,TREUR J., Agent Architecture for Multi- Attribute
Negotiation», In Nebel, B., editor, Proceedings of the 17th International
Joint Conference on AI, IJCAI’01, pages 1195 – 1201,2001.
98
Bibliographie
[LEC 96]
LECHILLI KARIM, « Etude et résolution des situations conflictuels à
l'aide de protocoles de négociations dans un environnement
manufacturier», Mémoire à la Faculté des études supérieures de I’
Université Laval pour
l'obtention du grade de Maître Sciences (MSc.),
Département d'informatique faculté des sciences et de génie ux~versitél
aval,Aout 1996.
[LEV 89]
LEVINE P., POMEROL J. C., « Systèmes interactifs d'aide à la décision
et systèmes experts»,Hermès, Paris, 1989.
[MAL 94]
MALONE T.W., CROWSTON K., «The interdisciplinary study of
coordination», ACM Computing Surveys, 26(1): 47-110, (1994).
[MAR 03]
MARJORIE LE BAR S., « Un Simulateur Multi-Agent pour l’Aide à la
Décision d’un Collectif : Application à la Gestion d’une Ressource Limitée
Agro-environnementale», Thèse de Docteur en Sciences Spécialité
Informatique, le 27 Mai 2003.
[MAZ 01]
MAZOUZI HAMZA, « Ingénierie des protocoles d’interaction : Système
distribué aux systèmes multi –agents», Thèse de doctorat, Université Paris
IX dauphine, le 29 October 2001.
[MEY 88]
MEYER, R. A., CONRY, S. E., LESSER, V. R., « Multistage negotiation
in distributed planning»,In Bond, A. and Gasser, L., editors, Reading In
Distributed Artificial Intelligence, pages 367–386, Los Altos, CA, Morg
Kaufmann Publishers, 1988.
[MOR 94]
MORIATIFS P., « Paradigme multi- agent et prise de décision
distribuée», Thèse de doctorat université paris dauphine ,1994.
[MOY 00]
MOYAUX THIERRY, « spécification de comportement d’agents dans un
Système multi-agents. », Mémoire DEA de productique et informatique,
Université de droit, d’économie et des sciences d’Aix-Marseille III, 2000.
[MUL 92]
MULLER J., BUSSMANN S., « A Negotiation Framework for Cooperating Agents», In M, D. S., editor, Proc. CKBS-SIG, pages 1–17,Dake
Centre, University of Keele, 1992.
99
Bibliographie
[MUL 96]
MULLER H.J., « Negotiation Principle. Foundations of Distributed
Artificial Intelligence», Chap 7, G.M.P O'Hare, Jennings N. (eds), Wiley,
pp.211-229, 1996.
[OUN 99]
OUNNAR FOUZIA, « Prise en compte des aspects décision dans la
modélisation par réseaux de pétri des systèmes flexibles de production»,
Thèse de Doctorat, Institut national polytechnique de Grenoble, France,le 9
Décembre 1999.
[PAR 96]
PARSONS S., JENNINGS, N. R., «Negotiation through argumentation a preliminary report» ,In Proc. Second Int. Conf. on Multi- Agent Systems,
pages 267–274, Kyoto, Japan, 1996.
[PRU 81]
PRUITT D., «Negotiation Behavior», Academic Press, 1981.
[ROU 05]
ROUBA B., «Elaboration et Expérimentation d’un processus décisionnel
multicritère pour les systemes automatisés de production»Mémoire de
magister en Informatique, 2005.
[ROU 95]
ROUBELLAT F., BILLAUT J-C., VILLAUMIE M., « Ordonnancement
d’atelier en temps réel : d’ORBAID à ORDO», JOURNEE D’ETUDE
Ordonnancement et entreprise : Applications Concrètes et Outils pour le
Futur, Toulouse, Juin 1994.
[ROS 94]
ROSENSCHEIN S. J., ZLOTKIN G., «Rules of Encounter: Designing
Conventions for Automated Negotiation among Computer MIT Press»,
Boston, MA, 1994.
[ROY 78]
ROY B., «ELECTREIII :Un classement fondé sur une représentation floue
des préférences en présence des critéres multiples».20(1),1978 ,pp.3-24.
[ROY 93]
ROY B, BOUYSSOU B., « Aide multicritère à la décision : méthode et
cas», Economica, Paris ,1993.
[SAV 03]
SAVALL MARC, « Une architecture d’agents pour la simulation», Le
modèle YAMAM et sa plate-forme Phoenix,Thèse Doctorat de l’INSA de
Rouen (Spécialité informatique) présentée et soutenue publiquement le
27/06/(2003).
100
Bibliographie
[SHO 93]
SHOHAM Y., « Agent.oriented programming», Artificial Intelligence,
60(1):51.92, 1993.
[SIM 77]
SIMON H. A., « The new science of management decision», Prentice-Hall,
New-Jersey, USA, 1977.
[SMI 80]
SMITH R.G., « The contract net protocol: high-level communication and
control in a distributed problem solver», IEEE Transactions on Computers,
G29 (12): 1104-1113, 1980.
[SMI 80b]
SMITH R. G., DAVIS R., « Frameworks for cooperation in distributed
problem solving», IEEE Transactions on Systems, Man, and Cybernetics,
11(1), 1980.
[SMI 94]
SMITH D. C., CYPHER A., SPOHRER J., « KIDSIM: Programming
agents without a programming language», Communications of the ACM,
37(7):55-67, July 1994.
[SYC 89]
SYCARA K. P., « Multi-agent compromise via negotiation», In L. Gasser
and M. Huhns, editors, Distributed Artificial Intelligence Volume II, pages
119-138. Pitman Publishing: London and Morgan Kaufmann: San Mateo,
CA, 1989.
[TAG O7]
TAGHEZOUT N., RIAD A., BOUAMRANE K., «Negotiation Strategy
For a Distributed Resolution of Real Time Production Management
Problems», In ACIT. LATTAKIA SYRIA pp 367-374, 2007.
[TRA 01]
TRANOUVEZ E., «IAD et ordonnancement, une approche coopérative du
réordonnacement par systèmes multi- agents», Thèse de Doctorat
Sciences, Université d’Aix-Marseille III, 2001.
[TUR 95]
TURBAN E., «Decision Support and Expert Systems: Management
Support Systems», (Third Ed.) NY. Macmillan Publishing Company, 1995.
[TRE 96]
TRENTESAUX DAMIEN, « Conception d’un système de pilotag
distribue supervise et multicritère pour les systèmes automatises de
production», Thèse de doctorat en Automatique-Productique, INP
Grenoble,le 24 Janvier 1996.
101
Bibliographie
[VER 04]
VERRONS MARIE-HELENE, « GeNCA, un modèle général de
négociation de contrats entre agents», Doctorat de l’Université des
Sciences et Technologies de Lille (spécialit informatique) présentée et
soutenue publiquement, le 2 Novembre (2004).
[WOO 94]
Wooldridge M., Jennings N.R., « Agents Theories, Architectures, and
Languages: A Survey », Lectures Notes in Artificial Intelligence 890, pp.139, 1994.
[SITE 01]
http://public.enst-bretagne.fr/~garlatti/HomePage/publi-pdf/tutorial-siad.pdf
[SITE 02]
http://www.Soft computing.com/pilotage.pdf
[SITE 03]
http://www.damas.ift.ulaval.ca/publications/article2.pdf [SITE 04]
http://turing.cs.pub.ro/auf2/html/chapters/chapters.html
[SITE 05]
http://books.google.dz/books?id=KD5uY0M8k7oC&pg=PA133&lpg=PA1
33&dq=Bernard+Roy+electre+III&source=bl&ots=lJOABdfgrD&sig=msg
htOVaC0S64CfYQ28Z7GRDGo4&hl=fr&ei=Dk_bSb
vG4KRjAfRg4XRCA&sa=X&oi=book_result&ct=result&resnum=1#PPA
71,M1
[SITE 06]
http://www.fipa.org/specs/fipa00001/,2000 102
Annexe A
Annexe A
1.Développement de la méthode Electre III
Le problème à résoudre avec la méthode ELECTRE III se formalise de la manière suivante :
étant donné un ensemble fini d’actions A évaluées sur un ensemble de critères, partitionner A en
classes d’équivalence et fournir un ordre exprimant les positions relatives de ces classes.
–
Construction d’une ou plusieurs relations de surclassement sur l’ensemble A.
–
Rangement des actions à partir de la ou des relations de surclassement, générer deux
classements (construits différemment) ; l’intersection des deux préordres conduit à un
préordre partiel ne retenant que les comparaisons les plus fondées entre les actions.
Le but de cet algorithme est alors en se fondant sur la relation de surclassemnet floue,
d’arriver à un classement des actions. Il se déroule comme suit :
Phase 1 : le tableau des performances
Il s’agit d’évaluer les performances des variantes auprès de chaque critère en les disposant
dans le tableau des performances.
Phase 2 : indices de concordance
La méthode Electre III utilise deux indices pour la concordance :
a) L’indice de concordance par critère
L’indice de concordance par critère affirme dans quelle mesure ai est au moins aussi bonne
que l’action ak, pour le critère j.
cj (ai, ak) = 0
Ù
pj < g (ak) – g (ai)
cj (ai, ak) =1
Ù
g (ak) – g (ai) ≤ qj
0 < cj (ai, ak) < 1
Avec
x=
Ù
qj < g (ak) – g (ai) ≤ pj
g (ai) + pj - g (ak)
p j - qj
b) L’indice de concordance globale
L’indice de concordance globale affirme dans quelle mesure il y a concordance avec
l’hypothèse ai surclasse ak.
104
Annexe A
m
Cik =
∑P
j
cj (ai, ak)
j=1
m
∑P
j
j=1
Phase 3 : indice de discordance
Afin de pouvoir calculer l’indice de discordance, on a besoin d’utiliser un autre type de seuil
nommé le seuil de veto, le seuil de veto vj du critère j est la différence à partir de laquelle
l’affirmation ‘ai est tellement meilleure que ak sur le critère j qu’en aucun cas, ak ne pourra
être considérée meilleure que ai quelles que soient les performances de ak et ai sur tous les
autres critères ‘sera prise en compte dans l’élaboration de la préférence globale.
Le seuil de veto est fixé de façon que qj < pj < vj
Ainsi, l’indice de discordance dj (ai, ak) est défini tel que :
dj (ai, ak) = 0 Ù vj < gj (ak) – gj (ai)
Ù gj (ak) – gj (ai) ≤ pj
cj (ai, ak) =1
0 < dj (ai, ak) < 1 Ù pj < gj (ak) – gj (ai) ≤ vj
Avec
dj(ai, ak) =
gj(ak) - gj(ai) - pj
vj -pj
Phase 4 : Relation de surclassement floue
La relation de surclassement est exprimée par un indice associé à chaque surclassement, le
degré de crédibilité du surclassement qui représente l’indice de concordance Cik affaibli par
les indices de discordance dj (ai, ak) qui contribue à cet affaiblissement si et seulement si il est
supérieur à Cik il est défini tel que :
δik =
Cik
si
F =∅
1 - dj (ai, ak)
1 - Ci k
j∈F
Ci k ∏
sinon
Où F est le sous ensemble de la famille F qui a comme éléments les critères pour lesquels
l’indice de discordance est supérieur à l’indice de concordance globale.
F = {j / j ∈ F, dj (ai, ak) > Cik } et F ⊃ F
105
Annexe A
Phase 5 : Exploitation de la relation de surclassement floue
a) Seuil de discrimination
Le seuil de discrimination s (λ) est une fonction s (λ) = β - α λ définie pour toute valeur λ ∈
[0 ,1] qui vérifie si δik = k et δem = λ – η, avec η > s (λ), alors le surclassement de ak par ai est
strictement plus crédible que le surclassement de am par ae
b) Principe de l’algorithme
L’algorithme de classement a pour objectif d’exploiter la relation de surclassement floue en
vue d’ordonner les actions selon un préordre partiel obtenu à partir de deux préordres :
1. Le premier est construit de façon descendante en sélectionnant d’abord les
meilleures actions pour terminer avec les plus mauvaises (distillation
descendante).
2. Le second est construit de façon ascendante en sélectionnant d’abord les plus
mauvaises actions pour terminer avec les meilleures (distillation ascendante).
Les définitions suivantes se trouvent à la base de l’algorithme de classement :
-
Puissance d’une action ai notée P (ai) : nombre d’actions auxquelles elle est
strictement préférée.
-
Faiblesse d’une action ai notée F (ai) : nombre d’action qui lui sont strictement
préférées.
-
Qualification d’une action ai notée Q (ai) = P (ai) – F (ai), la valeur résultante
représente la position de ai dans le préordre.
c) Description de l’algorithme
Soit λ0 la valeur maximale qu’atteint le degré de crédibilité :
λ0 = max (δik)
L’algorithme procède en abaissant progressivement un seuil λ depuis λ0 jusqu’à 0, en passant
par des paliers successifs, la détermination de cette dernière repose sur un concept de niveau
de séparation.
Soit λ1 un niveau de séparation défini comme :
λ1 = λ0 – s (λ0)
Ensuite une relation de surclassement triviale S λ1 est établie qui signifie que l’action ai
surclasse ak ne sera prise en compte que si elle est significativement plus crédible que l’action
ak surclasse l’action ai, elle est définie par :
ai S λ1 ak ⇔
δik > λ1 et
δik > δki + s (δik)
106
Annexe A
Ainsi, le nombre d’actions est exprimé par :
-
La λ1 -puissance :
λ1
PAλ1 (ai) = {ak ∈ A\ ai SA ak}
-
La λ1 -faiblesse :
λ1
FAλ1 (ai) = {ak ∈ A\ ak SA ai}
-
La λ1 -qualification de l'action ai par rapport à l'ensemble A :
QAλ1 (ai) = PAλ1 (ai) - FAλ1 (ai)
L’algorithme pour la distillation descendante et ascendante est décrit par la figure (A.1).
107
Annexe A
Distillation n
Ensemble An = A
Etape l: l = 0, Dl = A n
λl+1 = max δik ou ai, ak ∈ A et ai ≠ ak
s (λl) = α + β . λl
λl+1 = max δik ou δik < λl - s (λl) et ai , ak ∈ Dl
ai S λl+1 ak Ù δik > λl+1 et δik > δki + s (λl)
pλl+1 (ai) = | {ak ∈ Dl\ ai S λl+1 ak}|
fλl+1 (ai) = | {ak ∈ Dl\ ak S λl+1 ai}|
qλl+1 (ai) = pλl+1 (ai) - fλl+1 (ai)
l=l+1
q = max q λl+1 (ai) ai ∈ à Dl
n=n+1
ou
q = min q λl+1 (ai) ai ∈ Dl
Dl+1 = {ai ∈ Dl\ qλl+1 (ai) = q}
Oui
Dl+1 = 1 ou λl+1 = 0
Non
Cn+1 = Dl+1, An+1= An/Cn+1
Oui
Non
An+1 = Ø
Fin
Figure A.1 : Algorithme de classement.
108
Annexe A
Ainsi, la construction du préordre partiel final est le résultat d’une intersection (au sens
mathématique) entre les deux préordres complets, cependant pour le construire il faut suivre
les règles suivantes :
-
Si ai est préférée à ak dans les deux préordre complets, alors il en sera de même pour le
préordre partiel.
-
Si ai est équivalente à ak dans un préordre complet, mais si elle lui est préférée dans le
deuxième, alors ai sera préférée à ak dans le préordre partiel.
-
Si dans le premier préordre ai est préférée à ak et si dans le second ai est préférée à
ak, alors les deux actions seront incomparables dans le préordre partiel.
109
Annexe B
Annexe B
1. Description des classes utilisées
Nous avons défini une classe générique Serveur qui est la classe mère de tous les agents du
SMAD. Ces derniers héritent ses propriétés et ses méthodes, en
déclarations.
1.2 Structure d’un agent en java
•
L’agent serveur
package sma;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.dx.sql.dataset.*;
import com.borland.dbswing.*;
import com.borland.jbcl.layout.*;
import javax.swing.border.*;
import java.util.Vector;
import javax.swing.event.*;
import java.sql.*;
public class Serveur extends JFrame {
public Serveur() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
}
110
plus leurs propres
Annexe B
•
L’agent client
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;
import client.Agents;
import jade.core.Runtime;
import jade.wrapper.AgentContainer;
import jade.wrapper.AgentController;
import jade.core.Profile;
import jade.core.ProfileImpl;
import jade.core.ProfileImpl;
import jade.core.Runtime;
public class Client
extends JFrame {
private Socket client;
private String serveurDeChat;
private String message;
public Client(String hote) {
super("Client");
this.serveurDeChat = hote;
c = getContentPane();
this.affichage = new JTextArea();
this.champEntree = new JTextField();
champEntree.setEnabled(false);
c.add(champEntree, BorderLayout.NORTH);
c.add(new JScrollPane(affichage), BorderLayout.CENTER);
//**************************************
class Client_this_windowAdapter
extends java.awt.event.WindowAdapter {
Client adaptee;
Client_this_windowAdapter(Client adaptee) {
this.adaptee = adaptee;
}
public void windowActivated(WindowEvent e) {
111
Annexe B
•
Négociation
Les agents négociant entre eux pour pouvoir interagir et échanger de l’information. Nous
avons présenté cette négociation par :
L’agent négociation
o L’agent initiateur
public class SIP1I
extends Agent {
Agents agent;
String utilisater;
public class Comprt1
extends Behaviour {
public void action() {
MessageTemplate mt = MessageTemplate.or(MessageTemplate.MatchPerformative(
ACLMessage.PROPOSE),
MessageTemplate.MatchPerformative(
ACLMessage.REFUSE));
MessageTemplate mt1 = MessageTemplate.MatchPerformative(ACLMessage.CFP);
ACLMessage msg_tampon = myAgent.receive(mt);
if (msg_tampon != null) {
System.out.println("mm ");
String[] cont = null;
try {
cont = (String[]) msg_tampon.getContentObject();
System.out.println("mm ");
}
catch (UnreadableException e) {
// TODO Auto-generated catch bloc
e.printStackTrace();
public boolean done() {
// TODO Auto-generated method stub
return false;
}}}
112
Annexe B
o L’agent participant
public class SIP1P extends Agent {
Database Mabase = new Database();
QueryDataSet queryDataSet1 = new QueryDataSet();
String bb;
String cc;
public SIP1P() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void setup() {
this.addBehaviour(new Comprt1());
}
public class Comprt1 extends Behaviour {
public void action() {
ACLMessage msg_tampon = myAgent.receive(mt);
if (msg_tampon != null) {
System.out.println("i am here");
String[] cont = null;
try {
cont = (String[]) msg_tampon.getContentObject();
}
catch (UnreadableException ex2) {
}
113
Annexe B
•
Processus de négociation
import javax.swing.*;
import java.awt.*;
import jade.core.*;
import jade.core.AID;
import jade.core.*;
import jade.lang.acl.*;
import java.awt.event.*;
import javax.swing.JFileChooser;
import java.awt.event.*;
import javax.swing.border.*;
import javax.swing.event.*;
void actionPerformed(ActionEvent e) {
String user7 = jTextField3.getText();
String rep = Table3.getValueAt(repSIP3,1).toString().substring(0,4);
JOptionPane.showInputDialog(null,"rep
"+rep,"",JOptionPane.OK_OPTION);
ACLMessage msg = new ACLMessage(ACLMessage.CFP);
try {
msg.setContentObject(new String[] {"Panne", user7});
//================================================
msg.addReceiver(new AID(rep+"P", AID.ISLOCALNAME));
//======================================
myAgent.send(msg);
// this.setVisible(false);
}
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
114
Annexe C
Annexe C
1. Introduction
Le meilleur moyen pour construire un système multi-agent (SMA) est d'utiliser une plateforme multi-agent. Une plate-forme multi-agent est un ensemble d'outils nécessaire à la
construction et à la mise en service d'agents au sein d'un environnement spécifique. Ces outils
peuvent servir également à l'analyse et au test du SMA ainsi créé. Ces outils peuvent être sous
la forme d'environnement de programmation (API) et d'applications permettant d'aider le
développeur. Nous allons étudier dans cette partie la plate-forme JADE (Java Agent
DEvelopment framework).
2. Bref description de JADE
JADE (Java Agent DEvelopement framework) est une plate-forme multi-agent créé par le
laboratoire TILAB et décrite par Bellifemine et al. Dans [BEL 99] [BEL 00]. JADE permet le
développement de systèmes multi-agents et d'applications conformes aux normes FIPA [SITE
06] . Elle est implémentée en JAVA et fourni des classes qui implémentent « JESS » pour la
définition du comportement des agents. JADE possède trois modules principaux (nécessaire
aux normes FIPA).
•
DF « Director Facilitor » fournit un service de « pages jaunes» à la plate-forme ;
•
ACC «Agent Communication Channel » gère la communication entre les agents ;
•
AMS « Agent Management System » supervise l'enregistrement des agents, leur
authentification, leur accès et l'utilisation du système.
Ces trois modules sont activés à chaque démarrage de la plate-forme.
115
Annexe C
3. La norme FIPA
La FIPA (Foundation for Intelligent Physical Agents) est une organisation à but non lucratif
fondée en 1996 dont l'objectif est de produire des standards pour l'interopération d'agents
logiciels hétérogènes. Par la combinaison d'actes de langages, de logique des prédicats et
d'ontologies publiques, la FIPA cherche à offrir des moyens standardisés permettant
d'interpréter les communications entre agents de manière à respecter leur sens initial, ce qui
est bien plus ambitieux que XML, qui ne standardise que la structure syntaxique des
documents. Afin d'atteindre ce but, le FIPA émet des standards couvrant :
•
Les applications (applications nomades, agent de voyage personnel, applications
de diffusion audiovisuelles, gestion de réseaux, assistant personnel…) ;
•
Les architectures abstraites, définissant d'une manière générale les architectures
d'agents ;
•
Les langages d'interaction (ACL), les langages de contenu (comme SL, CCL,
KIF ou RDF) et les protocoles d'interaction ;
•
La gestion des agents (nommage, cycle de vie, description, mobilité,
configuration);
•
Le transport des messages : représentation (textuelle, binaire ou XML) des
messages ACL, transport (par IIOP, WAP ou HTTP) de ces messages.
Ces standards évoluent, et sont régulièrement mis à jour, ainsi que de nouveaux standards qui
sont nouvellement proposés. Les standards qu'édicte la FIPA ne constituent pas vraiment une
plate-forme de construction multi-agents. Ce n'est pas non plus l'objectif que s'est fixé la
FIPA. Tout au plus, la FIPA normalise une plate-forme d'exécution standardisée dans un but
d'interopérabilité. Ces normes s'appliquent donc pour la plupart en phase de déploiement.
Elles n'abordent pas les phases d'analyse ni de conception. Elles peuvent cependant guider
certains choix d'implémentation.
3.1 Architecture logiciel de la plate-forme JADE
JADE reprend donc l'architecture de l'Agent Management Reference Model proposé par
FIPA. Les différents modules présentés dans la figure suivante sont présentés sous forme de
services. Les services de base proposés sont le Directory Facilitator (DF) et l'Agent
Management System (AMS). Il est possible de lui demander de tenir en plus le service de
Message Transport Service (MTS) pour communiquer entre plusieurs plates-formes. Mais ce
116
Annexe C
service sera chargé à la demande pour ne conserver par défaut que les fonctionnalités utiles à
tout
type
d'utilisation.
L'agent est l'acteur fondamental de la plate-forme, un Agent Identifier (AID) identifie un
agent de manière unique. Le DF est un composant qui fait office d'annuaire. C'est un service
de « pages jaunes » qui permet de mettre en relation les agents avec leurs compétences. Un
agent peut enregistrer ses compétences dans le DF ou interroger le DF pour connaître les
compétences proposées par les autres agents. L'AMS est un autre composant important car il
contrôle l'accès et l'utilisation de la plate-forme et maintient un répertoire contenant les
adresses de transport des agents de la plate forme. Ce service est plus un service de type «
pages
blanches
»
qui
effectue
la
correspondance
entre
l'agent
et
l'AID.
Chaque agent doit s'enregistrer à un AMS pour avoir un AID. Il n'y a qu'un AMS par plateforme. Le MTS est une méthode par défaut de communication entre agents de différentes
plates-formes. Cela permet l'interconnexion entre systèmes hétérogènes ou tout au moins de
système ne communicant pas de la même façon. L'Agent Platform (AP) constitue
l'infrastructure physique sur laquelle se déploient les agents. Il contient le DF, l'AMS et le
MTS. Lorsqu'on parle de AP, on inclut souvent le matériel électronique, l'OS, le software et
les composants cités ci-dessus avec les agents. Enfin, l'Agent Identifier (AID) est un
identifiant précis d'un agent. On lui donne plusieurs paramètres tels que l'adresse de transport,
l'adresse de service de résolution de nom, … Un exemple est : name@HAP (Home Agent
Platform)
Figure C.1 : Architecture logiciel de La plate-forme JADE.
117
Annexe C
Dans la plate-forme JADE, deux méthodes sont fournies par la classe Agent afin d'obtenir
l'identifiant de l'agent DF par défaut et celui de l'agent AMS : getDefaultDF() et
respectivement getAMS(). Ces deux agents permettent de maintenir une liste des services et
des adresses de tous les autres agents de la plate-forme. Le service DF propose quatre
méthodes afin de pouvoir :
•
Enregistrer un agent dans les pages jaunes (register).
•
Supprimer un agent des pages jaunes (deregister).
•
Modifier le nom d'un service fourni par un agent (modify).
•
Rechercher un service (search).
Le service AMS s'utilise généralement de manière transparente (chaque agent créé est
automatiquement enregistré auprès de l'AMS et se voit attribué une adresse unique). Ces deux
services fournissent donc les annuaires qui permettent à n'importe quel agent de trouver un
service ou un autre agent de la plate-forme.
3.2 Langage de communication de la plate-forme JADE
Le langage de Communication de la plate-forme JADE est FIPA-ACL (Agent
Communication language). La classe ACLMessage représente les messages qui peuvent être
échangés par les agents. La communication de messages se fait en mode asynchrone.
Lorsqu'un agent souhaite envoyer un message, il doit créer un nouvel objet ACLMessage,
compléter ces champs avec des valeurs appropriées et enfin appeler la méthode send().
Lorsqu'un agent souhaite recevoir un message, il doit employer la méthode receive() ou la
méthode
blockingReceive().
Un message ACL dispose obligatoirement des champs suivants :
Performative :
type de l'acte de communication
Sender :
expéditeur du message
Receiver :
destinataire du message
reply-to :
participant de la communication
content :
contenu du message
language :
description du contenu
encoding :
description du contenu
118
Annexe C
ontology :
description du contenu
protocol :
contrôle de la communication
conversation-id : contrôle de la communication
reply-with :
contrôle de la communication
in-reply-to :
contrôle de la communication
reply-by :
contrôle de la communication
Tous les attributs de la classe ACLMessage peuvent être obtenus et modifiés par les méthodes
set/get(). Le contenu des messages peut être aussi bien du texte que des objets car la
sérialisation Java est supportée.
3.3 Les protocoles FIPA-Query et FIPA-Request
Dans le protocole FIPA-request, un agent sollicite un autre agent pour exécuter des actions et
l'agent récepteur retourne soit une réponse favorable à l'exécution d'actions, soit une réponse
défavorable
expliquée
par
telle
ou
telle
raison.
Supposons que l'agent i ait besoin de l'agent j pour exécuter l'action « action ».
a. L'agent i envoie « request » à l'agent j. Si l'agent j accepte la requête, il retourne «
agree ». Ensuite, quand j a fini d'exécuter « action », il en informe i en utilisant «
inform ».
b. Si l'agent j accepte mais rencontre un problème durant le traitement de « action », il
retourne « failure » et les raisons de l'échec.
c. Si l'agent j n'accepte pas la requête de l'agent i, j retourne « refuse » et les raisons de
ce refus.
Le protocole FIPA-Query signifie que l'agent émetteur sollicite l'agent récepteur pour
exécuter un des types d'un performatif « inform », c'est-à-dire pour répondre à la demande.
Supposons que l'agent i fasse une demande à l'agent j.
a. L'agent i envoie un performatif « query » à l'agent j. Si l'agent j peut répondre à la
demande, il l'informe en utilisant le performatif « inform ».
b. Si l'agent j a essayé de répondre à la demande mais qu'il ne le peut pas, il retourne «
failure » et les raisons de cette impossibilité.
119
Annexe C
c. Si l'agent j refuse de répondre à la demande, il retourne « refuse » et les raisons de ce
refus.
3.4 Le protocole Contract-Net de JADE
Le Protocole Contract-Net (CNP) a été défini par Smith [SMI 80b]. Il est un mécanisme de
négociation par appel d'offre (ou Contract) entre deux types d'agents : l'agent gestionnaire et
les agents contractants. L'agent gestionnaire, souhaitant sous-traiter une tâche qu'il doit
accomplir, est l'initiateur du contrat. Chaque agent contractant est un agent auquel on propose
ce contrat. Ce protocole très souvent utilisé, a été normalisé par l'organisation FIPA et
implémenté dans la plate-forme JADE.
4. Comportements des agents dans la plate-forme JADE
Un agent doit être capable de gérer plusieurs tâches de manière concurrente en réponse à
différents évènements extérieurs. Afin de rendre efficace cette gestion chaque agent de JADE
est composé d'un seul thread et chaque comportement qui le compose est en fait un objet de
type Behaviour. Des agents multi-thread peuvent être créés mais il n'existe pour l'heure
actuelle aucun support fournis par la plate-forme (excepté la synchronisation de la file des
messages
ACL).
Afin d'implémenter un comportement, le développeur doit définir un ou plusieurs objets de la
classe Behaviour, les instancier et les ajouter à la file des tâches « ready »de l'agent. Il est à
noter qu'il est possible d'ajouter des comportements et sous-comportements à un agent ailleurs
que
dans
la
méthode
setup().
Tout objet de type Behaviour dispose d'une méthode action() (qui constitue le traitement à
effectuer par celui-ci) ainsi que d'une méthode done() (qui vérifie si le traitement est terminé).
Dans les détails, l'ordonnanceur exécute la méthode action() de chaque objet Behaviour
présent dans la file des tâches de l'agent. Une fois cette méthode terminée, la méthode done()
est invoquée. Si la tâche a été complétée alors l'objet Behaviour est retiré de la file.
L'ordonnanceur est non-préemptif et n'exécute qu'un seul comportement à la fois, on peut
donc considérer la méthode action() comme étant atomique. Il est alors nécessaire de prendre
certaines précautions lors de l'implémentation de cette dernière, à savoir éviter des boucles
infinies ou des opérations trop longues. La façon la plus classique de programmer un
comportement consiste à le décrire comme une machine à états finis. L'état courant de l'agent
étant
conservé
dans
des
120
variables
locales.
Annexe C
Enfin, il existe également quelques méthodes supplémentaires afin de gérer les objets
Behaviour :
•
reset () qui permet de réinitialiser le comportement;
•
onStart() qui défini des opérations à effectuer avant d'exécuter la méthode
action();
•
onEnd() qui finalise l'exécution de l'objet Behaviour avant qu'il ne soit retiré de
la liste des comportements de l'agent;
La plate-forme JADE fournit sous forme de classes un ensemble de comportements ainsi que
des sous-comportements prêt à l'emploi. Elle peut les exécuter selon un schéma prédéfini, par
exemple la classe SequentialBehaviour est supportée et exécute des sous-comportements de
manière séquentielle. Toutes les classes prédéfinies dans JADE héritent de la classe Abstraite
Behaviour. On peut les citer :
•
Classe SimpleBehaviour (abstraite): modélise un comportement simple. Sa
méthode reset() n'effectue aucune opération.
•
Classe CompositeBehaviour (abstraite) : modélise un comportement composé.
Les actions effectuées par cette classe sont définies dans les comportements
enfants.
•
Classe FSMBehaviour : Cette classe hérite de CompositeBehaviour et éxecute
des comportements enfants suivant un automate à états finis défini par
l'utilisateur. Lorsqu'un comportement enfant termine, sa valeur de fin retournée
par la fonction onEnd() indique le prochain état à atteindre. Le comportement
correspondant à cet état sera exécuté à la prochaine exécution de la classe. Elle se
termine lorsque qu'un comportement associé à un état final à été exécuté.
•
Classe SenderBehaviour : elle étend la classe OneShotBehaviour et encapsule
une unité atomique qui effectue une opération d'envoie de message.
•
Classe ReceiverBehaviour : Elle encapsule une unité atomique qui effectue une
opération de reception de message. Ce comportement s'arrête dés qu'un message
a été reçu. S'il n'y a pas de message dans la file d'attente de l'agent ou que le
message ne correspond pas au MessageTemplate du constructeur de cette classe,
alors il se met en attente.
121
Annexe C
•
On peeut aussi citer
c
d'autrees classes par
p exemplles : Classse WakerBeehaviour
(abstraaite),
PaarrallelBehaviour,
SequentialBe
S
ehaviour,
CyclicBeehaviour.
(abstraaite), OneShhotBehaviouur (abstraitee).
5. Outtils de déb
bogage dee JADE
Pour suupporter la tâche
t
difficiile du déboggage des ap
pplications multi-agent
m
ts, des outils ont été
développpés dans la plate-forrme JADE
E. Chaque outil est empaqueté
e
comme un
n agent,
obéissannt aux mêm
mes règles, aux
a mêmes possibilitéss de commuunication ett aux mêmees cycles
de vie d'un
d agent générique (agentificatioon de servicee).
5.1 Ageent RMA Remote
R
Man
nagement Agent
A
Le RM
MA permett de contrôôler le cycle de vie de la platee-forme et tous les agents
a
la
compossant. L'archiitecture réppartie de JA
ADE permett le contrôlee à distancee d'une autrre plateforme. Plusieurs
P
R
RMA
peuvennt être lancéés sur la mêême plate-foorme du mooment qu'ilss ont des
noms diistincts.
Figgure C.2 : L'interface
L
de
d l'agent RM
MA.
5.2 Ageent Dammyy
L'outiil DummyA
Agent permeet aux utilissateurs d'intteragir avecc les agentss JADE d'un
ne façon
particulière. L'interrface permeet la compoosition et l'eenvoi de messages
m
AC
CL et mainttient une
liste de messages ACL envoyyés et reçuus. Cette lisste peut être examinéee par l'utilissateur et
122
Annexe C
chaque message peut
p
être vuu en détail ou même édité. Plus encore, le message peut
p
être
sauvegaardé sur le disque
d
et rennvoyé plus tard.
t
Figu
ure C.3 : L'iinterface dee l'agent Dam
mmy.
5.3 Ageent Directorry Facilitattor
L'interrface du DF
D peut êtree lancée à partir du menu
m
du RMA
R
.Cettee action estt en fait
implanttée par l'ennvoi d'un message
m
AC
CL au DF lui demanddant de chaarger son interface
i
graphiqque. L'interfa
face peut êtrre juste vue sur l'hôte où
o la plate-fforme est exxécutée. En utilisant
cette intterface, l'utiilisateur peuut interagir avec
a
le DF.
Fiigure C.4 : L'interface de l'agent DF.
D
123
Annexe C
5.4 Ageent Sniffer
Quand un utilisateeur décide d'épier
d
un aggent ou un groupe
g
d'aggents, il utiliise un agentt sniffer.
u sniffer.
Chaque message partant ou alllant vers cee groupe estt capté et afffiché sur l'iinterface du
L'utilisaateur peut voir
v et enreggistrer tous les messag
ges, pour évventuellement les analy
yser plus
tard. L'aagent peut être lancé du
d menu duu RMA ou de la ligne de commaande suivantte : Java
jade.Booot sniffer:jaade.tools.sniffer.snifferr
Figu
ure C.5 : L''interface dee l'agent Sniffer.
5.5 Ageent Inspectoor
Cet aggent permett de gérer et
e de contrôller le cycle de vie d'unn agent s'exxécutant et la
l file de
ses messages envoyyés et reçuss.
Figurre C.6 : L'innterface de l'agent
l
Insppector .
124
Annexe C
6. Conclusion
Dans cette annexe, nous avons présenté la plate forme logicielle de développement des
systèmes multi-agents JADE, nous avons évoqué encore quelques notions de base proposées
par la communauté FIPA. Nous avons finalisé par la présentation des outils de débogage
JADE y compris l’agent sniffer que nous avons intégré dans notre prototype développé pour
la visualisation des interactions des agents implémentés dans notre plate forme.
125
Résumé
Résumé
Ce mémoire expose nos travaux de recherche visant à favoriser la négociation entre les
systèmes de production et leurs systèmes de pilotage pour l’amélioration de leurs performances.
Au cours de ce projet, Nous nous sommes intéressés à la résolution d’une classe de problèmes relatifs aux
situations de conflits pouvant avoir lieu entre les différentes activités d'agents interagissant dans un
environnement dynamique en temps réel et concernant l’utilisation des ressources communes.
Lorsque plusieurs agents interagissent des conflits peuvent survenir ce qui nécessite l’utilisation de
mécanismes de résolution de conflits. La stratégie de négociation proposée est une hybridation du
protocole contrat Net et une approche fondée sur l'intelligence artificielle implémentée a l’aide de la plate
forme JADE( Java Agent DEvelopement framework), qui a pour but de simplifier le développement des
systèmes multi-agents tout en fournissant un ensemble complet de services et d'agents conformes aux
spécifications FIPA ACL.
En fait, les agents en conflit entrent dans une série de tractations, d'échanges et de compromis de manière
à parvenir à un accord.
Mots clés: Système multi-agents, Négociation, Aide à la décision, SIAMD, Méthodes multicritères, protocole
contract Net.
Abstract
This report describes our research to foster negotiations between the production systems and
piloting
systems
to
improve
their
performance.
During this project, we are interested in solving a class of problems related to situations of conflict can
take place between the various agents interacting in a dynamic environment in real time and on the use of
common
resources.
When several agents interact conflicts may arise which require the use of conflict resolution mechanisms.
The proposed negotiation strategy is a hybridization of the Contract Net protocol and an approach based
on artificial intelligence implemented using the JADE( Java Agent DEvelopement framework), platform
which aims to simplify the development of multi-agent systems, while providing a complete set of services
and
agents
comply
with
the
FIPA
ACL
specifications.
In fact, officers come into conflict in a series of negotiations, exchanges and compromise in order to reach
an agreement.
Keywords: Multi Agent System, Negotiation, Decision Support System (DSS), SIDAM, multicriteria Methods,
Contract net protocol.