6. Ingénierie logicielle orienté agent

6.6 Conclusions

L'informatique est en train de changer, de manière assez profonde. Tout d'abord, elle devient ubiquitaire, c'est-à-dire qu'elle est présente dans les objets de la vie courante : téléphones portables, assistants personnels, maison, etc. Elle devient ainsi de plus en plus diffuse et distribuée dans de multiples objets et fonctionnalités qui sont amenés à coopérer. La décentralisation des logiciels devient maintenant inéluctable du fait de la complexité des applications informatiques. La décentralisation est donc la règle, et une organisation coopérative entre modules logiciels est un besoin. On est ainsi naturellement conduit à chercher à donner plus d'autonomie et d'initiative aux différents modules logiciels. Le paradigme des systèmes multi-agents propose un cadre de réponse à ces deux enjeux complémentaires : l'autonomie et l'organisation.

Pourquoi les techniques basées sur le paradigme des systèmes multi-agents vont, en toute probabilité, réussir et devenir le courant principal de l'ingénierie logicielle ? Il y a deux raisons importantes pour croire que ces techniques seront largement adoptées. La première est que cette approche peut être regardée comme une prochaine étape naturelle dans l'évolution d'une gamme entière d'approches à l'ingénierie logicielle (Jennings, 2000).

Le développement de l'ingénierie logicielle des vingt dernières années a montré un mouvement vers des paradigmes et des langages qui utilisent des concepts abstraits provenant du domaine du problème même, par exemple l'approche orientée objet. Bien qu'il y ait certaines similarités entre les approches orientées objet et celles orientées agent, il y a aussi plusieurs différences importantes. Premièrement, les objets sont généralement passifs : ils ont besoin de recevoir un message avant de devenir actifs. Deuxièmement, bien que les objets encapsulent l'état et le comportement, ils n'encapsulent pas le choix de l'action. Troisièmement, l'approche orientée objet ne fournit pas un ensemble de concepts assez riche et les mécanismes nécessaires pour modéliser les systèmes complexes à un niveau suffisant d'abstraction. Finalement, les approches orientées objet offrent uniquement un support minimal pour spécifier et gérer les rapports organisationnels.

Les agents représentent une prochaine étape dans l'évolution des approches orientées objet. Tout comme le monde réel est peuplé d' objets (passifs) sur lesquels on exécute des opérations, il est également (si non plus) rempli d'agents actifs et pro-actifs qui inter-agissent afin d'atteindre leurs buts. Par conséquent, la vue orientée agents du monde est peut-être la façon la plus naturelle de caractériser beaucoup de types de problèmes. Les composants fondamentaux des modèles de programmation ont un degré de localisation et d'encapsulation de plus en plus élevé. Les agents suivent cette tendance en localisant les buts dans chaque agent, en donnant à chaque agent son propre thread de contrôle, et en encapsulant la sélection d'action. En plus, les agents offrent des mécanismes plus riches pour la réutilisation des composants.

Les techniques basées sur agents sont le modèle informatique idéal pour développer des logiciels ouverts et des systèmes distribués et connectés en réseau ( comme l'Internet). Les agents sont actifs et autonomes, donc ils sont des entités qui agissent pour atteindre des objectifs spécifiés. Ils sont réactifs et pro-actifs, donc les entités informatiques peuvent agir en faisant face à l'incertitude inhérente qui existe dans un environnement ouvert, et sont dotées de capacités d'interactions flexibles qui permettent d'interagir avec des entités inconnues au moment de la conception. De plus, les agents ont la capacité de représenter explicitement les rapports organisationnels.

Il faut aussi considérer les inconvénients potentiels de l'approche agents et des systèmes multi-agents. Quelques caractéristiques des agents qui donnent le pouvoir du paradigme peuvent mener à des pièges ou à des difficultés. Par exemple, les résultats de l'interaction entre agents sont parfois imprévisibles. Prédire le comportement du système général en partant de ces entités constituantes est extrêmement difficile à cause de la possibilité d'un comportement émergent. Il y a plusieurs possibilités pour contourner ces difficultés. Le concepteur peut utiliser des protocoles d'interaction dont les propriétés peuvent être analysées formellement, ou il peut adopter des structures organisationnelles prédéfinies. Mais ceci peut mener à la limitation de la nature et de l'étendue des interactions entre les agents du système. De telles solutions réduisent l'imprévisibilité du système, mais limitent du même coup le pouvoir de l'approche basée sur les agents. La communauté des chercheurs en systèmes multi-agents cherche activement des solutions pour surmonter ces difficultés.

En dépit de ces difficultés et en considérant les avantages et le pouvoir conceptuel du paradigme des systèmes multi-agents, il y a de bonnes raisons de penser que cette nouvelle approche deviendra un des paradigmes les plus influents, sinon le courant principal en ingénierie logicielle et en informatique.

Dans le monde des chercheurs en systèmes multi-agents et en intelligence artificielle distribuée, la communauté francophone a été l'une des premières à s'impliquer dans les recherches dans le domaine. L'activité française en systèmes multi-agents et en intelligence artificielle distribuée a commencé à être très visible internationalement au milieu des années 1980. En effet, plusieurs thèmes en SMA se sont développés spécifiquement en France.

Les Gasser, dans la préface du livre "Principes et architectures des systèmes multi-agents", Hermès, 2001, dit :

<< Une des forces de cette école française a été la capacité d'intégrer des perspectives provenant de plusieurs disciplines, en utilisant les résultats des unes pour faire avancer de nouveaux thèmes et problèmes dans d'autres. Par exemple, les chercheurs de la communauté francophone ont été parmi les premiers à étudier les rapports étroits entre les idées en matière de programmation à objets, en programmation concurrente et répartie, en représentation des connaissances et en systèmes multi-agents.
Un deuxième type d'intégration réalisé par la communauté francophone a été la tentative d'unifier les agents à grain fin et à gros grain. Les chercheurs français ont d'abord cherché à composer de plus grandes structures d'agents à partir de composants à grain fin, et à concevoir des problèmes distribués à très grande échelle mais à grain fin (tels que les mécanismes de vision de bas niveau) en tant que systèmes multi-agents.
Une troisième intégration a tenté d'unifier clairement les concepts d'architectures d'agents réactifs et délibératifs (cognitifs). Un certain nombre de chercheurs ont commencé au début des années 1980 à construire des systèmes multi-agents délibératifs émergents, ainsi que des structures complexes de résolution de problèmes à partir de composants réactifs. En outre, ils ont montré l'application pratique qui pouvait être faite de ces systèmes multi-echelles ainsi que les manières dont ils pouvaient être employés pour représenter des systèmes biologiques et physiques complexes, aussi bien que des problèmes de calcul.
En conclusion, les chercheurs français ont initié certaines des premières tentatives de méthodologies systématiques de construction de logiciel à base d'agents, résultats directs de leurs travaux d'unification.
>>

Comme on a pu le constater, le domaine des agents intelligents et systèmes multi-agents demeure encore aujourd'hui un domaine rempli de défis à surmonter, autrement dit un domaine très ouvert pour la recherche.

 

<< Section précédente Table de matières Section suivante >>

Politechnica University of Bucharest - 2002