"Physicists ask what kind of place this universe is and seek to characterize its behavior systematically. Biologists ask what it means for a physical system to be living. We in AI wonder what kind of information processing system can ask such questions."

Avron B. Barr and Edward A. Feigenbaum, The Handbook of Artificial Intelligence


Monday, 7 April 2008

El viernes en clase...

El viernes pasado hicimos una sesión de "cacharreo" con el paquete de clases que deben usar para la segunda etapa del proyecto. El proceso fue como sigue:

  1. Descargar el .zip de aquí
  2. Descomprimir la carpeta y ejecutar el ambiente según las instrucciones del archivo readme.txt que se encuentra en el mismo .zip
  3. Cargar el laberinto eater-1.txt
  4. Ejecutar algunas acciones utilizando el agente interactivo
  5. Reiniciar el ambiente
  6. Cargar el laberinto eater-1.txt
  7. Cargar el agente RandomReflexTeseoAgentProgram.java
  8. Presionar el botón simulate (esto para ver que el ambiente efectivamente compila un archivo java y puede utilizarse)
  9. Cerrar el ambiente
  10. Hacerle algún cambio al RandomReflexTeseoAgentProgram.java (por ejemplo agregar algo así como System.out.println("Mi cambio");)
  11. Ejecutar el ambiente y cargar el laberinto eater-1.txt
  12. Cargar el RandomReflexTeseoAgentProgram.java modificado
  13. Presionar el botón simulate (esto para ver que los cambios tengan efecto)
Algunos problemas pueden presentarse en varios de los pasos, algunas recomendaciones son:
  • Verificar que la versión de la jvm instalada sea la 5 (o superior)
  • Verificar que el directorio en donde se encuentra el programa javac esté en path
  • Verificar que no hayan espacios en la ruta completa al .jar que se utiliza para ejecutar el ambiente
  • Borrar el .class que el ambiente crea cuando se carga el agente, cada vez que se le haga alguna modificación
Como primer paso para la segunda etapa del proyecto, se sugirió que hicieran correr el agente que presentaron en la primera etapa en este nuevo ambiente. Para esto deben tener en cuenta que ahora el método execute no devuelve un objeto String sino un objeto Action. La adaptación no debe causar mayores traumas ya que el constructor del objeto Action recibe un objeto String como argumento, así que si en su código tienen algo como return "advance";, deben cambiarlo a return new Action("advance");.

No comments: