La programación orientada a agentes ( POA ) es un paradigma de programación donde 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 los objetos (que proporcionan métodos con parámetros variables) como base, la POA tiene agentes especificados externamente (con interfaces y capacidades de mensajería) como base. Estos pueden considerarse 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 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 solo tienen un método, con un parámetro. Citando a Yoav Shoham de su artículo de 1990 sobre una diferencia básica entre AOP y OOP:
... la programación orientada a agentes (POA), que puede considerarse una especialización de la programación orientada a objetos.
Marcos de trabajo
Existen varios marcos de trabajo de AOP, también llamados plataformas de agentes, que implementan el paradigma de programación de Shoham. Los siguientes ejemplos ilustran cómo se programa un agente básico como un programa "hola mundo".
JADE
Para la plataforma Java, uno de los frameworks es JADE . [ 3 ] Aquí hay un ejemplo muy básico [ 4 ] de un agente que ejecuta código.
paquete org.wikipedia.examples ;import jade.core.Agent ;public class Example extends Agent { protected void setup () { System . out . println ( "¡Hola, mundo!" ); System . out . printf ( "Mi nombre es %s%n" , getLocalName ()); }public Hello () { System . out . println ( "Constructor llamado" ); } }La base del modelo AOP de JADE es que su API admite el lenguaje de comunicación de agentes FIPA estándar.
Habla el agente (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 conceptos orientados a agentes en un esquema sin ofuscación como JADE, detrás de Java y la orientación a objetos, Agent Speak [ 5 ] (Jason) proporciona un lenguaje "natural" para agentes.
comenzó . + comenzó <- .print("Hola Mundo."). META
GOAL es un lenguaje de programación para agentes cognitivos . Los agentes GOAL basan sus decisiones en sus creencias y objetivos. El lenguaje proporciona los componentes básicos para diseñar e implementar agentes cognitivos mediante la programación de estructuras que permiten y facilitan la manipulación de las creencias y objetivos de un agente, así como la estructuración de su toma de decisiones . El lenguaje ofrece un marco de programación intuitivo basado en el sentido común o el razonamiento práctico .
Idioma SARL
SARL [ 6 ] proporciona las abstracciones fundamentales para codificar sistemas multiagente. [ 7 ] Utiliza una sintaxis similar a la de un script (inspirada en Scala y Ruby).
package helloworld import io.sarl.core.Initialize agent HelloWorldAgent { on Initialize { println ( "Hola Mundo." ) } }PADE (Marco de desarrollo de agentes en Python)
PADE [ 8 ] es un paquete de Python para desarrollar agentes inteligentes en lenguaje Python. Este marco cumple con los estándares FIPA y ACL.
from pade.acl.aid import AID from pade.core.agent import Agent from pade.misc.utility import display_messageclase AgenteHelloWorld ( Agente ): def __init__ ( self , aid : AID ): super ( AgenteHelloWorld , self ) . __init__ ( aid = aid ) display_message ( self . aid . localname , "Hello World!" )Middleware
Una forma de implementar soporte AOP modular o extensible es definir API AOP estándar para funciones de middleware que, a su vez, se implementan como agentes de software . Por ejemplo, un servicio de directorio puede implementarse como un facilitador de directorio FIPA o agente de software DF; la gestión del ciclo de vida para iniciar, detener, suspender y reanudar agentes puede implementarse como un servicio de gestión de agentes FIPA o agente AMS. [ 9 ] Una ventaja 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 solían ser gestionados por el proveedor de red y servicio en nombre del cliente y ofrecidos como un único servicio de red virtual, pero los propios clientes están adquiriendo mayor autonomía para integrar y gestionar sus propios servicios. Esto puede lograrse mediante AOP y API para agentes de middleware que pueden gestionar la comunicación de forma flexible y dinámica. [ 10 ]
Véase también
- Agente de software : programa informático que actúa en nombre de un usuario.
- NetLogo – Lenguaje de programación
- Modelo de actores – Modelo de computación concurrente
- OBJETIVO : Lenguaje para agentes cognitivos
Referencias
- ↑ 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.
- ↑ 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 .
- ↑ 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. pp. 216–217 . doi : 10.1145/375735.376120 .
- ↑ "Rootdev" . rootdev.nl . Archivado del original el 2 de julio de 2011. Consultado el 18 de septiembre de 2022 .
- ↑ Anand S. Rao, 1996. AgentSpeak(L): Los agentes BDI se expresan en un lenguaje lógico computable. Actas del Séptimo Taller Europeo sobre Modelado de Agentes Autónomos en un Mundo Multiagente (MAAMAW-96).
- ↑ Rodríguez, Sebastián; Gaud, Nicolás; Galland, Stéphane (2014). «SARL: Un lenguaje de programación orientado a agentes de propósito general». 2014 IEEE/WIC/ACM International Joint Conferences on Web Intelligence (WI) and Intelligent Agent Technologies (IAT) . pp. 103–110 . doi : 10.1109/wi-iat.2014.156 . ISBN 978-1-4799-4143-8. S2CID 15508257 .
- ↑ Sitio web de SARL
- ↑ "Marco de desarrollo de agentes Python — Documentación de Padé 1.0" .
- ↑ Poslad, S (2007). "Especificación de protocolos para la interacción de sistemas multiagente". ACM Transactions on Autonomous and Adaptive Systems . 2 (4): 15–es. doi : 10.1145/1293731.1293735 . S2CID 9477595 .
- ↑ 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 futuros sistemas de comunicación . págs. 221–242 . doi : 10.1007/978-3-642-58418-3_9 .
- Software basado en agentes
