2015-mas-slides-06 - Universidad Veracruzana

Anuncio
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Sistemas Multiagentes
AgentSpeak(L)
Dr. Alejandro Guerra-Hernández
Universidad Veracruzana
Centro de Investigación en Inteligencia Artificial
Sebastián Camancho No. 5, Centro
Xalapa, Ver., México 91000
mailto:[email protected]
http://www.uv.mx/personal/aguerra
Septiembre 7, 2015
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Especificación y Arquitecturas
I
Especifidación formal con Lógicas BDI → Arquitecturas con
base en estructuras de datos.
I
El problema con este enfoque es que, debido a su nivel de
abstracción, no fue posible establecer una correspondencia de
uno a uno entre la teoría del modelo, la teoría de prueba y el
intérprete abstracto propuesto.
I
¿Cómo se puede lograr tal correspondencia con un lenguaje
expresivo y razonablemente útil? AgentSpeak(L) [5].
AgentSpeak(L)
Jason
Propiedades BDI
CTLAgentSpeak(L)
Referencias
Escenario de estudio
c1
c2
c3
c4
El agente ag1 debe retirar la
basura b de los carriles c1 , . . . , c4 ,
evitando los autos.
r1
b
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Creencias
I
Sea b un símbolo de predicado y t1 , . . . , tn una secuencia de
términos, entonces
b(t1, . . . , tn ) ó b(t)
es una creencia atómica. Si b(t) y c(s) son creencias
atómicas, entonces b(t) ∧ c(s) y ¬b(t) también lo son.
I
Una creencia atómica o su negación será identificada como
literal de creencia. Ejemplo: adyacente(X , Y ), pos(Robot, X ),
pos(Auto, X )
I
Una creencia atómica sin variables libres será llamada creencia
de base. Ejemplos: adyacente(c1, c2), pos(r 1, c2)
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Metas
I
Si g es un símbolo de predicado y t1 , . . . , tn son términos,
entonces
!g (t1 , . . . , tn )( ó !g (t)) y ?g (t1 , . . . , tn )( ó ?g (t))
son metas.
I
Limpiar el carril dos es una meta alcanzable !limpiar (c4) y
preguntarse si hay un auto en cierto carril es una meta
verificable ?pos(auto, c2).
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Eventos disparadores
I
Si b(t) es una creencia atómica, y !g (t) y ?g (t) son metas,
entones
+b(t), −b(t), +!g (t), +?g (t), −!g (t) y −?g (t)
son eventos disparadores.
I
Detectar basura en un carril cualquiera toma la forma del
evento disparador +pos(basura, c4), y adquirir la meta de
limpiar un carril, también: +!limpiar (c4).
Referencias
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Acciones
I
Si a es un símbolo de acción y t1 , . . . tn son términos de primer
orden, entonces
a(t1 , . . . , tn ) ó a(t)
es una acción.
I
Las acciones suelen estar implementadas en el mismo lenguaje
de programación en el que AgentSpeak(L) ha sido
implementado.
I
Una acción como ir (ag 1, c4) debería tener como resultado que
el agente ag1 vaya al carril c4 .
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Planes
I
Si e es un evento disparador, b1 , . . . , bn son literales de
creencia, y g1 , . . . gm son metas o acciones, entonces
e : b1 ∧ · · · ∧ bn ← g1 ; . . . ; gm
es un plan.
I
e : b1 ∧ · · · ∧ bn conoce como la cabeza del plan.
I
b1 ∧ · · · ∧ bn se conoce como contexto.
I
g1 ; . . . ; gm se conoce como cuerpo del plan. Por conveniencia
un cuerpo vacío se escribe t.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Ejemplos de planes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[p0]
+pos(basura,X) : pos(r1,X) & pos(deposito,Y)
<- levantar(basura);
!pos(r1, Y);
tirar(basura).
[p1]
+!pos(r1,X): pos(r1,X)
<- true.
[p2]
+!pos(r1,X): pos(r1,Y ) & not(X=Y) & adyacente(Y,Z)
<- ir(Y, Z);
!pos(r1,X).
Propiedades BDI
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Diferencias con la programación lógica
I
La cabeza de una regla incluye un evento disparador de
procesos dirigidos por datos (al agregar y eliminar creencias); y
por metas (al agregar y eliminar metas).
I
Las reglas en la programación lógica pura no son sensibles al
contexto, como es el caso de los planes.
I
La ejecución exitosa de una regla en la programación lógica
regresa una substitución; la ejecución de un plan genera
además secuencias de acciones que modifican el medio
ambiente.
I
Al computar una meta en programación lógica, el proceso no
puede ser detenido (querying); los planes de un agente pueden
ser interrumpidos (planes suspendidos).
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Agente
I
Un agente es una tupla:
hE , B, P, I , A, SE , SO , SI i
donde:
I
I
I
I
I
E es un conjunto de eventos. La función de selección SE
selecciona un evento entre los miembros de E .
B es un conjunto de creencias de base,
P es un conjunto de planes. La función de selección SO
selecciona un plan aplicable u opción en P.
I es un conjunto de intenciones. La función de selección SI
selecciona una intención en I .
A es un conjunto de acciones.
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Intenciones (I )
I
Una intención es una pila de planes cerrados parcialmente
(planes que pueden incluir algunas variables libres y otras con
valores asignados).
I
Una intención se denota por una pila de planes:
[p1 ‡ . . . ‡pz ]
donde p1 representa el fondo de la pila y pz el tope de la
misma.
I
Por conveniencia, la intención vacía [+!t : t ← t] será
denotada por t.
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Eventos (E )
I
Cada evento es una tupla:
he, ii
donde: e es un evento disparador e i es una intención.
I
Si la intención i = t, al evento se le identifica como un evento
externo;
I
En cualquier otro caso es un evento interno, generado en
respuesta a una intención previa.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Unificador más general (MGU)
I
Sean α y β términos. Una substitución θ tal que α y β sean
idénticos (αθ = βθ) es llamada unificador de α y β.
I
Una substitución θ se dice más general que una substitución σ,
si y sólo si existe una substitución γ tal que σ = θγ.
I
Un unificador θ se dice el unificador más general (MGU) de
dos términos, si y sólo si θ es más general que cualquier otro
unificador entre esos términos.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Plan relevante
I
Sea el evento = SE (E ) = hd, ii; y
I
Sea el plan p = e : b1 ∧ · · · ∧ bn ← h1 ; . . . ; hm .
I
El plan p es relevante con respeto al evento si y sólo si existe
un MGU σ tal que dσ = eσ.
I
A σ se le llama el unificador relevante para .
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Plan Aplicable
I
Un plan p denotado por e : b1 ∧ · · · ∧ bn ← h1 ; . . . ; hm es un
plan aplicable con respecto a un evento si y sólo si existe un
unificador relevante σ para y existe una substitución θ tal
que:
B |= (b1 ∧ · · · ∧ bn )σθ
I
La composición σθ se conoce como el unificador aplicable para
; y
I
θ se conoce como la substitución de respuesta correcta.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Intención por evento externo
I
Sea p = SO (O ) = e : b1 ∧ · · · ∧ bn ← h1 ; . . . ; hm donde O es
el conjunto de todos los planes aplicables u opciones para el
evento = hd, ii.
I
El plan p es intentado con respecto al evento , donde la
intención i = t, si y sólo si existe un unificador aplicable σ tal
que:
[t ‡ (e : b1 ∧ · · · ∧ bn ← h1 ; . . . ; hm )σ] ∈ I
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Intención por un evento interno
I
Sea p = SO (O ) = +!g (s) : b1 ∧ · · · ∧ bj ← h1 ; . . . ; hk donde
O es el conjunto de todos los planes aplicables u opciones
para el evento
= hd, [p1 ‡ . . . ‡ f : c1 ∧ · · · ∧ cm ←!g (t); k2 ; . . . ; kn ]i.
I
El plan p es intentado con respecto al evento , si y sólo si
existe un unificador aplicable σ tal que
[p1 ‡ . . . ‡ f : c1 ∧ · · · ∧ cm ←!g (t); k2 ; . . . ; kn ‡ (+!g (s) :
b1 ∧ · · · ∧ bj )σ ← (h1 ; . . . ; hk )σ; (k2 ; . . . kn )σ] ∈ I .
I
Observen la similitud con la resolución-SLD.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Ejecución de una meta realizable
I
Sea
i = SI (I ) = [p1 ‡ . . . ‡ f : c1 ∧ · · · ∧ cm ← !g (t); h2 ; . . . ; hn ].
I
Se dice que la intención i ha sido ejecutada, si y sólo si
h+!g (t), ii ∈ E .
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Ejecución de una meta verificable
I
Sea
i = SI (I ) = [p1 ‡ . . . ‡ f : c1 ∧ · · · ∧ cm ← ?g (t); h2 ; . . . ; hn ].
I
Se dice que la intención i ha sido ejecutada, si y sólo si existe
una substitución θ tal que ∀g (t)θ es una consecuencia lógica
de B e i es remplazada por:
[p1 ‡ . . . ‡ (f : c1 ; . . . ; cm )θ ← (h2 ; . . . hn )θ]
.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Ejecución de una acción
I
Sea
i = SI (I ) = [p1 ‡ . . . ‡ f : c1 ∧ · · · ∧ cm ← a(t); h2 ; . . . ; hn ].
I
Se dice que la intención i ha sido ejecutada, si y sólo si
a(t) ∈ A e i es remplazada por:
[p1 ‡ . . . ‡ f : c1 ∧ · · · ∧ cm ← h2 ; . . . ; hn ]
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Ejecución de una sub-meta
I
Sea i = SI (I ) = [p1 ‡ . . . ‡ pz−1 ‡ !g (t) : c1 ∧ · · · ∧ cm ← t],
donde pz−1 = e : b1 ∧ · · · ∧ bx ←!g (s); h2 ; . . . ; hy .
I
Se dice que la intención i ha sido ejecutada, si y sólo si existe
una substitución θ tal que g (t)θ = g (s)θ e i es remplazada
por:
[p1 ‡ . . . ‡ pz−1 ‡ (e : b1 ∧ · · · ∧ bx )θ ← h2 ; . . . ; hy )θ].
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Intérprete de AgentSpeak(L)
procedure AgentSpeak(L)()
while E 6= ∅ do
← hd, ii ← SE (E );
E ← E \;
O ← {pθ|θ es un unificador aplicable para y p};
if externo() then
I ← I ∪ [SO (O )];
else
push(SO (O )σ, i) donde σ es un unificador aplicable para ;
end if
if first(body (top(SI (I )))) = true then
x ← pop(SI (I ));
push(head(top(SI (I )))θ ← rest(body (top(SI (I ))))θ, SI (I ))
donde θ es un mgu t.q. xθ = head(top(SI (I )))θ;
else if first(body (top(SI (I )))) =!g (t) then
E = E ∪ h+!g (t), SI (I )i
else if first(body (top(SI (I )))) =?g (t) then
pop(SI (I ));
push(head(top(SI (I ))))θ ← rest(body (top(SI (I ))))θ, SI (I ))
donde θ es la substitución de respuesta correcta.
else if first(body (top(SI (I )))) = a(t) then
pop(SI (I ));
push(head(top(SI (I )))) ← rest(body (top(SI (I )))), SI (I ));
A = A ∪ {a(t)};
end if
end while
end procedure
Referencias
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Sistema de Transición entre Configuraciones
I
I
Una tupla hEi , Bi , Ii , Ai , ii, donde Ei ⊆ E , Bi ⊆ B, Ii ⊆ I ,
Ai ⊆ A, e i es la etiqueta de la transición; es una configuración
BDI.
Un sistema de transición BDI es un par hΓ, `i que consiste en:
I
I
Un conjunto Γ de configuraciones; y
Una relación binaria de transición ` ⊆ Γ × Γ.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Reglas de Transición: Intentar un Fin
I
Ejemplo: Como el agente modifica sus intenciones en respuesta
a un evento externo:
(IntendEnd)
h{. . . , h+!g (t), T i, . . . }, Bi Ii , Ai , ii
h{. . . }, Bi , Ii ∪ {[pσθ]}, Ai , i + 1i
donde: p = +!g (s) : b1 ∧ · · · ∧ bm ← h1 ; . . . ; hn ∈ P,
SE (E ) = h+!g (t), T i, g (t)σ = g (s)σ y ∀(b1 ∧ · · · ∧ bm )θ es
consecuencia lógica de Bi .
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Características principales
I
Jason [1] refina y completa AgentSpeak(L) ofreciendo:
I
I
I
I
I
I
I
Una implementación en Java, bajo licencia GNU LGPL.
Comunicación basada en actos de habla. KQML +
anotaciones.
Anotaciones sobre los planes: funciones de selección basadas
en teoría de decisión
Sistemas multi-agentes distribuidos sobre una red, utilizando
SACI, Jade o algún middleware.
Acciones internas programables en Java.
Una clara noción de medio ambiente, implementados en Java.
Incorpora un ambiente de desarrollo basado en jEdit y la
posibilidad de usar Eclipse.
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Sintaxis
ag
bs
ps
p
te
ct
ct1
h
h1
at
s
a
g
u
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
|
::=
::=
::=
::=
bs ps
b1 . . . bn
p1 . . . pn
te : ct ← h
+at | − at | + g | − g
ct1 | >
at | ¬at | ct1 ∧ ct1
h1 ; > | >
a | g | u | h1 ; h1
P(t1 , . . . , tn )
P(t1 , . . . , tn )[s1 , . . . , sm ]
percept | self | id
A(t1 , . . . , tn )
!at | ?at
+b | − b
(n ≥ 0)
(n ≥ 1)
(n ≥ 0)
(n ≥ 0, m > 0)
(n ≥ 0)
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Ejemplo de programa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Agente bob en el proyecto factorial.mas2j
/* Creencias iniciales */
factorial(0,1).
/* Metas iniciales */
!print_factorial(5).
/* Planes */
@p1
+!print_factorial(N) <!factorial(N,F);
.print("Factorial de ",N," es ",F).
@p2
+!factorial(0,F) <?factorial(0,F).
@p3
+!factorial(N,F) : N > 0 <!factorial(N-1,F1);
F = F1 * N.
Propiedades BDI
Referencias
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Semántica operacional: configuraciones
I
Se basa en un sistema de transición entre configuraciones
hag , C , T , si, donde:
I
I
I
I
ag = bs ∪ ps es un programa agente.
Una circunstancia del agente C = hI , E , Ai donde I es el
conjunto de intenciones (pilas de planes parcialmente
instanciados p ∈ ps); E es un conjunto de eventos
{hte, ii, . . . }; y A es un conjunto de acciones a ser ejecutadas.
T es una tupla hR, Ap, ι, , ρi que registra información
temporal: R es el conjunto de planes relevantes; Ap es el
conjunto de planes aplicables; ι, y ρ registran,
respectivamente, la intención, el evento y el plan actuales.
La etiqueta s ∈ {SelEv , RelPl, AppPl, SelAppl, SelInt, AddIM,
ExecInt, ClrInt, ProcMsg } indica el paso actual en el
razonamiento del agente.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Semántica operacional: reglas
I
Las transiciones se definen en términos de reglas semánticas:
(rule id)
cond
C → C0
donde C = hag , C , M, T , si es una configuración que puede
transformarse en una nueva C 0 , si cond se cumple.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica operacional: Selección de eventos
(SelEv1 )
SE (CE ) = hte, ii
hag , C , M, T , SelEv i → hag , C 0 , M, T 0 , RelPli
t.q. CE0 = CE \{hte, ii}, T0 = hte, ii
(SelEv2 )
CE = ∅
hag , C , M, T , SelEv i → hag , C , M, T , SelInti
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica operacional: Planes relevantes
(Rel1 )
T = hte, ii, RelPlans(agps , te) 6= ∅
hag , C , M, T , RelPli → hag , C , M, T 0 , AppPli
t.q. TR0 = RelPlans(agps , te)
(Rel2 )
T = hte, ii, RelPlans(agps , te) = ∅
hag , C , M, T , RelPli → hag , C , M, T , SelEv i
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica operacional: Planes aplicables
(Appl1 )
ApplPlans(agbs , TR ) 6= ∅
hag , C , M, T , ApplPli → hag , C , M, T 0 , SelAppli
0
t.q. TAp
= AppPlans(agbs , TR )
(Appl2 )
ApplPlans(agbs , TR ) = ∅
hag , C , M, T , ApplPli → hag , C , M, T , SelInti
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica operacional: Selección plan aplicable
(SelAppl)
t.q. Tρ0 = (p, θ)
SO (TAp ) = (p, θ)
hag , C , M, T , SelAppli → hag , C , M, T 0 , AddIMi
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica operacional: Adopción de intenciones
(ExtEv)
T = hte, >i, Tρ = (p, θ)
hag , C , M, T , AddIMi → hag , C 0 , M, T , SelInti
t.q. CI0 = CI ∪ {[pθ]}
(IntEv)
T = hte, ii, Tρ = (p, θ)
hag , C , M, T , AddIMi → hag , C 0 , M, T , SelInti
t.q. CI0 = CI ∪ {i[pθ]}
Referencias
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Semántica operacional: Selección de intenciones
(SelInt1 )
CI 6= ∅, SI (CI ) = i
hag , C , M, T , SelInti → hag , C , M, T 0 , ExecInti
t.q. Tι0 = i
(SelInt2 )
CI = ∅
hag , C , M, T , SelInti → hag , C , M, T , ProcMsg i
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica operacional: Ejecución de una acción
(Action)
t.q. CA0 = CA ∪ a,
Tι = i[head ← a; h]
hag , C , M, T , ExecInti → hag , C 0 , M, T 0 , ClrInti
Tι0 = i[head ← h],
CI0 = (CI \{Ti ota}) ∪ {Tι0 }
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Semántica operacional: Ejecución de una meta alcanzable
(AchvGl)
Tι = i[head ←!at; h]
hag , C , M, T , ExecInti → hag , C 0 , M, T , ProcMsg i
t.q. CE0 = CE ∪ {h+!at, Tι i}, CI0 = CI \ {Tι }
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Semántica operacional: Ejecución de una meta verificable
(TestGl1 )
Tι = i[head ←?at; h], Test(agbs , at) = atθ
hag , C , M, T , ExecInti → hag , C 0 , M, T , ClrInti
t.q. Tι0 = i[(head ← h)θ],
(TestGl2 )
CI0 = (CI \{Tι }) ∪ {Tι0 }
Tι = i[head ←?at; h], Test(agbs , at) = ⊥
hag , C , M, T , ExecInti → hag , C 0 , M, T , ClrInti
t.q. CE0 = CE ∪ {h+?at, Tι i},
CI0 = CI \{Tι }
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Semántica operacional: Actualización de creencias
(AddBel)
Tι = i[head ← +b; h]
hag , C , M, T , ExecInti → hag 0 , C 0 , M, T 0 , ClrInti
t.q.
0
agbs
= agbs + b[self ] , CE0 = CE ∪ {h+b[self ] , >i},
0
CI = (CI \{Tι }) ∪ {Tι0 }
(DelBel)
Tι0 = i[head ← h],
Tι = i[head ← −at; h]
hag , C , M, T , ExecInti → hag 0 , C 0 , M, T 0 , ClrInti
t.q.
0
agbs
= agbs − at[self ] , CE0 = CE ∪ {h−at[self ] , >i},
0
CI = (CI \{Tι }) ∪ {Tι0 }
Tι0 = i[head ← h],
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica operacional: Limpieza
(ClrInt1 )
Tι = [head ← >]
hag , C , M, T , ClrInti → hag , C 0 , M, T , ProcMsg i
t.q. CI0 = CI \ {Tι }
(ClrInt2 )
Tι = i[head ← >]
hag , C , M, T , ClrInti → hag , C 0 , M, T , ClrInti
t.q. CI0 = (CI \ {Tι }) ∪ {k[(head 0 ← h)θ]} si i = k[head 0 ← g ; h] y
g θ = TrEv (head)
(ClrInt3 )
Tι 6= [head ← >] ∧ Tι 6= i[head ← >]
hag , C , M, T , ClrInti → hag , C , M, T , ProcMsg i
Referencias
AgentSpeak(L)
Jason
Propiedades BDI
CTLAgentSpeak(L)
Semántica Operacional: grafo
Rel2
SelEv1
SelEv
SelEv2
ProcMsg
AchvGl
Rel1
RelPl
ClrInt1
ApplPl
Appl2
Appl1
SelInt2
ClrInt3
SelInt
ClrInt2
SelAppl
ClrInt
SelAppl
SelInt1
TestGl1
TestGl2
AddBel
DelBel
Action
ExecInt
ExtEv
IntEv
AddIM
Referencias
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica operacional vs Lógicas BDI
I
Ganamos una semántica clara, precisa y computable.
I
Pero ¿Donde están mis operadores BDICTL ?
I
¿Qué significa que el agente crea, desee o intente algo?
I
En CTLAgentSpeak(L) [3, 4].
Referencias
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Sintaxis
I
I
Si at ∈ AgentSpeak(L), entonces at, BEL(at), DES(at),
INTEND(at) son fbf intencionales de CTLAgentSpeak(L) .
Las fbf de estado son:
s1 Toda fbf intencional es una fbf de estado.
s2 Si φ y ψ son fbf de estado, φ ∧ ψ y ¬φ lo son.
s3 Si φ es una fbf de camino, entonces Eφ es una fbf de estado.
I
Las fbf de camino son:
p1 Toda fbf de estado es una fbf de camino.
p2 Si φ y ψ son fbf de camino, ¬φ, φ ∧ ψ, φ, 3φ y φ U ψ son
fbf de camino.
I
Ej. INTEND(A3go(paris)) U ¬BEL(go(paris, summer ).
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Semántica: Metas realizables
I
Dada una intención, colectar las fbf atómicas que son sujeto
de una meta realizable (achieve goals):
= {},
{at} ∪ agls(i) if p = +!at : ct ← h,
agls(i[p]) =
agls(i)
otherwise
agls(>)
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica: BDI
BELhag ,C i (φ) ≡ agbs |= φ
[
[
INTENDhag ,C i (φ) ≡ φ ∈
agls(i) ∨
i∈CI
agls(i)
hte,ii∈CE
DEShag ,C i (φ) ≡ h+!φ, ii ∈ CE ∨ INTEND(φ)
Referencias
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Semántica: Modelo
I
K = hS, R, V i es una estructura de Kripke definida sobre el
sistema de transición (Γ) de AgentSpeak(L), donde:
I
I
I
S es un conjunto de configuraciones hag , C , M, T , si.
R ⊆ S 2 es una relación serial t.q. para todo (ci , cj ) ∈ R,
(ci , cj ) ∈ Γ.
V es una función de evaluación sobre los operadores
intencionales y temporales, por ej., VBEL (c, φ) ≡ BELhag ,C i (φ)
en la configuración c = hag , C , M, T , si, etc.
I
x = c0 , . . . , cn denota un camino, una secuencia de
configuraciones t.q. para todo ci ∈ S, (ci , ci+1 ) ∈ R.
I
x i denota el sufijo del camino x a partir de la configuración ci .
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Semántica: fbf de estado
K , ci
|= BEL(φ) ⇔ φ ∈ VBEL (ci , φ)
K , ci
|= INTEND(φ) ⇔ φ ∈ VINTEND (ci , φ)
K , ci
|= DES(φ) ⇔ φ ∈ VDES (ci , φ)
K , ci
|= Eφ ⇔ ∃x i ∃cj≥i ∈ x i t.q. K , cj |= φ
K , ci
|= Aφ ⇔ ∀x i ∃cj≥i ∈ x i t.q. K , cj |= φ
Referencias
Jason
AgentSpeak(L)
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Semántica: fbf de camino
I
La semática del operador “hasta” es la del weak until (ψ puede
no ocurrir nunca).
I
Observe que |= α ≡ Tι = i[head ← α; h] ∧ s = ExecInt.
K , ci
|= φ ⇔ K , x i |= φ, cuando φ es una fbf de estado
K , ci
|= φ ⇔ K , x i+1 |= φ
K , ci
|= 3φ ⇔ ∃cj≥i ∈ x i t.q. K , cj |= φ
K , ci
|= φ U ψ ⇔ (∃ck≥i t.q. K , x k |= ψ ∧
∀ci≤j<k
K , x j |= φ) ∨ (∃cj≥i
K , x j |= φ).
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Semántica: Corridas, satisfacción y validez
I
Dada una configuración inicial c0 , la corrida KΓ0 denota una
secuencia de configuraciones c0 , c1 , . . . t.q.
∀i ≥ 1, ci = Γ(ci−1 ).
I
Dada una corrida KΓ0 , la propiedad φ ∈ CTLAgentSpeak(L) se
satisface si ∀i ≥ 0, KΓ0 , ci |= φ.
I
Una propiedad φ ∈ CTLAgentSpeak(L) es válida, si KΓ0 , c0 |= φ
para toda configuración inicial c0 .
Jason
AgentSpeak(L)
Propiedades BDI
CTLAgentSpeak(L)
Referencias
Asimetría en sistemas B KD45 D KD I KD vs Jason
I
Jason no es equivalente a las Lógicas BDI [2]:
Realismo fuerte
Realismo
Realismo débil
Jason
AT1
X
X
X
AT2
X
X
X
AT3
X
X
X
AT4
X
X
X
X
AT5
X
X
AT6
X
X
X
AT7
X
X
X
AT8
X
X
X
AT9
X
X
X
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Posposición finita
I
¿Estos agente mantienen sus intenciones indefinidamente o no?
I
¿Es válido el axioma de posposición finita?
INTEND(φ) → A3(¬INTEND(φ))
I
Prueba: Asumamos K , c0 |= INTEND(φ), entonces dada la
definición de INTEND, existe un plan p ∈ CI ∪ CE con la
cabeza +!φ en c0 . p es finito por definición. Siguiendo ClrIntX
el plan es abandonado por éxito o fracaso.
I
Observación: Mecanismos de fallo.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Compromiso ciego
I
Los agentes AgentSpeak(L) no satisfacen la propiedad de
comprimiso ciego:
INTEND(A3φ) → A3BEL(φ)
I
Prueba: Asumamos c0 donde ag = h{b(t1 )}, {+b(t1 ) : > ←
p(t2 ). +!p(t2 ) : > ← +b(t3 ).}. Se obtendrá una
configuración c 0 donde CI = {[+!p(t2 ) : > ← +b(t3 ).]} y
CE = {} t.q. K , c 0 |= INTEND(p(t2 )) y K , c 0 6|= BEL(p(t2 )).
En la siguiente configuración c 00 , K , c 00 |= ¬INTEND(p(t2 )) y
K , c 00 6|= BEL(p(t2 )).
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Compromiso racional
I
Un agente AgentSpeak(L) satisface una forma limitada del
compromiso racional:
INTEND(A3φ) → A(INTEND(A3φ) U ¬BEL(E3φ))
I
Prueba: Siguiendo la demostración de posposición finita, en los
casos de fallo el agente satisface eventualmente
¬INTEND(φ) debido a Rel2 –Para un evento
hte, i[+!φ : c ← h.]i no hubo planes relevantes y la intención
asociada es abandonada.
I
Se trata de una forma limitada de compromiso racional porque
no hay representación explícita de la razón de abandono.
AgentSpeak(L)
Jason
CTLAgentSpeak(L)
Propiedades BDI
Referencias
Referencias I
RH Bordini, JF Hübner y M Wooldridge. Programming Multi-Agent Systems in
Agent-Speak using Jason. John Wiley & Sons Ltd, 2007.
RH Bordini y ÁF Moreira. “Proving BDI properties of agent-oriented
programming languages”. En: Annals of Mathematics and Artificial Intelligence
42 (2004), págs. 197-226.
A Guerra-Hernández, JM Castro-Manzano y A El-Fallah-Seghrouchni. “Toward
an AgentSpeak(L) Theory of Commitment and Intentional Learning”. En:
MICAI 2008. Ed. por A Gelbuch y EF Morales. Vol. 5317. Lecture Notes in
Artificial Intelligence. Berlin Heidelberg: Springer-Verlag, 2008, págs. 848-858.
A Guerra-Hernández, JM Castro-Manzano y A El-Fallah-Seghrouchni. “CTL
AgentSpeak(L): a Specification Language for Agent Programs”. En: Journal of
Algorithms 64 (2009), págs. 31-40.
A Rao. “AgentSpeak(L): BDI Agents Speak Out in a Logical Computable
Language”. En: Seventh European Workshop on Modelling Autonomous Agents
in a Multi-Agent World. Ed. por R van Hoe. Eindhoven, The Netherlands, 1996.
Descargar