Por @Alvy — 19 de Junio de 2018

Solving the Rubik’s Cube Without Human Knowledge

Este trabajo reciente resulta bastante interesante; es un pasito más en el campo de los algoritmos de inteligencia artificial que aprenden por sí mismos sin supervisión humana. En este caso el dominio es bastante limitado (un Cubo de Rubik) pero al aprendizaje reforzado que se ha empleado ha obtenido estupendos resultados sin supervisión alguna – más allá de la definición de las reglas y el objetivo. En arXiv: Solving the Rubik’s Cube Without Human Knowledge.

El método empleado por DeepCube –que es como se llama el algoritmo– se asemeja un poco a los que recientemente se han usado en juegos como el ajedrez y el go. Se definen las reglas –los movimientos del cubo– y el «objetivo» –el cubo resuelto– aunque curiosamente dicen que el algoritmo funciona «al revés»: imagina el cubo resuelto y busca cómo llegar al cubo desordenado inicial, para luego invertir los movimientos.

El método empleado se llama iteración autodidáctica e incluye búsquedas en profundidad, una función de evaluación y recompensas que dependen del estado del cubo en cada momento – básicamente si se está más cerca de la solución o no. De esta forma repitiendo una y otra vez diferentes movimientos el algoritmo aprende con qué giros se acerca más a la solución o cuáles no debe hacer porque le alejan. Repítase millones de veces.

El resultado es que DeepCube puede resolver el cubo en un promedio de unos 30 movimientos. Matemáticamente sabemos que 20 movimientos es el número máximo de giros necesarios para resolver el cubo desde cualquier posición –y por tanto el mejor algoritmo lo podría siempre hacer en 20 o menos– y en competición los speedcubers humanos suelen necesitar entre 50 y 60 movimientos (Fridrich) o alrededor de 25-30 en las competiciones de «soluciones óptimas» (donde se valora el menor número de movimientos y no el tiempo). Así que 30 movimientos es una marca que no está nada mal.

Relacionado:

Compartir en Flipboard Publicar / Tuitear Publicar