# Modèle logiciel de croyance–désir–intention

Le modèle logiciel croyance–désir–intention (de l'anglais, Belief–desire–intention software model – BDI) est un modèle logiciel développé pour programmer des agent intelligents. Caractérisé en surface par la mise en œuvre des croyances, des désirs et des intentions d'un agent, il utilise en réalité ces concepts pour résoudre un problème particulier dans la programmation d'agents. En essence, il fournit un mécanisme permettant de séparer l'activité de sélection d'un plan (à partir d'une bibliothèque de plans ou d'une application planificatrice externe) de l'exécution des plans actuellement actifs. En conséquence, les agents BDI parviennent à équilibrer le temps consacré à délibérer sur les plans (choisir ce qu'il faut faire) et à exécuter ces plans (les réaliser). Une troisième activité, créer les plans dès le départ (planification), ne relève pas du modèle et incombe au concepteur et au programmeur du système.

## Aperçu

Afin d'atteindre cette séparation, le modèle logiciel BDI met en œuvre les aspects principaux de la théorie du raisonnement pratique humain de Michael Bratman (également appelé croyance–désir–intention, ou BDI). C'est-à-dire qu'il met en œuvre les notions de croyance, de désir et (en particulier) d'intention, d'une manière inspirée par Bratman.
Pour Bratman, le désir et l'intention sont tous deux des pro-attitudes (des attitudes mentales concernant l'action). Il identifie l'engagement comme le facteur distinctif entre le désir et l'intention, notant qu'il conduit à (1) une persistance temporelle dans les plans et (2) à l'élaboration de plans supplémentaires sur la base de ceux auxquels on est déjà engagé. Le modèle logiciel BDI aborde partiellement ces questions. La persistance temporelle, dans le sens d'une référence explicite au temps, n'est pas explorée. La nature hiérarchique des plans s'implémente plus facilement : un plan se compose d'un certain nombre d'étapes, dont certaines peuvent faire appel à d'autres plans. La définition hiérarchique des plans implique elle-même une forme de persistance temporelle, puisque le plan global demeure en vigueur pendant que les plans subsidiaires s'exécutent.
Un aspect important du modèle logiciel BDI (en termes de sa pertinence pour la recherche) est l'existence de modèles logiques à travers lesquels il est possible de définir et de raisonner sur les agents BDI. Les recherches dans ce domaine conduisent, par exemple, à l'axiomatisation de certaines implémentations BDI, ainsi qu'à des descriptions logiques formelles telles que le BDICTL d'Anand Rao et de Michael Georgeff. Ce dernier combine une logique multimodale (avec des modalités représentant les croyances, les désirs et les intentions) avec la CTL*. Plus récemment, Michael Wooldridge étend le BDICTL pour définir LORA (la Logique des Agents Rationnels), en incorporant une logique d'action. En principe, LORA permet de raisonner non seulement sur des agents individuels, mais aussi sur la communication et d'autres interactions dans un système multi-agent.
Le modèle logiciel BDI est étroitement associé aux agents intelligents, mais ne garantit pas, en lui-même, toutes les caractéristiques associées à ces agents. Par exemple, il permet aux agents d'avoir des croyances privées, mais ne les contraint pas à être privées. Il n'apporte également rien concernant la communication entre agents. En définitive, le modèle logiciel BDI constitue une tentative de résoudre un problème qui concerne davantage les plans et la planification (le choix et l'exécution de ceux-ci) que la programmation des agents intelligents. Cette approche est proposée récemment par Steven Umbrello et Roman Yampolskiy comme moyen de concevoir des voiture autonomes pour les valeurs humaines.

## Agents BDI

Un agent BDI est un type particulier de rationalité limitée agent logiciel rationnel doté d'attitudes mentales particulières, à savoir : Croyances, Désirs et Intentions (BDI).

### Architecture

Cette section définit les composantes architecturales idéalisées d'un système BDI.
* Croyances : Les croyances représentent l'état informationnel de l'agent – ses croyances sur le monde (y compris lui-même et d'autres agents). Les croyances peuvent également inclure des règle d'inférences, permettant au chaînage avant de conduire à de nouvelles croyances. L'emploi du terme croyance plutôt que connaissance reconnaît que ce que croit un agent n'est pas nécessairement vrai (et en fait peut changer à l'avenir).
** Ensemble de croyances : Les croyances se stockent dans une base de données (parfois appelée base de croyance ou ensemble de croyances), bien que cela relève d'une décision d'implémentation.
* Désirs : Les désirs représentent l'état motivationnel de l'agent. Ils représentent des objectifs ou des situations que l'agent souhaite accomplir ou provoquer. Des exemples de désirs peuvent être : trouver le meilleur prix, aller à la fête ou devenir riche.
** Objectifs : Un objectif est un désir adopté pour une poursuite active par l'agent. L'emploi du terme objectifs ajoute la restriction supplémentaire que l'ensemble des désirs actifs doit être cohérent. Par exemple, on ne doit pas avoir simultanément l'objectif d'aller à une fête et celui de rester à la maison – même s'ils peuvent tous deux être désirables.
* Intentions : Les intentions représentent l'état délibératif de l'agent – ce que l'agent choisit de faire. Les intentions sont des désirs auxquels l'agent s'est en quelque sorte engagé. Dans les systèmes implémentés, cela signifie que l'agent commence à exécuter un plan.
** Plans : Les plans sont des séquences d'actions (recettes ou domaines de connaissance) qu'un agent peut exécuter pour réaliser une ou plusieurs de ses intentions. Les plans peuvent inclure d'autres plans : mon plan d'aller faire un tour peut inclure un plan pour trouver mes clés de voiture. Cela reflète que, dans le modèle de Bratman, les plans se conçoivent initialement de manière partielle, les détails étant complétés au fur et à mesure de leur progression.
* Événements : Il s'agit de déclencheurs d'activité réactive de l'agent. Un événement peut mettre à jour les croyances, déclencher des plans ou modifier les objectifs. Les événements se génèrent à l'extérieur et sont reçus par des capteurs ou des systèmes intégrés. De plus, des événements se génèrent en interne pour déclencher des mises à jour ou des plans d'activité découplés.
Le BDI s'étend également avec une composante d'obligations, donnant naissance à l'architecture d'agents BOID pour intégrer les obligations, normes et engagements des agents évoluant dans un environnement social.

### Interpréteur BDI

Cette section définit un interpréteur BDI idéalisé qui fournit la base de la lignée PRS des systèmes BDI de SRI :
* initialize-state
* repeat
** options: option-generator (event-queue)
** selected-options: deliberate(options)
** update-intentions(selected-options)
** execute
** get-new-external-events
** drop-unsuccessful-attitudes
** drop-impossible-attitudes
* end repeat

### Limitations et critiques

Le modèle logiciel BDI est un exemple d'architecture de raisonnement pour un agent rationnel unique, et constitue une préoccupation dans un système multi-agent. Cette section délimite le champ des préoccupations concernant le modèle logiciel BDI, en mettant en lumière les limitations connues de l'architecture.
* Apprentissage : Les agents BDI ne disposent d'aucun mécanisme spécifique au sein de l'architecture pour apprendre à partir de comportements passés et s'adapter à de nouvelles situations$^,$
* Trois attitudes : Les théoriciens classiques de la théorie de la décision et la recherche en planification remettent en question la nécessité de posséder les trois attitudes, tandis que la recherche en intelligence artificielle distribuée questionne si les trois attitudes sont suffisantes.
* Logiques : Les logiques multimodales sous-jacentes au BDI (qui n'ont pas d'axiomatisations complètes et ne sont pas calculables de manière efficace) ont peu de pertinence en pratique$^,$
* Agents multiples : En plus de ne pas supporter explicitement l'apprentissage, le cadre peut ne pas être approprié pour un comportement d'apprentissage. De plus, le modèle BDI ne décrit pas explicitement les mécanismes d'interaction avec d'autres agents et l'intégration dans un système multi-agent
* Objectifs explicites : La plupart des implémentations BDI ne disposent pas d'une représentation explicite des objectifs
* Anticipation : L'architecture ne comporte pas (par conception) de délibération anticipée ou de planification prospective. Cela peut ne pas être souhaitable, car les plans adoptés peuvent consommer des ressources limitées, les actions peuvent être irréversibles, l'exécution des tâches peut prendre plus de temps que la planification anticipée, et les actions peuvent avoir des effets secondaires indésirables en cas d'échec

## Implémentations d'agents BDI
### BDI 'pur'

* PRS
* IRMA (non implémenté mais pouvant être considéré comme un PRS sans reconsidération)
* UM-PRS
* OpenPRS
* dMARS
* AgentSpeak(L) – voir Jason ci-dessous
* AgentSpeak(RT)$^,$
* Agent Real-Time System (ARTS) (ARTS)
* JAM
* agents intelligents JACK
* JADEX (projet open source)
* JaKtA
* JASON
* GORITE
* SPARK
* 3APL
* 2APL
* langage de programmation d'agents GOAL
* CogniTAO (Think-As-One)$^,$
* Living Systems Process Suite$^,$
* PROFETA
* Gwendolen (Faisant partie du Cadre de Vérification des Langages de Programmation d'Agents$^,$)

### Extensions et systèmes hybrides

* JACK Intelligent Agents
* CogniTAO (Think-As-One)$^,$
* Living Systems Process Suite$^,$
* Brahms
* JaCaMo