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
Download

Apresentação do curso - Instituto de Computação