2. Architectures des agents et langages
2.1   Structures des agents intelligents

2.1.2 Structure conceptuelle des agents

Agents avec états

Les agents avec états, comme leur nom l'indique, maintiennent un état interne qui mémorise la séquence des perceptions de l'agent et, dans certains cas, les actions effectuées par l'agent. L'agent a besoin de maintenir cet état interne pour faire la distinction entre des états de l'environnement qui lui semblent identiques selon la perception qu'il en a, mais qui sont néanmoins différents. Soit S={s1, s2, …} l'ensemble des états internes de l'agent. Dans ce cas, les fonctions de l'agent se modifient de la manière suivante :

  • action : S -> A est maintenant définie sur l'ensemble des états internes de l'agent, ce qui revient à dire que l'agent décide de l'action à effectuer en fonction de son état interne ;
  • suiv : S x P -> S est une nouvelle fonction qui modélise le changement de l'état interne de l'agent en fonction de ses perceptions et de l'état interne courant ;
  • inter : S x P -> I et rinter : S x I -> A sont modifiées pour montrer que la décision sur les interactions avec d'autres agents dépend aussi de l'état interne ;
  • voir : E -> P et env : E x A ->P(E) ne sont pas modifiées.

Agents avec buts

Connaître l'état de l'environnement et la séquence des perceptions mémorisées dans l'état interne n'est pas toujours suffisant pour décider quelle est la meilleure action à effectuer à un moment donné. Au début de ce chapitre, nous avons dit qu'il fallait associer une mesure de performance à l'agent. Pour fonctionner d'une manière efficace, l'agent doit essayer d'obtenir le maximum de performance et il doit donc choisir ses actions en conséquence.

Il y a plusieurs façons de définir la mesure de performance. Une première solution est d'indiquer à l'agent ce qu'il doit faire en toute circonstance pour avoir du succès. C'est le cas des agents réactifs, où le concepteur définit les règles condition-action pour chaque cas de perception sur l'environnement. Toutefois, puisque les agents intelligents sont autonomes et proactifs, on aimerait n'avoir à dire à notre agent que ce qu'il faut faire, sans avoir à lui dire exactement comment le faire dans chaque situation. Dans ce cas, une deuxième solution pour définir la mesure de performance de l'agent est de fixer des états-but ou états désirables :

but : E -> {0, 1} est une fonction qui a la valeur 1 pour les états-but et 0 pour les autres.

Si les états-but sont connus d'avance, on peut définir l'ensemble B des buts de l'agent, B Ì E. Par exemple, un robot qui ramasse des objets sur une surface pour les transporter à la base sait que l'état-but est l'état "parvenir à la base avec le maximum d'objets". Si les états-but ne sont pas connus mais que l'on connaît uniquement certaines propriétés désirables de ces états, alors la fonction but fait l'évaluation de chaque état pour voir si l'état possède ou non ces propriétés. Par exemple, si le robot ne connaît pas d'avance la position de la base mais qu'il peut la percevoir une fois arrivé près d'elle, le robot doit tester dans chaque position s'il est près de la base ou pas.

Une troisième solution pour définir la mesure de performance de l'agent est décrite dans ce qui suit.

Agents avec utilité

La mesure de performance d'un agent peut être définie d'une manière plus fine en associant à chaque état de l'ensemble E une valeur réelle, l'utilité, qui mesure la désirabilité de cet état pour l'agent. On peut voir les états-but comme un cas particulier des états avec utilité, puisque cela correspond au cas où l'utilité ne peut prendre que les valeurs 1 et 0. Pour associer une utilité aux états, on introduit une nouvelle fonction :

utilité : E -> R, où R est l'ensemble des nombres réels.

La fonction utilité est mieux adaptée que la fonction but dans deux situations. Premièrement, si l'agent a des buts contradictoires, par exemple l'agent Pierre veut aller au cinéma et étudier pour son prochain examen, la fonction utilité indique le but à choisir. Deuxièmement, si l'agent agit dans un environnement non déterministe, il n'est pas toujours certain de pouvoir atteindre ses buts. Dans ce cas, l'utilité des buts offre un moyen de rapporter la probabilité de succès à l'importance des buts. En général, dans un environnement non déterministe, l'agent va souvent avoir besoin de la fonction utilité pour prendre des décisions sur les diverses actions à effectuer tout en sachant que les résultats de ces actions ne sont pas certains.

Dans un environnement non déterministe, env : E x A ->P(E), le résultat de l'action a, notamment l'état suivant est un élément du sous-ensemble env(e,a) qui contient les états suivants possibles après l'exécution de l'action a dans l'état e de l'environnement. L'utilité d'un état peut être combinée avec le résultat probable d'une action pour déterminer l'utilité attendue d'une action. Avant l'exécution d'une action a, l'agent associe une probabilité à chaque résultat possible de cette action, et nous noterons prob(ex(a,e) = e') la probabilité estimée par l'agent que le résultat de l'exécution de l'action a dans l'état e sera l'état e'. On a bien évidemment :

L'utilité attendue d'une action dans l'état e du point de vue de l'agent est alors calculée avec la formule :

UA(a,e) =

Le principe de la plus grande utilité attendue - utilité attendue maximale, en anglais Maximum Expected Utility (MEU) - dit qu'un agent rationnel devrait choisir l'action qui lui apporte la plus grande utilité attendue. En pratique, le calcul des probabilités des résultats possibles d'une action n'est pas trivial et il nécessite que l'agent ait un modèle causal de l'environnement. Même si la fonction utilité est plus utile pour définir la performance d'un agent, il n'est pas toujours facile de déterminer l'utilité des divers états, surtout dans le cas où l'agent doit bâtir des plans compliqués d'actions. Dans les chapitres qui vont suivre, on va voir que les agents utilisent parfois les buts pour arriver à un comportement rationnel et à une bonne performance, et parfois l'utilité, par exemple dans le cas des agents compétitifs modélisés dans des théories économiques.

Question : Quelle est la différence entre la mesure de performance d'un agent et la fonction utilité ?

Cliquer ici pour voir la réponse

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

Politechnica University of Bucharest - 2002