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:


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:


Con las ecuaciones planteadas podemos configurar Solver, desde la Ficha Datos > Grupo Análisis > 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:


Tan sólo queda Resolver:


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.

8 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
  2. Como haces para que salgan todas las celdas de una fila, columna y dentro de cada 2 x2 numeros distintos?

    ResponderEliminar
    Respuestas
    1. Hola, que tal estás?
      Un placer saludarte igualmente
      Se esta empleando, como se describe, la herramienta Solver
      Saludos cordiales

      Eliminar
    2. Esque yo estoy haciendo uno 9 x9 pero no consigo que la solucion que muestre sea con numeros distintos en cada fila columna y cada 3 x3, si pudieses ayudarme te lo agradeceria mucho

      Eliminar
    3. Hola, que tal estás?
      Un placer saludarte igualmente
      el asunto para 9x9 es mucho más complejo por el número de restricciones necesarias para lograr completar el cuadro... lo que hace extremadamente complejo su elaboración
      Saludos

      Eliminar