En la secci´on anterior se definieron los componentes que son utilizados para especi- ficar un agente. En esta secci´on se definir´a qu´e significa ejecutar un agente, es decir, se especificar´a su sem´antica. En este contexto, deber´a explicarse qu´e significa el uso de cada uno de los componentes mentales de un agente y c´omo se relacionan entre s´ı.
Para explicar la sem´antica del agente se introducir´a la noci´on de configuraci´on. Las configuraciones ser´an utilizadas para representar el estado de los componentes mentales del agente en cada momento de su ejecuci´on. Es decir, una configuraci´on en un momento particular denotar´a una imagen de los componentes mentales en ese momento. Es as´ı que las configuraciones de un agente estar´an caracterizadas ´unicamente por aquellos compo- nentes que pueden cambiar durante su ejecuci´on. Por lo tanto, las reglas de razonamiento y las acciones b´asicas (presentes en la especificaci´on inicial del agente) no formar´an parte de una configuraci´on. De esta manera, una configuraci´on estar´a caracterizada por una base de creencias, una base de metas y, adicionalmente, una base de planes. Esta ´ultima indicar´a el plan y la meta que el agente est´a persiguiendo actualmente, o ser´a especificada mediante en caso de que actualmente no posea un plan en ejecuci´on.
Definici´on 2.10 (Configuraci´on 3APL) Una configuraci´on de un agente 3APL es una tupla (σ, γ,Π), donde σ es una base de creencias, γ es una base de metas, y Π
30 Cap´ıtulo 2. Lenguajes de Programaci´on de Agentes
es la base de planes constituida por el par (π, κ) donde π es un plan y κ es una meta, o bien por .
Inicialmente, un agente comenzar´a con una configuraci´on caracterizada por las bases presentadas en la Definici´on 2.9 y una base de planes vac´ıa. Formalmente:
Definici´on 2.11 SeaA= (σ0, γ0, Cap, SP, RP)la especificaci´on de un agente 3APL. La
configuraci´on inicial de A ser´a (σ0, γ0, ).
Ejemplo 2.7 Considere el agente que se desenvuelve en el mundo de bloques corres- pondiente al Ejemplo 2.6. La configuraci´on inicial de este agente contendr´a la base de creencias del Ejemplo 2.1, la base de metas del Ejemplo 2.2 y una base de planes vac´ıa.
Razonamiento en 3APL
El modelo de razonamiento describe la sem´antica operacional de las creencias y las metas para un agente 3APL en un momento dado. Es decir, este modelo establece c´omo el agente determinar´a en qu´e cree o qu´e busca lograr a partir de una configuraci´on. Para esto se utilizar´an las creencias y metas actuales. De esta manera, si una creencia actual
Ba es v´alida (o se infiere) en una configuraci´on, querr´a decir que el agente cree en a en esa configuraci´on. An´alogamente, y si Gb es v´alida en una configuraci´on, significar´a que el agente tiene como meta a b en esa configuraci´on.
Para determinar si Baes una creencia actual v´alida en una configuraci´on, deber´a ana- lizarse si es posible inferir a a partir de la base de creencias de esa configuraci´on. De manera similar, una meta actual Gc ser´a v´alida en una configuraci´on si se puede obtener
c de la base de metas de esa configuraci´on, y adem´as no es inferible a partir de la base de creencias de tal configuraci´on. Esto ´ultimo se debe a la intuici´on de que el agente no debe tener una meta que cree ya alcanzada. Esta caracter´ıstica corresponde a las metas de logro, el tipo de metas con las que cuenta 3APL.
A continuaci´on, en la definici´on de la sem´antica de las creencias actuales y las metas actuales, se capturar´an las intuiciones enunciadas en los p´arrafos anteriores.
Definici´on 2.12 (Sem´antica de creencias y metas actuales) Sea C = (σ, γ,Π) una configuraci´on de agente, ` la relaci´on de deducci´on est´andar de programaci´on en
El Lenguaje 3APL 31
l´ogica sobre los elementos de L, Ba una creencia actual, Gc una meta actual, β un conjunto de creencias actuales y κ un conjunto de metas actuales. La sem´antica de las creencias actuales y metas actuales se define respectivamente como:
(σ, γ,Π)`SBa ⇔ σ`a
(σ, γ,Π)`Sβ ⇔ Para todo Bai en β vale que (σ, γ,Π)`SBai
(σ, γ,Π)`SGc ⇔ γ `cy σ 0c
(σ, γ,Π)`Sκ ⇔ Para todo Gcj en κ vale que (σ, γ,Π)`SGcj
Note que, de acuerdo a lo establecido por la Definici´on 2.12, si (σ, γ,Π)`SBa, en-
tonces a es una creencia actual v´alida en la configuraci´on (σ, γ,Π). An´alogamente, si (σ, γ,Π)`SGc, entonces ces una meta actual v´alida en la configuraci´on (σ, γ,Π).
Como se mencion´o anteriormente, las creencias actuales y las metas actuales repre- sentan los elementos que el agente utilizar´a para analizar si tiene una creencia o meta determinada. En particular, estas creencias y metas actuales son utilizadas en acciones, reglas de selecci´on de planes y reglas de revisi´on de planes. Por lo tanto, la sem´antica de creencias y metas actuales resultar´a importante para explicar c´omo es la sem´antica operacional de estos otros componentes.
Reglas de Transici´on
Habiendo definido c´omo el agente razona acerca de sus creencias y metas en una confi- guraci´on determinada, es posible presentar la sem´antica de ejecuci´on de un agente 3APL. Esta sem´antica operacional se definir´a a trav´es de un sistema de transiciones [Plo04]. Un sistema de transiciones para un lenguaje de programaci´on consiste de un conjunto de axiomas y reglas de transici´on que determinar´an c´omo el sistema pasa de un estado a otro. Por lo tanto, una transici´on en un agente ser´a la transformaci´on de una configuraci´on en otra configuraci´on, que adem´as corresponder´a a un paso computacional individual.
Una regla de transici´on en 3APL estar´a compuesta por tres elementos: una condici´on bajo la cual la regla de transici´on es aplicable y dos configuraciones (una de origen y otra de destino), las cuales describen c´omo el agente cambia de configuraci´on al aplicar la regla de transici´on. Por ejemplo, una regla de transici´onT con condici´onC, configuraci´on origen O y configuraci´on destino D, se notar´a como:
32 Cap´ıtulo 2. Lenguajes de Programaci´on de Agentes
T = condici´on C
configuraci´on origen O→configuraci´on destino D
En las reglas de transici´on que se presentar´an a continuaci´on se asumir´a que se cuenta con un conjunto SP de reglas de selecci´on de plan, con un conjunto RP de reglas de revisi´on de plan, y con un conjunto Cap de acciones b´asicas, todos obtenidos a partir de la especificaci´on del agente (Definici´on 2.9), adem´as de la funci´on de actualizaci´on de la base de creenciasF que se mencion´o anteriormente.
Sem´antica de Acciones B´asicas
Las acciones mentales actualizan la base de creencias del agente a trav´es de la funci´on
F. Esta funci´on, como se mencion´o anteriormente, retornar´a la base de creencias que resulta de aplicar una acci´on mental a una base de creencias. Las metas que se alcancen luego de la ejecuci´on de esta acci´on deber´an ser removidas de la base de metas. Luego de la ejecuci´on de una acci´on, esta deber´a ser removida del plan correspondiente. Por ´ultimo, la ejecuci´on de una acci´on ser´a posible siempre y cuando se cumplan las precondiciones de la acci´on y la meta para la cual el plan (que contiene la acci´on) fue concebido siga valiendo.
Definici´on 2.13 (Transici´on de Acciones Mentales) Sea am = (β, N, E) una ac- ci´on mental y CO = (σ, γ,([am, a1, . . . , an], κ)) una configuraci´on, con n ≥ 0. La transi-
ci´on producida por ma en CO se define como:
CO`Sβ ∧ CO`Sκ ∧ F(σ, am) =σ0
(σ, γ,([am, a1, . . . , an], κ))→(σ0, γ0,([a1, . . . , an], κ))
donde γ0 ={φ| φ ∈γ ∧ (σ0, γ0,([a1, . . . , an], κ))0SBφ}
Ejemplo 2.8 Considere la configuraci´on CO = (σ1, γ1,([ir(hab2, hab1), levantar(caja3),
ir(hab1, hab2), dejar(caja3)],Gen(caja3, hab1))) para el agente presentado en los ejem- plos anteriores, donde σ1 es la base de creencias del Ejemplo 2.1 y γ1 es la base de me-
tas del Ejemplo 2.2. Dado que CO `S {Ben(yo, hab2)}, que CO `S Gen(caja3, hab1),
que F(ir(hab2, hab1), σ1) = σ2 = (σ1 ∪ {pos(yo, hab2)}) \ {pos(yo, hab2)}, y
que γ2 = γ1, se podr´a aplicar la regla de transici´on para la acci´on mental “ir(hab2, hab1)”, llevando al agente a la configuraci´on CD = (σ2, γ2,([levantar(caja3),
El Lenguaje 3APL 33
Como se mencion´o en la Secci´on 2.3.1, las acciones externas en 3APL ser´an ´atomos que cuando son ejecutados representar´an que el agente interact´ua con su entorno. Normalmen- te estas acciones son utilizadas en combinaci´on con las acciones mentales, ya que podr´ıan llegar a pasar informaci´on para actualizar la base de creencias. A´un as´ı, los autores de 3APL han tratado estas acciones de manera abstracta, tomando un enfoque diferente en las distintas versiones del lenguaje. Dada esta situaci´on, se asumir´a la existencia de una funci´onCall que ejecutar´a una acci´on externa en un ambiente adecuado.
Definici´on 2.14 (Ejecuci´on de Acci´on Externa) Sea ae una acci´on externa y
CO = (σ, γ,([e, a1, . . . , an], κ)) una configuraci´on. La transici´on producida por ae en CO
se define como:
Call(ae) ∧ CO`Sκ
(σ, γ,([ae, a1, . . . , an], κ))→(σ, γ,([a1, . . . , an], κ))
Como se mencion´o anteriormente, el ejemplo utilizado a lo largo de este cap´ıtulo no ha- ce uso de acciones externas. Sin embargo, existen entornos din´amicos en los que un agente necesita interactuar con un sistema externo para ejecutar sus acciones y poder as´ı conocer c´omo los efectos de estas acciones afectar´an al mundo y, por lo tanto, a sus creencias. Es por esto que, en entornos con tales caracter´ısticas, un agente necesitar´a utilizar acciones externas.
Por ejemplo, en un escenario como el del Multi-Agent Contest [BDD+10], los agentes
comunican sus acciones a un servidor encargado de manipular el mundo, siendo este servidor el que efectivamente ejecuta las acciones en el mundo. Si bien el agente puede predecir en cierto grado cual ser´a el efecto de su accionar en el mundo, no puede asegurar que una acci´on tendr´a ´exito, ni c´omo se combinar´a con el accionar de otros agentes. Por lo tanto, en este contexto, para saber definitivamente cual ser´a el efecto de su accionar en el mundo, el agente deber´a solicitar al servidor una percepci´on del mundo luego de aplicar la acci´on. Los agentes 3APL, si bien proveen el mecanismo para modelar las acciones externas, se abstraen demasiado de todas estas cuestiones. El lenguaje de programaci´on de agentes desarrollado en el Cap´ıtulo 6 considerar´a una representaci´on de acciones externas m´as rica, as´ı como tambi´en un modelo para considerar las percepciones.
Sem´antica de Reglas de Razonamiento
A continuaci´on se analizar´a la transici´on para las reglas de selecci´on de plan y las reglas de revisi´on de plan. Una regla de selecci´on de plan har´a que un plan pase a ejecutarse
34 Cap´ıtulo 2. Lenguajes de Programaci´on de Agentes
si se dan ciertas condiciones. En primer lugar, la regla de selecci´on de plan debe ser aplicable, es decir, tanto la meta que pregona como sus precondiciones tienen que valer en la configuraci´on actual del agente. Por otra parte, un agente podr´a en ejecuci´on un plan a partir de las reglas de selecci´on de planes, siempre y cuando no haya un plan actual en ejecuci´on. La intuici´on detr´as de esta restricci´on es que el agente elegir´a un nuevo plan ´
unicamente cuando haya finalizado de ejecutar uno anterior, o cuando el plan actual ya no sea v´alido. En caso de cumplirse estas condiciones, el plan correspondiente a la regla de selecci´on de plan aplicable pasar´a a ser el plan actual en la base de planes.
Definici´on 2.15 (Transici´on de Reglas de Selecci´on de Planes) Sea κ | β ⇒ π
una regla de selecci´on de plan yCO = (σ, γ, )una configuraci´on. La transici´on producida por κ | β ⇒ π en CO se define como:
CO`Sβ ∧ CO`Sκ
(σ, γ, )→(σ, γ,(π, κ))
Ejemplo 2.9 Considere el agente que se desenvuelve en el dominio del Ejemplo 2.1, cuya configuraci´on inicial CI = (σ1, γ1, ) es la presentada en el Ejemplo 2.7. En esta
configuraci´on las siguientes reglas de selecci´on de planes son aplicables:
Gen(C, H1)| {Bpos(yo, H2),Ben(C, H2)} ⇒[levantar(C), ir(H2, H1), dejar(C)]
Gen(C, H1)| {Bpos(yo, H2),Ben(C, H3), H26=H3} ⇒[ir(H2, H3), levantar(C), ir(H3, H1), dejar(C)]
La primer regla es aplicable dado que CI`SGen(caja1, hab1), CI`S{Bpos(yo, hab2), Ben(caja1, hab2)} y la base de planes de CI es vac´ıa. Por lo tanto, al aplicar la
regla de transici´on a esta regla de selecci´on de planes la configuraci´on resultante ser´a C2 = (σ1, γ1,([levantar(caja1), ir(hab2, hab1), dejar(caja1))],Gen(caja1, hab1))).
Por otra parte, la segunda regla es aplicable dado que CI`SGen(caja3, hab2), CI`S{Bpos(yo, hab2),Ben(caja3, hab1)} y la base de planes de CI es vac´ıa. Por lo
tanto, al aplicar la regla de transici´on a esta regla de selecci´on de planes la confi- guraci´on resultante ser´a C20 = (σ1, γ
1,([ir(hab2, hab1), levantar(caja3), ir(hab1, hab2),
dejar(caja3))],Gen(caja3, hab1))). Adicionalmente, note que la configuraci´on C20 es la
El Lenguaje 3APL 35
Note que, como se puede observar en el Ejemplo 2.9, el agente podr´ıa tener m´as de una regla de selecci´on de plan aplicable. En ese caso, el agente debe elegir una de ellas utilizando alguna estrategia, como por ejemplo preferir el plan m´as corto, o tratar de alcanzar las metas m´as valiosas. En las implementaciones de 3APL [DvRM05] las reglas de selecci´on de plan se ordenan seg´un como han sido especificadas, y ese orden establece cu´ales se intentar´an aplicar primero. Aun as´ı, el formalismo de 3APL maneja este criterio de selecci´on de manera abstracta y modular.
De manera similar a las reglas de selecci´on de planes, las reglas de revisi´on de pla- nes podr´an producir una transici´on cuando sean aplicables. Estas reglas ser´an aplicables cuando, en la configuraci´on actual, el agente crea en la precondici´on de la regla y adem´as el plan de la configuraci´on actual tenga como prefijo al plan a revisar por la regla de revisi´on de planes. Al aplicar la regla, se llegar´a a una nueva transici´on donde el prefijo de plan es reemplazado por el plan en el cuerpo de la regla. Por lo tanto, para definir esta transici´on se utilizar´a la funci´on Prefijo, la cual dados dos planes retornar´a > si el primero es un prefijo del segundo y ⊥ en caso contrario. Por ejemplo, una regla [a, b] | > ;[c] puede ser aplicada en el contexto de un plan [a,b,c], ya que no posee precondiciones y Prefijo([a, b],[a, b, c]) =>, con lo cual se obtendr´a el plan [c,c].
Definici´on 2.16 (Transici´on de Reglas de Revisi´on de Planes) Sea [a1, . . . , an] | β ; [c0, . . . , ck] una regla de revisi´on de plan con n ≥ 1, k ≥ 0, y sea CO = (σ, γ,([a1, . . . , an, an+1, . . . , am], κ)) una configuraci´on con m ≥ n. La transici´on
producida por [a1, . . . , an] | β ; [c0, . . . , ck] en CO se define como:
CO`Sβ ∧ CO`Sκ ∧ Prefijo([a1, . . . , an],[a1, . . . , an, an+1, . . . , am])
(σ, γ,([a1, . . . , an, an+1, . . . , am], κ))→(σ, γ,([c0, . . . , ck, an+1, . . . , am], κ))
Ejemplo 2.10 Considere que el agente se encuentra en la configuraci´on C2 =
(σ1, γ1,([levantar(caja1), ir(hab2, hab1), dejar(caja1))],Gen(caja1, hab1))) del Ejem-
plo 2.9. Note que la regla:
[levantar(C1)] | {Bsobre(C2, C1)} ; [levantar(C2), dejar(C2), levantar(C1)]
es aplicable en C2. Esto se debe a que C2`SBsobre(caja2, caja1), C3`SGen(caja1, hab1)
y el plan [levantar(caja1)] es un prefijo del plan [levantar(caja1), ir(hab2, hab1),
dejar(caja1)] actualmente en ejecuci´on. En consecuencia, el resultado de aplicar es- ta regla llevar´a al agente a la siguiente configuraci´on C3 = (σ1, γ1,([levantar(caja2),
36 Cap´ıtulo 2. Lenguajes de Programaci´on de Agentes
Con esta ´ultima transici´on se presentaron todas las transiciones para los componentes especificados en el agente. Sin embargo, es necesario utilizar otras transiciones especiales para representar qu´e ocurre cuando, por ejemplo, la meta del plan que se est´a ejecutando actualmente deja de ser v´alida, o cuando el agente intenta ejecutar un plan vac´ıo.
En primer instancia, si por alguna raz´on el agente est´a intentando ejecutar un plan en una configuraci´on tal que la meta para la cual fue concebido ya no es v´alida en esa configuraci´on, el plan debe ser descartado. En consecuencia, al descartar un plan, la base de planes pasa a estar vac´ıa.
Definici´on 2.17 (Transici´on Fallo Meta) Sea CO = (σ, γ,(π, κ)) una configuraci´on.
La transici´on producida en caso de que CO0Sκ se define como:
CO0Sκ
(σ, γ,(π, κ))→(σ, γ, )
N´otese que esta transici´on es aplicable siempre que la meta del plan actual deje de valer, sin importar cu´ales sean las acciones que conforman el plan. Adicionalmente, es importante distinguir el concepto de plan descartado del concepto de plan bloqueado. Como se mencion´o anteriormente, un plan descartado es aquel para el cual la meta que busca alcanzar ya no es v´alida, ya sea porque fue alcanzada previamente o porque fue descartada por alguna otra raz´on. En contraste, un plan bloqueado es un plan a´un v´alido, que por alguna raz´on no puede continuar su ejecuci´on hasta que la situaci´on del mundo cambie o el plan sea reparado. En 3APL no se considerar´an reglas de transici´on especiales para estas ´ultimas situaciones, ya que el estado del agente no cambiar´a por ellas.
Si ocurre la situaci´on en que un agente 3APL cuenta con un plan vac´ıo en ejecuci´on, esto implica probablemente ya ejecut´o todas sus acciones y, por lo tanto, debe removerlo de la base de planes. Por lo tanto, el agente pasar´a a estar en un estado en el que no posee un plan por ejecutar.
Definici´on 2.18 (Transici´on plan vac´ıo) Sea CO = (σ, γ,([], κ)) una configuraci´on.
La transici´on producida cuando en CO hay un plan vac´ıo se define como:
>
El Lenguaje 3APL 37