UN ALGORITHME COOP´ ERATIF POUR UN PROBL` EME D’ATELIER JOB SHOP MULTI-AGENT
C. BRIAND1,2, S. OURARI1,2,3 and B. BOUZOUIA3
1 CNRS ; LAAS ; 7 avenue du colonel Roche, F-31077 Toulouse, France
2Universit´e de Toulouse ; UPS, INSA, INP, ISAE ; LAAS ; F-31077 Toulouse, France
3CDTA, lotissement du 20 aoˆut 1956, Baba Hassen, Alger, Algeria [email protected], [email protected], [email protected]
R´ESUM´E : Cet article s’int´eresse au probl`eme d’ordonnancement de type job shop o`u, chaque machine ´etant associ´ee `a un agent ayant son autonomie d´ecisionnelle propre, il s’agit de d´eterminer une solution satisfaisant, d’une part, les objectifs locaux des agents et, d’autre part, un ensemble d’exigences globales, correspondant `a des r`egles de coop´eration adopt´ees collectivement. L’algorithme de r´esolution propos´e est de nature distribu´ee, les d´ecisions d’ordonnancement ´etant progressivement n´egoci´ees entre les acteurs. Il permet de s’adapter de fa¸con r´eactive `a l’´evolution de la production, tout en pr´eservant la flexibilit´e d´ecisionnelle de chaque agent et en limitant la fr´equence des n´egociations.
MOTS-CL´ES : job shop, ordonnancement multi-agent, coop´eration, flexibilit´e et robustesse, algorithme distribu´e.
1 INTRODUCTION
Dans un probl`eme d’ordonnancement multi-agent, l’ensembleT desntˆaches `a ordonnancer est distribu´e sur un ensemble A de m agents (m ≤n). De fa¸con classique, les tˆaches sont reli´ees entre elles par un en- sembleP de relations de pr´ec´edence, o`u (i≺j)∈ P indique que la tˆache idoit pr´ec´eder la tˆache j. Nous supposons en outre qu’une dur´ee totale maximale D est impos´ee pour la r´ealisation de la totalit´e des tˆaches.
Chaque agent est suppos´e avoir sa propre autonomie d´ecisionnelle et poss`ede sa ou ses propres fonctions objectifs. La difficult´e principale du probl`eme r´eside dans le fait que la connaissance de l’agent est res- treinte `a celle du seul sous ensemble de tˆaches qui lui est affect´e. Les agents se communiquent des in- formations n´ecessaires `a leur synchronisation. Ainsi, lorsque la tˆachej, affect´ee `a l’agentAu, a une relation de pr´ec´edence avec la tˆachei(i.e.,(i≺j)∈ P), affec- t´ee `a l’agent Av, nous imposons alors que l’agent Av
convienne avecAud’un intervalle de fin de r´ealisation [Ci, Ci] pouri, dans lequel il s’engage `a acheveri. La tˆache i est alors ditetˆache fronti`ereet Av est dit en amont deAu(Au est en aval deAv). Nous notonsF l’ensemble des tˆaches fronti`eres.
Dans l’intervalle [Ci, Ci] , la valeur Ci correspond `a la date de fin de i dans le meilleur des cas, lorsque Av se trouve dans la situation la plus favorable. La
valeurCi correspond `a la date de fin deidans le pire des cas, lorsqueAv´evolue dans un contexte perturb´e.
Eventuellement,´ Ci =Ci et la tˆachei doit alors ˆetre termin´ee `a une date fixe.
Le probl`eme d’ordonnancement multi-agent consid´er´e dans cet article consiste `a d´eterminer, pour chaque tˆache fronti`ere i, un intervalle de fin de r´ealisation [Ci, Ci] (n´egoci´e entre l’agent responsable de la r´ea- lisation de la tˆache et ses agents aval) de sorte `a ce que, d’une part, les intervalles communiqu´es soient coh´erents avec la dur´ee totale maximaleDet, d’autre part, que les objectifs locaux des agents soient globa- lement satisfaits. Nous revenons sur cette notion de satisfaction des agents dans la suite du texte.
Figure 1 – Un exemple de probl`eme d’ordonnance- ment multi-agent
Un probl`eme d’ordonnancement comportant n = 8 activit´es est repr´esent´e sur la figure 1 sous forme d’un graphe potentiels-tˆaches. Dans ce graphe, chaque sommet correspond `a une tˆache et chaque arc mod´e- lise une contrainte de pr´ec´edence entre deux tˆaches de T ={0, . . . ,9}. Les lignes pointill´ees indiquent l’affec-
tation des tˆaches aux agents. De fa¸con assez classique, les tˆaches 0 et 9 sont des tˆaches fictives, de dur´ee nulle, et correspondent respectivement au d´ebut de l’ordon- nancement et `a sa fin. Elles sont ´egalement associ´ees
`a deux agents fictifs, A0 et A4, pouvant respective- ment ˆetre assimil´es `a l’acteur d´ecidant du lancement de l’ordonnancement et au client final. Les tˆaches non fictives sont r´eparties sur un ensemble de trois agents A={A1, A2, A3}. Les ensembles Tu de tˆaches affec- t´ees `a l’agentAusont :T1={1,3},T2={2,4,6}and T3={5,7,8}. Les sommets correspondant aux tˆaches fronti`eres sont cercl´es en gras sur la figure.
Les intervalles de fin de r´ealisation doivent, outre ˆetre compatibles avec la dur´ee maximale de l’ordonnan- cement (i.e., Ci ≤ D pour tout i ∈ F), satisfaire
´egalement l’ensemble des objectifs locaux des agents.
Dans cet article, nous supposons que la satisfaction interne d’un agent est li´ee `a deux notions intrins`eques
`a l’agent : sonstress et lerisque d’incoh´erence. Nous explicitons ces deux notions dans les paragraphes sui- vants.
Le stress Su d’un agent Au est une caract´eristique interne `a son organisation. Plus l’organisation est flexible, plus l’agent a du temps pour r´ealiser ses tˆaches, et moins l’agent sera stress´e. Inversement, plus les marges de r´ealisation se resserrent, plus l’organi- sation de l’agent est fragile, et plus l’agent sera dit stress´e. Plus loin, nous proposons une fa¸con de mesu- rer le stress d’un agent bas´ee sur la flexibilit´e tempo- relle propre `a cet agent.
Le risque d’incoh´erence caract´erise l’insensibilit´e de l’organisation interne d’un agent aux fluctuations de son environnement. En pratique, lorsqu’un agent Au
cherche `a d´eterminer les dates de fin au plus tˆot Cj
de ses tˆaches, il peut syst´ematiquement supposer que ses agents amont finiront leurs tˆaches fronti`eres au plus tard (i.e., l’in´egalit´e (1) est respect´ee). Les va- leurs des Cj trouv´ees par Au seront alors robustes aux fluctuations de performance de ses agents amont (dans la mesure o`u ceux-ci respectent les intervalles contract´es).
Cj ≥ Ci+pj, ∀(i≺j)∈ P |i /∈ Tu∧j∈ Tu (1)
On remarque que cette strat´egie est pessimiste car elle suppose que les agents finiront syst´ematiquement leurs tˆaches `a leur date de fin au pire. Cela conduit de plus `a augmenter les dates de fin au plus tard annon- c´ees `a son tour par l’agentAu`a ses agents aval. C’est pourquoi nous supposons ici queAu a le droit d’anti- ciper s’il le souhaite la fin de r´ealisation au pire d’une tˆache fronti`erei, r´ealis´ee parAv(v6=u), d’une valeur
∆i. On peut donc remplacer l’in´egalit´e (1) par (2) .
Ici, un risque d’incoh´erence apparaˆıt dans la mesure o`u Au peut pr´evoir de commencer j avant que isoit r´eellement finie, ce qui violerait alors la contrainte de pr´ec´edence.
Cj ≥ Ci−∆i+pj, ∀(i≺j)∈ P |i /∈ Tu∧j∈ Tu
(2)
La variable ∆i ∈[0, Ci−Ci] permet `a Au de r´egler l’anticipation comme il le souhaite. Plus ∆iest grand, et plusAufait confiance `aAvpour finiriavant la date limite annonc´ee Ci, et plus aussi le risque d’incoh´e- rence est grand. Inversement, plus ∆i est petit, plus le risque d’incoh´erence est r´eduit, et plusAu se pro- t`ege contre une mauvaise performance de Av. Dans cet article, le risque d’incoh´erence choisi par Au est not´eRu et est d´efini par l’´equation (3).
Ru = max
{(i≺j)∈P|i /∈Tu∧j∈Tu}∆i (3)
La satisfaction de l’agentAupeut donc ˆetre exprim´ee par le d´esir de minimiser les crit`eresSuetRu, ceux-ci
´etant antagonistes.
En outre, pour inciter les agents `a favoriser un comportement coop´eratif sur une tendance naturel- lement ´ego¨ıste, nous introduisons deux objectifs so- ciaux (ou globaux) suppl´ementaires : la minimisation de max(u,v)∈A2(Sv−Su) et de max(u,v)∈A2(Rv−Ru).
On remarque donc que, dans la situation o`u le stress et le risque d’incoh´erence sont ´egalement partag´es entre les agents, les objectifs globaux sont optimaux (´egaux `a 0).
Sous ces hypoth`eses, un ordonnancement multi-agent est un probl`eme d’optimisation multi-objectif dans le- quel on cherche `a d´eterminer pour chaque tˆache fron- ti`ere un intervalle de fin de r´ealisation [Ci, Ci] de sorte que :
• les objectifsSu,Ru,∀Au∈ A, max(u,v)∈A2(Sv− Su) et max(u,v)∈A2(Rv−Ru) soient minimis´es ;
• Ci≤D,∀i∈ F;
• il existe un ordonnancement r´ealisable pour tout agent (i.e., satisfaisant les contraintes de ressource et de temps) tel que la date fin de r´eali- sationCide toute tˆacheisoit incluse dans [Ci, Ci].
Dans cet article, on s’int´eresse au probl`eme job shop multi-agent o`u chaque agent est associ´e `a une ma- chine et g`ere l’ensemble des tˆaches devant ˆetre ex´e- cut´ees sur cette machine. Nous proposons en particu- lier un algorithme distribu´e o`u l’ordonnancement est
construit par coop´eration entre les agents, cette co- op´eration mettant explicitement en jeu les concepts de stress et de risque d’incoh´erence pr´ec´edemment d´efinis. L’article est organis´e comme suit. La partie suivante dresse un petit tour d’horizon de la probl´e- matique d’ordonnancement avec agents. La partie 3 formalise math´ematiquement le probl`eme job shop multi-agent. Les trois derni`eres parties d´ecrivent le sch´ema de coop´eration propos´e, l’algorithme distri- bu´e adopt´e et les m´ethodes permettant de r´esoudre les probl`emes de d´ecision induits au niveau de chaque agent.
2 ORDONNANCEMENT EN PR´ESENCE D’AGENTS : UN PETIT TOUR D’HORI- ZON
Tout probl`eme d’ordonnancement de tˆache impli- quant plusieurs acteurs, poss´edant chacun leur au- tonomie d´ecisionnelle, chacun en charge de l’ex´ecu- tion d’un sous-ensemble de tˆaches, peut ˆetre assimil´e
`a un probl`eme d’ordonnancement multi-agent. Dans ce type d’organisation, un ´el´ement important est le caract`ere confidentiel des donn´ees que chaque agent manipule : seulement un ensemble restreint d’infor- mation, suffisant `a la coordination des agents, est partag´e entre les acteurs. Parmi les modes de coor- dination courants, on distingue celui o`u les acteurs se communiquent des propositions de dates de fin pour les tˆaches que chacun g`ere, ces valeurs ´etant n´ego- ci´ees jusqu’`a ce qu’un compromis satisfaisant l’en- semble des acteurs soit atteint. Pour ´eviter une re- mise en cause trop fr´equente des d´ecisions, les ac- teurs peuvent se communiquer des intervalles (au lieu de date fixe) dans lesquels ils s’engagent `a finir la tˆache, ces intervalles pouvant s’affiner dans le temps au fur et `a mesure que l’imminence de la fin de la tˆache s’approche (Dudek et Stadtler 2004, Despontin et. al. 2005, Portmann et Mouloua 2007). Une fois les intervalles de fin de r´ealisation ´etablis, les acteurs sont libres de s’organiser comme ils l’entendent, du moment qu’ils garantissent l’ach`evement des tˆaches dans les intervalles contract´es. Ils peuvent ´egalement, pour anticiper ou pour palier une situation d’incoh´e- rence, amorcer une ren´egociation des intervalles dans le but de les affiner ou de les d´eplacer.
En ordonnancement, la notion d’agent a souvent ´et´e au cœur de m´ethodes de r´esolution distribu´ee, ba- s´ees sur le paradigme des Syst`emes Multi-Agents (SMA) (Ferber 1999). Dans le domaine de l’ordonnan- cement d’atelier, des approches heuristiques, bas´ees SMA, sont propos´ees (Saadet. al.1997, Archimede et Coudert 1999) pour g´en´erer un ordonnancement r´ea- lisable : les agents, associ´es aux tˆaches, n´egocient leur intervalles d’ex´ecution avec des agents ressources, un agent superviseur permettant d’arbitrer les situations conflictuelles. On trouve ´egalement des approches
SMA en ordonnancement multi-projets (Confessore et. al.2007, Homberger 2007) o`u les agents, associ´ees aux projets, se partagent la capacit´e des ressources, en ´etant guid´es par un agent m´ediateur.
Les travaux pr´ec´edents doivent cependant ˆetre dis- tingu´es de la probl´ematique d’ordonnancement multi- agent, telle que d´efinie dans la partie pr´ec´edente. En effet, nous nous int´eressons ici davantage `a la pro- bl´ematique d’optimisation multi-objectif que la no- tion d’agent introduit, qu’`a la nature distribu´ee, bas´ee SMA, d’une m´ethode de r´esolution. Cette probl´ema- tique d’ordonnancement multi-agent, est introduite dans les travaux de (Agnetiset. al.2000, Agnetiset.
al.2004) dans lesquels les auteurs consid`erent un pro- bl`eme job shop o`u deux agents, d´etenant chacun un sous-ensemble de travaux, sont en comp´etition pour l’utilisation des machines, chacun tentant d’optimi- ser sa fonction objectif propre (la diff´erence entre les fonctions objectifs ´etant ²-contrainte). Plusieurs ar- ticles (Agnetiset. al.2009, Chenget. al.2006, Cheng et. al.2008) s’int´eressent au cas o`u l’atelier est r´eduit
`a une machine (avec deux ou plusieurs agents) et pro- posent des r´esultats de complexit´e ainsi que des m´e- thodes exactes, consid´erant des crit`eres vari´es tels que le makespan, le retard alg´ebrique ou le nombre pon- d´er´e de tˆaches en retard. D’autres travaux concernent l’ordonnancement de grille de calcul o`u les agents, correspondant chacun `a un cluster de calcul, n´ego- cient les travaux qu’ils prennent en charge, les tra- vaux pouvant par ailleurs ˆetre eux mˆemes affect´es `a des agents (voir par exemple (Pascual et. al. 2009) pour une approche r´ecente).
Ainsi que propos´e dans la partie pr´ec´edente, de nom- breux auteurs consid`erent ´egalement une fonction objectif globale, aussi appel´ee objectif social, que les agents doivent optimiser. Des concepts impor- tants, reli´es `a la th´eorie des jeux non coop´eratifs, peuvent alors ˆetre d´efinis comme le prix de l’anar- chie (Koutsoupias et Papadimitriou 1999) (rapport entre le pire ´equilibre de Nash et la valeur optimale de la fonction objectif globale) ou le prix de la sta- bilit´e (Angelet. al. 2006) (rapport entre le meilleur
´equilibre 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`u les tˆaches sont associ´ees aux agents en fonction de la machine que chaque tˆache utilise. Nous formalisons ce probl`eme et montrons comment d´eterminer une solution en adoptant un d´e- marche distribu´ee o`u les agents n´egocient entre eux les fenˆetres de fin de r´ealisation des travaux. Ce travail est le prolongement du travail amorc´e dans (Briand et. al.2008).
3 LE JOB SHOP MULTI-AGENT
On consid`ere un probl`eme job shop `ammachines o`u un ensemble J den travaux doivent ˆetre ordonnan- c´es. Un travail compte autant de tˆaches qu’il y a de machines dans l’atelier, l’ordre de passage sur les ma- chines ´etant d´efini par la gamme op´eratoire du travail, suppos´ee diff´erente d’un travail `a l’autre. La i`eme tˆache du travail j est not´ee (j, i) ((j, i−1) pr´ec`ede donc (j, i)) et s’ex´ecute pendant un tempspj,isur la machinemj,i. On suppose qu’un intervalle d’´ech´eance [Cj,m+1, Cj,m+1] est associ´e `a chaque travail j, o`u (j, m+ 1) est une op´eration fictive de dur´ee nulle. Un agent ´etant associ´e `a chaque machine et g´erant l’en- semble des tˆaches devant ˆetre ex´ecut´ees sur cette ma- chine, on aTu ={(j, i)∈ T |mj,i=u}. Clairement, il n’existe pas de contraintes de pr´ec´edence entre les tˆaches affect´ees au mˆeme agent. De plus, toute tˆache est n´ecessairement fronti`ere (i.e.,T =F).
Le probl`eme job shop est NP-difficile (Lenstra et.
al. 1977) et donc ´egalement le probl`eme job shop multi-agent. Si on s’int´eresse au probl`eme `a r´esoudre au niveau de chaque agentAu, les fenˆetres d’ach`eve- ment des tˆaches fronti`eres ´etant d´etermin´ees, il s’agit d’un probl`eme `a une machine avec fenˆetres de lance- ment et fenˆetres d’´ech´eance o`u l’on recherche un s´e- quencement r´ealisable des travaux sur la machine. Ce probl`eme est NP-complet en tant que g´en´eralisation du probl`eme `a une machine avec date de lancementrj
et date d’´ech´eancedj, lui mˆeme NP-complet (Lenstra et. al.1977).
Les variables de d´ecision du job shop multi-agent sont relatives `a chaque tˆache (j, i). Il s’agit de :Cj,i, Cj,i, Cj,i, rj,i, dj,i et ∆j,i o`u : [Cj,i, Cj,i] est l’intervalle de fin de r´ealisation contract´e entre l’agent r´ealisant (j, i) et l’agent r´ealisant (j, i+ 1),Cj,iest la date de fin de (j, i), [rj,i, dj,i] est l’intervalle d’ex´ecution de (j, i) choisie par Au ((j, i) ∈ Tu) et ∆j,i indique de combien d’unit´es de temps l’agent g´erant l’ex´ecution de (j, i+ 1) anticipe la fin de (j, i).
Comme indiqu´e dans la premi`ere partie, on d´esire mi- nimiser le risque d’incoh´erence et le stress de l’en- semble des agents. Le risque d’incoh´erence est tou- jours ´evalu´e comme indiqu´e dans la formule (3), i.e., Ru= max{(j,i)∈Tu}∆j,i.
Nous supposons que le stress Su de l’agent Au est inversement proportionnel `a sa flexibilit´e temporelle Fu et que, minimiser Su, est ´equivalent `a maximiser Fu. Dans la partie 6, une mesure deFu est propos´ee qui utilise la notion de retard alg´ebrique.
Le probl`eme job shop multi-agent que nous consid´e- rons peut ˆetre formalis´e comme le probl`eme multi- objectif suivant :
max{Fu},∀Au∈ A min{Ru},∀Au∈ A
min{max(Fu−Fv)},∀(Au, Av)∈ A2 min{max(Ru−Rv)},∀(Au, Av)∈ A2 s.c.
rj,i≥Cj,i−1−∆j,i−1,∀(j, i)∈ T (5)
∆j,i−1≤Cj,i−1−Cj,i−1,∀(j, i−1)∈ T (6) dj,i≤Cj,i,∀(j, i)∈ T (7)
Cj,i≤Cj,m+1,∀j∈ J (8)
Cj,i≤dj,i,∀(j, i)∈ T (9) Cj,i≥rj,i+pj,i,∀(j, i)∈ T (10) (j, i)≺(l, k)∨(l, k)≺(j, i),
∀((j, i),(l, k))∈ Tu2∧ ∀Au∈ A (11) Dans la formulation pr´ec´edente, les contraintes (5)-(8) d´efinissent les relations entre les variables Cj,i, Cj,i, rj,i, dj,i et ∆j,i. La contrainte (5) impose que la date de lancement de la tˆache (j, i) soit compa- tible avec la date d’ach`evement au pire de (i, j−1), `a
∆j,i−1 pr`es (la valeur maximale de ∆j,i−1´etant limi- t´ee par la contrainte (6)). Les contraintes de type (7) imposent que les dates ´echues des tˆaches soient ant´e- rieures `a leur date de fin au pire, ces derni`eres devant
`a leur tour ˆetre compatible avec la date de fin des travaux (contrainte (8)).
Les contraintes (9)-(11) stipulent que les valeurs choi- sies pour les fenˆetres d’ex´ecution [rj,i, dj,i] des taches g´er´ees par un mˆeme agentAugarantissent l’existence d’une solution r´ealisable pour le probl`eme `a une ma- chine induit sur cet agent. La contrainte (11) est dis- jonctive et garantit que l’ordonnancement local de chaque agent correspond bien `a une s´equence, une pr´ec´edence devant ˆetre choisie entre chaque paire de tˆache g´er´ee par l’agent.
A ce stade, nous remarquons que l’introduction de fe-` nˆetres d’ex´ecution [rj,i, dj,i] pour chaque tˆache n’est pas n´ecessaire puisque nous pourrions simplement remplacer les contraintes (9) et (10) par la contrainte Cj,i≤Cj,i≤Cj,i. Cependant, ainsi que cela sera pr´e- cis´e dans la partie 6, l’introduction de fenˆetre d’ex´ecu- tion permet de caract´eriser au niveau de chaque agent un ensemble flexible de solutions (et non pas une so- lution unique), cette flexibilit´e ´etant pr´ecieuse pour permettre `a un agent de s’adapter aux incertitudes
´emanant de son environnement.
Pour finir, dans la fonction objectif de la formulation pr´ec´edente, nous distinguons deux cat´egories d’objec- tifs : les objectifs locaux (Fu et Ru) et les objectifs globaux qui visent `a minimiser les disparit´es entre les agents de sorte `a ce que la solution soit la plus ´equi-
table possible.
4 UN SCH´EMA DE COOP´ERATION Comme dans (Despontin et. al. 2005) et (Briand et. al. 2008), on suppose que l’ordonnancement est construit de fa¸con distribu´ee et dynamique, par co- op´eration entre les agents. Dans ce cadre, la prise en compte d’objectif globaux devient d´elicate puisqu’il n’existe pas d’agent superviseur habilit´e `a orienter les d´ecision des agents de sorte `a optimiser les objec- tifs globaux. Cependant, nous verrons comment les prendre en compte de fa¸con indirecte, en imposant certaines r`egles de comportement au sein de chaque agent, cela en vue de favoriser un comportement col- lectif ´equitable.
Nous consid´erons que les diff´erentes fonctions inh´e- rentes `a la coop´eration sont la n´egociation, la coor- dination et la ren´egociation. Un processus de n´ego- ciation est initi´e lorsqu’un agent demande `a un autre agent amont, de r´ealiser une nouvelle tˆache sur un produit, correspondant `a l’op´eration pr´ec´edente au sens de la gamme. Une telle situation se produit au moment de l’arriv´ee d’un nouveau travail dans le sys- t`eme, ce qui n´ecessite de d´efinir des fenˆetres d’ach`e- vement pour toutes les tˆaches du nouveau travail. La prise en charge d’un nouveau travail j est initiale- ment sollicit´ee par un agent client et correspond donc
`a l’occurrence d’une nouvelle commande pour un pro- duit donn´e, `a laquelle est associ´e un d´elai de livraison [Dj, Dj] = [Cj,m+1, Cj,m+1].
Au cours des n´egociations men´ees lors de l’inser- tion de nouvelles tˆaches, il peut s’av´erer pertinent, pour am´eliorer la performance globale, de n´egocier
`a nouveau certains intervalles de tˆaches existantes.
On parle alors de ren´egociation. Notons qu’une re- n´egociation peut ´egalement avoir lieu si, suite `a un al´ea (interne `a un agent), la date d’ach`evement d’une tˆache devient incoh´erente avec l’intervalle contract´e.
Le processus de ren´egociation a alors pour but de re- couvrer la coh´erence.
N´egociation et ren´egociation sont r´ealis´ees par
´echange de requˆetes entre paire d’agents. L’agentAu, prenant en charge la tˆache (j, i+1), initie vers l’agent Av, assurant la r´ealisation de (j, i), une proposition d’intervalle [Cj,i, Cj,i], appel´e intervalle cible. Nous supposons alors que Av ´emet en retour une r´eponse pr´ecisant le meilleur [C∗j,i, C∗j,i] que Av est capable d’assurer, ´etant donn´ees les valeurs courantes deFu, Fv,Ruet Rv.
Pour la d´etermination de [C∗j,i, C∗j,i], l’agentAv peut ˆetre amen´e `a ren´egocier avec certains de ses agents amonts des intervalles d’ach`evement d’autres tˆaches.
Il propose alors `a son tour des nouveaux inter- valles cibles d’ach`evement vers ses agents amonts,
ceux-ci devant eux-mˆemes d´eterminer une r´eponse la meilleure possible.
Lorsque Av d´etermine l’intervalle [C∗j,i, C∗j,i], en r´e- ponse `a une proposition de Au, on suppose qu’il a fait de son mieux et que cet intervalle devient ferme pour Au. Ce dernier n’a donc pas la possibilit´e de le ren´egocier, du moins pas tant que son ´etat interne n’aura pas ´evolu´e (modification deSu,RuouTu).
On remarque ´egalement que lors de l’´elaboration de la r´eponse deAv `a une sollicitation deAu, les inter- valles d’ach`evement de l’ensemble des tˆaches de Tv
sont susceptibles d’ˆetre modifi´es. Ces modifications doivent naturellement ˆetre transmises aux agents en aval deAv (et diff´erents deAu), ceux-ci devant `a leur tour adapter leur organisation.
En dehors de ces phases de n´egociation et ren´egocia- tion, on suppose que les agents se coordonnent en se communiquant les valeurs des dates de lancement et d’´ech´eance de leurs tˆaches,rj,iet dj,i, que chacun se fixe. Ces ´echanges peuvent se faire p´eriodiquement ou de fa¸con asynchrone, `a l’occurrence de modifications.
Lorsqu’un agent re¸coit un message d’information, il doit v´erifier que son organisation reste coh´erente.
On distingue donc quatre types de message inter- agent :
• message R : Un agent initiateur formule une re- quˆete `a un agent amont pour avoir le droit de commencer une tˆache (j, i), d´ej`a existante ou nou- velle, plus tˆot que pr´evu (i.e., rj,i < Cj,i−1) : il stipule pour cela un intervalle de livraison cible [Cj,i−1, Cj,i−1] (l’agent initiateur peut ´eventuelle- ment ˆetre l’agent client lorsqu’il s’agit d’un nou- veau travail `a prendre en charge) ;
• message A : Un agent r´epond `a la pr´ec´edente re- quˆete d’un agent aval en indiquant un intervalle [C∗j,i, C∗j,i], correspondant `a ce qu’il peut faire de mieux ;
• message I : Si, apr`es traitement d’une requˆete par un agent, certaines tˆaches existantes voient une modification de leur dj,i ou leur rj,i, sans que cela entraˆıne une incoh´erence (i.e., dj,i ≤ Cj,i et rj,i≥ Ci,j−1), on en informe les agents aval (rj,i) ou amont (dj,i) ;
• message D : Si dj,i a chang´e mais qu’une incoh´e- rence est d´etect´eedj,i> Cj,i, on informe les agents aval en d´efinissant un nouvel intervalle coh´erent [C0j,i, C0j,i].
La notion de processus de n´egociation est importante car les messages ci-dessus, hormis ceux de typeI, sont chacun li´es `a un processus distinct. Nous supposons que les attributs suivants caract´erisent un processus : son identifiantid, l’identifiant du processus sources l’ayant initi´e et, s’il y a lieu, la tˆache (j, i) dont l’inter- valle de fin est n´egoci´e. Chacun des quatre messages
d´ecrits plus haut portera donc les attributs du pro- cessus auquel il est rattach´e, ainsi que trois attributs suppl´ementaires identifiant : le num´ero e de l’agent
´emetteur du message, l’op´eration (j, i) pour laquelle l’intervalle de fin de r´ealisation [Cj,i, Cj,i] (messages R, A et D), ou la date d’´ech´eance dji (message I), sont propos´es.
Figure 2 – Diagramme de s´equences illustrant un processus de n´egociation
En r´esum´e, l’´emission d’une requˆete d’intervalle cible [Cj,i, Cj,i] par un agent induit tout d’abord une phase de n´egociation amont (les requˆetes se propagent de proche en proche, en amont dans le r´eseau d’agents).
Ceci est illustr´e sur le diagramme de s´equences de la figure 2 : en r´eponse `a la requˆete de Ay, concer- nant l’intervalle de fin de la tˆache (j, i), Au d´ecide d’´emettre des requˆetes vers ses propres agents amont concernant les intervalles de la tˆache (j, i−1) (r´eali- s´ee par Ax) et d’une autre tˆache, (k, l), r´ealis´ee par Aw. Lors de cette phase, les agents tentent d’absor- ber la modification de l’intervalle de fin de l’op´eration (j, i), sans modifier les dates d’ach`evement au pire des autres tˆaches existantes, cela en conservant un certain niveau de flexibilit´e et de coh´erence (cet aspect est d´e- crit dans la partie 6). Une fois cette phase achev´ee, s’il n’´etait pas possible d’absorber la nouvelle tˆache sans augmenter certaines dates d’ach`evement au pire de tˆaches existantes, une propagation en aval des re- tards se produit jusqu’`a retrouver une ´etat coh´erent.
Cette phase de propagation aval est ´egalement illus- tr´ee sur la figure 2 :Aw, en r´eponse `a la requˆete deAu
concernant la tˆache (k, l), est contraint de retarder la fenˆetre d’ex´ecution de la tˆache (a, b), prise en charge par Az. La mˆeme situation apparaˆıt lorsque Au, en r´eponse `a la requˆete de Ay, retarde la fin de r´ealisa- tion de la tˆache (c, d), g´er´ee parAz. Cependant, dans
cette situation, on constate queAz, ne pouvant plus assurer ses engagements de d´elais, initie une nouvelle phase de n´egociation amont avec Ax concernant la tˆache (s, t).
5 COMPORTEMENT D’UN AGENT Algorithm 1Comportement d’un agentAu
1: repeat
2: msg←Getmsg() ;
3: if msg6=N ullthen
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=Athen
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 Checkthen
20: BackwardSolve(p, state,U) ;
21: if state6=Inf easible∧ U 6=∅ 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)∈ Tudo
31: if p.s6=p.idthen
32: Send(A, p.id, p.s, u, p.(j, i),[C]∗) ;
33: else if (j, i)∈ U then
34: UpdateConstraint((j, i),[Cj,i]) ;
35: Send(D, p.id, p.s, u,(j, i),[C]0) ;
36: end if
37: end for
38: RemoveProcess(p) ;
39: end if
40: end if
41: end if
42: untilF alse
Dans cette partie, nous d´ecrivons le comportement d’un agent par l’algorithme 1. Le diagramme de s´e- quences de la figure 2 illustre une partie de son fonc- tionnement.
Cet algorithme est non bloquant. Il d´ecrit le com- portement d’un agent lorsqu’il re¸coit des messages de
typeR,AouD. Pour ne pas surcharger l’algorithme, nous avons volontairement ici n´egliger la gestion des messages purement informatifs (de type I) qui per- mettent la coordination des agents. Comme dit plus haut, ces messages sont ´emis par un agent soit de fa¸con p´eriodique, soit de fa¸con asynchrone, lorsque, lors des n´egociations, les valeurs des dj,i ou des rj,i
des tˆaches qu’il prend en charge sont modifi´ees, sans que cela entraˆıne une incoh´erence (i.e., dj,i≤Cj,iet rj,i ≥Ci,j−1). `A la r´eception d’un message de type I, un agent doit v´erifier que son ´etat reste coh´erent (utilisation de la proc´edure BackwardSolve) et si, tel n’est pas le cas, engager une ren´egociation des inter- valles caract´eristiques de ses tˆaches.
Si un nouveau message est re¸cu (ligne 3), deux cas sont distingu´es 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´ecrivent les traitements faits. Tout d’abord, la variableCheck est mise `a vrai car l’agent va devoir v´erifier la coh´e- rence de son ´etat. Un nouveau processus de n´egocia- tionpest ensuite cr´e´e. Pour un message de typeR, on consid`ere que l’initiateur p.sdu processus est l’agent ayant ´emis la requˆete et on m´emorise dans p.(j, i) la tˆache msg.(j, i) pour laquelle il faudra produire une r´eponse. Pour un message de type D, l’initiateur du processus est l’agent lui mˆeme, i.e., p.s←p.id.
Dans le cas o`u le message re¸cu est de typeA(lignes 13
`a 18), il s’agit de la r´eponse `a une requˆete que Au
avait pr´ec´edemment ´emise dans le cadre d’un pro- cessus de n´egociation pr´ec´edent. Dans ce cas, la pro- c´edure SearchProcess est appel´ee pour retrouver le processus correspondant parmi les processus actifs.
On ajoute ensuite le message `a la liste des r´eponses d´ej`a re¸cues (proc´edure AddAnswer) par le processus.
Dans le cas o`u toutes les r´eponses correspondant aux requˆetes pr´ec´edemment ´emises en amont ont ´et´e re-
¸cues (i.e., AnswerEnd(p)=T rue), Au va de nouveau pouvoir v´erifier la coh´erence de son ´etat (et ´emettre si n´ecessaire de nouvelles requˆetes).
La v´erification de la coh´erence de l’agent correspond aux lignes 19-40 de l’algorithme. Cette v´erification se fait en deux phases : une phase de n´egociation amont et une phase de propagation aval. Lors de la premi`ere phase, la proc´edure BackwardSolve est ap- pel´ee (son fonctionnement est d´ecrit dans la partie 6).
Cette proc´edure ´etablit la listeUdes tˆaches (j, i) pour lesquelles des requˆetes de modification des intervalles de fin de r´ealisation [Cj,i−1, Cj,i−1] doivent ˆetre en- voy´ees aux agents amont. L’envoi des requˆetes est r´ea- lis´e aux lignes 22-26. Pour chaque envoi, on m´emorise la requˆete dans la liste des requˆetes en cours attach´ee au processus (appel `a AddRequest) et on impose de fa¸con temporaire que, dans les n´egociations futures, l’intervalle de fin de r´ealisation demand´e `a l’agent amont soit respect´e (appel `a AddExtraConstraint).
Cette pr´ecaution est n´ecessaire pour ´eviter une situa- tion instable o`u l’agent referait, au cours d’une autre n´egociation, une requˆete pour la mˆeme tˆache, avec un intervalle de fin de r´ealisation diff´erent, alors qu’il n’a pas encore re¸cu la r´eponse `a sa requˆete pr´ec´edente. La proc´edure BackwardSolve doit donc permettre de res- pecter les intervalles de fin de r´ealisation de certaines tˆaches amont (celles pour lesquelles des requˆetes sont en cours de traitement) mais est libre de violer les intervalles des autres tˆaches.
La phase de propagation aval est amorc´ee lorsque la proc´edure BackwardSolve ne trouve pas de so- lution (state = inf easible) ou lorsque la liste U est vide. Dans le premier cas, il n’est plus pos- sible de continuer `a n´egocier en amont en respec- tant les contraintes temporaires et les contraintes de positivit´e des variables de d´ecision. Dans le second cas, il n’est plus n´ecessaire de n´egocier en amont puisque l’on respecte les intervalles de fin de r´eali- sation de toutes les tˆaches amont. Dans les deux cas, apr`es avoir pr´ealablement lev´e les contraintes tempo- raires portant sur les intervalles de fin de r´ealisation amont (appel `a RemoveExtraConstraints), la proc´e- dure ForwardSolve est appel´ee (cf. partie 6). Celle-ci
´etablit la listeU des tˆaches (j, i) pour lesquelles des re- tards sur les intervalles de fin de r´ealisation [Cj,i, Cj,i] doivent ˆetre signal´es aupr`es des agents aval. L’envoi des messages de retard est r´ealis´e aux lignes 33-35 et on m´emorise les valeurs des nouveaux intervalles. Si le processuspa ´et´e amorc´e dans le cadre d’une requˆete d’un agent amont (p.s 6= p.id) concernant la tˆache p.(j, i), on envoie `a cet agent la r´eponse `a sa requˆete.
Une fois la propagation aval achev´ee, le processus p peut alors ˆetre d´etruit (ligne 38).
On remarque que cet algorithme autorise d’avoir plu- sieurs processus de n´egociation en cours au niveau d’un mˆeme agent. En effet, les valeurs des intervalles de fin de r´ealisation indiqu´ees dans les requˆetes en amont ´etant provisoirement impos´ees pour les futures n´egociations, on est sˆur que les prochaines requˆetes
´emises par l’agent seront compatibles avec celles d´ej`a
´emises. Cependant, les d´ecisions seront d´ependantes de l’ordre de traitement des requˆetes re¸cues.
On peut ´egalement affirmer que l’algorithme converge n´ecessairement vers une solution. En effet, les inter- valles de fin de r´ealisation ´etant progressivement gel´es lors de la n´egociation amont, on est sˆur qu’`a un mo- ment donn´e l’´etat o`u (state= Inf easible∨ U = ∅) sera atteint. Or, dans ce cas la n´egociation amont s’ach`eve et on passe dans une phase o`u les d´ecisions sont impos´ees vers l’aval sans possibilit´e de recours.
6 AJUSTEMENT DU RISQUE D’INCOH´E- RENCE ET DE LA FLEXIBILIT´E DE Au
Dans cette partie, nous d´ecrivons plus pr´ecis´ement le fonctionnement des proc´edures BackwardSolve et ForwardSolve. Nous expliquons ´egalement comment sont g´er´es la flexibilit´e et le risque d’incoh´erence au sein de l’agent Au.
Nous supposons que l’ordonnancement local r´ealis´e par chaque agent est un ordonnancement robuste bas´e sur la caract´erisation d’un ensemble de solutions.
En effet, dans le cas du job shop multi-agent, dis- poser d’un ensemble robuste de solutions au niveau de chaque agent est souhaitable pour permettre de s’adapter, non seulement aux al´eas internes `a l’agent (variation des dur´ees op´eratoires), mais aussi et sur- tout `a ceux ´emanant de son environnement (variation des dates de fin des tˆaches sur les agents amont).
On utilise pour cela la technique propos´ee dans (Briand et. al. 2007) pour le probl`eme `a une machine qui, ´etant donn´e un ordre total entre les rj,ietdj,ides tˆaches, fournit un ensemble de solutions dominantes dont le retard alg´ebrique au pire peut ˆetre calcul´e en temps polynomial. La propri´et´e de dominance permet d’assurer que, quelles que soient les valeurs effectives de rj,i et dj,i respectant l’ordre total choisi, et quelles ques soient les r´ealisations des dur´ees op´eratoires, l’ensemble des solutions contient n´ecessairement une solution optimale minimisant le retard alg´ebrique Lmax = max{(j,i)∈Tu}(Cj,i−dj,i).
La performance au mieux de l’ensemble de solutions caract´eris´ees peut donc ˆetre consid´er´ee robuste vis-`a- vis d’un grand ensemble de sc´enarios de r´ealisation.
De plus, une proc´edure arborescente est ´egalement propos´ee dans (Briand et. al. 2007) qui permet d’affiner les valeurs des rj,ietdj,ide sorte `a ´eliminer de l’ensemble des solutions celles les moins bonnes vis-`a-vis du retard alg´ebrique (on am´eliore ainsi la performance au pire de l’ensemble de solutions).
Pour pouvoir utiliser cette technique dans le cadre du job shop multi-agent et ˆetre capable de calculer le pire retard alg´ebrique pour un agent Au, ∀Au ∈ A, il est n´ecessaire de connaˆıtre les valeurs de rj,i etdj,i
des tˆaches deAu. Dans notre cas, ces valeurs doivent ˆetre choisies `a l’int´erieur des intervalles de fin de r´ea- lisation des tˆaches contract´es avec les agents amont et aval de Au, i.e., rj,i ∈ [Cj,i−1, Cj,i−1] et dj,i ∈ [Cj,i, Cj,i]. De plus, lorsque les agents se coordonnent, les agents amont communiquent `aAules valeurs cou- rantes desdj,i−1et, en aval, les valeurs desrj,i+1sont
´egalement transmises. Ces valeurs ´etant n´ecessaire- ment coh´erentes avec les intervalles contract´es, on a dj,i−1 ∈ [Cj,i−1, Cj,i−1] et rj,i+1 ∈ [Cj,i, Cj,i]. On peut donc restreindre davantage les domaines de va- leur derj,ietdj,ipuisque, pour assurer le respect des gammes op´eratoires, il faut que rj,i∈[dj,i−1, Cj,i−1]
etdj,i∈[Cj,i, rj,i+1].
Le choix des valeurs derj,iet dj,idoit ˆetre reli´e `a la notion de risque d’incoh´erence propos´ee dans la par- tie 1. En effet, plusrj,i sera proche dedj,i−1 et plus le risque d’incoh´erence sera grand puisque Au sera sensible `a une d´et´erioration du d´elai dj,i−1. Inverse- ment, plusrj,isera proche deCj,i−1et moins le risque d’incoh´erence sera grand puisque l’agent r´ealisant la tˆache (j, i−1) ´evitera autant qu’il peut de violer la valeurCj,i−1contract´ee. De fa¸con similaire, le risque est maximal lorsque la valeurdj,iest proche derj,i+1
et minimal lorsqu’elle se rapproche deCj,i.
Ici, par analogie avec les comportements constat´es dans la pratique, nous proposons de dimensionner le risque d’incoh´erence en fonction du temps, de sorte
`a ce que, plus l’instant courant sera ´eloign´e de la fe- nˆetre de r´ealisation d’une tˆache, et plus l’agent pourra choisir un risque d’incoh´erence important pour cette tˆache. Inversement, plus l’ex´ecution de la tˆache de- viendra imminente et plus le risque acceptable sera faible. Pour cela, nous proposons de faire varier li- n´eairement en fonction du temps les valeurs derj,iet dj,iselon les formules suivantes :
½ rj,i=Cj,i−1−εrj,i(Cj,i−1−dj,i−1)
dj,i=Cj,i+εdj,i(rj,i+1−Cj,i) (12) o`u εrj,i (resp.εdj,i) varie progressivement de 1 (risque d’incoh´erence fort) vers 0 (risque d’incoh´erence faible) au fur et `a mesure que l’instant courant t devient proche deCj,i−1(resp. deCj,i).
Revenons `a pr´esent `a la description des proc´edures BackwardSolve et ForwardSolve. Nous supposons que ces deux proc´edures d´eterminent pr´ealablement les valeurs desrj,i et dj,i des tˆaches de Au selon la for- mule (12) : ainsi, selon l’instant o`u ces proc´edures sont appel´ees, les valeurs choisies des rj,i et dj,i va- rient (en devenant de moins en moins risqu´ees). Les deux proc´edures utilisent ensuite la m´ethode de s´epa- ration et ´evaluation d´ecrite dans (Briandet. al.2007) pour d´eterminer un retard alg´ebrique maximalLmaxj,i pour chaque tˆache (j, i) de sorte `a ce queLmaxj,i ≤Lu, Lu <0 ´etant le plus grand retard alg´ebrique admis- sible par Au. C’est cette valeur de Lu que nous uti- lisons pour mesurer la flexibilit´e Fu d’un agent, en posant Fu = −Lu. Plus la valeur de Fu est grande et plus la marge disponible dans le pire des cas pour r´ealiser les op´erations est importante.
La proc´edure BackwardSolve travaille `adj,iconstant (on essaie de respecter les intervalles de fin des tˆaches) et d´etermine quels doivent ˆetre les intervalles de fin des tˆaches amont permettant de satisfaire lesdj,i, en maintenant un niveau de flexibilit´e Fu. Lors de ce calcul, si Lmaxj,i ≤ rj,i−dj,i−1, alors il est possible d’achever (j, i) dans les d´elais impartis, sans remettre
en cause l’intervalle de fin de la tˆache (j, i−1). Sinon, on peut d´eduire que la tˆache (j, i) appartient `a l’en- semble U des tˆaches en retard (voir algorithme 1) pour lesquelles il va falloir ren´egocier l’intervalle de fin de la tˆache amont. On peut par exemple proposer la valeur [Cj,i−1, Cj,i−1] = [rj,i−Lmaxj,i , dj,i−pj, i].
De fa¸con inverse, la proc´edure ForwardSolve travaille
`a rj,iconstant et d´etermine quels doivent ˆetre les in- tervalles de fin des tˆaches g´er´ees par Au, ´etant don- n´ees les valeurs de rj,i, cela en maintenant un ni- veau de flexibilit´e Fu. Lors de ce calcul, si Lmaxj,i ≤ rj,i+1−dj,i, alors il est possible d’achever (j, i) dans les d´elais impartis, sans remettre en cause l’intervalle de fin de la tˆache (j, i). Sinon, on peut d´eduire que la tˆache (j, i) appartient `a l’ensembleU des tˆaches 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 [C0j,i−1, C0j,i−1] = [rj,i+pj, i, dj,i+Lmaxj,i ].
On note que la valeur deFu est propre `a l’agentAu. Afin d’´eviter des situations de trop grande disparit´e entre les valeurs de flexibilit´e, il est n´ecessaire de d´efi- nir des r`egles quant `a l’´evaluation de cette constante.
Par exemple, lorsque Au r´epond `a une requˆete d’un agent aval Av, on peut imposer que Fu ≥ F −v.
Une telle r`egle favorise les comportements coop´era- tifs dans la mesure o`u, suite `a une sollicitation deAv, Au peut accepter de perdre de la flexibilit´e dans la limite o`u celle-ci ne deviendrait pas inf´erieure `a celle de Av (on peut ´eventuellement tol´erer un petit d´e- passement). On incite donc les acteurs `a adopter un comportement ´equitable o`u les valeurs de flexibilit´e seraient ´egalement partag´ees.
CONCLUSION
Dans cet article, le probl`eme job shop multi-agent a
´et´e d´ecrit et formalis´e math´ematiquement, sous forme d’un probl`eme d’optimisation multi-objectif. On dis- tingue des objectifs locaux et des objectifs globaux.
Les objectifs locaux visent `a minimiser le stress de chaque agent et le risque d’incoh´erence. Les objec- tifs globaux visent `a favoriser les solutions o`u stress et risque d’incoh´erence sont ´equitablement partag´es entre les agents.
Pour r´esoudre ce probl`eme, une m´ethode distribu´ee a ´et´e propos´ee o`u les agents n´egocient en amont les intervalles de fin des tˆaches qu’ils g`erent et se synchro- nisent. Dans cette m´ethode, les agents communiquent par message de fa¸con asynchrone, quatre types de message ´etant distingu´es. L’algorithme r´egissant le comportement de chaque agent a ´et´e d´ecrit et les m´e- thodes locales permettant de r´esoudre les probl`emes de d´ecisions ont ´et´e ´egalement explicit´ees.
La m´ethode est actuellement en cours d’impl´emen-
tation et les r´esultats seront d´ecrits lors de la conf´e- rence. Une autre m´ethode permettant de r´esoudre le probl`eme de fa¸con centralis´ee (et optimale en impo- sant des contraintes sur les valeurs de certains ob- jectifs) est ´egalement en cours d’´etude. L’objectif est de comparer les performances obtenues dans les cas distribu´e et centralis´e.
REMERCIEMENTS
Ce travail a ´et´e r´ealis´e dans le cadre du projet ANR Blanc no. 08-BLAN-0331-01 nomm´e “ROBOCOOP”
(cf.http://robocoop.li.univ-tours.fr).
REFERENCES
Agnetis A., Mirchandani P. B., Pacciarelli D., Pa- cifici A., 2000, “Nondominated schedules for a job-shop with two competing agents”, Compu- tational and Mathematical Organization Theory, 6(2), pp. 191-217.
Agnetis A., Mirchandani P. B., Pacciarelli D., Pacifici A., 2004, “Scheduling problems with two com- peting agents”, Operations Research, 52(2), pp.
229-242.
Agnetis A., de Pascale G., Pacciarelli D., 2009, “A La- grangian 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 pro- blem”, Proceedings of Euro-Par (Lecture Notes in Computer Science), Springer : Berlin.
Archimede B., Coudert T., 2001, “Reactive schedu- ling using a multi-agent model : the SCEP fra- mework”, Engineering Applications of Artificial Intelligence, 14, pp. 667-683.
Briand C., La H.T., Erschler J., 2007, “A robust ap- proach for the single machine scheduling pro- blem”, Journal of Scheduling, 10(3), pp. 209-221.
Briand C., Ourari S., Bouzouia B., 2008, “A coopera- tive approach for job shop scheduling under un- certainties ”, International Conference on Col- laborative Decision Making (CDM’08), Collabo- rative decision making : perspectives and chal- lenges, vol 176, IOS Press, ISBN 978-1-58603- 881-6, pp. 5-15.
Cheng T. C. E., Ng C. T., Yuan J. J., 2006, “Multi- agent 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, “ Multi- agent scheduling on a single machine with max- form 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 `a la d´ecision pour une coop´eration interentreprise”, Journal Europ´een des Syst`emes Automatis´es, 39, pp. 797-816.
Dudek G., Stadtler H., 2004, “ Negotiation-based col- laborative planning between supply chain part- ners”, European Journal of Op-erational Re- search, 163, pp 668-687, 2004.
Ferber J., 1999, “ Multi-Agent Systems : an Intro- duction to Distributed Artificial Intelligence”, Addison-Wesley, Reading, MA.
Homberger J., 2007, “A Multi-agent System for the Decentralized Resource-constrained Multi- project 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, “Coopera- tion in Multi-Organization Scheduling”,Concur- rency and Computation : Practice and Expe- rience, 21(7), pp. 905-921.
Portmann M.-C, Mouloua Z., 2007, “A window time negotiation approach at the scheduling level in- side supply chains, 3rd Multid-isciplinary In- ternational Conference on Scheduling : Theory and Application, MISTA’07, Paris, 28-31 august, pp410-417.
Saad, A., Kawamura, K., Biswas, G., 1997, “Perfor- mance evaluation of Contract Net-based hete- rarchical 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.