Introdução de Engenharia de Software de Sistemas Multi-Agentes

Slides:



Advertisements
Apresentações semelhantes
Sistemas Multiagentes
Advertisements

Renata S.S. Guizzardi Inteligência Artificial – 2007/02
INFORMAÇÕES COMPLEMENTARES
A busca das mulheres para alcançar seu espaço dentro das organizações
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Agentes Inteligentes Agentes Inteligentes.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Engenharia de Software
João Carlos Porto Orientadora: Prof.ª Dr.ª Junia Coutinho Anacleto 26/03/2010 Projeto de interceo.
1 Agentes Inteligentes Alex F. V. Machado. 2 Um programa de IA pode ser visto como um Agente Racional Plano da aula O que é um Agente Racional (inteligente)?
Curso de ADMINISTRAÇÃO
INTRODUÇÃO A INFORMÁTICA
Engenharia de Software de Sistemas Multi-Agentes Seminários 2008 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas.
Engenharia de Software de Sistemas Multiagentes Seminários 2007 – 1º Semestre Prof. Carlos Lucena
Metodologias Equipe do Curso de ES para SMA {lucena, furtado, choren,
Engenharia de Software de Sistemas Multi-Agentes Seminários 2007 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas.
Parte III – Engenharia de Software para Autonomic Computing Seminários 2007 – 2º Semestre Maíra Gatti.
Um Modelo de Reputação Baseado em Testemunhos
Sistemas Multi-Agentes
Interação Homem-Máquina
Viviane Torres da Silva
Os Sistemas Multi-agente Viviane Torres da Silva
EXPRESSÕES ARITMÉTICAS
Seminário do grupo de pesquisa em IHC do DIMAp-UFRN
Sistemas Baseados em Conhecimento
Modelos Baseados em Agentes
Metodologias Orientadas a Agentes
Desenvolvimento Orientado a Agentes
1 Simulação baseada em multiagentes – aplicação em educação O processo de simulação significa dirigir o modelo de um sistema com entradas satisfatórias.
Aula 4 Nomes, Vinculações, Tipos e Escopos
O que é 5(S)? ? 5(S) É a prática de hábitos que permitem mudanças nas relações... É a base de qualquer programa de qualidade. 1.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Classes e objetos Modelagem
Introdução a Programação Orientada a Objetos
INF 1771 – Inteligência Artificial
Instituto de Geociências Universidade Federal de Minas Gerais
Agentes inteligentes e sistemas multiagentes
Engenharia de Requisitos
Inteligência Artificial
Técnicas e Projeto de Sistemas
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Cap 2 – Processo de Software
Introdução aos Agentes Autónomos (UD2) Teorias de Agentes e Agentes Deliberativos IST- 2003/2004.
Algoritmos Culturais.
Engenharia de Software de Sistemas Multi-Agentes Seminários 2009 – 1º Semestre Agentes Inteligentes Inovações Tecnológicas.
Engenharia de Software de Sistemas Multi-Agentes Seminários 2008 – 1º Semestre Agentes Inteligentes Inovações Tecnológicas.
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Plataforma Brasil – Submissão de pesquisa
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
EMPREENDEDORES EM AÇÃO PROF. NILSON R. FARIA Colégio Wilson Joffre.
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Metodologias para construção de SMA
Semântica de Linguagens de Programação
3 – Agentes e 4 – Multiagentes
DIEGO RICARDO DE ARAUJO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO INSTITUTO DE CIÊNCIA EXATAS UNIVERSIDADE FEDERAL DE JUIZ DE FORA Seleção de Características.
Universidade Federal de Pernambuco Centro de Informática Aluno: Erica Sousa – Orientador: Paulo Maciel – Modelagem de.
Marcílio C. P. de Souto DIMAp/UFRN
Redes Neuronais/Neurais/ Conexionistas Introdução
FIPA THE FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Olhe fixamente para a Bruxa Nariguda
Atuação do Terceiro Setor: Relações Sustentáveis? Sustentabilidade da Sociedade Civil & Sustentabilidade das Organizações da Sociedade Civil Mário Aquino.
Máquina de Turing Universal
Agenda Agentes que Respondem por Estímulo Agentes Inteligentes.
1 MAC Computação Móvel Agentes de software para Computação Móvel Aluno: Eduardo Leal Guerra
Padrões de Interação com o Usuário
Inteligência Artificial I
CIGRÉ/BRASIL – COMITÊ NACIONAL BRASILEIRO CE-B5 – PROTEÇÃO E AUTOMAÇÃO SEMINÁRIO INTERNO DE 2005.
Organização de Sistemas Multiagentes Prof. Fred Freitas CIn - UFPE.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Transcrição da apresentação:

Introdução de Engenharia de Software de Sistemas Multi-Agentes Seminários 2007 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas

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

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

Introdução e conceitos básicos

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”. © 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 ? © 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 © 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 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

Inteligência Artificial Distribuída 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

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

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

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

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

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

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

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

Agente Reflexivo Simples © 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 © LES/PUC-Rio

Agente baseado em modelo © 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 © LES/PUC-Rio

Agente baseado em objetivos © 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) © LES/PUC-Rio

Agente baseado em utilidade © LES/PUC-Rio

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

Learning Agent © LES/PUC-Rio

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

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

Alguns frameworks de SMAs que aplicam BDI Modelo BDI Alguns frameworks de SMAs que aplicam BDI JADEX JACK SPARK ASF Etc. © 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 © 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 © LES/PUC-Rio

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

O Algoritmo Genético Canônico © LES/PUC-Rio

Aplicação de AG © LES/PUC-Rio

Intelligent Agents are software entities whose intelligence and agency exceed certain threshold © LES/PUC-Rio

Agente vs. Objeto Similaridade Entidades computacionais Encapsulam estado Realizam ações Se comunicam via troca de mensagens © LES/PUC-Rio

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

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

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

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

Exemplos

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

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

Agent Pitfalls

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

Engenharia de Software de Sistemas Multiagentes Introdução

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

ES de Sistemas Multiagentes: Motivação Sistemas Complexos Interação é provavelmente a característica mais importante de sistemas complexos © 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 © 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 Antropomórfica Generalização na forma de comunicação de agente © 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) © 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) © 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? © 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 © 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 ? © 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 © LES/PUC-Rio

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

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

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

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

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

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

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

Fim Seminários 2007 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas