Technologie

Technologie

Programmation Multi-Agents VS Programmation orientée objet

Les Systèmes Multi-Agents (SMA)

Les Systèmes Multi-Agents (SMA) ont montré leur pertinence pour la conception d’applications distribuées (logiquement ou physiquement), complexes et robustes.

Le concept d’agent est aujourd’hui plus qu’une technologie efficace ; il représente un nouveau paradigme pour le développement de logiciels dans lesquels l’agent est un élément autonome qui a un objectif, évolue dans un environnement et interagit avec d’autres agents au moyen de langages et protocoles.

La programmation orientée objet

La programmation orientée objet, mise au point dans les années 70, avait déjà permis de simplifier les simulations en proposant des « objets », c’est-à-dire des images graphiques déjà préprogrammées en lieu et place de lignes de codes, et représentant un concept, une idée ou une entité du monde physique.

Le langage de programmation orienté agent va plus loin. « On passe à un niveau d’abstraction supérieur, car les agents sont dotés de fonctions plus évoluées qui leur permettent de communiquer avec les autres agents avec lesquels il vont être liés, de percevoir leurs états et de réagir par rapport à ces derniers. Une petite forme d’intelligence ! »

Ce langage permet surtout de « simuler des situations pour lesquelles on ne connaît pas la solution physique ou pour lesquelles il n’y a pas de solution unique »

La mise en place d’un Framework Multi-Agents pour la conception d’application de gestion lève 3 interrogations principales :

1) Comment définir tous ces objets sans retomber dans une définition d’objet ?

Pour cela, nous avons défini non pas l’objet, mais la vision qu’ont les autres objets envers lui dans un contexte défini ; nous n’avons plus une classe d’objets, mais une définition d’objets dans un contexte.

C’est l’exemple du businessman qui rentre chez lui. Un homme d’affaires quitte son bureau, il croise son employé et en entrant chez lui il retrouve sa femme.

Si nous définissons l’homme d’affaires comme un objet, nous voyons qu’il passe de l’état de chef d’entreprise à celui de mari pourtant lui-même n’as pas évolué ; c’est la représentation qu’ont les objets autour de lui qui le définit suivant le contexte où il évolue et non ce qu’il est lui par lui-même.

2) Comment modifier la conception de l’application? (Une application = une classe)

Nous devons pour cela remplacer l’intelligence globale par une intelligence unitaire et limitée : une application n’est plus égale à une classe mais par une somme d’agents créant ainsi l’univers complexe le constituant.

Nous schématiserons une nouvelle fois ce concept par une représentation imagée : la nature a conçu une intelligence artificielle comme un essaim d’abeilles, qui est capable de transmettre des informations et hiérarchiser des fonctions sans posséder un cerveau, mais en se basant sur une somme d’intelligences primaires qui, additionnées, forment une intelligence complexe.

3) Comment maintenir et faire évoluer toutes ces applications ?

En remplaçant la programmation globale par une explication limitée de chaque unité, le Framework va se comporter comme un chef d’orchestre qui va permettre à tout cet ensemble de créer un schéma et un workflow métier.