Você está na página 1de 2

1.

6 Da Teoria para a Prática: Implementando um Primeiro Agente

No final de cada capítulo deste livro, os estudantes são sugeridos a realizar alguma
atividade prática relacionada com o conteúdo apresentado. Neste capítulo é discutido
um ambiente chamado “Mundo Wumpus”, onde o aluno pode implementar um agente
de modo que ele realize o objetivo esperado. No momento o aluno pode implementar
um simples agente reativo, o qual pode ser evoluído no decorrer do curso.

1.6.1 Descrição do Mundo Wumpus

O diagrama sequinte (Figura 1.7) ilustra o Mundo Wumpus, o qual é configurado como
uma matriz 4x4 representando o espaço de uma caverna. Nesta caverna existe um
mostro, chamado Wumpus, buracos e barras de ouro. O objetivo do agente é entrar na
caverna, e recolher todas as barras de ouro sem cair no buraco ou encontrar o Wumpus.
O agente não tem como saber o que existe nas posições vizinhas da sua posição atual.
Porém, se em uma das posições vizinhas existir um buraco, ele sentirá uma brisa. Se ele
estiver vizinho ao Wumpus, ele perceberá um fedor. Apesar de perceber tais sensações,
o agente não sabe em qual vizinhança está a fonte desta sensação.

Figura 1.7. Exemplo de uma configuração do mundo Wumpus

No exemplo da figura anterior, o agente perceberia a brisa vindo do buraco, mas não
saberia se este buraco está na posição 1B ou 2A. Diferentemente, o agente só perceberá
o brilho das barras de ouro se ele estiver na mesma posição de tais barras. Desta forma,
existe um raciocínio simples que deve ser levado em conta de modo que o agente não
caia nos buracos e encontre as barras de outro sem se deparar com o Wumpus.

1.6.2 Ambiente de Simulação

Uma rápida procura na Web retorna diversos ambientes de simulação para este
proplema. Neste exercício é sugerido um ambiente extremamente simples desenvolvido
por um aluno da University of Illinois at Chicago e replicado no ambiente da disciplina
com o nome “Wumpus Simulador”.

O aluno deve baixar este arquivo e descompactar o seu conteúdo em um diretório


qualquer. Então o seguinte comando Java deve ser utilizado para compilar o simulador:

javac WorldApplication.java
Após compilado, o seguinte comando executa a aplicação:

java WorldApplication

Uma série de informações é mostrada na tela, onde os elementos do ambiente são


representados da seguinte maneira:

Elemento Gráfico Significado Elemento Gráfico Significado


A Agente olhando para o norte G Barra de ouro (Gold)
> Agente olhando para o leste P Buraco (Pit)
V Agente olhando para o sul W Wumpus vivo
< Agente olhando para o oeste * Wumpus morto
Se observarmos o comportamento do agente em toda a execução, podemos perceber que
tal comportamento não é inteligente. De fato, o código foi feito de modo que o agente
escolha uma ação aleatória entre as opções disponíveis e execute tal ação. Tais ações
são: andar para frente, virar a direita, virar a esquerda, recolher objeto e atirar. A classe
“AgentFunction.java” é a responsável por escolher a ação do agente após a leitura das
percepções. Em cada ciclo o agente pode receber cinco percepções diferentes: bump
(colisão) o agente bateu em uma das quatro paredes da caverna, glitter (brilho) existe
uma barra de ouro na posição atual, breeze (brisa) existe um buraco em uma posição
vizinha, stench (mau cheiro), o Wumpus está em uma posição vizinha e scream (grito) o
Wumpus foi morto.

O código da classe “AgentFunction.java” mostra como podemos obter tais percepções.


Porém, tais percepções não são utilizadas no raciocínio do agente porque ele sempre
escolhe uma ação de forma aleatória. Desta forma, nossa atividade se destina a
acrescentar algum código que dê uma inteligência reativa ao agente. Para isso podemos
utilizar comandos do tipo “if” para simular o comportamento de regras condição-ação.
Após alterar o código, avalie se seu agente tem um comportamento mais racional e
próximo das decisões tomadas por um humano.

Você também pode gostar