A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Multi-Agentes

Apresentações semelhantes


Apresentação em tema: "Sistemas Multi-Agentes"— Transcrição da apresentação:

1 Sistemas Multi-Agentes
Andrew D. Costa Carlos Lucena

2 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. © LES/PUC-Rio

3 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 © LES/PUC-Rio

4 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. © LES/PUC-Rio

5 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. © LES/PUC-Rio

6 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). © LES/PUC-Rio

7 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) © LES/PUC-Rio

8 Evolução de Paradigmas
Abstrações com bases conceituais determinadas pela arquitetura da máquina Linguagens Assembly Abstração Funcional Programação Estruturada Orientação a Objetos Componentes Design Patterns ... Agentes de Software Tempo Abstrações com bases conceituais determinadas pelo domínio do problema © LES/PUC-Rio

9 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, p. 2. M.N. Huhns & L.M. Stephens. Multiagent systems and societies of agents. In: G. Weiss (ed.) Multiagent systems. Massachussests: MIT Press, 2000, pp © LES/PUC-Rio

10 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. © LES/PUC-Rio

11 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. © LES/PUC-Rio

12 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. © LES/PUC-Rio

13 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 © LES/PUC-Rio

14 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. © LES/PUC-Rio

15 Situações para Aplicar Agentes
50 Facts about Agent-Based Computing (Professor Michael Luck) © LES/PUC-Rio

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 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. © LES/PUC-Rio

25 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) © LES/PUC-Rio

26 Bibliografia Jennings, N. R. An agent-based approach for building complex software systems. Communications of the ACM, Volume 44, Issue 4, April 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, (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 (1998). Agent Link Home Page, © LES/PUC-Rio

27 Perguntas?


Carregar ppt "Sistemas Multi-Agentes"

Apresentações semelhantes


Anúncios Google