stringtranslate.com

Programación orientada a agentes

La programación orientada a agentes ( AOP ) es un paradigma de programación en el que la construcción del software se centra en el concepto de agentes de software . A diferencia de la programación orientada a objetos , que tiene objetos (que proporcionan métodos con parámetros variables) en su núcleo, la AOP tiene agentes especificados externamente (con interfaces y capacidades de mensajería) en su núcleo. Se pueden considerar como abstracciones de objetos. Los mensajes intercambiados son interpretados por los "agentes" receptores, de una manera específica para su clase de agentes.

Historia

Históricamente, el concepto de programación orientada a agentes y la idea de centrar el software en torno al concepto de un agente fue introducido por Yoav Shoham en sus estudios de inteligencia artificial en 1990. [1] [2] Sus agentes son específicos de su propio paradigma, ya que tienen un solo método, con un parámetro. Para citar a Yoav Shoham de su artículo de 1990 sobre una diferencia básica entre AOP y OOP:

... programación orientada a agentes (AOP), que puede considerarse como una especialización de la programación orientada a objetos.

Marcos

Existen múltiples "marcos" de AOP, también denominados plataformas de agente, que implementan el paradigma de programación de Shoham. Los siguientes ejemplos ilustran cómo se programa un agente básico como un programa de "hola-mundo".

JADE

Para la plataforma Java, uno de los marcos es JADE. [3] Aquí hay un ejemplo muy básico [4] de un agente que ejecuta código.

paquete helloworld ; importar jade.core.Agent ;  clase pública Hola extiende Agente { void protegido setup () { System . println ( "Hola mundo. " ); System . println ( " Mi nombre es " + getLocalName ( ) ) ; } clase pública Hola () { System . println ( "Constructor llamado" ) ; }             }

En el núcleo del modelo AOP de JADE se encuentra que su API admite el lenguaje de comunicación del agente FIPA estándar.

El agente habla (Jason)

AgentSpeak es un lenguaje de programación orientado a agentes basado en la programación lógica y la arquitectura creencia-deseo-intención (BDI).

Para una traducción literal de los conceptos orientados a agentes en un esquema tan claro como JADE, detrás de Java y la Orientación a Objetos, Agent Speak [5] (Jason) proporciona un lenguaje "natural" para los agentes.

comenzó .+ iniciado <- .print("Hola mundo. ").

META

GOAL es un lenguaje de programación de agentes para programar agentes cognitivos . Los agentes GOAL derivan su elección de acción de sus creencias y objetivos. El lenguaje proporciona los componentes básicos para diseñar e implementar agentes cognitivos mediante la programación de construcciones que permiten y facilitan la manipulación de las creencias y objetivos de un agente y para estructurar su toma de decisiones . El lenguaje proporciona un marco de programación intuitivo basado en el sentido común o el razonamiento práctico .

Lenguaje SARL

SARL [6] proporciona las abstracciones fundamentales para codificar sistemas multiagente. [7] Utiliza una sintaxis similar a un script (inspirada en Scala y Ruby).

paquete hola mundo importar io.sarl.core.Initialize agente HelloWorldAgent { en Initialize { println ( "Hola mundo." ) } }         

PADE (marco de desarrollo de agentes Python)

PADE [8] es un paquete de Python para desarrollar agentes inteligentes en lenguaje Python. Este framework cumple con los estándares FIPA y ACL.

clase  AgenteHelloWorld ( Agente ):  def  __init__ ( self ,  aid ):  super ( AgenteHelloWorld ,  self ) .__ init __ ( aid = aid )  mostrar_mensaje ( self . aid.localname , ' ¡ Hola mundo!' ) 

Software intermedio

Una forma de implementar un soporte AOP modular o extensible es definir API de AOP estándar para funciones de middleware que se implementan como agentes de software . Por ejemplo, un servicio de directorio se puede implementar como un facilitador de directorio FIPA o un agente de software DF; la gestión del ciclo de vida para iniciar, detener, suspender y reanudar agentes se puede implementar como un Servicio de Gestión de Agente FIPA o un agente AMS. [9] Un beneficio del enfoque AOP es que admite roles más dinámicos entre diferentes usuarios y proveedores de aplicaciones, servicios y redes. Por ejemplo, tradicionalmente, las redes y los servicios generalmente eran administrados por el proveedor de red y servicio en nombre del cliente y se ofrecían como un único servicio de red virtual, pero los propios clientes están cada vez más capacitados para integrar y administrar sus propios servicios. Esto se puede lograr a través de AOP y API para agentes de middleware que pueden administrar la comunicación de manera flexible y dinámica. [10]

Véase también

Referencias

  1. ^ Shoham, Y. (1990). Programación orientada a agentes (Informe técnico STAN-CS-90-1335). Universidad de Stanford: Departamento de Ciencias de la Computación.
  2. ^ Shoham, Y. (1993). "Programación orientada a agentes". Inteligencia artificial . 60 (1): 51–92. CiteSeerX 10.1.1.123.5119 . doi :10.1016/0004-3702(93)90034-9. 
  3. ^ Bellifeminee, Fabio; Agostino Poggi; Giovanni Rimassa (2024). JADE: un entorno de desarrollo de agentes compatible con FIPA2000 . Actas de la quinta conferencia internacional sobre agentes autónomos. págs. 216-217. doi :10.1145/375735.376120.
  4. ^ "Rootdev". rootdev.nl . Archivado desde el original el 2 de julio de 2011 . Consultado el 18 de septiembre de 2022 .
  5. ^ Anand S. Rao, 1996. AgentSpeak(L): Los agentes BDI hablan en un lenguaje computable lógico. Actas del Séptimo Taller Europeo sobre Modelado de Agentes Autónomos en un Mundo Multiagente (MAAMAW-96).
  6. ^ Rodríguez, Sebastián; Gaud, Nicolás; Galland, Stéphane (2014). "SARL: Un lenguaje de programación orientado a agentes de propósito general". Conferencias conjuntas internacionales IEEE/WIC/ACM de 2014 sobre inteligencia web (WI) y tecnologías de agentes inteligentes (IAT) . págs. 103–110. doi :10.1109/wi-iat.2014.156. ISBN . 978-1-4799-4143-8.S2CID15508257  .​
  7. ^ Sitio web de SARL
  8. ^ "Marco de desarrollo del agente Python — Documentación de Pade 1.0".
  9. ^ Poslad, S (2007). "Especificación de protocolos para la interacción de sistemas multiagente". Transacciones ACM en sistemas autónomos y adaptativos . 2 (4): 15–es. doi :10.1145/1293731.1293735. S2CID  9477595.
  10. ^ Poslad, S.; Pitt, J.; Mamdani, A.; Hadingham, R.; Buckle, P. (1999). Hayzelden, A.; Bigham, J. (eds.). Middleware orientado a agentes para la integración de servicios de red de clientes. En: Agentes de software para sistemas de comunicación futuros . págs. 221–242. doi :10.1007/978-3-642-58418-3_9.