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:aguerra@uv.mx 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.