El Hidato (o Hidoku) es un popular rompecabezas de lógica inventado por el matemático israelí Dr. Gyora Benedek. A primera vista recuerda al Sudoku o a un laberinto numérico, pero su dinámica se basa en construir un camino continuo a través de una cuadrícula.
El reto consiste en rellenar un tablero de $9 \times 9$ con los números consecutivos del 1 al 81 de modo que cada número sea vecino del siguiente, ya sea en horizontal, vertical o diagonal.
Dado un tablero de dimensiones $F \times C$ (en nuestro caso $9 \times 9$, con $N=F \cdot C=81$ casillas) en el que algunas celdas ya contienen valores fijos iniciales, debemos determinar la posición de los números restantes cumpliendo las siguientes reglas:
Rango de números: Cada celda debe contener un número entero único perteneciente al conjunto ${1, 2, \dots, N}$.
Conectividad de 8 vecinos: Dos números consecutivos $k$ y $k+1$ deben colocarse en celdas adyacentes horizontal, vertical o diagonalmente (distancia de Chebyshev igual a 1).
Pistas iniciales: Los números prefijados en el tablero inicial deben respetarse estrictamente en su posición original.
Unicidad: Cada casilla contiene sólo un número y cada número aparece en el tablero exactamente una vez.
La pregunta decisiva que debemos responder es: ¿Existe una asignación válida de posiciones para la secuencia completa del 1 al 81 y cómo podemos encontrarla automáticamente?
Puedes considerar el siguiente ejemplo:
¿Te animas a resolverlo de forma lógica antes de enfrentarte a su modelización?
Solución del reto
Resolviendo el modelo de optimización lineal binaria con las pistas iniciales proporcionadas, el optimizador puede encontrar el único camino continuo que conecta de forma válida todos los números del 1 al 81:
La clave de la eficiencia de esta formulación reside en las restricciones de adyacencia consecutiva: al exigir que la celda activa para $k$ fuerce la activación de $k+1$ en su entorno de 8 vecinos, el optimizador descarta rápidamente ramas del árbol de búsqueda que romperían el camino continuo.
Este juego de lógica se puede formular de manera elegante y sistemática como un problema de Optimización Lineal binaria. ¿Te atreves a intentarlo?
Para modelar el Hidato como un problema de optimización lineal binaria, representamos la colocación de cada número en el tablero mediante variables binarias de tres índices: posición vertical, posición horizontal y el valor numérico asignado.
Conjuntos de índices
\(\mathcal{I} = \{1, 2, \dots, F\}\): Filas del tablero.
\(\mathcal{J} = \{1, 2, \dots, C\}\): Columnas del tablero.
\(\mathcal{K} = \{1, 2, \dots, N = F \times C\}\): Secuencia de números consecutivos a colocar.
\(\mathcal{N}(i,j) = \{(r,c) \in \mathcal{I} \times \mathcal{J} : (r,c) \neq (i,j), \; |r-i| \leqslant 1, \; |c-j| \leqslant 1\}\): Conjunto de celdas adyacentes (vecindad de 8 vecinos) a la casilla $(i,j)$.
Parámetros
\(F_{ijk} = 1\) si la casilla $(i,j)$ tiene fijado el número $k$ como pista inicial, y $0$ en caso contrario.
Variables de decisión
\(x_{ijk} = 1\) si la casilla $(i,j) \in \mathcal{I} \times \mathcal{J}$ contiene el número $k \in \mathcal{K}$, y $0$ en caso contrario.
Dado que se trata de un problema de factibilidad (encontrar cualquier configuración que cumpla todas las reglas del juego), la función objetivo es arbitraria:
Función objetivo
\[\min z = 0\]
Definimos las reglas del Hidato como restricciones lineales:
Asignación única por celda:
Cada celda del tablero debe contener exactamente un número:
\[x_{ijk} \in \{0, 1\} \quad \forall i \in \mathcal{I}, \; \forall j \in \mathcal{J}, \; \forall k \in \mathcal{K}\]
Código fuente
La implementación en Python utilizando la librería Gurobipy para resolver este problema de optimización se encuentra disponible en el repositorio de GitHub.
¿Quieres seguir explorando el mundo de la Investigación Operativa? Descubre más posts sobre el tema aquí.
Si encontró esto útil, puede citarlo como:
Martín-Campo, F. Javier (Jun 2026). El laberinto numérico de Hidato. https://www.fjmartincampo.com/blog/2026/hidato/.
o en formato BibTeX:
@misc{martín-campo2026el-laberinto-numérico-de-hidato,title={El laberinto numérico de Hidato},author={Martín-Campo, F. Javier},year={2026},month={Jun},url={https://www.fjmartincampo.com/blog/2026/hidato/}}
Le gustó leer este artículo?
Aqui están algunos artículos relacionados que le pueden gustar: