# Sistema multiagente

Os Sistemas Multiagentes (SMA) formam uma subárea da Inteligência artificial Distribuída e concentram-se no estudo de agentes autônomos em um universo multiagente. Para os SMA, o termo autônomo designa o fato de que os agentes têm uma existência própria, independente da existência de outros agentes. Usualmente, cada agente possui um conjunto de capacidades comportamentais que definem sua competência, um conjunto de objetivos, e a autonomia necessária para utilizar suas capacidades comportamentais a fim de alcançar seus objetivos. Um agente é uma entidade computacional com um comportamento autônomo que lhe permite decidir suas próprias ações[ALV 97]. A decisão de qual ação levar a cabo é determinada pelo agente, tendo em consideração as mudanças acontecidas no ambiente em que atua e o desejo de alcançar seus objetivos. A ideia principal em um sistema multiagente é que um comportamento global inteligente pode ser alcançado a partir do comportamento individual dos agentes. Em um SMA não é necessário que cada agente seja individualmente inteligente para alcançar um comportamento global inteligente.

## Introdução

A metáfora de inteligência utilizada pelos Sistemas Multiagentes é a comunidade inteligente, ou seja, o comportamento social que é base para a inteligência do sistema. A metáfora utilizada pela IA clássica é basicamente de origem psicológica, enquanto que aquela utilizada pela IAD (Inteligência Artificial Distribuída) pode ser de natureza sociológica ou etológica. Uma abordagem sociológica/etológica é interessante quando se deseja resolver problemas complexos, que requeiram conhecimento de vários domínios e que podem envolver dados fisicamente distribuídos. Segundo Demazeau [DEM 95], podemos decompor um sistema segundo uma metodologia de IAD, através dos conceitos definidos a seguir.
Dado um determinado sistema, denomina-se agente cada uma de suas entidades ditas ativas. Este conjunto de agentes forma uma sociedade. As entidades passivas serão designadas pelo termo ambiente. Um agente recebe informações e raciocina sobre o ambiente, sobre outros agentes e decide quais ações deve realizar e quais objetivos deve seguir. Um agente é uma entidade ativa, ou seja, capaz de controlar suas ações, diferentemente das noções estáticas tais como módulos, conjunto de regras e bases de conhecimentos.
Denomina-se interação entre agentes ou entre agente/ambiente uma troca de informações, que pode ser realizada de forma direta (comunicação explícita) ou de modo indireto (emissão de sinais através do ambiente). Uma organização define todas as restrições aplicadas aos agentes pertencentes a uma determinada sociedade, ou seja, os meios através dos quais o projetista do sistema pode garantir que cada agente desejará e realizará a resolução dos problemas propostos.
Não existe uma definição para agente que seja aceita por toda a comunidade de IAD. Uma possível definição é proposta por Ferber e Gasser [FER 91]: chama-se agente uma entidade real ou abstrata que é capaz de agir sobre ela mesma e sobre seu ambiente, que dispõe de uma representação parcial deste ambiente que, em um universo multiagente, pode comunicar-se com outros agentes, e cujo comportamento é consequência de suas observações, de seu conhecimento e das interações com outros agentes.
A definição proposta acima preocupa-se com os mecanismos internos para o tratamento de cada agente, não estabelecendo o tipo de comunicação possível nem a granularidade dos agentes. Em Gasser [GAS 92] temos uma definição que ressalta o aspecto da identidade de cada agente: um agente é uma entidade à qual pode-se associar uma identidade única, e que é capaz de realizar tarefas formalizadas. Um agente pode ser considerado como um meio que produz um certo número de ações a partir dos conhecimentos e mecanismos internos que lhe são próprios.
Os SMA podem ser caracterizados didaticamente em duas classes, que serão apresentadas a seguir. A primeira denomina-se Sistemas Multiagentes Reativos e trabalha com o desenvolvimento de sistemas que utilizam um grande número de agentes simples para a resolução de um determinado problema. A segunda abordagem, denominada Sistemas Multiagentes Cognitivos trabalha com poucos agentes que realizam tarefas mais complexas que os primeiros.

### Sistemas multiagentes reativos

Os agentes reativos são baseados em modelos de organização biológica ou etológica (formigas, cupins, abelhas, etc.). O modelo de funcionamento de um agente reativo é formado pelo par Estímulo-Resposta (Ação-Reação). As principais características dos agentes e dos sistemas multiagentes reativos são destacadas a seguir [FER 91]:
* não há representação explícita do conhecimento: o conhecimento dos agentes é implícito (as suas regras de comportamento) e sua manifestação se externa através do seu comportamento e dos demais agentes;
* não há representação do ambiente: o comportamento (resposta) de cada agente é baseado no que ele percebe (estímulo) a cada instante. Não há uma representação interna explícita do ambiente;
* não há memória das ações: os agentes reativos não mantém nenhum tipo de histórico de suas ações, ou seja, o resultado de uma determinada ação passada não influencia diretamente na decisão de uma ação futura;
* organização etológica: a forma de organização dos SMA reativos é similar à observada por animais que vivem em grandes comunidades;
* grande número de membros: em geral, os SMA reativos possuem um grande número de agentes, com populações que podem chegar à ordem de milhares de membros.
Em suma, os agentes reativos são muito simples e não possuem representação do seu ambiente. Suas reações dependem unicamente de sua percepção deste ambiente. A Inteligência Artificial clássica define um problema de uma maneira global, criando métodos de resolução que se aplicam diretamente e exclusivamente sobre esta definição. Os modelos de SMA Reativos, por outro lado, concebem o problema como sendo um conjunto de agentes interagindo entre si, onde cada um destes possui seus próprios objetivos individuais. Uma forma usual de representar os comportamentos dos agentes é através de um conjunto de regras.
Dentre as principais aplicações que podem ser modeladas através de SMA Reativos, podemos destacar:
* Vida Artificial: Os SMA reativos abriram um amplo horizonte para o desenvolvimento de sistemas de Vida Artificial, devido a similaridade entre as suas características principais: criação de entidades simples, independentes e capazes de atuar num meio complexo. Neste caso, o conceito de agente reativo é modelado como um ser independente, que possui a capacidade de gerar novos agentes (descendentes) se uma determinada condição for satisfeita.
* Recuperação de Informações: busca de informações altamente específicas em ambientes de troca de dados heterogêneos, tais como rede de computadores.
* Telecomunicações: SMA reativos podem ser utilizados na construção de sistemas de telecomunicações mais abertos, flexíveis e, principalmente, interativos. De acordo com as ações realizadas nos pontos de transmissão e recepção, os agentes poderiam reconfigurar o sistema, adequando-se ao novo ambiente apresentado.

### Sistemas multiagentes cognitivos

Os agentes cognitivos são baseados em organizações sociais humanas como grupos, hierarquias e mercados. Segundo Ferber e Gasser [FER 91], as principais características dos Sistemas Multiagentes Cognitivos são as seguintes:
* representação explícita do ambiente e dos outros agentes da sociedade;
* podem manter um histórico das interações e ações passadas e, graças a esta memória, são capazes de planejar suas ações futuras;
* seu sistema de percepção, que permite examinar o ambiente, e o de comunicação, que permite a troca de mensagens entre agentes, são distintos. A comunicação entre agentes é realizada de modo direto, através do envio e recebimento de mensagens;
* seu mecanismo de controle é deliberativo. Os agentes cognitivos raciocinam e decidem em conjunto sobre quais ações devem ser executadas, que planos seguir e que objetivos devem alcançar;
* considerando a última asserção, os modelos de organização dos SMA cognitivos são modelos sociológicos, como as organizações humanas;
* um SMA cognitivo contém, usualmente, poucos agentes, na ordem de algumas dezenas, no máximo.
Considerando como exemplo a arquitetura definida em Sichman [SIC 95], apud Álvares [ALV 97] p.29, pode-se visualizar a estrutura interna de um agente cognitivo, como visto na figura abaixo. Este agente é composto por mecanismos de percepção e recepção de mensagens (entrada de dados), ação e emissão de mensagens (saída de dados), raciocínio e decisão (estados internos) e revisão (revisão das crenças do agente). O agente raciocina socialmente sobre os demais agentes. Tal mecanismo utiliza as informações que o agente tem sobre os demais, armazenadas numa estrutura denominada descrição externa. O agente também possui diversos estados internos, como o estado de raciocínio (RS), de decisão (DS) e de engajamento (CS). Tais estados são modificados através da execução dos diversos mecanismos internos.

## Definição de regras em SMAR

Segundo Rich [RIC 93] um conjunto de regras deve representar o conhecimento sobre os relacionamentos do mundo e o conhecimento sobre como solucionar problemas usando o conteúdo das regras. Existem duas formas de representar um conhecimento através de um conjunto de regras:
* representação declarativa: para este modelo, o conhecimento é especificado, mas o uso que será feito dele não é fornecido. Para utilizar este estilo de representação, deve-se ampliá-lo com um programa que especifique o que deve ser feito com o conhecimento e como. É importante salientar que existe uma maneira diferente de visualizar as definições lógicas declarativas, visualizando-as como um programa e não como dados de um programa. Neste aspecto, as declarações de implicação definem os caminhos legítimos de raciocínio e as declarações atômicas fornecem os pontos de partida desses caminhos;
* representação procedural: neste caso, as informações de controle necessárias ao uso do conhecimento estão embutidas no próprio conhecimento. Para usar uma representação procedimental, precisa-se ampliá-la com um interpretador que siga as instruções fornecidas no conhecimento.