Programação orientada a agentes

A programação orientada a agentes ( AOP ) é ​​um paradigma de programação onde a construção do software é centrada no conceito de agentes de software . Em contraste com a programação orientada a objetos que tem objetos (fornecendo métodos com parâmetros variáveis) em seu núcleo, AOP tem agentes especificados externamente (com interfaces e recursos de mensagens) em seu núcleo. Eles podem ser pensados ​​como abstrações de objetos. As mensagens trocadas são interpretadas pelos "agentes" receptores, de forma específica para sua classe de agentes.

História

Historicamente, o conceito de programação orientada a agentes e a ideia de centralizar o software em torno do conceito de Agente foram introduzidos por Yoav Shoham em seus estudos de Inteligência Artificial em 1990. [1] [2] Seus agentes são específicos de seu próprio paradigma, pois eles têm apenas um método, com um único parâmetro. Para citar Yoav Shoham de seu artigo em 1990 para uma diferença básica entre AOP e OOP:

...programação orientada a agentes (AOP), que pode ser vista como uma especialização da programação orientada a objetos. ...
OOP AOP
Unidade Básica objeto agente
Parâmetros que definem o estado da unidade básica irrestrito crenças, compromissos, capacidades, escolhas,...
Processo de computação métodos de passagem e resposta de mensagens métodos de passagem e resposta de mensagens
Tipos de mensagem irrestrito informar, solicitar, oferecer, prometer, recusar, ...
Restrições nos métodos nenhum honestidade, coerência,...

Estruturas

Existem vários 'frameworks' AOP, também chamados de plataformas de agentes, que implementam o paradigma de programação de Shoham. Os exemplos a seguir ilustram como um agente básico é programado como um programa hello-world.

JADE

Para a plataforma Java, um dos frameworks é o JADE. [3] Aqui está um exemplo muito básico [4] de um agente que executa código.

pacote helloworld ; import jade.core.Agent ; 
 

public class Hello extends Agent { protected void setup () { System . fora . println ( "Olá Mundo. " ); Sistema . fora . println ( "Meu nome é " + getLocalName ()); } público Olá () { Sistema . fora . println ( "Construtor chamado" ); }     
	
	    
		
		  
	
	
	  
		
	

}

No centro do modelo AOP do JADE está o fato de sua API suportar o padrão FIPA Agent Communication Language

Agente Fala (Jason)

Para uma tradução literal de conceitos orientados a agentes em um esquema não ofuscado como é o JADE, por trás de Java e orientação a objetos, o Agent Speak [5] (Jason) fornece uma linguagem "natural" para agentes.

	começou .

	+ iniciado <- .print("Hello World. ").

META

GOAL é uma linguagem de programação de agentes para programar agentes cognitivos . Os agentes GOAL derivam sua escolha de ação de suas crenças e objetivos. A linguagem fornece os blocos de construção básicos para projetar e implementar agentes cognitivos por meio de construções de programação que permitem e facilitam a manipulação das crenças e objetivos de um agente e para estruturar sua tomada de decisão . A linguagem fornece uma estrutura de programação intuitiva baseada no senso comum ou no raciocínio prático .

Idioma SARL

SARL [6] fornece as abstrações fundamentais para codificar sistemas multiagentes. [7] Ele usa uma sintaxe semelhante a um script (inspirada em Scala e Ruby).

package helloworld import io.sarl.core.Initialize agent HelloWorldAgent { on Initialize { println ( "Hello World." ) } } 
 
  
          	
             
        

PADE (Python Agent DEvelopment framework)

PADE [8] é um pacote python para desenvolver agentes inteligentes em linguagem python. Esta estrutura está em conformidade com os padrões FIPA e ACL.

class  AgenteHelloWorld ( Agente ): 
    def  __init__ ( self ,  ajuda ): 
        super ( AgenteHelloWorld ,  self ) . __init__ ( ajuda = ajuda ) 
        display_message ( self . ajuda . localname ,  'Hello World!' )

Middleware

Uma maneira de implementar suporte AOP modular ou extensível é definir APIs AOP padrão para funções de middleware que são implementadas como agentes de software . Por exemplo, um serviço de diretório pode ser implementado como um facilitador de diretório FIPA ou agente de software DF; o gerenciamento do ciclo de vida para iniciar, parar, suspender e retomar os agentes pode ser implementado como um Serviço de Gerenciamento de Agente FIPA ou agente AMS. [9]Um benefício da abordagem AOP é que ela oferece suporte a funções mais dinâmicas entre diferentes usuários e provedores de aplicativos, serviços e redes. Por exemplo, tradicionalmente, redes e serviços eram geralmente gerenciados pela rede e pelo provedor de serviços em nome do cliente e oferecidos como um único serviço de rede virtual, mas os próprios clientes estão se tornando mais capacitados para integrar e gerenciar seus próprios serviços. Isso pode ser obtido por meio de AOP e APIs para agentes de middleware que podem gerenciar a comunicação de forma flexível e dinâmica. [10]

Veja também

  • Agente de software  – Programa de computador agindo para um usuário
  • NetLogo  – linguagem de programação
  • Modelo de ator  - Modelo de computação concorrente
  • GOAL  – linguagem de programação de agentes para programar agentes cognitivos

Referências

  1. ^ Shoham, Y. (1990). Programação Orientada a Agentes (Relatório Técnico STAN-CS-90-1335). Universidade de Stanford: Departamento de Ciência da Computação.
  2. ^ Shoham, Y. (1993). "Programação Orientada a Agentes". Inteligência Artificial . 60 (1): 51–92. CiteSeerX 10.1.1.123.5119 . doi : 10.1016/0004-3702(93)90034-9.  
  3. ^ Bellifeminee, Fábio; Agostino Poggi; Giovanni Rimassa (2001). JADE: um ambiente de desenvolvimento de agente compatível com FIPA2000 . Anais do V Congresso Internacional de Agentes Autônomos. pp. 216–217. doi : 10.1145/375735.376120.
  4. ^ "Rootdev". rootdev.nl . Arquivado do original em 2 de julho de 2011 . Recuperado em 18 de setembro de 2022 .
  5. ^ Anand S. Rao, 1996. AgentSpeak(L): Agentes BDI falam em uma linguagem lógica computável. Proceedings of Seventh European Workshop on Modeling Autonomous Agents in a Multi-Agent World (MAAMAW-96).
  6. ^ Rodriguez, Sebastião; Gaud, Nicolas; Galland, Stéphane (2014). "SARL: Uma Linguagem de Programação Orientada a Agentes de Uso Geral". 2014 IEEE/WIC/ACM Conferências Conjuntas Internacionais sobre Web Intelligence (WI) e Tecnologias de Agentes Inteligentes (IAT) . pp. 103–110. doi : 10.1109/wi-iat.2014.156. ISBN 978-1-4799-4143-8. S2CID  15508257.
  7. ^ site SARL
  8. ^ "Estrutura de desenvolvimento do agente Python — documentação do Pade 1.0" .
  9. ^ Poslad, S (2007). "Especificando protocolos para interação do sistema multiagente". Transações ACM em Sistemas Autônomos e Adaptativos . 2 (4): 15–es. doi : 10.1145/1293731.1293735. S2CID  9477595.
  10. ^ Poslad, S; J. Pitt; A. Mamdani; R. Hadingham; P. Buckle (1999). Middleware orientado a agente para integração de serviços de rede do cliente. In: Agentes de software para sistemas de comunicação do futuro, Hayzelden A, Bigham J Eds . pp. 221–242. doi : 10.1007/978-3-642-58418-3_9.