Sistemas Multi-Agentes Andrew D. Costa andrew@les.inf.puc-rio.br Carlos Lucena...

Post on 17-Apr-2015

108 views 0 download

Transcript of Sistemas Multi-Agentes Andrew D. Costa andrew@les.inf.puc-rio.br Carlos Lucena...

Sistemas Multi-Agentes

Andrew D. Costa

andrew@les.inf.puc-rio.br

Carlos Lucena

lucena@inf.puc-rio.br

2 © LES/PUC-Rio

Paradigmas de Engenharia de Software

• Um software possui um conjunto de partes, ou componentes, que executam e geram interações.

• Um paradigma deve oferecer modelos e técnicas que facilitam o tratamento da complexidade.

• São exemplos de paradigmas contemporâneos: Orientação a Objetos, Orientação a Aspectos, Orientação a Componentes, etc.

3 © LES/PUC-Rio

Complexidade

• Um sistema de software complexo é composto de subsistemas inter-relacionados.

• Interação é a característica mais importante em sistemas complexos.

• Complexidade em sistemas de software é normalmente estrutural: a adição de novos componentes vai gradualmente degradando a estrutura do sistema 1

1. R.D. Banker, S. Datar & D. Zweig. Software Complexity and Maintainability. Proceedings of the Tenth International Conference on Information Systems, 1989, pp. 247-255.

4 © LES/PUC-Rio

Complexidade

• Os sistemas desenvolvidos atualmente tendem a ser

– abertos

– distribuídos e

– compostos por diversos componentes que interagem uns com os outros e que sofrem alterações dinamicamente com a entrada de novos componentes e a saída de componentes já existentes

• Esses componentes podem possuir objetivos diferentes e, portanto conflitantes.

• Esses fatos aumentam ainda mais a complexidade dos sistemas atuais.

5 © LES/PUC-Rio

Complexidade

• Algumas das técnicas utilizadas para tratar a complexidade de sistemas distribuídos são:

– Decomposição

– Abstração

– Organização

• Decomposição: Sistemas complexos devem ser compostos por um conjunto de sub-sistemas organizados de forma hierárquica. Os subsistemas devem trabalhar em conjunto para atingir os objetivos do sistema.

• Abstração: Definição de modelos simplificados do sistema que enfatize alguns detalhes e propriedades, limitando a área de interesse (escopo) do desenvolvedor em um determinado momento.

6 © LES/PUC-Rio

Complexidade

• Organização: Sistemas complexos exigem relações organizacionais.

• As organizações permitem agrupar componentes de acordo com algum critério (i.e. família de problemas a serem resolvidos) e tratá-los como se fossem uma única entidade,

• Permite estabelecer relações de alto nível entre essas entidades (i.e. relações entre os problemas a serem resolvidos).

7 © LES/PUC-Rio

Tendências

• O conceito de “programa” tem dado lugar ao conceito de “organizações” e, com isso, a conceitos derivados como “colaboração” e “bases de conhecimento”.

• Além disso, as características dos sistemas devem levar em consideração as necessidades dos tempos atuais:

– Sistemas distribuídos

– Arquitetura aberta

– Sistemas extensíveis

– Crescimento da Internet

– Utilização de ontologias (Web Semântica)

8 © LES/PUC-Rio

Evolução de Paradigmas

Tempo

• Linguagens Assembly

• Abstração Funcional

• Programação Estruturada

• Orientação a Objetos

• Componentes

• Design Patterns

• ...

• Agentes de Software

Abstrações com bases conceituais determinadas pela arquitetura da máquina

Abstrações com bases conceituais determinadas pelo domínio do problema

9 © LES/PUC-Rio

Agentes de Software

• Um agente de software é uma entidade que faz parte de um sistema (sociedade de agentes) e que pode perceber aspectos limitados de seu ambiente de execução 1.

• Agente é um elemento cuja execução e interação (com outros agentes e com o ambiente) levam ao alcance dos objetivos do sistema 2 .

• Agente é uma unidade de software autônoma situada em um ambiente e capaz de executar ações para atingir seus objetivos.

1. G.F. Luger & W.A. Stubblefield. Artificial intelligence: structures and strategies for complex problem solving. 3.ed. Massachusetts: Addison-Wesley Longman, 1998. 824p.

2. M.N. Huhns & L.M. Stephens. Multiagent systems and societies of agents. In: G. Weiss (ed.) Multiagent systems. Massachussests: MIT Press, 2000, pp. 79-120.

10 © LES/PUC-Rio

Características de Agentes

• Os agentes são considerados entidades solucionadoras de problemas e devem ser:

• Autônomo: Agentes devem agir sem a necessidade de intervenção humana direta e devem ter controle sobre suas ações e seus estados internos.

• Reativo: Agentes devem perceber o ambiente onde estão situados e responder a mudanças ocorridas neste ambiente.

• Pró-ativo: Agentes devem possuir um comportamento oportunista, orientado a objetivos, executando suas ações sempre que oportuno.

11 © LES/PUC-Rio

Características de Agentes

• Social: Agentes devem interagir com outros agentes, quando apropriado, com o intuito de atingir seus objetivos ou de ajudar outros agentes.

• Intencional: Agentes devem ter a intenção de realizar uma tarefa. Para agentes agirem de forma intencional, eles devem possuir crenças (conhecimento sobre o ambiente) e objetivos a serem atingidos.

• Essas características são apropriadas para que as técnicas que tratam complexidade, citadas anteriormente (decomposição, abstração e organização), sejam utilizadas.

12 © LES/PUC-Rio

Agentes de Software

• Agentes autônomos podem ser considerados componentes de software que possuem as características apresentadas.

• Agentes podem ser utilizados como uma técnica de decomposição e modularização, com controle descentralizado, além de representarem abstrações para problemas existentes.

• Reatividade e próatividade tratam aspectos dinâmicos e imprevisíveis de um sistema complexo e aberto.

• Por fim, habilidades sociais estão fortemente relacionadas com questões organizacionais, já que é através delas que será possível tratar as dependências e interações entre os componentes (organizações) de um sistema complexo.

13 © LES/PUC-Rio

Características Adicionais

• Adaptação

– São capazes de modificar, em algum grau, o seu comportamento devido à mudanças do ambiente e de outros agentes (autonomic computing: self*)

• Aprendizado

– São capazes de modificar o seu comportamento baseados em sua experiência

• Racionalidade

– São capazes de selecionar suas ações baseados em seus objetivos

• Mobilidade

– São capazes de se mover de um ambiente para outro

14 © LES/PUC-Rio

Sistemas Multi-Agentes

• Um agente em geral não é encontrado completamente sozinho em uma aplicação, mas formando em conjunto com outros agentes: Sistemas Multi-Agentes (SMA).

• O paradigma de Engenharia de Software para SMA oferece:

– uma abstração para o desenvolvimento de software baseada no domínio do problema;

– um método de decomposição;

– um modo apropriado para a modelagem de sistemas como um conjunto de organizações que se relacionam;

– uma descentralização que reduz a quantidade de interação entre unidades.

15 © LES/PUC-Rio

Situações para Aplicar Agentes

• 50 Facts about Agent-Based Computing (Professor Michael Luck)

16 © LES/PUC-Rio

17 © LES/PUC-Rio

18 © LES/PUC-Rio

19 © LES/PUC-Rio

20 © LES/PUC-Rio

21 © LES/PUC-Rio

22 © LES/PUC-Rio

23 © LES/PUC-Rio

24 © LES/PUC-Rio

Estado da Arte

• Engenharia de SMA em exploração.

• Principais estudos em nível de experimentação, através de estudos de caso.

• Desenvolvimento de uma ES para o paradigma: análise de requisitos, linguagem de modelagem, processo, arquitetura de desenvolvimento, ferramentas, etc.

25 © LES/PUC-Rio

Exemplos de Aplicações de SMA

• Mercado Financeiro

• Reputação (Comércio Eletrônico)

• Autonomic Computing (self*)

• Linha de Produto de Software

• Competições do AAMAS (ART-Testbed, TACs, etc)

26 © LES/PUC-Rio

Bibliografia

• Jennings, N. R. An agent-based approach for building complex software systems. Communications of the ACM, Volume 44, Issue 4, April 2001. Pages: 34-41

• Jennings, N. R; Wooldridge, M. Agent-Oriented Software Engineering. In: Proceedings 12th Int. Conf. on Industrial and Engineering Applications of AI, Cairo, Egypt, 4-10. (Invited paper) (1999)

• Jennings, N., R.; Wooldridge, M. Applications of Intelligent Agents. Agent Technology: Foundations, Applications, and Markets. Jennings, N.R. and Wooldridge, M.J (Eds.), Springer, pp. 3-28 (1998).

• Agent Link Home Page, www.agentlink.org.

Perguntas?