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.