artigo java magazine 51 - Sistemas multiagentes em Java

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (2)  (0)

Artigo da java magazine 51.

Esse artigo faz parte da revista Java Magazine edição 51. Clique aqui para ler todos os artigos desta edição.

 

 

Sistemas multiagentes em Java

Usando agentes inteligentes com a plataforma JADE

 

O uso aplicado da computação tem possibilitado criar entidades artificiais inteligentes, capazes de tomar decisões de forma autônoma e independente. Hoje é comum ouvirmos falar de sistemas especialistas ou inteligentes e essa definição está normalmente associada ao desenvolvimento de programas capazes de aprender com o ambiente em que são inseridos. Sistemas críticos e complexos são candidatos típicos à aplicação da inteligência artificial e, nesse domínio, podemos destacar o uso de sistemas multiagentes.

É possível também utilizar essas técnicas em atividades do dia-a-dia, construindo soluções elegantes e eficazes, em situações que exijam certo nível de aprendizagem automática. Atualmente, a principal plataforma open source disponível para a construção de aplicações multiagentes é o JADE, que conta com uma comunidade ativa de usuários. Nesse artigo, exploraremos a API da plataforma JADE, que envolve uma arquitetura de comunicação e de mensagens e suporta as principais características de sistemas especialistas. Começamos com uma breve introdução ao mundo dos agentes inteligentes.

 

Desmistificando os agentes

Podemos definir um agente inteligente como um sistema de computação capaz de interagir em algum ambiente e de realizar ações de forma autônoma (dependendo apenas das informações que o agente possui no momento) para atingir seus objetivos. Normalmente, agentes possuem características tanto reativas (ações provocadas pelo ambiente) como proativas (ações voluntárias do agente). São também adaptativos e orientados a objetivos. Entretanto, normalmente um agente não atua de forma isolada. Cada agente possui tarefas específicas dentro de um conjunto maior de atividades. Baseado nisso, podemos pensar em um sistema multiagentes como um conjunto de agentes especialistas em determinadas tarefas, interagindo para buscar um objetivo específico.

 

Figura 1. Comportamento básico de um agente

 

A Figura 1 apresenta o comportamento básico de um agente. Através de um sensor de entrada, o agente é capaz de capturar estímulos do ambiente em que está inserido e reagir a partir de um conjunto de ações pré-definidas. Um bom exemplo do uso de agentes é um sistema de diagnóstico médico. Esse sistema recebe como entrada os sintomas do paciente e respostas a várias perguntas definidas por um profissional de saúde, e propõe um diagnóstico e um tratamento adequado com base em um histórico de informações anteriores. Os agentes são capazes, através de tarefas especializadas e coordenadas, de encontrar uma solução ótima baseando-se nas entradas que recebem. Nesse caso, pacientes e o hospital são parte do ambiente do sistema e as questões, testes e tratamentos são as ações do agente.

 

Agentes aplicados

O uso de agentes está longe de ser algo puramente acadêmico e sem aplicação comercial. Agentes já são aplicados em diversas áreas e podem tirar grande proveito de ambientes distribuídos como a Internet. Diversas aplicações peer-to-peer (P2P), baseadas em tecnologia de agentes vêm sendo usadas e desenvolvidas durante os últimos anos, impulsionadas pelo aumento na largura de banda de transmissão e apostando, por exemplo, nos “relacionamentos virtuais”. Outras aplicações típicas que estão inseridas neste contexto são sistemas baseados em e-learning e e-commerce. Na área de aplicações móveis, podemos destacar ainda serviços de “busca e localização”, como encontrar o estacionamento mais próximo e mais barato, ou fazer reserva em um restaurante de acordo com as preferências do usuário. Há também aplicações no ambiente corporativo. Agentes inteligentes têm obtido sucesso em áreas desde sistemas para gestão do conhecimento, até em aplicações de suporte à decisão, passando por controle industrial, e sistemas de logística e de gerenciamento de tráfego de rede.

 

O código de um agente com JADE

O JADE (Java Agent DEvelopment Framework) é um framework open source em Java que simplifica a implementação de sistemas multiagentes, através de um conjunto de funcionalidades que atende às especificações da Fundação para Agentes Inteligentes Físicos (FIPA), seguindo uma abordagem P2P.

A FIPA (Foundation for Intelligent Physical Agents) tem como objetivo a promoção de tecnologias e especificações de interoperabilidade que facilitem a comunicação e o trabalho fim-a-fim entre agentes inteligentes, em aplicações comerciais e industriais.

 

Listagem 1. Estrutura básica de um agente

package br.com.javamagazine.exemplo;

import jade.core.Agent;

import jade.core.behaviours.Behaviour;

 public class ExemploEstruturaAgente extends Agent {

 @Override

  protected void setup() {

  /*Nesse método o agente pode disponibilizar seus   serviços para outros através de uma publicação   no diretório de serviços da plataforma e pode   buscar serviços específicos disponibilizados   por outros agentes, dentre outras atividades.*/

 }

@Override

 protected void takeDown() {

 /*Aqui ficam “códigos de limpeza” para serem executados quando o agente está sendo finalizado.*/

}

 private class AlgumComportamento extends Behaviour {

 @Override

   public void action() {

   /*Executa atividades especializadas e/ou se comunica com outros agentes através de mensagens. */

 }

@Override

 public boolean done() {

  boolean condicaoTermino = false;

  //Faz uma avaliação da condição de término...

  return condicaoTermino;

 }

 }

 }

 

A Listagem 1 apresenta a estrutura básica de um agente construído com o JADE. A criação de um agente com JADE é tão simples quanto estender a classe jade.core.Agent e implementar o método setup(). O objetivo desse método é inicializar os recursos e comportamentos do agente e é chamado pelo runtime do JADE (veja mais no quadro “Agentes e comportamentos”) Além da inicialização, no método "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?