princÍpios e aspectos sobre agentes inteligentesre.granbery.edu.br/artigos/ntiw.pdf · nos jogos...

29
1 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ão 1 Rodrigo Menezes Costa Caçador 2 Sérgio Muinhos Barroso Lima 3 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] 2 Aluno do Curso de Sistemas de Informação, Faculdade Metodista Granbery, [email protected] ³ Mestre em Ciência da Computação, UNICAMP, [email protected]

Upload: hoangdat

Post on 09-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

1

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.

1Aluno do Curso de Sistemas de Informação, Faculdade Metodista Granbery, [email protected]

2Aluno do Curso de Sistemas de Informação, Faculdade Metodista Granbery, [email protected]

³ Mestre em Ciência da Computação, UNICAMP, [email protected]

2

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

3

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.

4

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.

5

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).

6

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.

7

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.

8

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.

9

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;

10

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

11

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.

12

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.

13

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.

14

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.

15

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.

16

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).

17

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

18

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).

19

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.

20

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

21

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,

22

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

23

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;

24

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).

25

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.

26

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.

27

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 problems-

from 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-e-

pesquisa/anais/2007/comunicacao-oral/gestao-e-desenvolvimento-de-tecnologias-da-

informacao-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/LUCS-

12.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.puc-

rio.br/media/Revista_rica_n10_a3.pdf> Acessado em: 30 abr 2013.

28

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.

29

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.