Articulo de referencia

2APL

2APL (A Practical Agent Programming Language) es un lenguaje de programación modular basado en BDI que permite el desarrollo de sistemas multiagente . 2APL proporciona un amplio...

2APL (A Practical Agent Programming Language) es un lenguaje de programación modular basado en BDI que permite el desarrollo de sistemas multiagente . 2APL proporciona un amplio conjunto de construcciones de programación que posibilitan la implementación directa de conceptos como creencias, objetivos declarativos, acciones, planes, eventos y reglas de razonamiento. Estas reglas permiten la selección y generación de planes en tiempo de ejecución, basándose en objetivos declarativos, eventos y mensajes recibidos, y planes fallidos. 2APL puede utilizarse para implementar sistemas multiagente compuestos por agentes de software con comportamientos tanto reactivos como proactivos.

Descripción general

2APL proporciona construcciones de programación para especificar tanto sistemas multiagente como agentes individuales. Los sistemas multiagente se especifican en términos de agentes individuales y los entornos con los que interactúan. Los agentes individuales se especifican en términos de los siguientes ingredientes.

  • Creencias : Implementa la información inicial de un agente sobre su entorno y otros agentes con los que interactúa. Las creencias de un agente pueden cambiar durante su ejecución.
  • Objetivos : Implementa los objetivos iniciales de un agente. Cada objetivo representa un estado que el agente desea alcanzar. Un objetivo se elimina una vez logrado. Es posible que no se puedan alcanzar diferentes objetivos simultáneamente, ya que podrían representar estados conflictivos.
  • Acciones básicas : 2APL proporciona diferentes tipos de acciones, entre las cuales,
    • La acción de actualización de creencias consiste en actualizar las creencias de un agente.
    • La acción de comunicación consiste en transmitir un mensaje a otro agente.
    • La acción externa consiste en interactuar con un entorno.
    • La acción abstracta consiste en encapsular un plan en una sola acción.
    • La prueba de creencias consiste en consultar las creencias de un agente.
    • La acción de prueba de objetivos consiste en consultar los objetivos de un agente.
    • La acción "Adoptar objetivo" consiste en añadir un objetivo a los objetivos de un agente.
    • La acción "Eliminar objetivo" consiste en eliminar un objetivo de los objetivos de un agente.
  • Planes : Un plan consta de acciones básicas compuestas por operadores como secuencia, elección condicional, iteración condicional y un operador unario para identificar (región de) planes que deben ejecutarse atómicamente, es decir, las acciones no deben intercalarse con las acciones de otros planes del agente.
  • Reglas de razonamiento : Se proporcionan tres tipos de reglas de razonamiento (prácticas) para la generación de planes. Las reglas tienen una condición de creencia que indica cuándo se pueden aplicar.
    • La regla de planificación de objetivos consiste en generar un plan para alcanzar una meta.
    • Una regla de procedimiento genera un plan para reaccionar ante un evento (recibido del entorno) o un mensaje (recibido de un agente). Esta regla también puede utilizarse para relacionar una acción abstracta con el plan que encapsula.
    • La regla de reparación de planes consiste en generar un plan para reemplazar un plan fallido.
  • Módulos : El programa de un agente 2APL se puede desarrollar en módulos separados. Cada módulo encapsula componentes cognitivos como creencias, objetivos, planes y reglas de razonamiento. En la práctica, un módulo 2APL se puede usar para programar una funcionalidad específica, como un rol o un perfil de agente . Un programador puede realizar una amplia gama de operaciones en los módulos, por ejemplo, crear una instancia del módulo, actualizarla , ejecutarla y comprobar su estado.
  • Entornos : Un entorno 2APL puede implementarse como un objeto Java. Los métodos de dicho objeto corresponden a las acciones externas de los agentes. El cuerpo de un método implementa el efecto de la acción correspondiente.

Plataforma 2APL

La plataforma 2APL y su editor de complementos Eclipse se han desarrollado para facilitar el desarrollo y la ejecución de programas multiagente. La ejecución de un programa agente 2APL individual se realiza mediante un proceso cíclico de percepción, razonamiento y acción, denominado proceso de deliberación . La ejecución de un programa multiagente 2APL consiste en la ejecución paralela de los programas agentes individuales involucrados.

La plataforma 2APL en funcionamiento.
La plataforma 2APL en funcionamiento.

Referencias

  • Mehdi Dastani, 2APL: un lenguaje práctico de programación de agentes, International Journal of Autonomous Agents and Multi-Agent Systems (JAAMAS), 16(3):214-248, Número especial sobre agentes basados ​​en lógica computacional, (eds.) Francesca Toni y Jamal Bentahar, 2008.
  • Mehdi Dastani y Bas Steunebrink. Semántica operacional para módulos BDI en programación multiagente. Actas del décimo Taller Internacional sobre Lógica Computacional en Sistemas Multiagente (CLIMA-X), 2009.
  • Mehdi Dastani. Programación modular basada en reglas en 2APL, en A. Giurca, D. Gasevic y K. Taveter (eds.), Manual de investigación sobre lenguajes y tecnologías emergentes basados ​​en reglas: soluciones y enfoques abiertos (2 volúmenes), ISBN 978-1-60566-402-6, 2009.
  • Mehdi Dastani, Jaap Brandsema, Amco Dubel y John-Jules Meyer. Depuración de programas multiagente basados ​​en BDI. En las actas del 7.º Taller Internacional sobre Programación de Sistemas Multiagente (ProMAS 2009), 2009.