Está en la página 1de 12

Revista Integracin

Escuela de Matemticas
Universidad Industrial de Santander
Vol. 24, No. 1, 2006, pg. 1324
La dicultad de jugar sudoku
J. Andrs Montoya

Resumen. Se prueba que el juego sudoku es NPcompleto, si se consideran


tableros de tamao n
2
para todo nmero natural n. Esto explica, en parte, por
qu es que resulta tan difcil jugar sudoku.
A Mamadimitriou e Hijodimitriou
1. Introduccin
Esta artculo tiene fundamentalmente dos objetivos, a saber:
1. Revisar los conceptos fundamentales de la complejidad computacional.
2. Usar tales conceptos para analizar la complejidad intrnseca de jugar sudoku.
Todo aquel que haya enfrentado el reto de completar un tablero de sudoku ha sentido
que no existe una manera inteligente de solucionar tal puzzle, esto es, que la nica
manera de completar el tablero es probar todas las posibles opciones, que son muy
numerosas, hasta encontrar una que satisfaga los requerimientos. Lo anterior indica
que, cuando un jugador promedio se enfrenta a un tablero de sudoku, la nica estrategia
a la que puede hechar mano es a la bsqueda exhaustiva en el espacio de posibles
soluciones, esto es, a la bsqueda exhaustiva en el conjunto de todos los posibles
completamientos del tablero. El problema con esta metodologa (de fuerza bruta) es
que el espacio de posibles soluciones es enorme, y esto hace que el tiempo utilizado
en completar un tablero sea excesivamente largo. Una pregunta natural que podemos
hacernos es la siguiente:
Existe una estrategia inteligente (por lo dems, an no descubierta), o por el con-
trario el sudoku es un juego intrnsicamente difcil?
En este artculo intentamos dar una respuesta a esta pregunta. La respuesta que el
lector encontrar en este artculo es una repuesta parcial y es la siguiente:
Si NP ,= P, el sudoku es un juego intrnsicamente difcil.
0
Palabras y frases claves: mquinas de Turing, clases de complejidad, algoritmos ecientes, costos
computacionales.
0
MSC2000: Primaria: 47J35?????. Secundaria: 34A12, 65M60, 65N30????.
0
Escuela de Matemticas, Universidad Industrial de Santander, Bucaramanga, Colombia.
e-mail: amontoyaa@googlemail.com.
13
14 J. Andrs Montoya
1.1. Organizacin del artculo
El artculo esta organizado en 6 secciones, incluyendo la introduccin.
En la seccin 2 se presenta la nocin general de reduccin entre problemas computa-
cionales y la nocin mas especca de reduccin de Karp.
En la seccin 3 se dene la clase NP.
En la seccin 4 se introduce la nocin de problema NPcompleto.
Finalmente, en la seccin 5 se enuncia y prueba el teorema principal de este artcu-
lo, a saber, que un cierto problema combinatorio al que llamamos sudoku, (y que
corresponde de manera apropiada al juego sudoku), es NPcompleto.
En la ltima seccin de este artculo, la seccin 6, se presentan algunas conclusiones.
2. Reducciones entre problemas computacionales
En esta seccin introduciremos las dos nociones bsicas de la complejidad computa-
cional, a saber, la nocin de reduccin entre problemas computacionales y la nocin
de problema ecientemente resoluble (o lo que es lo mismo, la clase P)
1
.
Para empezar daremos una denicin formal de problema computacional, para lo
cual usaremos una convencin usual en teora de la complejidad, consistente en re-
stringir nuestra denicin al caso particular de los problemas de decisin.
Sea A 0, 1

. El conjunto A determina un problema de decisin al que llamaremos


L
A
y que se dene de la siguiente manera
Entrada: x 0, 1

Problema: Decida si x L
A
Todo problema de decisin es un problema de la forma L
A
para algn A 0, 1

.
Pero no todo problema de decisin es un problema interesante: los problemas de de-
cisin interesantes son aquellos problemas L
A
tales que el conjunto A que los determina
es un conjunto innito, denido por alguna propiedad natural expresable en una lgica
adecuada.
Veamos algunos ejemplos:
Ejemplo 2.1 (Primos).
Entrada: n N
Problema: Decida si n es un nmero primo
Ejemplo 2.2 (Grafoisomorsmo).
Entrada: (G, H), donde G y H son grafos
1
La letra P viene de la expresin inglesa Polynomial time, referida al tiempo de cmputo necesario.
[Revista Integracin
La dicultad de jugar sudoku 15
Problema: Decida si G y H son isomorfos
Ejemplo 2.3 (SAT
2
).
Input: , donde es una frmula booleana
Problema: Decida si es satisfactible
El lector habr notado que las posibles entradas (o instancias) de los tres problemas
anteriores no son elementos del conjunto 0, 1

. Lo que sucede es que todo objeto


nito, por ejemplo todo nmero natural, o todo grafo, o toda frmula booleana, puede
ser codicado como una cadena de ceros y unos, de manera tal que la codicacin es
inyectiva y de manera tal que el tamao del cdigo binario es similar al tamao del
objeto as codicado. En adelante, a lo largo del texto no prestaremos mayor atencin
a la manera como codicamos en binario un objeto combinatorio nito, o mejor una
clase de tales objetos; nos bastar saber que existen codicaciones ecientes. As pues,
cuando denamos un problema computacional o cuando consideremos las posibles
instancias de un problema, pensaremos en ellas como lo que son (nmeros naturales,
grafos, frmulas), y no en sus cdigos binarios.
Del lector supondremos alguna familiaridad con el anlisis de algoritmos y con el
modelo de mquina de Turing, lo cual nos permite suponer que maneja el concepto de
tiempo de cmputo de un algoritmo.
Denicin 2.4 (Reducciones de Karp). Sean L
1
y L
2
dos problemas computacionales;
diremos que L
1
es Karp-reducible a L
2
si y solo si existe un algoritmo M tal que:
1. el tiempo de cmputo de M es polinomial;
2. para toda instancia x del problema L
1
, el algoritmo M calcula una instancia y
del problema L
2
tal que x L
1
si y solo si y L
2
.
Para indicar que un problema L
1
es Karp-reducible a un problema L
2
, usaremos la
notacin L
1
_
m
L
2
.
Veamos un ejemplo de reduccin de Karp. Antes debemos denir un par de proble-
mas.
Denicin 2.5. El problema del clique
3
L
clique
es el siguiente problema de decisin
Entrada: (G, k), G es un grafo y k N
Problema: Decida si G contiene un clique de tamao k
Denicin 2.6. El problema del conjunto independiente L
IS
es el siguiente problema
de decisin
2
Por las letras iniciales de SATisfactibilidad booleana o proposicional.
3
En ingls clique designa un grupo cerrado de personas con intereses especcos. El prstamo lxico
se ha generalizado en espaol en la teora de complejidad computacional, as que aqu lo usaremos
libremente.
Vol. 24, No. 1, 2006]
16 J. Andrs Montoya
Entrada: (G, k), G es un grafo y k N
Problema: Decida si G contiene un conjunto independiente de tamao k
Es fcil ver que el problema del clique es Karp-reducible al problema del conjunto
independiente. Considrese el siguiente algoritmo M con entrada (G, k):
1. M calcula el grafo dual de G, llammoslo G

.
2. M calcula el par (G

, k).
Primero ntese que G contiene un clique de tamao k si y solo si G

contiene un
conjunto independiente de tamao k, esto es,
(G, k) L
clique
si y slo si (G

, k) L
IS
.
Para terminar, ntese que el tiempo de cmputo del algoritmo es polinomial (incluso
lineal) en el tamao de la entrada, |(G, k)|, el cual se dene de la siguiente manera:
|(G, k)| := [V (G)[ +[E (G)[ +k.
La teora de la complejidad podra ser denida como la disciplina que intenta:
1. realizar una distincin adecuada entre problemas fciles y problemas difciles;
2. clasicar problemas especcos como fciles o difciles, segn sea el caso.
Es por ello que una de las nociones fundamentales es la nocin de problema factible.
Denicin 2.7. Diremos que un problema L es factible si y slo si existe un algoritmo
M tal que:
1. el tiempo de cmputo de M es polinomial;
2. el algoritmo M resuelve el problema L.
Proposicin 2.8. Si L
1
_
m
L
2
y L
2
es factible, entonces L
1
es factible.
Denicin 2.9. La clase P es la clase de problemas factibles (feasible en ingls), o de
manera ms precisa, P es la clase de los problemas que pueden ser resueltos en tiempo
polinomial.
En la denicin anterior hemos identicado la nocin de ser ecientemente decidible
con la nocin de ser decidible en tiempo polinomial. Esta es, por supuesto, una iden-
ticacin arbitraria, que no obstante asumiremos como la asumen todos los miembros
de la complexity-community.
Denicin 2.10. Una clase de complejidad ( es simplemente un conjunto de problemas
de decisin cerrado bajo reducciones de Karp.
[Revista Integracin
La dicultad de jugar sudoku 17
Una de las nociones centrales en teora de la complejidad es la nocin de problema
completo para una cierta clase. Es posible armar que la teora de la complejidad nace
en el ao de 1971, cuando Steven Cook publica su famoso artculo [2], en el cual dene
las nociones de reduccin y de completez aplicadas especcamente a la clase NP (del
ingls Non-deterministic Polynomial time).
Denicin 2.11. Dada / un conjunto de problemas de decisin, la Karp-clausura de
/ es la clase de complejidad /)
m
denida por
/)
m
:=

T 0, 1

: Existe L / tal que T _


m
L

.
Denicin 2.12. Dada una clase de complejidad (, diremos que L es (-duro si y slo
si ( = L)
m
. Si adicionalmente L (, diremos que L es (-completo.
Muchos de los problemas centrales en teora de la complejidad caen en una de las
siguientes dos categoras:
1. (Problema de la contenencia) Dadas (
1
y (
2
dos clases de complejidad, prubese
que (
1
(
2
.
2. (Problema de la separacin) Dadas (
1
y (
2
dos clases de complejidad, prubese
que (
1
(
2
.
La nocin de problema completo es una nocin que puede ayudar a resolver casos
particulares de los dos problemas anteriores. Ntese que
1. Si L es (
1
-completo, entonces (
1
(
2
si y solo si L (
2
.
2. Si L es (
2
-completo, entonces (
1
(
2
si y solo si L / (
1
.
La nocin de reduccin de Karp es una de las muchas posibles nociones de reduccin,
solo una de las muchas que han sido estudiadas en profundidad. De la casi imnu-
merable lista de reducciones estudiadas en teora de la complejidad, se destacan dos
nociones naturales y robustas, a saber, la nocin de reduccin de Karp y la nocin de
reduccin de Turing. En este breve artculo consideraremos nicamente el primer tipo
de reduccin.
3. La clase NP
En esta seccin introduciremos la clase NP. Existen muchas maneras de denir NP;
nosotros hemos elegido solo una de entre las muchas opciones posibles. Para empezar
consideremos los siguientes problemas computacionales.
Problema (CIRCSAT
4
).
Entrada: C un circuito booleano.
4
Del ingls CIRCuit SATisability.
Vol. 24, No. 1, 2006]
18 J. Andrs Montoya
Problema: Decida si C es satisfactible, esto es, decida si existe un modelo para
C.
Denicin 3.1. Dado un grafo G, un ajuste en G es una coleccin e
1
, . . . , e
n
de
aristas tal que:
1. si i ,= j, e
i
y e
j
no tienen extremos comunes;
2. todo vrtice de G es el extremo de alguna de las aristas en e
1
, . . . , e
n
.
Problema (AJUSTE).
Entrada: G un grafo
Problema: Decida si G tiene un ajuste
Los dos problemas anteriores tiene en comn el ser solubles en tiempo polinomial
no determinista. Qu quiere decir lo anterior? Considere los siguientes algoritmos.
Algoritmo 3.2 (CIRCSAT). Con entrada C, donde C es un circuito booleano con k
entradas:
1. Adivine v
1
, . . . , v
k
, donde v
1
, . . . , v
k
0, 1.
2. Verique que el vector booleano (v
1
, . . . , v
k
) satisface el circuito C.
3. Acepte si este es el caso, en caso contrario rechace.
Algoritmo 3.3 (AJUSTE). Con entrada G.
1. Adivine un conjunto de aristas e
1
, . . . , e
n
.
2. Verique que e
1
, . . . , e
n
es un ajuste.
3. Acepte si e
1
, . . . , e
n
es un ajuste, en caso contrario rechace.
Los dos algoritmos tienen muchas cosas en comn, una de ellas es que su tiempo
de cmputo es polinomial, otra, quizs la mas importante, es la sospechosa primera
instruccin de cada uno de ellos. Es obvio que la instruccin adivine algo no puede ser
una instruccin de un algoritmo en el sentido tradicional del trmino, por lo cual dec-
imos que los tres algoritmos son no deterministas, porque no se determina la manera
en que la escongencia en el paso 1 debe ser realizada y solo se le pide al algoritmo que
adivine un objeto adecuado, un objeto solucin, si es que tales objetos (soluciones)
existen. El no determinismo incrementa nuestro poder de cmputo, aunque no de ma-
nera ilimitada. Los dos problemas anteriores, que pueden ser muy difciles de resolver
sin la ayuda del no determinismo, son fciles de resolver con su ayuda. Esto es as dado
que, para cada uno de los dos problemas, decidir si la entrada x pertenece al problema
es equivalente a decidir si existe un objeto y (un modelo, un ajuste) de tamao poli-
nomial tal que (x, y) R, donde R es una relacin fcil de vericar. En los ejemplos
anteriores la relacin R corresponde a:
[Revista Integracin
La dicultad de jugar sudoku 19
1. ((G, k) , v
1
, . . . , v
k
) R si y solo si para todo i, j k, si i ,= j, entonces v
i
es
adyacente a v
j
; es decir, si y solo si v
1
, . . . , v
n
es un clique en G.
2. ((G, H) , f) R si y slo si f es un isomorsmo de G en H.
3. (G, e
1
, . . . , e
n
) R si y slo si e
1
, . . . , e
n
es un ajuste en G.
Ntese que en cada uno de los casos anteriores la relacin R es fcil de vericar, es
decir, dada (x, y), podemos decidir rpidamente si (x, y) pertenece a R.
Dado x y dado y tales que (x, y) R, diremos que y es un certicado para x, porque
en cierto sentido y certica que x pertenece al lenguaje. Un problema L puede ser
resuelto en tiempo polinomial no determinista si el problema determina una nocin
adecuada de certicado, una nocin tal que dada cualquier instancia x del problema
es fcil decidir si x L, conociendo un certicado para x.
Dado n N, 0, 1
n
es el conjunto de las palabras de longitud n, mientras que
0, 1
n
es el conjunto de las palabras de longitud menor o igual que n.
Sea L un problema, R una relacin y p un polinomio tales que:
1. x L si y solo si existe y 0, 1
p(|x|)
tal que (x, y) R;
2. R es fcil de vericar.
De R diremos que es una relacin p-balanceada, y que el polinomio p es su mdulo.
El problema L es un problema genrico dentro de las clase de los problemas que
pueden ser resueltos velozmente con la ayuda del no determinismo. Considere el si-
guiente algoritmo:
Con entrada x,
1. Adivine y 0, 1
p(|x|)
;
2. Verique que (x, y) R;
3. Acepte si (x, y) R, en caso contrario rechace.
El tiempo de cmputo de este algoritmo est dado por p ([x[), que es el tiempo
requerido para adivinar y, mas el tiempo requerido para vericar que (x, y) R.
Por otro lado, el problema anterior puede ser resuelto de manera trivial sin el con-
curso del no determinismo, para lo cual podemos usar un algoritmo de fuerza bruta o
de bsqueda exhaustiva. Sea M el algoritmo dado por:
Con entrada x,
1. Liste los elementos de 0, 1
p(|x|)
;
2. Recorra la lista y para cada y en la lista decida si (x, y) R;
3. Si existe y tal que (x, y) R acepte, en caso contrario rechace.
Vol. 24, No. 1, 2006]
20 J. Andrs Montoya
El algoritmo M es correcto, pero no es un buen algoritmo; el problema es que el
espacio de bsqueda es demasiado grande,

0, 1
p(|x|)

= 2
p(|x|)
, por lo que el tiempo
de cmputo de M no podr ser inferior a 2
p(|x|)
. El tiempo de cmputo de M no es
polinomial. Todo algoritmo de bsqueda exhaustiva es ineciente cuando el espacio de
bsqueda es grande; lo que se requiere entonces son algoritmos que usen estrategias
inteligentes de bsqueda. La estrategia ms inteligente posible es el no determinismo,
(corresponde a la estrategia de una inteligencia omnimiscente). Infortunadamente es
tan inteligente que no podemos implementarla computacionalmente.
Todo problema de la forma
Dado x determine si x tiene un certicado
puede ser resuelto ecientemente con la ayuda del no determinismo, es decir con la
ayuda de una inteligencia omnimiscente.
No siempre el no determinismo es indispensable. Existe un algoritmo polinomial
determinista que resuelve el problema AJUSTE [3]. En otras ocasiones, el no deter-
minismo parece indispensable, como en el caso del problema CIRCSAT el cual es
NPcompleto (es decir, si para l no es indispensable el no determinismo, entonces el
no determinismo nunca es indispensable).
Denicin 3.4. NP es la clase de todos los problemas de decisin que pueden ser
resueltos en tiempo polinomial no determinista.
Para nalizar esta seccin introduciremos el problema sudoku, y vericaremos que
este problema pertenece a la clase NP.
Sea n un nmero natural; considrese una matriz M de n
2
por n
2
, supngase que
M = [m
ij
]
i,jn
2
y que sus entradas, es decir los nmeros m
ij
, pertenecen en el conjunto

1, . . . , n
2

.
Dados i, j n, el bloque M
(i,j)
de M es la submatriz de M, de tamao n por n,
denida por
M
(i,j)
=

m
((i1)n+l)((j1)n+s)

l,sn
.
M es un sudoku de tamao n
2
si y slo si
1. en ninguna la y en ninguna columna de M ningn nmero ocurre al menos dos
veces;
2. para cualesquiera i, j n, ningn nmero ocurre al menos dos veces en el bloque
M
(i,j)
.
Un sudoku parcial de tamao n
2
es una matriz M de n
2
por n
2
tal que sus entradas
pertenecen al conjunto

1, . . . , n
2
,

y tal que
1. en ninguna la y en ninguna columna de M ningn nmero ocurre al menos dos
veces;
2. para cualesquiera i, j n, ningn nmero ocurre al menos dos veces en el bloque
M
(i,j)
.
[Revista Integracin
La dicultad de jugar sudoku 21
Dado M un sudoku parcial de tamao n
2
diremos que M es completable si y solo
si existe una modo de reemplazar todas las ocurrencias del smbolo por elementos
del conjunto

1, . . . , n
2

, de manera que tras realizar tales sustituciones se obtenga


un sudoku.
Problema (Sudoku).
Entrada: (M, n), donde M es un sudoku parcial de tamao n
2
Problema: Decida si M es completable
Es fcil vericar que el problema sudoku pertenece a NP.
Sea

n
2

el conjunto

1, . . . , n
2

. Dado un sudoku parcial M de tamao n


2
, un
completado parcial para M es una funcin f :

n
2

n
2

n
2

tal que
1. Si M
ij
,= , entonces M
ij
= f ((i, j));
2. La matriz [f ((i, j))]
i,jn
2 es un sudoku.
Sea R la relacin
(M, f) : M es un sudoku parcial y f es un completado para M .
Es claro que R es una relacin p-balanceada y tambin es claro que
(M, n) sudoku si y solo si existe f tal que (M, f) R.
Lo anterior implica que sudoku es un problema en NP, para el cual la nocin de
certicado es desempeada por los completados.
4. Problemas NPcompletos
En esta seccin introduciremos la nocin de NPcompletez. Los problemas
NPcompletos son problemas difciles o duros, que aunque podemos resolver veloz-
mente con el concurso del no determinismo, por el momento solo sabemos resolver
determinsticamente usando bsqueda exhaustiva (fuerza bruta). Los problemas
NPcompletos son tan difciles que hoy en da no sabemos resolver alguno de ellos
de manera eciente. Si aprendiramos a resolver velozmente alguno de estos proble-
mas, aprenderamos entonces a resolver velozmente todo problema en NP.
Denicin 4.1. Un problema L es NPcompleto si y slo si
1. L NP;
2. Si T NP, entonces T es Karp-reducible a L.
Vol. 24, No. 1, 2006]
22 J. Andrs Montoya
Si suponemos que P ,= NP, es decir, si suponemos que el no determinismo incre-
menta efectivamente nuestro poder de cmputo, entonces todo problema NPcompleto
es demasiado difcil como para que podamos resolverlo ecientemente, o lo que es lo
mismo, estos problemas son demasiado difciles como para poder implementar una
estrategia de bsqueda ms inteligente y ms econmica que la bsqueda exhaustiva.
Los textos de complejidad computacional (ver, por ejemplo [3]) suelen contener una
extensa lista de problemas NPcompletos. La NPcompletez de ciertos problemas ex-
plica, en parte, por qu no podemos resolver estos problemas de manera eciente. Si
nosotros pudiramos arreglrnoslas para probar que el problema de completar sudokus
es NPcompleto, explicaramos, al menos parcialmente, por qu es que ninguna es-
trategia inteligente parece funcionar a la hora de jugar sudoku. La explicacin sera
parcial, en cuanto el contenido efectivo de la nocin de NPcompletez depende de una
hiptesis, a saber, que P es diferente de NP. Es importante anotar que existe un gran
concenso respecto a que tal hiptesis debe ser cierta. Pinsese en lo siguiente: sea p
un polinomio y sea A
p
el conjunto de las sentencias en el lenguaje de la teora de
conjuntos que tienen una prueba de tamao a lo ms p ([[). Sea R la relacin
R := (, ) : es una sentencia y ,
donde es la armacin. Algn segmento inicial de 0, 1
p(||)
es una prueba de
.
Ntese que R es una relacin p-balanceada. Ntese tambin que
1. A
p
contiene casi todos los teoremas de la matemtica.
2. Si NP = P, existe entonces un algoritmo que con entrada produce una prueba
de . Esto es, si P = NP, casi toda la matemtica es automatizable (creemos
y esperamos que este no sea el caso).
5. Sudoku es NPcompleto
En esta seccin probaremos que el problema sudoku es NPcompleto, para lo cual
mostraremos que existe un problema NPcompleto que es Karp-reducible a sudoku.
Sea n un nmero natural; considrese una matriz M de n por n tal que sus entradas
son nmeros en el conjunto 1, . . . , n.
Una tal matriz ser un cuadrado latino de tamao n si y slo si en ninguna la y en
ninguna columna de M ningn nmero ocurre al menos dos veces.
Un cuadrado latino parcial de tamao n es una matriz M de n por n tal que sus
entradas pertenecen al conjunto 1, . . . , n, , y tal que en ninguna la y en ninguna
columna de M ningn nmero ocurre al menos dos veces.
Dado M un cuadrado latino parcial de tamao n, diremos que M es completable
si y solo si existe un modo de reemplazar todas las ocurrencias del smbolo por
elementos del conjunto 1, . . . , n de manera que tras realizar tales sustituciones se
obtenga un cuadrado latino.
Problema (Latin Square Completion, LSC).
[Revista Integracin
La dicultad de jugar sudoku 23
Entrada: (M, n), donde M es un cuadrado latino parcial de tamao n
Problema: Decida si M es completable
Es fcil vericar que el problema LSC pertenece a NP.
Teorema 5.1. LSC es NPduro.
Para una prueba el lector puede consultar [1].
Corolario 5.2. LSC es NPcompleto.
En lo que sigue demostraremos el siguiente teorema:
Teorema 5.3. Sudoku es NPcompleto.
Antes debemos introducir alguna notacin y alguna terminologa.
Dada M = [m
i,j
]
i,jn
2
una matriz de n
2
por n
2
, usaremos el smbolo F
i
para denotar
la i-sima la de M; podemos ver cada la F
i
como constituida por n bloques de n
entradas; al j-simo bloque lo denotaremos con el smbolo F
i,j
. Para todo i n
2
y
todo j n, el bloque F
i,j
es el n-vector

m
i,((j1)n+l)

ln
.
Dado v = [v
i
]
in
un n-vector, y o
n
una permutacin, (v) es el vector

v
(i)

. Y
dado m N,
(m)
(v) es el vector

(m)
(i)

. En lo que sigue jaremos la permutacin


: [n] [n] denida por
(i) = i + 1 mod (n) .
S
1
=

s
1
i,j

es la matriz de (n 1) por n dada por s


1
i,j
= (i n)+j, para todo i n 1,
j n.
La matriz S
1
esta constituida por las las FS
1
1
, . . . , FS
1
n1
y por las columnas
C
1
, . . . , C
n
.
Para cada i 2, . . . , n, la matriz S
i
es la matriz constituida por las columnas
C

(i1)
(1)
, . . . , C

(i1)
(n)
. Esto es, la matriz S
i
es un reordenamiento de las columnas
de S
1
determinado por la permutacion
(i)
. Ntese que
(i)

FS
1
1

, . . . ,
(i)

FS
1
n1

son las las de S


i
. A estas las las denotaremos con los smbolos FS
i
1
, . . . , FS
i
n1
.
Sea L un cuadrado latino parcial de tamao n, y sean L
1
, . . . , L
n
las las de L.
En lo que sigue construiremos una matriz M (L) de tamao n
2
por n
2
con entradas
en

1, . . . , n
2
,

:
1. Para todo i n, el bloque F
(i1)n+1,1
es igual a L
i
.
2. Para todo i n y todo j 2, . . . , n, el bloque F
(i1)n+j,1
es igual a FS
i
j1
.
3. Para todo i n y todo j 2, . . . , n, el bloque F
(i1)n+1,j
es igual a FS
i
j1
.
4. Para todo i n y todo j 2, . . . , n, el bloque F
(i1)n+j,j
es igual a L
i
.
Vol. 24, No. 1, 2006]
24 J. Andrs Montoya
5. Para todo i n, todo l 2, . . . , n y todo j 2, . . . , n, si l ,= j, 1 el bloque
F
(i1)n+l,j
es igual a FS
i

(j1)
(l1)
, donde : [n 1] [n 1] es la permutacin
denida por
(i) := i + 1 mod (n 1) .
Proposicin 5.4. M (L) es un sudoku parcial completable si y solo si L es un cuadrado
latino completable.
Demostracin. La prueba es inmediata y por ello se omite.
Corolario 5.5.
1. La asignacin L M (L) es una reduccin de Karp del problema LSC en el
problema sudoku.
2. Sudoku es NPcompleto.
6. Conclusiones
Jugar sudoku es muy difcil, o mejor, completar un sudoku es muy difcil; quien lo
intenta tiene la sensacin de que no existe una estrategia inteligente para enfrentar el
reto de completar un tablero de sudoku. Los modestos resultados del presente artculo
justican y explican dicha intuicin. Cuando jugamos sudoku nos enfrentamos a una
instancia de un problema NPcompleto, y un problema NPcompleto es precisamente
un problema que no admite estrategias inteligentes (al menos hasta donde llega nuestro
conocimiento).
Lo anterior muestra cmo los conceptos y mtodos de la complejidad computacional
pueden explicar, o al menos dar nombre, a las limitaciones combinatorias de la mente
humana.
Referencias
[1] Colbourn C. The complexity of completing partial latin squares. Discrete Ap-
plied Mathematics, 8(1984), 151158.
[2] Cook S. The complexity of theorem proving procedures. Proceedings, ACM
Symposium on Theory of Computing, (1971), 151158.
[3] Papadimitriou C. H. Computational Complexity. Addison-Wesley, 1994.
J. Andrs Montoya
Escuela de Matemticas
Universidad Industrial de Santander
Bucaramanga, Colombia
e-mail: amontoyaa@googlemail.com
[Revista Integracin

También podría gustarte