La parte más conocida de este proyecto relacionado con los Sudokus se llama Super Sudoku, y lo creó Tom Nick para su abuela, que se quejaba de la escasa dificultad de los que encontraba en las revistas. Esto le llevó a una aventurilla más interesante, que cuenta en una larga anotación: Cómo generar sudokus por pura diversión.
Es una gran explicación paso a paso de cómo se resuelven sudokus, y también cómo se generan, y los algoritmos relacionados. Y además el código es libre y está en Github. Así que puedes descargarlo, examinarlo, modificarlo, mejorarlo y usarlo como te plazca.
En el artículo avanza paso a paso del mismo modo que haría cualquier programador humano: probando primero por fuerza bruta, luego buscando una pequeña optimización (como es dejar de usar la fuerza bruta en cuanto se detecta que el sudoku es imposible) y luego imitando cómo resuelven los sudokus los humanos, en este caso intentando resolver primero las regiones que tienen menos opciones.
De aquí se llega al algoritmo AC-3 que está relacionado con la consistencia y las restricciones a la hora de resolver un problema. Lo cual va mucho más allá de los meros pasatiempos de numeritos o letras y colores. En los sudokus más avanzados, por ejemplo, puede suceder que haya varias restricciones; usar algoritmos como el AC-3 permite dar con la solución más fácilmente.
Finalmente hay una parte dedicada a la generación de sudokus, pero ahí la complicación es más intrigante todavía: cómo percibimos los humanos la …