Você está na página 1de 4

Universidade de Fortaleza

Curso: Cincia da Computao

Disciplina: Inteligncia Artificial


Professor: Vasco Furtado

Datas de entrega do relatrio e apresentao: 2 de Abril


Orientaes: Equipes de, no mximo, 2 pessoas. O no-comparecimento de um
dos integrantes do grupo na respectiva data (e horrio) de apresentao implicar
em nota zero. Eventualmente, alguns bugs do simulador podem ser encontrados;
nesse caso, mensagens sero enviadas em tempo e novas verses sero
colocadas no repositrio da disciplina.

ATIVIDADE COMPUTACIONAL 1

A proposta desta atividade computacional a de avaliar a habilidade dos alunos da


Disciplina de Inteligncia Artificial da UNIFOR com respeito especificao e
implementao de programas de agentes inteligentes (racionais). No caso, os agentes a
serem implementados devem ser agentes de software simples representando personagens
em um jogo de computador denominado poupador. Para tanto, ser disponibilizado aos
alunos um ambiente de simulao completo na forma de um framework computacional em
Java 1.5 (ver Fig. 5), em que a maior parte do jogo (i.e., parte grfica do ambiente fsico,
sensores e atuadores dos agentes, etc.) j estar implementada. Caber aos grupos de alunos
somente projetar e implementar a parte comportamental do agente (poupador ou ladro), ou
seja, implementar o que seria a ao do agente, de acordo com um dos tipos bsicos: reativo
simples, reativo com modelo do mundo, baseado na utilidade. A avaliao da atividade
computacional ser feita tanto pela anlise do relatrio gerado pelo grupo como por
argio oral envolvendo todos os membros do grupo em uma da data a ser programada. O
relatrio dever ser sinttico, com no mximo trs pginas, contendo as principais decises
de projeto e implementao e justificando a escolha do modelo de programa de agente
adotado.
Seguem abaixo outras informaes importantes acerca da atividade computacional:
O ambiente fsico (Fig. 1) consistir de um labirinto, composto por uma srie de
obstculos (paredes), por moedas espalhadas aleatoriamente, pastilhas de poder,
agencias bancarias, um agente poupador e um agente ladro. O labirinto deve ser visto
como uma matriz de clulas de tamanho idntico. A configurao fsica do labirinto ser
diferente no dia da avaliao.
Figura 1- Exemplo de configurao do ambiente do jogo

Dois tipos de agentes habitam o labirinto: agente-poupador e agente-ladro.


Devero existir mais de um agente agente-poupador e mais de um agente ladro por
partida. Alguns grupos de alunos ficaro responsveis pela implementao do agente-
poupador, enquanto outros grupos ficaro responsveis pela implementao do agente-
ladro. O corpo (arquitetura) de ambos os agentes ocupa somente uma nica clula do
ambiente.
O agente-poupador tem como objetivo guardar a maior quantidade de moedas possveis,
para isso ele ter a opo de guard-las no banco. Evitando assim que o ladro as roube.
O agente-poupador sabe onde fica o banco ( Constantes.posicaoBanco). Para isso ele
ter um tempo predefinido que pode ser visto no canto superior esquerda do ambiente.
A cada movimento seu no ambiente, o tempo reduzido em uma unidade. No ambiente
existem algumas pastilhas pastilhas do poder que imunizam o poupador no deixando
o agente-ladro lhe roubar, porm essas pastilhas tm um custo. Para consegui-las o
agente-poupador deve dar em troca 5 moedas. Ficando imune por 15 jogadas.
O agente-ladro tambm tem como objetivo encontrar moedas, porm ele s as
consegue roubando do agente-poupador.
Ambos os tipos de agentes dispem de sensores de natureza visual, ou seja, suas
percepes atuais (repassadas pelo ambiente sua arquitetura) guardam informaes
visuais da parte do mundo sua volta, dentro de um raio especificado, o qual, por sua
vez, varia de um tipo de agente para outro.
A Fig. 2 representa a viso atual dos agentes (viso 5 X 5). Deve-se notar que o agente
(poupador ou ladro) est representado pela clula de cor branca nessas figuras. J as
clulas em preto e em cinza representam as outras clulas que o agente pode perceber;
os quadros em cinza representam as posies para onde o agente pode se locomover.
Alm das percepes visuais, o agente-poupador recebe tambm dos seus sensores
informaes a respeito (i) quantidade de moedas em mos e quantidade j depositadas;
(ii) da coordenada (x,y) da posio atual que ocupa na matriz do labirinto; (iii) nmero
de jogadas imunes. Alm das percepes visuais, ele recebe tambm do ambiente
informao a respeito de possveis marcas olfativas (ferormnio) deixadas recentemente
pelo agente-poupador e pelo ladro no seu raio de visualizao olfativa atual (ver Fig.
3).
0 1 2 3 4
5 6 7 8 9
10 11 12 13
14 15 16 17 18
19 20 21 22 23
Figura 2- Representao da viso do agente-poupador ver possveis valores na Tab. 1

0 1 2
3 4
5 6 7

Figura 3 - Representao do olfato dos agentes ver possveis valores na Tab. 2


Cdigo Significado
-2 Sem viso para o local
-1 Fora do ambiente (mundo exterior)
0 Clula vazia (sem nenhum agente)
1 Parede
3 Banco
4 Moeda
5 Pastinha do Poder
100 Poupador
200 Ladro
Tabela 1 Cdigo das possveis percepes visuais aparecendo nas clulas das Figs. 2
Cdigo Significado
0 Sem nenhuma marca
1 Com marca de cheiro gerada a uma unidade de tempo atrs
2 Com marca de cheiro gerada a duas unidades de tempo passadas
3 Com marca de cheiro gerada a trs unidades de tempo passadas
4 Com marca de cheiro gerada a quatro unidades de tempo passadas
5 Com marca de cheiro gerada a cinco unidades de tempo passadas
Tabela 2 Cdigo das possveis percepes olfativas aparecendo nas clulas da Fig. 3

Com relao aos atuadores, ambos os tipos de agentes dispem de membros (pernas)
para se locomoverem no ambiente. A cada unidade de tempo, eles s podem se mover
para uma clula adjacente ou subjacente, ou decidirem ficar parados na clula atual.
Ambos os agentes no podem atravessar ou sobrepor s paredes; tambm no podem
ver por trs das paredes. Caso o agente decida se mover para uma clula invlida (p.
ex., parede), o ambiente o manter na clula atual. medida que os agentes se
movimentam pelo ambiente, eles deixam marcas, as quais permanecem ativas por
apenas cinco unidades de tempo de simulao, aps o que elas evaporam. Deve-se
ressaltar que essas marcas so deixadas sempre, ou seja, j fazem parte dos atuadores de
cada agente.
O jogo chega a seu final, quando terminar o tempo. O vencedor ser o agente que
conseguir uma maior quantidade de moedas.
Os grupos responsveis pelo projeto do agente-poupador devero implementar seu
cdigo via classe em Java que herde da classe abstrata ProgramaPoupador. J os que
projetarem o agente-ladro devero fazer o mesmo s que estendendo da classe abstrata
ProgramaLadrao. Todos os mtodos necessrios para realizar as percepes (visuais ou
no) e atuaes (movimentao) dos agentes j estaro disponveis no framework
computacional (Fig. 5) como:
Para o Poupador:
sensor.getVisaoIdentificacao();
sensor.getAmbienteOlfatoLadrao();
sensor.getAmbienteOlfatoPoupador();
sensor.getNumeroDeMoedas();
sensor.getNumeroDeMoedasBanco();
sensor.getNumeroJogadasImunes();
sensor.getPosicao();

Para os Ladro:
sensor.getVisaoIdentificacao();
sensor.getAmbienteOlfatoLadrao();
sensor.getAmbienteOlfatoPoupador();
sensor.getNumeroDeMoedas();
sensor.getPosicao();

Para ambos os agentes


o 0 - Ficar Parado() o agente fica parado e no perde energia
o 1 - MoverCima() move o agente uma posio acima da atual
o 2 - MoverBaixo() move o agente uma posio abaixo da atual
o 3 - MoverDireita() move o agente uma posio a direita da atual
o 4 - MoverEsquerda() move o agente uma posio a esquerda da atual

Em ambas as classes abstratas dever ser implementado o mtodo ao.

Você também pode gostar