Introdução de Engenharia de Software de Sistemas Multi-Agentes - ppt carregar
Introdução de Engenharia de Software de Sistemas Multi-Agentes
PublicouMatheus De Armas Alterado mais de 4 anos atrás
Apresentação em tema: "Introdução de Engenharia de Software de Sistemas Multi-Agentes"— Transcrição da apresentação:
1 Introdução de Engenharia de Software de Sistemas Multi-Agentes
Seminários 2007 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas
2 Objetivos (relembrando…)
Exploração das vantagens que a tecnologia de agentes pode trazer para vários domínios de aplicação, Autonomic Computing Medicina Telecomunicações Simulação (ex: de meio-ambiente, …) Etc. Engenharia de Software para Agentes Inteligentes Condução de experimentos Resultado: Prova de Conceito através de implementação e Monografia (entrega obrigatória) © LES/PUC-Rio
3 Agenda Introdução e conceitos básicos Exemplos Agent Pitfalls
Inteligência Artificial Inteligência Artificial Distribuída Agentes Inteligentes Agentes de Software Exemplos Agent Pitfalls Engenharia de Software de SMA Motivação Desafios © LES/PUC-Rio
4 Introdução e conceitos básicos
Rich & Knight (1994) "IA é a área da Ciência da Computação orientada ao entendimento, construção e validação de sistemas inteligentes, isto é, que exibem, de alguma forma, características associadas ao que chamamos inteligência". © LES/PUC-Rio
Sistemas que pensam como humanos Modelagem Cognitiva Sistemas que agem como humanos Teste de Turing Sistemas que pensam racionalmente Leis do Pensamento => "A lógica pode solucionar qualquer problema solúvel" Sistemas que agem racionalmente Agente Racional Comportamento racional: fazer a coisa certa. Reúne todas as outras ? © LES/PUC-Rio
Início dos anos 70: IA já oferecia técnicas robustas para o desenvolvimento de aplicações práticas envolvendo sistemas inteligentes Prova de Teoremas Sistemas Especialistas Programação em Lógica Redes Semânticas Herança do modelo computacional de von Neumann e das concepções da psicologia Concepção centralizada, sem reusabilidade de seus componentes e a sem abertura Visão de um sistema inteligente composto por apenas um centro de controle, um foco de atenção e uma única base de conhecimento © LES/PUC-Rio
Fim dos anos 70: esta metáfora de comportamento individual é contrabalançada por um lado, trabalhos em redes neurais, que incluem distribuição e paralelismo por outro lado, sistemas simbólicos baseados no chamado modelo de quadro negro, que são caracterizados por um controle distribuído Sistemas Simbólicos O conhecimento é representado por sistemas de símbolos e separado da máquina de inferência Sistemas Sub-simbólicos Representam o conhecimento na própria estrutura, integrado ao mecanismo de raciocínio. © LES/PUC-Rio
Primeiras idéias de distribuição em IA + Maturidade alcançada pelas tecnologias de redes e de sistemas distribuídos IAD: métodos de IA para a solução distribuída de problemas © LES/PUC-Rio
10 Agentes Inteligentes Jennings (1995) "Um agente inteligente é uma entidade de software que executa uma determinada tarefa empregando informação extraída de seu ambiente para agir de forma adequada no sentido de completar sua tarefa de modo bem sucedido. O agente deve ser capaz de adaptar-se dinamicamente às modificações ocorridas no ambiente". © LES/PUC-Rio
11 Definições Agente de software é uma entidade que está situada em um ambiente e capaz de ação autônoma neste ambiente para atingir seus objetivos projetados. Wooldridge & Jennings A entidade Agente é qualquer coisa que possa perceber o ambiente e agir sobre o mesmo. Russell & Norvig © LES/PUC-Rio
12 Características de Agentes
Autonomia Operam sem intervenção humana ou de outros agentes Tem algum tipo de controle sobre suas ações e seu estado interno © LES/PUC-Rio
13 Framework básico para um Agente
function SKELETON-AGENT(percept) returns action static: memory memory	:= UPDATE-MEMORY(memory, percept) action	:= CHOOSE-BEST-ACTION(memory) memory	:= UPDATE-MEMORY(memory, action) return action © LES/PUC-Rio
14 Considerações… Mapeamento simples dos sensores em ações
Tabelas podem ficar muito grandes Todo o trabalho é feito pelo projetista Sem autonomia, todas as ações são pré-determinadas Aprendizado poderia levar muito tempo Alterações no ambiente => agente pode perder-se © LES/PUC-Rio
15 Tipos de Agentes Diferentes formas de fazer o mapeamento
Diferentes níeis de complexidade Agentes reflexivos simples Agentes baseados em modelo Agentes baseados em objetivos Agentes baseados em utilidades Agentes de aprendizagem © LES/PUC-Rio
16 Agente Reflexivo Simples
Ao invés de especificar o mapeamento individual de uma tabela explícita, associações de entrada-saída são registradas Se percepção então ação Ambiente precisa ser totalmente observador Entra em loop facilmente © LES/PUC-Rio
17 Agente Reflexivo Simples
18 Agente baseado em modelo
Mantêm um estado interno que será combinado com as novas percepções. O estado interno reflete o conhecimento do agente sobre ambiente Este conhecimento é chamado modelo Pode conter informação sobre mudanças no ambiente Causado por ações do agente Independente do comportamento do agente © LES/PUC-Rio
19 Agente baseado em modelo
20 Agente baseado em objetivos
O agente procura atingir um estado desejável, o objetivo Pode ser definido pelo usuário, projetista ou ambiente Pode ser gerado pelo próprio agente Resultado de todas as ações possíveis são consideradas em relação ao objetivo what-if scenarios search, reasoning or planning Muito flexível mas não muito eficiente © LES/PUC-Rio
21 Agente baseado em objetivos
22 Agente baseado em utilidade
Uma função de utilidade mapeia estados em um número real Grau de satisfação Permite ações racionais para tarefas mais complexas Resolução de conflitos entre objetivos (tradeoff) © LES/PUC-Rio
24 Learning Agent Elemento de desempenho Elemento de aprendizagem Crítico
Seleciona as ações baseado em percepção, estado interno, conhecimento adquirido Pode ser um dos agentes descritos anteriormente Elemento de aprendizagem Identifica melhorias Crítico Provê feedback sobre desempenho do agente Pode ser externo ao agente, ex., parte do ambiente Gerador de problema Sugere ações Necessário para soluções inovadoras © LES/PUC-Rio
25 Learning Agent © LES/PUC-Rio
26 Presença de atitudes mentais
Modelo BDI Agentes devem representar ou raciocinar sobre outros agentes, humanos ou softwares. Presença de atitudes mentais Beliefs Desires Intentions Crenças (opiniões) dos agentes sobre o mundo Permite a inferência de regras © LES/PUC-Rio
27 Modelo BDI Desires Intentions
Desejos ou objetivos representam o estado de motivação do agente. Situações em que os agentes desejam alcançar ou trazer (futuro estados). Exemplos: Achar o melhor preço, ir para a festa ou tornar-se rico. Intentions Intenção do agente. Aquilo que o agente selecionou para fazer (ações futuras). Exemplo: Planos. © LES/PUC-Rio
28 Alguns frameworks de SMAs que aplicam BDI
Modelo BDI Alguns frameworks de SMAs que aplicam BDI JADEX JACK SPARK ASF Etc. © LES/PUC-Rio
29 Características de Agentes ES
Básicas Autonomia Capacidade de agir sem intervenção externa Reatividade Capacidade de perceber o ambiente e responder às mudanças que ocorrem nele Pró-atividade Atuam não somente em resposta ao ambiente – são orientados a objetivos Interatividade Se comunicam com outros agentes e com o ambiente Adaptação São capazes de modificar, em algum grau, o seu comportamento devido à mudanças do ambiente e de outros agentes © LES/PUC-Rio
30 Características de Agentes ES
Adicionais Aprendizado São capazes de modificar o seu comportamento baseados em sua experiência (não é necessariamente relacionado às mudanças no ambiente) 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
31 Algoritmos Genéticos Uma população de indivíduos evolui ao longo de uma seqüência de gerações buscando atingir um ponto ótimo coletivo, Com base em uma função de adequação, os indivíduos mais qualificados são selecionados para reprodução, Dois operadores de recombinação genética são empregados no processo: cruzamento e mutação. © LES/PUC-Rio
32 O Algoritmo Genético Canônico
33 Aplicação de AG © LES/PUC-Rio
34 Intelligent Agents are software entities whose intelligence and agency exceed certain threshold © LES/PUC-Rio
35 Agente vs. Objeto Similaridade Entidades computacionais
Encapsulam estado Realizam ações Se comunicam via troca de mensagens © LES/PUC-Rio
36 Agente vs. Objeto Diferenças Autonomia Objetos são obedientes
Objetos são passivos Objetos são obedientes Agentes: Go and No Objetos não encapsulam ativação de comportamento Um objeto provê mínimo suporte para estruturas coletivas (ex. hierarquia e relacionamentos) Enquanto agentes dão suporte para estruturas coletivas: organizações © LES/PUC-Rio
37 Sistemas Multi-Agentes
Um agente, em geral, não é encontrado completamente sozinho em uma aplicação, mas formando conjunto com outros agentes. "Sistema Multi-Agente (MAS)" © LES/PUC-Rio
38 Multiagent Systems, a Definition
A multiagent system is one that consists of a number of agents, which interact with one-another In the most general case, agents will be acting on behalf of users with different goals and motivations To successfully interact, they will require the ability to cooperate, coordinate, and negotiate with each other, much as people do © LES/PUC-Rio
39 Auto-organização Um sistema auto-organizável modifica sua estrutura em função de sua experiência e seu relacionamento com o meio-ambiente, A auto organização ocorre em função da dinâmica do sistema, rumo a uma configuração otimizada para o fim proposto. Abrir o slide. Após 5 segundos o instrutor entra em PIP. Ao final do slide abrir para o Instrutor em tela cheia. A dica para mudar de slide é "a seguir então...". © LES/PUC-Rio
41 Internet Agents Web search agents: provide search services to users
Web server agents: reside at a specific Web site to provide agent services Information filtering agents: filter out electronic information according to a user's specified preferences Information retrieval agents: deliver a personalized package of information Notification agents: notify events of interest to a user Service agents: provide specialized services to users Mobile agents: travel from one place to another to execute user-specified tasks © LES/PUC-Rio
42 TAC Classic © LES/PUC-Rio
43 Agente reativos – Inteligência social emergente
Colônia de formigas procurando por comida Cada formiga é um agente Se comunicam através do ambiente Toda vez que elas acham comida liberam um hormônio chamado feromônio no ambiente As outras seguem o feromônio E a sociedade converge para o local da comida URL: © LES/PUC-Rio
44 Agent Pitfalls
45 Pitfalls of Agent Development
MAS is a philosophy … Developing MAS is in essence "software engineering" how to engineer MAS is work in progress … abstractions Pitfall categories: political management conceptual analysis and design micro (agent) level macro (society) level implementation Software Engineering with Agents: Pitfalls and Pratfalls M. Wooldridge, N. Jennings (http://citeseer.ist.psu.edu/ html ) © LES/PUC-Rio
46 Political pitfalls you oversell agents / you get religious about agents agents are not magic! agents may make it easier to solve certain classes of problems…but they do not make the impossible possible for many applications, conventional software paradigms (e.g., OO) are more appropriate given a problem for which an agent and a non-agent approach appear equally good, prefer non-agent solution! believe agents = silver bullet … © LES/PUC-Rio
47 Analysis and design pitfalls
Forget agents are Software Mundane software engineering (requirements analysis, specification, design, verification, testing) is forgotten Frequent (but bad) justification: software engineering for agent systems is non-existent Forget agents are Distributed Distributed systems = one of the most complex classes of computer system to design and implement Problems of distribution do not go away, just because a system is agent-based © LES/PUC-Rio
48 Agent-level pitfalls you want your own architecture
you think your architecture is generic different architectures good for different problems any architecture that is truly generic is by definition not an architecture… use too much AI temptation to focus on the agent-specific aspects of the application result: an agent framework too overburdened with experimental AI techniques to be usable NLP/planning/theorem provers/… the lesson … build agents with a minimum of AI; progressively evolve them into richer systems "agents were made dumber and dumber and dumber, until they made money" (Etzioni) © LES/PUC-Rio
49 Implementation pitfalls
you obsess on implementation infrastructure you think you can start from scratch ignore de facto standards e.g. CORBA HTML KQML FIPA © LES/PUC-Rio
50 Essence of MAS MAS is in essence
a solution strategy a basis for a software architecture for systems with high-priority to (non-functional) requirements such as adaptability reliability scalability … in a distributed world very dynamic world  flexible and adaptive to change NOT FOR FREE ! "owning a hammer does not make one an architect" © LES/PUC-Rio
51 Engenharia de Software de Sistemas Multiagentes
52 Evoluções na Engenharia de Software
A ES é uma disciplina que se preocupa com todos os aspectos do desenvolvimento de software Engenharia de Software OO Linguagens Orientadas a Objetos. Novos métodos para design de sistemas. Software está cada vez mais complexo: os sistemas de software deverão estar Em todo o lugar Sempre conectados (disponíveis) Sempre ativos para executar requisições de usuários © LES/PUC-Rio
53 ES de Sistemas Multiagentes: Motivação
Sistemas Complexos Interação é provavelmente a característica mais importante de sistemas complexos © LES/PUC-Rio
54 Benefícios da abstração de Agentes
Entidade Pró-Ativa Fraco acoplamento Comunicação através de mensagens Flexibilidade de customização individual de agentes protocolos de comunicação algoritmos de aprendizado © LES/PUC-Rio
55 O paradigma de SMAs Oferece: Um modelo de decomposição
Uma abstração para o desenvolvimento de software baseado no domínio do problema Um modelo para desenvolvimento de sistemas como uma composição de unidades organizacionais Um modelo de descentralização para reduzir o acoplamento Modulariza em termos de objetivos Comunicação através de mensagens Antropomórfica Generalização na forma de comunicação de agente © LES/PUC-Rio
56 Uma pergunta… Será que o paradigma e técnicas atuais de ES serão suficientes para atacar o problema da produção eficiente da próxima geração de sistemas de software? "Agents are 99% computer science, and 1% A.I." (Etzioni) © LES/PUC-Rio
57 Agent Design, Society Design
How do we build agents capable of independent, autonomous action, so that they can successfully carry out tasks we delegate to them? How do we build agents that are capable of interacting (cooperating, coordinating, negotiating) with other agents in order to successfully carry out those delegated tasks, especially when the other agents cannot be assumed to share the same interests/goals? The first problem is agent design, the second is society design (micro/macro) © LES/PUC-Rio
58 Multiagent Systems In Multiagent Systems, we address questions such as: How can cooperation emerge in societies of self-interested agents? What kinds of languages can agents use to communicate? How can self-interested agents recognize conflict, and how can they (nevertheless) reach agreement? How can autonomous agents coordinate their activities so as to cooperatively achieve goals? © LES/PUC-Rio
59 Multiagent Systems vs. Social Sciences?
While these questions are all addressed in part by other disciplines (notably economics and social sciences), what makes the multiagent systems field unique is that it emphasizes that the agents in question are computational, information processing entities. Therefore: Algorithm studies, complexity issues, just like traditional CS theory © LES/PUC-Rio
60 MAS: Issues and Challenges
How do we decompose problems into behaviour for individual agents? How do we ensure agents act coherently in making decision or taking action ? do local actions have harmful global effects avoiding unstable system behaviour How to enable agents to communicate and interact ? communication languages and protocols interoperation of heterogeneous agents finding useful existing agents in open environments How does agent decide what to do ? action selection mechanisms How do we build agents ? actions, plans, and knowledge coordination actions How do we compromise different views and conflicting goals of agents trying to coordinate ? How do we engineer multiagent systems ? © LES/PUC-Rio
61 Abstrações da Engenharia de Software
Software lida com entidades "abstratas", que possuem um espelho no mundo real Números, pessoas, documentos, etc Como se deve modelar tais entidades, i.e. quais são as abstrações que devem ser usadas para se desenvolver um software? Dados, funções, objetos, etc As abstrações devem ser independentes de uma tecnologia específica, p. ex. arquiteturas e linguagens de programação © LES/PUC-Rio
62 Evolução dos Paradigmas de ES
Linguagens Assembler Abstração Funcional Programação Estruturada Orientação a Objetos Componentes ... Agentes de Software Abstrações determinadas pela arquitetura da máquina Tempo Abstrações determinadas pelo domínio do problema © LES/PUC-Rio
63 A Abordagem Orientada a Agentes
O desenvolvimento de SMA deve explorar conceitos coerentes com as caracterizações acima Agentes: entidades autônomas, com controle local, situados em um ambiente e interativos Controle local: objetivos, ações e planejamento Ambientes: lugar onde estão os recursos usados pelos agentes Protocolos de interação: regras para a interação entre agentes © LES/PUC-Rio
64 O Estado da Arte Engenharia de software para sistemas multiagentes
Muitas propostas e pouco consenso Desenvolvimento ad-hoc ou desenvolvimento proprietário Falta de avaliação do impacto do uso do paradigma multiagente Experimentação – Estudos de Caso Necessidade de um desenvolvimento de uma ES para o paradigma © LES/PUC-Rio
65 Pesquisa até então... Desenvolvimento de ES para sistemas multiagentes
Linguagens de modelagem Metodologias de desenvolvimento Arquiteturas de desenvolvimento Padrões de projeto Plataformas e Frameworks Métodos formais Melhores práticas Processos de desenvolvimento Necessário amadurecimento... © LES/PUC-Rio
66 Alguns Tópicos de Pesquisa em ES para SMA
Relacionamento entre a abstração de agentes com outras abstrações, p. ex. objetos Linguagens de modelagem para agentes (UML) Metodologias para a análise e o projeto de SMA Experiências de desenvolvimento de aplicações reais Levantamento de um conjunto de "boas práticas" para o desenvolvimento orientado a agentes © LES/PUC-Rio
67 Alguns Tópicos de Pesquisa em ES para SMA
APIs, linguagens de programação ou plataformas padronizadas para agentes Ambientes de desenvolvimento de software e ferramentas CASE para agentes Abordagens de reuso para o desenvolvimento de SMA, incluindo frameworks, padrões, componentes e arquiteturas Integração de software orientado a agentes a processos de negócios já existentes (legados) e as suas implicações © LES/PUC-Rio
68 Pesquisa em andamento no LES
Arquiteturas, frameworks e ferramentas para regular SMA Governança, normas e reputação Dependability em Sistemas Multiagentes Abertos Agentes inteligentes, ontologias, simulação e ambientes para SMA regulados por normas Ubiqüidade e Context-aware Sistemas Multiagentes para Medicina Útero virtual Células-tronco Leski © LES/PUC-Rio