Ingenier´ıa Inform´ atica Fundamentos de Inteligencia Artificial Hoja 1

Anuncio
Universidad Rey Juan Carlos
Curso 2011/2012
Ingenierı́a Informática
Fundamentos de Inteligencia Artificial
Hoja 1
1. Uso de la librerı́a de búsqueda Java para la asignatura de Fundamentos de Inteligencia
Artificial. En este ejercicio, el objetivo es que el alumno se familiarice con el uso de la
librerı́a de referencia propuesta para realizar búsquedas en la asignatura de Fundamentos
de la Inteligencia Artificial. Para ello, se procederá a descargar un código de ejemplo, se
hará funcionar en un entorno de desarrollo Java (Eclipse) y se realizarán modificaciones
sobre el código para utilizar distintos tipos de búsqueda y para comprobar distintos usos
de módulos estadı́sticos.
(a) Crear en un directorio local la estructura inicial del proyecto Java. Para ello, crear
una carpeta con el nombre del proyecto (por ejemplo, hoja1 ) y crear los subdirectorios src y lib.
(b) Descarga de la librerı́a de búsquedas: en la página web de la asignatura (http:
//www.ia.urjc.es/grupo/docencia/fia) se encuentra disponible la librerı́a Java
para la búsquedas. Descargar dicha librerı́a (fichero .jar ) en el directorio lib de la
carpeta anteriormente creada. Enlace directo a la librerı́a: fia-urjc.jar
(c) Descargar el código de ejemplo correspondiente a la hoja 1 de la página web de la
asignatura (cifras-practicas.zip). Descomprimir el contenido del fichero descargado
en la carpeta src del directorio inicialmente creado.
(d) Crear un nuevo proyecto Java en Eclipse, cambiando la localización por defecto e
indicando la carpeta creada para el proyecto inicialmente. Configurar el proyecto
para que utilice como librerı́a el fichero fia-urjc.jar alojado en el directorio lib.
(e) Ejecutar, en el proyecto creado, el programa principal NumbersMain. ¿Qué valores
iniciales tiene el problema? ¿Qué tipo de búsqueda realiza?
(f) Inicializar el módulo de estadı́sticas en modo texto (TextStatistics) y ejecutar
de nuevo el programa principal. ¿Cuántos estados se expanden? ¿Qué información
que aporta es relevante? ¿Se puede saber a qué profundidad se ha encontrado la
solución?
(g) Sustituir el módulo de estadı́sticas en modo texto por el módulo de estadı́sticas gráficas (JUNGStatistics). ¿Qué es la información gráfica que ofrece? Deja el puntero
del ratón sobre uno de los elementos gráficos, ¿qué información adicional muestra?
Utilizando la rueda central del ratón se puede cambiar el nivel de zoom de la visualización.
(h) Cambiar el tipo de búsqueda y pasar a utilizar una búsqueda en anchura (BreadthSearch)
Para ello será necesario realizar una instanciación similar a la usada para la búsqueda en profundidad, creando una nueva clase NumberBreadthSearch. ¿Se obtiene el
mismo resultado que en la búsqueda anterior? ¿Por qué?
(i) Utilizar alguno de los módulos estadı́sticos y analizar los resultados en función de los
datos obtenidos en las dos búsquedas. ¿Diferencia en nodos visitados? ¿Profundidad
de la solución?
1
(j) Cambiar los valores iniciales del problema con los siguientes valores:
Números: 5 10 7 1 3 9
Resultado: 542
Probar con los dos tipos de búsqueda y analizar los resultados. ¿Hay diferencias en
el tipo empleado para la ejecución? ¿Alguna estrategia resulta ser mejor que otra?
(k) Cambiar los valores iniciales para obtener generar un problema que no tenga solución. ¿Qué resultado es el esperado?
2
Descargar