Está en la página 1de 55

Universidad de Buenos Aires

Facultad de Ciencias Exactas y Naturales


Departamento de Computaci

on
Un algoritmo genetico hbrido
para resolver el Eternity II
Tesis presentada para optar al ttulo de
Licenciados en Ciencias de la Computacion
Martn Rico, Rodrigo Ros
Directora: Prof. Dra. Irene Loiseau
Buenos Aires, 2013
UN ALGORITMO GEN

ETICO H

IBRIDO PARA
RESOLVER EL ETERNITY II
Eternity II es un rompecabezas del tipo Edge-Matching que consiste en acomodar
256 piezas en un tablero de 16x16. Lanzado como un juego de mesa en el a no 2007
con una recompensa de 2 millones de dolares para aquel que lo solucionase, aun hoy,
ya vencido el plazo, no se conoce una soluci on completa. Se ha demostrado que la
resoluci on de este tipo de rompecabezas asi como tambien el de otros tipos es un
problema NP-Completo. El trabajo presentado en esta tesis describe la aplicaci on
de una metaheurstica hbrida para resoluci on del mismo. Utilizamos un algorit-
mo genetico junto con una b usqueda local del tipo Hill Climing a la cual, ademas,
le agregamos paralelismo. Analizamos las ventajas obtenidas de la combinaci on de
ambas tecnicas, mostramos el estado del arte del problema y realizamos una com-
paraci on de nuestros resultados nales respecto a los obtenidos por otros autores.
Palabras claves: Algoritmo Genetico, Eternity II, Rompecabezas, B usqueda Local,
Metaheurstica.
i
AN HIBRID GENETIC ALGORITHM FOR THE
RESOLUTION OF THE ETERNITY II
Eternity II is an Edge-Matching puzzle which involves to t 256 square puzzle pieces
into a 16 by 16 grid. Released as a board game on 2007 with a reward of two million
dollars to the one able to nd a solution, even today, as the deadline has passed, there
is no known complete solution. It has been shown that the resolution of this type
of puzzle as well as other types is NP-complete. The work presented in this thesis
describes the application of an hybrid metaheuristic to the Eternity II problem. We
use a genetic algorithm with a Hill Climing type local search to which, furthermore,
we add parallelism. We analyze the benets of the combination of both techniques,
show the state of the art of the problem and we make a comparison of our nal
results against those reached by other authors.
Keywords: Genetic Algorithm, Eternity II, Puzzle, Local Search, Metaheuristic.
ii
AGRADECIMIENTOS
Queremos agradecer en primer lugar a nuestras familias y novias, por bancarnos y
apoyarnos incondicionalmente durante estos a nos.
A nuestros amigos de la vida y compa neros de facultad, especialmente a todo el
grupoLibertinaje, que estuvieron siempre a nuestro lado, motiv andonos para que
sigamos y no bajemos nunca los brazos.
A Irene, por su eterna paciencia y predisposicion, incluso en las fechas mas compli-
cadas.
A todos los docentes del departamento por sus ense nanzas, por abrirnos la cabeza
y ayudarnos a ser cada da mejores profesionales.
iii
Martn: A mi familia y a los amigos.
Rodrigo: A mis padres y al abuelo Taca.

Indice general
1.. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1. Metaheursticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Algoritmos Evolutivos . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2. Algoritmos Geneticos . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3. B usqueda Local . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Eternity II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2. Descripci on del problema . . . . . . . . . . . . . . . . . . . . . 8
2.. Trabajos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.. Algoritmo Propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.1. Representacion . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.2. Poblacion Inicial . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.3. Funci on de Evaluacion . . . . . . . . . . . . . . . . . . . . . . 14
3.1.4. Seleccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.5. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.6. B usqueda Local . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.7. Reemplazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2. Implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1. Parametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Apendice 34
A..Evolucion y Obtenci on de Parametros . . . . . . . . . . . . . . . . . 35
A.1. Etapa I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
v
A.2. Etapa II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
B..Utilizaci on del programa . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1. INTRODUCCI

ON
1.1. Metaheursticas
Las metaheursticas pueden denirse como metodos dise nados para encontrar
buenas soluciones a problemas de optimizaci on combinatoria en general. La idea
de su uso surge cerca de la decada del 80 y son en cierto sentido m as generales
que los metodos heursticos tradicionales aunque pueden utilizar a los mismos den-
tro de sus implementaciones. En comparaci on con otros metodos de optimizaci on,
las metaheursticas no garantizan que una solucion optima sea encontrada ya que
generalmente las implementaciones dependen de algoritmos estocasticos basados en
un conjunto de variables que se generan de forma aleatoria. Sin embargo, general-
mente las metaheursticas suelen generar buenas aproximaciones a la soluci on de
los problemas utilizando menor esfuerzo de procesamiento que otros metodos y por
consiguiente alcanzan estas buenas aproximaciones en un tiempo m as corto.
Existe una gran variedad de metaheursticas y, tanto los desarrollos como los
dise nos de las mismas, suelen estar motivados por comportamientos naturales que
aparecen en diversos campos como la biologa, la fsica, entre otras disciplinas. Ex-
isten m ultiples maneras de clasicarlas, una de ellas es seg un las estrategias de
b usqueda. Un primer tipo se basa en mejoras aplicadas sobre algoritmos de b usque-
da local como por ejemplo Simmulated Annealing, Tabu Search y GRASP entre
otros. Otro son aquellos donde la estrategia de b usqueda involucra un componente
de aprendizaje tal como Colonia de Hormigas y los Algoritmos Geneticos. Otra for-
ma de clasicarlas es seg un si la b usqueda est a basada en una unica soluci on o en
una poblacion de soluciones. Aquellas que utilizan una unica soluci on se enfocan en
mejorar y modicar una unica soluci on candidata hasta alcanzar un objetivo como
pueden ser Simmulated Annealing y Variable Neighborhood Search. Las que uti-
lizan una poblaci on, mantienen y mejoran m ultiples soluciones candidatas y suelen
utilizar propiedades propias de la poblaci on para guiar la b uesqueda. Dentro de este
grupo se puede encontrar a los Algoritmos Geneticos y la Computacion Evolutiva.
1
1. Introduccion 2
Adem as de las metaheursticas mencionadas anteriormente, existen las denom-
inadas hbridas y las denominadas pararelas. Los algoritmos hbridos son aquellos
que combinan una metaheurstica con otro metodo de aproximacion, como puede ser
Constraint Programming o incluso otra metaheurstica. Ambos componentes pueden
ejecutarse en simultaneo o uno embebido dentro del otro e intercambiar informacion
para guiar la b usqueda. Los algoritmos paralelos son aquellas que utilizan tecnicas de
programaci on en paralelo o distribuida para ejecutar m ultiples b usquedas en parale-
lo. Pueden variar desde simples esquemas distribuidos hasta b usquedas concurrentes
que interactuan entre si para mejorar una soluci on general.
1.1.1. Algoritmos Evolutivos
Los algoritmos evolutivos (EA) [16] surgen cerca de la decada del cincuenta y
si bien pueden ser utilizados para diversos propositos, se los emplea frecuentemente
con el n de resolver problemas de optimizaci on. Estos se basan en los principios de
la evoluci on biol ogica formulados por Darwin.
Los EA consisten en generar conjuntos de posibles soluciones del problema en
cuesti on que ir an evolucionando iterativamente con la esperanza de que los nuevos
conjuntos contengan soluciones mejores a las anteriores. En el contexto de los EA,
a estos conjuntos se los denomina poblaciones y a cada una de las soluciones se las
denomina individuo. Para medir la calidad de un individuo, es decir, la calidad de
una soluci on, se utiliza una funcion de evaluaci on (tness). Esta funci on se calcula
teniendo en cuenta el o los objetivos que se quieran cumplir en cada uno de los
individuos. Su complejidad se desprende del dominio del problema, de el o los obje-
tivos y del modelo que se haya utilizado para representar a los individuos. El mapeo
entre una soluci on real y un indiviuo puede variar seg un el problema yendo desde
un simple n umero hasta una estructura compleja.
En cada uno de los ciclos del algoritmo se seleccionan algunos individuos de la
poblaci on y, mediante operaciones, se los combina o transforma para dar origen a
nuevos individuos (osprings). Estos individuos llevan informacion de sus padres
pero no necesariamente son mejores respecto a su tness. La b usqueda de diversi-
dad en la poblaci on se utiliza para no caer de forma temprana en m aximos locales.
Una vez generados los individuos descendientes, se juntan con sus padres y con el
1. Introduccion 3
resto de la poblacion para obtener entonces la pr oxima generacion. Los criterios de
parada del algoritmo pueden ser diversos: tiempo, diversidad de la poblacion, valor
de tness, entre otros.
La implementaci on y parametrizaci on del criterio de parada, junto con el tama no
de la poblaci on, las estrategias de selecci on y reemplazo, las operaciones entre in-
dividuos, la funci on de evaluaci on, etc, son de gran importancia y denen el com-
portamiento del algoritmo. Tienen siempre presentes en sus implementaciones cierto
grado de aleatoriedad lo que convierte a estos algoritmos en no determnsticos.
El siguiente pseudoc odigo resume el comportamiento de esta clase de algoritmos:
1: poblacion generar una poblaci on inicial de individuos
2: evaluar el tness de cada individuo de la poblacion
3: mientras algun criterio de parada hacer
4: padres seleccionar individuos de poblacion
5: hijos generar individuos a partir de operaciones geneticas sobre padres
6: evaluar el tness de cada individuo en hijos
7: poblacion crear una nueva poblacion a partir de poblacion e hijos
8: n mientras
Los algoritmos evolutivos suelen clasicarse en cuatro grandes grupos seg un los
detalles de implementacion y la naturaleza de los problemas en los que aplican,
aunque en la pr actica es com un encontrar implementaciones que combinan sus ca-
ractersticas:
Algoritmos Geneticos Principalmente utilizados para resolver problemas de op-
timizaci on. Las soluciones suelen representarse como una cadena de bits y las
operaciones clasicas son la mutaci on y la recombinaci on de individuos.
Programaci on Genetica Suele utilizarse en inteligencia articial. Las soluciones
suelen ser programas y sus tness se calculan resolviendo alg un problema.
Programaci on Evolutiva Similar a programacion genetica pero en lugar de evolu-
cionar la estructuras de los programas evolucionan sus par ametros.
1. Introduccion 4
Estrategias Evolutivas Tienen como particularidad que adaptan sus parametros
en tiempo de ejecuci on.
1.1.2. Algoritmos Geneticos
Los algoritmos geneticos (GA) son los utilizados con mayor frencuencia dentro de
la familia de los algoritmos evolutivos. Suelen aplicarse a problemas de optimizaci on
combinatoria. En estos algoritmos, los individuos, que son denominados cromoso-
mas, son representados generalmente por cadenas binarias de longitud ja aunque
la representacion puede variar dependiendo del problema. A cada parte o atributo
de un cromosoma se lo denomina gen. Las operaciones que dan lugar a nuevos cro-
mosomas son la mutacion y el cruzamiento (crossover) y ambas operaciones crean
nuevos cromosomas, modicando o cruzando los genes de sus padres.
Mutacion Consiste en la alteraci on de uno o varios genes del cromosoma y se uti-
liza principalmente para mantener la diversidad en la poblacion. Su idea se
basa en la mutaci on biologica. El ejemplo m as claro es la alteracion de un bit
en una representacion binaria de un cromosoma:
1 0 0 1 0

1 0 1 1 0
Crossover An alogo a la reproducci on biologica y crossover biol ogico, consiste en
tomar m as de una soluci on padre y generar a partir de ellas, uno o m as cro-
mosomas hijos mediante el cruzamiento de genes. Existen varias tecnicas y
dependen entre otras variables de la estructura que se haya elegido para la
representaci on del individuo. Ejemplo de crossover en un punto sobre cadenas
de bits:
Padres
(1 1) 0 1 0
1 0 (0 0 1)
Hijos
(1 1 0 0 1)
1 0 0 1 0
1. Introduccion 5
En los GA, en cada iteraci on se selecciona un n umero de candidatos de la
poblaci on que seran luego utilizados para crear la nueva generaci on mediante las
operaciones geneticas. Con el objetivo de seleccionar en mayor proporcion los cro-
mosomas de buena calidad suelen utilizarse estrategias que involucran el tness.
Entre las m as utilizadas se encuentran Roulette Wheel Selection y Tournament Se-
lection. La primera simula ser una rueda de ruleta, donde los individuos de mayor
tness tienen mayor probabilidad de ser elegidos. En la segunda estrategia, se arman
peque nos grupos de individuos y se los hace competir entre s, resultando selecciona-
do el ganador de la competencia.
Para la creaci on de nuevas generaciones, es decir, la creaci on de una nueva
poblaci on a partir de los nuevos y viejos individuos, suelen utilizarse estrategias
de elitismo. Estas estrategias permiten mantener las soluciones de buena calidad
a lo largo de las distintas generaciones. Las poblaciones iniciales de estos tipos de
algoritmos son comunmente generadas de manera aleatoria aunque pueden imple-
mentarse mejoras.
1.1.3. B usqueda Local
Las b usquedas locales son metodos metaheursticos de optimizaci on que, a dife-
rencia de los anteriores, parten de una unica soluci on e iteran reiteradamente reali-
zando modicaciones sobre la misma. Mas precisamente, estos metodos comienzan
con una soluci on candidata a un problema determinado y reiteradamente se mueven
bajo alg un criterio de optimizaci on a una soluci on vecina hasta cumplir con alg un
objetivo de terminaci on.
Por lo general, una soluci on candidata tiene mas de una soluci on vecina. A este
conjunto de soluciones vecinas se lo denomina vecindario. La elecci on de esa soluci on
vecina se realiza utilizando informaci on exclusivamente del vecindario de la soluci on
candidata, de ah el nombre de b usqueda local. En el caso que el criterio de elecci on
consista en tomar siempre al mejor de todos los posibles vecinos, al metodo se lo
denomina Hill Climbing [11]. Cuando no existen mejoras entre las soluciones del
vecindario, se dice que el metodo se encuentra con una soluci on localmente optima.
El siguiente pseudoc odigo resume el comportamiento de esta clase de algoritmos:
1. Introduccion 6
1: solucionCandidata Armar u obtener la solucion a mejorar
2: mientras alg un criterio de parada hacer
3: vecinos buscar las soluciones vecinas de solucionCandidata
4: solucionCandidata seleccionar vecino bajo alg un criterio de vecinos
5: n mientras
1.2. Eternity II
Eternity II es un juego de mesa, creado por Christopher Monckton, que con-
siste en un rompecabezas del tipo Edge-Matching de 256 piezas cuadradas las cuales
poseen dibujos geometricos coloreados que deben coincidir en un tablero de 16 16.
Cada pieza tiene sus bordes marcados con diferentes combinaciones de for-
ma/color y los mismos deben coincidir con los bordes de sus chas vecinas. Se
utiliza solo una cara de las piezas, por lo tanto cada cha puede ser utilizada en solo
4 orientaciones. Existen 22 combinaciones de forma/color sin contar los bordes que
se consideran siempre planos de color gris. Como ayuda para la resoluci on, el juego
original indica una cha inicial que debe ubicarse cerca del centro del tablero.
Al momento de su lanzamiento exista una recompensa de 2 millones de d olares
para el primero que encontrase una soluci on, sin embargo hasta el da de la fecha
no se conoce una solucion completa.
1.2.1. Historia
En el a no 1999 Christopher Monckton lanzo la primer version de este juego, de-
nominado Eternity, con una recompensa de 1 millon de libras britanicas para aquel
que presentase una soluci on exacta antes de Septiembre del 2003. A diferencia de
su segunda version, Eternity era un rompecabezas del tipo Tilling que consista en
llenar un dodec agono regular con 209 piezas del mismo color pero de formas irregu-
lares.
1. Introduccion 7
Fig. 1.1: Juego de mesa Eternity II
El rompecabezas fue resuelto en el a no 2000 (dos a nos antes de lo que Mon-
ckton estimaba) por dos matem aticos de Cambridge, Alex Selby y Oliver Riordan
que explotaron ciertas debilidades en el dise no del rompecabezas mediante inge-
niosos c alculos probabilsticos y un algoritmo tipo Breadth-First Search (BFS) [1].
El premio se pago en parte con la venta de una propiedad de Monkton y con una
aseguradora.
En el a no 2007 Monckton, esta vez con colaboraci on de Selby y Riordan, lanzo la
segunda versi on del juego llamado Eternity II con un premio de 2 millones de d olares
para quien resolviera el rompecabezas antes de Febrero de 2011. El dise no de este
rompecabezas tuvo como objetivo mejorar las debilidades de la primer versi on dando
como resultado un rompecabezas que al parecer cuenta con un n umero reducido
posibles soluciones. Seg un palabras de Monckton en una nota con la revista The
Times:
Nuestros calculos indican que si se utilizase la computadora mas
poderosa del mundo y se dejase correr a partir de ahora hasta el nal
previsto del universo no podra encontrarse con una de las soluciones.
En el a no 2008 Louis Verhaard recibio un premio de diez mil d olares por presentar
una soluci on parcial con 467 coincidencias de un total de 480, pero a un al da de la
fecha, se desconoce una solucion completa.
1. Introduccion 8
1.2.2. Descripcion del problema
Para tener una nocion de la complejidad que puede llevar la resoluci on del
rompecabezas, contamos las combinaciones que pueden formarse con el mismo. Las
4 piezas de las esquinas (dos bordes grises) pueden ser ubicadas de 4! formas posi-
bles, las 56 piezas de los bordes (un borde gris) pueden ser ubicadas de 56! formas
posibles y las 196 piezas interiores pueden ser ubicadas de 196! 4
196
formas posibles
teniendo en cuenta que estas ultimas pueden ser rotadas. Esto da como resultado
un total aproximado de:
4! + 56! + 196! 4
196
5,12 10
483
Cada una de estas combinaciones es una posible solucion.
Erik y Martin Demaine [2] demostraron que existe una equivalencia directa entre
rompecabezas del tipo Jigsaw, Edge Matching y Polinomio Packing y que la resolu-
ci on de todos ellos es NP-completo. A n de que el lector comprenda el signicado
de esto ultimo en el contexto de nuestro trabajo, podemos decir que un problema
NP-completo implica, entre otras cosas, que no se conoce a la fecha un algoritmo
que lo resuelva de forma eciente (en un tiempo polinomial respecto del tama no de
la entrada) y, mas aun, tal vez ese algoritmo nunca exista [9].
El problema es comunmente modelado como un problema CSP (Constraint Sa-
tisfaction Problem) [12]. CSPs son problemas matem aticos que se denen mediante
una serie de restricciones que deben ser satisfechas asignando valores a las vari-
ables presentes en las restricciones. De cierta forma, son una generalizacion de SAT
(Boolean Satisabity Problem), donde en lugar de buscar una asignaci on de valores
booleanos que satisfagan una f ormula se busca una asignaci on a variables multival-
uadas que satisfagan todas las restricciones. Los valores posibles para cada variable
dependen del problema y pueden pertenecer a dominios distintos. Formalmente se
dene un problema CSP con una tupla de la siguiente manera:
{x
1
, x
2
, . . . , x
n
}, {d
1
, d
2
, . . . , d
n
}, {c
1
, c
2
, . . . , c
m
}
1. Introduccion 9
donde x
1
, x
2
, . . . , x
n
son las variables, d
1
, d
2
, . . . , d
n
son los dominios de cada una de
las variables, es decir, los valores que pueden tomar las mismas y c
1
, c
2
, . . . , c
m
son
las restricciones.
Debido al gran espacio de b usqueda que tiene el problema del rompecabezas,
generalmente no se busca encontrar una solucion completa al mismo, en su lugar
se intenta conseguir buenas soluciones en el sentido de maximizar la cantidad de
bordes coincidentes de una solucion. Desde esta perspectiva, el problema puede ser
tratado como MAX-CSP, que, analogo a MAX-SAT busca maximizar la cantidad
de restricciones que se cumplen en una asignaci on.
Otra forma que hemos encontrado de tratar el problema es directamente transfor-
marlo en un problema SAT. Heule [8] realizo un trabajo donde propone un metodo
de transformacion de este tipo de problemas a SAT y estudia las ventajas y desven-
tajas, incluso a nivel del rendimiento temporal que tiene el mismo.
2. TRABAJOS RELACIONADOS
En esta secci on se mencionan algunos trabajos de interes para esta tesis rela-
cionados con la resoluci on del rompecabezas EternityII. Los mismos utilizan tecni-
cas basadas en metaheursticas.
En el a no 2009 Mu noz y col. [6] presentaron un trabajo donde analizaron algu-
nas tecnicas evolutivas aplicadas a problemas del tipo satisfacci on de restricciones.
Utilizaron como caso de estudio el rompecabezas EternityII. En dicho trabajo ex-
plican tres algoritmos evolutivos: un algoritmo genetico, una implementaci on propia
motivada en conceptos relacionados a sistemas biologicos inmunes y un algoritmo
evolutivo multi-objetivo basado en el algoritmo genetico. Los mejores resultados los
consiguieron con el algoritmo evolutivo multi-objetivo con un valor de tness m axi-
mo de 396 y una media de 392,5.
Dentro del contexto de las conferencias internacionales en metaheursticas y com-
putaci on inspirada en la naturaleza que se realizaron en el a no 2010 [4] , Coelho y
sus colaboradores [3] presentaron un trabajo basado en la metaheurstica Variable
Neighborhood Search. Esta metaheurstica se basa en realizar una b usqueda local
pero cambiando sistem aticamente el vecindario sobre el cual buscar, lo que permite
entre otras cosas salir con mayor facilidad de m aximos locales y ampliar el espacio de
b usqueda. Los resultados muestran su mejor soluci on con un score de 425, dejando
correr el algoritmo un tiempo lmite de una hora.
Dentro de las misma conferencia, publicaron su trabajo Wei-Sin Wang y col. [15]
quienes utilizaron un algoritmo Tabu Search para la resoluci on del problema. El al-
goritmo consiste b asicamente en dos fases, la primera dedicada a resolver los bordes
y esquinas del rompecabezas y la segunda fase dedicada a la parte interna. Ambas
fases utilizan Tabu Search y en algunos casos Simulated Annealing para escapar de
m aximos locales. Tabu Search es un metodo que consiste en realizar una b usqueda
local pero manteniendo una estructura de memoria de vecinos (casi siempre una lista
temporal denominada lista Tab u) que no se deben volver a visitar, al menos por un
10
2. Trabajos Relacionados 11
tiempo. Otra opcion usada es que en lugar de guardar los vecinos que no se deben
volver a visitar se guarden como tab u ciertos atributos que denen a los vecindarios.
El trabajo di o como resultados soluciones con promedio del score cercano a 408 y
como mejor solucion a una con 418. Dentro de sus conclusiones hacen menci on a la
gran cantidad de locales optimos que presenta el problema.
Las mejores soluciones hasta el momento, siempre dentro del uso de metaheursti-
cas, pertenecen al algoritmo creado por Schaus y su equipo en el a no 2008 [10] con
un score de 458 y al equipo de Vancroonenburg [14] que en el a no 2010 llegaron a un
score de 459, siempre sobre un total de 480. Los primeros utilizaron un algoritmo que
combina Constraint Programming con el metodo Very Large Neighborhood Search
y los segundos implementaciones basadas en hiper-heursticas. Si bien las instancias
que utilizaron para las pruebas no parecen ser exactamente las correspondientes al
EternityII, las mismas son de caractersticas similares por lo que entendemos que las
soluciones pertenecen a las mejores encontradas hasta el momento dentro del campo
de las metaheursticas.
Fuera del ambito de las metaheursticas, la mejor soluci on encontrada hasta el
momento corresponde a Louis Verhaard [7], que como se menciono anteriormente,
recibi o un premio de diez mil d olares en el a no 2008 por presentar una soluci on
parcial con un score de 467. Para encontrar la soluci on utiliz o un algoritmo hbrido
(no metaheurstico) que, seg un sus palabras, no resulta de mucho interes desde un
punto de vista te orico. El algoritmo mezcla backtracing con reinicios, una tecnica
para calcular el scoring de grupos de piezas y un metodo para separar las piezas
buenas de las malas en funci on de las veces que las mismas pueden ser utilizadas
para lograr una coincidencia de borde con otras piezas.
3. ALGORITMO PROPUESTO
3.1. Dise no
A continuaci on mostramos un pseudoc odigo que resume el comportamiento ge-
neral del algoritmo implementado:
1: iteracion 1
2: poblacion generar poblacion inicial
3: evaluar el tness de cada individuo de la poblacion
4: mientras iteracion MAXITERACIONES hacer
5: padres seleccionar aleatoriamente individuos
6: si iteracion mod 150 = 0 entonces
7: hijos realizar busqueda local sobre padres
8: si no
9: hijos realizar operaciones geneticas sobre padres
10: n si
11: evaluar el tness de cada individuo en hijos
12: poblacion crear una nueva poblacion a partir de poblacion e hijos
13: iteracion iteracion + 1
14: n mientras
3.1.1. Representaci on
Bas andonos en el dominio del rompecabezas decidimos modelar a los cromoso-
mas mediante una matriz que representa el tablero y a los genes mediante 4-tuplas
que representan las piezas (ver gura 3.1). Cada una de las proyecciones de la 4-
tupla contiene un n umero entero entre 0 y 22 que representan una combinaci on
color/forma posible de los bordes de las piezas.
En la primer posici on de la 4-tupla se encuentra la combinacion perteneciente al
borde superior de la pieza, en la segunda posicion la perteneciente al borde derecho,
12
3. Algoritmo Propuesto 13
en la tercer posici on la del borde inferior y en la cuarta posici on la del borde izquier-
do. El n umero 0 representa la combinaci on gris/plano reservada para los bordes del
tablero.
Debido a la facilidad de mapeo entre el problema real y su modelado, a lo largo
del trabajo nos referiremos de forma indistinta entre matriz y tablero y entre pieza
y tupla.
X =
_
_
_
_
_
_
< 0, 1, 1, 0 > < 0, 1, 2, 1 > < 0, 3, 4, 1 > < 0, 0, 3, 3 >
< 1, 2, 3, 0 > < 2, 2, 4, 2 > < 4, 4, 5, 2 > < 3, 0, 1, 4 >
< 3, 5, 3, 0 > < 4, 4, 5, 5 > < 5, 2, 5, 4 > < 1, 0, 3, 2 >
< 3, 1, 0, 0 > < 5, 3, 0, 1 > < 5, 1, 0, 3 > < 3, 0, 0, 1 >
_
_
_
_
_
_
Fig. 3.1: Ejemplo de representacion de un tablero de 4 x 4
3.1.2. Poblaci on Inicial
Los cromosomas de la poblacion inicial son generados principalmente de forma
aleatoria, tanto en ubicaci on de las piezas como en la rotaci on de las mismas. Para
los casos particulares de las piezas bordes y las esquineras, las mismas son ubi-
cadas aleatoriamente en bordes y esquinas respectivamente tomando en cuenta que
el/los bordes grises de las piezas coincidan con el/los bordes grises del tablero. De
esta forma se consiguen soluciones iniciales mejores a las elegidas totalmente al azar.
3. Algoritmo Propuesto 14
Con el n de evitar la construcci on de soluciones rotadas del rompecabezas de-
cidimos jar en esta etapa la pieza de la esquina superior izquierda del tablero. Con-
secuencia de esto, todos los cromosomas contendran en la posici on X
11
al mismo gen.
3.1.3. Funcion de Evaluacion
La funcion de evaluaci on de una soluci on (individuo, cromosoma) consiste en
contar la cantidad de los bordes de las piezas adyacentes que coinciden en forma y
color. No tomaremos en cuenta los bordes ni esquinas, ya que es un invariante para
nosotros que los mismos se encuentren posicionados correctamente durante todo el
algoritmo.
Dada la matriz X que representa el tablero y las tuplas x
ij
que representan las
piezas, denimos las siguientes funciones y operaciones:
Sea t una 4-tupla:

l
(t) devuelve la primer componente de la tupla (borde izquierdo).

t
(t) devuelve la segunda componente de la tupla (borde superior).

r
(t) devuelve la tercer componente de la tupla (borde derecho).

b
(t) devuelve la cuarta componente de la tupla (borde inferior).
Sean x e y dos n umeros enteros, denimos la siguiente funci on:
iguales(x, y) =
_
1 si x = y
0 si x = y
Denimos entonces la funci on de evaluacion Ft(X) de la siguiente manera:
Ft(X) =

1in
1j<n
_
iguales(
r
(x
i,j
),
l
(x
i,j+1
))
_
+

1i<n
1jn
_
iguales(
b
(x
i,j
),
t
(x
i+1,j
))
_
De esta forma, el mayor valor que puede tomar la funci on de evaluacion en un
tablero cuadrado de n n es de 2 n (n 1) y representa una soluci on exacta.
Para nuestro caso, el tablero es de 1616 por lo que el valor de una solucion exacta
ser a de 480.
3. Algoritmo Propuesto 15
3.1.4. Seleccion
Para seleccionar los individuos de una poblacion que seran utilizados como padres
en la generaci on de la nueva poblaci on probamos dos tecnicas comunmente uti-
lizadas. En una primera instancia utilizamos Roulette Wheel Selection [16] que con-
siste en asociar una probabilidad de ser elegido a cada uno de los individuos de la
poblaci on basandose en la funcion de evaluaci on. Cuanto mayor sea el valor de la
funci on de evaluacion, mas posibilidades tiene el individuo de ser elegido. De esta
manera se intenta ampliar el espacio de b usqueda y disminuir la probabilidad de en-
trar en un maximo local y, a la vez, darle mayor importancia a aquellos individuos
que poseen una buena carga genetica. En segundo lugar probamos seleccionando los
individuos simplemente al azar.
Luego de realizar varias pruebas, decidimos dejar en la implementacion nal
la elecci on aleatoria de los individuos. Las pruebas realizadas con Roulette Wheel
Selection nos arrojaron resultados similares en cuestion de tness, pero una peque na
y obvia penalizaci on en la performance del algoritmo, la que le quito importacia a
su utilizacion.
3.1.5. Operadores
A continuaci on comentaremos los operadores utilizados en el algoritmo medi-
ante los cuales se realizan las operaciones que dan lugar a los nuevos individuos.
Cabe aclarar que siempre trabajamos con soluciones legales respecto al dominio del
rompecabezas, en el sentido de que los operadores no mezclan piezas entre distintas
soluciones ni ubican piezas bordes o esquineras en la zona interior del tablero, m as
a un, siempre las piezas bordes y esquineras se ubican de forma tal que sus bordes
grises coincidan con los bordes del tablero.
3.1.5.1. Mutacion
El algoritmo utiliza tres operadores distintos de mutaci on. La eleccion del ope-
rador utilizado se determina en tiempo de ejecucion basado en una probabilidad
asignada a cada uno de los mismos.
3. Algoritmo Propuesto 16
Intercambio de Filas
Consiste en intercambiar todas las piezas entre dos las del tablero. Las las a in-
tercambiar son seleccionadas de manera aleatoria teniendo en cuenta no utilizar las
las de los bordes del tablero. Durante el intercambio, las piezas son ubicadas ex-
actamente en la misma columna donde se encontraban originalmente, es decir, solo
cambian de la.
Intercambio de Columnas
Idem al intercambio de las pero entre columnas.
Intercambio de Piezas
El intercambio de piezas consiste en elegir dos piezas al azar e intercambiar las mis-
mas. Dentro de la seleccion se incluyen bordes y esquinas, pero con la salvedad que
las mismas se pueden intercambiar solo con otro borde o esquina respectivamente.
En estos ultimos casos, las piezas son rotadas hasta que coincidan con los bordes
del tablero para mantener la legalidad de la soluci on.
Siempre que una pieza interior es intercambiada por otra, las mismas son rotadas
hasta conseguir maximizar la cantidad de piezas vecinas coincidentes en bordes de
sus nuevas ubicaciones. Esto ultimo permite por un lado, conseguir mejores resul-
tados en cuanto al tness, y por otro, lograr diversidad en las soluciones, ya que al
rotar la pieza para su mejor ubicacion se genera una nueva rama de oportunidades.
3.1.5.2. Crossover
Copia de region
El operador consiste en copiar una region de piezas de un tablero en otro. Es un
crossover entre dos tableros que genera un solo ospring. Para llevar a cabo la
operaci on, se selecciona una regi on de manera aletoria del segundo tablero y se in-
tercambian y rotan las chas del primer tablero hasta lograr que quede esa region
con la misma conguraci on que el segundo.
La selecci on de la region a copiar dentro del tablero se realiza de forma aleatoria
y la dimensi on de la region es proporcional al tama no del rompecabezas. Para el
caso del EternityII, la dimension de la region que nos arroj o mejores resultados es
de 8 8.
3. Algoritmo Propuesto 17
3.1.6. B usqueda Local
Tal como puede observarse en el pseudocodigo de nuestro algoritmo (seccion
3.1), cada cierto n umero de iteraciones realizamos una b usqueda local en algunos de
los individuos de la poblaci on. La eleccion de los individuos que participar an de la
misma se realiza utilizando Roulette Wheel Selection [16].
La b usqueda local consiste, b asicamente, en realizar de forma reiterada un inter-
cambio de piezas dentro del tablero, rotando ademas las mismas para que se ajusten
lo mejor posible a sus nuevas ubicaciones. Este procedimiento se realiza para cada
uno de los individuos seleccionados. En cada iteraci on de la b usqueda local, se arma
una matriz W del mismo tama no del tablero X que ponderar a la elecci on de piezas
a intercambiar. El valor de cada w
ij
se calcula teniendo en cuenta la cantidad de
piezas adyacentes que no coinciden en bordes con la pieza x
ij
del tablero.
w
ij
= (sumarAdyacentesNoCoincidentes(x
ij
) + 1)
C
La idea es que aquellas piezas que se encuentran peor ubicadas tengan mas pro-
babilidad de ser seleccionadas para el intercambio.
Una vez armada la matriz de pesos se selecciona de forma aleatoria una primer
pieza. La elecci on, como mencionamos anteriormente, se realiza de forma tal que
aquellas piezas que tengan un peso mayor en la matriz W tengan mas posibilidades
de ser seleccionadas. Luego se procede a ajustar la matriz de pesos quitando (ponien-
do en 0) aquellos valores w
ij
que no deben ser tomados en cuenta para seleccionar
la segunda pieza. Por ejemplo, si la primer pieza seleccionada pertenece a un borde,
entonces se ponen en 0 todas las piezas interiores y las esquineras, ya que de no
hacerlo se pone en riesgo la legalidad de nuestras soluciones. Luego se procede con
la seleccion de la segunda pieza de la misma forma que se hizo con la primera y por
ultimo el intercambio de las mismas. Esta operacion se repite un n umero constante
de veces.
3. Algoritmo Propuesto 18
W =
_
_
_
_
_
_
(0 + 1)
C
(1 + 1)
C
(0 + 1)
C
(0 + 1)
C
(1 + 1)
C
(3 + 1)
C
(2 + 1)
C
(1 + 1)
C
(2 + 1)
C
(1 + 1)
C
(1 + 1)
C
(0 + 1)
C
(1 + 1)
C
(0 + 1)
C
(1 + 1)
C
(0 + 1)
C
_
_
_
_
_
_
Fig. 3.2: Ejemplo de matriz de pesos para un tablero sin armar
3.1.7. Reemplazo
Una vez seleccionados los individuos y realizadas las operaciones sobre los mis-
mos, se prosigue con la formacion de la nueva generaci on poblacional. Para esto es
necesario reemplazar algunos individuos de la poblaci on anterior con los reciente-
mente obtenidos. El reemplazo se realiza de forma elitista, es decir, se seleccionan
de la poblaci on anterior los individuos que peores resultados tienen en cuanto a la
funci on de evaluacion y se los reemplaza por los nuevos, permitiendo de esta manera
la convivencia de padres e hijos dentro de la poblacion.
3.2. Implementaci on
La implementacion consiste principalmente de dos m odulos bien denidos, el
primero el algoritmo genetico y el segundo una interfaz graca que permite visu-
alizar las soluciones, ejecutar pruebas y modicar algunos par ametros. En ambos
3. Algoritmo Propuesto 19
casos, el desarrollo se realizo utilizando el lenguaje de programacion Java.
A continuaci on se muestra un diagrama con las principales clases que intervienen
en la soluci on:
3. Algoritmo Propuesto 20
Fig. 3.3: Diagrama con principales clases
3. Algoritmo Propuesto 21
Para la visualizacion de las piezas de los rompecabezas se reemplaz o cada com-
binaci on color/patron por un color unico.
La implementaci on de la b usqueda local la realizamos utilizando varios hilos de
ejecuci on para poder optimizar mas de una soluci on a la vez y poder as disminuir
el tiempo de procesamiento. La cantidad de threads que utilizamos vara seg un la
cantidad de n ucleos de la CPU utilizada.
3.2.1. Parametros
La determinaci on de los par ametros fue realizada durante la etapa de dise no y
prueba del algoritmo. Los resultados que motivaron las decisiones tomadas pueden
encontrarse en el apendice A. A continuaci on se enumeran los principales parametros
utilizados:
Tama no de la poblacion: 15 individuos.
Control de parada del algoritmo: por n umero de iteraciones.
Probabilidad de mutacion: 15 %.
Probabilidad de RowExchangeMutationOperator: 10 %.
Probabilidad de ColumnExchangeMutationOperator: 10 %.
Probabilidad de SwapAndRotateMutationOperator: 80 %.
Tama no de bloque de RegionExchangeCrossoverOperator:
n
2

n
2

Ejecuci on de b usqueda local: cada 150 iteraciones


Individuos a realizar b usqueda local por ejecucion: 50 % de la poblaci on.
Iteraciones por cada b usqueda local: 2000.
Threads por ejecuci on de b usqueda local: cantidad de n ucleos del CPU.
Elitismo: 20 % de la poblaci on.
4. RESULTADOS
Las pruebas fueron realizadas siempre bajo las mismas condiciones y en la misma
computadora, la cual cuenta con un procesador Intel Core 2 Duo con dos n ucleos de
2.20GHz cada uno, 4GB de memoria RAM y sistema operativo Linux. La version
de Java utilizada fue la 1.7.0 25.
Los casos de pruebas utilizados para correr los experimentos fueron obtenidos
de dos fuentes: un gran set de rompecabezas de diversos tama nos fue obtenido
del sitio de International Conference on Metaheuristics and Nature Inspired Com-
puting (META), edici on 2010 [4], donde se realiz o un concurso inspirado en el
rompecabezas Eternity II y, por otro lado, las piezas correspondientes al rompecabezas
EternityII fueron conseguidas a traves de una red de intercambio de archivos peer-
to-peer y comprobada su validez a traves del chequeo que ofrece el programa E2Lab
[13].
A continuaci on mostramos y analizamos los resultados que consideramos mas
relevantes del trabajo. En el apendice A pueden encontrarse mas resultados, in-
cluyendo aquellos sobre los cuales se decidieron los valores de los par ametros del
algoritmo y tambien algunos operadores alternativos que fuimos probando durante
la construcci on del mismo. A menos que se indique lo contrario, el caso de prueba
utilizado en los resultados es el del rompecabezas EternityII.
Se analiz o la evolucion del tness de la mejor solucion de la poblaci on en funci on
del tiempo de ejecucion del algoritmo medido en segundos. En la gura 4.1(a) se
puede observar una comparacion de este comportamiento entre el algoritmo evolu-
tivo con b usqueda local y una version del mismo sin b usqueda local. En el graco
4.1(b) se utiliz o escala logartmica en el tiempo para una mejor lectura y compren-
si on de los datos.
22
4. Resultados 23
(a) Escala normal
(b) Escala logartmica
Fig. 4.1: Comparacion del comportamiento entre implementaciones
En ambas series de datos puede observarse que el crecimiento del tness es muy
marcado hasta los primeros 10 segundos y luego contin ua creciendo paulatinamente
hasta los 100 segundos para nalmente estabilizarse. El algoritmo con b usqueda local
consigue en todo momento soluciones mejores respecto al algoritmo sin la modi-
caci on, incluso llegando a soluciones por arriba de los 400 puntos de tness en menos
de 100 segundos. Tambien puede observarse, en el comportamiento del algoritmo con
b usqueda local, incrementos en forma de peque nos saltos de su tness, que se van
haciendo menos frecuentes a lo largo del tiempo pero que a un, cercano a los 500
segundos siguen sucediendo. Este comportamiento es clave en el funcionamiento del
algoritmo y fue lo que nos motiv o, ademas del incremento del tness, a implementar
el uso de b usqueda local.
4. Resultados 24
Con el n de comprender mejor el comportamiento en forma de saltos anteri-
ormente mencionado, se decidi o cuanticar el concepto de similitud entre dos solu-
ciones. Para esto, denimos la similitud de dos soluciones de la siguiente manera:
Dadas dos soluciones X1 y X2 de tama no n n,
similitud(X1, X2) =

0in
0j<n
f(x1
i,j
, x2
i,j
)
n n
donde
f(x1, x2) =
_

_
1 si
t
(x1) =
t
(x2)
r
(x1) =
r
(x2)

b
(x1) =
b
(x2)
l
(x1) =
l
(x2)
0 cc.
Es decir, la similitud es un valor real que va de 0 a 1 y depende de cuantas piezas
coinciden en posici on y colores entre los dos rompecabezas comparados. Cuanto m as
cercano a 1 es este valor mayor similitud tienen las soluciones.
La tabla 4.1 muestra parte de los registros de una ejecuci on del algoritmo.
4. Resultados 25
Iteracion Fitness Similitud
9400 410 1
9500 413 0.4
9600 413 1
9700 413 0.87
9800 413 0.98
9900 413 1
10000 415 0.81
10100 415 1
10200 415 1
.
.
.
.
.
.
.
.
.
24900 418 1
25000 418 1
25100 419 0.17
25200 419 1
25300 420 0.93
25400 420 1
25500 420 1
25600 420 1
Tab. 4.1: Fragmento de ejecucion que muestra la mejor solucion conseguida hasta el mo-
mento
En la primer columna se encuentra el n umero de iteraci on, la segunda el tness
del mejor individuo que se encuentra en la poblaci on en esa iteraci on y la tercera la
similitud de ese individuo respecto del mejor individuo del registro anterior. Puede
observarse que cuando no se encuentra una mejor soluci on, la similitud es general-
mente 1, es decir, la mejor solucion generalmente sigue siendo la misma que en el
registro anterior aunque puede tratarse de otra solucion del mismo tness que la
anterior pero distinta como es el caso de las iteraciones 9600, 9700 y 9800.
En el caso de que s se encuentre una mejor soluci on, la similitud toma diversos
valores, a veces altos como en el caso de la iteraci on 10000 y a veces bajos como
en el caso de la iteracion 9500. Un valor alto (siempre tomando en cuenta los casos
distintos de 1) generalmente signica que esa nueva solucion es similar a la anterior
4. Resultados 26
pero con algunas peque nas modicaciones que pueden haber sido generadas por el
operador SwapMutationOperator o por la b usqueda local sobre la mejor soluci on.
En cambio, cuando el valor es bajo, menor al 80 %, puede tener dos signicados: la
mejora proviene del operador crossover; o que la b usqueda local en alguna otra solu-
ci on hizo que la misma pase a tener importancia, ayudada por el factor de elitismo
del algoritmo. Es en este ultimo caso donde se puede observar la mejora que intro-
duce la b usqueda local al algoritmo evolutivo. Esto puede explicarse debido a que el
algoritmo evolutivo permite diversicar las soluciones explorando dentro del espacio
de b usqueda y la b usqueda local hace resaltar las buenas soluciones dentro de esa
exploraci on. Este comportamiento puede incluso observarse luego de varios minutos
de ejecuci on, como es el caso de las iteraciones 25000 y 25100, y es el que le da senti-
do al crecimiento escalonado que se observa en los gracos mostrados en la gura 4.1.
Si bien el algoritmo con la b usqueda local presenta, en este problema, siempre
mejores resultados que la implementaci on sin la misma, el costo a nivel rendimiento
es considerablemente alto tal como se muestra en la guura 4.2.
Fig. 4.2: Comparacion del tiempo entre implementaciones
La gura muestra la cantidad de iteraciones en escala logartmica en funcion del
tiempo de ejecucion medido en segundos para tres versiones distintas del algoritmo:
sin b usqueda local, con una b usqueda local simple sin ejecuciones en paralelo y con
la b usqueda local nalmente implementada que, para nuestro caso particular, posee
una cantidad de 2 hilos de ejecuci on.
4. Resultados 27
Se observa claramente que los algoritmos con b usqueda local iteran muchas
menos veces, en relaci on de 1 a 10 respecto a la misma versi on pero sin la b usque-
da local. Asimismo, puede observarse una importante mejora en la utilizaci on de
threads relativo a la misma implementacion, pero con un solo hilo de ejecucion,
aunque la misma parece despreciable respecto a la implementaci on sin la heursti-
ca local. Igualmente, y teniendo en cuenta las arquitecturas de las PCs contemo-
poraneas, debera ser posible mejorar mucho mas este resultado congurando mas
hilos de ejecucion y sin la necesidad de recurrir a sistemas distribuidos. Como se
coment o anteriormente, este aspecto no result o limitante ya que a un con la desven-
taja del rendimiento, hemos conseguido mejores resultados con la implementaci on
de varios hilos y fundamentalmente, un mejor comportamiento del algoritmo.
La variacion del rendimiento del algoritmo respecto a las diferentes instancias puede
resumirse en el gr aco comparativo que se observa en la gura 4.3.
Fig. 4.3: Comparacion del tiempo entre instancias
La gura 4.3 compara las iteraciones en funcion del tiempo medido en segundos
para las instancias 10 10, 12 12, 14 14 y 16 16. Como era esperado, puede
observarse que a medida que se incrementa el tama no de la instancia, disminuye la
cantidad de iteraciones, es decir, el tiempo en completar cada iteraci on es mayor.
Se debe considerar en el an alisis de estos resultados que el incremento de piezas por
instancia no es lineal sino que polin omico (n
2
).
A continuaci on analizamos los resultados nales obtenidos sobre las diferentes
4. Resultados 28
instancias incluyendo al EternityII (tabla 4.2). Los datos corresponden a 10 ejecu-
ciones independientes del algoritmo. Se establecio un lmite de 128000 iteraciones
por ejecuci on dado que el tiempo que demanda es suciente para alcanzar una es-
tabilidad en el algoritmo como se mostr o en la gura 4.1.
Instancia Max Sol Posible Iteraciones Mejor Sol Duracion (seg) ES VS
6x6 60 57041 60 42.7 59.8 0.40
7x7 84 128000 81 183.2 80.6 0.27
10x10 180 128000 165 281.9 162.6 2.49
12x12 264 128000 239 378.1 234.8 6.18
14x14 364 128000 321 531.0 318.2 5.07
16x16
1
480 128000 431 626.7 426.3 8.23
Tab. 4.2: Resultados nales en las diferentes instancias
La primera columna corresponde a la instancia; la segunda indica el maximo val-
or que el tness puede tomar para esa instancia y que correspondera a una solucion
exacta del rompecabezas; la tercera columna muestra el promedio de iteraciones
ejecutadas; la siguiente corresponde al tness de la mejor solucion conseguida en
las 10 ejecuciones; la quinta columna muestra el promedio de tiempo necesario para
cumplir con la totalidad de las iteraciones, expresado en segundos, y las ultimas dos
columnas corresponden a la esperanza y a la varianza muestral del tness de las
mejores soluciones obtenidas.
Lo primero que podemos observar es que la solucion presentada resuelve en aprox-
imadamente 40 segundos el rompecabezas de 6 6 con una valor de varianza bajo,
lo que indica que lo resuelve casi la totalidad de las veces. No se observa lo mismo en
instancias mas grandes ya que no ha sido posible resolverlas de forma completa. Por
ejemplo, en la instancia correspondiente al Eternity II, la mejor soluci on encontrada
fue de 431 con un promedio de 426, de un m aximo posible de 480, lo que representa
una mejora considerable respecto a las soluciones presentadas por otros algoritmos
evolutivos, incluso utilizando un tiempo hasta 6 veces menor en algunas ocasiones
(Ver trabajos relacionados en secci on 2).
1
Instancia correspondiente al rompecabezas EternityII
4. Resultados 29
Otro resultado de interes que se desprende de la tabla 4.2 corresponde a los
porcentajes de completitud que en promedio se han conseguido. La siguiente tabla
resume este dato:
Instancia Completitud
6x6 99.7 %
7x7 96.0 %
10x10 90.3 %
12x12 88.9 %
14x14 87.4 %
16x16 88.8 %
Tab. 4.3: Porcentajes de completitud promedio de las diferentes instancias
Se observa en la tabla 4.3 que en todos los casos el porcentaje de completitud
promedio supera el 87 %, es decir, mas del 87 % del rompecabezas ha sido resuelto.
Este dato es considerablemente mayor para las instancias de menor tama no.
A continuacion mostramos las im agenes de dos soluciones encontradas: una
perteneciente a la instancia 6 6 resuelta de forma completa; la otra a la mejor
soluci on encontrada para la instancia correspondiente al Eternity II:
Fig. 4.4: Mejor solucion en instancia 6 6 (60/60)
4. Resultados 30
Fig. 4.5: Mejor solucion del EternityII (431/480)
4. Resultados 31
Para concluir esta seccion, mostramos una comparaci on entre nuestros resulta-
dos obtenidos sobre la instancia 16x16, correspondiente al EternityII, y aquellos
conseguidos por los trabajos relacionados dentro del campo de las metaheursticas,
comentados en la secci on 2.
Mejor Solucion Promedio Tecnica Autores
396 392.5 GA
1
Mu noz y col.
418 408.6 Tabu Search y SA
1
Wei-Sin y col.
425 419.6 VNS
1
Coelho y col.
431 426.3 GA
1
y B usqueda Local Tesis
458 440 Contraint Programming y VLNS
1
Schaus y col.
459 456.4 Hiper Heursticas Vancroonenburg y col.
Tab. 4.4: Comparacion con trabajos relacionados
Teniendo en cuenta que los ultimos casos no pertecen exclusivamente a tecnicas
relacionadas a las metaheursticas, puede observarse que la soluci on presentada en
este trabajo tuvo un resultado favorable.
Respecto al rendimiento temporal del algoritmo, no hemos podido realizar una
comparaci on directa de los resultados entre los diversos autores. Esto se debe prin-
cipalmente a que los mismos toman en cuenta distintos aspectos de rendimiento.
Algunos toman la cantidad de iteraciones, otros la cantidad de veces que se eval ua
la funcion de evaluacion, otros el tiempo hasta conseguir la mejor soluci on y en otros
casos el tiempo lmite que se ejecuto el algoritmo. En el caso de Wei-Sin, Coelho y
Schaus, el tiempo lmite que se ejecuto el algoritmo fue de 3600 segundos, 1 hora
y 24 horas respectivamente. Para el caso de Vancroonenburg la mejor soluci on se
encontr o a los 1005 segundos.
1
GA = Genetic Algorithm; SA = Simulated Annealing; VNS = Variable Neighborhood Search;
VLNS = Very large-scale neighborhood search
5. CONCLUSIONES
Los algoritmos geneticos son ampliamente utilizados para la resolucion de proble-
mas de optimizacion combinatoria. En el caso particular del problema Eteniry II, los
trabajos relacionados que utilizaron este metodo mostraron no ser del todo ecientes
en encontrar buenas soluciones al mismo. Nuestros resultados muestran, tal como
sugirieran algunos autores, que el agregado de una b usqueda local mejora la calidad
de las soluciones encontradas. La combinaci on de ambas tecinas parece complemen-
tarse de manera satistactoria para este problema, donde el algoritmo genetico evita
caer de manera temprana en maximos locales recorriendo diferentes vecindarios y,
la b usqueda local, busca de manera eciente soluciones dentro de un determinado
vecindario.
Al comparar con resultados de otros trabajos, el algoritmo genetico combinado
con b usqueda local consigue mejores resultados en varios casos y resultados similares
a otros, pero utilizando un menor tiempo de ejecuci on. Si bien se muestra que el
rendimiento del algoritmo se ve notablemente afectado al combinarlo, los resultados
conseguidos son favorables respecto a la calidad de las soluciones, incluso en menor
tiempo de ejecuci on, por lo que el trade-o se puede considerar adecuado.
Si bien las mejores soluciones encontradas hasta el momento, incluso aquellas
halladas fuera del ambito de las metaheursticas, parecen estar cerca de las con-
seguidas por el algoritmo genetico combinado, pudimos mostrar que disminiur ese
margen resulta muy dicil utilizando esta tecnica. Probablemente esto se deba a la
gran cantidad de optimos locales que se encuentran en el medio.
Como trabajo futuro podemos pensar en involucrar operadores con conocimiento
del dominio del problema, tanto dentro del algoritmo genetico como en la imple-
mentaci on de la b usqueda local. Ejemplo de esto podra ser tener en cuenta bloques
completos del rompecabezas al momento de realizar las operaciones de mutaci on y
crossover o al momento de seleccionar que piezas intercambiar dentro de la b usque-
da local. Otras opciones tambien puede ser la utilizacion de una funci on de tness
32
5. Conclusiones 33
adaptativa o incluso que el comportamiento completo del algoritmo sea adaptativo
modicando los par ametros seg un las necesidades.
Apendice
A. EVOLUCI

ON Y OBTENCI

ON DE PAR

AMETROS
A continuaci on se muestran algunos resultados que se fueron obteniendo a lo
largo del desarrollo y optimizaci on del algoritmo presentado en la secci on 3.1. La
evoluci on se puede entender en dos etapas. La primera consistio en pruebas iniciales
y generales para observar el comportamiento del algoritmo a medida que se le iban
realizando mejoras y probando con diversas implementaciones de crossovers y mu-
taciones. La segunda etapa consisti o en ajustes y mejoras con sets de datos m as
grandes.
En cada una de las pruebas expuestas se menciona de manera resumida las
principales modicaciones hechas al algoritmo, as como tambien la conguracion
de parametros.
A.1. Etapa I
Se realizaron pruebas en rompecabezas de 5 5 y 10 10. Se tom o el promedio
de 3 corridas en poblaciones de 50, 100 y 200 individuos.
A.1.1. Algoritmo
Operaciones de mutacion:
Rotar: Rota una pieza 90
o
a la derecha
Swap: Intercambia dos piezas del tablero respetando bordes con bordes y es-
quinas con esquinas. Adem as rota los bordes y las esquinas para que los lados
bordes de las chas coincidan con el tablero.
Operaciones crossover:
SimpleCrossover: selecciona de forma aleatoria la mitad de las chas de un
tablero y las cruza al otro. Esta operacion se implement o de forma tal que
no rompa la integridad de las soluciones, es decir, toma soluciones legales y
35
A. Evolucion y Obtencion de Parametros 36
retorna una solucion legal. La selecci on de los individuos se realiza mediante
la tecnica Roulette Wheel Selection.
Parametros
Probabilidad de mutacion: 20 %
Crossover: SimpleCrossover: 50 % de chas
Mutaci on 1: Rotar (p 1/2)
Mutaci on 2: Swap (p 1/2)
Selecci on: Roulette: 50 % seleccionados
Reemplazo: Menor tness (50 % poblacion)
Resultados
5x5 10x10
Pob. It. Mejor F

F

T Mejor F

F

T
50 2000 34 33 0,4 112 109,33 1,13
50 4000 32 32 0,5 121 117 1,89
50 8000 36 34,67 0,95 121 117,33 3,63
50 16000 34 33,67 1,87 128 123,33 7,15
50 32000 35 33,33 3,75 127 125,33 14,33
50 64000 36 35,33 7,51 132 129,67 28,75
100 2000 33 32,33 0,51 118 115,67 1,89
100 4000 35 33,33 0,98 116 115 3,63
100 8000 34 33 1,95 129 125 7,29
100 16000 36 34 3,91 126 125 14,53
100 32000 35 34 7,83 131 129,67 29,04
100 64000 35 34,67 15,71 134 130,33 58,16
200 2000 35 34,67 1,07 126 123,67 3,9
200 4000 36 35,33 2,11 127 124,33 7,82
200 8000 36 34,67 4,21 130 125,67 15,32
200 16000 36 34,33 8,48 131 127 30,43
200 32000 37 36,67 16,84 132 130,33 60,77
200 64000 36 34,67 33,64 136 131,67 121,48
A. Evolucion y Obtencion de Parametros 37
A.1.2. Algoritmo
Se agrega el crossover ShortestPathCrossover: Busca un camino mnimo entre
dos piezas dentro de un rompecabezas. El peso de los ejes se calcula en funci on de
la coincidencia de bordes entre piezas. Una vez encontrado el camino, el mismo es
llevado al otro rompecabezas para generar la solucion hija. No rompe la integridad
de las soluciones. La idea es que en el cruce de soluciones se intercambie una parte
del rompecabezas que se encuentra bien armada en funcion de la coincidencia de
bordes.
Parametros
Probabilidad de mutacion: 20 %
Crossover 1: SimpleCrossover 50 % de chas (p 8/10)
Crossover 2: ShortestPathCrossover (p 2/10)
Mutaci on 1: Rotar (p 1/2)
Mutaci on 2: Swap (p 1/2)
Selecci on: Roulette: 50 % seleccionados
Reemplazo: Menor tness: (50 % poblacion)
A. Evolucion y Obtencion de Parametros 38
Resultados
5x5 10x10
Pob. It. Mejor F

F

T Mejor F

F

T
50 2000 36 34,33 0,94 113 111,67 5,34
50 4000 34 33,67 1,33 124 119,67 10,31
50 8000 35 33,67 2,6 118 115,67 20,33
50 16000 33 32,67 5,2 130 125,67 40,91
50 32000 35 34 10,43 129 124 81,29
50 64000 34 33,67 20,8 133 131 160,05
100 2000 36 34,33 1,34 124 116 10,29
100 4000 35 34,33 2,64 117 117 20,95
100 8000 36 35,33 5,25 128 124,67 40,98
100 16000 37 35,67 10,44 129 124 82,54
100 32000 35 34 21,01 134 130 161,39
100 64000 35 34,67 42,05 133 131,33 323,98
200 2000 37 35 2,74 124 118 21,03
200 4000 36 35,33 5,44 129 125,33 41,51
200 8000 35 34 10,94 125 124 83,02
200 16000 36 34,67 21,81 131 128,67 163,77
200 32000 35 34 43,81 133 129 329,02
200 64000 36 35,33 86,62 133 130,33 656,29
A.1.3. Algoritmo
Se implementan las mutaciones Column Exchange y Row Exchange intercam-
biando dos columnas o dos las respectivamente dentro de una solucion.
A. Evolucion y Obtencion de Parametros 39
Parametros
Probabilidad de mutacion: 20 %
Crossover 1: SimpleCrossover (p 8/10)
Crossover 2: ShortestPathCrossover (p 2/10)
Mutaci on 1: Rotar (p 1/4)
Mutaci on 2: Swap (p 1/4)
Mutaci on 3: Column Exchange (p 1/4)
Mutaci on 4: Row Exchange (p 1/4)
Selecci on: Roulette: 50 % seleccionados
Reemplazo: Menor tness : (50 % poblaci on)
Resultados
5x5 10x10
Pob. It. Mejor F

F

T Mejor F

F

T
50 2000 33 32 0,64 111 107,33 2,67
50 4000 34 32,67 0,88 115 113 5,02
50 8000 36 34,33 1,73 119 116,33 9,89
50 16000 35 34 3,39 127 124 19,5
50 32000 34 33,67 6,85 127 124,67 39,38
50 64000 35 33,67 13,6 130 127,67 77,87
100 2000 35 33,33 0,89 117 115 4,97
100 4000 35 33,67 1,74 120 117,33 10
100 8000 37 35 3,48 123 120,67 19,78
100 16000 36 34,67 6,93 130 127,33 39,36
100 32000 38 36,33 13,81 133 128,67 79,57
100 64000 37 35,33 27,71 131 128 159,98
200 2000 36 34,67 1,85 124 122 10,2
200 4000 40 37 3,62 123 119 20,35
200 8000 35 34,67 7,3 131 125 40,49
200 16000 36 35,33 14,51 130 125,33 82,08
200 32000 36 35,33 28,95 129 128,67 162,67
200 64000 35 35 58,1 133 131,33 324,54
A. Evolucion y Obtencion de Parametros 40
A.1.4. Algoritmo
Implementa el crossover RegionExchange: toma una regi on de una soluci on y
genera una soluci on hija donde se preserva esa region, las demas piezas son de la
otra soluci on. Se realizan las modicaciones necesarias para que el crossover no
rompa la integridad de las soluciones.
Parametros
Probabilidad de mutacion: 20 %
Crossover 1: SimpleCrossover (p 1/10)
Crossover 2: ShortestPathCrossover (p 1/10)
Crossover 3: RegionExchangeCrossover (p 8/10)
Mutaci on 1: Rotar (p 1/4)
Mutaci on 2: Swap (p 1/4)
Mutaci on 3: Column Exchange (p 1/4)
Mutaci on 4: Row Exchange (p 1/4)
Selecci on: Roulette: 50 % seleccionados
Reemplazo: Menor tness: (50 % poblacion)
A. Evolucion y Obtencion de Parametros 41
Resultados
5x5 10x10
Pob. It. Mejor F

F

T Mejor F

F

T
50 2000 32 32 0,57 111 107,67 1,85
50 4000 34 32,67 0,72 117 112,67 3,07
50 8000 36 34 1,38 119 116,33 6,09
50 16000 34 33 2,71 126 123,67 12,11
50 32000 35 34,67 5,49 132 127,33 24,19
50 64000 34 33 10,91 133 129 48,05
100 2000 36 34 0,74 117 114,67 3,1
100 4000 35 34 1,41 119 116,67 6,16
100 8000 36 34,33 2,84 121 117 12,28
100 16000 35 34 5,64 128 126,67 24,48
100 32000 37 34,67 11,22 127 126 48,75
100 64000 36 35 22,45 132 127,67 97,85
200 2000 35 34,33 1,5 128 120,33 6,49
200 4000 33 33 2,98 128 122,67 12,69
200 8000 34 33,67 5,97 124 124 25,24
200 16000 36 35 12,02 124 123,33 50,02
200 32000 38 36,67 23,87 129 127,67 99,79
200 64000 36 34,67 47,92 134 131,33 198,19
A.2. Etapa II
Se realizaron pruebas en rompecabezas de 10 10 y 16 16 (Eternity II). Se
tom o el promedio de 3 corridas para una poblaci on de 50 individuos.
A.2.1. Algoritmo
Se implementa una b usqueda local cada 10000 iteraciones. Consiste en tomar una
soluci on de forma aleatoria y aplicar las operaciones Rotar y Swap para conseguir
vecinos de esa soluci on. Luego se selecciona el mejor vecino y se repite la b usqueda.
A. Evolucion y Obtencion de Parametros 42
Parametros
Probabilidad de mutacion: 20 %
Crossover 1: SimpleCrossover 50 % de chas (p 1/10)
Crossover 2: ShortestPathCrossover (p 1/10)
Crossover 3: RegionExchangeCrossover (p 8/10)
Mutaci on 1 : Rotar
Mutaci on 2: Swap
Mutaci on 3: Column Exchange
Mutaci on 4: Row Exchange
HillClimbing: 10000 iteraciones; 10 % de la poblaci on
Selecci on: Roulette: 50 % seleccionados
Reemplazo: Menor tness: (50 % poblacion)
Poblaci on: 50
Resultados
10x10 16x16
Pob. It. Mejor F

F

T Mejor F

F

T
50 2000 110 105,33 1,49 204 199,33 5,53
50 4000 121 114,67 2,56 233 227,67 10,67
50 8000 122 118,67 5,01 246 243 21,41
50 16000 140 139 13,56 315 309,67 51,32
50 32000 144 140,67 30,6 325 322,67 111,48
50 64000 146 144 60,53 331 329,67 222,93
A.2.2. Algoritmo
Se quita el crossover ShortestPath, se incrementa la cantidad de elementos reem-
plazados de la poblacion y se disminuye el tama no de la poblaci on. Tambien se
modican los parametros de HillClimbing para que sean relativos al tama no del
problema.
A. Evolucion y Obtencion de Parametros 43
Parametros
Probabilidad de mutacion: 15 %
Crossover: SimpleCrossover (p 1/10)
Crossover: RegionExchangeCrossover (p 9/10)
Mutaci on 1: Rotar (p 1/4)
Mutaci on 2: Swap (p 1/4)
Mutaci on 3: Column Exchange (1/4)
Mutaci on 4: Row Exchange (1/4)
HillClimbing: vecinos: size, deep: size*10; 10 % poblaci on
Selecci on: Roulette: 50 % seleccionados
Reemplazo: Menor tness: 80 % poblacion
Poblaci on: 15
Resultados
10x10 16x16
Pob. It. Mejor F

F

T Mejor F

F

T
15 2000 101 95,33 0,46 185 177,67 1
15 4000 107 103,33 0,62 206 197,33 1,7
15 8000 116 114 1,19 218 212,33 3,38
15 16000 139 135,33 3,06 344 333,33 18,97
15 32000 139 137,67 6,83 352 346,67 49,91
15 64000 148 142,67 13,55 361 356 99,38
15 128000 147 144 27,17 369 364 198,71
15 256000 150 146 55,05 371 367,33 409,31
A.2.3. Algoritmo
Se modica la b usqueda local para que sea muti-threading. Cada thread reali-
za una b usqueda local en una soluci on elegida de forma aleatoria. La cantidad de
threads ejecutados en simultaneo se calcula en funci on de los n ucleos que tenga el
procesador. Para el caso de estas pruebas se utiliz o un procesador de dos n ucleos, es
decir, se toman dos soluciones y se les realiza b usqueda local en simultaneo. Nueva
mutaci on SwapConRotacion: esta mutaci on reemplaza las mutaciones Swap y Rotar.
Intercambia dos piezas de una soluci on y las rota lo necesario para maximizar la
A. Evolucion y Obtencion de Parametros 44
coincidencia de bordes.
Parametros
Probabilidad de mutacion: 15 %
Crossover: RegionExchangeCrossover
Mutaci on 1: SwapConRotacion (p 1/3)
Mutaci on 2: Column Exchange (p 1/3)
Mutaci on 3: Row Exchange (p 1/3)
MultiThreadHillClimbing: vecinos: size, deep:size*10
Selecci on: Roulette: 50 % seleccionados
Reemplazo: Menor tness: 80 % poblacion
Poblaci on: 15
Resultados
10x10 16x16
Pob. It. Mejor F

F

T Mejor F

F

T
15 2000 126 121,33 0,43 234 228 0,96
15 4000 128 124,67 0,63 262 258 1,5
15 8000 131 128,67 1,17 290 282,33 2,94
15 16000 156 153,33 3,41 385 383,67 22,75
15 32000 157 155,67 7,94 397 394,67 62,66
15 64000 159 157,67 15,78 405 402 124,23
15 128000 161 159 31,42 413 409 247,24
15 256000 161 159 65,33 419 411,67 513,06
B. UTILIZACI

ON DEL PROGRAMA
Para ejecutar el programa es necesario tener instalada una versi on de Java Run-
time Environment (JRE) superior o igual a 1.6.
El siguiente comando lanza el programa:
java -jar E2Solver.jar [-informe]
-informe
Ejecuta de manera completa un set de pruebas iterando sobre
las instancias 6x6, 7x7, 10x10, 12x12, 14x14, 16x16 probando con diferentes
cantidades de iteraciones y tama~ nos de poblacion. Para cada combinacion
instancia, cantidad de iteracion, tama~ no de poblacion se ejecutan 10 pruebas.
El resultado es mostrado por consola.
Esta opcion NO levanta una interfaz grafica.
Ejemplo de ejecucion normal que levanta la interfaz gr aca:
#java -jar E2Solver.jar
45
B. Utilizacion del programa 46
Ejemplo de ejecucion del informe:
#java -jar E2Solver.jar -informe
poblacion,iteraciones,bestIndividual,duration,ES,VS,MaxPossible
Nombre: 10 Iteracion: 0
15,1000,153,2919, 123, 318,180
15,2000,156,4569, 131.8, 309.6,180
15,4000,155,8663, 131.07, 313.78,180
...
...
Bibliografa
[1] A. Selby y O. Riordan.
http://www.archduke.org/eternity/method/desc.html
[2] E. D. Demaine y M. L. Demaine. Jigsaw Puzzles, Edge Matching, and Polinomyo
Packing: Connections and Complexity. Graphs and Combinatorics, 23(1), p 195-
208. 2007.
[3] I. M. Coelho, B. N. Coelho, V. N. Coelho, M. N. Haddad, M. J. F. Souza y L.
S. Ochi. A General Variable Neighborhood Search approach for the resolution of
the EternityII Puzzle. International Conference on Metaheuristics and Nature
Inspired Computing. 2010.
[4] International Conference on Metaheuristics and Nature Inspired Computing.
2010.
http://www2.li.fr/META10/
[5] J. Gottlieb, E. Marchiori y C. Rossi. Evolutionary Algorithms for the Satisability
Problem. Journal of Evolutionary Computation, 10(1), p 35-50. 2002.
[6] J. Mu noz, G. Gutierrez y A. Sanchis. Evolutionary techniques in a constraint
satisfaction problem: Puzzle Eternity II. International Work Conference on Ar-
ticial Neural Networks 09, parte I, p 720-727. 2009.
[7] L. Verhaard.
http://www.shortestpath.se
[8] M. J. H. Heule. Solving edge-matching problems with satisability solvers. Pro-
ceedings of the Second International Workshop on Logic and Search, p 88-102.
2008.
[9] M. R. Garey y D. S. Johnson. Computers and intractability: a guide to the theory
of NP- Completeness. W. Freeman and Co. 1979.
[10] P. Schaus y Y. Deville. Hybridization of CP and VLNS for Eternity II. Journees
Francophones de Programmation par Contraintes. 2008.
47
Bibliografa 48
[11] S. Luke. Essentials of Metaheuristics. Lulu 2013.
[12] S. C. Brailsford, C. N. Potts y B. M. Smith Constraint satisfaction problems:
Algorithms and applications. European Journal of Operational Research, 119, p
557-581. 1999.
[13] Sitio web del editor E2Lab
http://eternityii.free.fr
[14] T. Wauters, W. Vancrooenburg y G. V. Berghe, A two phase hyper-heuristic
approach for solving the Eternity II puzzle. International Conference on Meta-
heuristics and Nature Inspired Computing. 2010.
[15] W. Wang y T. Chiang. Solving Eternity-II puzzles with a tabu search algo-
rithm. International Conference on Metaheuristics and Nature Inspired Com-
puting. 2010.
[16] Z. Michalewics. Genetic Algorithms + Data Structures = Evolution Programs.
Springer Verlag. 1996.

También podría gustarte