Está en la página 1de 4

PROYECTO 

SUDOKU
  
Presentado por:   
Jaidy Tatiana Garzón Mayorga  
Sergio Esteban Martínez Pérez   
Juan Esteban Velásquez Rojas  
Presentado a:  
Juan David Rojas Gacha 
 
Universidad Piloto de Colombia  
Programas de ingeniería: Sistemas y Telecomunicaciones  
Bogotá D.C. noviembre 23 de 2020 

INTRODUCCIÓN

Para desarrollar este proyecto se necesita saber los siguientes conceptos como sudoku junto con
sus reglas para resolución, grafos y árboles, mencionado lo anterior ahora se va a dar una breve
explicación del sudoku, normalmente se pueden ver dos tamaños de sudoku que son 2x2 y 3x3. Se
sabe que un sudoku es un juego que consiste en un cuadrado que se encuentra subdividido en 9
partes de cuadrados 3x3, llamados cuadrados unidad, los cuales se dividen en 9 partes que poseen
números del 1 al 9, ahora bien, con respecto al modo de juego consiste en rellenar cada
cuadrado unidad en sus filas sin repetir números en sus filas columnas y en el propio cuadrado
unidad. Lo anterior explicado también se pude aplicar a los sudokus de 2x2 o también llamados
4x4 y los números que se pueden usaren en el sudoku son del 1 al 4.

DESCRIPCIÓN DEL PROBLEMA

 Para este proyecto se pretende desarrollar y mostrar la solución de un sudoku 4x4 por medio de
los temas vistos en clase, y la implementación de los temas vistos en GRAFOS Y ARBOLES.
MODELACIÓN DEL PROBLEMA

El sudoku puede ser modelado como un grafo debido a que tiene restricciones que más adelante
van a ser mencionadas, y una de las restricciones es que no debe haber un número repetido en la
misma caja ni en la fila y columna donde está el número. Estas restricciones pueden ser
representadas como vértices adyacentes en un grafo. Cada celda del sudoku sería un vértice y si
está en un área que afecte a otro vértice (ejemplo: caja, fila y columna) estaría conectado con cada
uno de los vértices de ese sitio. El grafo no sería dirigido ni tendría más de una arista por par de
vértices, sin embargo, cada vértice tendría un color. Este sería un número del 1 a n, el cual
dependería del tipo de grafo, en un principio esta sin color ya que está sin ser resuelto y una vez
resuelto es cuando se pueden observar cuantos colores se usar y como quedo el grafo ya
continuación una explicación de cual es la forma que tiene el sudoku normalmente, Se tiene un
sudoku de dimensiones 4x4, es decir que se tiene un cuadrado dividido en 4 partes de cuadrados
unidad y que estas a su vez están subdivididas en 4 partes donde se alojarán números del 1 al 4.

SOLUCIÓN PROPUESTA

Por medio del tema de coloración en grafos se va a dar solución a un sudoku 4x4, al usar estos
conceptos, se hace el modelamiento matemático como un grafo en el plano con tantos vértices
como casillas contenga, tales que dos de ellos son adyacentes si pertenecen a una misma fila,
columna o región. Si a cada cifra le asignamos un color distinto, el sudoku tendrá un problema de
coloración de vértices de un grafo, de manera que dos números iguales no pueden pertenecer a
casillas que se encuentran en la misma fila o columna. Sin embargo, los sudokus clásicos sean de
9x9 hace que la cantidad de vértices sea extensa y así mismo el tiempo de ejecución para la
coloración del grafo. Para la parte del software no se va a utilizar el tema de coloración en grafos,
debido a que se necesita una interfaz gráfica que pueda mostrar los colores en sudoku, la solución
que se le dio fue hacer un programa que resuelva el sudoku por medio del backtraking

IMPLEMENTACIÓN DE LA SOLUCIÓN EN SOFTWARE

Se realizó una implementación en software creando un programa en lenguaje JAVA que permite la
resolución de un Sudoku de dimensiones 4x4, creando diferentes métodos dentro de la clase
Sudoku para su Creación, Solución e Impresión, iniciando el arreglo y con algunas variables finales
tales como el valor de la celda vacía y el tamaño del sudoku, y su respectivo constructor, luego
realizamos validaciones, en las casillas vacías, ingresando números con un valor desde 1 hasta el
tamaño del sudoku en este caso 4, es entonces que después de cada valor ingresado se verifica si
existe uno igual en la columna y fila o en la propia caja, si no entonces se deja el valor en caso
contrario se procede a realizar la verificación con el siguiente número. Para una explicación más
clara vamos a hacer uso de las posiciones según el plano cartesiano (x,y), siendo “X” las filas del
sudoku y “Y” las columnas del sudoku, supongamos entonces que ya se encuentra en el sudoku
inicial el valor 2 en la posición  (1,1), es entonces que el algoritmo se dirige a la posición (1,2)  la
cual está en 0 y comienza a probar los posibles números que podrían ser ubicados en esta casilla,
inicia con el número 1, confirma que el numero ingresado no esté repetido en la fila columna o
caja, si no está, lo agrega y continua con la siguiente casilla (1,3), inicia con el numero 1 y realiza la
verificación percatándose de que ya existe en la misma fila, así que continua con el numero 2 y
nuevamente obtenemos que ya existe en la misma fila así que ingresa el 3, verifica de nuevo y se
percata que no está y por ende es válido de agregar. 

Al final de recorrer todas las filas y columnas, se imprimirá el Sudoku solucionado, si no posee una
solución se informará de esto. 

RESULTADOS OBTENIDOS

los resultados obtenidos de este proyecto muestran que el problema propuesto se puede
desarrollar con varios temas como los de grafos, árboles y lograr que tengan los mismos
resultados ya que los temas utilizados pueden ser compatibles entre sí. Cuando se creo el grafo del
sudoku 4x4 se pudo observar las muchas aplicaciones que tiene los grafos en la vida cotidiana y en
varias áreas del conocimiento, también se puede usar como herramienta para la resolución de
problemas o situaciones que lo ameriten usarlo. Una vez terminada la parte del grafo se continuo
con la implementación del programa que desarrollara el problema propuesto y fue cuando nos
dimos cuenta de que era más practico utilizar el tema de los arboles ya que se podía hacer sin
necesidad de una interfaz gráfica y el tema del backtraking fue el que mejor se adecuaba a las
necesidad del problema, en el proceso de desarrollo del programa se pudo ver que el tema de los
árboles también se pudo ver las muchas aplicaciones que tiene en la vida cotidiana y también se
puede ver como es utilizado en otras materias y áreas del conocimiento en la carrera ,que uno no
pensaría que se utilizan estos temas. Cuando el programa estuvo terminado y se probo que
funcionaba correctamente como se esperaba y aplicando el tema de árboles, que los sudokus se
ven sencillos en su creación y resolución, pero son más complejos de lo que parecen en esos dos
aspectos.

CONCLUSIONES

Las conclusiones que se obtuvieron de este proyecto fueron observar como se pueden aplicar los
temas de esta materia a diversas situaciones, lo fundamental que son estos temas en el ámbito de
la programación y la gran gama de aplicaciones en la carrera de ingeniería de sistemas. esto nos
permito ser consientes lo importante y fundamentales que son los temas de grafos y árboles que
se vieron en la materia y con os cuales se desarrolló este proyecto ,tener claros estos conceptos es
de gran utilidad a la hora de necesitar esto en una materia otra, de lo contrario la materia en
donde se tiene que poner en practica estos temas se pueden convertir en tediosa y tener que
volver a recordar todo lo necesario para desarrollar lo que se le esta pidiendo
REFERENCIAS

También podría gustarte