Introdução aos Sistemas Multiagentes

Veja neste artigo que o uso do paradigma de agentes direciona para a construção de sistemas de software multiagentes. Serão descritas arquiteturas validadas em ambiente acadêmico.

Projetar Agentes individualmente para desenvolver em software não é o suficiente. Além disso, não se projeta software com apenas um Agente porque uma das características do Agente é a comunicação, que só é possível quando existem mais Agentes presentes no software. Logo, é necessário desenvolver um software projetando uma comunidade de Agentes. Um software com uma comunidade de Agentes é chamado de Sistema Multiagente (SMA). Além do mais, o SMA é utilizado para construção de sistemas complexos (GIRARDI, 2004).

Os SMA’s podem ser projetados com um ou mais Agentes. Além do mais, pode possuir uma estrutura homogênea, onde possui Agentes com arquiteturas iguais; ou heterogêneas, com Agentes de diferentes arquiteturas. Devido a esta comunidade de Agentes se faz necessário, projetar a arquitetura do SMA. Uma arquitetura SMA permite esquematizar propriedades e estrutura de interação entre agentes, garantindo funcionalidade do sistema.

Segundo GIRARDI (2004), “A construção de software de alta qualidade não é tarefa simples, principalmente devido à complexidade natural do software, caracterizada pelas interações necessárias entre seus componentes”. O paradigma de desenvolvimento baseado em Agentes aborda a complexidade do software de três modos:

A decomposição de problemas permite abordar cada subproblema de maneira independente focando em um determinado problema por vez, para controlar a sua complexidade. Na decomposição de softwares baseados em Agentes, uma comunidade de Agentes autônomos interagem de maneira flexível. Com isto, o nível de acoplamento entre os componentes do sistema são reduzidos, pois os Agentes sabem quando devem atuar e quando devem atualizar seu estado. Logo, a complexidade de controle deixa de ser centralizada e passa a ser distribuída para cada Agente (GIRARDI, 2004).

A abstração permite definir um modelo simples de problema, dando ênfase aos aspectos pertinentes e ocultando detalhes irrelevantes. Ou seja, é feito um mapeamento do mundo real para o mundo computacional. Assim, os Agentes correspondem a uma noção de subsistemas e uma sociedade SMA, agindo e interagindo de acordo com seus papéis (GIRARDI, 2004).

Sistemas complexos necessitam de componentes de comportamento autônomo e flexível, pois componentes de software precisam interagir. A autonomia de Agentes permite que os mesmos sejam projetados para atender requisitos não pré-estabelecidos (GIRARDI, 2004).

Arquiteturas de SMA

Segundo GIRARDI (2004), “A arquitetura de um SMA mostra a maneira como o sistema está implementado em termos de propriedades e estrutura e como os agentes que o compõem podem interagir a fim de garantir a funcionalidade do sistema”. As arquiteturas SMA podem ser classificadas por complexidade, cooperação e coordenação de Agentes; além do mais, estas arquiteturas podem ser mescladas para atender os requisitos de desenvolvimento de software.

Arquiteturas quanto à complexidade

De acordo com a sua complexidade a arquitetura de um SMA por ser classificada em três grupos:


Figura 1: SMA de arquitetura moderada


Figura 2: SMA de arquitetura complexa

Arquiteturas quanto à cooperação

Em um SMA uma política de cooperação é necessária, uma vez que Agentes expressam as suas necessidades a outros Agentes a fim de realizar uma determinada tarefa. O processo de cooperação pode ocorrer de duas formas: partilhada de tarefas, Agentes auxiliam outros Agentes em uma determinada tarefa; partilha de resultados, os Agentes disponibilizam suas informações para a comunidade (GIRARDI, 2004). De acordo com a sua cooperação a arquitetura de um SMA por ser classificada em três grupos:


Figura 3: SMA de arquitetura Quadro-Negro


Figura 4: SMA de arquitetura federativa

Arquiteturas quanto à coordenação

Coordenação entre Agentes é referente à maneira como estarão organizados, para alcançar seus objetivos de sistema. Existem dois mecanismos de coordenação:

Comunicação entre Agentes

A comunicação é uma importante característica que os Agentes inteligentes possuem para atingir seus objetivos. Assim, foi definida uma Linguagem de Comunicação entre Agentes (ACL - Agent Communication Language) (FININ; LABROU; MAYFIELD, 1993) que foi dividia em:

Como pode ter sido observado, SMA’s precisam ser bem projetados por causa de sua ampla quantidade de características, para se moldar a vários tipos de ambientes para atuação. Contudo, é necessário mapear bem o cenário de atuação do sistema para que mudanças futuras não causem impacto na arquitetura do sistema; é necessário que o SMA tenha um foco de atuação bem definido para que os Agentes possam ter objetivos exatos. Como todo sistema de software o SMA também evolui, onde existe a necessidade de que o sistema seja flexível para atender as novas tendências. Além disso, um SMA não se fecha ao paradigma de programação orientado a Agentes, pois existirão condições ou situações onde Agentes não será ideal, assim podendo fazer abordagem de programação orientada a objetos, aspectos e até estruturado. Além do mais SMA se relacionam com outros SMA’s mais também com sistemas em outros paradigmas; logo, é necessário que o sistema possua esta flexibilidade de relação.

Bem, espero que tenham gostado deste artigo. Como artigos futuros, serão vistos que SMA’s também precisam ser projetados como qualquer outro tipo sistema. Portanto, é necessário o uso de metodologias, ferramentas e afins que auxiliem o ciclo de vida de desenvolvimento de softwares multiagentes.

REFERÊNCIAS

Artigos relacionados