SYSTÈME MULTI-AGENTS ET APPLICATION DE GESTION


INTRODUCTION
 


L'objet de cette page est de faire comprendre à un chef d'entreprise, un décideur, un conseil d'administration ... les limites des architectures logicielles classiques et de découvrir le pas important que constitue une architecture multi-agents pour le traitement des situations à haut degré de complexité.

Une architecture logicielle classique contient en soit toutes les situations que l'homme imagine pouvoir rencontrer avec un cheminement vers la solution finale déjà inscrite (déterminisme). S'il en oubli, l'application plante ou donne des résultats erronés. En outre le système est figé. Toute nouvelle situation à traiter va demander une modification du programme. La notion de contexte n'existe pas.

Dans un système multi agents, au contraire, la solution finale n'est écrite nulle part. C'est le système qui va la déterminer par le travail en partenariat de ses agents. Cela le rend capable potentiellement de traiter contextuellement toute situation nouvelle comme ancienne. En outre le système peut faire de l'apprentissage ce qui le rend plus performant au fil du temps.

Nous allons reprendre et détailler ces divers aspects dans les paragraphes suivants.

Une parenthèse : des langages évolués vers l'IA tel que Prolog n'échappent pas à cette problématique. Les prédicats doivent être écrits et le système n'en écrit pas de lui même. Ils constituent par contre des langages efficaces pour écrire certains agents.

Comprenons bien :

  • Une architecture SMA va pouvoir traiter des situations complexes sans une modélisation simplifiée insatisfaisante qui serait indispensable pour des solutions classiques.

  • Une architecture SMA va pouvoir traiter des situations et des demandes que ne peuvent pas satisfaire les architectures classiques.


QU'EST CE QU' UN SYSTÈME MULTI-AGENTS (SMA) ?


 
Limite des structures monolithiques
   
Déterministe, programmation classique, ... inefficacité et bugs quasi inévitable
     


La programmation classique est déterministe (les mêmes causes produisent les mêmes effets).

En simplifiant à l'extrême (informaticiens qui liraient ces lignes, pardonnez moi !), à tout moment, le déroulement d'un programme est déterminé par des instructions, variables selon les langages utilisés, mais qui reviennent à l'action conditionnelle de base traduisant le déterminisme du type :

Si condition vrai alors
         réaliser action 1
Sinon {c'est à dire dans le cas ou la condition est fausse }
         réaliser l'action 2

Face à une situation complexe, il va falloir faire des tests à plusieurs conditions et en cascades.

Prenons un premier exemple simple. Soit le bloc d'instructions :

Si (condition 1 vrai et condition 2 vrai) alors
         Si condition 3 vrai alors
                réaliser action 1
         Sinon
                réaliser action 2
sinon 
         Si condition 4 vrai alors
                 réaliser action 3

Nous pouvons dresser le tableau de sortie qui nous indique l'action choisie en fonction de la valeur des 4 conditions :

Action finale
Condition 1 Condition 2 Condition 3 Condition 4 Exécution
F F F F ?
F F F V action 3
F F V F ?
F F V V action 3
F V F F ?
F V F V action 3
F V V F ?
F V V V action 3
V F F F ?
V F F V action 3
V F V F ?
V F V V action 3
V V F F action 2
V V F V action 2
V V V F action 1
V V V V action 1
( F pour condition fausse            V pour condition vrai )

Avec 4 conditions, nous avons 2 4 = 16 cas.

On s'aperçoit que dans 6 cas (?), le système n'a pas reçu d'instruction. Donc il ne fait rien sur cette section de programme. C'est peut être normal et voulu mais c'est peut être aussi un bug du problème, l'informaticien (n'appartenant pas à INFODEC 38 ! ...  ) n'ayant alors pas pensé à tous les cas.

Passons maintenant à un exemple réel : "au hasard", un logiciel de gestion de projet.

Pour affecter un triplet (personne ressource, tache et date de début de travail)  à la louche, une bonne vingtaine de conditions vont déterminer l'affectation des valeurs soit 220 = 1 048 576 combinaisons possibles.  Il est quasi impensable de sélectionner toutes les combinaisons utiles et indispensables parmi ce million de cas possibles.

Solutions classiques pour faire face à cette difficulté :

  • On modélise la réalité en la simplifiant mais le logiciel est alors moins performant. Concrètement on n'examine qu'un sous ensemble des conditions réelles.

  • On teste longuement le programme pour éliminer le maximum de bug avant la mise en service.

  • Les versions se succèdent.

  • Un bug peut toujours surgir face à une situation non prévue.

  • Pour un utilisateur, être incertain de son programme entraine du stress. Soyons modeste et rappelons nous "le bug* de l'an 2000"...

Cette perte d'efficacité, cette menace de bug sont t'elles une fatalité incontournable ? Nous allons voir que non. 

(*) le bug de l'an 2000 dépendait de la structure de données et pas de l'architecture du système.
 

    Retour sur le déterminisme et l'indéterminisme.
     

Le déterminisme repose sur le principe de causalité.
  • Le principe de causalité s’énonce en deux points fondamentaux :

    • tout phénomène a une cause qui lui est antérieure ou simultanée,

    • dans les mêmes conditions, la même cause est suivie du même effet.
       

  • René Descartes commence à l'aborder dans le Discours de la méthode et le développe dans les Méditations sur la philosophie première.
     

  • Sauf dans certains domaines des sciences physiques (et encore ! voir si dessous) et contrairement à ce que suggère le sens commun, le principe de causalité n’est pas confirmé par l’expérience. Notons au passage que les conditions doivent pouvoir être évaluables.

L'indéterminisme nie le fait que tout évènement soit prévisible en vertu d'une loi physique ou mathématique.

  • Cette théorie trouve une confirmation en physique dans le principe d'incertitude d'Heisenberg et la théorie des quanta.
     
  • De très nombreux exemples sont donnés par les défenseurs de l'indéterminisme dont le philosophe Karl Popper, Jean Michel Cornu, etc ... 
  Système multi-agents
   
De la synergie à l'intelligence.
     


Les résultats indécidables, c'est à dire non prévisibles à partir de conditions, apparaissent plus particulièrement dans les phénomènes complexes (ensemble de nombreux éléments qui interagissent entre eux). On parle alors de réseaux , réseaux techniques comme internet mais aussi réseaux sociaux ou société.  On voit alors apparaître des phénomènes émergents qui ne peuvent pas être déduits de ce que l'on connaît des éléments constituants.

Par exemple le comportement d'un groupe de personnes ne peut pas être déduit de la personnalité des individus qui la composent. Des enseignants, des autorités des services de polices, ... vont devoir faire un apprentissage du comportement collectif.

Autre exemple dans le domaine politique ou de gestion des ressources humaines : théorie de gestion des communautés et des états avec la notion d'intelligence collective. La définition suivante, très proche de celle adopté dans les SMA, est tirée de fr.wikipedia.org :

L'intelligence collective désigne les capacités cognitives d'une communauté résultant des interactions multiples entre des membres (ou agents). Les éléments portés à la connaissance des membres de la communauté font qu'ils ne possèdent qu'une perception partielle de l'environnement et n'ont pas conscience de la totalité des éléments qui influencent le groupe.

Des agents au comportement très simple peuvent ainsi accomplir des tâches apparemment très complexes grâce à un mécanisme fondamental appelé synergie.

 Sous certaines conditions particulières, la synergie créée par la collaboration fait émerger des facultés de représentation, de création et d'apprentissage supérieures à celles des individus isolés.

Dans les SMA; cette faculté est appelée principe d'émergence de l'intelligence.
 

    Intelligence artificielle, Intelligence humaine
     


On appelle couramment intelligence artificielle, la technologie informatique qui vise à simuler le comportement de l'être humain, c'est à dire le comportement qui permet à l'homme de résoudre les problèmes qui se posent à lui, intellectuels ou pragmatiques, soit de manière systématique et consciente, soit de manière intuitive et inconsciente.

Dans un univers de prise de décisions stratégiques, l'agent humain coopère avec des agents artificiels pour la résolution de son problème. Il fixe l'objectif principal destiné aux agents artificiels et il évalue la solution que lui propose ces agents. Il décide du changement éventuel de l'objectif global ou de la création d'un autre plan d'actions dans le cas où des contradictions sont détectées. La coopération entre les agents artificiels et l'agent humain prend en compte les éléments subjectifs qui interviennent dans les problèmes complexes de prise de décision.
 

    Agents, société d'agents
     


Un agent est

  • une entité autonome,

  • qui poursuit un objectif individuel,

  • qui est apte

    • à agir sur l'environnement du système auquel il appartient,

    • et/ou

    • à interagir avec les autres agents

  • qui ne dispose que d'une représentation évolutive de cet environnement,

  • qui peut percevoir les autres agents (communication, observation).

L'autonomie de l'agent (autonome, semi-autonome ou dépendant) est caractérisée par les capacités de flexibilité et d'adaptation de l'agent.

La structure d'un agent comprend :

  • des connaissances (connues initialement ou acquises par l'agent)

  • des buts

  • des actions (sur l'environnement ou sur lui-même).

Les mécanismes de traitement d'un agent se divisent en :

  • mécanismes de raisonnement d'un agent qui construisent les différentes actions possibles en fonction des buts et des connaissances de l'agent.

  • mécanismes de décision d'un agent qui en fonction des buts et des hypothèses choisissent la ou les actions les plus appropriées.

Les agents peuvent être regroupés en société ou en sous-société. La constitution de groupes d'agents induit des problèmes liés à la coordination et à la coopération entre agents qui sont appelés problèmes sociaux entre agents.

La société se définit par

  • les agents ou les sous-sociétés qui la composent,

  • les liens qui les unissent et leurs interdépendances.

La structure d'une société comprend :

  • un langage d'interaction,

  • des protocoles d'interaction. Un protocole est un ensemble de règles, connues par tous les agents, traitant de l'enchaînement des interactions. Le protocole traduit l'aspect dynamique de la communication.

Les mécanisme de traitement d'une société se divisent en :

  • mécanismes de raisonnement d'une société qui correspondent aux échanges possibles dans un protocole de résolution donné.

  • mécanismes de décision d'une société qui utilisent des protocoles de résolution de conflit ou de négociation qui restructure l'organisation de la société.

L'organisation d'une société peut se faire selon deux modèles :

  • un modèle hiérarchique de sociétés,

  • un modèle collégial de sociétés.

Un agent est caractérisé par différents types d'états mentaux : croyance, intentions préférences, etc. La représentation des états mentaux peut se faire par l'utilisation de prédicats, de graphes conceptuels, d'objets, de frames.

Les divers types de raisonnement d'un agent se ramènent à des comportements fondamentaux tels que :

  • la prise de décision,

  • la révision des croyances,

  • la capacité à émettre des hypothèses.

Dans le détail, les principaux mécanismes de raisonnement d'un agent sont les suivants :

  • le raisonnement hypothétique et la prise de décision,

  • l'évaluation d'alternatives en fonction de ses préférences,

  • le respect ou la violation de prescriptions (obligations, interdictions),

  • le respect ou non des engagements de l'agent,

  • le raisonnement sur autrui,

  • la révision des croyances.

En fait, ces divers modes de raisonnement sont liés et doivent être mis en œuvre de façon concurrente par les agents.
 

    Structure du système
     


En IAD, on distingue deux grands types de systèmes :

  • Les Systèmes Cognitifs sont constitués d'un petit nombre d'agents de forte granularité, assimilables à des systèmes experts, une large place étant donnée aux aspects relationnels entre agents.

  • Les Systèmes Réactifs visent un comportement intelligent par la coopération d'agents de faible intelligence réagissant simplement aux événements du monde. La granularité de ces agents est faible ; ils n'ont pas connaissance des buts globaux et n’ont que de très faibles capacités de raisonnement sur la coopération. Un comportement intelligent global résulte du travail de ces agents non-intelligents (phénomène d'émergence).

Les agents peuvent communiquer :

  • Par partage de données; par l'intermédiaire d'une structure de données partagée comprenant tous les éléments nécessaires à la résolution du problème.

  • Directement entre eux, par envoi de messages, à l'aide d'un protocole de communication. Dans ce cas, les connaissances et les mécanismes de traitement sont distribués dans les agents.


DIFFÉRENCE FONCTIONNELLE ENTRE LES ARCHITECTURES CLASSIQUE ET LES ARCHITECTURES SMA


       
     

Pour terminer cette approche des systèmes multi-agents, complétons et résumons par deux citations le concept de système multi-agents :

  • "Les systèmes multi-agents apportent bien plus que des découpages de connaissances : ils renouvellent notre façon d'aborder un problème et de concevoir ce qu'est le raisonnement et l'intelligence. Le problème ne se résout plus en partant d'un état initial pour arriver à un état final, mais en construisant au fur et à mesure des solutions partielles qui se trouvent sur le chemin, chaque agent cherchant à apporter des éléments de solution au fur et à mesure de l'exploration". (Ferber 89).

  • "Les agents doivent prendre des décisions, pour leurs résolutions et leurs communications, basées sur des vues locales qui peuvent être incomplètes, incohérentes ou périmées. Ils doivent utiliser leurs possibilités de communication et ressources de calcul, non seulement pour la résolution du problème du domaine, mais aussi pour contrôler leurs actions et interactions" (Durfee, 89).


NOTRE SPÉCIFICITÉ ET NOTRE AVANC
ÉE TECHNOLOGIQUE


     


Nous pensons être les seuls en Europe et probablement sur le plan mondial à appliquer la technologie des systèmes multi-agents au domaine de la gestion de projet.

En résumé, les principaux apports de cette technologie dans le domaine sont :

  • Puissance dans la résolution des sections critiques.
  • Adaptabilité aux situations rencontrées.
  • Un pas important vers la gestion automatisé.
  • Auto apprentissage du systéme.