Tarefa 1 - Programar um Agente para o Mundo do Aspirador
Exercício Proposto por Jill Zimmerman, do Goucher College, USA
Projetar um agente mais sofisticado para o mundo do aspirador. Você pode assumir que o local que os agentes devem limpar é um retângulo vazio, sem móveis ou outros obstáculos. Seu agente pode ter memória, ou seja, o agente pode ter um "estado" que pode ser alterado e memorizar informações a partir dos passos anteriores.
Você pode usar este modelo:
// My Vacuum Agent
package ai.worlds.vacuum;
import java.util.*;
class MyVacuumAgent extends VacuumAgent
{
// declare any state variables here
void determineAction()
{
/* This method uses the percept (stored in the Vector percept)
and state values to determine the agents next action.
The member variable action is assigned a string (either "suck",
"forward", "turn left", "turn right", or "shut-off") to indicate
the agent's next action */
}
}
Nomeie seu agente com o seu nome seguido por VacuumAgent, por exemplo, FabioVacuumAgent. A classe precisa estar contida no arquivo com o mesmo nome com a extensão java, por exemplo FabioVacuumAgent.java. Para testar o seu agente, você terá que adicionar esse arquivo a um projeto Eclipse que contém todos os arquivos java fornecidos e, em seguida, fazer algumas pequenas modificações em um dos arquivos.
Faça o download dos arquivos do projeto em http://phoenix.goucher.edu/~jillz/cs340/ai/ai.zip. Você vai precisar usar o Winzip para extrair os arquivos.
Em seguida, você deve usar o Eclipse para importar o projeto. Em seguida, compilar os arquivos e executar a classe AI.
O novo arquivo <xx>VacuumAgent deve ser colocado no pacote ai.worlds.vacuum. Além disto, selecione o arquivo WorldCreatePanel.java no pacote ai.worlds e faça as seguintes alterações para incluir o seu agente:
1. Adicionar um string com o nome de seu agente em
String[] vacuumStrings = {"Random Vacuum Agent","Reactive Vacuum Agent"};
2. No método createAgent, adicione um comando else if no final, tal como :
else if (agentName == "Fabio Vacuum Agent")
return new FabioVacuumAgent();
Você pode comparar o desempenho de seu agente com aqueles "dummy" fornecidos, usando os julgamentos de desempenho dos agentes ("trials"). Basta selecionar os agentes nos ensaios e executá-los. As pontuações médias dos ensaios em ambientes idênticos serão exibidas.
Quando você estiver satisfeito com a inteligência de seu agente, envie seu arquivo com o código fonte.