Sudoku
Sudoku
Recibido: 30 de enero de 2012. cion 5 se dan los resultados obtenidos por el algorit-
Aceptado: 22 de marzo de 2012. mo de Recocido Simulado al resolver Sudokus de gra-
do de dicultad facil, media, difcil y muy difcil. Fi-
Resumen
nalmente se dan las conclusiones de este trabajo.
El Sudoku es un pasatiempo que en los ultimos anos
se ha popularizado y para algunas personas se ha 1. El Problema del Sudoku
vuelto adictivo, quiza porque las reglas para resolver- El objetivo del Sudoku es llenar una cuadrcula de
lo son muy simples. En este artculo se propone la so- n2 n2 celdas, dividida en n2 subcuadrculas de nn
lucion a un Sudoku como un problema de optimiza- en donde se deben colocar los enteros del 1 a n2 de
cion combinatoria y se resuelve utilizando el algorit- acuerdo a los siguientes tres reglas:
mo de Recocido Simulado. Se presenta experiencia
computacional en la solucion de Sudokus que apare- 1. Las celdas de cada uno de los renglones deben
cen en periodicos de circulacion nacional y algunas contener los enteros de 1 a n2 exactamente una
paginas de Internet con diferentes grados de dicul- vez.
tad que van desde facil, media, difcil y muy difcil. 2. Las celdas de cada una de las columnas deben
contener los enteros de 1 a n2 exactamente una
Palabras Clave: Sudoku, Recocido Simula- vez.
do, metaheursticas, heursticas, optimizacion 3. Cada una de las n2 subcuadrculas deben conte-
combinatoria. ner los enteros de 1 a n2 exactamente una vez.
Keyworks: Sudoku, Simulated annealing, metaheu- Estas reglas tan simples son quiza lo que ha he-
ristics, heuristics, combinatorial optimization. cho que el juego se popularice y se haya hecho adic-
Introduccion tivo para algunas personas. Al entero n se le lla-
El Sudoku es un pasatiempo cuyo objetivo es lle- ma el orden del Sudoku. En la Figura 1 se da un
nar una cuadrcula generalmente de 9 9 celdas ejemplo de un Sudoku de orden 3, donde se pue-
(81 celdas en total) dividida en subcuadrculas de de observar que existen algunas celdas prellenadas
3 3 con los numeros del 1 al 9, partiendo de algu- con los enteros del 1 al 32 y el jugador debe com-
nas celdas previamente asignadas y siguiendo tres re- pletar la cuadrcula siguiendo las tres reglas descri-
glas muy sencillas. El pasatiempo aparece por pri- tas anteriormente. Cada Sudoku, bien planteado, tie-
mera vez alrededor de 1970 en Nueva York, Estados ne solucion valida unica y no requiere usar tecni-
Unidos, en la revista de juegos y pasatiempos Dell cas de ensayo y error o adivinar sino que se re-
con el nombre de colocar el numero. Posteriormen- suelve empleando las tres reglas y por medio del
te, en 1984, aparece este pasatiempo en Japon con el razonamiento.
nombre que actualmente se conoce de Sudoku, don- El Sudoku de la Figura 1 tiene solucion valida uni-
de Su signica numero y Doku signica indivi- ca y esta catalogado entre los muy difciles de resol-
dualmente, en japones. A partir de ah, se populari- ver. Generalmente en los diarios de circulacion nacio-
za hacia todo el mundo. El juego tiene sus orgenes nal o internacional, as como, en revistas y otros me-
en la idea de cuadrados latinos que introduce el ma- dios impresos aparecen Sudokus de orden 3 y en al-
tematico Euler en 1783. En Mexico hay muchas re- gunos casos de orden 4 en donde aparece alguna cla-
vistas de pasatiempos y periodicos de circulacion na- sicacion que va desde facil hasta muy difcil y tiene
cional tales como El Universal, Reforma, etc., que in- que ver con el numero de celdas prellenadas y su co-
cluyen dentro de sus paginas Sudokus. Este artcu- locacion dentro de la cuadrcula. En el caso del Su-
lo se desarrolla de la siguiente manera: en la sec- doku de la Figura 1, el numero de celdas prellena-
cion 1 se dene el problema del Sudoku y se dan al- das es de 17, y aparentemente, es el numero mni-
gunos lineamientos para resolverlo. En la seccion 2 se mo de celdas prellenadas que se pueden dar para Su-
introduce brevemente la tecnica de Recocido Simu- dokus de orden 3, ya que con menos el Sudoku podra
lado y su algoritmo asociado. La seccion 3 se imple- tener mas de una solucion valida.
menta el algoritmo de Recocido Simulado al Sudo-
ku, se dene una solucion factible, se asigna un cos- Para ilustrar como se resuelve un Sudoku, conside-
to a cada solucion factible y plantea el problema de re la celda en donde se coloco el smbolo , en la Fi-
resolver el Sudoku como un problema de optimiza- gura 2. Las celdas donde aparecen los 1 (en negri-
cion combinatoria. En la seccion 4 se especica el al- tas) hacen que las celdas marcadas con de la sub-
goritmo de Recocido Simulado al Sudoku. La sec- cuadrcula donde aparece la letra no puedan co-
Solucion al acertijo del Sudoku. . . M. A. Gutierrez A., J. Goddard C., S. G. de los Cobos S. 33
Inicio
c0 , k 0, equilibrio, transiciones 0
Solucion inicial:x0
Costo= f (x0 )
Hacer
Hacer hasta transiciones = equilibrio
Seleccione xj V (xi )
Si f (xj ) < f (xi ) entonces
xj xi
Otro caso
f (xj )f (xi )
Si exp ck
random[0, 1) entonces
xj xi
transiciones = transiciones + 1
Continua
k =k+1
ck+1 = ck
Hasta paro = cierto
Fin
cion inicial no es una solucion valida para el Sudo- El costo total de una solucion factible la deniremos
ku ya que las reglas 1 y 2 no se cumplen. como la suma de las penalizaciones asociadas a las -
las y columnas. Para la solucion factible de la Figu-
3.2. Costo asociado a una solucion ra 7 su costo total es de 41 unidades. Es facil obser-
Vamos a asociar un costo (o una penalizacion) a ca- var que si obtenemos una solucion factible con cos-
da solucion factible que reeje que tan cerca o le- to total igual a cero, esta solucion factible debe ser
jos este de resolver el Sudoku. Entre mas violaciones una solucion valida para el Sudoku. Por lo tanto, el
tengamos de las reglas 1 y 2, la penalizacion sera ma- objetivo es ir mejorando las soluciones factibles has-
yor. Se asocia una penalizacion por cada una de las ta encontrar una solucion cuyo costo total sea igual
las y columnas. Deniremos la penalizacion aso- a cero.
ciada a una la como el numero de enteros faltan-
tes en la la de entre los enteros 1, 2,. . . , 9 y de la
misma manera la penalizacion asociada a la colum-
na es el numero de enteros faltantes de entre los ente-
ros 1, 2,. . . , 9 en la columna. Por ejemplo para la so-
lucion factible de la Figura 7 la penalizacion de la -
la 1 es igual a 2 ya que no aparecen el 2 y el 6. Y
la penalizacion asociada a la columna 5 es 4 ya que
no aparecen los enteros 1, 2, 5 y 6. Para la solu-
cion factible de la Figura 7 las penalizaciones aso-
ciadas se dan en la Tabla 1.
ciones 1 y 2 de la subseccion 3.1) y cada solucion tie- 3.4. Actualizacion de la funcion de costo
ne un costo asociado. La solucion valida del Sudo- Si tenemos una solucion factible y a partir de es-
ku se obtiene cuando se descubre una solucion con ta se genera una solucion factible vecina, como se
costo igual a cero. Si el Sudoku esta bien plantea- describe en la subseccion 3.3, el costo total de es-
do, debe de existir exactamente una solucion con cos- ta nueva solucion se puede modicar, pero no es ne-
to igual a cero. cesario recalcular las penalizaciones en todas las -
las y columnas para obtener el costo total de la nue-
va solucion. Existen dos casos, tanto por la como
por columna. Para el calculo de las penalizaciones
por la: si las celdas que intercambian valores apa-
recen en la misma la, la penalizacion por la que-
da exactamente igual ya que el intercambio afecta
a una sola la y este intercambio no agrega ni eli-
mina ningun entero de esa la, los enteros faltan-
tes, si es que los hay, seguiran siendo los mismos.
Por otro lado, si se intercambian valores en dos -
las diferentes, entonces la actualizacion de la penali-
zacion en la la se puede hacer en dos pasos: prime-
ro, si el entero que se elimina (se cambia por el otro)
ya aparece en otra posicion en la la, quitarlo no ha-
ce que falte y por lo tanto no afecta a la penaliza-
Figura 7. Solucion inicial obtenida por el procedimiento.
cion, en caso contrario, se aumenta en uno la penali-
zacion; segundo, si el entero que se agrega ya existe
3.3. Soluciones vecinas en otra posicion en la la, agregarlo no afecta la pe-
Dada una solucion factible actual, se desea gene- nalizacion de la la, en caso contrario, la penaliza-
rar otra solucion factible, a partir de la primera, que cion disminuye en uno. La actualizacion por colum-
cambie marginalmente. Para esto denimos las so- na es exactamente igual que para la la.
luciones vecinas como todas aquellas que dieren de
la actual al hacer un intercambio de los valores de
dos celdas no jas en la misma subcuadrcula. Ob- Por ejemplo para la actualizacion del costo de la so-
serve que con esta denicion se sigue cumpliendo lucion factible vecina dada en la Figura 8. En la -
que la nueva solucion es factible ya que al hacer es- la 5 primero se elimina el entero 5, pero como ya apa-
te cambio se cumplen las condiciones 1 y 2 de la sub- rece este entero en la celda (5,3), no afecta su eli-
seccion 3.1. Por ejemplo, si se seleccionan las cel- minacion, por otro lado se agrega el entero 3 que
das (5,4) y (6,5), de la solucion inicial de la Figu- ya aparece en la celda (5,8) y por lo tanto no afec-
ra 7 y se intercambian sus valores, se obtiene la so- ta el valor de la penalizacion al agregarlo, en su-
lucion vecina dada en la Figura 8. ma la penalizacion de la la 5 en la nueva solu-
cion es igual a la de la solucion inicial y su valor
es 1. Para la la 6, se hace el intercambio contra-
rio, se elimina el valor 3 que no aparece en otro si-
tio de la la y por lo tanto la penalizacion se aumen-
ta en 1, por otro lado se agrega el entero 5 que no
aparece en ningun otro lado de la la y la penaliza-
cion se disminuye en 1, nalmente la suma algebrai-
ca de ambas operaciones es +1 1 = 0 y la penaliza-
cion de la la 6 es igual a 3. Para el caso de las colum-
nas: comencemos con la columna 4, se elimina el en-
tero 5, como tambien aparece en la celda (9,4), es-
ta eliminacion no afecta la penalizacion, por otro la-
do, se agrega el entero 3 que no aparece en el res-
to de la columna as que la penalizacion disminu-
ye en 1 y por lo tanto la suma algebraica de am-
Figura 8. Solucion vecina de la inicial. bas operaciones es 0 1 = 1, as que, la penaliza-
Solucion al acertijo del Sudoku. . . M. A. Gutierrez A., J. Goddard C., S. G. de los Cobos S. 37
1 Inicio
2 xi x0
3 equilibrio N OF IJA2 , 0.95, 0.97, 0.99
4 transiciones 0, c0 f, k 0
5 Hacer
6 Hacer hasta transiciones = equilibrio
7 Seleccione al azar xj V (xi )
8 Si f (xj ) = 0 entonces SALIR (solucion valida del sudoku)
9 Si f (xj ) < f (xi ) entonces
10 xj xi
11 Otro caso
f (xj )f (xi )
12 Si exp ck
random[0, 1) entonces
13 xj xi
14 transiciones = transiciones + 1
15 Continua
16 ck+1 ck , k k + 1, transiciones 0
17 Hasta (No hay cambio de solucion)
18 Fin
ku que se esta tratando de resolver no tiene solu- do de dicultad. Para todas las corridas prime-
cion valida. ro se calcula la desviacion estandar de los cos-
tos de cada Sudoku y este valor se le asigno al va-
5. Resultados lor inicial del parametro de control. Los tiem-
Se tomaron Sudokus que aparecen en periodi- pos promedio de solucion entre los diferentes nive-
cos de circulacion nacional tales como Refor- les s vara signicativamente: de un tiempo pro-
ma, El Universal, etc., y en portales de Internet co- medio de 0.011 segundos, para el nivel facil; se du-
mo en http://www.gamehouse.com/onlinegames/, plica en el nivel medio (.024 segundos), y se vuel-
http://www.sudoweb.com/, http://Sudoku.zeit.de/, ve a duplicar el tiempo entre el nivel medio y
etc. en donde se catalogan en niveles de dicul- difcil. La diferencia ya es mas signicativa en-
tad como facil, medio, difcil y muy difcil. Se co- tre el nivel difcil y muy difcil que se triplica. Tam-
rrieron 100 Sudokus de cada nivel. Los resulta- bien se probaron varios valores para el parame-
dos obtenidos aparecen en la Tabla 2 en don- tro de la ecuacion (2) para los diferentes niveles ob-
de se observa que el costo promedio para Sudo- teniendose valores de idoneos para cada gra-
kus de nivel facil es mucho menor (en diez uni- do de dicultad. Para facil y medio fue sucien-
dades) que Sudokus de nivel medio hacia arri- te tomar el valor de = 0.95. Para el caso de ni-
ba ya que el numero de celdas jas es mu- vel de dicultad difcil se tomo = 0.97 y pa-
cho mayor que los demas y por lo tanto el nume- ra el nivel de dicultad muy difcil se tomo
ro de errores al asignar valores aleatoriamen- = 0.99. Con estos valores se garantizo la ob-
te al resto de las celdas no crece mucho co- tencion de una solucion valida a los Sudokus
mo en el caso de los otros niveles que no vara mu- resueltos.
cho el numero de celdas jas (en promedio en-
tre 22 y 25). Tambien se puede observar que la va- Conclusiones
riacion del numero de celdas jas entre los nive- En este artculo se da una descripcion del Sudoku y
les medio, difcil y muy difcil no es mucho. Las des- se plantea como un problema de optimizacion com-
viaciones estandar promedio de los costos en- binatoria en donde se dene un espacio de solucio-
tre los diferentes niveles de dicultad no es muy sig- nes factibles y a cada solucion se le asocia un cos-
nicativa ya que va de alrededor de 9 a 10 uni- to. Se desarrolla un algoritmo de Recocido Simula-
dades de manera creciente con respecto al gra- do para resolver el Sudoku, la solucion valida al Su-
Solucion al acertijo del Sudoku. . . M. A. Gutierrez A., J. Goddard C., S. G. de los Cobos S. 39
doku es aquella cuyo valor objetivo es igual a ce- 4. Moraglio A., Togelius J., Geometric parti-
ro. Se implemento el algoritmo y se corrieron instan- cle swarm optimization for the Sudoku puzz-
cias obtenidas de periodicos, revistas y algunas pagi- le, Proceedings of the 9th annual conferen-
nas de Internet cuyo grado de dicultad iba de facil ce on Genetic and evolutionary computation,
a muy difcil, obteniendose siempre la solucion vali- 118-125, 2007.
da en un tiempo muy pequeno. 5. Yato T., Seta T. Complexity and completeness
of nding another solution and its application to
Referencias
puzzles. In Proceedings of the National Meeting
1. Colbourn C. The complexity of completing par- of the Information Processing Society of Japan
tial latin squares. Discrete Applied Mathematics, (IPSJ), 2002.
(8):25-30, 1984.
2. Kirkpatrick S., Gelatt C. D., Vecchi, M. P.,
Optimization by Simulated Annealing, Science,
(220):671-680. May, 1983.
3. Lynce I., Ouaknine J. Sudoku as a SAT problem, cs
Proceedings of the Ninth International Sympo-
sium on Articial Intelligence and Mathematics,
Springer, 2006.