Resumo - Agents Communication - Wooldridge - Cap 8

Transcrição

Resumo - Agents Communication - Wooldridge - Cap 8
Resumo
An Introduction To Multiagent Systems - Wooldridge
Capítulo 8 – Agents Communication
Disciplina de Sistemas Multi-agentes
Manoel Campos da Silva Filho
Introdução
Talvez o problema característico em pesquisas de comunicação em sistemas concorrentes seja o
sincronismo de múltiplos processos. Essencialmente, dois processos precisam ser sincronizados se existe
a possibilidade que eles possam interferir um com o outro de forma destrutiva. Um clássico exemplo é o
cenário da atualização perdida, onde temos dois processos p1 e p2, ambos tendo acesso a uma variável
compartilhada v. O processo p1 inicia a atualização do valor de v, primeiro lendo ela, então modificando,
e finalmente salvando este valor atualizado em v. Mas entre p1 ler e salvar o valor modificado de v, o
processo p2 atualiza v, salvando algum valor nela. Quando p1 salva seu valor modificado, a atualização
realizada por p2 é perdida.
Então, como a comunicação é tratada por uma comunidade de agentes? Para entender a resposta,
precisamos ver como a comunicação é tratada em POO, onde ela é realizada por invocação de métodos.
Assim, um objeto o1 pode invocar um método m1 de um objeto o2. Neste cenário, o objeto o1 é quem
decide se o método será executado ou não e quando executar, não é o dono do método que decide isso.
Agora considere um cenário orientado a agentes, tendo os agentes i e j, onde i tem a capacidade de
realizar uma ação α, que é parecida com um método. Mas não existe conceito no mundo orientado a
agentes de um agente j “invocando um método” em i. Isto é devido i ser um agente autônomo: ele tem
controle tanto sobre seu estado quanto sobre seu comportamento. Não é garantido que o agente i irá
executar uma ação α só porque o agente j quer. O agente i pode não estar interessado em executar a ação.
Em geral, agentes não podem forçar outros agentes a executar uma ação, nem alterar o estado
interno de outros agentes. O que eles podem fazer são ações comunicativas na tentativa de influenciar
outros agentes. Por exemplo, eu posso dizer “Está chovendo em Londres” de uma forma sincera, que
pode ser uma tentativa de modificar as suas crenças, mas isso não é suficiente para mudar as crenças de
alguém, pois nós temos controle sobre nossas próprias crenças e desejos. Você pode acreditar que eu sou
notoriamente não confiável em assuntos sobre o tempo. Mas ao declarar que “Está chovendo em
Londres”, eu estou tentando mudar seu estado interno.
Speech Acts
(Ações por palavras: coisas que o ato de dizê-las representam uma ação, como promessas, ameaça,
proposta de casamento...)
A teoria de speech act trata comunicação como ação. É baseada na suposição que speech actions
são realizadas por agentes apenas como outras ações, no amparo de suas intenções.
John Austin
John Austin (1962) notou que certas classes de declarações em linguagem natural (posteriormente
chamadas de speech acts) tem as características de ações, no sentido de que elas mudam o estado do
mundo, como ocorre com ações físicas. Exemplos são declarações de gerra e de casamento como “Eu vos
declaro marido e mulher”.
Austin identificou um número de verbos performativos, que correspondem a vários diferentes
1 de 9
tipos de speech acts como requisitar (request), informar (inform) e prometer (promise). Ele ainda
distinguiu 3 aspectos diferentes de speech acts: a ação locucionária, ou o ato de fazer uma declaração (ex.
“Por favor, faça um pouco de chá”), a ação ilocucionária, ou ação realizada em dizer algo (ex. “Ele me
pediu para fazer um pouco de chá”), e perlocução, ou efeito da ação (ex. “Ele me colocou para fazer
chá”).
Austin se referiu para as condições requeridas para término das ações com sucesso como
condições de felicidade, onde ele reconheceu 3 importantes condições:
1) Deve existir um aceitável procedimento convencional para a performativa, e as circunstâncias e
pessoas devem estar como especificado no procedimento.
2) O procedimento deve ser executado corretamente e completamente.
3) A ação deve ser sincera, e qualquer percepção requerida deve ser completa, tanto quanto possível.
Searle
O trabalho de Austin foi estendido por John Searle em 1969, onde ele identificou propriedades que
devem ser mantidas para que uma performativa entre um ouvinte e um locutor tenha sucesso.
1) Condições de I/O normais: tratam que o ouvinte é capaz de ouvir a requisição (assim, ele
não deve ser surdo), a ação foi realizada em uma circunstância normal (não em um filme
ou jogo), etc.
2) Condições preparatórias: tratam do que deve ser verdade no mundo para que o locutor
corretamente escolha a speech act. Neste caso, o ouvinte deve ser capaz de realizar uma
ação, e o locutor deve acreditar que o ouvinte é capaz de realizar a ação. Também, não é
óbvio que o ouvinte fará a ação a qualquer custo.
3) Condições de sinceridade: distinguem execuções sinceras da requisição; uma execução não
sincera da ação pode ocorrer se o locutor não quer realmente que a ação seja realizada.
Searle também tentou uma sistemática classificação de possíveis tipos de speech acts,
identificando as seguintes 5 classes:
1) Representativas: compromete o locutor com a verdade de uma proposição expressa. O caso
de paradigma: informação (informing).
2) Diretivas: é uma tentativa da parte do locutor de tentar fazer o ouvinte executar algo. Caso
de paradigma: requisição (requesting)
3) Comissionado: compromete o locutor no curso da ação. Caso de paradigma: promising
4) Expressiva: expressa algum estado psicológico (gratidão, por exemplo). Caso de
paradigma: agradecimento (thanking)
5) Declarações: faz algumas mudanças no estado de uma questão institucional. Caso de
paradigma: declaração de guerra
A teoria de speech acts baseada em planejamento
No final dos anos 60 ao início dos 70, muitas pesquisas iniciaram para construção de sistemas que
poderiam planejar como autonomamente alcançar objetivos. Se tal sistema requerer interação com
humanos ou outros agentes autônomos, então tal planejamento deve incluir speech actions. Isto introduz a
2 de 9
questão de como as propriedades das speech acts podem ser representadas para que os sistemas de
planejamento possam raciocinar sobre elas. Cohen e Perrault (1979) deram conta da semântica das speech
acts usando técnicas desenvolvidas em pesquisas de planejamento de IA. O objetivo do trabalho deles foi
desenvolver a teoria das speech acts
..modelando elas em um sistema de planejamento como operadores definidos...em termos das
crenças e objetivos dos locutores e ouvintes. Assim, speech acts são tratadas da mesma forma
como ações físicas.
No formalismo escolhido por Cohen e Perrault, as propriedades de ações eram caracterizadas por pré e
pós condições, onde podiam ser representadas as crenças, habilidades e desejos dos participantes na
speech act.
Considere a ação Request. O objetivo será para o locutor, fazer o ouvinte realizar alguma ação
(Figura 8.1).
A ação Inform é tão básica quanto a Request. O objetivo dela para o locutor é fazer o ouvinte
acreditar em alguma declaração. Como a Request, a definição de Inform requer ações de mediação para
modelar a força perlocucionária da ação.
3 de 9
Speech acts como ações racionais
As speech acts posteriormente por Cohen e Levesque foram modeladas como ações realizadas por
agentes racionais no apoio de suas intenções.
Linguagens de Comunicação de Agentes
Baseado na teoria de speech acts, algumas linguagens de comunicação de agentes surgiram:
•
Knowledge Query and Manipulation Language (KQML): é uma linguagem “externa” para
comunicação entre agentes. Ela define um formato de “envelope” para mensagens, no qual um
agente pode explicitamente tratar a ilocucionária força desejada para a mensagem. KQML se
preocupou com a parte de conteúdo das mensagens.
•
Knowledge Interchange Format (KIF): é uma linguagem explicitamente com o objetivo de
permitir representações do conhecimento sobre algum domínio particular. Ela foi planejada
primeiramente (apesar de não unicamente) para formar as partes de conteúdo de mensagens
KQML.
KIF - Knowledge Interchange Format
Ela não foi uma linguagem onde mensagens poderiam ser expressas por ela mesma, apenas seu
conteúdo. KIF é muito parecida com lógica de primeira ordem, com notação semelhante a LISP. Usando
KIF, os agentes podem expressar:
•
propriedades de coisas em um domínio (ex. “Michael é vegetariano”- Michael tem a propriedade
de ser vegetariano);
•
relacionamentos entre coisas em um domínio (ex. “Michael e Janine são casados” - o
relacionamento de casamento existe entre os dois);
•
propriedades gerais do domínio (ex. “todos tem uma mãe”).
Para expressar essas coisas, KIF assume um aparato lógico, básico e fixo, que contém os usuais
conectivos de lógica de primeira ordem: os conectivos booleanos binários and, or, not e tudo mais, além
de qualificadores universal (forall - ∀) e existencial (exists - ∃). KIF provê um vocabulário básico de
objetos – em particular, números, caracteres e strings, além de algumas funções padrões e relacionamento
entre esses objetos como <, >, etc. Também usa recursos de gerenciamento de listas e objetos, baseado
em LISP. Com esses aparatos, pode-se definir novos objetos e relacionamentos entre eles.
Ex.: (= (temperature m1) (scalar 83 Celsius))
4 de 9
KQML - Knowledge Query and Manipulation Language
KQML é uma linguagem baseada em mensagens para comunicação entre agentes. Assim, ela
define um formato comum para mensagens. Uma mensagem KQML pode rudemente ser pensada como
um objeto (POO): cada mensagem tem uma performativa (que pode ser pensada como uma classe de
mensagem), e um número de parâmetros.
Exemplo:
(ask-one
:content (PRICE IBM ?price)
:receiver stock-server
:language LPROLOG
:ontology NYSE-TICKS
)
O atributo content é a mensagem a ser passada. O receiver indica para quem deseja-se enviar a
mensagem. O language indica a linguagem usada, onde é assumido que o destinatário compreende essa
linguagem. O ontology identifica a terminologia usada na mensagem. Veja tabela 8.1.
Muitas versões de KQML surgiram, com diferentes performativas. Uma relação de performativas
usadas pode ser vista na tabela 8.2, onde é usado o conceito de VKB – Virtual Knowledge Base (Base de
Conhecimento Virtual). A ideia foi que agentes usando KQML para se comunicar, poderiam ser
implementados em diferentes linguagens de programação e paradigmas, e qualquer informação que os
agentes tenham podem ser representadas internamente em muitas formas diferentes. Nenhum agente pode
assumir que outro agente irá usar a mesma representação interna. Todavia, para a comunicação, faz
sentido para agentes tratarem outros agentes como se eles tivessem alguma forma interna de
representação de conhecimento. Assim, agentes atribuem conhecimento para outros agentes; isto é
conhecimento como VKB.
5 de 9
6 de 9
Exemplos de diálogos KQML
KQML foi uma linguagem muito importante para comunicação de agentes, porém teve muitas
críticas como segue:
•
O conjunto de performativas era muito fluído, não tendo sido restringida, o que permitiu o
desenvolvimento de diferentes implementações da linguagem que não podem interoperar.
•
Mecanismo de transporte de mensagens nunca foram bem definidos, tornando difícil para agentes,
falando diferentes versões de KQML, interoperarem.
•
A semântica nunca foi rigorosamente definida, onde fosse possível afirmar que dois agentes,
declarando que estavam usando KQML, realmente estavam.
•
A linguagem não tinha classes de performativas comissivas, pelo qual um agente se compromete
com outro.
7 de 9
A Linguagem de Comunicação de Agentes da FIPA
Em 1995 a Foundation for Intelligente Physical Agentes, FIPA, iniciou o desenvolvimento de
padrões para sistemas de agentes, definindo a FIPA ACL – Agente Communication Language,
superficialmente similar à KQML: definida como uma linguagem “externa” para mensagens, com 20
performativas para definição de interpretação desejada de mensagens, e não obriga qualquer linguagem
específica para o conteúdo das mensagens. Um exemplo de uma mensagem FIPA ACL pode ser visto
abaixo:
As performativas providas pela FIPA ACL podem ser vistas na tabela 8.3.
A linguagem possui uma semântica formal abrangente, algo que faltava na KQML, permitindo
representar crenças, desejos e crenças incertas de agentes, como as ações que os agentes realizam. A
semântica da FIPA ACL permite definir restrições que o emissor da mensagem deve satisfazer para que
8 de 9
ele esteja em conformidade com o padrão FIPA ACL, que é definido como condição de possibilidade,
além de definir o efeito racional da ação – o “propósito” da mensagem: o que o agente deseja com o envio
da mensagem. Todavia, em uma sociedade de agentes autônomos, o efeito racional da mensagem não
pode (e não deve) ser garantido. Então, conformidade não requer que o destinatário da mensagem respeite
a parte do efeito racional da semântica ACL – somente a condição de possibilidade.
Um assunto chave é o teste de conformidade de semântica, para saber se um agente está
respeitando a semântica da linguagem, cada vez que ele se comunica. Poucas pesquisas tem sido feitas em
como desenvolver linguagens de comunicação verificáveis quanto a correta utilização da semântica pelos
agentes.
Ontologias para Comunicação de Agentes
Se dois agentes estão comunicando sobre algum domínio de assunto, então é necessário para eles
concordarem sobre a terminologia que eles usam para descrever o domínio, para que todos entendam os
mesmos termos e não existam ambiguidades. Assim, uma ontologia é uma especificação de um conjunto
de termos:
sendo uma definição formal de um corpo de conhecimento. A mais típica categoria de ontologia
usada na construção de agentes envolve um componente estrutural. Essencialmente uma taxonomia de
relações de classes e subclasses casadas com definições do relacionamento entre essas coisas.
KIF é uma linguagem para definição de ontologias. Ela não foi inicialmente projetada para uso por
humanos, mas sim por computadores. Muitas linguagens foram desenvolvidas para expressar ontologias,
talvez, a mais importante dessas, na época, foi a XML e a DARPA Agent Markup Language – DAML.
Diferente da HTML, que não permite incluir semântica, ou seja, sentido, a dados dentro de um
documento, a XML pode fazer isso, permitindo que humanos e máquinas possam identificar dados
específicos dentro de um documento.
O HTML é fixo, assim, você não pode adicionar novas tags que não foram definidas no DTD
(Data Type Declaration, definido por meio da SGML - Standard Generalized Markup Language) da
linguagem.
Em XML, pode-se criar um XML DTD para definir novos elementos e assim, não permitir outros
que não estejam definidos no seu documento DTD. Logo, XML, como a SGML, é uma linguagem para
definição de outras linguagens. A XML permite adicionar semântica à Web, onde máquinas podem não
simplesmente mostrar informações, mas entender o significada delas.
Linguagens de Coordenação
Um dos mais importantes precursores do desenvolvimento de sistemas multi-agentes foi o modelo
blackboard. Inicialmente desenvolvido como parte do projeto de compreensão de fala Hearsay, o modelo
de blackboard propõe que a resolução de problemas em grupo progride por um grupo de 'origens de
conhecimento' (agentes) observando uma estrutura de dados compartilhada como um quadro negro:
resolução de problemas progride como estas origens de conhecimento contribuem com soluções parciais
para o problema.
9 de 9

Documentos relacionados