Sistemas Multi-Agente: estudos avançados Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/sma Introdução Objetivos da disciplina para alunos novos: – Apresentar as propriedades e características dos agentes de software e dos sistemas multi-agente – Apresentar as técnicas de desenvolvimento destes sistemas Objetivos da disciplina para alunos antigos: – Dirigir o estudo de temas recentemente publicados na área de sistemas multi-agente Atendimento: – Terças: 16:00 as 18:00 (marcar antes) Andamento do curso Curso está dividido em duas fases: – Fase 1: Aprendizado dos temas – Fase 2: Apresentação de trabalho Alunos antigos: – Leitura e apresentação oral de artigos – Apresentação do trabalho final • Proposta do tema • Andamento do trabalho • Apresentação final Alunos novos: – Estudo dos temas apresentados em sala – Apresentação do trabalho final • Proposta do tema • Andamento do trabalho • Apresentação final Andamento do curso Agosto F A S E 1 18 20 25 27 Apresentação do curso e Framework, modelagem Metodologias, Plataformas e linguagens Apresentação alunos antigos Apresentação alunos antigos 1 3 8 10 15 17 22 24 29 Apresentação alunos antigos Apresentação alunos antigos Normas, sistemas de governança e reputação Raciocínio Apresentação alunos antigos Não tem aula Apresentação alunos antigos Apresentação alunos antigos Planejamento e aprendizagem Setembro Andamento do curso Outubro 1 F A S E 2 1 6 8 13 15 20 22 27 29 Self-* e argumentação Não tem aula Proposta de Trabalho - Alunos Antigos Proposta de Trabalho - Alunos Antigos Feriado Proposta de Trabalho - Alunos Novos Proposta de Trabalho - Alunos Novos Andamento do Trabalho - Alunos antigos Andamento do Trabalho - Alunos antigos 3 5 10 12 17 19 24 26 Andamento do Trabalho - Alunos antigos Andamento do Trabalho - Alunos antigos Andamento do Trabalho - Alunos novos Andamento do Trabalho - Alunos novos Andamento do Trabalho - Alunos novos Andamento do Trabalho - Alunos novos Apresentação Final - Alunos antigos Apresentação Final - Alunos antigos Novembro Andamento do curso Dezembro 2 1 Apresentação Final - Alunos novos 3 Apresentação Final - Alunos novos Alunos antigos: – Leitura e apresentação de no mínimo dois artigos em cada apresentação Avaliação Trabalho: Alunos novos: – Trabalho em dupla ou individual Alunos antigos: – Trabalho individual Alunos antigos: – (Apresentação 1 + Apresentação 2 + Apresentação Final do Trabalho)/3 Alunos novos: – (Proposta + Andamento + Apresentação Final do Trabalho)/3 Disciplina Conteúdo: – Modelagem de SMA • Modelagem e validação de normas – Evolução das plataformas e frameworks de implementação – Normas, sistemas normativos e de reputação – Raciocínio em agente e a influência nos SMA – Planejamento de um agente e em SMA – Aprendizagem de um agente e do SMA – Adaptação de um agente e do SMA – Self-* em agentes e SMA Bibliografia – Wooldridge, M. Introduction to Multi-agent Systems. John Wiley and Sons, 2002 – Jennings, Nick; Wooldridge, Michael J. Agent technology: foundations, applications, and markets. Berlin: Springer, 1998 – Henderson-Sellers, Brian; Giorgini, Paolo. Agent-oriented methodologies. Hershey, PA: Idea Group Pub., 2005 – Weiss, Gerhard. Multiagent systems: a modern approach to distributed artificial intelligence. Cambridge, Mass.: MIT Press, 1999 – Ferver, Jacques. Multi-agent systems: An introduction to distributed – Artificial intelligence. Addison-Wesley, 1999Bordini, Rafael; Dastani, Mehdi; Dix, Juergen; Seghrouchni, Amal, A. Multi-Agent Programming: Languages, Platforms and Applications. Springer, 2005 – Dignum, V. Handbook of Research on Multi-Agent Systems: Semantics and Dynamics of Organizational Models. IGI-Global, 2009. – Bordini, R.; Hubner, J.; Wooldridge, M. Programming Multi-agent Systems in AgentSpeak using Jason”, Wiley Series in Agent Technology, 2007. – Bellifemine, F. Developing Multi-agent Systems with JADE, Wiley Series in Agent Technology, 2007. Agentes de Software Motivação: Sistemas Complexos I/II Executam para alcançar nossos objetivos Interagem com outros sistemas Necessitam cooperar / competir com outros sistemas para alcançar os objetivos Necessitam executar de maneira independente Se adaptam a mudanças no ambiente São distribuídos e heterogêneos Quando utilizar agentes de software? Quando a tarefa é grande e complexa Quando é necessário que as decisões sejam feitas com rapidez Quando envolvem riscos as pessoas Quando é muito caro ou difícil manter um grupo de pessoas controlando um software (ou um robô) Definição: Agentes Dicionário: (dictionary.com) – Uma pessoa ou coisa que atua ou que tem o poder de atuar – Aquele que atua em benefício de outro “Um agente é um sistema informático situado em um ambiente que é capaz de realizar ações de forma autônoma / independente para conseguir seus objetivos.” [Wooldridhe, 1997] Não existe uma definição que seja precisa e utilizada por todos os pesquisadores Algumas características É capaz de atuar em um ambiente Tem uma visão parcial do ambiente É capaz de perceber as mudanças do ambiente Pode se adaptar a mudanças do ambiente Pode se comunicar através de troca de mensagem com outros agentes Atua sem a necessidade de mandar atuar Está orientada por um conjunto de objetivos Pode aprender e raciocinar Aplicações com agentes I/V Controle de tráfico aéreo: ¿Como funciona? – Sistema chamado OASIS e implementado no aeroporto de Sydney – Os agentes representam tanto o avião como os distintos sistemas de controle de tráfico – Quando um avião entra no espaço aéreo de Sydney, o sistema associa um agente com a informação do avião (tamanho do avião, quantidade de combustível, …) e os objetivos do avião (aterrissar em uma determinada pista a uma determinada hora) – Os agentes controladores de tráfico controlam os agentes que representam os aviões ¿Por que agentes? – A metáfora do agente provê uma maneira útil e natural para modelar os componentes autônomos do mundo real. Aplicações com agentes II/V Aplicações de medicina: ¿Por que agentes? – Distribuição: Conhecimento para solucionar um problema está distribuído em diferentes lugares – Interação / Coordenação: A solução de um problema depende da coordenação das tarefas que serão realizadas por diversos indivíduos com diversas habilidades e competências – Complexidade: Problema usualmente decomposto em subproblemas – Pro-actividade: Os agentes realizam tarefas que são de benefício para o usuário sem que este seja solicitado – Autonomia: Cada agente toma suas próprias decisões baseando-se no seu estado interno e na informação que recebe do usuário e de outros agentes Aplicações com agentes III/V Aplicações em medicina: – Gestão de transplantes de órgãos – Busca informação médica na Web: MARVIN • http://www.hon.ch/Project/Marvin_project.html – Monitoramento e diagnóstico de pacientes cardíacos: Guardian • http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=00653225 – Formação de médicos: Amplia • http://www.inf.ufrgs.br/~dflores/AMPLIA/ – Atendimento as pessoas de terceira idade: TeleCARE • http://www.uninova.pt/~telecare/telecare2004/TELECARE2004_C amarinha-Matos_Afsarmanesh.pdf Aplicações com agentes IV/V Aplicações de recuperação da informação: ¿Como funciona? – Sistema chamado Letizia e desenvolvido pelo MIT • http://web.media.mit.edu/~lieber/Lieberary/Letizia/LetiziaIntro.html – O agente observa o comportamento do usuário (páginas web que acessa) e tenta inferir seus gostos automaticamente – Agente de informação: Tem acesso a diversas fontes de informação e são capazes de analisar e manipular a informação obtida ¿Por que agentes? – Necessidade de automação na busca por informação qualificada – É capaz de armazenar, aprender e manejar as preferências e gostos de usuários – É capaz de se comunicar com os provedores de informação – Necessidade de adaptar-se a mudanças no seu ambiente Outras aplicações V/V Comercio eletrônico – Agentes podem planear, negociar, argumentar,… Gestão de processos (workflow) Jogos e Robótica Controle de satélites – NASA está tentando fazer com que os satélites sejam más autônomos, aumentando a capacidade de tomar decisões Evolución de los paradigmas de la Ingeniería del Software Linguagem Assembly Abstrações determinadas pela arquitetura da máquina Abstração Funcional Programação Estruturada Orientação a Objetos Tempo Orientação a Componentes ... Agentes de Software Abstrações determinadas pelo dominio dp problema Propriedade dos Agentes Interatividade (Habilidade Social) A vida real é um ambiente multi-agente, i.e, com vários agentes executando de um vez Muitas vezes os objetivos só podem ser cumpridos quando ocorre cooperação entre os agentes Os agentes são capazes de interagir com outras entidades do sistema Diferentemente dos objetos, os agentes não interagem chamando método de outros agentes. Os agentes enviam mensagens a outros agentes Os agentes decidem a quem irão responder – Um agente pode decidir não responder a uma mensagem de outro agente, os objetos no podem Reatividade (Adaptabilidade) Ambiente fixo x ambiente variável Em vida real: as cosas mudam, a informação está incompleta, o ambiente é variável – A maioria dos ambientes são dinâmicos É difícil criar programas para domínios dinâmicos – Possibilidade de falha Um agente reativo mantém uma interação contínua com o ambiente, e responde as mudanças que ocorrem nele (se adapta). Proatividade (Orientação a objetivos) Reagir a um ambiente é fácil – estímulo regra de resposta Mas queremos que os agentes façam coisas para nós E que tenham um comportamento orientado a objetivos e não a tarefas Um agente proativo – – – – é capaz de executar para cumprir seus objetivos, não faz falta que o mande fazer algo, não está guiado somente pelos eventos del entorno, tem iniciativa e reconhece oportunidades. Automía Um agente autônomo: – trabalha sem a intervenção direta do usuário (não é necessário mandar para o agente execute) – é capaz de selecionar o objetivo que irá intentar cumprir (pode ser capaz de criar novos objetivos) – tem (certo) controle sobre seu estado e seu comportamento • Só o agente é capaz de modificar seu estado • O agente decide o que irá fazer Reatividade x Proatividade Reatividade: queremos que nosso agente seja reativo, que responde as mudanças do ambiente a tempo e de maneira apropriada Proatividade: queremos que nosso agente trabalhe de acordo com seus objetivos Estas duas propriedades podem conviver Criar um agente onde estas duas propriedades estejam balanceadas é um problema de pesquisa Agente reativo Agente mixto Agente proativo Interatividade x Autonomia Interatividade: agente interage com outros agentes para alcançar seus objetivos Autonomia: agente é capaz de fazer todas suas tarefas sem depender de ninguém - + Interação Autonomia + - Outras Propiedades Mobilidade: Mover de um computador a outro em una rede preservando seu estado Racionalidade: os agentes irão atuar para cumprir seus objetivos y no irão atuar de maneira a prevenir que os objetivos se cumpram Um agente pode decidir: – que objetivo tentar atingir ou qual evento reagir – como atuar para conseguir um objetivo – suspender ou abandonar uma objetivo para dedicar-se a outro Aprendizagem: o agente melhora seu rendimento com o passar do tempo … Agentes x Objetos Entidade (Agente ou Objeto) Toda entidade tem: – Estado + comportamento – Reação com outras entidades Estado: armazena informações Comportamento: conjunto de tarefas que a entidade pode executar Relacionamento: define como as entidades estão relacionadas, conectadas Objeto Estado: atributos – Armazena informação sobre o objeto e sobre outras entidades do sistema (podem armazenar oitros objetos) Comportamento: métodos – São tarefas que podem ser executadas – As operações podem modificar o estado do objeto Comunicação entre Objetos Envio de mensagem >> Chamada de método Resposta >> Execução do método e envio da resposta Sempre que um objeto envia uma mensagem a outro objeto este responde Objeto (tradicional) Tem controle do seu estado (encapsulamento) Pode modificar seu estado mas não pode adicionar novos tipos de informação Não tem controle de seu comportamento Não pode modificar seu comportamento Os objetos são entidades passivas – Só executam quando outras entidades pedem Agente Estado: crenças, objetivos, planos e ações Crenças: conhecimento sobre si mismo, sobre o ambiente e sobre outras entidades – Tudo que o agente sabe, suas memórias y sus percepciones Objetivos: estados futuros donde él quiere llegar o deseo que él desea satisfacer Agente Ações: execução dos agentes – Ex.: modificar seu estado, enviar e receber mensagens Planos: composto por um conjunto de ações – Descrevem a ordem de execução das ações – Possibilitam que o agente alcance seus objetivos ou que satisfaça seus objetivos – Estão relacionados com os objetivos Agente Comportamento: – Execução dos planos e, conseqüentemente, das ações – Os planos são executados de acordo com os objetivos – Objetivos com maior prioridade são selecionados primeiro A definição do comportamento do agente é parte de seu estado “mental”. Comunicação entre Agentes Envio de mensagem >> Envio de una carta (pedido, informação,…) Resposta >> Envio de outra mensagem Utilizam uma linguagem de comunicação Agentes podem não responder quando recebem uma mensagem de alguém Agente Tem controle de seu estado Pode modificar seu estado e pode adicionar novas informações – Crenças e objetivos Tem controle de seu comportamento Pode modificar seu comportamento (podem criar novos planos e aprender novas ações) – Aprendizagem Os agentes são entidades ativas – Executam sem que alguém peça Objeto Estado: Pode modificar mas não pode adicionar novas Informações Comportamento Não tem controle de seu comportamento Necessita estímulos externos para executar Responde todas mensagem que recebe Comportamento predeterminado Agente Estado mental: Guarda informações sobre seu comportamento Pode modificar e adicionar informação Comportamento: Tem controle de seu comportamento Não necessita estímulos para executar Pode não responder uma mensagem Pode modificar seu comportamento Agentes e Objetos Agentes são autônomos: Ex: Agentes decidem quando executar uma ação requerida por outro agente Agentes são inteligentes: Agentes podem modificar seu comportamento (reatividade, proatividade, habilidade social, aprendizagem…) Agentes são entidades ativas: Uma sistema muli-agentes é tipicamente composto por várias threads, onde cada agente tem uma ou mais threads de execução que executam sem intervenção do usuário Os Sistemas Multi-agente Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/sma Sistemas multi-agentes Os agentes não atuam sozinhos em um sistema mas sim com outros agentes Solução para os problemas utilizando a estratégia divide e conquita Divisão de responsabilidades Distribuição de conhecimento Heterogenidade: cada um é especialista em um serviço Concurrência e Distribução – Flexibilidade, escalabilidade, tolêrancia a falhas, gestão de recursos Definição: Sistemas Muli-agentes Um sistema multi-agente consiste de vários agentes que interagem entre si. Os agentes podem colaborar, cooperar, negociar ou competir para cumprir objetivos similares ou diferentes Os agentes não são as únicas entidades de um sistema multiagentes – Ambiente, organizações, papéis e objetos Ambiente Agente Sensores entrada Ações saída Ambiente Ambiente Acessível vs. Inacessível – Acessível: agente pode obter informação sobre o estado do ambiente de maneira completa e atualizada Determinista vs. Não determinista – Determinista: não existe dúvida sobre o estado do ambiente depós da execução de uma ação Estático vs. Dinâmico – Estático: não muda a não ser quando uma ação é executada por um agente Episódico vs. Não episódico – Episódico: as ações executadas por um agente em um episódio não estão relacionados com as ações executadas pelo agente em outro episódio. Discreto vs. Contínuo – Discreto: número de ações e percepções é fixo e finito Organização Definição: Organização Uma organização é uma agregação de relações entre componentes o indivíduos – Papéis desempenhados por agentes em uma organização – Relacionamentos entre os papéis Estrutura de uma organização u f A Estrutura v C g h B f1 A g1 v1 v4 h1 Organização concreta C Papéis concretos C B Relações abstratas v3 C h2 Papéis abstratos v2 Relações concretas Níveis de uma organização Agentes no nível N são agrupados em organizações, que no nível N+1 são vistas como indivíduos nível N+2 nível N+1 nível N Estrutura de uma organização Fixa x Variável – Fixa: os agentes não modificam seus papéis – Variável: os agentes podem modificar seus papéis Predefinida x Emergente – Predefinida: estrutura definida pelo projetista – Emergente: papéis e relações não estão predefinidos. Um sistema que modifica sua estrutura em função de sua experiência e de sua relação com o ambiente Hierarquia x Igualitária – Hierarquia: um chefe envia comandos para os demais agentes – Igualitária: todos os agentes participam da mesma forma Tipos de organizações Organização com uma estrutura fixa, hierárquica e predefinida – Problema: a capacidade de adaptação é quase nula Organização com uma estrutura variável, igualitária e emergente – Problema: fazer que os agentes sejam capazes de coordenar-se Organização com una estrutura variável, igualitária e predefinida – A mais utilizada – Sem agentes especialistas: um agente pode pedir ajuda a outro – Com agentes especialistas: se um agente desaparecer, outro agente com a mesma especialidade pode assumir a tarefa (dependente do nível de redundância) Perguntas que temos que saber responder sobre agentes Como garantir que os designers de SMAs possuem a mesma definição para agentes? – Frameworks conceituais Como os agentes se comunicam e interagem? – Linguagens de comunicação Como se constrói um agente? – – – – Linguagens de modelagem Metodologias de desenvolvimento Linguagens de implementação Plataformas de desenvolvimento Como os agentes selecionam as ações que irão executar? – Planejamento Como os agentes decide com quem irão interagir? – Racionamento Como os agentes aprendem? – Aprendizagem Como os agentes sabem em quem confiar? – Normas e reputação