introdução de engenharia de software de sistemas multi-agentes seminários 2007 – 2º semestre...
TRANSCRIPT
Introdução deEngenharia de Software de
Sistemas Multi-Agentes
Seminários 2007 – 2º Semestre
Agentes Inteligentes
Inovações Tecnológicas
2© LES/PUC-Rio
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)
3© LES/PUC-Rio
Agenda
• Introdução e conceitos básicos
– Inteligência Artificial
– Inteligência Artificial Distribuída
– Agentes Inteligentes
– Agentes de Software
• Exemplos
• Agent Pitfalls
• Engenharia de Software de SMA
– Motivação
– Desafios
Introdução e conceitos básicos
5© LES/PUC-Rio
O que é Inteligência Artificial?
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”.
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”.
6© LES/PUC-Rio
O que é Inteligência Artificial?
• 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
• 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
?
7© LES/PUC-Rio
Inteligência Artificial Distribuída
• 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
8© LES/PUC-Rio
Inteligência Artificial Distribuída
• 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
9© 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
Inteligência Artificial Distribuída
10© LES/PUC-Rio
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”.
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”.
Agentes Inteligentes
11© LES/PUC-Rio
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
12© LES/PUC-Rio
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
13© LES/PUC-Rio
Framework básico para um Agente
function SKELETON-AGENT(percept) returns actionstatic: memory
memory := UPDATE-MEMORY(memory, percept)action := CHOOSE-BEST-ACTION(memory)memory := UPDATE-MEMORY(memory, action)
return action
14© LES/PUC-Rio
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
15© LES/PUC-Rio
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
16© LES/PUC-Rio
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
17© LES/PUC-Rio
Agente Reflexivo Simples
18© LES/PUC-Rio
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
19© LES/PUC-Rio
Agente baseado em modelo
20© LES/PUC-Rio
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
21© LES/PUC-Rio
Agente baseado em objetivos
22© LES/PUC-Rio
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)
23© LES/PUC-Rio
Agente baseado em utilidade
24© LES/PUC-Rio
Learning Agent
• Elemento de desempenho– 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
25© LES/PUC-Rio
Learning Agent
26© LES/PUC-Rio
Modelo BDI
• Agentes devem representar ou raciocinar sobre outros agentes, humanos ou softwares.
• Presença de atitudes mentais– Beliefs– Desires– Intentions
• Beliefs– Crenças (opiniões) dos agentes sobre o mundo– Permite a inferência de regras
27© LES/PUC-Rio
Modelo BDI
• Desires– 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.
28© LES/PUC-Rio
Modelo BDI
• Alguns frameworks de SMAs que aplicam BDI– JADEX
– JACK
– SPARK
– ASF
– Etc.
29© LES/PUC-Rio
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
30© LES/PUC-Rio
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
34© LES/PUC-Rio
Intelligent Agents
Agency Agent Interactivity Service Interactivity Application Interactivity Data Interactivity User Representation Asynchrony Agency: Degree of agent behavior in terms of application structure and design
Preference Reasoning Learning Intelligence
Intelligence: Degree of reasoning and learned behavior exhibited by the agent
Threshold of Intelligence Agency
are software entities whose intelligence and agency exceed certain threshold
35© LES/PUC-Rio
Agente vs. Objeto
• Similaridade
– Entidades computacionais
– Encapsulam estado
– Realizam ações
– Se comunicam via troca de mensagens
36© LES/PUC-Rio
Agente vs. Objeto
• Diferenças
– Autonomia
• 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
37© LES/PUC-Rio
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)”
38© LES/PUC-Rio
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
39© LES/PUC-Rio
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.
Exemplos
41© LES/PUC-Rio
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
42© LES/PUC-Rio
TAC Classic
43© LES/PUC-Rio
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: http://website.lineone.net/~john.montgomery/demos/ants.html
Agent Pitfalls
45© LES/PUC-Rio
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/522355.html )
46© LES/PUC-Rio
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 …
47© LES/PUC-Rio
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
48© LES/PUC-Rio
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)
49© LES/PUC-Rio
Implementation pitfalls
• you obsess on implementation infrastructure
• you think you can start from scratch
• ignore de facto standards
– e.g.
• CORBA
• HTML
• KQML
• FIPA
50© LES/PUC-Rio
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”
Engenharia de Software deSistemas Multiagentes
Introdução
52© LES/PUC-Rio
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
53© LES/PUC-Rio
ES de Sistemas Multiagentes:Motivação
• Sistemas Complexos
– Interação é provavelmente a característica mais importante de sistemas complexos
54© LES/PUC-Rio
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
55© LES/PUC-Rio
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
56© LES/PUC-Rio
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)
57© LES/PUC-Rio
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)
58© LES/PUC-Rio
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?
59© LES/PUC-Rio
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
60© LES/PUC-Rio
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 ?
61© LES/PUC-Rio
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
62© LES/PUC-Rio
Evolução dos Paradigmas de ES
Tempo
Abstrações determinadas pela arquitetura da máquina
Abstrações determinadas pelo domínio do problema
• Linguagens Assembler
• Abstração Funcional
• Programação Estruturada
• Orientação a Objetos
• Componentes
• ...
• Agentes de Software
63© LES/PUC-Rio
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
64© LES/PUC-Rio
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
65© LES/PUC-Rio
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...
66© LES/PUC-Rio
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
67© LES/PUC-Rio
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
68© LES/PUC-Rio
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
http://wiki.les.inf.puc-rio.br/index.php/Sistemas_Multiagentes
Fim
Seminários 2007 – 2º Semestre
Agentes Inteligentes
Inovações Tecnológicas