Vous êtes sur la page 1sur 37

Agent: Caractéristiques

La caractéristique principale des agents est d’être


autonomes.
 Contrôle : Prise de décision interne quant au comportement à avoir
en fonction de sa perception du monde → capable de contrôler leur
état interne.
 Survie : Capacité d'un système vivant ou artificiel à maintenir sa
viabilité dans des environnements variés et changeants sans contrôle
extérieur (agents situés).
 Existence : Les agents ont une existence propre indépendamment de
l'existence des autres.

35

selain.kasereka@unikin.ac.cd
Agent: Caractéristiques

 Les agents intelligents : capables d’actions autonomes flexibles


dans un environnement.
 Par action flexible, nous entendons action répondant à
un comportement :
 réactif

 pro-actif

 social

36

selain.kasereka@unikin.ac.cd
Réactif
 Si l’environnement d’un programme est garanti fixe, le
programme n’a jamais besoin de s’inquiéter de son propre
échec – le programme s’exécute juste en aveugle.
 Exemple de programme à environnement fixe : un compilateur
 Le monde réel n’est pas comme ça : les choses changent,
l’information est incomplète. Beaucoup d’environnements
intéressants sont dynamiques.
 Il est difficile de construire des programmes sur des domaines
dynamiques : le programme doit prendre en compte la possibilité
d’échec – se demander s’il vaut la peine d’être exécuté !
 Un système réactif est un système qui maintient une interaction
continue avec son environnement et qui répond aux changements
qui y surviennent (à temps pour que la réponse soit utile).
37

selain.kasereka@unikin.ac.cd
Pro-actif
 Réagir à un environnement est facile
( stimulus  règle de réponse)
 Mais nous voulons généralement que les agents
fassent des choses pour nous.
 D’où une conduite dirigée par un but.
 Pro-actif =
 Capable de générer des buts;
 Essayant d’atteindre les buts;
 Pas seulement dirigé par les évènements;
 Capable de reconnaître des opportunités et de prendre des
initiatives.
38

selain.kasereka@unikin.ac.cd
Social
Le monde réel est un environnement multi-agent : nous ne
pouvons pas essayer d’atteindre des buts sans prendre en
compte les autres.
Certains buts ne peuvent être atteints qu’en coopérant
avec les autres.
C’est la même chose pour beaucoup
d’environnements informatiques : Internet par ex.
La capacité sociale chez les agents est la capacité à interagir
avec d’autres agents (peut-être même des humains) par le biais
d’un langage de communication inter agents, mais aussi dans
certains cas de coopérer avec les autres. 39

selain.kasereka@unikin.ac.cd
Autres propriétés des agents
 La mobilité : la capacité pour un agent de se déplacer
sur son environnement.
 L'honnêteté : un agent ne communiquera pas volontairement de
fausses informations.
 La bienveillance : les agents n’ont pas de buts conflictuels et
chaque agent essaiera toujours en conséquence de faire ce qu’on
lui demande.
 La rationalité : un agent agira afin d’atteindre ses buts et n’agira
pas de manière à empêcher ses buts d’être atteints (du moins
dans la limite où ses croyances le lui permettent).
 L’apprentissage / L'adaptation : les agents cherchent à 40

améliorer leurs performances au fil du temps.


selain.kasereka@unikin.ac.cd
Architecture Abstraite pour les Agents

 Un environnement discret est représenté à un instant t par son état, c.-à-d


un élément d’un ensemble fini E :

 On suppose que les agents ont à leur disposition un ensemble fini


d’actions possibles capables de modifier l’état de l’environnement:

 L’activité r d’un agent dans un environnement est une suite mêlée d’états
de l’environnement et d’actions:
41

selain.kasereka@unikin.ac.cd
Architecture Abstraite pour les Agents

 Soit:
 R l’ensemble de toutes les suites finies possibles d’activités
(sur E et Ac)
 RAc le sous-ensemble de R dont les éléments se terminent
par une action
 RE le sous-ensemble de R dont les éléments se terminent
par un état de l’environnement 42

selain.kasereka@unikin.ac.cd
La Fonction de Changement d’Etat
 Une fonction de changement d’état représente le
comportement de l’environnement :
 : RAc  RE U 
 Notons que les environnements sont :
 dépendants de l’historique
 non-déterministes
 Si (r)=, alors il n’y a pas d’état successeur possible pour
r. Dans ce cas, nous disons que le système a terminé son
activité.
 Un environnement Env est un triplet Env =E,e0, où :
 E est l’ensemble des états possibles de l’environnement
 e0 E est l’état initial 43

  est la fonction de changement d’état


selain.kasereka@unikin.ac.cd
Les Agents
 Un agent est une fonction qui transforme une activité
en action :

Un agent prend une décision quant à l’action à accomplir


en se basant sur l’historique du système qu’il a enregistré
jusqu’alors.

Soit AG l’ensemble de tous les agents.


44

selain.kasereka@unikin.ac.cd
Le Système mono-agent
 Un système S est une paire contenant un agent et un
environnement
S  AG * ENVT

où ENVT désigne l’ensemble fini de tous les


environnements.
 A tout système sera associé un ensemble des activités
possibles.
 Notons l’ensemble des activités de l’agent Ag dans
l’environnement Env par R(Ag, Env).
 Nous supposerons que R(Ag, Env) ne contient que les activités
terminées
45

selain.kasereka@unikin.ac.cd
Le Système mono-agent

 Formellement, une suite telle que

représente l’activité d’un agent Ag dans un


environnement Env = E,e0, si :
1) e0 est l’état initial de Env
 0 = Ag ((e0))
3) Pour u > 0,

46

selain.kasereka@unikin.ac.cd
Les Agents Purement Réactifs
 Certains agents décident de leur action sans faire référence à
leur historique : ils basent leur prise de décision entièrement
sur le présent, sans référence du tout au passé
 De tels agents sont dits purement réactifs :

 Un thermostat est un agent purement réactif

47

selain.kasereka@unikin.ac.cd
Les Agents Purement Réactifs
 Introduisons maintenant le système de perception

see action

Agent

Environnement

48

selain.kasereka@unikin.ac.cd
Les Agents Purement Réactifs

 La fonction see désigne la capacité de l’agent à


observer son environnement.
 La fonction action représente la décision de l’agent
d’effectuer un processus.
 La sortie de la fonction see est une perception :
see : E  Per
qui applique les états de l’environnement aux
perceptions.
On dira que deux états e et e’ sont équivalents si see
(e) = see (e’)
 action est maintenant une fonction
action : Per*  Ac
qui applique les suites de perceptions aux actions.

49

selain.kasereka@unikin.ac.cd
Boucle de Contrôle de l’Agent purement reactif
ALGORITHME :

1. L’agent observe l’état actuel (courant) de son


environnement e, et génère une perception see(e), fonction
see est une perception :
see : E  Per
2. L’action choisie par l’agent est:

action : Per*  Ac

3. Revenir à 1 50

selain.kasereka@unikin.ac.cd
Les Agents avec Etat Interne

Agent

see action

next Etat

Environnement

51

selain.kasereka@unikin.ac.cd
Les Agents avec Etat Interne
 Ces agents ont une structure de données interne typiquement
utilisée pour enregistrer des informations sur l’état de
l’environnement et l’historique.Soit I l’ensemble de tous les
états internes de l’agent.

 La fonction de perception see pour un agent avec état interne


reste la même :
see : E  Per
 La fonction de sélection d’action action est maintenant
l’application suivante :
action : I  Ac
des états internes vers les actions.
 Une fonction next additionnelle est introduite, qui applique un
état interne et une perception à un état interne :
52
next : I  Per  I

selain.kasereka@unikin.ac.cd
Boucle de Contrôle de l’Agent avec état Interne

1. L’agent démarre dans un état interne initial I={ i0};


2. Il observe l’état actuel (courant) de son environnement e,
et génère une perception see(e)
3. L’état interne de l’agent est alors mis à jour par la fonction
next function, devenant ainsi
next({i0}, see(e))
4. L’action choisie par l’agent est
action(next({i0}, see(e)))
5. Revenir en 2
53

selain.kasereka@unikin.ac.cd
Fonctions d’utilité sur les Etats

 Nous construisons des agents afin qu’ils effectuent des tâches


pour nous. Nous voulons bien dire aux agents quoi faire mais
sans leur dire comment le faire.
 Une possibilité est d’associer une utilité aux états individuels :
la tâche de l’agent est alors de parvenir à des états qui
maximisent l’utilité.
 L'utilité est une fonction
u:E 
qui associe un nombre réel à tout état de
l’environnement.
54

selain.kasereka@unikin.ac.cd
Fonctions d’utilité sur les Etats

 Mais quelle est l’utilité d’une activité…


 L’utilité minimale des états dans l’activité ?
 L’utilité maximale des états dans l’activité ?
 La somme des utilités des états dans l’activité?
 La moyenne des utilités des états dans l’activité ?

 Inconvénient : il est difficile de spécifier une vue à long terme


quand on assigne des utilités aux états individuels.

55

selain.kasereka@unikin.ac.cd
Fonctions d’utilité sur les activités

 Une autre possibilité : assigner une utilité non pas à des états
individuels mais aux activités elles-mêmes
u : R 
 Une telle approche permet une vue à long terme.

 Difficultés avec les approches basées sur l’utilité :


 D’où viennent les valeurs ?
 Nous ne raisonnons pas en termes d’utilités !
 Difficile de formuler des tâches en ces termes
56

selain.kasereka@unikin.ac.cd
Environnement: accessible et inaccessible
 Dans un environnement accessible, l’agent peut obtenir des
informations complètes, exactes, en temps réel sur l’état de
cet environnement.
 Les environnements les plus modérément complexes (incluant,
par exemple, le monde physique de tous les jours ou Internet)
sont inaccessibles.
 Plus un environnement est accessible, plus il est simple de
construire des agents pour y opérer.

57

selain.kasereka@unikin.ac.cd
Environnement: déterministe ou non-déterministe

 Dans un environnement déterministe, chaque action a un seul


effet garanti (il n’y pas d’incertitude quant à l’état qui résultera
de l’exécution d’une action).
 Le monde physique peut être considéré comme non-
déterministe.
 Les environnements non-déterministes présente de plus
grands problèmes pour le concepteur d’agents.

58

selain.kasereka@unikin.ac.cd
Environnement: Statique ou Dynamique

 Un environnement statique reste inchangé sauf s’il est soumis


à l’effet des actions de l’agent.
 Un environnement dynamique est soumis à plusieurs processus
indépendants capables de le modifier. Il change donc au-delà
du contrôle de l’agent. D’autres processus peuvent interférer
avec les actions de l’agent (comme dans la théorie des
systèmes concurrents).
 Le monde physique est un environnement hautement
dynamique
59

selain.kasereka@unikin.ac.cd
Environnement: Discret ou Continu

 Un environment est dit discret s’il comporte un nombre fini


d’éléments.
 Les environnements continus sont en décalage par rapport aux
systèmes informatiques (obligatoirement discrets).
 Le monde physique est un environnement continu.

60

selain.kasereka@unikin.ac.cd
Environnement: Ouvert

 Un environnement
 inaccessible
 non déterministe

 dynamique

 continu

est dit ouvert.

Les environnements ouverts sont les plus difficiles à


représenter par les SMA 61

selain.kasereka@unikin.ac.cd
Les Agents Planificateurs

 La planification est essentiellement de la programmation automatique :


la définition d’une suite d’actions qui réalisera un but donné.
 Dans la communauté de l’IA symbolique, on a longtemps supposé
qu’une certaine forme de système de planification en IA serait le
composant central de tout agent artificiel.
 A la suite des travaux de Fikes & Nilsson pendant les années 70,
beaucoup d’algorithmes de planification ont été proposés et la
théorie de la planification s’est bien développée.
 Mais au milieu des années 80, Chapman a établi des résultats
théoriques qui indiquent que les planificateurs IA seront en fin de
compte inutilisables dans des systèmes contraints par le temps.
62

selain.kasereka@unikin.ac.cd
Les Agents Planificateurs
Intention/
Tâche/ Etat de Actions
But l’environnement possibles

Planificateur

Plan pour atteindre


le but 63

selain.kasereka@unikin.ac.cd
La Planification

Pour faire une bonne planification, il est nécessaire


des se poser les questions sur la représentation :

 Question : Comment représenter :


 le but à atteindre;
 l’état de l’environnement;

 les actions disponibles pour l’agent;

 le plan lui-même.

64

selain.kasereka@unikin.ac.cd
Exemple : Le Monde des Blocs

A
B C

 Le monde contient un bras robotisé, 3 blocs (A, B, et C)


de taille égale et la surface d’une table (environnement)
65

selain.kasereka@unikin.ac.cd
Le Monde des Blocs
 Représentation des prédicats du Monde des
Blocs :
On(x, y) : objet x sur objet y
OnTable(x) : objet x sur la table
Clear(x) : rien ne se trouve sur objet x
Holding(x) : le bras tient objet x
66

selain.kasereka@unikin.ac.cd
Le Monde des Blocs
 Voici une représentation du Monde des Blocs
représenté ici :
[Clear(A)] induit
On(A, B) A
OnTable(B)
B C
OnTable(C)
[Clear(C)] induit ...
 Rappelons l’hypothèse du monde fermé : tout ce qui
n’est pas déclaré est supposé faux 67

selain.kasereka@unikin.ac.cd
Le Monde des Blocs

 Un but est représenté comme un ensemble de formules.


 Voici un but :
OnTable(A)  OnTable(B)  OnTable(C)

B A C

68

selain.kasereka@unikin.ac.cd
Le Monde des Blocs

 Les Actions sont représentées en utilisant une technique


développée dans le planificateur STRIPS.
 Chaque action a :
 un nom
qui peut avoir des arguments
 une liste de pré-conditions
liste des faits qui doivent être vrais pour que l’action s’exécute
 une liste de destructions
liste des faits qui ne sont plus vrais après que l’action ait été exécutée
 une liste d’ajouts
liste des faits rendus vrais par l’exécution de l’action
69
Chacun de ces éléments peut contenir des variables
selain.kasereka@unikin.ac.cd
Les Opérateurs du Monde des Blocs

A
B

 Exemple 1:
L’action stack se produit quand le bras du robot place
l’objet x qu’il tient sur l’objet y.
Stack(x, y)
pre Clear(y)  Holding(x)
del Clear(y)  Holding(x) 70

add ArmEmpty  On(x, y)


selain.kasereka@unikin.ac.cd
Les Opérateurs du Monde des Blocs
 Exemple 2:
L’action unstack se produit quand le bras du robot ramasse un
objet x qui se trouve sur un autre objet y.
UnStack(x, y)
pre On(x, y)  Clear(x)  ArmEmpty
del On(x, y)  ArmEmpty
add Holding(x)  Clear(y)

B 71

selain.kasereka@unikin.ac.cd

Vous aimerez peut-être aussi