El Binary Sudoku (también conocido como Takuzu o Binairo) es un pasatiempo de lógica que se juega sobre un tablero de cuadrícula de $n \times n$ casillas, donde $n$ es un número par. El objetivo consiste en rellenar todas las casillas vacías con únicamente ceros y unos respetando tres reglas fundamentales:
Equilibrio: Cada fila y cada columna debe contener exactamente el mismo número de ceros que de unos.
Limitación de consecutivos: No puede haber más de dos números iguales de forma consecutiva (ni horizontal ni verticalmente).
Unicidad: Ningún par de filas ni ningún par de columnas pueden ser idénticos entre sí.
Un puzzle de Binary Sudoku comienza con algunas casillas ya rellenas con valores iniciales. A continuación tienes un ejemplo de tablero de $8 \times 8$:
¿Te animas a resolverlo de forma lógica antes de enfrentarte a su modelización?
Solución del reto
La solución del Binary Sudoku presentado anteriormente viene dada por:
El Binary Sudoku se puede plantear como un modelo de optimización lineal binaria, ¿te atreves a intentarlo?
Para explicar cómo resolver Binary Sudoku de forma sistemática, podemos usar un modelo de optimización lineal binaria. Primero definimos los elementos del modelo:
Conjuntos de índices
\(\mathcal{R} = \{1, \dots, n\}\): Filas del tablero.
\(\mathcal{C} = \{1, \dots, n\}\): Columnas del tablero.
\(\mathcal{I} \subset \mathcal{R} \times \mathcal{C}\): Conjunto de posiciones con valor inicial fijo.
Parámetros
\(n\): Dimensión del tablero (debe ser un número par).
\(A_{rc} \in \{0, 1\}\): Valor predeterminado en la casilla $(r,c) \in \mathcal{I}$.
Variables de decisión
\(x_{rc} = 1\) si la casilla de la fila $r \in \mathcal{R}$ y columna $c \in \mathcal{C}$ contiene un $1$, y $0$ si contiene un $0$.
\(z_{rr'c} \in \{0,1\}\): Variable auxiliar que indica si la fila $r \in \mathcal{R}$ y la fila $r’ \in \mathcal{R}$ difieren en la columna $c \in \mathcal{C}$ ($1 \leqslant r < r’ \leqslant n$).
\(w_{cc'r} \in \{0,1\}\): Variable auxiliar que indica si la columna $c \in \mathcal{C}$ y la columna $c’ \in \mathcal{C}$ difieren en la fila $r \in \mathcal{R}$ ($1 \leqslant c < c’ \leqslant n$).
Dado que se busca encontrar una configuración válida (problema de factibilidad), la función objetivo es arbitraria:
Función objetivo
\[\min z = 0\]
Ahora definimos las reglas del Sudoku Binario como restricciones:
Máximo dos dígitos iguales consecutivos (sin tríos horizontales ni verticales):
\[1 \leqslant x_{rc} + x_{r,c+1} + x_{r,c+2} \leqslant 2 \quad \forall r \in \mathcal{R}, \; \forall c \in \{1,\dots,n-2\}\] \[1 \leqslant x_{rc} + x_{r+1,c} + x_{r+2,c} \leqslant 2 \quad \forall r \in \{1,\dots,n-2\}, \; \forall c \in \mathcal{C}\]
No hay dos filas idénticas:
\[z_{rr'c} \geqslant x_{rc} - x_{r'c} \quad \forall 1 \leqslant r < r' \leqslant n, \; \forall c \in \mathcal{C}\] \[z_{rr'c} \geqslant x_{r'c} - x_{rc} \quad \forall 1 \leqslant r < r' \leqslant n, \; \forall c \in \mathcal{C}\] \[\displaystyle \sum_{c \in \mathcal{C}} z_{rr'c} \geqslant 1 \quad \forall 1 \leqslant r < r' \leqslant n\]
No hay dos columnas idénticas:
\[w_{cc'r} \geqslant x_{rc} - x_{rc'} \quad \forall 1 \leqslant c < c' \leqslant n, \; \forall r \in \mathcal{R}\] \[w_{cc'r} \geqslant x_{rc'} - x_{rc} \quad \forall 1 \leqslant c < c' \leqslant n, \; \forall r \in \mathcal{R}\] \[\displaystyle \sum_{r \in \mathcal{R}} w_{cc'r} \geqslant 1 \quad \forall 1 \leqslant c < c' \leqslant n\]
Dominio de las variables
\[x_{rc} \in \{0,1\} \quad \forall r \in \mathcal{R}, \; \forall c \in \mathcal{C}\] \[z_{rr'c} \in \{0,1\} \quad \forall 1 \leqslant r < r' \leqslant n, \; \forall c \in \mathcal{C}\] \[w_{cc'r} \in \{0,1\} \quad \forall 1 \leqslant c < c' \leqslant n, \; \forall r \in \mathcal{R}\]
Código fuente
La implementación en Python del modelo de optimización presentado en este post, así como la instancia utilizada en el ejemplo, están disponibles 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 (Jul 2026). Más allá del 0 y el 1, el sudoku binario. https://www.fjmartincampo.com/blog/2026/binarysudoku/.
o en formato BibTeX:
@misc{martín-campo2026más-allá-del-0-y-el-1-el-sudoku-binario,title={Más allá del 0 y el 1, el sudoku binario},author={Martín-Campo, F. Javier},year={2026},month={Jul},url={https://www.fjmartincampo.com/blog/2026/binarysudoku/}}
Le gustó leer este artículo?
Aqui están algunos artículos relacionados que le pueden gustar: