Mestrado
Engenharia da Informação
Metodologias para Modelagem de Sistemas (INF-303)
P.O.A.
Programação Orientada a Agente
Agent Oriented Programming (AOP)
Agenda
• Objetivos
• Introdução
• Contextualização
• P.O.A.
• Armadilhas
• Fatos
• Conclusões
• Referências
Introdução
• Artigo Seminal:
Autores: Jennings, N. R., Bussmann, S. Título: Agent-Based Control Systems.
Publicado: IEEE Control Systems Magazine (2003).
• Principais Trabalhos:
Autores: Jennings, N.; Wooldridge, M.; Shoham, Y.; Odell, J.
Publicações: IEEE Control Systems Magazine; Journal of Artificial Intelligence; MIT Press; Internacional Conference on Software
Engineering (ISCE); Association for the Advancement of Artificial Intelligence (AAAI).
Introdução
- Objetivos
• Introduzir conceitos básicos de:
IA (Inteligência Artificial);
IAD (Inteligência Artificial Distribuída); SMA (Sistema Multi Agentes).
• POA (Programação Orientada a Agentes).
• Citar “armadilhas” da POA.
Introdução
- Justificativa
“...O sucesso da Internet mudou a maneira como pensamos sobre
computação. Já não é apenas sobre a computação de cálculo numérico ou processamento de informações, agora é sobre a interação e coordenação entre entidades distintas.
Sistemas de agentes nos fornecem os meios para projetar e implementar computação interativa, quer entre máquinas, pessoas, ou ambos...”
Professor Michael Luck Coordenador da Escola de Eletrônica
e Ciência da Computação Universidade de Southampton
Introdução
- Justificativa
• Nova forma de se pensar para construção de soluções.
• Maior robustez ao sistema (tolerância a falhas e casos de processamento mais rápido).
• Utiliza padronização possibilitando interoperabilidade e divisão de trabalho.
• Com uso de técnicas de cognição permite maior amplitude na solução de problemas.
• Uso de agentes inteligentes é do escopo da ES (Engenharia de
Contextualização
• IA (Inteligência Artificial)
Antes: construir inteligência semelhante a do ser humano. Algumas frustrações :
ᵡ Vaca da leite (datamine);
ᵡ “A vodca é boa mas a carne é podre” (tradutor); ᵡ XOR (rede neural);
ᵡ Explosão combinatória.
Após: auxiliar as atividades intelectuais humanas.
Fim dos anos 70 se torna necessário resolver problemas distribuídos de uma forma mais social.
Contextualização
• IAD (Inteligência Artificial Distribuída)
Início da década de 80.
IA + SD (Sistemas Distribuídos).
Baseado no comportamento social.
Contextualização
• SMA (Sistema Multi Agentes)
Composto por agentes.
Colaboração, competição, coligações, hierarquização, etc.
para realizar metas.
Organização social.
P.O.A.
• POA (Programação Orientada a Agente)
Paradigma abrange as fases de
A
nálise,
P
rojeto e
I
mplementação (R
API
TO).
Pode utilizar demais paradigmas para a implementação de
sua arquitetura (SMA).
P.O.A.
• Diferenças entre POA e POO
Orientação a Objetos Orientação a Agentes
Unidade Básica (UB)
Objeto (Estático) Agente (Dinâmico)
Fatores que Definem o Estado da UB
Sem restrições
Invocado por mensagens externas
Crenças, compromissos, escolhas, etc. Invocado por mensagens internas (regras
objetivos)
Processos da Computação
Transmissão de mensagens e repostas de métodos
Transmissão de mensagens e repostas de métodos
Tipos de Mensagens
Sem restrições Informação, requisição, oferta, promessa, rejeição, etc.
Restrições dos Métodos
Nenhum Honestidade, consistência, reputação, permissão, hierarquia, “vontade”, disponibilidade, confiança e outras
P.O.A.
• Semelhanças entre POA e POO
Usam abordagem modular programação.
Têm seus parâmetros próprios internos.
Interagem com outros elementos.
Fazem uso de encapsulamento e ocultação de informação.
Não sabem tudo sobre os seus sistemas.
P.O.A.
• Agente
Entidade simples, autônoma, imprevisível, flexível e
dinâmica.
Interage com o ambiente e/ou demais agentes.
Executa ações por:
Reação a estímulos (agentes reativos);
Pro atividade (agentes cognitivos. Conceito de modularidade da mente - Chomsky).
P.O.A.
• Agente
Possui regras que definem:
Comportamentos (if-else até ações mais complexas);
Objetivos (um objetivo pode possuir sub-objetivos que podem ser compostos por outros);
Comunicação (protocolos – pedido de valores de atributos até linguagem natural – Padrão FIPA, reconhecido pelo IEEE).
Definido por uma arquitetura (mais difundida é a BDI –
P.O.A.
• Paralelos com a ES atual
Deficiência para representar agentes pela UML (Unified
Modeling Language):
Ferramenta agentToll cria uma séria de diagramas (sequência de mensagens, estados, classe, etc. e anexa ao projeto);
Usualmente representado por diagramas com blocos que representam módulos e setas representando fluxos, próximo ao DFD (Diagrama de Fluxo de Dados).
Padrão de Projeto: Observer, o agente seria um listener.
P.O.A.
• Frameworks:
SWARM, FIPA-OS, Jason, JADE, Jadex, JACK, JAM,
JAS, Starlogo, APRIL, Comtec Agent Plataform, etc.
• Metodologia:
MaSE.
Armadilhas
• Tecnologia Recente.
• Achar que agentes são solução para todos os problemas. • Não entender para que servem.
• Querer construir soluções genéricas para problemas específicos. • Esquecer que está desenvolvendo software.
Armadilhas
• Não explorar concorrência.
• Decidir criar sua própria arquitetura de agente. • Pensar que a sua arquitetura é genérica.
• Utilizar muita ou não utilizar IA.
• Desenvolvedores, de forma recorrente, tendem a cair nas mesmas armadilhas citadas anteriormente.
Fatos
• Crescimento na utilização de dispositivos móveis.
• Ajudando os astrônomos detectar acontecimentos, como explosões de super-novas.
• Existem mais de 100 produtos registrados no AgentLink. (Transporte, telecomunicações, serviços de saúde, seguradoras, logística e mercado de ações são principais domínios).
• Utilização para o entretenimento (jogos eletrônicos e filmes – Senhor dos Anéis) e área educacional (Utilizado para o Ensina A Distância – EAD).
• Grande número de documentos e eventos. Possível encontrar estudos de casos, relatórios técnicos, listas de eventos, listas de
Fatos
• Em 1999, um SMA conduziu uma nave da NASA por dois dias distante 96.500.000 km da Terra.
Fatos
• Hoje as receitas do desenvolvimento visando POA superam os custos.
• Muitas organizações já utilizam tal tecnologia (eBay, NASA, IBM, Pentágono, Accenture, AIR Liquide, Volvo, Rolls Royce, DaimlerChrysler, AT&T, Whitestein Technologies, etc.).
• Web Semântica - os dados podem ser definidos e ligados de tal forma a viabilizar o processamento automático de dados e a integração de agentes inteligentes.
Conclusões
• Não é somente utilizada em robôs.
• Soluções que utilizam agentes começam a fazer parte não só do cenário acadêmico mas também ganham interesse das indústrias e do governo.
• POA oferece modelos fortes para representar sistemas abertos, complexos e dinâmicos do mundo real (economias, sociedades, ambientes biológicos, etc.).
• Gera aplicações que diminuem o custo de processos por substituir, auxiliar e/ou otimizar atividades humanas (tomada de decisões,
Referências
• Mathias, I. M.; Pozo A. T. R. Desenvolvimento de um Sistema de Matrícula Inteligente Baseado em Programação Orientada a Agentes. UEPG, 2003.
• Tveit A. A survey of Agent-Oriented Software Engineering. Norwegian University of Science and Technology, 2001.
• Arasu, G. T.; Palanisamy, V. Analysis of Multi-Agent System for Setting Up the Platform for Processing EEG / ECG / EMG Waveforms Using Agent Oriented Programming Approach with JADE. Jayam College of Engineering & Technology, 2009
• Shoham, Y.;Agent Oriented Programming. Stanford University, 1993.
• Jennings N. R.; Wooldridge, M. Agent-Oriented Software Engineering. University of London, 2000.
• Shoham, Y. An Overview of Agent-Oriented Programming. Stanford University. • Wooldridge, M. Agent-based software engineering. IEE Proc. Software
Referências
• Fídeíro, J.; Maíbaum, T. Describing, Structuring and Implementing Objects, 1991.
• Wooldridge, M.; Jennings, N. R. Pitfalls of Agent-Oriented Development 1998 . • Odell J., Objects and Agents Compared. Journal of Object Technology (41-53),
2002.
• Lind, J. Issues in Agent-Oriented Software Engineering , German Research Center for AI (DFKI) .
• Shoham Y.; Brown, K. L. MULTIAGENT SYSTEMS Algorithmic, Game-Theoretic, and Logical Foundations.
• Xavier, M. P. Implementação de Padrões de Projeto Orientados a Agentes Utilizando a Plataforma JADE. Universidade Federal de Pernambuco, 2005.
• Odell, J. Objects and Agents: How do they differ?, 1999.
• Novák, P.; Jamroga, W. Code Patterns for Agent-Oriented Programming. Clausthal University of Technology, 2009.
Referências
• Amandi, A.; Price, A. Object-Oriented Agent Programming through the Brainstorm System. Universidade Federal do Rio Grande do Sul, 2007.
• Park, A. H.; Park S. H.;Youn H. Y. A Flexible and Scalable Agent Platform for Multi-Agent Systems. World Academy of Science, Engineering and Technology , 2007.
• AgentLink. 50 facts about Agent-Based Computing, 2008
• Jennings, N. R.; Bussmann, S. Agent-based control systems. IEEE Control Systems Magazine, 2003.