| |
14
Juin 2001
J.P
Baquiast
Les systèmes
massivement
multi-agents
Retour à la lecture du feuilleton

Cette note doit beaucoup aux travaux d'Alain
Cardon*, que nous remercions
Les systèmes multi-agents ou massivement multi-agents
(SMA) constituent, après les algorithmes évolutionnaires,
le nouveau thème de recherche intéressant la simulation
informatique des phénomènes évolutifs.
Il s'agit, en simplifiant à l'extrême, de représenter
non plus des processus darwiniens relativement simples, sur le mode
mutation-sélection, mais de véritables entités
évolutives du monde réel, qu'il s'agisse d'organismes
vivants, de sociétés animales ou humaines, de consciences
individuelles ou collectives. Comme ces entités sont à
l'évidence complexes, il n'est pas possible d'analyser leurs
comportements évolutifs sans faire l'effort de les décomposer
en parties plus petites, et plus facilement analysables. Mais décomposer
le tout en parties ne conduit à rien, dans ce cas, si on
n'a pas pris conscience du fait que les parties, dans la plupart
des cas, évoluent pour leur compte en interagissant, et qu'il
n'est pas possible de déduire de leur comportement particulier
celui de l'ensemble du système, sauf de façon statistique.
On sait depuis Poincarré que l'on ne peut prévoir
exactement le comportement d'ensemble d'un système comportant
3 corps ou plus en interaction, si ces corps ont des comportements
différents. La modélisation est alors obligée
de recourir à la prévision sur le mode statistique
ou probabiliste.
Ceci est ennuyeux si l'on veut prédire avec le plus d'exactitude
possible le comportement futur d'un système complexe. C'est
ainsi qu'en météorologie, les prévisions ne
sont jamais absolument fiables. Mais lorsque l'on veut simuler ce
même système par un modèle capable de s'adapter
le plus souplement possible à son environnement, la propriété
du modèle de n'être pas entièrement déterministe
devient une qualité. Ainsi peut s'introduire le hasard qui
est avec la nécessité au cur des mécanismes
darwiniens.
Quant un système est composé de milliers ou plus
d'agents, la difficulté pour réaliser un modèle
évolutif est évidemment très grande. Mais,
comme toujours en matière d'intelligence artificielle évolutive,
il paraît possible d'initialiser les recherches sur la base
des technologies et outils disponibles, pour progresser en parallèle,
sur le mode constructiviste, avec le développement de ces
technologies et outils.
La recherche des agents
Pourquoi en est-on venu de parler de SMA à propos d'entités
que spontanément on est tenté d'identifier, via leur
comportement, de façon globale ? Parce que, depuis longtemps,
l'observation de la nature avait montré que le comportement
holiste d'un organisme résulte de la coopération permanente
des nombreux organes ou constituants de cet organisme. Etudier le
rôle de chacun et la façon dont ce rôle se conjugue
avec celui des autres permet d'éclairer le fonctionnement
de l'ensemble. Ce fut l'essentiel du travail de l'anatomie et de
la physiologie pendant plusieurs siècles.
Plus récemment, la mise en évidence des compétitions
darwiniennes pouvant intervenir entre constituants d'un organisme
pour la production du comportement d'ensemble a permis d'introduire
l'analyse des mécanismes évolutifs au sein même
de l'organisme. Ce fut le cas par exemple dans l'étude des
processus de compétition entre insectes sociaux dans la construction
du nid, ou entre neurones dans l'élaboration d'une représentation.
Les algorithmes évolutionnaires et automates évolutionnaires
ont été inspirés par l'observation et la modélisation
de tels systèmes naturels.
L'approche SMA pour l'étude d'un système complexe
donné du monde réel consiste donc à identifier
ceux de ses composants qui paraissent les plus actifs dans la détermination
de son comportement d'ensemble, composants que l'on appellera agents,
et à étudier les rôles de ces agents, pris individuellement
d'abord, puis en groupe. Il faut ensuite modéliser l'ensemble
en informatique.
Quand la plus grande partie des agents est stable dans le temps,
ou quand ils n'interagissent pas (situation en fait purement théorique,
mais qui est pratiquement celle de la matière aux conditions
ordinaires), il est facile de prédire le comportement du
système à partir du comportement des agents. Le système
est en équilibre, fermé et déterministe. Dès
que les agents constituants du système sont plus ou moins
complexes, autonomes et actifs-proactifs, ils réagissent
d'une certaine façon aux modifications de l'environnement,
en s'y adaptant. Par ailleurs et dans le même temps ils interagissent
d'une façon qui ne peut être précisée
à la construction, mais qui traduit une adaptation globale
du système d'ensemble à son environnement. Le système,
considéré comme une organisation d'agents, adopte
ce faisant un comportement adaptatif imprévisible dans le
détail. On est conduit pour le décrire à faire
appel à une représentation statistique du comportement
des agents.
Le système d'ensemble, vu de l'extérieur, apparaît
comme doté d'une plus ou moins grande autonomie comportementale.
De plus, comme il réagit globalement aux modifications de
l'environnement, en s'y adaptant au mieux, l'architecture ou la
morphologie qu'il adopte sont utilisables par une partie des agents
du système pour évaluer le comportement d'ensemble,
qui devient à son tour un agent pour les adaptations ultérieures.
Le système est devenu auto-adaptatif.
Dès lors que l'on veut modéliser un système
adaptatif du monde réel, il est évident que l'on ne
peut plus utiliser la mécanique des systèmes stables
ni celles des systèmes mécaniques ou informatiques
construits pour réaliser des tâches précises,
connues à l'avance. Par ailleurs, un tel système,
constitué d'un certain nombre de composants, oblige à
modéliser parallèlement les divers types d'agents
avec leurs comportements spécifiques, et la façon
dont le comportement de l'organisme global peut être modélisé
à son tour compte tenu de l'activité de ces agents.
Le problème devient particulièrement ardu si l'organisme
choisi comporte de très nombreux agents, eux-mêmes
jouant des rôles fonctionnels très différents
(on parlera de systèmes massivement multi-agents).
Agents et objets
Les systèmes informatiques combinent évidemment depuis
longtemps des algorithmes de détail pour obtenir le fonctionnement
d'ensemble d'un système. C'est ainsi que la production d'un
bulletin de paye résulte du rapprochement entre un premier
traitement, celui du fichier décrivant le salarié,
et de plusieurs autres, décrivant son activité. Pour
faciliter la programmation d'ensemble, tout en assurant la mise
à jour la plus rapide possible des différents fichiers,
la programmation a fait appel depuis une vingtaine d'années
à ce que l'on a appelé des objets, eux-mêmes
analysés et programmés de façon spécifique.
Ainsi l'objet salarié, lui-même possiblement décomposé
en objets " état-civil du salarié " et objet
" position dans la ligne hiérarchique ", est traité
à part de l'objet " travail accompli pendant le mois
", et de l'objet " grille des salaires ". La programmation
d'ensemble, aboutissant à la production du bulletin de paye
individuel, peut alors est réalisée à partir
de progiciels n'obligeant pas à dérouler pour chaque
salarié l'ensemble des calculs concernant le processus tout
entier.
Dans ce cas, le système global, qui est la paye mensuelle,
peut être calculé à l'avance de façon
aussi fine que possible - tant du moins que l'on admette de ne mettre
à jour les fichiers individuels qu'une fois par mois. Les
objets ne sont pas en effet actifs ou réactifs. Ils ne se
modifient que dans le cadre de règles prévues à
l'avance, qui les enferment dans un comportement lui-même,
de ce fait, prévisible, tant dans le détail qu'en
ce qui concerne son influence sur le comportement des autres objets.
Les objets comme le système d'ensemble constituent donc des
systèmes fermés, entièrement prévisibles.
La programmation-objet n'a donc rien à voir avec la programmation
évolutionnaire. Pour accéder à cette dernière,
il faut remplacer le concept d'objet par celui d'agent. Ce glissement
sémantique n'est pas d'ailleurs sans signification "
politique ". Nous passons de la représentation d'un
système complexe constitué d'objets sans autonomie
à celle d'un système constitué d'agents plus
ou moins autonomes. Ce dernier système est beaucoup plus
adaptatif que le premier, ce qui pourrait conduire à conclure
en forme de boutade que les régimes démocratiques,
constitués d'agents disposant de pouvoirs distribués,
sont plus adaptatifs que les régimes dictatoriaux, constitués
d'objets qui sont de simples rouages de la machine centrale.
Le concept d'objet, et la programmation objet, ne sont pas à
rejeter pour autant dans la modélisation des systèmes
évolutionnaires. L'objet servira à représenter
des éléments de l'environnement, voire du système
lui-même, qui peuvent être considérés
comme stables.
L'agentification
La mise en évidence des agents suppose un certain nombre
de choix méthodologiques, voire scientifiques sinon philosophiques.
On pourra employer le terme d' " agentification " ou de
réification. Il s'agit d'un travail qui, lorsque l'on observera
la nature, devra se développer de façon continue,
au fur et à mesure que de nouveaux éléments
se révéleront comme actifs dans le comportement d'ensemble.
Dans la construction d'un modèle artificiel par contre, il
faudra limiter sinon le nombre, du moins les catégories d'agents
qui seront retenues, sauf à rendre le modèle complètement
instable.
On peut remarquer que l'agentification est un réflexe pratiqué
depuis longtemps par le langage philosophique, à base de
métaphores. C'est ainsi que, dans le vocabulaire ou dans
la peinture des siècles précédents, on agentifiait
volontiers les qualités ou les vices (la raison, l'avarice),
en leur donnant des figures humaines qui se disputaient le gouvernement
des âmes. En fonction du combat que se livraient ces personnages-passions
chez l'homme, celui-ci était entraîné au bien
ou au mal, d'une façon qui n'était pas prévisible
a priori.
Nous avions là des modèles multi-agents avant la
lettre, où on retrouve les contraintes de tout modèle
: identifier au départ un certain nombre d'agents différents,
les caractériser compte tenu de leurs spécificités,
sur le plan de leur domaine d'action et de leurs comportements,
étudier leurs interactions possibles, partielles et globales.
Si nous voulions simuler artificiellement la production d'un état
de conscience chez l'homme, nous aurions ainsi à agentifier
un certain nombre de phénomènes internes (perceptions
de l'état du corps, accès à des représentations
déjà mémorisées, etc. ) et de phénomènes
externes (informations reçues par l'appareil sensoriel, influences
mémétiques, etc.). L'agentification devra descendre
jusqu'à l'identification des supports neurologiques (objets
mentaux) traduisant les différentes entrées et traitements
intermédiaires de l'information. Il conviendra ensuite de
traduire ces résultats d'observation en données et
programmes informatiques s'appliquant à chacun des types
d'agents ainsi identifiés, et les représentant au
mieux dans un système artificiel. On obtiendra ainsi des
agents artificiels, sous forme d'algorithmes, dont il faudra ensuite
étudier les effets combinatoires. Leur combinaison produira,
comme on l'a dit, des comportements instables au niveau global,
uniquement descriptibles en termes probabilistes. Mais les mathématiques
fournissent de nombreux opérateurs spécialisés
permettant de mettre un peu d'ordre dans la complexité.
Tout ceci, comme l'ont montré les travaux de Prigogine,
conduit à prendre en compte la flèche du temps et
l'irréversibilité. Les fluctuations jouent alors un
rôle central, et toute stabilisation ne peut être que
temporaire. L'évolution, du fait notamment des réactions
des agents en contact avec l'environnement du système, se
fait loin de l'équilibre. Ceci ne veut pas dire pour autant
que le système soit totalement chaotique. Il est plus ou
moins souplement adaptatif.
Dans l'approche informatique des SMA, les agents composant ceux-ci
sont définis comme autonomes, ayant des aptitudes sociales
(c'est-à-dire pouvant interagir avec d'autres ou coopérer
avec eux, et réactifs-proactifs, (c'est-à-dire capables
de s'activer ou redéfinir leur action). L'agent est donc
lui-même un automate doté de divers modules caractérisant
les automates, plus ou moins développés : modules
de connaissance, de communication, d'action
Certains des agents
jouent au profit du SMA le rôle d'agents d'interface. D'autres,
celui de générateurs de représentations s'organisant
en scènes et en scénarios. Les différents agents
sont des processus qui se retrouvent en compétition pour
l'accès aux données ou ressources communes Le comportement
d'ensemble du SMA est distribué entre tous ces agents et
réseaux d'agents de façon à la fois peu stable
et redondante. Le comportement d'ensemble peut donc être complexe
et générer de l'émergence.
Précisons qu'à ce jour, il n'a pas encore été
possible de réaliser un SMA évolutif doté d'un
nombre important d'agents, même en limitant considérablement
l'hétérogénéité de ceux-ci. La
production de générations successives d'un SMA, sur
le mode darwinien de la mutation-sélection, suppose en effet
que ces générations intègrent les mutations-sélections
des agents. Or, il semble encore impossible de déterminer
les critères d'évolution d'un agent donné,
en fonction de celles des milliers d'autres évoluant indépendamment
de lui.
L'auto-adaptation
Mais on peut penser que ces difficultés se résoudront
rapidement. Pour réduire en effet l'instabilité et
la sensibilité aux conditions initiales, propre à
tout système dynamique, comme le fait la nature dans le cas
des systèmes vivants évoluant loin de l'équilibre,
il faut envisager de rendre le SMA relativement auto-adaptatif.
On définira d'abord, sous forme d'ontologies, les limites
d'ensemble du système et des fonctionnalités envisagées,
puisqu'il serait irréaliste d'envisager un système
s'adaptant à l'ensemble du champ des possibles. On définira
ensuite plusieurs catégories fonctionnelles d'agents ou de
groupes d'agents, correspondants aux attitudes futures que l'on
souhaite obtenir du système. A partir de ces prémisses,
le système sera conçu pour se développer de
façon incrémentielle, pas à pas. Le système
s'augmentera au fur et à mesure qu'il s'interfacera avec
son environnement.
Pour obtenir l'auto-adaptation, il faudra que le système,
grâce à certains de ses agents, puisse générer
la scène représentant l'environnement dans lequel
il opère et sa propre action dans cet environnement. Mais
il faudra simultanément qu'il puisse se représenter
la façon dont il construit cette scène et ordonnance
son action en fonction des finalités qui sont les siennes.
Cette seconde catégorie de représentations pourra
permettre au système de revenir en boucle sur les modalités
de construction de la scène et de l'action afin de les modifier
en rétroaction. La démarche d'ensemble sera constructiviste.
Nous n'entrerons pas plus ici dans le détail des modalités
de réalisation de modèles de SMA, surtout quand il
s'agira de donner à ceux-ci les caractères d'une conscience
artificielle. On trouvera dans les travaux de Alain Cardon de très
nombreux exemples et démonstrations des actions possibles*.
Indiquons seulement que les agents peuvent être des algorithmes,
mais qu'ils peuvent aussi être des algorithmes associés
à des hardware. Ceci donnera des systèmes multi-agents
qui se construiront simultanément sur le plan des fonctions
et des supports de mémoire électroniques ou autres
permettant l'exécution de ces fonctions. Ainsi le système
se rapprochera encore plus de l'organisation des cerveaux, au sein
duquel l'évolutivité du réseau neuronal est
indissociable de l'évolutivité des fonctions cérébrales.
Lorsque les SMA auront réussi à associer des centaines
de milliers ou millions d'agents de ce type, on pourra commencer
à parler sérieusement de cerveaux artificiels utilisables
pour simuler les comportements réels massivement multi-agents,
comme les comportements de foule, de mouvements économiques
ou de flux mémétiques.
* Alain Cardon, Conscience
artificielle et systèmes adaptatifs, Eyrolles, 1999 
Automates Intelligents © 2001
|
|