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 nud de suppression, et invalider
l'action du module supérieur au moyen d'un nud 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.
|