Introdução ao Paradigma Orientado a Agentes

Veja nesse artigo o Paradigma de Programação Orientado a Agentes, que vem ganhando força para o desenvolvimento de sistemas de software e já bastante validado no meio acadêmico.

O Paradigma de Programação Orientado a Agentes tem como foco o desenvolvimento de software seguindo o estado da arte de Agentes; os Agentes fazem parte da Inteligência Artificial Distribuída que por sua vez está inserida na grande área de Inteligência Artificial. Dentro da Inteligência Artificial Distribuída, os Agentes são descritos como um sistema de software computacional, normalmente situado em um ambiente, capaz de execuções autônomas e flexíveis, para solução de problemas. São autônomos, porque executam ações sem interferência humana ou de outros sistemas e possuem controle de suas ações e seu estado interno. São flexíveis, porque possuem como características:

Os Agentes constituem um desafio, no ambiente de pesquisa, no contexto de evolução do paradigma, arquiteturas, padrões e etc.; quanto no ambiente de mercado, no que diz respeito à criação de ferramentas, metodologias e processo de desenvolvimento. A seguir são descritas algumas áreas que fazem uso de Agentes:


Figura 1: Arquitetura genérica de um Agente.

A figura acima ilustra uma arquitetura genérica de Agentes, em que possuem sensores e atuadores para percepção e atuação no ambiente, respectivamente; o quadrado com sinal de interrogação corresponde aos mecanismos e especificações para analise de informações coletadas e/ou armazenadas destinada à solução de problemas. O ambiente é o campo de atuação do Agente.

O paradigma de Agentes tem ganhando espaço no meio acadêmico, e também no mercado; o sistema de software é projetado e desenvolvido com vários Agentes, gerando um Sistema Multiagente (SMA). É um novo estado-da-arte para pesquisa e desenvolvimento de softwares. Assim, o SMA como produto de software precisa ser produzido com qualidade, desempenho e tempo hábil; por isto, requer o uso de processos, metodologias, modelos, ferramentas e etc. que facilitem o desenvolvimento. Logo, a Engenharia de Software Orientada a Agentes (ESOA) vem fornecer soluções - metodologias, padrões, processos, modelos, arquiteturas, ferramentas CASE e etc. - que auxiliam na produção destes tipos de sistemas de softwares, visto que, são bastante complexos, operam em ambientes imprevisíveis, abertos e de constante mudança, precisando tomar decisões em qualquer situação para alcançar seus objetivos (GIRARDI, 2004).

Arquitetura de Agentes

Desenvolver Sistemas de Agente(s) requer elaborar mapeamentos das percepções, ações e mecanismos para solução de problemas. Mapear o ambiente é compreender qual o cenário de atuação do Agente, como um ambiente físico (uma sala médica, um escritório, um dispositivo eletrônico, um ser humano) ou como um ambiente virtual (a internet, um sistema de software). Mapear percepções envolve mecanismos de como o Agente deve perceber o ambiente; por exemplo, uso de sensores de hardware para detectar movimento, luminosidade, entradas de caracteres de teclado e etc.. Mapear soluções é descrever procedimentos de como o Agente vai agir para solucionar problemas; por exemplo, um Agente definido para limpar ambiente em que uma maneira dele agir seja: pegar material de limpeza, limpar, guardar material de limpeza. Mapear ações envolve mecanismos de como o Agente vai agir no ambiente, se este vai usar recursos físicos (aspirador de pó, vassoura e etc.) ou recursos computacionais (mensagens gráficas, mensagens de voz e etc.). A partir de mapeamentos é possível definir que tipo de arquitetura o Agente será estruturado. Existem diferentes literaturas que classificam arquiteturas de Agentes; as propostas mais conhecidas são a de RUSSELL e NORVIG (2004) e WOOLDRIDGE (2002). Além domais, estas arquiteturas possuem construção flexível em que podem ser estruturadas de acordo com o mapeamento realizado; podendo sofrer alteração/evolução de acordo com as necessidades.

Classificação de Russel e Norvig

Segundo RUSSEL e NORVIG (2004), existem quatro tipos diferentes de Agentes:

Classificação de Wooldridge

WOOLDRIDGE (2002) classifica a arquitetura de Agentes em quatro tipos:

Arquiteturas de Sistema Multiagente

Além da arquitetura do Agente existe também a arquitetura do SMA, que permite esquematizar propriedades e estrutura de interação entre agentes, garantindo funcionalidade do sistema. Segundo GIRARDI (2004), As arquiteturas SMA podem ser classificadas por grupos, por cooperação de Agentes e por coordenação de Agentes; sendo que, estas arquiteturas podem ser utilizadas em conjunto para possibilitar uma melhor estruturação do SMA para atender o mapeamento.

Agentes Móveis

Os AM’s são tipos de Agentes que possuem a capacidade de se movimentar - com código, dados e execução - entre hosts ou dispositivos de rede. O processo de movimentação pode ser implementado por serialização ou por cópia, em que o Agente Móvel (AM) é morto em um host ou dispositivo de rede, e um novo Agente Móvel é criado em um posterior host ou dispositivo de rede com o mesmo código, dado(s) e execução. O AM pode ser mapeado seguindo as nomenclaturas de RUSSELL e NORVIG (2004) e WOOLDRIDGE (2002), como também o Sistema Multiagente com AM’s, pode ser mapeado de acordo com a classificação de GIRARDI (2004). O uso de AM’s proporcionam os seguintes benefícios:

Neste artigo foi mostrado, de forma resumida, o Paradigma de Programação Orientado a Agentes. Espero que tenham gostado e até a próxima.

REFERÊNCIAS

Artigos relacionados