Você está na página 1de 6

UNIVERSIDAD CENTRAL DE VENEZUELA

FACULTAD DE INGERNIRA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE POTENCIA
ALGORITMOS GENETICOS

SOLUCIONADOR DE SUDOKU EMPLEANDO UN


ALGORITMO GENTICO CON
REPRESENTACION BASADA EN ORDEN
INFORME FINAL

Caracas, Febrero de 2011.

ASPECTOS TEORICOS
Sudoku es un rompecabezas matemtico que se populariz en Japn en 1986 y se dio a
conocer en el mbito internacional en 2005. Es un pasatiempo que consiste en un tablero de 9 filas x
9 columnas que componen 81 casillas. El tablero est dividido en subcuadrculas de 3x3 casillas. El
objetivo del juego es rellenar todas las casillas libres de dicho tablero con los nmeros del 1 al 9
considerando que inicialmente existen algunos nmeros ya colocados en algunas casillas. La solucin
debe cumplir la restriccin de que no se repite ningn nmero en una misma fila, columna o
subcuadrcula. La solucin es nica.
El objetivo del presente trabajo consiste en disear un programa que haciendo uso de un
algoritmo evolutivo, permita resolver sudokus. Para llevar a cabo el objetivo, se deben plantear los
siguientes aspectos:
1. Representacin del individuo.
2. Definicin de funcin de adaptacin.
3. Eleccin de los operadores a utilizar.
Criterio de codificacin: Es especfico de cada problema y en el caso del Sudoku es conveniente
una representacin con permutaciones de valores enteros ya que la solucin de un sudoku puede
resumirse como la permutacin de los nmeros del 1 al 9 respetando ciertas restricciones. Las
representaciones basadas en orden se adaptan a este requerimiento
Criterio de inicializacin: La poblacin inicial est formada por tablas, que representan cada una
un Sudoku, de manera que cada celda vaca estar rellena con un entero del 1 al 9.
Operadores genticos: operadores de cruce y mutacin explicados posteriormente, ellos basados en
orden.
Criterio de seleccin: en principio se utiliz la ruleta como mecanismo de seleccin, despus se
escogi el torneo, esto debido a la gran cantidad de poblacin que se emple para la solucin.
Criterio de terminacin y parmetros de funcionamiento: el algoritmo incluye elitismo, para no
perder la mejor solucin. El criterio de parada es encontrar un individuo que no presente
repeticiones ni en columnas, filas o cuadrculas, esto hasta 100.000 generaciones.

Bsicamente el sudoku es un problema de optimizacin con restricciones a nivel de columna,


fila y cuadrcula.
El individuo es un arreglo de 81 posiciones, el cual estar constituido por 9 genes. Se
escogieron las filas como los genes, por lo que cada gen est constituido por 9 elementos.
De este modo, al cargar un sudoku al programa, las posiciones fijas sern respetadas e
incluidas de una vez en los individuos, por otro lado, las posiciones libres sern cargadas con ceros.
La generacin de los individuos consistir en rellenar cada uno de los genes de un individuo,
es decir, las filas, con nmeros aleatorios del 1 al 9 evitando que existan repeticiones en cada gen (se
restringe la repitencia en las filas) tal y como se muestra en la siguiente figura:

Figura 1: Individuo. Cada fila representa un gen, en las filas se tiene la restriccin de no repitencia al momento de generar
los individuos.

En cuanto a la funcin de adaptacin se considera que un sudoku es tanto mejor cuantas


menos fallas tenga, en tal sentido la funcin de adaptacin usada es una suma ponderada de un valor
que representa la cantidad de fallas (repeticiones) en columnas y cuadriculas. Esta funcin de
adaptacin fue modificada a lo largo de la realizacin del cdigo hasta observarse el mejor
comportamiento.

El mtodo de seleccin utilizado fue el torneo, esto debido a que en las pruebas present
un mejor rendimiento respecto a la ruleta. En el torneo aqu usado se escogen dos individuos al azar
de la poblacin, se comparan sus adaptaciones, el que tenga mayor adaptacin es seleccionado para
cruzar. Este procedimiento se repite hasta que la cantidad de individuos a cruzar sea igual a la
cantidad de poblacin.
Se programaron dos cruces basados en orden. Uno de ellos no fue visto en clase, no obstante
presenta las caractersticas de los cruces basados en orden, es decir, se fundamentan en la
permutacin de posiciones en listas fijas, los operadores utilizados fueron:

Cruce uniforme un punto. Se escoge un punto de cruce divisorio en el individuo y se


intercambian los cuadros de los padres hasta ese punto.

Cruce alterno (operador AP): Intercala los cuadros de cada uno de los padres en cada uno
de los hijos. El operador AP ( Larraaga y col., 1999), crea un descendiente seleccionando
elementos alternativamente del primer y segundo padre en el orden ocupado por los
mismos, omitindose aquellas aquellos que ya se encuentran presenten en la gira
descendiente, ejemplificando lo anterior:
Sean los padres:
(1 2 3 4 5 6 7 8)

(3 7 5 1 6 8 2 4)

(1 3 2 7 5 4 6 8)

(3 1 7 2 5 4 6 8)

Los descendientes:
En el cruce se respetan las posiciones fijas, las cuales son comunes a ambos padres y
no se mueven o modifican.
Solo se utiliz un operador Mutacin, el cual selecciona al azar un gen del individuo
a mutar, y escoge dos elementos del gen, verifica que no sean posiciones fijas y a
continuacin los intercambia.
Para validar el mtodo utilizado, se carg al programa varios sudokus de internet, de
diferentes dificultades y se procedi a correrlo. A continuacin se presenta un diagrama de
flujo del programa:

CONCLUSIONES
En el presente trabajo se logr alcanzar el objetivo principal el cual contempla el diseo de
un algoritmo evolutivo que permita dar solucin al juego Sudoku. Para ello se hizo uso de un
Algoritmo Gentico en donde se implement la representacin basada en orden. Esto ltimo debido
a que el sudoku es un juego que requiere de una solucin que guarda relacin con un orden, es
decir, en primer lugar cada fila, columna y cuadrcula, admite nueve nmeros enteros dispuesto de tal
forma que nunca exista coincidencia de un mismo nmero en cada una de ellas, en segundo lugar,
solo se admiten nmeros enteros entre 1 y el 9, y en tercer lugar, el juego en si mismo se fundamente
en la realizacin de permutaciones para obtener la solucin. Estos tres aspectos conllevaron a la
implementacin de una representacin basada en orden.
Es menester sealar que como todo algoritmo gentico, la efectividad del mismo depende en
gran parte de la funcin objetivo o de adaptacin a implementar. Para el presente algoritmo, se
utiliz una suma ponderada de las fallas o errores contenidos en las filas, columnas y cuadrculas. Se
observ que la convergencia del algoritmo se ve influencia por los pesos que se le asigna a cada una
de estas sumatorias que conforman la funcin de adaptacin. La mejor solucin se obtuvo al
otorgarle mayor peso a la sumatoria de fallas en las columnas. Esto de alguna manera porque desde
la inicializacin de la poblacin, todos los individuos (sudokus), son forzados a carecer de repeticin
de elementos por fila, por lo que en parte, se establece un orden o un aporte a la solucin del
problema. En cuanto a las cuadrculas experimentalmente se obtuvo menos fallas en estas, se
presume que esto se debe a que por cuadrcula existe mayor grado de libertad para fijar los nmeros
respecto a las intercepciones de 3 filas y 3 columnas, es decir es posible realizar permutaciones entre
filas y columnas en un cuadro de 3x3, mientras que en las columnas se limita solo a permutaciones
en ella misma, lo cual result de mayor complejidad para alcanzar la solucin deseada.
Dentro de esta perspectiva, previamente se han mencionaron ciertas reglas o condiciones
que debe cumplir un sudoku. Estas reglas se traducen o implican ciertas restricciones, que no es ms
que acotar el rango donde se pueden encontrar la solucin deseada. Existen muchas restricciones
que pudieran ser implementadas para un solucionador de sudoku mediante algoritmos genticos, por
ejemplo, la sumatoria de las filas o columnas o cuadrculas siempre debe ser igual a 45; la productoria
de filas o columnas o cuadrculas debe ser siempre 362880; entre otras. En el presente estudio se
utiliz como restriccin que los elementos en cada fila, para todos los individuos desde la
inicializacin de la poblacin, nunca pueden repetirse. Se estableci que para cada individuo de la

poblacin, indiferentemente de la generacin, los elementos fijos del sudoku cuya solucin se
requiere permanezcan de esa forma hasta la solucin final. Se apreci de forma clara el aporte de las
restricciones cuando al establecer limitacin de la no repeticin de elementos de las filas, se condujo
al hecho de que la funcin de adaptacin requiera menor peso en cuanto a las fallas por filas, pues ya
la restriccin condujo a una reduccin en la bsqueda de las posibles soluciones.
En este orden de ideas, resulta importante mencionar el uso del torneo como mtodo de
seleccin. Inicialmente se haba considerado el mtodo de la ruleta sin embargo no result efectivo
pues se necesitaba de un mtodo que permitiera mayor discriminacin en cuanto a la adaptacin. En
el mtodo de la ruleta la probabilidad de seleccin resulta proporcional al fitness, mientras que en el
torneo directamente se utiliza la adaptacin, y este aporta un alto grado de discriminacin a los
individuos menos aptos, seleccionados a pares.
De los grficos obtenidos en los ensayos realizados se percibe que el operador de cruce juega
un papel inicial en las primeras generaciones. Sin embargo luego de cierta cantidad de generaciones,
la presencia de superindividuos conlleva a limitar la efectividad del operador cruce, por lo cual se
observ que era necesario implementa un operador de mutacin tan efectivo como fuere posible
para lograr alcanzar la solucin y vencer a los superindividuos. En las representaciones basadas en
orden se suele usar un porcentaje de mutacin alto (20% a 30%), esto es porque existe una alta
tendencia a la creacin de superindividuos cuando como en este caso, los genes tienen poca variedad
de elemento (del 1 al 9), el establecimiento de un orden implica tambin la formacin de estructuras
que conllevan de nuevo a los superindividuos. Para el algoritmo implementado se obtuvieron
mejores soluciones con un porcentaje de mutacin entre el 30% y el 50%. En la curva de adaptacin
vs generaciones, se observ como luego de cientos de generaciones donde prcticamente el fitness
no variaba, la mutacin contribuye de forma eficaz para alcanzar la solucin.

Você também pode gostar