• Aucun résultat trouvé

Étude comparative des langages de programmation d’agents

2. Les Agents Artificiels

3.2. Étude comparative des langages de programmation d’agents

Cette section présente une comparaison entre les différents langages présentés dans le chapitre précédent par rapport aux caractéristiques (Martelli et al., 1995) présentés dans la section intitulée: «Les caractéristiques des langages de programmation agent».

Ces caractéristiques sont: le temps, la perception, la communication, la concurrence, le non-déterminisme, la modularité et la sémantique.

Temps

Dans Agent-0 le temps est inclus dans toutes les constructions du langage (Martelli et al., 1995). Les opérations autorisées sur les variables de temps sont seulement les opérations mathématiques (des sommes et des différences).

Dans ConGolog, le temps est directement liée aux situations (Martelli et al., 1995), par exemple: s0 est la situation de l’agent au temps t = 0 et do([a1,…,an], s0) est sa situation au temps n. Il n'existe pas d’opérateurs spécifiques pour le gérer.

Pour 3apl, le temps est directement lié aux états de l'agent. Par exemple: la base de buts initiale représente la base de buts au moment t = 0. Le même principe est adopté pour CLAIM et JAL.

Perception

Les agents devraient percevoir tous les changements qui surviennent dans leur environnement. Pour 3apl, quand un agent exécute une action qui change l’état de l'environnement, ses résultats mettent immédiatement à jour sa base de croyances sans vraiment percevoir ces changements. Par conséquent, cet agent n’observe pas le plus souvent son environnement. ConGolog et Agent-0 n’ont pas de constructions explicites pour la perception de l’environnement (Martelli et al., 1995).

Communication

AGENT-0 supporte la communication, il offre un ensemble de structures représentant les actions communicatives (par exemple : INFORM, REQUEST, UNREQUEST, …etc.). Ces structures peuvent être utilisés pour construire n'importe quel type de communication (Martelli et al., 1995). Cependant, il y a une forte limitation liée à la syntaxe de l'action demandée (Martelli et al., 1995): par exemple, si un agent A demande une action à l'agent B, ce dernier n'a aucun moyen pour comprendre son contenu afin de l’effectuer, par conséquent, les agents doivent spécifier les actions demandées en utilisant la même syntaxe.

3apl permet la communication entre les agents à l’aide de primitives de communication ayant une sémantique opérationnelle formelle.

Les agents CLAIM sont aptes à communiquer point-à-point ou par diffusion (El Fallah-Seghrouchni & Suna, 2003).

ConGolog n’offre pas des primitives de communication, le développeur doit définir ses propres primitives (Martelli et al. , 1995).

Pour JAL, différentes infrastructures de communications peuvent être fournies par l’utilisation de méthodes appropriées (Busetta et al., 1999).

Concurrence

ConGolog supporte les deux types de concurrence (la concurrence des actions dans le même agent et/ou la concurrence entre les agents) (Martelli et al., 1995): il propose

différentes constructions pour l'exécution simultanée des processus internes du même agent ou la représentation de l’exécution simultanée des différents agents.

3apl permet la concurrence entre les agents, ainsi que l'exécution d'un ensemble de buts à l’intérieur du même agent. CLAIM supporte les deux types de concurrence (El Fallah-Seghrouchni & Suna, 2003).

Pour JAL, le noyau de JACK prend en charge les deux types de concurrence et permet aussi la combinaison des deux. Toutefois, AGENT-0 ne prend pas en charge la concurrence (Martelli et al., 1995).

Non déterminisme

Un programme est déterministe si, pour n'importe quel état, il y a exactement un seul état prochain possible. Les programmes en CLAIM sont implicitement non-déterministes en raison de la concurrence (El Fallah-Seghrouchni & Suna, 2003). Dans plusieurs situations, un programme peut évoluer vers plusieurs états à partir d'un état donné.

ConGolog permet un choix non déterministe entre les actions, un choix non déterministe des arguments et une itération non déterministe (Martelli et al., 1995).

3apl et JAL supportent le non-déterminisme (par exemple, un agent 3apl choisit les règles correspondantes aux buts, puis il sélectionne une à exécuter et ainsi de suite), tandis qu’AGENT-0 ne supporte aucun comportement non déterministe (Martelli et al., 1995). Modularité

ConGolog permet la définition de procédures. Elles sont définies par des macros dans les formules de calcul de situations (Martelli et al., 1995). AGENT-0 ne prend pas en charge la définition des procédures.

Un agent 3apl est composé d'un certain nombre d’éléments (tels que la base de croyance, la base des buts,… etc.), mais cette décomposition ne représente pas la modularité parce que leurs fonctionnements sont étroitement liés et ils ne peuvent pas être considérés comme des modules distincts (Van Riemsdijk et al., 2006). Un agent CLAIM ne peut supporter la modularité que si les sous agent sont considérés comme des modules distincts avec des fonctionnalités indépendantes.

Java supporte la modularité et comme JAL est une extension de celui-ci, on conclue qu'il la supporte aussi.

Sémantique

Tous les langages discutés ont une sémantique formelle, sauf AGENT-0 et JAL. Le tableau ci-dessous représente une comparaison entre les différents langages.

Langages Déclaratifs Impératif Langages Hybrides

Langages AGENT-0 Claim JAL 3apl ConGolog

Temps  ≈ ≈ ≈ ≈ Perception x x x x x Communication     ≈ Concurrence x     Non déterminisme x     Modularité x   x  Sémantique x  x  

 : l’aspect est assuré. x : l’aspect est non assuré. ≈ : l’aspect est assuré partiellement. Tab.1. Comparaison des langages présentés selon des critères généraux.

Ce tableau montre les points forts et faibles des langages de programmation orienté-agent selon quelques caractéristiques. Ces dernières sont choisies selon le travail à développer ou pour donner une vue générale de ces langages.

La comparaison présentée ci-dessus donne une idée générale des langages présentés. Les caractéristiques utilisées sont très importantes et utiles afin d’avoir une vue globale du langage, mais il y a aussi d'autres aspects qui devraient être examinés.