domingo, 25 de septiembre de 2011

Sudoku 4x4 con Solver.

Constantemente veo a personas pasar su tiempo resolviendo esos puzzles numéricos que conocemos como Sudoku, y pensando sobre el tema, me vino a la cabeza que la solución a éstos no es más que el encuentro de las raices de un sistema de ecuaciones; desde este planteamiento, decidí intentar resolver un Sudoku con la herramienta de Excel habilitada para este asunto: Solver.
Para no complicar demasiado el sistema de ecuaciones a plantear, me decido por un mini-Sudoku de 4x4, eso sí, le daremos la máxima dificultad, con un mínimo de valores de partida:

Sudoku 4x4 con Solver.


Los primeros pasos consistirán en construir el mayor número de ecuaciones sobre nuestro Sudoku. Empezaremos con sumas de valores, ya que sabemos que la suma de cada fila y cada columna del cuadro debe ser igual a 10 (=1+2+3+4), de igual modo que la suma de cada uno de los minicuadros que contiene el Sudoku también debe sumar 10; además como criterio adicional añadiremos una última ecuación, que determine a qué debe ser igual el producto de los cuatro elementos por minicuadro(=24 = 1x2x3x4).
Un último condicionante para las celdas a completar es que sus valores se encuentren entre 1 y 4.
Como celda objetivo elegiremos la celda $G$7, como suma de las filas del sudoku ( =SUMA(G2:G5) ), que deberá ser 40.
Observemos el planteamiento:

Sudoku 4x4 con Solver.


Con las ecuaciones planteadas podemos configurar Solver, desde la Ficha Datos > Grupo Análisis > Solver:

Sudoku 4x4 con Solver.


Las celda cambiantes son las celdas a completar de nuestro Sudoku: $B$2;$D$2;$B$3:$D$3;$B$4;$D$4:$E$4;$C$5;$E$5
Es importante, para afinar en la solución, que desde las Opciones... se marque la Tolerancia a cero:

Sudoku 4x4 con Solver.


Tan sólo queda Resolver:

Sudoku 4x4 con Solver.


Observemos el mensaje de Solver que nos dice que hemos encontrado una solución, verificando las restricciones dadas.

Evidentemente para poder solucionar un Sudoku de 9x9, deberíamos encontrar y añadir nuevas restricciones... lo que complica el uso de Solver.

4 comentarios:

  1. hola, estoy tratando de resolver tu ejercicio en excel 2013 hice todo lo que dijiste, la tabla se llena correctamente pero mi optimo no es de 40 si no 10, quisiera saber si esto afecta en algo al ejercicio??

    ResponderEliminar
    Respuestas
    1. Hola Vane,
      todo depende del modelo que tengas.. que el valor de la celda objetivo sea 40 no es casual, depende de los Cuadros(filas x columnas) que tengas...
      Si con el valor 10 responde a tu situación entonces no afectará... pero OJO, por que las restricciones del modelo Solver también cambiarían!!
      Saludos

      Eliminar
    2. ya encontre el error, en tu imagen aparece q la suma para la celda objetivo debe ser ( =SUMA(B2:E5) ), cuando debe ser la suma de las filas del sudoku ( =SUMA(G2:G5) ), y asi si da 40. xD

      Eliminar
    3. Hola Vane,
      realmente la suma de B2;E5 debe ser 40
      ;-)
      Saludos

      Eliminar