Está en la página 1de 32

Doctorado en Ingeniera Informtica

Arquitecturas y aplicaciones
de los agentes inteligentes
Asignatura de Inteligencia Artificial Distribuida
Grupo de Sistemas Complejos Adaptativos
Departamento de Informtica
Universidad Carlos III de Madrid
jcarbo@inf.uc3m.es
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Introduccin y Repaso
Redes: Resolucion distribuida de problemas
Proceso autonomo: Agente SoItware
Con objetivo comun y agente coordinador: MAS
A semejanza humana: Agente Inteligente
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Accion
Percepcion
KQML o FIPA
KQML o FIPA
Comunicacion
Inteligencia?
Protocolo Iijo
Rol y competencias
Individualidad
S
E
N
S
O
R
A
C
T
U
A
D
O
R
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Inteligencia de un Agente
Dos perspectivas enIrentadas:
- Por sus Irutos los conocereis
- Las obras sin Ie estan muertas
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Arquitecturas Reactivas
No hay razonamiento interno basado simbolos.
Actuacion por reIlejos (capacidades sensoriales y
motrices).
El comportamiento inteligente surge de la interaccion
con el entorno.
El mundo real no puede ser abarcado por ninguna
representacion explicita mediante simbolos.
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Jerarquia de comportamientos que llevan a cabo tareas.
Capas bajas representan comportamientos mas simples.
Los comportamientos compiten para ejecutarse. Las capas
bajas tienen prioridad sobre las altas.
Probadas ampliamente (Steels en Mars Robots)
Arquitectura Reactiva de Brooks
S
E
N
S
O
R
A
C
T
U
A
D
O
R
Entorno
Capa 0
Capa 1
Capa 2
Capa 3
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Pengo
http://www.dtek.chalmers.se/~d3rebas/creative/martinsoft/pengo.html
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Estrategias simples en un mundo complejo.
Reglas expresan una reaccion ante una situacion.
Descripcion de la situacion:
Entidades individualizadas: la abeja que persigo.
Aspectos de entidades: esta huyendo
No hay representacion de estados ni planes.
Rutinas de ejecucion constante:
Hay una abeja persiguiendome?
Encuentra un bloque de hielo para aplastar abeja.
Arquitectura de Agre y Chapman
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Automata construido a partir de descripcion de
situaciones. Dos partes:
Ruler: EspeciIicaciones para compilar comportamiento de
agente antes de su ejecucion:
Hechos y transiciones: si llueve suelo mojado
Semantica de la entrada y de la salida: 'entrada i: esta
lloviendo, 'salida j: suelo mojado
GAPP: genera automata que al ejecutarse el agente no
manipula ni razona con simbolos.
Rosenchein y Kaelbling
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Tareas competitivas con nivel de activacion (su relevancia
se calcula dada una situacion).
Modulos con precondiciones y poscondiciones.
Semejante a una red de neuronas.
SigniIicado de competencias deIinido en Iorma declarativa.
Problemas clasicos de busqueda (mundo de los bloques,
misioneros y canibales) resueltos con esta arquitectura.
Maes
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Brooks, 1991. Intelligence without representation. Artificial
Intelligence, 47:139-159.
Agre y Chapman, 1987. Pengi: an implementation of a theory of
activity. 6
th
Nat. Conf. on Artificial Intelligence, pp. 268-272.
Rosenchein y Kaelbling, 1986. The synthesis of digital
machines with provable epistemic properties. 1986 Conf. on
Theoretical Aspects of Reasoning about Knowledge, pp. 83-98.
Maes, 1991. The agent network architecture. SIGART Bulletin,
2 (4):115-120.
Steels, 1990. Cooperation between distributed agents through
self organization. 1
st
European Workshop on Modeling
Autonomous Agents in Multi-Agent Worlds, pp. 175-196.
Bibliografa
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Inteligencia en comportamiento de agentes a traves de
estructuras simbolicas
IA clasica: Estado inicial, Iinal y operadores. Inteligencia
consiste en determinar pasos desde estado inicial a estado
Iinal.
Sistema intencional: comportamiento humano se explica
atribuyendole actitudes como deseos, intenciones y
creencias.
Arquitectura Deliberativa
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Creencias: suposiciones del agente sobre el entorno a
partir de las percepciones.
Deseos: abstraccion de los los Iines que genericamente
persigue el agente.
Intenciones: acciones basicas que un agente pretende
ejecutar en un Iuturo proximo.
Objetivos: concrecion de un deseo en una tarea.
Planes: secuencia de intenciones ejecutadas en el pasado
para cumplir un objetivo.
Creencias, deseos e intenciones
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Esquema Deliberativo
S
E
N
S
O
R
A
C
T
U
A
D
O
R
Entorno
Deseos
Intenciones
Creencias
Planes
Interprete BDI
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Inicializar_estado()
Repetir
intencin=INTENCIONES.Sigte(CREENCIAS)
Ejecutar(intencin)
percepcin=PERCEPCIONES.Percibir()
CREENCIAS.Actualizar(percepcin)
INTENCIONES.Actualizar(CREENCIAS)
DESEOS.Actualizar(INTENCIONES)
INTENCIONES.Nuevas(DESEOS)
Fin Repetir
Ciclo de ejecucin deliberativo
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Un agente puede pretender varios deseos a la vez. Cada
deseo puede instanciarse en varios objetivos diIerentes.
Cada deseo puede tener varios planes posibles a ejecutar,
por lo que cada objetivo puede estar intentando varios
planes a la vez/consecutivamente.
Agente comprometido con intenciones de diIerentes
planes y objetivos a la vez.
Prioridad de intenciones.
Creacion y mejora de planes.
Condiciones para abandonar/adoptar objetivos
Funcionamiento BDI
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Componentes reactivos y deliberativos organizados en
jerarquia de capas:
Arquitecturas Mixtas
S
E
N
S
O
R
A
C
T
U
A
D
O
R
SENSOR ACTUADOR
SENSOR
ACTUADOR
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Arquitectura Interrap
SENSOR ACTUADOR
Conducta
Planes
Cooperacion
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Arquitectura Touring Machine
S
E
N
S
O
R
A
C
T
U
A
D
O
R
Modelado
PlaniIicacion
Reactiva
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Rao y Georgeff, 1991. Modeling rational agents within a BDI-
architecture. 2
nd
Int. Conf. on Principles of Knowledge
Representation and Reasoning.
Cohen y Levesque, 1990. Intention is choice with commitment.
Artificial Intelligence, 42 (3).
Ferguson, 1995. Integrated control and coordinated behaviour:
a case for agent models. LNAI 890, pp. 203-218.
Muller, Pischel y Thiel, 1994. A pragmatic approach to
modeling autonomous interacting systems. LNAI 890, pp. 226-
240.
Bibliografa
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Agentes JAM, Intelligent Reasoning Systems.
http://members.home.net/marcush/IRS
Libre y gratuito para propositos academicos.
Clases java para mostrar Iuncionamiento de arquitectura
BDI de agentes.
Ejecutable desde linea de comandos leyendo desde
Iicheros de texto.
Tiene 5 componentes: un modelo del mundo, una
biblioteca de planes, un interprete BDI, una estructura
intencional y un observador.
Ejemplo de agentes BDI
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
P la n
L i b ra ry
In te n ti o n
S truc t ure
E n vi ro nme nt
Ac tu a ti o n a n d C om m u n c a ti on
Ac ti o n s , S e ns in g , e tc .
S e ns i ng r e s u l ts ,
C om m u ni c a ti o n ,
e tc .
J AM
A g e nt
In te rp re te r
W o r ld
Mo d e l
Ob s e r ve r
G oa l s ,
Int e nt i o ns ,
E x ec ut i on
E x ec ut i on
A c t i ons , S ens i ng,
Re as oni ng, et c .
C
o
m
m
u
n
i
c
a
t
e
d
,

G
e
n
e
r
a
t
e
d
,

R
e
v
i
s
e
d

P
l
a
n
s

C
o
m
m
u
n
i
c
a
t
e
d
,

I
n
f
e
r
r
e
d
,

D
e
d
u
c
e
d
,

R
e
v
i
s
e
d

B
e
l
i
e
f
s

F i gu re 2. T he JA M i nt el l i g ent ag ent a rc hi t ec t u re.
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
DeIinicion:
FACT robot_initialized "False";
FACT robot_position 1000 1000 0;
FACT robot_location "Unknown";
FACT self "CARMEL";
ModiIicacion:
ASSERT robot_status Ok;
RETRACT robot_location;
RETRIEVE self $name;
UPDATE (robot_position 1000 1000
0)(robot_position 333 333 0);
FACT self CARMEL
Creencias
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
GOALS:
ACHIEVE race_completed :UTILITY 10;
MAINTAIN obstacles_avoided :UTILITY 1;
PLAN: {
GOAL: ACHIEVE race_completed;
PRECONDITION: (< $distance 50);
CONTEXT: RETRIEVE robot_status $status;
(== $status ok);
UTILITY 23;
BODY: <intenciones>
FAILURE: EXECUTE print race failed; }
Deseos y planes
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Sobre objetivos:
POST, UNPOST, MAINTAIN
Alternativas:
DO_ALL, DO_ANY, AND, OR, PARALLEL
Condicionales:
DO WHILE, WHEN, TEST, WAIT, WHILE
Otras:
ASSIGN, EXECUTE, LOAD, ATOMIC,
FAIL, SUCCEED
Intenciones
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Conexion mediante sockets:
connectToAgentAsClient,
connectToAgentAsServer,
sendMessage, recvMessage
Alternativas:
printWorldModel, printPlan,
printIntentionStructure, getCurrentPlan,
getCurrentGoal
Otras:
first, last, strlen, print, println, exec
Funciones predefinidas
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Mundo de los bloques
3
4
5
2
1
1
3
2
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
FACT ON "Block5" "Block4";
FACT ON "Block4" "Block3";
FACT ON "Block1" "Block2";
FACT ON "Block2" "Table";
FACT ON "Block3" "Table";
FACT CLEAR "Block1";
FACT CLEAR "Block5";
FACT CLEAR "Table";
FACT initialized "False";
Creencias iniciales
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Plan: {
NAME: "Top-level plan"
GOAL:
ACHIEVE blocks_stacked;
BODY: {
ACHIEVE ON "Block3" "Table";
ACHIEVE ON "Block2" "Block3";
ACHIEVE ON "Block1" "Block2"; }
Plan General
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Plan: {
NAME: "Stack blocks that are already clear"
GOAL:
ACHIEVE ON $OBJ1 $OBJ2;
BODY: {
ACHIEVE CLEAR $OBJ1;
ACHIEVE CLEAR $OBJ2;
PERFORM move $OBJ1 $OBJ2; }
UTILITY: 10;
Subplan uno sobre otro
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Plan: {
NAME: "Clear a block
GOAL:
ACHIEVE CLEAR $OBJ;
CONTEXT:
FACT ON $OBJ2 $OBJ;
BODY:
ACHIEVE ON $OBJ2 "Table";
EFFECTS:
RETRACT ON $OBJ1 $OBJ; }
Subplan libera un bloque
Inteligencia ArtiIicial Distribuida,
jcarboinI.uc3m.es
Plan: {
NAME: "Move a block onto another object"
GOAL:
PERFORM move $OBJ1 $OBJ2;
CONTEXT:
FACT CLEAR $OBJ1;
FACT CLEAR $OBJ2;
BODY:
WHEN : TEST (!= $OBJ2 "Table")
{ RETRACT CLEAR $OBJ2; };
FACT ON $OBJ1 $OBJ3;
RETRACT ON $OBJ1 $OBJ3;
ASSERT CLEAR $OBJ3;
ASSERT ON $OBJ1 $OBJ2; }
Subplan apila un bloque

También podría gustarte