2. Architectures des agents et langages
2.2 Architectures des agents intelligents
2.2.2 Architecture BDI
Les composantes BDI
Une architecture BDI est conçue en partant du modèle "Croyance-Désir-Intention",
en anglais "Belief-Desire-Intention", de la rationalité
d'un agent intelligent. Dans ce qui suit, on va présenter d'une
manière informelle, intuitive, la signification de ces trois éléments
dans un modèle BDI. Le modèle a une théorie logique
formelle associée, mais on ne va pas entrer dans les détails
de celle-ci.
Le B = Belief = Croyance
Les croyances d'un agent sont les informations que l'agent possède
sur l'environnement et sur d'autres agents qui existent dans le même
environnement. Les croyances peuvent être incorrectes, incomplètes
ou incertaines et, à cause de cela, elles sont différentes
des connaissances de l'agent, qui sont des informations toujours vraies.
Les croyances peuvent changer au fur et à mesure que l'agent, par
sa capacité de perception ou par l'interaction avec d'autres agents,
recueille plus d'information.
Pour en savoir plus sur les connaissances et croyances des agents intelligents
vous pouvez parcourir notre premier cours
en ligne
Le D = Desire = Désir
Les désirs d'un agent représentent les états de
l'environnement, et parfois de lui-même, que l'agent aimerait voir
réalisés. Un agent peut avoir des désirs contradictoires ;
dans ce cas, il doit choisir parmi ses désirs un sous-ensemble
qui soit consistant. Ce sous-ensemble consistant de ses désirs
est parfois identifié avec les buts de l'agent.
Le I = Intention = Intention
Les intentions d'un agent sont les désirs que l'agent a décidé
d'accomplir ou les actions qu'il a décidé de faire pour
accomplir ses désirs. Même si tous les désirs d'un
agent sont consistants, l'agent peut ne pas être capable d'accomplir
tous ses désirs à la fois.
L'exemple suivant va apporter plus de clarification à ce modèle.
L'agent Pierre a la croyance que, si quelqu'un passe son temps à
étudier, cette personne peut faire une thèse de doctorat.
En plus, Pierre a le désir de voyager beaucoup, de faire une thèse
de doctorat et d'obtenir un poste d'assistant à l'université.
Le désir de voyager beaucoup n'est pas consistant avec les deux
autres et Pierre, après réflexion, décide de choisir,
parmi ces désirs inconsistants, les deux derniers. Comme il se
rend compte qu'il ne peut pas réaliser ses deux désirs à
la fois, il décide de faire d'abord une thèse de doctorat.
En ce moment Pierre a l'intention de faire une thèse et, normalement,
il va utiliser tous ses moyens pour y parvenir. Il serait irrationnel
de la part de Pierre, une fois sa décision prise, d'utiliser son
temps et son énergie, notamment ses moyens, pour voyager autour
du monde. En fixant ces intentions, Pierre a moins de choix à considérer
car il a renoncé à faire le tour des agences de voyage pour
trouver l'offre de voyage qui le satisferait au mieux.
C'est cette idée même qui est au cœur de la théorie
BDI de l'action rationnelle, proposée pour la première
fois par Michael Bratman. C'est une théorie du raisonnement pratique
qui essaie de surprendre comment les gens raisonnent dans la vie de tous
les jours, en décidant, à chaque moment, ce qu'ils ont à
faire. En développant sa théorie, Bratman montre que les
intentions jouent un rôle fondamental dans le raisonnement pratique,
car elles limitent les choix possibles qu'un humain (ou un agent artificiel)
peut faire à un certain moment.
Une architecture BDI est alors un
bon candidat pour modéliser le comportement d'un agent intelligent
car :
- elle s'appuie sur une théorie connue et appréciée
de l'action rationnelle des humains ;
- la théorie a été formalisée dans une logique
symbolique formelle, rigoureuse ;
- elle a été implémentée et utilisée
avec succès dans beaucoup d'applications.
Les systèmes d'agents "classiques" qui ont implémenté
l'architecture BDI sont :
- IRMA = Intelligent Resource-bounded Machine Architecture, et
- PRS = Procedural Reasoning System
Le prototype PRS par exemple, développé à Stanford
Research Center, a été ensuite utilisé dans le système
du contrôle du trafic aérien OASIS à l'aéroport
de Sydney en Australie, dans le système du management de business
SPOC et il est devenu un produit commercial de la compagnie Agentis Solutions.
Ces deux systèmes sont les plus connus, mais bien d'autres systèmes
multi-agents et applications sont réalisés dans une conception
BDI.
La figure suivante présente les composantes principales d'une
architecture BDI.
Figure 4. Architecture BDI d'un
agent
L'agent a une représentation explicite de ses croyances, désirs
et intentions. On dénote par B l'ensemble des croyances de l'agent,
par D l'ensemble de ses désirs, et par I l'ensemble de ses intentions,
et par B, D et I les croyances, désirs et
intentions courantes de l'agent. Les ensembles B, D et I peuvent être
représentés au moyen de divers modèles de représentation
de connaissances, par exemple en utilisant la logique des prédicats
du premier ordre, une logique d'ordre supérieur, le modèle
des règles de production, ou bien comme de simples structures de
données.
Pour en savoir plus sur la représentation des connaissances pour
les agents intelligents vous pouvez parcourir notre premier cours
en ligne
L'agent doit produire des plans, notamment une séquence d'actions
qu'il va exécuter pour résoudre le problème. La représentation
des actions la plus commune consiste à représenter les effets
de ces actions sur l'environnement. Par exemple, si dans un état
de l'environnement, l'agent déplace un chariot de la pièce
A à la pièce B, la représentation de cette action
sera "déplacer-chariot de A à B" et l'effet sur
l'environnement, contiendra notamment le fait que le chariot n'est plus
dans la pièce A et qu'il est dans la pièce B. Le résultat
d'une action sera celui envisagé si l'environnement est déterministe.
Les plans conçus par l'agent sont toujours des structures de connaissances
ou structures de données. LibP est une bibliothèque
de plans. Cette composante peut être présente ou non dans
l'architecture. Si elle existe, le processus de planification de l'agent
est simplifié car il peut retrouver des plans adéquats à
une certaine situation en parcourant cette bibliothèque de plans.
Le chapitre 5 donnera plus d'information sur le processus de planification.
Dans la figure 4, les carrés représentent des structures
de connaissances ou de données alors que les ovales représentent
des composantes de contrôle et d'exécution.
Par la suite, nous considèrerons les fonctions suivantes :
- revc : B x P ->B est la fonction
de révision des croyances de l'agent lorsqu'il reçoit de nouvelles
perceptions sur l'environnement, où P représente
l'ensemble des perceptions de l'agent ; elle est réalisée
par la composante Révision des croyances ;
- options : D x I->I est la fonction
qui représente le processus de décision de l'agent prenant
en compte ses désirs et ses intentions courantes ; cette
fonction est réalisée par la composante Processus de
décision ;
- des : B x D x I->D est la
fonction qui peut changer les désirs d'un agent si ses croyances
ou intentions changent, pour maintenir la consistance des désirs
de l'agent (on suppose dans notre modèle que l'agent a toujours
des désirs consistants) ; cette fonction est également
réalisée par la composante Processus de décision ;
- filtre :B x D x I->I est
la fonction la plus importante car elle décide des intentions
à poursuivre ; elle est réalisée par la composante
Filtre.
La composante Filtre est la partie de l'architecture qui a la
responsabilité de bâtir des plans partiels pour réaliser
les intentions de l'agent, tout en tenant compte des nouvelles opportunités.
En conséquence de ce qu'il perçoit de son environnement et de sa
révision des croyances, l'agent peut détecter des nouvelles
opportunités qui favorisent la réalisation de ses intentions
ou qui peuvent même empêcher cette réalisation. Cette
analyse est effectuée par la composante Analyseur opportunités.
Ces nouvelles opportunités sont communiquées au Filtre.
Le Filtre construit des plans partiels pour aboutir aux intentions
de l'agent avec l'aide de la composante Raisonnement modalités ;
cette dernière a la responsabilité d'effectuer le raisonnement
orienté action et la modalité de réalisation des
plans.
- plan : B x I-> PE est la
fonction qui transforme les plans partiels en plans exécutables,
PE étant l'ensemble de ces plans ; elle peut utiliser,
par exemple, une bibliothèque de plans, représentée
par le module LibP dans la figure.
Un plan est une séquence d'actions à exécuter
dans le temps. Un plan partiel est un plan dans lequel tous les détails
de planification n'ont pas été spécifiés,
par exemple on s'est contenté d'un ordre partiel des actions dans
le temps, ou certaines actions ne sont pas entièrement détaillées.
Prenons l'exemple suivant : on sait que pour partir en voyage, il
faut faire ses valises et téléphoner à un ami pour
dire au revoir, mais on n'indique ni dans quel ordre il faut faire ces
deux actions, ni le nombre de valises à emporter. Ceci est un plan
partiel. Une fois qu'on a décidé que l'on préparerait
d'abord deux valises et que l'on appellerait ensuite son ami, on a raffiné
le plan partiel, et obtenu ainsi un plan complètement spécifié
et exécutable. La raison pour commencer par bâtir des plans partiels
est que l'agent peut parfois être obligé de changer ses plans
en fonction de nouvelles perceptions recueillies sur l'environnement,
ainsi qu'il a été dit dans la section précédente.
L'approche des plans partiels peut apporter une solution à ce problème.
Une fois qu'on dispose d'un plan exécutable, le module Exécution
va exécuter, l'une après l'autre, les actions de ce plan
dans l'environnement.
Question : Doit-t-on faire
de la re-planification dans une telle architecture ?
Cliquer
ici pour voir la réponse
Le contrôle BDI
Nous avons jusqu'ici détaillé les composantes et les fonctions
d'une architecture BDI. Cette architecture est assez proche de l'architecture
du système PRS. Pour apporter plus de précision, nous allons
décrire le processus de contrôle d'un agent BDI par l'algorithme
suivant (algorithme conçu par Michael Wooldrige).
Soient B0, D0 et I0
les croyances, désirs et intentions initiales de l'agent.
Algorithme de contrôle d'agent
BDI
1 B =B0
2 D =D0
3 I = I0
4 répéter
4.1 obtenir nouvelles perceptions p
4.2 B = revc(B, p)
4.3 I = options(D, I)
4.4 D = des(B, D ,I)
4.5 I = filtre(B, D,
I)
4.6 PE = plan(B, I)
4.7 exécuter(PE)
jusqu'à ce que l'agent soit arrêté
fin
Si une intention a été choisie par la fonction filtre,
on dit que l'agent s'est obligé à réaliser cette
intention. L'obligation d'un agent envers une intention, en anglais
appelé "commitment", a une grande importance dans le
modèle BDI d'un agent situé dans un environnement non déterministe.
Combien de temps va l'agent est-il considéré comme lié
par une telle obligation ? Il ne serait pas très rationnel
de la part de l'agent d'abandonner une intention immédiatement
après avoir décidé de la réaliser. On peut
donc supposer que l'agent va maintenir, pour un certain temps, ses intentions
choisies au pas 4.5. Le cas le plus simple est, évidemment, de
supposer que l'agent reste lié à une intention jusqu'à
ce qu'elle soit réalisée. Mais qu'advient-il si la réalisation
de cette intention devient impossible à cause d'un changement dans
les conditions de l'environnement ? Et si, au moment où l'agent
en arrive à exécuter son intention (pas 4.7), les conditions
de l'environnement ont changé par rapport aux perceptions effectuées
au pas 4.1 et qu'en conséquence, d'autres intentions deviennent
plus opportunes à réaliser ?
Reprenons l'exemple de Pierre introduit plus haut. Si Pierre a décidé
que son intention est de faire une thèse de doctorat, il s'est
alors obligé à cette intention. Pierre commence à
travailler et faire sa recherche. Entre temps, il découvre qu'il
n'aime pas trop travailler et qu'il préfère passer son temps
avec ses amis dans les bistros. Pierre se rend compte que son intention
est impossible à accomplir, ce qui le conduit à abandonner
son intention de faire une thèse. Dans un autre cas, comme Pierre
veut aussi gagner un peu d'argent, il prend un job dans une compagnie.
Comme il est très éloquent et persuasif, on lui offre un
poste dans la compagnie qui lui demande de voyager beaucoup pour représenter
les intérêts de la compagnie. Pierre constate alors qu'une
autre de ses intentions devient opportune, il abandonne son engagement
de faire une thèse et accepte le poste qu'on lui a offert.
On peut imaginer un scénario semblable pour un agent logiciel.
Supposons qu'on a demandé à notre agent artificiel de voyage
de faire des réservations pour un voyage aux Caraïbes. Après
avoir considéré ses croyances sur les prix des billets d'avion
et hôtels (qui peuvent parfois être incomplètes ou
incorrectes, mais il ne le sait pas), les options disponibles et les désirs
de ses clients (nous espérons que notre agent a le désir
de nous offrir une bonne qualité de service à des prix attractifs),
l'agent choisit la compagnie aérienne AeroAgents et l'hôtel
Hartif. Il s'engage sur ses intentions de réserver des places à
AeroAgents et Hartif. Par suite de révision de ses croyances, par
exemple une offre exceptionnelle de la compagnie AeroIntelligence, l'agent
modifie son obligation envers AeroAgents et adopte l'intention d'acheter
les billets d'avion auprès de la compagnie AeroIntelligence.
Question: Comment ces exemples
justifient-ils l'adéquation du modèle BDI pour la modélisation
des agents intelligents ?
Cliquer
ici pour voir la réponse
Revenons maintenant à la question qu'on a posée plus haut :
" Combien de temps l'agent reste-t-il obligé par une intention ?"
La réponse à cette question est donnée par la stratégie
d'obligation envers les intentions choisies par le concepteur pour les
agents BDI. On peut identifier trois principales stratégies d'obligation :
- Obligation aveugle (ou obligation fanatique). Un agent suivant
cette stratégie va maintenir ses intentions jusqu'à ce
qu'elles soient réalisées, plus précisément
jusqu'à ce qu'il croie qu'elle sont réalisées.
Tenant compte de ce qu'on a déjà dit, cette stratégie
n'est pas la meilleure si l'environnement change entre le moment où
l'agent a choisi (filtré) ses intentions, et le moment où
ces intentions doivent être accomplies.
- Obligation limitée. Cette stratégie dit que l'agent
va maintenir ses intentions, ou bien jusqu'à ce qu'elles soient
réalisées, ou bien jusqu'à ce qu'il croie qu'elles
ne sont plus réalisables.
- Obligation ouverte. Un agent ayant une stratégie d'obligation
ouverte maintient ses intentions tant que ces intentions sont aussi
ses désirs. Cela implique aussi que, une fois que l'agent a conclu
que ses intentions ne sont plus réalisables, il ne les considère
plus parmi ses désirs.
L'algorithme de contrôle d'un agent BDI décrit plus haut
correspond à un agent avec une stratégie d'obligation aveugle
envers ses intentions. Dans les deux autres cas, l'agent doit vérifier
ses intentions après l'exécution de chaque action du plan
qu'il a conçu au pas 4.6. On peut modifier l'algorithme de contrôle
pour prendre en compte les deux autres stratégies ; pour cela,
on définit première(PE) la première
action d'un plan PE et reste(PE) le reste des actions du
PE après l'exécution celle-ci.
Algorithme de contrôle d'agent
BDI avec obligation limitée
1 B = B0
2 D = D0
3 I = I0
4 répéter
4.1 obtenir nouvelles perceptions p
4.2 B = revc(B, p)
4.3 I = options(D, I)
4.4 D = des(B, D ,I)
4.5 I = filtre(B, D,
I)
4.6 PE = plan(B, I)
4.7 tant que (PE<>{} et nonaccompli(I,
B) et possible(I, B)) répéter
- x = première(PE);
exécuter(x); PE = reste(PE)
- obtenir nouvelles perceptions p
- B = revc(B, p)
fin tant que
jusqu'à ce que l'agent soit arrêté
fin
Dans cet algorithme, possible(I, B) est la
fonction qui vérifie si, après avoir obtenu la perception
p sur l'environnement et révisé ses croyances, les
intentions choisies sont encore réalisables ; nonaccompli(I,
B) est la fonction qui vérifie si, par hasard, les intentions
de l'agent sont déjà accomplies avant même que l'exécution
de son plan soit terminée.
Algorithme de contrôle d'agent
BDI avec obligation ouverte
1 B = B0
2 D = D0
3 I = I0
4 répéter
4.1 obtenir nouvelles perceptions p
4.2 B = revc(B, p)
4.3 I = options(D, I)
4.4 D = des(B, D ,I)
4.5 I = filtre(B, D,
I)
4.6 PE =plan(B, I)
4.7 tant que (PE<>{} et nonaccompli(I,
B) et possible(I, B)) répéter
- x = première(PE);
exécuter(x); PE = reste(PE)
- obtenir nouvelles perceptions p
- B = revc(B, p)
- D = des(B, D
,I)
- I = filtre(B, D,
I)
- PE = plan(B, I)
fin tant que
jusqu'à ce que l'agent soit arrêté
fin
Dans cet algorithme, après avoir reçu des nouvelles perceptions
sur l'environnement et révisé ses croyances, l'agent considère
aussi ses désirs et, en plus, considère un possible changement
dans l'ensemble de ses intentions par la fonction filtre.
Dans ce cas, l'agent s'engage dans un processus de replanification, car
le résultat de la fonction filtre est un plan partiel.
Note: en anglais, ces trois stratégies se nomment respectivement :
obligation aveugle = "blind commitment"; obligation limitée
= "single minded commitment"; obligation ouverte = "open
minded commitment".
Les stratégies d'obligation limitée et ouverte envers les
intentions sont, d'un certain point de vue, meilleures que la stratégie
d'obligation aveugle, car l'agent vérifie si ses intentions sont
encore faisables ou appropriées. Par contre, et surtout dans la
stratégie de l'obligation aveugle, il y a danger que l'agent change
perpétuellement ses intentions en fonction des nouvelles conditions
de l'environnement et arrive dans la situation de ne jamais voir ses désirs
aboutir. Par exemple, si notre agent de voyage va tout le temps voir s'il
y a de nouvelles offres des compagnies aériennes et modifie sans
arrêt la réservation, il se peut qu'il n'arrive jamais à
nous offrir les billets d'avion. Il faut alors trouver le juste rapport
entre le temps passé par l'agent pour accomplir ses intentions
et le temps pendant lequel l'agent vérifie si ces intentions sont
toujours possibles ou désirables.
Les architectures BDI sont l'exemple le plus représentatif d'architecture
permettant de bâtir un agent cognitif. D'autres architectures que BDI
pour les agents cognitifs ont été conçues et utilisées
dans diverses applications mais, jusqu'à présent, l'architecture
BDI est celle qui est préférée dans la communauté
de recherche agents intelligents et systèmes multi-agents. Comme
il a été dit dans le premier chapitre et comme on l'a vu
dans ce qui vient d'être discuté, les agents cognitifs utilisent
des représentations symboliques de leurs connaissances et croyances,
et des notions spécifiques aux humains comme désirs, intentions,
etc., pour modéliser leurs comportements. Nous allons maintenant
voir une architecture qui met en œuvre le fonctionnement d'agents réactifs
qui essaient de résoudre les problèmes par interactions
complexes entre composantes simples, et qui n'ont pas nécessairement
une représentation symbolique, complexe, de leurs connaissances
et de leur raisonnement.
|