Introdução

Propaganda
Introdução a
Sistemas Multi-Agentes
Viviane Torres da Silva
[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_C
amarinha-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/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 à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çõ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 domínio do 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 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
mixto
Agente pró-ativo
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
Comportamento
Não tem controle de seu
comportamento
Necessita estímulos externos
para executar
Responde todas mensagem
que recebe
Comportamento predeterminado
Agente
Estado mental:
Pode modificar e adicionar
informação
Guarda informações sobre seu
comportamento
Comportamento:
Tem controle de seu comportamento
Não necessita estímulos para
executar
Pode não responder alguma
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,
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
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
Ambiente
Agente
Sensores
entrada
Ações
saída
Ambiente





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
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. 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
Agentes redundantes
Nenhum agente redundante
Especialização
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
Problema de coordenação se:
Todos os agentes conhecem
a mesma tarefa
 Sem redundância e sem agentes especializados
– Cada tarefa é conhecida somente por um agente
– Cada agente conhece várias tarefas
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
Perguntas que temos que saber responder sobre 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
Download