• Nenhum resultado encontrado

1 INTRODUÇÃO

2.5 Agentes

Neste item são discutidos aspectos referentes tanto à teoria quanto à implementação de agentes. Como não é objetivo deste discutir ou apresentar definições formais do tema, pretende-se descrever o que são e como se comportam os agentes, ou, ainda, o que é necessário para caracterizar um agente.

Pode-se dizer que agentes são entidades autônomas (no contexto deste trabalho, apenas programas/softwares) especialistas na execução de uma determinada tarefa, geralmente, disparada pela percepção do ambiente onde o agente se encontra, tomando decisões sobre as informações obtidas do ambiente, que resulta na execução da tarefa ao qual o agente se propõe (YANG et al, 2007).

Os agentes de software podem ser desenvolvidos com ou sem o auxílio de técnicas de IA. O comportamento passivo foi atribuído àqueles agentes que não possuem autonomia e não utilizam técnicas de IA. Desta forma, assemelham-se a simples programas e são construídos através de instruções (AHMED et al, 2007).

Por sua vez, os agentes de software desenvolvidos com o auxílio de técnicas de IA podem ser ativos ou autônomos. Os agentes ativos são desenvolvidos com o auxílio de heurísticas. Servem para definir regras de produção ou redes neurais artificiais para auxiliar na solução dos problemas, conhecidos como sistemas de raciocínio lógico e fazem parte da IAS (inteligência artificial simbólica). Assemelham-se aos sistemas especialistas e não possuem autonomia. Os agentes autônomos são desenvolvidos com auxílio de técnicas baseadas em casos (exemplos), tais como redes neurais artificiais e raciocínio baseado em casos. A Figura 4 apresenta graficamente essa teoria (FRANCESCHI et al, 2002).

Para que possa agir de maneira autônoma, os agentes podem ter várias habilidades: percepção e interpretação de mensagens, raciocínio baseado em crenças, tomada de decisão, planejamento, e habilidade para executar planos, incluindo passagem de mensagens (JENNINGS, 2000) (JENNINGS, 1996). Jennings categoriza os agentes quanto ao nível de capacidade de resolução de problemas:

Figura 4: Paradigma de Agentes Fonte: FRANCESCHI et al, 2002.

Reativos: reagem a alterações no ambiente ou a mensagens de outros agentes. Não têm capacidade de raciocínio sobre suas intenções, reagindo tão somente sobre regras e planos estereotipados. Suas ações podem ser: atualizar a base de fatos e enviar mensagens para outros agentes ou para o ambiente;

Cognitivos: têm a habilidade de raciocínio sobre suas intenções e crenças, e criar e executar planos de ações. São considerados como sistemas de planejamento, selecionando objetivos - de acordo com suas motivações - e raciocinar sobre estes - detecção e resolução de conflitos e coincidências de objetivos, selecionar e criar planos (agendamento de ações), detecção de conflitos entre planos (alocação de recursos), e, se necessário, executar e revisar planos. Esta categoria também pode ser chamada de Intencional, Racional e Deliberativa; e

Sociais: agentes intencionais são considerados sociais quando possui modelos de outros agentes, sobre os quais raciocina para tomar decisões e criar planos.

Um programa para ser caracterizado como agente deve possuir algumas características fundamentais (HUHNS; SINGH, 1997 e 1999):

Autonomia de Decisão: capacidade do agente em analisar e resolver uma situação, visando alcançar seus objetivos;

Autonomia de Execução: capacidade de operar no ambiente sem intervenção externa;

Agentes de Software

Sem Técnicas de IA Com Técnicas de IA

Passivos Baseado em Instruções Ativos Heurísticas Sistemas de Raciocínio Lógico (IAS) Autônomo Baseado em Casos

Redes Neurais Raciocinio Baseado em Casos por abordagem simbolica Redes Neurais Estáticas Redes Neurais Dinâmicas

Competência para Decidir: capacidade de configurar sua atuação sem intervenção externa; e

Existência de uma Agenda Própria: capacidade de criar uma agenda de objetivos que caracterizem suas metas.

Os agentes ainda podem ter outros atributos tais como (GARCIA; SICHMAN, 2003):

Adaptabilidade: capacidade de adaptação do agente aos processos de decisão que se apresentem a ele;

Ambiente de Atuação: define onde o agente irá atuar, se localmente ou na Internet; Comunicabilidade: capacidade de interagir com outros agentes computacionais para atingir suas metas;

Interatividade com o Usuário: capacidade de interagir com o usuário, reagindo a possíveis falhas de comunicação de forma aceitável;

Mobilidade: capacidade de se deslocar e ser executado em outras plataformas;

Personalidade: capacidade de se personificar, utilizando recursos que lembrem características humanas (emoções, por exemplo); e

Reatividade: capacidade de reagir às mudanças do ambiente a partir do conhecimento de um contexto conhecido.

2.5.1 Arquitetura Geral de um Agente

Um agente deve possuir mecanismos de decisão que permitam escolher como atuar, entre as possibilidades armazenadas (agenda) para ele, num determinado perfil de atuação e num ambiente de atuação, o que define o seu modo de operação. Este modo de operação pode ser puramente reativo (identificada uma situação é tomada uma determinada ação), ou mais elaborado (baseado num modelo de decisão e num planejador de ações).

O agente também deve saber planejar a seqüência de ações que levem ao seu objetivo. Existe uma variedade de modelos de planejamento: strips, nonlin, abstrips e

noah. (GARCIA; SICHMAN, 2003). Todos modelam o mundo em termos de estados,

possuindo dois estados especiais, o estado inicial e o estado objetivo, além de um conjunto de operadores que permitem a mudança de estado. A arquitetura geral de um agente pode ser observada visualmente na Figura 5 (GARCIA; SICHMAN, 2003).

Figura 5: Arquitetura Geral de um Agente.

Fonte: GARCIA; SICHMAN, 2003.

Outros componentes que não são de raciocínio, também podem fazer parte dos agentes, especificando melhor os detalhes de implementação deles. A seguir tem-se a descrição desses componentes:

Controlador: é importante em agentes cognitivos, para determinar a ordem de ativação de seus processos internos;

Configurador de performance: permite que sejam configurados a agenda de objetivos, o modo de atuação, as preferências e as restrições. Estas configurações podem ser alteradas pelo usuário, por agentes externos ou pelo próprio agente;

Interface com o usuário: agentes que representam usuários no desenvolvimento de alguma atividade necessitam interagir com ele para entender a tarefa a ser executada e apresentar os resultados a serem avaliados;

Interface com outros agentes: essa interface é necessária quando os agentes atuam em comunidade, cooperando ou competindo com outros agentes. Para tal, é necessário definir uma linguagem de comunicação entre os agentes;

Interface com o ambiente: o agente deve ser capaz de perceber mudanças e atuar sobre um ambiente (onde ele está inserido); e

Agente Humano Interface Usuário Controlador Decisor C om po ne nt e de M ob ili da de Configurador In te rf ac e: In te ra çã o co m A ge nt es In te rf ac e: In te ra çã o co m A m bi en te Agentes Ambiente Preferências Modelo de Planejamento Agenda Experiências Prévias Modelo de

Decisão Padrões de Reação NegociaçãoModelo de Preferências Agenda Rede Parâmetros de Configuração Ambiente de Execu ção Resultados Parâmetros de Configuração Resultados Parâmetros de Configuração

Intenção Dados Percebidos e Comunicados Conteúdo da Comunic ação Conteúdoda Ação Dados Percebidos

Mensagem

KQML FIPA

Ação Percepção

Componente de mobilidade: importante em agentes móveis, para permitir que o mesmo possa sobreviver fora de seu habitat. Ele pode mover-se e ser executado em outras plataformas quando necessário.