PRINCÍPIOS E ASPECTOS SOBRE AGENTES INTELIGENTES

Propaganda
Revista Eletrônica da Faculdade Metodista Granbery
http://re.granbery.edu.br - ISSN 1981 0377
Curso de Sistemas de Informação - N. 17, JUL/DEZ 2014
PRINCÍPIOS E ASPECTOS SOBRE AGENTES INTELIGENTES
Mateus Araujo Damião1
Rodrigo Menezes Costa Caçador2
Sérgio Muinhos Barroso Lima3
RESUMO
O objetivo deste artigo é dar ao leitor uma compreensão clara, através de tópicos
importantes, que mostram como a tecnologia dos Agentes Inteligentes pode ser utilizada
para melhorar a resolução de problemas de computação, devido a sua possibilidade de
operação independente, através de exemplos de utilização dos agentes inteligentes para
facilitar a compreensão desta tecnologia no campo da Inteligência Artificial (IA).
PALAVRAS-CHAVE: Inteligência Artificial, Agentes Inteligentes, Tipos de Agentes,
Princípios de Agentes, Aspectos de Agentes.
ABSTRACT
The purpose of this article is to give a clear understanding, through important topics,
that show how the technology of Intelligent Agents can be used to improve the
resolution of computing problems, due to its possibility of independent operation
through examples of using Intelligent Agents, to facilitate understanding this technology
in the field of Artificial Intelligence (AI).
Keywords: Artificial Intelligence, Intelligent Agents, Types of Agents, Principles of
Agents, Aspects of Agents.
1
Aluno do Curso de Sistemas de Informação, Faculdade Metodista Granbery, [email protected]
Aluno do Curso de Sistemas de Informação, Faculdade Metodista Granbery, [email protected]
³ Mestre em Ciência da Computação, UNICAMP, [email protected]
2
1
1 INTRODUÇÃO
A Inteligência Artificial é um campo de estudo considerado recente na ciência
da computação tendo o seu início logo após a Segunda Guerra Mundial e, nos dias
atuais, contempla uma imensa variedade de subcampos. O objetivo principal desta área
ultrapassa a barreira da compreensão de como se dá o raciocínio humano. Ela busca o
desenvolvimento de sistemas que simulem a capacidade humana de raciocínio,
percepção e tomada de decisão para a resolução de problemas, ou seja, sistemas que
tenham capacidade de serem inteligentes.
As evoluções dos recursos tecnológicos vivenciados pela sociedade atual
acontecem em proporção maior do que a capacidade que temos de assimilar essas
mudanças. Além da evolução percebida em nível de hardware, o surgimento e o
crescimento da internet, que após deixar de ser utilizada somente por governos e a nível
acadêmico, permitiu o acesso a informações dos mais variados tipos, além de um vasto
campo com recursos e serviços, como correio eletrônico, mensageiros instantâneos,
compartilhamento de arquivo, redes sociais, entre outros, ou seja, nos traz um conceito
de quebra de fronteiras da informação em larga escala e velocidade.
Existem vários ramos de estudos sobre sistemas inteligentes, cada um se
dedicando a um aspecto particular do comportamento humano. Pelo fato das pesquisas
serem muito especializadas, não existe ainda, como vemos em filmes de ficção
científica, estudos que se dediquem a construir uma máquina que reproduza o ser
humano em sua totalidade.
A Inteligência Artificial, á algum tempo, pode ser percebida no cotidiano das
pessoas, como por exemplo, no desenvolvimento de videogames que utilizam esse tipo
de estudo para a criação de jogos cada vez mais complexos. Nos jogos de futebol, por
exemplo, tem-se cada jogador com características muito bem definidas e bem próximas
do mundo real, ou seja, um tem uma maior velocidade, outro tem um melhor chute,
dentre outros. Mas, para que essa simulação seja executada, técnicas de sistemas
inteligentes são aplicadas no desenvolvimento.
Outro exemplo são as máquinas de fotografia digital que conseguem fazer o foco
automático no rosto das pessoas, ou ao encontrarem um sorriso disparam
automaticamente. Nos corretores ortográficos dos processadores de texto de computador
também nos deparamos com o uso da Inteligência Artificial, é preciso um sistema
inteligente para reconhecer que há algum erro de sintaxe nas frases e assim oferecer
2
uma possível correção. Técnica clássica do processamento de linguagem natural, um
sub-ramo da IA.
O termo "agentes inteligentes" emerge nesta evolução, não sendo um termo
afastado da realidade. Trata-se de um recurso de programação que representa elementos
autônomos, que têm a capacidade de manipular, trocar informações e também
conhecimento, sendo assim, entidades que, através da codificação nelas inseridas,
conseguem, com um grau de independência, executar as operações que lhes foram
designadas.
Os agentes inteligentes estão sendo empregados há algum tempo em várias áreas
da informática, como por exemplo, na utilização de correio eletrônico, dando prioridade
e organização às mensagens. Eles podem facilitar todas essas funções, por meio de
regras que podem ser inclusive deduzidas a partir de padrões de comportamento
observados em seus usuários.
Outra área de grande crescimento em que os agentes inteligentes são
empregados é o comércio eletrônico. Os vendedores, precisam de alguma forma, atrair o
cliente para o seu portal, oferecendo suporte especializado sobre os seus produtos,
controlando e realizando o acompanhamento das suas vendas. Os consumidores e os
comerciantes necessitam automatizar a sua participação nessa modalidade de compras.
Nesse tipo de comércio, os agentes inteligentes podem ser empregados aqui de
diversos modos. Por exemplo, poderiam ir às compras ao invés do usuário, coletando
informações de um determinado produto e retornando com sugestões de compras que
atendam às descrições recebidas. Também poderiam atuar como assistentes de vendas,
fornecendo aconselhamento sobre os produtos e tentando solucionar possíveis
problemas e dificuldades do usuário.
Este artigo aborda princípios e aspectos dos agentes inteligentes, apresentando
os estudos que fundamentam a tecnologia, um breve histórico e seus fundamentos,
visando uma compreensão mais abrangente do tema, bem como as categorias e
características descritas para agentes inteligentes, além de alguns exemplos de áreas
onde eles são empregados.
3
2 HISTÓRICO
Conforme o avanço na área de Inteligência Artificial percebe-se a importância
de se criar uma entidade que pudesse modelar mais naturalmente, no meio virtual, o que
nós conhecemos por um ser inteligente, surgindo assim o conceito de um agente
inteligente.
O início o estudo sobre agentes inteligentes se deu em meio à década de 80 e
seguem até os dias atuais, tornando-se um campo de conhecimento amplo e com
inúmeras possibilidades de estudo e aplicação.
Vários estudos são realizados paralelamente por algumas comunidades de
pesquisadores. O termo “agentes inteligentes” não oferece uma única definição
tornando-se uma barreira para a comunidade científica, ou seja, há muitas definições
para “agentes inteligentes” e cada qual com o seu papel.
Agentes inteligentes são diferentes dos demais programas computacionais, pois
operam por controle autônomo, conseguem perceber o seu ambiente, se adaptam a
mudanças e são capazes de assumir metas.
Segundo Barreto (2001), um agente é um sistema dinâmico com capacidade de
receber informações e agir sobre um ambiente objetivando realizar uma determinada
tarefa. Esta definição utiliza o modelo do Quadro-Negro (QN)4, como uma metáfora,
onde cada agente é considerado um funcionário de uma fábrica de móveis. Assim como
os funcionários, os agentes detêm conhecimentos específicos compatíveis com sua
função. O tesoureiro sabe gastar, receber e calcular, o chefe de fabricação sabe produzir
os móveis e assim por diante, ocorrendo dessa forma economia de recursos.
Quando um funcionário tem necessidade de algo ele vai até o QN escrever o que
deseja, o encarregado de compras o lê, faz a encomenda e escreve nele o valor que
precisa ser pago. O tesoureiro lê a mensagem, faz o pagamento e escreve no QN que a
encomenda já está paga. O chefe do almoxarifado, após ver a mensagem, recebe a
encomenda e escreve no quadro. Por fim o funcionário que precisava da encomenda vai
buscá-la e a fábrica de móveis continua a funcionar.
Podemos compreender um agente inteligente como sendo um sistema ou um
componente de um sistema capaz de organizar, selecionar, produzir informações e
4
Paradigma de comunicação entre módulos que imitam uma empresa onde os funcionários se comunicam
por mensagens deixadas em um quadro negro podendo ler e escrever mas não tendo conhecimento de
nada que foi escrito.
4
tomar decisões a partir de alguma fonte de dados. Em outras palavras, um agente é um
subsistema desenvolvido com o fim de obter e analisar informações como também
oferecer resposta sobre o cenário ao qual está inserido da melhor forma possível. No
desenvolvimento de jogos eletrônicos, por exemplo, um bom agente inteligente agir
mesmo que não de modo perfeito, o mais próximo possível do comportamento humano.
3 AGENTES INTELIGENTES
O termo agente é amplamente usado nas áreas de estudo da computação e visto
principalmente no campo de estudo da Inteligência Artificial. Para FERNANDES 2003,
a definição de agente depende do ponto de vista do autor e também da funcionalidade
desse agente. Um agente pode ser um programa de computador, entretanto, não precisa
necessariamente apresentar comportamento “inteligente”, termo que é alvo de muitas
controvérsias, já que é difícil definir o que é realmente um comportamento inteligente.
Segundo Russel e Norvig (2004), um agente é aquele que percebe o seu
ambiente por meio de sensores e age sobre ele através dos atuadores. Em um agente
robótico, os sensores poderiam ser câmeras de filmagem e detectores de faixa de
infravermelho. Já os atuadores podem ser representados pelos motores e braços
mecânicos.
Abordaremos o significado isolado de cada palavra que compõe o termo
“agentes inteligentes” e em seguida apresentaremos uma definição formal do termo
abordado por este artigo.
3.1 DEFININDO “AGENTE”
Antônio e Mauros (2009) definem a palavra “agente” como “que ou quem atua,
opera, agencia”. Será utilizada esta definição de forma que a mesma possa transmitir de
maneira clara o objetivo do artigo.
Russel e Norvig (2004) citam que um agente é algo que pertence e age em um
ambiente. A função de um agente é executada em resposta a qualquer sequência de
percepções.
Um agente é uma entidade capaz de realizar alguma tarefa,
geralmente para auxiliar um usuário humano. Agentes podem ser do
tipo biológico (pessoas ou animais, por exemplo), robótico ou
computacional. (JONES & BARTLETT, 2004).
5
Os agentes podem ser utilizados em diversos ambientes, sempre buscando uma
maneira de poder facilitar a consecução de uma atividade, que muitas das vezes
poderiam ser repetitivas.
Podemos programar de diversas maneiras os agentes para que possam trabalhar
em função do ser humano.
Um agente é uma ferramenta que realiza alguma tarefa em nome de
um humano. Por exemplo, um simples agente pode ser construído
para comprar uma ação específica quando o preço dela cair abaixo
de um determinado nível. Um simples agente de busca na Internet
pode ser projetado para enviar consultas a uma série de ferramentas
de busca e comprar os resultados. (JONES & BARTLETT, 2004).
Um exemplo de agente no mundo real seria o agente imobiliário, pessoa que é
contratada para efetuar as ações referentes à compra ou locação de um imóvel desejado,
de forma que tudo seja facilitado para você concluir a compra com o mínimo de
burocracia possível, seguindo este raciocínio pode perceber que agente é uma entidade
que executa os interesses ao qual foi submetido.
3.2 DEFININDO “INTELIGENTE”
Continuando com o objetivo de explicar da mesma forma como foi abordado o
termo “agente” seguiremos agora com o termo “inteligente”.
A palavra inteligência indica:
Segundo Antônio e Mauros (2009) “a faculdade de conhecer, de compreender e
aprender”. Com isto, podemos dizer que inteligente é uma característica de quem possui
inteligência.
A partir das definições acima citadas inferimos que quem consegue compreender
e tomar atitudes corretas em relação a um determinado assunto é considerado uma
pessoa inteligente, continuando com o exemplo do agente imobiliário, um agente
imobiliário inteligente seria um agente que conseguiria compreender o perfil de seu
cliente e oferecer a ele a melhor opção de imóvel para aquisição do cliente.
6
3.3 DEFININDO “AGENTE INTELIGENTE”
A partir do uso das definições das palavras que compõe isoladamente o termo,
pode-se compreender que o agente é um especialista em determinado assunto e o
mesmo precisa ser inteligente para que, com uma correta percepção do meio que está
inserido, ele execute da melhor forma a tarefa a ser realizada.
Os agentes inteligentes são sistemas computacionais que têm como principais
características atuação de forma autônoma, a percepção do ambiente onde estão
inseridos, a adaptação às mudanças, como também a capacidade de trabalhar em função
dos objetivos, podendo ser atribuídas aos agentes, tarefas normalmente desempenhadas
por seres humanos.
Agentes inteligentes têm conhecimento adicional de domínio que os
habilita a realizar as tarefas deles, mesmo quando os parâmetros da
tarefa mudam ou quando surgem situações inesperadas. Por
exemplo, um agente inteligente pode ser projetado para comprar
livros para um usuário, na Internet, pelo menor preço possível. O
agente precisaria ser capaz de interagir com um conjunto de lojas
virtuais, mas também precisaria ser capaz de aprender como
negociar com outras lojas ou com indivíduos que estivessem
oferecendo livros de segunda mão. Estes tipos de agentes que
realizam tarefas em nome de pessoas são chamados de agentes de
interface. (JONES & BARTLETT, 2004).
Segundo Russel e Norvig (2004), agentes humanos possuem como sensores, os
ouvidos, olhos e outros órgãos, e tem como atuadores, as pernas, voz, braços, mãos e
outras partes do corpo. Já os agentes robóticos poderiam ter como sensores as câmeras e
detectores de faixa de infravermelho e como atuadores os motores.
Com o objetivo de aproximar seu significado no ambiente computacional,
podemos considerar então que “agente inteligente” é um tipo de entidade que se utiliza
de conhecimento para interpretar o ambiente que está inserido e realizar as ações a que
foram designados.
Apesar de o termo possuir, como citado anteriormente, várias interpretações não
existindo assim um único conceito, o ponto comum existente em todas as concepções é
a autonomia que os agentes inteligentes devem oferecer e com isso aumentar de forma
significativa à eficiência dos sistemas desenvolvidos com o uso desta tecnologia.
7
Um agente de software é um programa de computador projetado
para realizar tarefas em nome de um usuário, há uma série de meios
pelos os agentes de software podem ser construídos e uma série de
propriedade que eles podem ter. Uma propriedade sobre a qual
temos especial interesse é a inteligência. (JONES & BARTLETT,
2004).
Os agentes de software não são coisas de outro mundo que simplesmente
surgem do nada, eles são software programados pelos os usuários. Muitas das vezes
contamos como determinados equipamentos, como por exemplo, um despertador, pelo
cujo usuário sempre o programa para despertar na parte da manhã, com objetivo de não
se atrasar para o início de suas atividades diárias. O foco principal deste artigo e dar
ênfase na programação de agentes inteligentes em software.
A ideia principal é a de que os agentes inteligentes possam executar operações
de percepção, atuação e interpretação do ambiente para a realização das metas que estão
designadas a realizar.
Os sensores e os atuadores são os dois elementos principais dos agentes.
Sensores têm como principal objetivo prover a base de conhecimento do agente através
das percepções realizadas no ambiente, e os atuadores, por sua vez, possibilitam ao
agente a execução da tarefa, atuando diretamente no ambiente como mostra a figura 1.
Figura 1 – Representação da interação de Agentes com o ambiente
Fonte: Bate Byte – Jornal técnico da CELEPAR5
5
Bate Byte – Jornal Técnico da CELEPAR - Companhia de Informática do Paraná - “Agentes
inteligentes para a formação de comunidades virtuais de aprendizado”. Disponível em:
<http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?conteudo=1115> Acesso em: 30 abr.
2014.
8
A autonomia, neste caso, pode ser entendida como o processo de atuação sem a
necessidade de interferência do usuário, e faz com que o agente possua algum tipo de
controle em suas ações e no seu estado interno.
O que faz a distinção em computação entre o “agente” e um controle de
processos, é a flexibilidade que este oferece ao sistema, fazendo com que ele passe a ter
características reativas, com a capacidade de responder por conta própria às mudanças
percebidas no ambiente, e proativa no sentido de não oferecer somente uma resposta a
estas mudanças e sim uma resposta oportuna com a condição de ter iniciativa própria
quando necessário.
4 ARQUITETURA DOS AGENTES
Um agente é construído a partir de técnicas e algoritmos que são usados por uma
metodologia específica que irá definir se ele irá agir isoladamente ou em grupo,
definindo os funcionamentos de seus sensores e estados internos, que são fatores
determinantes para a realização de todas as ações dos agentes com o decorrer da
utilização.
Segundo Davidson (1992), os agentes autônomos baseados em sistemas
computacionais possuem arquitetura similar como demonstra a figura 2.
Figura 2 – Arquitetura básica de agentes baseados em computador
Fonte: DAVIDSON, 1992
Especificando os itens que compõem a figura acima, temos:

Setas: fluxo de dados;

Sensores: recebem as informações do ambiente e disponibilizam os
dados para o mecanismo de inferência;
9

Mecanismo de inferência: atua como cérebro do agente inteligente, é
onde as operações são executadas através das regras estabelecidas e
estabelece como será a reação do agente frente aos dados recebidos pelos
sensores;

Base de conhecimento: lugar onde o conhecimento adquirido pelo
agente é armazenado;

Atuadores: executam as ações definidas pelo agente com o ambiente.
5 ASPECTOS GLOBAIS
Abordaremos a seguir algumas das características que os agentes devem possuir
para que sejam considerados inteligentes. Podemos entender estes aspectos também
como sendo comportamentos esperados dos agentes.
Jones e Bartlett (2004), citam que alguns aspectos são verificados em agentes
inteligentes, incluindo autonomia, benevolência e a capacidade de colaborar (com os
outros agentes, por exemplo) e a capacidade de aprender.
Os agentes podem possuir vários aspectos diferentes, dentre elas podemos ter:
autonomia de comportamento, que irá definir como o agente irá reagir em momentos
decisórios, flexibilidade para que com dinamismo consiga escolher a ação e a forma de
execução da tarefa, inteligência que irá proporcionar ao agente como executar a ação,
uma vez que seu desenvolvimento ocorre através das regras de evolução em que está
submetido.
Se a atuação de um agente inteligente for exercida em conjunto com um ou mais
agentes dá-se o nome de sistema multiagentes, não sendo necessário que possuam o
mesmo tipo de conhecimento, cada um pode ter sua base de conhecimento.
O foco principal neste tipo de sistema é a integração que os indivíduos irão ter
ao interagir uns com os outros, possibilitando a troca de informações para a resolução
dos problemas os quais programados para executar, tarefa que possivelmente seria
inviável caso tivessem que executá-las sem a cooperação de outros.
Existe uma característica denominada habilidade social que é a habilidade que
permite ao agente a comunicação com outras entidades que interagem no sistema.
6 CLASSIFICAÇÃO
10
Como vimos anteriormente, um agente inteligente não é necessariamente um
produto de software que executa funções preestabelecidas, um agente é qualquer
entidade capaz de entender o ambiente que está inserido através de seus sensores e
operar neste meio por meio de seus atuadores, que podem ser agentes humanos, robôs,
softwares. O tipo de ambiente irá definir o tipo de agente.
Em uma escala crescente podemos encontrar agentes com níveis de inteligência
definidos como baixo, médio e alto.
Os agentes com nível baixo de inteligência executam as tarefas normalmente
disparadas por algum tipo de atividade exterior. Não existe, neste tipo a adaptação a
mudanças ocorridas no ambiente.
No nível médio de inteligência, eles já trazem consigo a utilização de
conhecimento com a possibilidade de produzir raciocínio. Já possuem a capacidade de
adaptação e manipulação de novas condições percebidas no ambiente, contudo não
apresentam oportunismo.
No alto nível de inteligência, os sistemas de agentes raciocinam e aprendem com
os comportamentos dos usuários, inclusive com a capacidade de adaptação ao ambiente
e demonstram oportunismo com a evolução do tempo.
Além de inteligências divididas por níveis, agentes podem ser encontrados de
acordo com as atividades. Podem ser os que exercem atividades mais simples, pois se
baseiam em regras especificadas anteriormente, estes são conhecidos como gopher.
Podem ser agentes também os que exercem tarefas de alto nível; desde que o usuário
programe-o para a execução de determinada atividade, também conhecidos como
prestadores de serviço, e, por último, os proativos, que executam tarefas de
complexidade elevada, filtragem de dados, pesquisas e inclusive atividades sem que o
usuário exija que o sistema faça, ele age por conta própria.
A possibilidade de movimentação que um agente terá em um determinado
ambiente pode defini-lo como sendo estático ou móvel. Agentes que atuam localmente
sem a possibilidade de mobilidade são denominados agentes estáticos, um exemplo
pode ser observado em agentes instalados localmente em uma rede que esperam
determinado evento ocorrer para dispararem algum tipo de ação. Por sua vez, os agentes
móveis podem executar a mesma operação com o diferencial de possuírem a mobilidade
para trafegarem na rede à procura de eventos estabelecidos.
A seguir apresentam-se os principais tipos de agentes.
11
6.1 AGENTES DE REFLEXOS SIMPLES
Agentes de reflexo simples têm a função de perceber o ambiente e retornar uma
ação a ser executada.
Segundo Russel e Norvig (2004), agente de reflexo simples ou agente reativo
simples, escolhe a melhor ação com base no que está sendo transmitido naquele
momento, ou seja, não leva em conta os demais acontecimentos.
Um simples agente reativo (também conhecido como agente de
reflexo) é um sistema de produção onde entradas do ambiente são
comparadas com regras para determinar que ações executar. Em
outras palavras, agentes reativos simplesmente reagem a eventos no
ambiente deles, de acordo com regras predeterminadas. (JONES&
BARTLETT, 2004).
A reatividade é a capacidade que o agente possui de perceber o ambiente, que
pode ser o mundo físico, o ambiente virtual, outros agentes, a internet ou até mesmo a
combinação de todos estes elementos e responder às mudanças ocorridas nele. O agente
fica aguardando um evento específico acontecer, e, quando acontece, ele é ativado, ou
seja, possui determinado comportamento quando estimulado.
A figura 3 mostra a estrutura de um agente de reflexo simples.
12
Figura 3 - Representação do funcionamento de um Agente de Reflexo Simples
Fonte: Elaborada pelo autor
6.2 AGENTES DE REFLEXO BASEADOS EM MODELO
Os agentes de reflexo, baseado em modelos, armazenam uma quantidade de
informação de ações executadas recentemente, e, ao assimilar as entradas, executa a
ação escolhida. Podem ser conhecidos também como agentes de reflexos simples com
estado interno.
Para Russel e Norvig (2004), um agente de reflexo baseado em modelo ou
agente reativo baseado em modelo, deve manter algum tipo de estado interno, ao qual
necessita obter informações de acontecimentos passados e analisar alguns aspectos que
ainda não tenham acontecido no estado atual.
A figura 4, ilustra a estrutura do agente de reflexo baseado em modelos com seu
estado interno, mostrando a percepção da situação atual com o estado interno antigo,
com a finalidade de criar o novo estado interno.
13
Figura 4 - Representação do funcionamento de um Agente de Reflexo Baseado em Modelos
Fonte: Elaborada pelo autor
6.3 AGENTES BASEADOS EM OBJETIVOS
São agentes que tem um ou uma série de objetivos para executar. Sua percepção
do ambiente é superior, pois, ele já é capaz de considerar ações sobre o futuro com a
meta de alcançar seus objetivos.
Russel e Norvig (2004) explica que o agente baseado em objetos necessita
basear-se na descrição do estado atual e também precisa de alguma espécie de
informação sobre os objetos que descrevam a situação desejável.
Agentes baseados em objetivos são mais complexos que agentes
reativos. Em vez de seguir um conjunto de regras predeterminadas,
um agente baseado em objetivos age tentando atingir um objetivo.
Isto é geralmente feito usando busca ou planejamento. Um agente
baseado em objetivo pode, por exemplo, ter como objetivo encontrar
páginas na Internet que sejam de interesse para um pesquisador de
Inteligência Artificial. (JONES & BARTLETT, 2004).
A figura 5 mostra a estrutura do agente baseado em objeto.
14
Figura 5 - Representação do funcionamento de um Agente Baseado em Objetivos
Fonte: Elaborada pelo autor
6.4 AGENTES BASEADOS EM UTILIDADE
Agentes baseados em utilidades conseguem estabelecer preferências entre os
passos de seus estados, oferece ao agente as possibilidades possíveis de se executar a
ação desejada.
Um agente baseado em utilidade é semelhante a um agente baseado
em objetivo, mas além de tentar alcançar um conjunto de objetivos, o
agente baseado em utilidades também tenta maximizar algum valor
de utilidade. O valor de utilidade pode ser pensado como a felicidade
do agente ou quão bem-sucedido ele está sendo. Também pode ser
levado em consideração quanto trabalho o agente precisa realizar a
fim de alcançar seus objetivos. (JONES & BARTLETT, 2004).
Como exemplo de agente baseado em utilidade, podemos citar um carro que
necessita chegar a um destino, o qual existe várias sequências de ações para alcança-los,
sendo algumas mais seguras, rápidas, confiáveis ou econômicas que outras.
A estrutura de agente baseado em utilidade é mostrada na figura 6.
15
Figura 6 - Representação do funcionamento de um Agente Baseado em Utilidades
Fonte: Elaborada pelo autor
6.5 AGENTES COM APRENDIZAGEM
Agentes com aprendizagem se baseiam na ideia da máquina de Turing. O agente
pode atuar em um ambiente desconhecido inicialmente e, através de aprendizado ao
passar do tempo, evoluir conseguindo interpretar e atuar eficientemente no ambiente.
Segundo Russel e Norvig (2004), um agente de aprendizado pode ser dividido
em quatro componentes conceituais. Essa divisão pode ser compreendida na figura 7,
onde o elemento de aprendizado, que é responsável pela execução de aperfeiçoamento,
tem mais importância que o elemento de desempenho que é responsável pela seleção de
ações externas.
O elemento de desempenho é o que consideramos como sendo o agente
completo: ele recebe percepções e decisões sobre as ações. O elemento de aprendizado
utiliza da realimentação do crítico sobre como o agente está funcionando e determina de
que maneira o desempenho deve ser modificado para funcionar melhor no futuro.
(RUSSEL E NORVIG 2004).
16
Figura 7 - Representação do funcionamento de um Agente com Aprendizagem
Fonte: Elaborada pelo autor
De acordo com as classificações vistas anteriormente e as possibilidades de
identificação de agentes em classes distintas, podemos encontrar diversas classificações.
Os agentes são classificados da forma como eles verdadeiramente realizam suas
funções, mas também, encontramos aqueles que recebem a classificação de híbridos
pelo fato de executarem ações com mais de uma característica.
Alguns agentes são híbridos e exibem propriedades de mais de uma das
categorias citadas anteriormente (JONES& BARTLETT, 2004).
“Outros agentes podem ser denominados como desembaraçados, que seriam
totalmente autônomos e capazes de aprender e cooperar com outros” (JONES&
BARTLETT, 2004).
8 SISTEMAS MULTIAGENTES
A partir de um sistema determinado, podemos entender, como agente, cada
entidade que se encontra ativa no sistema, o conglomerado de agentes ativos formam
um grupo. Um sistema multiagente é um sistema onde dois ou mais interagem e
desempenham funções capazes de realizar o objetivo proposto pelo sistema que estão
inseridos.
Sistemas Multiagentes são um meio comum de explorar a capacidade
potencial de agentes, combinando muitos agentes em um sistema.
Cada agente em um Sistema Multiagente tem informações
17
incompletas e os agentes formam um sistema que tem informações
suficientes e capacidade para resolver o problema. O sistema não
tem um mecanismo de controle centralizado para resolver o
problema. (JONES & BARTLETT, 2004).
Em um sistema composto por vários agentes (figura 8), todos devem ser capazes
de se comunicar. Cada um deverá possuir conhecimento e habilidades para executar
uma determinada tarefa, podendo cooperar ou não com o intuito de atingir um objetivo
global.
Um exemplo de aplicação pode ser citado como as pernas de um robô que
podem ser controladas por um conjunto de agentes. Cada perna é controlada por um
simples robô reativo que tenha instruções sobre como mover a perna de acordo com os
obstáculos a serem encontrados pelo caminho.
Estes sistemas incluem vários agentes que trabalham em conjunto, onde cada um
é capaz de resolver de forma autônoma a sua função, e consequentemente operam de
forma sincronizada com os outros membros do grupo, tornando-se assim parte de um
sistema maior, sendo desejável que os agentes participantes do sistema tenham algumas
características específicas.
Comunicação e colaboração são propriedades desejáveis para
sistemas Multiagentes. Comunicação significa, por exemplo, que
agentes podem informar uns aos outros sobre mudanças no ambiente
ou sobre novas descobertas que fizeram. Colaboração significa que
agentes podem trabalhar juntos para resolver um objetivo comum.
(JONES & BARTLETT, 2004).
18
Figura 8 – Visão de um Sistema Multiagente
Fonte: JENNINGS, 2000
Como demonstra a figura 8, pode-se verificar que o sistema multiagente possui
vários agentes, onde cada um terá diferentes capacidades de entender o ambiente e
como agir nele. A ação de um é distinta do outro e isso faz com que ele influencie
diferentes partes do contexto.
Em sistemas Multiagentes, agentes cooperam uns com os outros. Esta
cooperação implica algum tipo de interação social entre agentes. Por
exemplo, um agente comprador pode negociar com agentes
vendedores na hora de efetuar compras. É claro que também é útil
para agentes cooperarem com os humanos que usam. Embora na
maioria dos sistemas de agentes, esta cooperação seja na forma de
simples entradas e instruções, a maneira pela qual agentes cooperam
com as pessoas, podem ser muito importante. (JONES & BARTLETT,
2004).
Seja em uma equipe de desenvolvimento de software ou em uma fábrica de
automóveis, todas as partes envolvidas no processo precisam se comunicar e colaborar
umas com as outras para seguir o escopo do projeto e para concluir os objetivos em
comum, esta necessidade de colaboração também é possível perceber em sistemas
multiagentes, onde eles se comunicam trocando as informações absorvidas, para
conseguirem junto solucionar um determinado problema.
9 APLICAÇÕES – ONDE OS AGENTES INTELIGENTES SÃO APLICADOS?
Com o avanço dos recursos tecnológicos e principalmente a disseminação da
internet, a aplicabilidade do uso dos agentes inteligentes intensifica-se mais a cada dia.
Serão apresentados alguns exemplos do seu uso, como recurso de programação e com a
sua utilização no ambiente computacional em conjunto com o uso da rede mundial de
computadores.
Agentes inteligentes são utilizados em jogos eletrônicos com o objetivo de
simular determinado tipo de comportamento de personagens que não são controlados
por nenhum jogador. O objetivo destes agentes é participar da partida colaborando ou
enfrentando o jogador tornando o jogo o mais atrativo possível.
19
Gilliard e Lopes (2010) exemplificam que uma das formas de representação de
comportamento mais comuns é através de regras de inferência, onde o comportamento
do agente consiste em uma coleção de regras condicionais, cujo antecedente (ou
condição) da regra representa um conjunto de condições que denotam a situação atual
da partida, e o consequente (ou conclusão) representa uma ação a ser tomada pelo
agente.
Um exemplo de conjunto de regras de inferência pode ser visto na figura 9 a
seguir:
Figura 9 – Visão de um Sistema Multiagente
Fonte: GILLIARD e LOPES, 2010
Em bancos, empresas de viagens ou companhias aéreas estão sendo usados
agentes inteligentes para completar formulários on-line no lugar do cliente. Pode ser
utilizado com o objetivo de testar inúmeras combinações para monitorar os preços. Um
agente inteligente também pode proporcionar uma solução para a detecção de
vulnerabilidades e falhas de funcionamento oriundas de uma, ou várias máquinas.
Agentes podem ser utilizados com a tarefa de oferecer suporte ao usuário de
algum sistema no processo de pesquisa e consequentemente oferecer o acesso à
informação desejada. Os sites de busca são exemplos deste tipo de aplicação na internet,
onde os agentes inteligentes são responsáveis por pesquisar na rede assuntos de
interesse do usuário, em um processo de filtro, encontrando somente o que seja
interessante de acordo com as características fornecidas pela pessoa e posteriormente
ainda exibir com certa frequência o assunto pesquisado em vários momentos durante a
navegação do usuário.
Cazarato e Ito (2007) citam que o comércio eletrônico também se beneficia com
a utilização do uso de agentes em suas transações eletrônicas, ao ofertar, por exemplo,
opções de uso de cartão de débito, de crédito e outros meios de pagamento, de acordo
com políticas definidas pelo próprio comprador. Os agentes possuem a habilidade de
20
sugerir a opção que mais lhe dá vantagens, e desta forma também pode ajudar a
organização a atingir mais um de seus objetivos empresariais, que é a fidelização do
cliente.
10 ESTUDO DE CASO – NETLOGO (MAZES)
Como estudo de caso para desenvolvimento e aplicações de agentes utilizaremos
como exemplo o software NetLogo, que é gratuito e de fácil instalação, apresentando
uma linguagem de programação simples e adaptada a modelar cujo objetivo é simular
fenômenos naturais e sociais. Com o NetLogo, é possível executar a modelagem de
sistemas mais complexos que evoluam com o passar do tempo, além de oferecer a
possibilidade de simulação entre uma grande quantidade de agentes, que interagem
entre si e o ambiente, oferecendo a possibilidade de explorar a interação entre eles.
A linguagem Logo é a linguagem de programação utilizada no software. É
voltada para o apoio ao ensino regular e por aprendizes em programação de
computadores de todas as idades. Foi concebida por Seymour Papert entre os anos de
1967 e 1968.
As turtles são todos os objetos que constituem esta linguagem que oferecem a
possibilidade de executar algum tipo de ação, elas podem andar por todo o ambiente que
é estabelecido pelo desenvolvedor, podendo inclusive ocupar o mesmo espaço uma da
outras, o software permite que você insira competição no código significando, por
exemplo, que duas tartarugas em um mesmo local podem competir por algo, ainda é
possível a simulação de reprodução entre os indivíduos, simulando crescimento
demográfico ou proliferação de epidemias.
A linguagem de programação do NetLogo apresenta vários recursos tais
como: atribuir diferentes formas (shapes) para as tartarugas, definir diferentes espécies
(breeds) para as tartarugas que tenham comportamentos diferenciados. Por exemplo,
definidas as espécies denominadas “gato” e “rato”, através da programação, é possível
escrever uma regra que faça o “gato” caçar os “ratos”. Essa diferenciação das espécies
faz, também, com que o modelo fique visualmente mais atraente e esclarecedor.
O NetLogo além de oferecer uma interface amigável, oferece ainda uma
biblioteca ampla que contém simulações em ciências naturais e sociais que podem ser
usadas e modificadas. Os modelos são construídos usando uma linguagem simples,
21
mesmo para aqueles que estão iniciando o uso do sistema ou tendo contato com sua
primeira linguagem de programação.
As aplicações geradas podem ser visualizadas pelo software os quais são
baixados gratuitamente pela internet ou ainda como um applet que irá ser executado
através de um navegador de internet.
Descreveremos, a partir de agora, um modelo que mostra como um agente
reativo simples, denominado tartaruga, se move em torno de um labirinto. O modelo
vem com três labirintos conforme índices e figuras a seguir:
1. O labirinto vazio (figura 10);
2. Um labirinto que simula um esquema real de labirinto de Hampton Court
Palace (figura 11);
3. Um labirinto da vida real situado no Reino Unido de nome Chevening
Casa Maze (figura 12);
Figura 10 - Labirinto 1 – Somente paredes
22
Figura 11 – Labirinto 2 de Hampton Court Palace
Figura 12 - Labirinto 3 de Chevening Casa Maze
Os botões de interação definidos são os de “iniciar”, que executa a limpeza do
ambiente e redesenha o labirinto selecionado pelo outro escolhido. O botão “dar um
passo” faz com que o agente tartaruga ande em torno dele de acordo com o
comportamento selecionado no seletor de comportamento. Este botão irá executar o
procedimento tartaruga caminhado uma vez. Para que o agente caminhe de forma
contínua, o botão “andar até o fim” deve ser selecionado.
Alguns opcionais inseridos no modelo, sliders e switch, estão definidos da
seguinte forma:

maze-being-searched: especifica o labirinto que está sendo pesquisado,
isto é, tanto o vazio, o Hampton Court Palace labirinto ou labirinto
CheveningHouse;
23

turtle-behavior: especifica o tipo de comportamento reativo as
exposições do agente tartaruga;
A opção turtle-behavior, especifica o tipo de comportamento reativo às
exposições sofridas pelo agente tartaruga e os tipos de comportamento que podem ser
escolhidos na opção são os seguintes:

HandTn The Wall: quando o agente se depara com uma parede do
labirinto a sua frente, ele deve ter um sentido para seguir, para a esquerda
ou para a direita, em contato com uma parede em todos os momentos. O
modelo decide-se aleatoriamente se será para a esquerda ou para a
direita;

RandomForward0: neste comportamento, o agente de tartaruga avança se
não houver uma parede em frente, em seguida, tenta virar à esquerda a
menos que haja uma parede para a esquerda, logo após, tenta virar à
direita a menos que haja uma parede à direita, então, se vira
aleatoriamente esquerda ou direita, como um último recurso;

RandomForward1: o agente tartaruga se move, principalmente em linhas
retas, em direções aleatórias e para uma distância aleatória mas, se ele
encontra uma parede, vai bater contra ela por um tempo curto (muito
parecido com um pica-pau batendo contra uma árvore ou uma mosca
contra uma janela) antes de recuar uma distância aleatória e continuar
com suas andanças aleatórias;

RandomForward2: neste comportamento o agente de tartaruga vagueia
em direções aleatórias, usando pequenos passos;
O objetivo é mostrar como um agente reativo simples pode ser eficaz (ou não)
na exploração do experimento. A tartaruga não tem capacidade cognitiva para
reconhecer a situação e simplesmente reage à situação imediata que se encontra usando
um detector de proximidade simples para sentir uma parede próxima (figura 13).
24
Figura 13–Percurso executado pelo agente no Labirinto 3 de Chevening Casa Maze
10 CONCLUSÃO
Buscou-se neste trabalho uma introdução aos agentes inteligentes, seus papéis e
suas utilizações. Características quanto ao nível de execução de vários deles foram
exemplificadas para facilitar o entendimento e compreensão deste recurso que já é uma
realidade vivenciada no cenário atual e, ainda, com um grande espaço de atuação e
exploração possíveis.
O campo de estudos deve ser largamente explorado, principalmente com maior
foco comercial, enfatizando os benefícios reais e as vantagens que a utilização de
agentes inteligentes na tecnologia podem oferecer no mundo dos negócios.
Percebemos que a já difundida e crescente popularidade da internet, somadas aos
problemas que muitos encontram ao procurarem como também, oferecerem
informações, é também um campo vasto para aplicações de agentes. A internet é um
ambiente ideal para a atuação destas tecnologias por serem mais adaptáveis à
complexidade existente na rede mundial de computadores, na qual, suporta melhor o
grande volume de dados do que em sistemas convencionais.
25
Resumindo, no avanço dos estudos sobre agentes inteligentes, sua utilização já
é percebida e ainda pouco conhecida. Sua aplicação em tarefas cotidianas ou mais
complexas são provas de que sua utilização está evidente e com grande possibilidade de
crescimento, demonstrando em particular que a utilização de agentes inteligentes no
ambiente on-line cresce exponencialmente e demonstra ser uma tendência irreversível.
26
REFERÊNCIAS BIBLIOGRÁFICAS
ANTONIO H. e MAURO S. “Dicionário Houaiss da Língua Portuguesa”, 1° edição,
Rio de Janeiro, Objetiva, 2009.
BARRETO, J. M. “Inteligência Artificial no limiar do século XXI”, Florianópolis, O
Autor. 2001.
BIGUS, Joseph P. “Data mining with neural networks: solving business problemsfrom application development to decision support”. McGraw-Hill, 1996.
CAZARATO, Flavio e ITO, Márcia “O Uso de Agentes Inteligentes no Comércio
Eletrônico”. Núcleo de Pesquisa em Ciências de Serviços (CiSe) - Centro Estadual de
Educação
Tecnológica
Paula
Souza
–
2007.
Disponível
em:
<
http://www.centropaulasouza.sp.gov.br/pos-graduacao/workshop-de-pos-graduacao-epesquisa/anais/2007/comunicacao-oral/gestao-e-desenvolvimento-de-tecnologias-dainformacao-aplicadas/carazato,%20flavio.pdf> Acesso em: 30 abr 2014.
DAVIDSON, P. “Concept Acquisition by Autonomous Agents: Cognitive Modeling
versus Engineering Approach”. Lund University Studies 12, ISSN 1101-8453, Lund
University, Suécia, 1992. Disponível em: <http://fileadmin.cs.lth.se/ai/psfiles/LUCS12.pdf>Acessoem: 29 abr. 2014.
FERNANDES, A. M. R. “Inteligência Artificial”. Florianópolis: Visual Books. 2003.
FRANKLIN, S., GRAESSER, A. - Is it an Agent, or just a Program? A Taxonomy
for Autonomous Agents. Proceedings of the Third International Workshop on Agent
Theories, Architectures, and Languages, Springer-Verlag, 1996.
GILLIARD, L e PACHECO, M. – “Evoluindo o Comportamento de Agentes
Inteligentes em Jogos Eletrônicos”. (2010) – Disponível em: <http://rica.ele.pucrio.br/media/Revista_rica_n10_a3.pdf> Acessado em: 30 abr 2013.
27
GRAY, R. S. - Agent Tcl: Alpha Release 1.1. Documentação do Sistema Agente Tcl,
Departamento de Ciências da Computação, Faculdade Dartmouth, Hanover, 1995.
HERMANS, B. - Intelligent Software Agents on the Internet: an inventory of
currently offered functionality in the information society & a prediction of (near)
future developments. Tilburg University, Tilburg, Holanda, julho, 1996.
JENNINGS, Nicholas R. "Department of Electronics and Computer Science,
University of Southampton", Southampton SO17 1BJ, UK Received 21 September
1999 - Disponívelem: <http://eprints.soton.ac.uk/253741/1/aij2000.pdf>Acessoem: 20
abr 2014.
JONES& BARTLETT, Bem,Cppin.“Inteligência Artificial”.GrupoEditoraNacional,
2004.
LETJER, M., DEAN, T.A Framework for the Development of Multiagent Systems,
IEEE Expert, vol. 11, no. 6, 1996.
RUSSEL, S., NORVIG, P. “Inteligência Artificial”. Rio de Janeiro: Elsevier. 2004.
SEGeT, "Uma experiência com Agentes Inteligentes e Jogos de Cartas" - 2008 Disponível em: <http://www.aedb.br/seget/artigos08/207_Artigo%20Seget.pdf> Acesso
dia: 15 abr 2014.
SOUZA, E. M. S. – Uma Estrutura de Agentes para Assessoria na Internet, 1996.
SOUSA, P. T .C., ALVARENGA E. F. R. "Agentes Inteligentes - agentes que
aprendem e redes neurais" - Trabalho do Mestrado de Informática da UCB –
Disciplina:
Inteligência
Artificial
e
Agentes
Inteligentes.
Disponível
em
:<http://paulotarso.com/Files/Agentes%20Inteligentes%20com%20Redes%20Neurais.p
df>. Acesso em: 21 abr 2014.
28
Teahan,
W.
J.
(2009).
“MazesNetLogomodel.”
Artificial
Intelligence.
VentusPublishingAps. Disponível em: <http://files.bookboon.com/ai/Mazes-2.html>
Acesso em: 05 jun 2014.
Wilensky, U. (1999). NetLogo. Center for Connected Learning and Computer-Based
Modeling,
Northwestern
University,
Evanston,
IL.Disponível
em:
<http://ccl.northwestern.edu/netlogo/>. Acesso em: 05 jun 2014.
29
Download