Inteligencia Artificial (Optativa 1º ciclo)

Práctica I

22-10-2000

La práctica consiste en adaptar el programa puzzle que se puede encontrar en la página WWW de la asignatura a otros problemas de búsqueda. En primer lugar debe estudiarse la solución al problema del puzzle que se puede encontrar en:

http://www.dc.fi.udc.es/ai/~barreiro/iadocen/ialab.htm

y después se harán las modificaciones oportunas para adaptarlo al nuevo problema. Para ello, será necesario:

Antes de la implementación, se definirá el nuevo problema de búsqueda. El diseño del problema será realizado pensando en la eficiencia del programa, de tal manera que se decidirá:

Defensa de la práctica

La práctica se defenderá en el laboratorio de prácticas asignado a la asignatura. La defensa se realizará en las horas de prácticas y atendiendo a la fecha límite que se indicará. La defensa consistirá en la entrega de una breve memoria, demostración de la práctica y contestación a las preguntas del profesor. La memoria incluirá los siguientes puntos: Para el análisis experimental se construirá una tabla de resultados con una cabecera del tipo:
d   numdeejs   CBBA   CBA*(h1)  CBA*(h2)   tA*(h1)   tA*(h2)
donde para cada solución de longitud de camino d, se han probado un número de ejemplos numdeejs,
CB mide el coste de la búsqueda por medio del promedio de nodos generados,
y t es una medida del tiempo empleado en la búsqueda.

Para la búsqueda en anchura, el coste se calculará de forma teórica, para lo que se supondrá un factor de ramificación promedio.
 

Problema a resolver

El juego del sokoban se desarrolla en un espacio de dos dimensiones dividido en casillas, donde en cada casilla puede haber un obstáculo, un robot o un bloque. El robot puede moverse por las casillas libres. Si se mueve donde hay un bloque, empuja a éste a la siguiente casilla, si está libre, sino, no cambia de posición. De esta forma puede mover los bloques a diferentes posiciones. El objetivo es llevar los bloques a unas posiciones concretas (indicadas con un punto).
 
  #### 
###  ##
#   $ #
# #.#@#
# #$ .#
#  .$ #
##   ##
 ##### 
 

Representación gráfica


  ####
###  ##
#     #
# #.#@#
# #   #
#   o #
##   ##
 #####
 
 
 
 

Representación en texto

En la definicion básica del problema, los operadores son {norte,sur,este,oeste}, y el tipo de escenario básico constará de un único bloque que el robot deberá llevar a la posición final, sin embargo, la definición del problema permitirá un número de bloques cualquiera, sin más que cambiar una constante.

Cada grupo de prácticas podrá cambiar la definición del problema con el fin de hacer que el programa resuelva escenarios más complejos (más bloques, escenarios más grandes, ...).

Se creará un módulo en el programa para visualizar la solución del problema paso a paso.

El estado inicial se leerá de un fichero inicio con el formato arriba indicado. El estado final se indica con los puntos en ciertas casillas.

Para el análisis experimental, se usará como escenario básico el de la figura anterior.

Opcionalmente: