introdução a sistemas multi-agentes viviane torres da silva [email protected]...
TRANSCRIPT
Introdução a Sistemas Multi-Agentes
Viviane Torres da [email protected]
http://www.ic.uff.br/~viviane.silva/ismapi
Disciplina
Objetivos:– Apresentar as propriedades e características dos agentes de software
e dos sistemas multi-agentes– Apresentar as técnicas de desenvolvimento destes sistemas
Avaliação:– Apresentações de artigos em sala– Trabalho final de implementação com apresentação oral
Conteúdo
Introdução a Agentes de Software– Agentes x Objetos, e os Sistemas Multi-Agente– Frameworks conceituais
Modelagem de SMA– Linguagens de modelagem para SMA – Metodologias para SMA
Implementação de SMA– Frameworks e arquiteturas para SMA– Linguagens de programação para SMA
Características específicas de SMA– Sociedade de agentes– Confiança e Reputação– Comunicação– Capacidade de Raciocinar – Planejamento – Aprendizagem
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 às 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 às 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 às mudanças do ambiente
Pode se comunicar através de troca de mensagem com outros agentes
Atua sem a necessidade de mandar atuar
Está orientado 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– Pró-atividade: 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 (projeto UFRGS)
• http://www.inf.ufrgs.br/~dflores/AMPLIA/– Atendimento as pessoas de terceira idade: TeleCARE
• http://www.uninova.pt/~telecare/telecare2004/TELECARE2004_Camarinha-Matos_Afsarmanesh.pdf
Aplicações com agentes IV/V
Exemplo Amplia : Agente Aprendiz: representa as crenças do aluno sobre o domínio e o
grau de confiança que o aluno tem em sua rede de diagnóstico.
Agente de Domínio: compara a rede construída pelo aluno com a rede do especialista, identificando os prováveis pontos de conflito.
Agente Mediador: recebe o resultado da análise e é responsável pela seleção das estratégias pedagógicas. Estas estratégias são selecionadas de acordo com o grau de confiança, a credibilidade e a classificação da rede do aluno.
Aplicações com agentes V/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/Letizia-Intro.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 às mudanças no seu ambiente
Outras aplicações V/V
Comercio eletrônico– Agentes podem planejar, negociar, argumentar,…
Gestão de processos (workflow)– Coordenação e cooperação na execução de tarefas
Jogos e Robótica
Controle de satélites– NASA está tentando fazer com que os satélites sejam mais autônomos,
aumentando a capacidade de tomar decisões
Evolução dos Paradigmas da ES
Linguagem Assembly
Abstração Funcional
Programação Estruturada
Orientação a Objetos
Orientação a Componentes
...
Agentes de Software
Abstrações determinadas pela arquitetura da máquina
Abstrações determinadas pelo domínio do problema
Tempo
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 não podem
Reatividade (Adaptabilidade)
Ambiente fixo x ambiente variável
Na vida real: as coisas mudam, a informação está incompleta, o ambiente é variável– A maioria dos ambientes é dinâmica
É 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 às mudanças que ocorrem nele (se adapta).
Pró-atividade (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 está guiado somente pelos eventos do ambiente, – tem iniciativa e reconhece oportunidades.
Autonomia
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á tentar 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 Pró-atividade
Reatividade: queremos que nosso agente seja reativo, que responda às mudanças do ambiente a tempo e de maneira apropriada
Pró-atividade: 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 e dependente do domínio da aplicação
Agente reativo Agente pró-ativo
Agente
mixto
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 Propriedades
Mobilidade: mover de um computador outro em uma rede preservando seu estado
Racionalidade: os agentes irão raciocinar sobre os fatos ocorridos para cumprir seus objetivos
Um agente pode decidir:– que objetivo tentar atingir ou a 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 outros 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 mesmo, sobre o ambiente e sobre outras entidades– Tudo que o agente sabe, suas memórias e suas percepções
Objetivos: estados futuros donde o objeto quer chegar ou desejo que ele quer satisfazer
Agente
Ação: execução dos agentes– Ex.: modificar seu estado, enviar e receber mensagens
Plano: composto por um conjunto de ações– Descreve a ordem de execução das ações– Possibilita que o agente alcance seus objetivos ou que satisfaça seus
objetivos– Está relacionado 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 uma 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
ComportamentoNão tem controle de seu comportamentoNecessita estímulos externos para executarResponde todas mensagemque recebeComportamento predeterminado
Estado mental: Pode modificar e adicionar informaçãoGuarda informações sobre seu comportamento Comportamento: Tem controle de seu comportamentoNão necessita estímulos para executarPode não responder alguma mensagemPode modificar seu comportamento
Agente
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, pró-atividade, 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
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 dividir e conquistar
Divisão de responsabilidades Distribuição de conhecimento
Heterogeneidade: cada um é especialista em um serviço Concorrência e Distribuição
– Flexibilidade, escalabilidade, tolerância a falhas, gestão de recursos
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 multi-agentes– Ambiente, organizações, papéis e objetos
Definição: Sistemas Muli-agentes
Ambiente
Ambiente
Agente
Ambiente
Açõessaída
Sensoresentrada
Acessível vs. Inacessível Determinista vs. Não determinista Estático vs. Dinâmico Episódico vs. Não episódico Discreto vs. Contínuo
Ambiente: Acessível vs. Inacessível
Em um ambiente acessível o agente pode obter informação sobre o estado do ambiente de maneira completa e atualizada
Os ambientes complexos costumam ser inacessíveis
Quanto mais acessível é o ambiente mais simples é desenvolver um agente para atuar no ambiente
Ambiente: Determinista vs. Não determinista
Em um ambiente determinista não existe dúvida sobre o estado do ambiente depois da execução de uma ação
Um ambiente não determinista representa um grande problema para os desenvolvedores– Depois de executar uma ação o agente não sabe o que pode passar
Ambiente: Estático vs. Dinâmico
Um ambiente estático não muda a não ser quando uma ação é executada por um agente
Em um ambiente dinâmico existem, além das execuções das ações, processos que executam em paralelo e modificam o ambiente
Os agente não possuem controle sobre as mudanças em um ambiente dinâmico
Problema: algum processo pode interferir na execução de uma ação de um agente
Ambiente: Episódico vs. Não episódico
Um ambiente episódico é dividido em diferentes episódios que não estão relacionados
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.– Ex: agentes puramente reativos não raciocinam sobre o passado
É mais fácil implementar um ambiente episódico porque o agente não precisa se preocupar com a relação entre as ações atuais e as ações futuras
Ambiente: Discreto vs. Continuo
Um ambiente é discreto se o número de ações e percepções é fixo e finito– Ex: o jogo de xadrez é discreto
Organização
Definição: Organização
Uma organização é uma agregação de relações entre componentes ou indivíduos
– Papéis desempenhados por agentes em uma organização
– Relacionamentos entre os papéis
Estrutura de uma organização
C
B
Au
v
h
f
g
C
C
C v1
v2
v3
v4
B
A
h1
h2
f1
g1
Estrutura
Papéis abstratos
Relações abstratas
Organização concreta
Papéis concretos
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
nível N+1
nível N+2
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. Sistema
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)
Agente x Tarefas
Grau de redundância: quantos agentes desempenham as mesmas tarefas [0..1]
Grau de especialização: quão especializados estão os agentes em suas tarefas [0..1]
Redundância
Especialização
Agentes redundantes
Nenhum agente redundante
Agentes
especialistas
Agentes não
especialistas
Tipos de organizações
Sem redundância e com agentes muito especializados– Cada tarefa é conhecida somente por um agente– Cada agente conhece somente uma tarefa
Redundante e com agentes especializados– Cada tarefa é conhecida por vários agentes– Cada agente se especializa em um subconjunto de tarefas
Redundante e sem agentes especializados– Cada tarefa é conhecida por vários agentes– Cada agente conhece várias tarefas
Sem redundância e sem agentes especializados– Cada tarefa é conhecida somente por um agente– Cada agente conhece várias tarefas
Problema de coordenação se:Todos os agentes conhecem
a mesma tarefa
SMA não são … I/IV
Os SMA são somente sistemas Distribuídos / Concorrentes?
Agentes são autônomos, capazes de decidir de maneira independente → eles necessitam de mecanismos para a sincronização e a coordenação de suas atividades
Agentes podem ser entidades que executam para seu próprio interesse
SMA não são … II/IV
Os SMA estão relacionados somente a Inteligência Artificial e todos os sistemas de IA são SMA?
Nem sempre é necessário implementar um sistemas de IA como um SMA
A IA clássica ignora os aspectos sociais dos agentes
SMA não são … III/IV
Os SMA envolvem somente a teoria de jogos e as teorias econômicas?
As teorias provêem a descrição dos conceitos mas nem sempre nos ensina como solucionar os problemas de maneira computável
Algumas coisas que assumimos nas teorias de jogos e de economia podem não ser úteis para criar determinados agentes
SMA não são … IV/IV
Toda teoria de ciências sociais pode ser utilizada em SMA?
Podemos nos basear nas ciências sociais mas não existe nada que garanta que tudo será utilizado da mesma maneira nos agentes
Como garantir que os designers de SMAs possuam 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
Perguntas que temos que saber responder sobre agentes