UN ALGORITHME COOPÉRATIF POUR UN PROBLÈME D ATELIER JOB SHOP MULTI-AGENT



Documents pareils
Annexe 6. Notions d ordonnancement.

Ordonnancement robuste et décision dans l'incertain

Résolution du RCPSP avec production et consommation de ressources : modèles PLNE basés sur les événements

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

OPTIMISATION DE LA MAINTENANCE DES EQUIPEMENTS DE MANUTENTION DU TERMINAL A CONTENEURS DE BEJAIA (BMT)

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

PLAN DE COURS. GPA750 Ordonnancement des systèmes de production aéronautique

LES MÉTA-HEURISTIQUES : quelques conseils pour en faire bon usage

Ordonnancement temps réel

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Principe de symétrisation pour la construction d un test adaptatif

Programmation linéaire

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Comment réussir son projet de Master Data Management?

Pourquoi l apprentissage?

Chapitre 2 Le problème de l unicité des solutions

LE DIPLOME DE MAGISTER

4.2 Unités d enseignement du M1

L apprentissage automatique

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

Séparation et Evaluation pour le problème d ordonnancement avec blocage.

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

PRIME D UNE OPTION D ACHAT OU DE VENTE

Automatique Linéaire 1 Travaux Dirigés 1A ISMIN

Une méthode d apprentissage pour la composition de services web

Partie 7 : Gestion de la mémoire

Qu est-ce que la Bourse?

Modèle de coopération d un processus de ré-ordonnancement distribué

Fonctions de plusieurs variables

Gestion réactive des opérations de maintien et d actualisation réglementaire et technologique des systèmes complexes.

0DWKpPDWLTXHVGHO DUJHQW. édité par Mr. G.Moumoulidis (OTE)

Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop

Problèmes de crédit et coûts de financement

Programmation linéaire

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Résolution d équations non linéaires

Norme comptable internationale 33 Résultat par action

Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative

CEG4566/CSI4541 Conception de systèmes temps réel

Théorèmes de Point Fixe et Applications 1

Les systèmes de base de données temps réels. Pokrovskaya Natalia, Kabbali Nadia

LISTE D EXERCICES 2 (à la maison)

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Rapport d'analyse des besoins

Article 2 : Conseils et meilleures pratiques pour gérer un cloud privé

Cours de Génie Logiciel

LE PROBLEME DU PLUS COURT CHEMIN

A GRASPxELS approach for the Job Shop with generic time-lags and new statistical determination of the parameters

Analyse des risques financiers

Chapitre 4 : Exclusion mutuelle

APPLICATION DE LA GESTION DES FILES D ATTENTE PAR RÈGLES DE PRIORITÉ DANS UN JOB SHOP EN TEMPS RÈEL

Conception des systèmes répartis

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Présentation. Pour. Gilles ALAIS, Country Manager Barloworld Supply Chain Software France 20 Rue des Petits Hôtels, Paris

Equilibrage de charge pour les grilles de calcul : classe des tâches dépendantes et indépendantes.

Une application des algorithmes génétiques à l ordonnancement d atelier

Résolution de systèmes linéaires par des méthodes directes

FORMAT FORMA ION SUR LA ION SUR LA GESTION DE PROJET & MS PROJECT

COORDINATION NON COOPÉRATIVE: MÉTHODES D ENCHÈRES

Programmation linéaire et Optimisation. Didier Smets

Transmission d informations sur le réseau électrique

FONCTION ORDONNANCEMENT AU SEIN

Minimisation de la somme des retards dans un jobshop flexible

CHAPITRE 5. Stratégies Mixtes

Chapitre 5 : Flot maximal dans un graphe

Service On Line : Gestion des Incidents

Une méthode heuristique pour l ordonnancement de projets avec contraintes de ressources et chevauchement d activités

LES INDICATEURS CLÉ DE PERFORMANCE : DÉFINIR ET AGIR

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Modélisation multi-agents - Agents réactifs

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

UML (Diagramme de classes) Unified Modeling Language

Cours IV Mise en orbite

Simulation d application des règles CNAV AGIRC ARRCO sur des carrières type de fonctionnaires d Etat

Note d orientation : La simulation de crise Établissements de catégorie 2. Novembre This document is also available in English.

Métriques de performance pour les algorithmes et programmes parallèles

Etude du niveau stress ressenti par les salariés de plusieurs entreprises du tertiaire. Un outil de mesure.

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Contrôle par commande prédictive d un procédé de cuisson sous infrarouge de peintures en poudre.

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Cours de Master Recherche

Norme internationale d information financière 9 Instruments financiers

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

ITIL V3. Transition des services : Principes et politiques

Mesure et gestion des risques d assurance

MAITRISE DE LA CHAINE LOGISTIQUE GLOBALE (SUPPLY CHAIN MANAGEMENT) Dimensionnement et pilotage des flux de produits

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Avertissement sur les Risques Associés aux CFDs

Comprendre les frais sur remboursement anticipé

LE LEAN MANUFACTURING

Transcription:

8 e Conférence Internationale de MOdélisation et SIMulation - MOSIM 10-10 au 12 mai 2010 - Hammamet - Tunisie «Évaluation et optimisation des systèmes innovants de production de biens et de services» UN ALGORITHME COOPÉRATIF POUR UN PROBLÈME D ATELIER JOB SHOP MULTI-AGENT C. BRIAND 1,2, S. OURARI 1,2,3 and B. BOUZOUIA 3 1 CNRS ; LAAS ; 7 avenue du colonel Roche, F-31077 Toulouse, France 2 Université de Toulouse ; UPS, INSA, INP, ISAE ; LAAS ; F-31077 Toulouse, France 3 CDTA, lotissement du 20 août 1956, Baba Hassen, Alger, Algeria briand@laas.fr, sourari@laas.fr, bbouzouia@cdta.dz RÉSUMÉ : Cet article s intéresse au problème d ordonnancement de type job shop où, chaque machine étant associée à un agent ayant son autonomie décisionnelle propre, il s agit de déterminer une solution satisfaisant, d une part, les objectifs locaux des agents et, d autre part, un ensemble d exigences globales, correspondant à des règles de coopération adoptées collectivement. L algorithme de résolution proposé est de nature distribuée, les décisions d ordonnancement étant progressivement négociées entre les acteurs. Il permet de s adapter de façon réactive à l évolution de la production, tout en préservant la flexibilité décisionnelle de chaque agent et en limitant la fréquence des négociations. MOTS-CLÉS : job shop, ordonnancement multi-agent, coopération, flexibilité et robustesse, algorithme distribué. 1 INTRODUCTION Dans un problème d ordonnancement multi-agent, l ensemble T des n tâches à ordonnancer est distribué sur un ensemble A de m agents (m n). De façon classique, les tâches sont reliées entre elles par un ensemble P de relations de précédence, où (i j) P indique que la tâche i doit précéder la tâche j. Nous supposons en outre qu une durée totale maximale D est imposée pour la réalisation de la totalité des tâches. Chaque agent est supposé avoir sa propre autonomie décisionnelle et possède sa ou ses propres fonctions objectifs. La difficulté principale du problème réside dans le fait que la connaissance de l agent est restreinte à celle du seul sous ensemble de tâches qui lui est affecté. Les agents se communiquent des informations nécessaires à leur synchronisation. Ainsi, lorsque la tâche j, affectée à l agent A u, a une relation de précédence avec la tâche i (i.e.,(i j) P), affectée à l agent A v, nous imposons alors que l agent A v convienne avec A u d un intervalle de fin de réalisation [C i, C i ] pour i, dans lequel il s engage à achever i. La tâche i est alors dite tâche frontière et A v est dit en amont de A u (A u est en aval de A v ). Nous notons F l ensemble des tâches frontières. Dans l intervalle [C i, C i ], la valeur C i correspond à la date de fin de i dans le meilleur des cas, lorsque A v se trouve dans la situation la plus favorable. La valeur C i correspond à la date de fin de i dans le pire des cas, lorsque A v évolue dans un contexte perturbé. Éventuellement, C i = C i et la tâche i doit alors être terminée à une date fixe. Le problème d ordonnancement multi-agent considéré dans cet article consiste à déterminer, pour chaque tâche frontière i, un intervalle de fin de réalisation [C i, C i ] (négocié entre l agent responsable de la réalisation de la tâche et ses agents aval) de sorte à ce que, d une part, les intervalles communiqués soient cohérents avec la durée totale maximale D et, d autre part, que les objectifs locaux des agents soient globalement satisfaits. Nous revenons sur cette notion de satisfaction des agents dans la suite du texte. Figure 1 Un exemple de problème d ordonnancement multi-agent Un problème d ordonnancement comportant n = 8 activités est représenté sur la figure 1 sous forme d un graphe potentiels-tâches. Dans ce graphe, chaque sommet correspond à une tâche et chaque arc modélise une contrainte de précédence entre deux tâches de T = {0,..., 9}. Les lignes pointillées indiquent l affec-

tation des tâches aux agents. De façon assez classique, les tâches 0 et 9 sont des tâches fictives, de durée nulle, et correspondent respectivement au début de l ordonnancement et à sa fin. Elles sont également associées à deux agents fictifs, A 0 et A 4, pouvant respectivement être assimilés à l acteur décidant du lancement de l ordonnancement et au client final. Les tâches non fictives sont réparties sur un ensemble de trois agents A = {A 1, A 2, A 3 }. Les ensembles T u de tâches affectées à l agent A u sont : T 1 = {1, 3}, T 2 = {2, 4, 6} and T 3 = {5, 7, 8}. Les sommets correspondant aux tâches frontières sont cerclés en gras sur la figure. Les intervalles de fin de réalisation doivent, outre être compatibles avec la durée maximale de l ordonnancement (i.e., C i D pour tout i F), satisfaire également l ensemble des objectifs locaux des agents. Dans cet article, nous supposons que la satisfaction interne d un agent est liée à deux notions intrinsèques à l agent : son stress et le risque d incohérence. Nous explicitons ces deux notions dans les paragraphes suivants. Le stress S u d un agent A u est une caractéristique interne à son organisation. Plus l organisation est flexible, plus l agent a du temps pour réaliser ses tâches, et moins l agent sera stressé. Inversement, plus les marges de réalisation se resserrent, plus l organisation de l agent est fragile, et plus l agent sera dit stressé. Plus loin, nous proposons une façon de mesurer le stress d un agent basée sur la flexibilité temporelle propre à cet agent. Le risque d incohérence caractérise l insensibilité de l organisation interne d un agent aux fluctuations de son environnement. En pratique, lorsqu un agent A u cherche à déterminer les dates de fin au plus tôt C j de ses tâches, il peut systématiquement supposer que ses agents amont finiront leurs tâches frontières au plus tard (i.e., l inégalité (1) est respectée). Les valeurs des C j trouvées par A u seront alors robustes aux fluctuations de performance de ses agents amont (dans la mesure où ceux-ci respectent les intervalles contractés). C j C i + p j, (i j) P i / T u j T u (1) On remarque que cette stratégie est pessimiste car elle suppose que les agents finiront systématiquement leurs tâches à leur date de fin au pire. Cela conduit de plus à augmenter les dates de fin au plus tard annoncées à son tour par l agent A u à ses agents aval. C est pourquoi nous supposons ici que A u a le droit d anticiper s il le souhaite la fin de réalisation au pire d une tâche frontière i, réalisée par A v (v u), d une valeur i. On peut donc remplacer l inégalité (1) par (2). Ici, un risque d incohérence apparaît dans la mesure où A u peut prévoir de commencer j avant que i soit réellement finie, ce qui violerait alors la contrainte de précédence. C j C i i + p j, (i j) P i / T u j T u (2) La variable i [0, C i C i ] permet à A u de régler l anticipation comme il le souhaite. Plus i est grand, et plus A u fait confiance à A v pour finir i avant la date limite annoncée C i, et plus aussi le risque d incohérence est grand. Inversement, plus i est petit, plus le risque d incohérence est réduit, et plus A u se protège contre une mauvaise performance de A v. Dans cet article, le risque d incohérence choisi par A u est noté R u et est défini par l équation (3). R u = max {(i j) P i/ T u j T u} i (3) La satisfaction de l agent A u peut donc être exprimée par le désir de minimiser les critères S u et R u, ceux-ci étant antagonistes. En outre, pour inciter les agents à favoriser un comportement coopératif sur une tendance naturellement égoïste, nous introduisons deux objectifs sociaux (ou globaux) supplémentaires : la minimisation de max (u,v) A 2(S v S u ) et de max (u,v) A 2(R v R u ). On remarque donc que, dans la situation où le stress et le risque d incohérence sont également partagés entre les agents, les objectifs globaux sont optimaux (égaux à 0). Sous ces hypothèses, un ordonnancement multi-agent est un problème d optimisation multi-objectif dans lequel on cherche à déterminer pour chaque tâche frontière un intervalle de fin de réalisation [C i, C i ] de sorte que : les objectifs S u, R u, A u A, max (u,v) A 2(S v S u ) et max (u,v) A 2(R v R u ) soient minimisés ; C i D, i F ; il existe un ordonnancement réalisable pour tout agent (i.e., satisfaisant les contraintes de ressource et de temps) tel que la date fin de réalisation C i de toute tâche i soit incluse dans [C i, C i ]. Dans cet article, on s intéresse au problème job shop multi-agent où chaque agent est associé à une machine et gère l ensemble des tâches devant être exécutées sur cette machine. Nous proposons en particulier un algorithme distribué où l ordonnancement est

construit par coopération entre les agents, cette coopération mettant explicitement en jeu les concepts de stress et de risque d incohérence précédemment définis. L article est organisé comme suit. La partie suivante dresse un petit tour d horizon de la problématique d ordonnancement avec agents. La partie 3 formalise mathématiquement le problème job shop multi-agent. Les trois dernières parties décrivent le schéma de coopération proposé, l algorithme distribué adopté et les méthodes permettant de résoudre les problèmes de décision induits au niveau de chaque agent. 2 ORDONNANCEMENT EN PRÉSENCE D AGENTS : UN PETIT TOUR D HORI- ZON Tout problème d ordonnancement de tâche impliquant plusieurs acteurs, possédant chacun leur autonomie décisionnelle, chacun en charge de l exécution d un sous-ensemble de tâches, peut être assimilé à un problème d ordonnancement multi-agent. Dans ce type d organisation, un élément important est le caractère confidentiel des données que chaque agent manipule : seulement un ensemble restreint d information, suffisant à la coordination des agents, est partagé entre les acteurs. Parmi les modes de coordination courants, on distingue celui où les acteurs se communiquent des propositions de dates de fin pour les tâches que chacun gère, ces valeurs étant négociées jusqu à ce qu un compromis satisfaisant l ensemble des acteurs soit atteint. Pour éviter une remise en cause trop fréquente des décisions, les acteurs peuvent se communiquer des intervalles (au lieu de date fixe) dans lesquels ils s engagent à finir la tâche, ces intervalles pouvant s affiner dans le temps au fur et à mesure que l imminence de la fin de la tâche s approche (Dudek et Stadtler 2004, Despontin et. al. 2005, Portmann et Mouloua 2007). Une fois les intervalles de fin de réalisation établis, les acteurs sont libres de s organiser comme ils l entendent, du moment qu ils garantissent l achèvement des tâches dans les intervalles contractés. Ils peuvent également, pour anticiper ou pour palier une situation d incohérence, amorcer une renégociation des intervalles dans le but de les affiner ou de les déplacer. En ordonnancement, la notion d agent a souvent été au cœur de méthodes de résolution distribuée, basées sur le paradigme des Systèmes Multi-Agents (SMA) (Ferber 1999). Dans le domaine de l ordonnancement d atelier, des approches heuristiques, basées SMA, sont proposées (Saad et. al. 1997, Archimede et Coudert 1999) pour générer un ordonnancement réalisable : les agents, associés aux tâches, négocient leur intervalles d exécution avec des agents ressources, un agent superviseur permettant d arbitrer les situations conflictuelles. On trouve également des approches SMA en ordonnancement multi-projets (Confessore et. al. 2007, Homberger 2007) où les agents, associées aux projets, se partagent la capacité des ressources, en étant guidés par un agent médiateur. Les travaux précédents doivent cependant être distingués de la problématique d ordonnancement multiagent, telle que définie dans la partie précédente. En effet, nous nous intéressons ici davantage à la problématique d optimisation multi-objectif que la notion d agent introduit, qu à la nature distribuée, basée SMA, d une méthode de résolution. Cette problématique d ordonnancement multi-agent, est introduite dans les travaux de (Agnetis et. al. 2000, Agnetis et. al. 2004) dans lesquels les auteurs considèrent un problème job shop où deux agents, détenant chacun un sous-ensemble de travaux, sont en compétition pour l utilisation des machines, chacun tentant d optimiser sa fonction objectif propre (la différence entre les fonctions objectifs étant ɛ-contrainte). Plusieurs articles (Agnetis et. al. 2009, Cheng et. al. 2006, Cheng et. al. 2008) s intéressent au cas où l atelier est réduit à une machine (avec deux ou plusieurs agents) et proposent des résultats de complexité ainsi que des méthodes exactes, considérant des critères variés tels que le makespan, le retard algébrique ou le nombre pondéré de tâches en retard. D autres travaux concernent l ordonnancement de grille de calcul où les agents, correspondant chacun à un cluster de calcul, négocient les travaux qu ils prennent en charge, les travaux pouvant par ailleurs être eux mêmes affectés à des agents (voir par exemple (Pascual et. al. 2009) pour une approche récente). Ainsi que proposé dans la partie précédente, de nombreux auteurs considèrent également une fonction objectif globale, aussi appelée objectif social, que les agents doivent optimiser. Des concepts importants, reliés à la théorie des jeux non coopératifs, peuvent alors être définis comme le prix de l anarchie (Koutsoupias et Papadimitriou 1999) (rapport entre le pire équilibre de Nash et la valeur optimale de la fonction objectif globale) ou le prix de la stabilité (Angel et. al. 2006) (rapport entre le meilleur équilibre de Nash et la valeur optimale de la fonction objectif globale). Dans cet article, nous traitons du cas particulier du job shop multi-agent où les tâches sont associées aux agents en fonction de la machine que chaque tâche utilise. Nous formalisons ce problème et montrons comment déterminer une solution en adoptant un démarche distribuée où les agents négocient entre eux les fenêtres de fin de réalisation des travaux. Ce travail est le prolongement du travail amorcé dans (Briand et. al. 2008).

3 LE JOB SHOP MULTI-AGENT On considère un problème job shop à m machines où un ensemble J de n travaux doivent être ordonnancés. Un travail compte autant de tâches qu il y a de machines dans l atelier, l ordre de passage sur les machines étant défini par la gamme opératoire du travail, supposée différente d un travail à l autre. La ième tâche du travail j est notée (j, i) ((j, i 1) précède donc (j, i)) et s exécute pendant un temps p j,i sur la machine m j,i. On suppose qu un intervalle d échéance [C j,m+1, C j,m+1 ] est associé à chaque travail j, où (j, m + 1) est une opération fictive de durée nulle. Un agent étant associé à chaque machine et gérant l ensemble des tâches devant être exécutées sur cette machine, on a T u = {(j, i) T m j,i = u}. Clairement, il n existe pas de contraintes de précédence entre les tâches affectées au même agent. De plus, toute tâche est nécessairement frontière (i.e., T = F). Le problème job shop est NP-difficile (Lenstra et. al. 1977) et donc également le problème job shop multi-agent. Si on s intéresse au problème à résoudre au niveau de chaque agent A u, les fenêtres d achèvement des tâches frontières étant déterminées, il s agit d un problème à une machine avec fenêtres de lancement et fenêtres d échéance où l on recherche un séquencement réalisable des travaux sur la machine. Ce problème est NP-complet en tant que généralisation du problème à une machine avec date de lancement r j et date d échéance d j, lui même NP-complet (Lenstra et. al. 1977). Les variables de décision du job shop multi-agent sont relatives à chaque tâche (j, i). Il s agit de : C j,i, C j,i, C j,i, r j,i, d j,i et j,i où : [C j,i, C j,i ] est l intervalle de fin de réalisation contracté entre l agent réalisant (j, i) et l agent réalisant (j, i + 1), C j,i est la date de fin de (j, i), [r j,i, d j,i ] est l intervalle d exécution de (j, i) choisie par A u ((j, i) T u ) et j,i indique de combien d unités de temps l agent gérant l exécution de (j, i + 1) anticipe la fin de (j, i). Comme indiqué dans la première partie, on désire minimiser le risque d incohérence et le stress de l ensemble des agents. Le risque d incohérence est toujours évalué comme indiqué dans la formule (3), i.e., R u = max {(j,i) Tu } j,i. Nous supposons que le stress S u de l agent A u est inversement proportionnel à sa flexibilité temporelle F u et que, minimiser S u, est équivalent à maximiser F u. Dans la partie 6, une mesure de F u est proposée qui utilise la notion de retard algébrique. Le problème job shop multi-agent que nous considérons peut être formalisé comme le problème multiobjectif suivant : max{f u }, A u A min{r u }, A u A min{max(f u F v )}, (A u, A v ) A 2 min{max(r u R v )}, (A u, A v ) A 2 s.c. r j,i C j,i 1 j,i 1, (j, i) T (5) j,i 1 C j,i 1 C j,i 1, (j, i 1) T (6) d j,i C j,i, (j, i) T (7) C j,i C j,m+1, j J (8) C j,i d j,i, (j, i) T (9) C j,i r j,i + p j,i, (j, i) T (10) (j, i) (l, k) (l, k) (j, i), ((j, i), (l, k)) T 2 u A u A (11) Dans la formulation précédente, les contraintes (5)-(8) définissent les relations entre les variables C j,i, C j,i, r j,i, d j,i et j,i. La contrainte (5) impose que la date de lancement de la tâche (j, i) soit compatible avec la date d achèvement au pire de (i, j 1), à j,i 1 près (la valeur maximale de j,i 1 étant limitée par la contrainte (6)). Les contraintes de type (7) imposent que les dates échues des tâches soient antérieures à leur date de fin au pire, ces dernières devant à leur tour être compatible avec la date de fin des travaux (contrainte (8)). Les contraintes (9)-(11) stipulent que les valeurs choisies pour les fenêtres d exécution [r j,i, d j,i ] des taches gérées par un même agent A u garantissent l existence d une solution réalisable pour le problème à une machine induit sur cet agent. La contrainte (11) est disjonctive et garantit que l ordonnancement local de chaque agent correspond bien à une séquence, une précédence devant être choisie entre chaque paire de tâche gérée par l agent. À ce stade, nous remarquons que l introduction de fenêtres d exécution [r j,i, d j,i ] pour chaque tâche n est pas nécessaire puisque nous pourrions simplement remplacer les contraintes (9) et (10) par la contrainte C j,i C j,i C j,i. Cependant, ainsi que cela sera précisé dans la partie 6, l introduction de fenêtre d exécution permet de caractériser au niveau de chaque agent un ensemble flexible de solutions (et non pas une solution unique), cette flexibilité étant précieuse pour permettre à un agent de s adapter aux incertitudes émanant de son environnement. Pour finir, dans la fonction objectif de la formulation précédente, nous distinguons deux catégories d objectifs : les objectifs locaux (F u et R u ) et les objectifs globaux qui visent à minimiser les disparités entre les agents de sorte à ce que la solution soit la plus équi-

table possible. 4 UN SCHÉMA DE COOPÉRATION Comme dans (Despontin et. al. 2005) et (Briand et. al. 2008), on suppose que l ordonnancement est construit de façon distribuée et dynamique, par coopération entre les agents. Dans ce cadre, la prise en compte d objectif globaux devient délicate puisqu il n existe pas d agent superviseur habilité à orienter les décision des agents de sorte à optimiser les objectifs globaux. Cependant, nous verrons comment les prendre en compte de façon indirecte, en imposant certaines règles de comportement au sein de chaque agent, cela en vue de favoriser un comportement collectif équitable. Nous considérons que les différentes fonctions inhérentes à la coopération sont la négociation, la coordination et la renégociation. Un processus de négociation est initié lorsqu un agent demande à un autre agent amont, de réaliser une nouvelle tâche sur un produit, correspondant à l opération précédente au sens de la gamme. Une telle situation se produit au moment de l arrivée d un nouveau travail dans le système, ce qui nécessite de définir des fenêtres d achèvement pour toutes les tâches du nouveau travail. La prise en charge d un nouveau travail j est initialement sollicitée par un agent client et correspond donc à l occurrence d une nouvelle commande pour un produit donné, à laquelle est associé un délai de livraison [D j, D j ] = [C j,m+1, C j,m+1 ]. Au cours des négociations menées lors de l insertion de nouvelles tâches, il peut s avérer pertinent, pour améliorer la performance globale, de négocier à nouveau certains intervalles de tâches existantes. On parle alors de renégociation. Notons qu une renégociation peut également avoir lieu si, suite à un aléa (interne à un agent), la date d achèvement d une tâche devient incohérente avec l intervalle contracté. Le processus de renégociation a alors pour but de recouvrer la cohérence. Négociation et renégociation sont réalisées par échange de requêtes entre paire d agents. L agent A u, prenant en charge la tâche (j, i+1), initie vers l agent A v, assurant la réalisation de (j, i), une proposition d intervalle [C j,i, C j,i ], appelé intervalle cible. Nous supposons alors que A v émet en retour une réponse précisant le meilleur [C j,i, C j,i] que A v est capable d assurer, étant données les valeurs courantes de F u, F v, R u et R v. Pour la détermination de [C j,i, C j,i], l agent A v peut être amené à renégocier avec certains de ses agents amonts des intervalles d achèvement d autres tâches. Il propose alors à son tour des nouveaux intervalles cibles d achèvement vers ses agents amonts, ceux-ci devant eux-mêmes déterminer une réponse la meilleure possible. Lorsque A v détermine l intervalle [C j,i, C j,i], en réponse à une proposition de A u, on suppose qu il a fait de son mieux et que cet intervalle devient ferme pour A u. Ce dernier n a donc pas la possibilité de le renégocier, du moins pas tant que son état interne n aura pas évolué (modification de S u, R u ou T u ). On remarque également que lors de l élaboration de la réponse de A v à une sollicitation de A u, les intervalles d achèvement de l ensemble des tâches de T v sont susceptibles d être modifiés. Ces modifications doivent naturellement être transmises aux agents en aval de A v (et différents de A u ), ceux-ci devant à leur tour adapter leur organisation. En dehors de ces phases de négociation et renégociation, on suppose que les agents se coordonnent en se communiquant les valeurs des dates de lancement et d échéance de leurs tâches, r j,i et d j,i, que chacun se fixe. Ces échanges peuvent se faire périodiquement ou de façon asynchrone, à l occurrence de modifications. Lorsqu un agent reçoit un message d information, il doit vérifier que son organisation reste cohérente. On distingue donc quatre types de message interagent : message R : Un agent initiateur formule une requête à un agent amont pour avoir le droit de commencer une tâche (j, i), déjà existante ou nouvelle, plus tôt que prévu (i.e., r j,i < C j,i 1 ) : il stipule pour cela un intervalle de livraison cible [C j,i 1, C j,i 1 ] (l agent initiateur peut éventuellement être l agent client lorsqu il s agit d un nouveau travail à prendre en charge) ; message A : Un agent répond à la précédente requête d un agent aval en indiquant un intervalle [C j,i, C j,i], correspondant à ce qu il peut faire de mieux ; message I : Si, après traitement d une requête par un agent, certaines tâches existantes voient une modification de leur d j,i ou leur r j,i, sans que cela entraîne une incohérence (i.e., d j,i C j,i et r j,i C i,j 1 ), on en informe les agents aval (r j,i ) ou amont (d j,i ) ; message D : Si d j,i a changé mais qu une incohérence est détectée d j,i > C j,i, on informe les agents aval en définissant un nouvel intervalle cohérent [C j,i, C j,i]. La notion de processus de négociation est importante car les messages ci-dessus, hormis ceux de type I, sont chacun liés à un processus distinct. Nous supposons que les attributs suivants caractérisent un processus : son identifiant id, l identifiant du processus source s l ayant initié et, s il y a lieu, la tâche (j, i) dont l intervalle de fin est négocié. Chacun des quatre messages

décrits plus haut portera donc les attributs du processus auquel il est rattaché, ainsi que trois attributs supplémentaires identifiant : le numéro e de l agent émetteur du message, l opération (j, i) pour laquelle l intervalle de fin de réalisation [C j,i, C j,i ] (messages R, A et D), ou la date d échéance d ji (message I), sont proposés. Figure 2 Diagramme de séquences illustrant un processus de négociation En résumé, l émission d une requête d intervalle cible [C j,i, C j,i ] par un agent induit tout d abord une phase de négociation amont (les requêtes se propagent de proche en proche, en amont dans le réseau d agents). Ceci est illustré sur le diagramme de séquences de la figure 2 : en réponse à la requête de A y, concernant l intervalle de fin de la tâche (j, i), A u décide d émettre des requêtes vers ses propres agents amont concernant les intervalles de la tâche (j, i 1) (réalisée par A x ) et d une autre tâche, (k, l), réalisée par A w. Lors de cette phase, les agents tentent d absorber la modification de l intervalle de fin de l opération (j, i), sans modifier les dates d achèvement au pire des autres tâches existantes, cela en conservant un certain niveau de flexibilité et de cohérence (cet aspect est décrit dans la partie 6). Une fois cette phase achevée, s il n était pas possible d absorber la nouvelle tâche sans augmenter certaines dates d achèvement au pire de tâches existantes, une propagation en aval des retards se produit jusqu à retrouver une état cohérent. Cette phase de propagation aval est également illustrée sur la figure 2 : A w, en réponse à la requête de A u concernant la tâche (k, l), est contraint de retarder la fenêtre d exécution de la tâche (a, b), prise en charge par A z. La même situation apparaît lorsque A u, en réponse à la requête de A y, retarde la fin de réalisation de la tâche (c, d), gérée par A z. Cependant, dans cette situation, on constate que A z, ne pouvant plus assurer ses engagements de délais, initie une nouvelle phase de négociation amont avec A x concernant la tâche (s, t). 5 COMPORTEMENT D UN AGENT Algorithm 1 Comportement d un agent A u 1: repeat 2: msg Getmsg() ; 3: if msg Null then 4: if msg.type = R msg.type = D then 5: Check true ; 6: p CreateProcess(u) ; 7: if msg.type = R then 8: p.s msg.s ; 9: p.(j, i) msg.(j, i) ; 10: else 11: p.s p.id ; 12: end if 13: else if msg.type = A then 14: p SearchProcess(msg.s) ; 15: AddAnswer(p, msg) ; 16: UpdateConstraint(msg.(j, i), msg.[c] ) ; 17: Check AnswerEnd(p) ; 18: end if 19: if Check then 20: BackwardSolve(p, state, U) ; 21: if state Infeasible U then 22: for all (j, i) U do 23: Send(R, p.id, p.s, u, (j, i 1), [C]) ; 24: AddRequest(p.id, (j, i 1), [C]) ; 25: AddExtraConstraint((j, i), [C]) ; 26: end for 27: else 28: RemoveExtraConstraints(p.id) ; 29: ForwardSolve(p, U) ; 30: for all (j, i) T u do 31: if p.s p.id then 32: Send(A, p.id, p.s, u, p.(j, i), [C] ) ; 33: else if (j, i) U then 34: UpdateConstraint((j, i), [C j,i ]) ; 35: Send(D, p.id, p.s, u, (j, i), [C] ) ; 36: end if 37: end for 38: RemoveProcess(p) ; 39: end if 40: end if 41: end if 42: until F alse Dans cette partie, nous décrivons le comportement d un agent par l algorithme 1. Le diagramme de séquences de la figure 2 illustre une partie de son fonctionnement. Cet algorithme est non bloquant. Il décrit le comportement d un agent lorsqu il reçoit des messages de

type R, A ou D. Pour ne pas surcharger l algorithme, nous avons volontairement ici négliger la gestion des messages purement informatifs (de type I) qui permettent la coordination des agents. Comme dit plus haut, ces messages sont émis par un agent soit de façon périodique, soit de façon asynchrone, lorsque, lors des négociations, les valeurs des d j,i ou des r j,i des tâches qu il prend en charge sont modifiées, sans que cela entraîne une incohérence (i.e., d j,i C j,i et r j,i C i,j 1 ). À la réception d un message de type I, un agent doit vérifier que son état reste cohérent (utilisation de la procédure BackwardSolve) et si, tel n est pas le cas, engager une renégociation des intervalles caractéristiques de ses tâches. Si un nouveau message est reçu (ligne 3), deux cas sont distingués selon si le message est de type R ou D (ligne 4) ou alors de type A (ligne 13). Dans le premier cas les lignes 4-12 de l algorithme décrivent les traitements faits. Tout d abord, la variable Check est mise à vrai car l agent va devoir vérifier la cohérence de son état. Un nouveau processus de négociation p est ensuite créé. Pour un message de type R, on considère que l initiateur p.s du processus est l agent ayant émis la requête et on mémorise dans p.(j, i) la tâche msg.(j, i) pour laquelle il faudra produire une réponse. Pour un message de type D, l initiateur du processus est l agent lui même, i.e., p.s p.id. Dans le cas où le message reçu est de type A (lignes 13 à 18), il s agit de la réponse à une requête que A u avait précédemment émise dans le cadre d un processus de négociation précédent. Dans ce cas, la procédure SearchProcess est appelée pour retrouver le processus correspondant parmi les processus actifs. On ajoute ensuite le message à la liste des réponses déjà reçues (procédure AddAnswer) par le processus. Dans le cas où toutes les réponses correspondant aux requêtes précédemment émises en amont ont été reçues (i.e., AnswerEnd(p)= T rue), A u va de nouveau pouvoir vérifier la cohérence de son état (et émettre si nécessaire de nouvelles requêtes). La vérification de la cohérence de l agent correspond aux lignes 19-40 de l algorithme. Cette vérification se fait en deux phases : une phase de négociation amont et une phase de propagation aval. Lors de la première phase, la procédure BackwardSolve est appelée (son fonctionnement est décrit dans la partie 6). Cette procédure établit la liste U des tâches (j, i) pour lesquelles des requêtes de modification des intervalles de fin de réalisation [C j,i 1, C j,i 1 ] doivent être envoyées aux agents amont. L envoi des requêtes est réalisé aux lignes 22-26. Pour chaque envoi, on mémorise la requête dans la liste des requêtes en cours attachée au processus (appel à AddRequest) et on impose de façon temporaire que, dans les négociations futures, l intervalle de fin de réalisation demandé à l agent amont soit respecté (appel à AddExtraConstraint). Cette précaution est nécessaire pour éviter une situation instable où l agent referait, au cours d une autre négociation, une requête pour la même tâche, avec un intervalle de fin de réalisation différent, alors qu il n a pas encore reçu la réponse à sa requête précédente. La procédure BackwardSolve doit donc permettre de respecter les intervalles de fin de réalisation de certaines tâches amont (celles pour lesquelles des requêtes sont en cours de traitement) mais est libre de violer les intervalles des autres tâches. La phase de propagation aval est amorcée lorsque la procédure BackwardSolve ne trouve pas de solution (state = inf easible) ou lorsque la liste U est vide. Dans le premier cas, il n est plus possible de continuer à négocier en amont en respectant les contraintes temporaires et les contraintes de positivité des variables de décision. Dans le second cas, il n est plus nécessaire de négocier en amont puisque l on respecte les intervalles de fin de réalisation de toutes les tâches amont. Dans les deux cas, après avoir préalablement levé les contraintes temporaires portant sur les intervalles de fin de réalisation amont (appel à RemoveExtraConstraints), la procédure ForwardSolve est appelée (cf. partie 6). Celle-ci établit la liste U des tâches (j, i) pour lesquelles des retards sur les intervalles de fin de réalisation [C j,i, C j,i ] doivent être signalés auprès des agents aval. L envoi des messages de retard est réalisé aux lignes 33-35 et on mémorise les valeurs des nouveaux intervalles. Si le processus p a été amorcé dans le cadre d une requête d un agent amont (p.s p.id) concernant la tâche p.(j, i), on envoie à cet agent la réponse à sa requête. Une fois la propagation aval achevée, le processus p peut alors être détruit (ligne 38). On remarque que cet algorithme autorise d avoir plusieurs processus de négociation en cours au niveau d un même agent. En effet, les valeurs des intervalles de fin de réalisation indiquées dans les requêtes en amont étant provisoirement imposées pour les futures négociations, on est sûr que les prochaines requêtes émises par l agent seront compatibles avec celles déjà émises. Cependant, les décisions seront dépendantes de l ordre de traitement des requêtes reçues. On peut également affirmer que l algorithme converge nécessairement vers une solution. En effet, les intervalles de fin de réalisation étant progressivement gelés lors de la négociation amont, on est sûr qu à un moment donné l état où (state = Infeasible U = ) sera atteint. Or, dans ce cas la négociation amont s achève et on passe dans une phase où les décisions sont imposées vers l aval sans possibilité de recours.

6 AJUSTEMENT DU RISQUE D INCOHÉ- RENCE ET DE LA FLEXIBILITÉ DE A u Dans cette partie, nous décrivons plus précisément le fonctionnement des procédures BackwardSolve et ForwardSolve. Nous expliquons également comment sont gérés la flexibilité et le risque d incohérence au sein de l agent A u. Nous supposons que l ordonnancement local réalisé par chaque agent est un ordonnancement robuste basé sur la caractérisation d un ensemble de solutions. En effet, dans le cas du job shop multi-agent, disposer d un ensemble robuste de solutions au niveau de chaque agent est souhaitable pour permettre de s adapter, non seulement aux aléas internes à l agent (variation des durées opératoires), mais aussi et surtout à ceux émanant de son environnement (variation des dates de fin des tâches sur les agents amont). On utilise pour cela la technique proposée dans (Briand et. al. 2007) pour le problème à une machine qui, étant donné un ordre total entre les r j,i et d j,i des tâches, fournit un ensemble de solutions dominantes dont le retard algébrique au pire peut être calculé en temps polynomial. La propriété de dominance permet d assurer que, quelles que soient les valeurs effectives de r j,i et d j,i respectant l ordre total choisi, et quelles ques soient les réalisations des durées opératoires, l ensemble des solutions contient nécessairement une solution optimale minimisant le retard algébrique L max = max {(j,i) Tu }(C j,i d j,i ). La performance au mieux de l ensemble de solutions caractérisées peut donc être considérée robuste vis-àvis d un grand ensemble de scénarios de réalisation. De plus, une procédure arborescente est également proposée dans (Briand et. al. 2007) qui permet d affiner les valeurs des r j,i et d j,i de sorte à éliminer de l ensemble des solutions celles les moins bonnes vis-à-vis du retard algébrique (on améliore ainsi la performance au pire de l ensemble de solutions). Pour pouvoir utiliser cette technique dans le cadre du job shop multi-agent et être capable de calculer le pire retard algébrique pour un agent A u, A u A, il est nécessaire de connaître les valeurs de r j,i et d j,i des tâches de A u. Dans notre cas, ces valeurs doivent être choisies à l intérieur des intervalles de fin de réalisation des tâches contractés avec les agents amont et aval de A u, i.e., r j,i [C j,i 1, C j,i 1 ] et d j,i [C j,i, C j,i ]. De plus, lorsque les agents se coordonnent, les agents amont communiquent à A u les valeurs courantes des d j,i 1 et, en aval, les valeurs des r j,i+1 sont également transmises. Ces valeurs étant nécessairement cohérentes avec les intervalles contractés, on a d j,i 1 [C j,i 1, C j,i 1 ] et r j,i+1 [C j,i, C j,i ]. On peut donc restreindre davantage les domaines de valeur de r j,i et d j,i puisque, pour assurer le respect des gammes opératoires, il faut que r j,i [d j,i 1, C j,i 1 ] et d j,i [C j,i, r j,i+1 ]. Le choix des valeurs de r j,i et d j,i doit être relié à la notion de risque d incohérence proposée dans la partie 1. En effet, plus r j,i sera proche de d j,i 1 et plus le risque d incohérence sera grand puisque A u sera sensible à une détérioration du délai d j,i 1. Inversement, plus r j,i sera proche de C j,i 1 et moins le risque d incohérence sera grand puisque l agent réalisant la tâche (j, i 1) évitera autant qu il peut de violer la valeur C j,i 1 contractée. De façon similaire, le risque est maximal lorsque la valeur d j,i est proche de r j,i+1 et minimal lorsqu elle se rapproche de C j,i. Ici, par analogie avec les comportements constatés dans la pratique, nous proposons de dimensionner le risque d incohérence en fonction du temps, de sorte à ce que, plus l instant courant sera éloigné de la fenêtre de réalisation d une tâche, et plus l agent pourra choisir un risque d incohérence important pour cette tâche. Inversement, plus l exécution de la tâche deviendra imminente et plus le risque acceptable sera faible. Pour cela, nous proposons de faire varier linéairement en fonction du temps les valeurs de r j,i et d j,i selon les formules suivantes : { rj,i = C j,i 1 ε r j,i (C j,i 1 d j,i 1 ) d j,i = C j,i + ε d j,i (r j,i+1 C j,i ) (12) où ε r j,i (resp. εd j,i ) varie progressivement de 1 (risque d incohérence fort) vers 0 (risque d incohérence faible) au fur et à mesure que l instant courant t devient proche de C j,i 1 (resp. de C j,i ). Revenons à présent à la description des procédures BackwardSolve et ForwardSolve. Nous supposons que ces deux procédures déterminent préalablement les valeurs des r j,i et d j,i des tâches de A u selon la formule (12) : ainsi, selon l instant où ces procédures sont appelées, les valeurs choisies des r j,i et d j,i varient (en devenant de moins en moins risquées). Les deux procédures utilisent ensuite la méthode de séparation et évaluation décrite dans (Briand et. al. 2007) pour déterminer un retard algébrique maximal L max j,i pour chaque tâche (j, i) de sorte à ce que L max j,i L u, L u < 0 étant le plus grand retard algébrique admissible par A u. C est cette valeur de L u que nous utilisons pour mesurer la flexibilité F u d un agent, en posant F u = L u. Plus la valeur de F u est grande et plus la marge disponible dans le pire des cas pour réaliser les opérations est importante. La procédure BackwardSolve travaille à d j,i constant (on essaie de respecter les intervalles de fin des tâches) et détermine quels doivent être les intervalles de fin des tâches amont permettant de satisfaire les d j,i, en maintenant un niveau de flexibilité F u. Lors de ce calcul, si L max j,i r j,i d j,i 1, alors il est possible d achever (j, i) dans les délais impartis, sans remettre

en cause l intervalle de fin de la tâche (j, i 1). Sinon, on peut déduire que la tâche (j, i) appartient à l ensemble U des tâches en retard (voir algorithme 1) pour lesquelles il va falloir renégocier l intervalle de fin de la tâche amont. On peut par exemple proposer la valeur [C j,i 1, C j,i 1 ] = [r j,i L max j,i, d j,i pj, i]. De façon inverse, la procédure ForwardSolve travaille à r j,i constant et détermine quels doivent être les intervalles de fin des tâches gérées par A u, étant données les valeurs de r j,i, cela en maintenant un niveau de flexibilité F u. Lors de ce calcul, si L max j,i r j,i+1 d j,i, alors il est possible d achever (j, i) dans les délais impartis, sans remettre en cause l intervalle de fin de la tâche (j, i). Sinon, on peut déduire que la tâche (j, i) appartient à l ensemble U des tâches en retard (voir algorithme 1) pour lesquelles il va falloir signaler aux agents aval un retard (message de type D). On peut par exemple propager le nouvel intervalle de fin [C j,i 1, C j,i 1] = [r j,i + pj, i, d j,i + L max j,i ]. On note que la valeur de F u est propre à l agent A u. Afin d éviter des situations de trop grande disparité entre les valeurs de flexibilité, il est nécessaire de définir des règles quant à l évaluation de cette constante. Par exemple, lorsque A u répond à une requête d un agent aval A v, on peut imposer que F u F v. Une telle règle favorise les comportements coopératifs dans la mesure où, suite à une sollicitation de A v, A u peut accepter de perdre de la flexibilité dans la limite où celle-ci ne deviendrait pas inférieure à celle de A v (on peut éventuellement tolérer un petit dépassement). On incite donc les acteurs à adopter un comportement équitable où les valeurs de flexibilité seraient également partagées. CONCLUSION Dans cet article, le problème job shop multi-agent a été décrit et formalisé mathématiquement, sous forme d un problème d optimisation multi-objectif. On distingue des objectifs locaux et des objectifs globaux. Les objectifs locaux visent à minimiser le stress de chaque agent et le risque d incohérence. Les objectifs globaux visent à favoriser les solutions où stress et risque d incohérence sont équitablement partagés entre les agents. Pour résoudre ce problème, une méthode distribuée a été proposée où les agents négocient en amont les intervalles de fin des tâches qu ils gèrent et se synchronisent. Dans cette méthode, les agents communiquent par message de façon asynchrone, quatre types de message étant distingués. L algorithme régissant le comportement de chaque agent a été décrit et les méthodes locales permettant de résoudre les problèmes de décisions ont été également explicitées. La méthode est actuellement en cours d implémentation et les résultats seront décrits lors de la conférence. Une autre méthode permettant de résoudre le problème de façon centralisée (et optimale en imposant des contraintes sur les valeurs de certains objectifs) est également en cours d étude. L objectif est de comparer les performances obtenues dans les cas distribué et centralisé. REMERCIEMENTS Ce travail a été réalisé dans le cadre du projet ANR Blanc no. 08-BLAN-0331-01 nommé ROBOCOOP (cf. http://robocoop.li.univ-tours.fr). REFERENCES Agnetis A., Mirchandani P. B., Pacciarelli D., Pacifici A., 2000, Nondominated schedules for a job-shop with two competing agents, Computational and Mathematical Organization Theory, 6(2), pp. 191-217. Agnetis A., Mirchandani P. B., Pacciarelli D., Pacifici A., 2004, Scheduling problems with two competing agents, Operations Research, 52(2), pp. 229-242. Agnetis A., de Pascale G., Pacciarelli D., 2009, A Lagrangian approach to single-machine scheduling problems with two competing agents, Journal of Scheduling, 12(4), pp. 401-415. Angel E, Bampis E, Pascual F, 2006, The price of approximate stability for a scheduling game problem, Proceedings of Euro-Par (Lecture Notes in Computer Science), Springer : Berlin. Archimede B., Coudert T., 2001, Reactive scheduling using a multi-agent model : the SCEP framework, Engineering Applications of Artificial Intelligence, 14, pp. 667-683. Briand C., La H.T., Erschler J., 2007, A robust approach for the single machine scheduling problem, Journal of Scheduling, 10(3), pp. 209-221. Briand C., Ourari S., Bouzouia B., 2008, A cooperative approach for job shop scheduling under uncertainties, International Conference on Collaborative Decision Making (CDM 08), Collaborative decision making : perspectives and challenges, vol 176, IOS Press, ISBN 978-1-58603-881-6, pp. 5-15. Cheng T. C. E., Ng C. T., Yuan J. J., 2006, Multiagent scheduling on a single machine to minimize total weighted number of tardy jobs, Theoretical Computer Science, 362, pp. 273-281. Cheng T. C. E., Ng C. T., Yuan J. J., 2006, Multiagent scheduling on a single machine with maxform criteria, European Journal of Operational Research, 188, pp. 603-609. Confessore G., Giordani S., Rismondo S., 2007, A Market-based Multi-Agent System Model for De-

centralized Multi-Project Scheduling, Annals of Operations Research, 150(1), pp. 115-135. Despontin E., Briand. C., Esquirol P., 2005, Aide à la décision pour une coopération interentreprise, Journal Européen des Systèmes Automatisés, 39, pp. 797-816. Dudek G., Stadtler H., 2004, Negotiation-based collaborative planning between supply chain partners, European Journal of Op-erational Research, 163, pp 668-687, 2004. Ferber J., 1999, Multi-Agent Systems : an Introduction to Distributed Artificial Intelligence, Addison-Wesley, Reading, MA. Homberger J., 2007, A Multi-agent System for the Decentralized Resource-constrained Multiproject Scheduling Problem, International Transactions in Operational Research, 14(6), pp. 565-589. Koutsoupias E., Papadimitriou C., 1999, Worst-case equilibria, in Proceedings of the 16th Annual Symposium on Theoretical Aspects of Computer Science, pp. 404-413. Lenstra, J.K., Rinnooy Kan A.H.G, Brucker P., 1977, Complexity of machine scheduling problems, Annals of Discrete Mathematics, 1, pp. 343-362. Pascual F., Rzadca K., Trystram D., 2009, Cooperation in Multi-Organization Scheduling, Concurrency and Computation : Practice and Experience, 21(7), pp. 905-921. Portmann M.-C, Mouloua Z., 2007, A window time negotiation approach at the scheduling level inside supply chains, 3rd Multid-isciplinary International Conference on Scheduling : Theory and Application, MISTA 07, Paris, 28-31 august, pp410-417. Saad, A., Kawamura, K., Biswas, G., 1997, Performance evaluation of Contract Net-based heterarchical scheduling for flexible manufacturing systems, International Journal of Automation and Soft Computing, special issue on Intelligent Manufacturing Planning andshopfloor Control, 3(3), pp. 229-248.