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.

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

Politechnica University of Bucharest - 2002