2. Architectures des agents et langages
2.2 Architectures des agents intelligents

2.2.3 Architecture réactive

Les architectures réactives représentent le fonctionnement de l'agent au moyen de composantes avec une structure de contrôle simple, et sans représentation évoluée des connaissances de l'agent. L'intelligence de l'agent est vue comme étant le résultat des interactions entre ces composantes et l'environnement. Cela veut dire qu'une telle architecture peut résoudre des problèmes complexes, qui normalement demandent un comportement intelligent, sans traiter l'intelligence du point de vue classique de l'intelligence artificielle. On dit que l'intelligence émerge de l'interaction entre des composantes simples, et entre les agents réactifs et l'environnement. Cette approche, qui diffère beaucoup de la conception des agents intelligents, est apparue comme une solution aux critiques visant les approches symboliques, notamment la complexité des calculs nécessités par ces approches, qui paraīt incompatible avec les ressources limitées des agents, et la difficulté de trouver toujours le bon modèle cognitif pour certaines applications.

L'architecture réactive la plus connue et la plus influente est celle proposée par Rodney Brooks ; elle s'appelle architecture de subsomption, en anglais "subsumption architecture". Une architecture de subsomption comporte plusieurs modules, chaque module étant responsable de la réalisation d'une tāche simple. Ces modules correspondent à des comportements spécifiques pour accomplir une tāche particulière, et s'appellent modules de compétence. On peut voir cette architecture, dans un premier temps, comme ayant la structure des agents réactifs présentée dans la section 2.1, figure 1, où l'agent a plusieurs composantes de décision, chaque composante correspondant à un module de l'architecture de subsomption. Pour la perception de l'environnement, plusieurs modules peuvent assumer l'exécution d'une action différente ; pour choisir l'action la plus opportune, les modules sont organisés en couches hiérarchisées, chaque couche ayant une priorité différente. Les couches supérieures correspondent à des tāches plus abstraites qui sont détaillées à l'aide des tāches plus concrètes et plus simples, les couches supérieures ayant une priorité plus petite que les couches inférieures. Les couches inférieures correspondent aux tāches simples et elles ont une priorité plus grande. La figure 5 montre une telle architecture.


Figure 5. Architecture réactive de subsomption

Si on utilise cette architecture pour construire un robot qui doit faire l'exploration de la planète Mars, on peut définir :

  • M0 - un module qui a la compétence d'éviter les obstacles ;
  • M1 - un module M1 qui est responsable des déplacements dans l'environnement tout en évitant les obstacles à l'aide de M0 ;
  • M2 - un module qui a la compétence supérieure, la plus abstraite, de faire l'exploration systématique de la planète en se déplaēant grāce aux actions du module M1.

Un module sur une couche inférieure a une priorité plus grande qu'un module situé sur une couche plus élevée, parce qu'il est responsable d'une tāche plus simple mais plus "urgente". Dans ce but, le fonctionnement d'un module situé sur une couche supérieure est subordonné à un module inférieur. Un module sur une couche inférieure peut modifier l'entrée d'un module supérieur au moyen d'un nœud de suppression, et invalider l'action du module supérieur au moyen d'un nœud d'inhibition, comme on peut le voir dans la figure 5. Par exemple, si notre robot veut se déplacer vers l'Est en partant d'une certaine position et qu'il n'y a pas d'obstacle dans cette direction, l'action exécutée par la composante exécution est celle commandée par M1 de se déplacer vers l'Est. Si, par contre, il y a un obstacle, le module M0 prend en compte cet obstacle par sa perception de l'environnement et inhibe le déplacement vers l'Est. M1 essaiera alors de se déplacer dans une autre direction. C'est cette organisation qui justifie l'appellation de subsomption de l'architecture.

Le fonctionnement de l'agent est décrit par un ensemble de règles de comportement, "behaviour rules" en anglais. Une règle de comportement est semblable à une règle de production et elle a deux parties : une condition c et une action a. La condition correspond à une perception de l'environnement, et l'action à une action possible d'un module de compétence. Soit

Comp = {(c, a) | c dans P, a dans A}

l'ensemble de règles de comportement, où P désigne l'ensemble des perceptions, et A les actions possibles de l'agent. à chaque module de compétence est associé un sous-ensemble des règles de comportement spécifiques à ses compétences.

On peut définir une relation d'ordre ou relation inhibitrice totale sur l'ensemble Comp, Š: Comp x Comp qui établit la priorité des modules de compétence. Soit R l'ensemble des règles de comportement qui peuvent être exécutées à un certain moment, notamment les règles (c, a) pour lesquelles la perception p sur l'environnement satisfait la condition c. Alors, les règles qui sont effectivement exécutées sont

{(c, a)| {(c, a) dans R et non existe pas (c', a') dans R tel que (c', a') < (c, a)}

De cette manière, on peut indiquer quel module aura la décision de l'action à exécuter pour une certaine perception sur l'environnement.

Question: Est-ce que l'architecture décrite dans la figure 5 correspond à un agent réactif ou à plusieurs agents réactifs ?

Cliquer ici pour voir la réponse

Le concepteur de cette architecture a proposé plus tard un langage de programmation, appelé langage de comportement, pour implémenter le fonctionnement des agents réactifs.

Les architectures réactives ont l'avantage de la simplicité et de l'efficacité de calcul. Pourtant, elles présentent plusieurs limitations, ce qui fait que ces architectures ne peuvent pas être utilisées dans de nombreuses classes d'applications. Les principales objections contre les architectures réactives sont les suivantes : les agents ont une vision de courte durée sur la résolution du problème, et ils peuvent ne pas toujours choisir la meilleure action à exécuter à un certain moment ; comme les agents réactifs ne maintiennent pas une représentation de l'environnement, ils ne peuvent pas avoir des buts, et encore moins doter les états d'utilité ; si on a besoin de beaucoup de couches pour modéliser le comportement de l'agent, on ne peut pas toujours prévoir toutes les interactions possibles ; dans ce cas, même le grand avantage de cette architecture, l'émergence de l'intelligence par interaction, peut devenir un désavantage, car des interactions indésirables peuvent émerger. Pour avoir le meilleur des deux solutions, à savoir architectures cognitives et réactives, les chercheurs ont conēu des architectures hybrides qui combinent les caractéristiques de ces deux architectures.

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

Politechnica University of Bucharest - 2002