• Nenhum resultado encontrado

2.2 Agentes e Sistemas Multiagentes

2.2.2 Da Filosofia para a Inteligência Artificial

2.2.2.1 FIPA

A organização FIPA36 (Foundation for Intelligent Physical Agents) desenvolve padronizações para Sistemas Multiagentes, onde através de uma série de especificações promove o sucesso de serviços e aplicações baseadas em agentes (Labrou, 1994). As especificações são divididas em grandes grupos: aplicações, arquitetura abstrata, gerenciamento de agentes, transporte de mensagem de agente e o de comunicação de agentes. Neste último grupo contém protocolos de interação, atos de comunicação e linguagens de conteúdo.

Através deste conjunto de grupos normativos, tem-se por sua vez, um conjunto de especificações que detalham vários pontos no desenvolvimento de componentes de software para agentes. Para este projeto, algumas especificações serão detalhadas em um nível maior ou menor para a compreensão do funcionamento das normativas. Especificamente na linguagem de comunicação, a primeira instância a ser observada é no grupo de arquitetura abstrata.

A normativa sobre arquitetura abstrata37 possui os aspectos fundamentais para as trocas de mensagens entre os agentes. A arquitetura é dividida em estrutura de mensagem, representação de mensagem e transporte da mensagem. As mensagens são estruturadas em “tuplas” de chave-valor. A chave é um par de elementos que consiste em uma tupla ordenada de tokens, exemplo:

{normativa, x, cc} {protocolo}

{ {normativa, x, cc}, {protocolo} }

A terceira tupla é um conjunto das duas anteriores. Essas tuplas são ordenadas porque devem possuir hierarquicamente as palavras, onde o primeiro token é o da mais alta hierarquia. Segundo esta especificação, é natural à escrita em uma sequencia de caracteres (strings) separados por pontos, ou seja, o terceiro conjunto do exemplo anterior é codificado como: normativa.x.cc protocolo. O valor destes pares de chaves pode ser uma palavra ou também outro par de elementos, que descreve uma expressão ou, alguma constante de algum tipo específico. Desta forma, um elemento arquitetural para mensagem é definida como org.fipa.standard.message.

As mensagens, de forma simplificada, possuem um emitente, destinatário e o conteúdo da mensagem em si. Na parte de transporte, ao enviar uma mensagem, esta é

36http://www.fipa.org/ 37

codificada em um payload, que é um componente de carga de mensagens. Nada é adicionado na mensagem, apenas esta é outra representação de codificação apropriada para transportar a mensagem. Em seguida, o payload é inserido em um envelope (que pode ser codificado em XML, por exemplo). Este envelope carrega parâmetros que detalham aspectos do transporte: o que transportar, para onde transportar, como utilizar o transporte, qual codificação usar, aspectos de segurança, entre outros necessários para guiar o transporte. Ainda há outro elemento de arquitetura sobre troca de mensagens entre agentes, mas não será estudado neste trabalho, pois a aplicação deste trabalho ao Sistema Multiagentes, não irá conferir alterações internas ao próprio SMA.

Na parte de especificação de mensagem, há a normativa referente a estruturação

da mensagem em FIPA-ACL38. O objetivo desta especificação é garantir a

interoperabilidade destas mensagens em um processo padronizado com vários parâmetros. É uma linguagem baseada nos atos de fala e também tem um conjunto de performativas comunicativas (Pitt e Mamdani, 1999). A Tabela 2 descreve o conjunto de parâmetros, suas descrições e se existe especificação de valores ou nomes reservados para o parâmetro.

Parâmetro Descrição Valores

Reservados

performative Descreve o tipo de ato de comunicação da

mensagem

Especificação 00037

Sender Agente remetente da mensagem, da qual há a

possibilidade de omissão para anonimato.

receiver Agente(s) destinatário(s) da mensagem

reply-to

Indica que nas mensagens subsequentes devem ser enviadas ao Agente nomeado em reply-to ao invés do receiver.

content

Conteúdo da mensagem, somente pode ser omitido quando algum parâmetro da mensagem já subentenda a ação a ser realizada.

language

O idioma da qual o conteúdo está expresso. Deve ser prefixado por “FIPA-“ adicionado da linguagem. FIPA confere normativas para a SL (Semantic Language), CCL (Constraint Choice

Language), KIF e RDF.

Especificação 00007

encoding

A codificação do conteúdo da mensagem. Pode ser alguma das linguagens citadas na linha acima. Se omitido, utiliza a codificação especificada do envelope.

Especificação 00007

ontology Denota a ontologia usada para dar significado

38

aos símbolos inseridos em content. Pode ser utilizada em conjunto com language para dar maior suporte de interpretação. Pode ser omitido se os agentes conhecem a ontologia a ser utilizada

protocol

Tipo de protocolo de interação que o agente emissor da mensagem deve informar tipificando a mensagem ACL. Exemplos como propose (propor) e not_understood (mensagem não entendida) devem ser utilizados.

Especificação 00025

conversation-id

Algum identificador de conversa para que os agentes possam identificar uma sequencia de atos de comunicação.

reply-with

Parâmetro para introduzir uma expressão para que algum agente possa seguir um fluxo específico de conversa, onde múltiplos diálogos estão ocorrendo.

in-reply-to

Indica uma expressão que faz referência a uma ação anterior a que esta mensagem é uma resposta. A expressão referenciada é a que consta em reply-with.

reply-by

Indica uma expressão de data que indica o mais recente tempo pelo qual o agente emitente gostaria de receber uma resposta. Pode ser usado em conjunto com os últimos quatro parâmetros. A especificação descreve que a maneira como é usado este parâmetro fica a cargo do programador dos agentes.

Tabela 2. Parâmetros de mensagens de FIPA ACL.

Nos parâmetros de performative e protocol, FIPA encoraja a utilização do que já existe especificado, mas parâmetros adicionais são também aceitos nestes casos39. Utilizando como exemplo a performativa request, pode-se ter uma formalização da mensagem em atos de fala da seguinte maneira:

<i, request (j, x)>

FP: FP (x) [i\j] ∧ Bi Agent (j, x) ∧ ¬Bi Ij Done (x) RE: Done (x)

Onde o agente i requisita ao agente j um determinado conteúdo em x. FP (Feasibility preconditions) designa as pré-condições do ato. Onde FP (x) [i/j] descreve as pré-condições mentais do agente i, por exemplo, que requisitar x é uma verdade para o próprio i. Para isto é utilizado semanticamente a letra B, abreviatura de Belief (crença). Através disto em Bi Agent (j, x)

¬Bi Ij Done (x), o agente i acredita que

39 Para isto é necessário preceder o nome do parâmetro adicional “X-“ para distinguir daqueles que são padronizados pela FIPA.

agente j é capaz de realizar a determinada ação em x. RE (Rational effect) é o efeito do ato de comunicação, que neste caso é realizar o que estiver em x. Através deste modelo formalizado da especificação dos atos de fala40 pode-se então, exemplificar uma performativa request em FIPA-ACL na seguinte forma:

(request

:sender (agent-identifier :name [email protected]) :receiver (agent-identifier :name [email protected]) :ontology travel

:language FIPA-SL :protocol fipa-request :content

""((action

(agent-identifier :name [email protected]) (book-hotel :arrival 15/10/2006

:departure 05/07/2002 ... ) ))""

)

Onde o agente Anne requisita ao agente Tom uma reserva em hotel. Também define que a ontologia ser considerada é a travel e a linguagem a ser utilizada na codificação do conteúdo é em SL (Semantic Language). Toda a estrutura da mensagem, como pode ser observada, é parecida com a linguagem KIF.

Esta seção abordou as questões da comunicação entre agentes. Nesta comunicação, nem todos os envolvidos na troca de informações podem reconhecer com exatidão um determinado conceito tratado nas mensagens. Nesta troca de informações, pode ocorrer o envolvimento de termos sinônimos a aqueles pretendidos, comuns na linguagem humana, onde se pode falar sobre um mesmo objeto e onde cada agente pode utilizar um termo que é relacionado ao objeto, sem tratar pelo nome específico do objeto. Para este tratamento da imprecisão da informação, será discutido na seção seguinte sobre a utilização de Fuzzy e suas restrições.

Documentos relacionados