You are on page 1of 15

UNIVERSIDAD NACIONAL DEL CENTRO DE LA PROVINCIA DE BUENOS AIRES FACULTAD DE CIENCIAS EXACTAS

Algoritmo evolutivo para la resolucin del problema de las N-Reinas


Introduccin a la Computacin Evolutiva Trabajo Prctico Especial de Cursada

Jos Ignacio Orlando (E-mail: nacho_glorfindel@hotmail.com)

Docentes a cargo: Dr. Anala Amandi Dr. Virginia Yannibelli

2 de agosto de 2010

ndice
1. Introduccin ................................ ................................ ................................ ................................ . 2 2. Estudio del problema ................................ ................................ ................................ ................... 3 2.1. Historia ................................ ................................ ................................ ................................ . 3 2.2. Caractersticas del problema ................................ ................................ ................................ 3 3. Algoritmo evolutivo propuesto ................................ ................................ ................................ .... 5 3.1. Algoritmo elegido ................................ ................................ ................................ ................. 5 3.2. Representacin de los cromosomas ................................ ................................ ..................... 6 3.3. Funcin de evaluacin (fitness) ................................ ................................ ............................ 7 3.4. Poblacin inicial ................................ ................................ ................................ ................... 8 3.5. Criterio de seleccin de padres ................................ ................................ ............................ 8 3.6. Algoritmo de cruzamiento ................................ ................................ ................................ .... 8 3.7. Algoritmo de mutacin ................................ ................................ ................................ ...... 10 3.8. Criterio de seleccin de supervivientes ................................ ................................ .............. 10 3.9. Condicin de terminacin ................................ ................................ ................................ .. 11 4. Variables optimizantes del algoritmo ................................ ................................ ........................ 12 5. Conclusiones ................................ ................................ ................................ .............................. 13 6. Referencias ................................ ................................ ................................ ................................ 14

1. Introduccin
El objetivo del presente trabajo prctico especial es exhibir el diseo de un algoritmo evolutivo dedicado a la resolucin del problema de las -Reinas. El mismo consiste en la ubicacin de reinas de ajedrez en un tablero de dimensin , de tal forma que stas no se ataquen entre s. El algoritmo evolutivo se encargar de obtener una generacin de soluciones factibles al problema en cuestin. Este informe, que tiene por objeto proveerle al lector de toda la informacin relevante respecto del algoritmo, ha sido dividido en secciones, a los efectos de clasificar los datos y facilitar el acceso a los mismos. En la seccin 2 se enumeran las caractersticas propias del problema, as como las formas de la solucin y las estrategias conocidas para obtenerlas. En la seccin 3 se estudia en detalle el algoritmo evolutivo propuesto para la resolucin del problema, particularizando en cada apartado cada una de las caractersticas del mismo. En la seccin 4, por otro lado, se proponen parmetros aritmticos para la optimizacin del algoritmo, a los efectos de obtener mejores soluciones en un tiempo razonable. Por ltimo, en la seccin 5 se establecen las conclusiones obtenidas del trabajo.

2 Estudio d l p obl
" # !

2 1 Histo i
 

El primer antece ente e istente del problema de las - einas data del ao 1848 de un trabajo annimo que lue o fue atribuido al ajedrecista Max Bessel [MAR10] La publicacin ms antigua, sin embargo, data del ao 1850 y corresponde a Nauck En ese mismo ao, el matemtico Gauss postula la existencia de 72 soluciones cuando , aunque en 1874 otro matemtico, Glais er, logra probar la existencia de 92 [ANA05] Al da de hoy es uno de los problemas ms populares en el rea de las Ciencias de la Computacin, y se ha transformado en un Benchmark estndar p probar algoritmos que resuelvan problemas ara de satisfaccin de restricciones (CS s [RIC08], y es de gran importancia dadas las mltiples aplicaciones que pueden hacerse del mismo, a saber: y y y y y y y Control de trfico areo, Sistemas de comunicaciones, Programacin de tareas computacionales, Procesamiento paralelo ptico, Compresin de datos, Balance de carga de una computadora multiprocesador, Ruteo de datos o mensajes en una computadora multiprocesador,
  

y un largo etctera [ANA05]

El problema de las -Reinas, como se ha adelantado en la seccin 1, consiste en la ubicacin de casillas, de tal forma que las mismas no se maten entre s reinas de ajedre en un tablero de [EIB03] Es sabido que las reinas de ajedre atacan a las fichas ubicadas en su misma fila, en su misma columna o que comparten alguna de las diagonales (ver figura 1).
 

Fi u

1: posiciones invlidas para la ubicacinde reinas (celdas amarillas), para

  



   

22 C

t sti s d l p obl

Existen 2 alternativas al problema, ambas caracterizadas por la solucin: una de las versiones consiste en encontrar slo 1 solucin que satisfaga las restricciones, mientras que la otra requiere hallar todas las soluciones posibles. La cantidad de soluciones difiere de acuerdo al elegido, de tal forma que, a medida que crece, suele darse que el nmero crezca [ANA05]. En la tabla 1 se observan la cantidad de soluciones para diferentes valores de (ntese que el nmero disminuye cuando ).

Nmero de soluciones 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 10 4 40 92 352 724 2.680 14.200 73.712 365.596 2.279.184 14.772.512 95.815.104 666.090.624 4.968.057.848 39.029.188.884
$

Tabla 1: cantidad de soluciones pa a distintos valores de .

En nuestro caso, consideraremos la segunda opcin, teniendo en cuenta que el algoritmo evolutivo nos proveer de toda una generacin de soluciones vlidas.

3 Al o it o evolutivo p opuesto
3 1 Al o it o elegido
El enfoque evolutivo que se aplicar para la resolucin del problema es un algoritmo gentico. Los pasos a seguir por estos algoritmos estn representados en la figura 2 [GOO05].
( ' & % %

) 0

Figu

2: estructura clsica de un algoritmo evolutivo (incluido el algoritmo gentico propuesto).

Segn la metfora del comportamiento natural que suponen los algoritmos evolutivos, las soluciones a los problemas se interpretan bajo una estructura de cromosoma, cada uno de los cuales est compuesto por genes, que representan determinadas caractersticas de estas soluciones [EIB03]. Al espacio de todas las soluciones posibles se lo conoce como espacio fenotpico, mientras que el conjunto de todas esas soluciones mapeadas a cromosomas recibe el nombre de espacio genotpico [EIB03]. Cada cromosoma tiene asignado un valor de fitness, resultado de aplicar sobre l una funcin que mide su calidad como solucin: sern mejores aquellos cromosomas que aporten un mayor valor de fitness respecto de los dems. Sin embargo, y como se ver en secciones posteriores y durante el transcurso del trabajo final, a menudo es necesario conservar individuos1 con valores de fitness bajos a los efectos de incorporar diversidad en el espacio genotpico, ya que esto permite al proceso evolutivo alcanzar diferentes crestas de la superficie adaptativa asociada. Inicialmente, se cuenta con una poblacin inicial conformada por cromosomas (cada uno de los cuales est formado por genes) que puede obtenerse mediante tcnicas aleatorias o utilizando algoritmos de bsqueda local (ver seccin 3.4). En el caso del algoritmo gentico, existe la restriccin de que los cromosomas se representen como cadenas de bits binarios (es decir, 1 s y 0 s), con lo cual ser necesario mapear las soluciones a estructuras de este tipo (ver seccin 3.2). A cada uno de los cromosomas se les aplica la funcin de fitness (ver seccin 3.3) que se utilizar luego durante el proceso de seleccin de padres para la procreacin. Este proceso se basa en, de acuerdo a un criterio que se analizar en detalle en la seccin 3.5, tomar dos individuos del espacio genotpico y someterlos a un proceso reproductivo (aplicacin de crossover seccin 3.6 y mutacin seccin 3.7 ) que dar como resultado 2 nuevos individuos que contendrn material gentico heredado de los padres y material gentico nuevo resultante de la mutacin. La generacin de hijos se repetir hasta conformar una generacin nueva de individuos que luego sern mezclados utilizando un criterio que se ver en la seccin 3.8 para generar una nueva poblacin inicial de cromosomas. El algoritmo repetir los pasos vistos hasta aqu hasta alcanzar una condicin de corte, segn lo indique un razonamiento determinado que ser analizado en detalle en la seccin 3.9. Como resultado del algoritmo se obtendr una poblacin de Reinas, con . soluciones al problema de las -

3.2. Representacin de los cromosomas


Tal como se adelant en la seccin 3.1, el uso de un algoritmo gentico implica utilizar cromosomas codificados como una secuencia de bits binarios. Si obviamos esta consideracin podramos elegir una representacin vectorial para las soluciones, de tal forma que, dado el vector , pueda leerse que una reina ocupa la columna y la fila . Luego, si consideramos que las reinas nunca compartirn columnas (porque de lo contrario habra dos valores diferentes en una misma posicin del vector) y que el control para que no compartan las filas es sencillo (un valor no debe aparecer ms que 1 sola vez en ), entonces cada no ser ms que una permutacin de la tupla genrica . Estas ventajas sern notorias a la hora de c alcular el fitness de los cromosomas (seccin 3.3).
En el transcurso de la presente monografa se utilizarn indistintamente los trminos cromosoma e individuo .
1 1
1

Escoger una representacin entera en lugar de una representacin binarianos forzar a redefinir el operador de mutacin, tal como se ver en la seccin 3.7. En la figura 3 puede verse un posible tablero (no una solucin) y su cromosoma asociado.

3 3 Fun in de evaluacin (fit e


5 4 4

La funcin de evaluacin se encargar de determinar cun bueno es cada individuo de la poblacin. En nuestro caso, deber constituir un ndice a minimizar que seale la cantidad de colisiones entre reinas: esto es, aquellos cromosomas que tengan menor fitness deberan constituir mejores soluciones al problema. Una solucin ptima al problema debe verificar, para todo par de reinas restricciones: 1. No compartir una columna. 2. No compartir una fila. 3. No compartir una diagonal. De acuerdo a la representacin elegida en el apartado 3.2, todos los cromosomas vienen a satisfacer la restriccin 1. Por otro lado, chequear que las reinas no ocupen una misma fila resulta bastante sencillo, pues bastar recorrer el vector y verificar que, para todo , . Luego, nuestra funcin de fitness se dedicar exclusivamente a medir la cantidad de conflictos que pudieran surgir en las diagonales de cada reina. Luego, dada la tupla , donde cada representa la posicin en la fila de la -sima reina e representa adems la columna, pediremos que cada reina cumpla: , las siguientes

As, nuestra funcin de fitness contar con un 1 cada vez que la condicin se cumpla y con un 0 cuando no. En la figura 4 se observa el clculo de la funcin para un tablero que es solucin para .

877 6

2 3

Figu

3: asociacin de un tablero a un cromosoma.

Figu a 4: clculo de la funcin de Fitness para un tablero solucin.


9

Obsrvese que el valor mximo de la funcin de fitness es reinas, el mximo valor de fitness ser:

. Generalizando, para

3 4 Poblacin inicial
La diversidad de la poblacin inicial del algoritmo es uno de los factores que ms afectan la eficacia del algoritmo, teniendo en cuenta que a partir de ella se extraer el material gentico para la generacin de nuevos individuos [GOO05, EIB03]. La mejor estrategia para generar la poblacin inicial, en este caso, es obtener un espacio genotpico aleatorio, utilizando las funciones de tipo Randomize() que son provistas por los lenguajes de programacin. Es importante destacar que se permitirn poblaciones c elementos repetidos (se on utilizar un multiset) y que el tamao de la poblacin ser escogido por el propio usuario.
@ @ A A C C

3 5 C iterio de seleccin de padres


Para la seleccin de los padres se tomarn dos pares de individuos tomados al azar. Luego, de cada par se escoger aquel que tenga un mejor valor de fitness y se los cruzar utilizando el opera de dor crossover (seccin 3.6) para obtener 2 hijos sobre los cuales aplicar mutacin posteriormente. El proceso resulta entonces claramente aleatorio, pero la selecci n de los mejores padres colaborar en la mejora del fitness de las generaciones futuras.
B

3 6 Algorit o de cru amiento


Se propone como operador de crossover el PMX (Partially Mapped Crossover). El mismo, segn [OCA06], consiste en elegir al azar dos puntos de cruzamiento, intercambiar los segmentos demarcados por ellos y definir los dems genes haciendo mapeos entre los 2 cromosomas de los padres: si un valor no est contenido en el segmento intercambiado, permanece ig al; si est u
E D

contenido, se sustituye por el valor que tenga dicho segmento en el otro padre. En la figura 5 puede observarse el proceso de cruzamiento utilizando PMX para obtener uno de los hijos.

Figura 5: ejemplo de la aplicacin del operador de cruzamiento PMX para la generacin de un hijo.

En el punto (1) puede observarse el resultado de incorporar en el hijo los valores de los genes ubicados entre los puntos de cruce del padre 1. En el punto (2) se observa la incorporacinde los genes correspondientes al padre 2, y se indican con fondo blanco los valores que deberan ir pero que no se insertan por estar repetidos. Luego, si observamos las posiciones que ocupan el 9 y el 4 en el cromosoma del padre 1, vemos claramente que ocupaban las mismas posiciones que los nmeros 11 y 2, respectivamente. Luego, se colocan estos ltimos valores tal como puede observarse en el punto (3), obtenindose como resultado un hijo que es una permutacin vlida y que adems no contiene repetidos.

3 7 Algoritmo de mutacin
El operador de mutacin tiene una probabilidad asociada que determina con cunta probabilidad mutar un cromosoma hijo determinado. La mutacin consistir en tomar dos puntos al azar del cromosoma e intercambiar los valores entre s, tal como se observa en la figura 6.
F F G G

Figura 6: ejemplo de la aplicacin del operador de mutacin.

3 8 Criterio de seleccin de supervivientes


El proceso de seleccin de supervivientes consiste en, dados dos multisets y (donde representa la poblacin de cromosomas inmediata anterior en la primera iteracin, la poblacin inicial y es la generacin resultante del cruzamiento y la mutacin), seleccionar los individuos que formarn parte de la poblacin . Para generar la nueva poblacin se optar por una tcnica combinada que permita mejorar el fitness y adems conservar diversidad. Para ello, se considerar la proporcin de tal forma que la poblacin final contar con cromosomas obtenidos por comparacin de fitness y recogidos al azar de , donde es la poblacin parcial obtenida por torneo. Consideremos las poblaciones y de la figura 7, para un momento del algoritmo gentico

. Obsrvese que el individuo (10), miembro de la generacin para el juego de las -Reinas, con (marcado en verde en la figura) es solucin al problema. Si consideramos un valor de , entonces el de los individuos de la poblacin sern tomados por torneo (es decir, 4) y los restantes al azar. Luego, se obtendr como resultado una poblacin como la que se exhibe en la figura 8. Ntese que los elementos (3) y (8) coinciden: este inconveniente no ser d gran e importancia para valores de mucho mayores que 6. Adems, obsrvese que tomar al azar los valores (6) y (12) podr, en momentos futuros, facilitar que el crossover/mutacin generen buenas soluciones.

Es importante aclarar que el ejemplo es meramente ilustrativo, y que los cromosomas de la poblacin sido dados aleatoriamente y no por cruzamiento/mutacin de los individuos de la poblacin .

han

10

Figura 7: poblaciones de ejemplo

3 9 Condicin de terminacin
Como condicin de terminacin se utilizarn dos conceptos (cualquiera de ellos que se cumpla primero, terminar el algoritmo): 1. Alcanzar un nmero mximo de iteraciones, indicadas por el usuario. 2. Lograr que el fitness medio sea tal que es el fitness mximo. donde es definido por el usuario y
H H

Figura 8: poblacin resultante luego de la aplicacin deloperador de seleccin.

11

4. Variables optimizantes del algoritmo


Las variables que mejorarn la calidad de las soluciones o la cantidad de iteraciones necesarias para desarrollar soluciones buenas son: 1. El tamao de la poblacin inicial (y, por consiguiente, de las poblaciones futuras). Se propone inicialmente un valor de 100, tal como se utiliza en [BOZ03]. Durante el trabajo final se variar el parmetro para analizar cunto afecta la calidad de las soluciones. 2. Como para el cruzamiento se tomarn al azar dos pares de padres, la probabilidad de un individuo de que sea seleccionado para integrar un par ser:

(con el tamao de la poblacin), dado que se trata de una extraccin sin reposicin. Luego, la probabilidad de que sea elegido en alguno de los pares es . Destaquemos, sin embargo, el hecho de que el individuo pasar a la fase de crossover siempre y cuando cuente con un fitness alto. 3. La probabilidad de mutacin propuesta por la bibliografa para otros algoritmos evolutivos que resuelven el mismo problema oscila entre el 2 y el 80% ([BOZ03], [EIB03]). Es importante destacar que un valor alto para har que la bsqueda se vuelva ms aleatoria que determinista, mientras que un valor bajo forzara el estacionamiento del algoritmo en una colina de la superficie adaptativa. Haciendo un trade-off entre ambas consideraciones, se elige un valor , haciendo la salvedad de que este valor debe poder variarse en la aplicacin final. 4. El criterio para elegir el valor de (cantidad de iteraciones mxima del algoritmo) es relativamente arbitrario: queremos que el algoritmo termine rpido u obtener soluciones ptimas? Si optamos por la primera opcin, es probable que el algoritmo evolutivo no alcance buenas soluciones o llegue, a lo sumo, a ptimos locales; por el contrario, la segunda opcin mejorara las soluciones pero empeorara el tiempo de ejecucin. Haciendo un tradeoff nuevamente entre ambas opciones, puede escogerse un iteraciones. Lo mismo sucede con el valor de (coeficiente de convergencia): con se obliga a que todos los cromosomas de la poblacin sean soluciones (algo imposible si el elegido supera a la cantidad de soluciones posibles para el nmero de reinas dado, o costoso en lo que a tiempo computacional se refiere), mientras que un grande har empeorar la calidad de las soluciones pero acelerar al algoritmo. Se optar, pues, por un . Por otro lado, ambos valores ( y ) debern poder ser establecidos por el usuario en la aplicacin final.

12

5. Conclusiones
La aplicacin de algoritmos evolutivos (en particular, algoritmos genticos) para la resolucin de problemas de satisfaccin de restricciones [EIB03] es recomendada respecto a otras estrategias de bsqueda (como la bsqueda aleatoria, el recocido simulado [ AR10], el branch-&-bound [SPA05], etc.) debido a que permiten obtener soluciones de gran calidad en un tiempo computacional razonable. En particular, el problema de las -Reinas es un clsico CSP con gran cantidad de aplicaciones semnticas, objeto de profundas investigaciones en el rea de las Ciencias de la Computacin, los Algoritmos y las Estructuras de Datos, y que puede ser resuelto mediante la aplicacin de un algoritmo gentico simple, ofreciendo grandes posibilidades didcticas a las personas abocadas en su diseo [AHR08, BOZ03, BUZ07, GOO05]. Se propone, por ltimo, implementar el algoritmo gentico diseado en este trabajo prctico especial, utilizando el lenguaje de programacin Java, como trabajo final de la materia.
I

13

6. Referencias
[EIB03] Eiben, A. E.; Smith, J. E. Introduction to Evolutionary Computing: What is an Evolutionary Algorithm? . Filminas de clase 2003. [AHR08] Ahrabian, H.; Mirzaei, A.; Nowzari-Dalini, A. A DNA sticker algorithm for solving N-Queen problem . Tehern, Irn. International Journal of Computer Science and Applications. 2008. [SPA05] Spading, Andreas; Ananias, Pablo Itaim. El Problema de las N-Reinas . Valparaso, Chile. 2005. [ANA05] Spading, Andreas; Ananias, Pablo Itaim. Optimizacin Combinatorial: El Problema de las N-Reinas . Valparaso, Chile. 2005. [RIC08] Richards, Nicols Barriga; Carrre, Nicols Troncoso. Inteligencia Artificial Avanzada: Problema de las n-reinas . Valparaso, Chile. 2008. [BOZ03] Bo ikovic, Marko; Golub, Marin; Budin, Leo. Solving n-Queen problem using global parallel genetic algorithm . Ljubjana, Slovenia. EUROCON 2003. 2003. [GOO05] Goos, Jesper. Using Genetic Programming To Solve The n Queens Problem . Ros ilde Universitetscenter. 2005. [MAR10] Marfileo, Luis Fernando Gutirrez. Sistemas Inteligentes . Academia de Inteligencia Artificial, Departamento de Ciencias de la Computacin, Centro de Ciencias Bsicas, Universidad Autnoma de Aguascalientes. 2010. [BUS07] Bustos, Juan Carlos Pozas; Vzquez, Nieves. Algoritmos Gen ticos. Aplicacin al Juego de las N Reinas . Universidad Carlos III, Madrid, Espaa. 2007. [RK07] Rckauer, Carlos Cervign. Operadores gen ticos sobre permutaciones aplicados a la resolucin del sudoku . Departamento de Ingeniera del Software e Inteligencia artificial, Universidad Complutense de Madrid. 2007. [OCA06] Ocampo, Eliana Mirledy Toro; Grisales, Yov Steven Restrepo; Echeverri, Mauricio Granada. Algoritmo genetic modificado apicado al problema de secuenciamiento de tareas en sistemas de produccin lineal flow shop . Scientia et Technica. 2006.
S R Q P

14

You might also like