La forma teórica de los gráficos para resolver el problema es imaginar cada configuración del tablero como un vértice del gráfico y luego usar una búsqueda inicial con poda basada en algo como la Distancia Mahattan del tablero para derivar el más corto camino desde la configuración inicial hasta la solución.
Un problema con este enfoque es que para cualquier placa n x n
donde n > 3
el espacio de juego sea tan grande que no queda claro cómo se pueden marcar eficientemente los vértices visitados. En otras palabras, no hay una manera obvia de evaluar si la configuración actual de la placa es idéntica a una que se haya descubierto anteriormente al atravesar alguna otra ruta. Otro problema es que el tamaño del gráfico crece tan rápido con n
(es aproximadamente (n^2)!
) que simplemente no es adecuado para un ataque de fuerza bruta ya que el número de rutas se vuelve inviable desde el punto de vista computacional.
Este artículo de Ian Parberry A Real-Time Algorithm for the (n^2 − 1)
- Puzzle describe un algoritmo codicioso que llega a una solución completando la primera fila, luego la primera columna, luego la segunda fila ... Llega a una solución casi de inmediato, sin embargo, la solución está lejos de ser óptimo; esencialmente resuelve el problema como lo haría un ser humano sin aprovechar ningún músculo computacional.
Este problema está estrechamente relacionado con el de resolver el cubo de Rubik. La gráfica de todos los juegos es demasiado grande para ser resuelta por la fuerza bruta, pero hay un método bastante simple de 7 pasos que puede ser usado para resolver cualquier cubo en aproximadamente 1 ~ 2 minutos por un humano diestro. Esta ruta es, por supuesto, no óptima. Al aprender a reconocer patrones que definen secuencias de movimientos, la velocidad puede reducirse a 17 seconds. Sin embargo, ¡esta hazaña de Jiri es algo sobrehumana!
El método que Parberry describe mueve solo una ficha a la vez; uno imagina que el algoritmo podría mejorarse empleando la destreza de Jiri y moviendo varias fichas al mismo tiempo. Esto no sería, como lo demuestra Parberry, reducir la longitud de la ruta desde n^3
, pero reduciría el coeficiente del término principal.
¡esto huele a tarea de compsci! –
Es bastante común problema de tarea CompSci – monksy