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
-
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 :
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 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
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.
|