usando algoritmos genéticos
Por:
Pedro Tecuanhuehue Vera
Tesis sometida como requisito parcial para obtener el grado de
MAESTRO EN CIENCIAS EN LA ESPECIALIDAD DE CIENCIAS COMPUTACIONALES
en el
Instituto Nacional de Astrofísica, Óptica y Electrónica
Tonantzintla, Puebla Enero 2013
Supervisada por:
Dr. Jesús Ariel Carrasco Ochoa Dr. José Francisco Martínez Trinidad
c
INAOE 2013 Derechos Reservados
El autor otorga al INAOE el permiso de reproducir y distribuir copias de esta tesis
En el presente trabajo se introduce un algoritmo genético que tiene por
obje-tivo realizar escalamiento multidimensional sobre conjuntos de datos mezclados e
incompletos. El escalamiento multidimensional busca representar sobre el plano
Euclidiano a objetos que se encuentren en espacios de alta dimensión, tratando
de mantener lo mejor posible las distancias que existen entre los objetos
origina-les. El escalamiento multidimensional tiene por objetivo visualizar sobre el plano
Euclidiano la estructura que mantienen los objetos en el espacio original. Los
algoritmos existentes realizan escalamiento multidimensional sobre conjuntos de
datos numéricos, utilizando técnicas clásicas de optimización las cuales pueden
caer facilmente en óptimos locales.
En este trabajo se presenta un algoritmo genético (AGP) para realizar
esca-lamiento multidimensional sobre datos mezclados e incompletos y una estrategia
de tipo divide y vencerás (AGPG) que permite procesar conjuntos grandes de
objetos. Con el algoritmo genético AGP se busca explorar mejor el espacio de
so-luciones para encontrar mejores representaciones de los objetos originales sobre el
plano Euclidiano. El algoritmo AGP hace uso de operaciones de mutación y cruza
introducidas en este trabajo; las cuales fueron diseñadas específicamente para el
problema de escalamiento multidimensional. Además, para acelerar la búsqueda
y permitir encontrar buenas soluciones en menos generaciones, se diseñó una
es-trategia para la creación de una población inicial, la cual está basada en generar
proyecciones bidimensionales de los objetos originales.
La estrategia de tipo divide y vencerás para realizar escalamiento
multidimen-sional sobre datos mezclados e incompletos, AGPG, surge debido a la necesidad de
acelerar la búsqueda de soluciones para conjuntos grandes de datos. El algortimo
AGP puede encontrar mejores soluciones que la estrategia AGPG, sin embargo,
AGPG puede encontrar soluciones adecuadas más rápidamente que el algoritmo
AGP en conjuntos grandes de datos. La estrategia AGPG consiste en dividir el
conjunto de datos originales en grupos de menor tamaño y realizar escalamiento
multidimensional mediante el algoritmo AGP sobre cada grupo obtenido. Para
en-contrar una representación global del conjunto grande de datos, AGPG posiciona
las representaciones de cada grupo de menor tamaño usando una representación
obtenida a partir de un conjunto construido con una pequeña muestra de cada
grupo de la partición.
Los resultados de nuestro algoritmo AGP y los de la estrategia AGPG han sido
comparados contra los resultados obtenidos por los algoritmo MDSCAL [Kru64b]
e ISOMAP [Ten00], para ello hemos hecho uso de algunas bases de datos del
repositorio UCI [Mer98] y hemos probado diferentes valores para algunos de los
parámetros que usan nuestros algoritmos. En general, hemos encontrado que
pa-ra bases de datos mezcladas e incompletas el algoritmo AGP encuentpa-ra mejores
representaciones que la estrategia AGPG y que los algoritmos MDSCAL e
ISO-MAP y la estrategia AGPG también obtiene mejores resultados que los algoritmos
MDSCAL e ISOMAP, pero no obtiene mejores resultados que el algoritmo AGP;
sin embargo, debido a que AGPG es más rapido, permite hacer escalamiento
This work introduces a genetic algorithm that aims to make multidimensional
scaling over mixed and incomplete data. Multidimensional scaling attempts to
represent, on the Euclidean plane, objects that are in high-dimensional spaces,
trying to keep as much as possible the distances among the original objects.
Mul-tidimensional scaling aims to display on the Euclidean plane the structure that
objects in the original space keep. Current algorithms make multidimensional
sca-ling over numerical data sets using classical optimization techniques, which easily
fall into local optima.
This work presents a genetic algorithm, AGP, to make multidimensional
sca-ling over mixed and incomplete data, and a divide and conquer strategy, AGPG,
that can process large data sets of objects. AGP aims to better explore the
so-lutions space in order to find better representations of the original objects on
the Euclidean plane. The AGP algorithm uses mutation and crossover operations
introduced in this thesis, which were specifically designed for the problem of
mul-tidimensional scaling. In addition, to accelerate the search and to allow finding
good solutions in fewer generations, we designed a strategy for creating an initial
population, which is based on generating two-dimensional projections of the
ori-ginal objects.
The divide and conquer strategy, AGPG, to make multidimensional scaling
over mixed and incomplete data arises from the need to accelerate the search of
good representations for large datasets. The AGP algorithm can find better
lutions than the AGPG strategy, however, AGPG may find appropriate solutions
faster than the AGP algorithm. The AGPG strategy divides the original dataset
into smaller groups and make multidimensional scaling using the AGP algorithm
on each group. To find a global representation of the large data set, AGPG
po-sitioned representations of each smaller group using the representation obtained
from a dataset constructed from a small sample of each group of the partition.
The results of our AGP algorithm and AGPG strategy have been compared
against the results obtained by MDSCAL algorithm [Kru64b], for which we have
used some databases from UCI repository [Mer98], as well as different values for
some of the parameters used by our algorithms. From these experiments we found
that for mixed and incomplete databases our AGP algorithm find better
represen-tations that the AGPG strategy and the MDSCAL and ISOMAP algorithms. Our
AGPG strategy gets better results than the MDSCAL and ISOMAP algorithms,
but if does not get better results than the AGP algorithm, however, since AGPG
Mi más sincero agradecimiento a mis asesores Dr. Jesús Ariel Carrasco Ochoa y
Dr. José Francisco Martínez Trinidad por la orientación y ayuda que me brindaron
para realizar este trabajo de tesis.
Gracias a México por el financiamiento otorgado a través del Concejo Nacional
de Ciencia y Tecnología (CONACyT), para realizar estos estudios de maestría.
Agradezco también a todo el personal de Instituto Nacional de Astrofísica
Óp-tica y Electrónica (INAOE) y en especial a la Coordinación de Ciencias
Compu-tacionales por haberme dado la oportunidad de realizar este posgrado.
A mis compañeros y amigos por su ayuda y por compartir conmigo esta
expe-riencia, en especial a Lucas Pacheco Martínez, Alejandro Antonio Torres García,
Fabricio Otoniel Pérez Pérez y Miriam Cuautle Lima.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Dedicatoria
Al camino que viene desde el Alfa y llega
hasta la Omega por todas las experiencias
que hasta hoy me ha permitido conocer.
A mis padres
Lucila Vera Munguía y Vicente Tecuanhuehue Gómez
por seguir siendo el pilar fundamental de mi familia
y por todo lo que ello implica.
A mi hermana Yolanda Tecuanhuehue Vera
y a mi amiga María Antonia Ruíz Díaz
que han sido dos piedras angulares en mi vida.
A mi hermano Miguel Tecuanhuehue Vera
por su ayuda incondicional y al pequeño
Adhair Andrés Tecuanhuehue por enseñarme
Resumen III
Abstract V
Agradecimientos VII
1. Introducción 1
1.1. Problemática . . . 2
1.2. Objetivos . . . 3
1.2.1. Objetivo general . . . 3
1.2.2. Objetivos específicos . . . 3
1.3. Organización del documento . . . 4
2. Marco Teórico 5 2.1. Tipos de datos . . . 5
2.2. Objetos . . . 6
2.3. Funciones de evaluación . . . 6
2.4. Funciones de distancia . . . 8
2.5. Algoritmos genéticos . . . 10
2.6. Centroide de un triángulo . . . 13
3. Estado del Arte 15 3.1. MDSCAL . . . 16
3.2. ISOMAP . . . 16
3.3. LLE . . . 18
3.4. FastMap e HyperMap . . . 19
4. Algoritmo propuesto 21 4.1. Representación de los individuos . . . 21
4.2. Población inicial . . . 22
4.3. Operadores específicos de cruza y mutación . . . 25
4.3.1. Cruza . . . 26
4.3.2. Mutación . . . 28
4.4. Algoritmo genético . . . 35
4.4.1. Análisis de complejidad de AGP . . . 37
4.5. Escalamiento multidimensional de conjuntos grandes de datos . . 40
4.5.1. División de conjuntos grandes . . . 41
4.5.2. Integración de las representaciones . . . 43
4.5.3. Análisis de complejidad de AGPG . . . 48
5. Experimentos y resultados 51 5.1. Descripción de los experimentos . . . 51
5.2. Comparación de AGP contra MDSCAL e ISOMAP . . . 55
5.3. Comparación de AGP contra AGPG . . . 58
5.4. Comparación de AGPG contra MDSCAL e ISOMAP . . . 62
6. Conclusiones 67 6.1. Aportaciones . . . 68
6.2. Trabajo Futuro . . . 69
6.3. Artículos publicados . . . 69
2.1. Partes de un individuo. . . 12
2.2. Cruza de dos cromosomas basada en un punto. . . 12
2.3. Mutación de dos genes en un cromosoma. . . 13
2.4. Centroide de un triángulo. . . 14
3.1. Un grafo G de vecindades construido en el paso 2 de ISOMAP [Ten00]. . . 17
3.2. Representación de objetos tridimensionales en el plano Euclidiano obtenido con ISOMAP [Ten00]. . . 18
3.3. Pasos de LLE [Row00]. . . 18
3.4. Proyecciones del objetoOien distintos espacios objetivos obtenidos con diferentes pesos W [An06]. . . 20
4.1. Cromosoma de 2m números reales que representa una posible solu-ción del escalamiento multidimensional demobjetosn-dimensionales. 22 4.2. Creación de un individuo. . . 23
4.3. Proyecciones bidimensionales de objetos en tres dimensiones. . . . 24
4.4. Creación de una población de individuos de tamaño T. . . 25
4.5. Ejemplos de matrices de distancias de objetos n-dimensionales ori-ginales y de los individuos P y Q y sus correspondientes sumas de distancias S(O),S(P) y S(Q). . . 27
4.6. Cruza de los individuos P y Q. . . 29
4.7. Diagrama de mutación en un individuo. . . 30
4.8. Posicionamiento del punto b’. . . 31
4.9. Posicionamiento del punto c’. . . 33
4.10. Diagrama de división de un conjunto de objetosn-dimensionales y la generación del grupo t de tercias . . . 42 4.11. Diagrama de escalamiento multidimensional de los grupos i y el
grupo t sobre el plano Euclidiano . . . 43
4.12. Centroide (Cix, Ciy) del triángulo de la representación bidimensio-nal del grupo i y centroide (Ctx, Cty) del triángulo de la estructura bidimensional del grupo t . . . 44
4.13. Traslación del grupoi hacia el grupo t . . . 45
4.14. Cálculo del ángulo de rotación λ para la representación bidimen-sional del grupo i sobre el centroide (Ctx, Cty) . . . 46 4.15. Integración de los resultados del escalamiento multidimensional de
cada representación bidimensional de cada grupoi para formar una
solución global para el conjunto de datos completo. . . 47
5.1. Gráfica de los valores de STRESS obtenidos mediante los
algorit-mos AGP, MDSCAL e ISOMAP . . . 58
5.2. Gráfica de los valores de STRESS obtenidos mediante los
algorit-mos AGP y AGPG . . . 60
5.3. Gráfica de los valores de tiempo, en escala logaritmica, obtenidos
mediante los algoritmos AGP y AGPG . . . 61
5.4. Gráfica de los valores de STRESS obtenidos mediante los
algorit-mos AGPG, MDSCAL e ISOMAP . . . 64
5.5. Representaciones bidimensionales obtenidas con AGPG de la base
de datos Contraceptive method choice . . . 64
5.6. Representaciones bidimensionales obtenidas con AGPG de la base
5.1. Bases de datos de UCI usadas en los experimentos de AGP . . . . 53
5.2. Bases de datos de UCI usadas para los experimentos de AGPG . . 53
5.3. Tabla de comparación de STRESS entre AGP, MDSCAL e ISOMAP 55
5.4. Tabla de comparación de la diferencia relativa de AGP respecto a
MDSCAL e ISOMAP . . . 57
5.5. Tabla de comparación de STRESS entre AGP y AGPG . . . 59
5.6. Tabla de comparación de tiempo entre AGP y AGPG . . . 61
5.7. Tabla de diferencias relativas de STRESS y tiempo de AGPG
res-pecto a AGP . . . 62
5.8. Tabla de diferencias relativas de STRESS de AGPG max=100
res-pecto a MDSCAL e ISOMAP . . . 62
Introducción
El escalamiento multidimensional consiste en encontrar puntos, usualmente
en el plano Euclidiano, que representen objetos de un espacio original de mayor
dimensión; de forma que las distancias entre los puntos en el plano, coincidan
tanto como sea posible con las distancias entre los objetos originales [Cox94]. El
escalamiento multidimensional, aplicado sobre objetos de alta dimensión, permite
visualizar, sobre el plano Euclidiano, cómo se distribuyen los objetos en el espacio
original. Entre los algoritmos más populares que realizan escalamiento
multidi-mensional se encuentran: MDSCAL [Kru64b], SMDS [Wit11] que es una
varian-te de MDSCAL, ISOMAP [Ten00], LLE [Row00], FastMap [Fal95] e HyperMap
[An06]. Estos algoritmos utilizan técnicas clásicas de optimización, como el
mé-todo del gradiente ó el mémé-todo de mínimos cuadrados, los cuales para problemas
que contienen óptimos locales, pueden quedar estacionados en alguno de éstos;
además, estos algoritmos están diseñados para trabajar sobre datos numéricos.
En áreas como medicina, geología, sociología, psicología, etc. existen problemas
de análisis de datos en los cuales cada objeto puede estar representado por uno
o más atributos que pueden ser cualitativos y/o cuantitativos (datos mezclados).
Además, algunos valores en los atributos de los objetos pueden ser desconocidos
(datos mezclados e incompletos). En este trabajo se presenta un algoritmo
nético que permite hacer escalamiento multidimensional sobre datos mezclados e
incompletos.
Usar algoritmos genéticos permite salir más fácilmente de óptimos locales,
logran-do explorar más ampliamente el espacio de soluciones de problemas que contienen
óptimos locales. En nuestro caso, se intenta encontrar una mejor representación en
el plano Euclidiano de objetos n-dimensionales originales mezclados e
incomple-tos. Para lograr esta tarea, en el presente trabajo se introducen nuevas operaciones
de mutación y cruza, diseñadas específicamente para el problema de escalamiento
multidimensional. Adicionalmente, para trabajar con conjuntos grandes de datos
se propone una estrategia de tipo divide y vencerás, que consiste en dividir el
conjunto de datos en subconjuntos más pequeños y posteriormente escalar
indi-vidualmente cada subconjunto e integrar las soluciones en una solución global.
1.1.
Problemática
En áreas como medicina, geociencia, ciencias sociales, etc., existen una gran
cantidad de problemas que trabajan con datosn-dimensionales mezclados e
incom-pletos. De lo anterior surge la necesidad de contar con algoritmos que encuentren
una representación de estos conjuntos de datosn-dimensionales sobre el plano
Eu-clidiano, las cuales permitan “visualizar” las relaciones de distancia que guardan
dichos objetos en el espacio n-dimensional original. El problema en el cual este
trabajo se centrará es en encontrar una representación en el plano Euclidiano de
los objetos de un espacion-dimensional con datos mezclados e incompletos, de tal
forma que en el nuevo espacio se mantengan tanto como sea posible las relaciones
originales de distancia. Para diseñar los algoritmos que permitan encontrar tal
representación se plantea hacer uso de los algoritmos genéticos que pueden ser
usados como una herramienta útil para explorar más ampliamente el espacio de
soluciones tratando, de esta manera, evitar quedar atrapados en óptimos locales,
gradiente ó mínimos cuadrados, usados por algunos algoritmos de escalamiento
multidimensional, los cuales más fácilmente pueden quedar atrapados en óptimos
locales.
1.2.
Objetivos
Tomando en cuenta lo anteriormente expuesto, a continuación presentamos los
objetivos de este trabajo de tesis.
1.2.1.
Objetivo general
Desarrollar e implementar un algoritmo genético que permita hacer
escala-miento multidimensional y encuentre sobre el plano Euclidiano mejores
represen-taciones para conjuntos de objetos mezclados e incompletos en comparación con
las representaciones obtenidas por los algoritmos MDSCAL e ISOMAP.
1.2.2.
Objetivos específicos
Elegir una representación de los objetos en el espacio de solución
(indivi-duos), que permita representar a los objetos n-dimensionales en el plano
Euclidiano.
Elegir una función de aptitud adecuada al problema de escalamiento
multi-dimensional, que permita evaluar a los individuos.
Proponer operaciones de cruza y mutación que ayuden al algoritmo a
en-contrar individuos más aptos para el problema de escalamiento
multidimen-sional.
Integrar los puntos anteriores en un algoritmo genético para realizar
Proponer una estrategia que utilice el algoritmo genético anterior y que sea
capaz de procesar conjuntos grandes de datos de forma más rápida.
1.3.
Organización del documento
En el capítulo 2 se describen los conceptos básicos que ayudan al lector a
fa-miliarizarse con el contenido de este trabajo de tesis. En el capítulo 3 se describen
los principales algoritmos del estado del arte que realizan escalamiento
multidi-mensional. En el capítulo 4 se describen a detalle los algoritmos propuestos como
una alternativa de solución al problema de escalamiento multidimensional sobre
datos mezclados e incompletos. En el capítulo 5 se presentan los experimentos
rea-lizados, comparando el algoritmo propuesto contra los resultados obtenidos por
los algoritmos MDSCAL e ISOMAP, los cuales han sido comúnmente utilizados
como base de comparación en el escalamiento multidimensional. Por último, en
el capítulo 6 se presentan las conclusiones y se plantean algunas alternativas de
Marco Teórico
Este capítulo presenta una descripción de los conceptos básicos más relevantes
que son usados a lo largo de esta tesis.
2.1.
Tipos de datos
Para describir objetos a través de vectores de atributos existen dos tipos de
datos: no numéricos (cualitativos) y numéricos (cuantitativos), los tipos de
datos no numéricos pueden dividirse en nominales y ordinales.
Atributos nominales
Un atributo nominal se encuentra dividido en un número k de categorías
mutua-mente excluyentes, de tal modo que cada caso es asignado a una y sólo una de esas
categorías [Hai99]. Por ejemplo, el color del cabello o el color de ojos, la religión,
etc.
Atributos ordinales
Los datos ordinales representan un nivel superior de precisión de la medida. Los
valores de este tipo de atributos son un tipo especial de valores nominales que
mantiene una relación de orden total. Por ejemplo, los diferentes niveles de
facción del consumidor individual con diferentes productos nuevos (alto, medio,
bajo), etc.
2.2.
Objetos
Un objeto puede ser cualquier entidad física o abstracta que puede ser
com-parada con otras entidades físicas o abstractas.
En este trabajo consideramos que un objeto se describe como un vector formado
por n atributos I(O) = (x1(O), ..., xn(O)), donde xi ∈ Mi, xi(O) es el valor del atributo xi en el objeto O, y donde Mi es el conjunto de valores admisibles del atributo xi para i=1,...,n.
Datos mezclados e incompletos
Un dato mezclado u objeto mezclado está descrito por atributos de distintos tipos,
es decir, un mismo objeto puede estar descrito por una combinación de atributos
numéricos y no numéricos. Cuando en la descripción de un objeto se desconocen
los valores para uno o más atributos, se dice que el objeto o el dato es mezclado
e incompleto.
2.3.
Funciones de evaluación
El objetivo del problema de escalamiento multidimensional consiste en
encon-trar representaciones de un conjunto de objetos, que se encuentren en un espacio
de alta dimensión, sobre un espacio de menor dimensión. Se busca que estas
re-presentaciones preserven lo mejor posible las relaciones de distancia que guardan
los objetos del espacio original, por tanto, es necesario contar con alguna
se pueden encontrar varias funciones que llevan a cabo esta tarea, siendo las más
usadas funciones como MSE [Cox94], STRESS [Kru64a] y SSTRESS [TdL77], que
se describen a continuación.
MSE
El error cuadrático medio o MSE (The Mean Square Error) [Cox94] es una medida
estadística definida como:
M SE
=
1
m
2 Xij
(
d
ij−
D
ij)
2=
1
m
2d
¯
−
D
¯
22
(2.1)
donde Dij es la distancia entre los objetos Oi y Oj que se encuentran en el espacion-dimensional original, dij es la distancia entre los puntos en el plano Eu-clidiano que representan a los objetos Oi y Oj del espacio n-dimensional original y m es el número de objetos n-dimensionales.
STRESS
Esta función fue presentada en [Kru64a] y está definida como:
ST RESS
=
v u u u t P
ij
(
d
ij−
D
ij)
2P
ij
(
d
ij)
2=
d
¯
−
D
¯
2¯
d
2(2.2)
En esta función regresa el error relativo que existe entre las distancias dij y Dij y entre más pequeño sea el valor que regresa, mejor es la representación en el plano Euclidiano de los objetosn-dimensionales originales. Si el valor de STRESS
es 0, entonces se tiene una representación “perfecta”, lo cual significa que existe
una relación perfecta entre dij y Dij, es decir, las distancias entre los objetos ori-ginales y las distancias sobre el plano Euclidiano son iguales; donde dij y Dij son como en el caso anterior.
SSTRESS
Esta función fue introducida en [TdL77] como una variante del STRESS y está
definida como:
SST RESS
=
v u u u t P
ij
(
d
2ij−
D
2ij)
2P
ij
(
d
2ij)
2=
d
¯
.∗d−
D
¯
.∗D 2
d
¯
.∗d2
(2.3)
Dondedij y Dij son como antes y d.∗d y D.∗D, son vectores resultado de mul-tiplicar por sí mismo, componente a componente, los vectores d y D respectiva-mente.
Una diferencia importante es que valores grandes dedij y Dij reciben más énfasis con la función SSTRESS que con la función de STRESS.
2.4.
Funciones de distancia
Las funciones de evaluación necesitan conocer las distancias Dij entre los ob-jetos mezclados del espacio original y las distancias dij entre los puntos en el espacio Euclidiano que representan a los objetos originales. En este trabajo de
tesis las distancias Dij serán obtenidas con la distancia HOEM [Wil97] la cual, es comúnmente utilizada para datos mezclados e incompletos y las distancias dij serán obtenidas con la distancia Euclidiana.
HOEM
Para evaluar las distancias entre dos objetos n-dimensionales en el espacio
ori-ginal, el cual contiene datos mezclados e incompletos, usamos la función HOEM
(Heterogeneous Overlapped Euclidean Measure) [Wil97]. Esta función fue diseñada
para comparar directamente objetos descritos por atributos cualitativos y
(datos mezclados e incompletos).
Dados dos objetosn-dimensionles Oi y Oj, HOEM está definida como:
HOEM(Oi, Oj) =
v u u t n X a=1
da(xa, ya)2 (2.4) donde xa y ya, a=1, ... ,n, representan valores del atributo a de los objetos Oi y Oj, respectivamente.
da(x, y) =
1 si el valor de x ó y no se conoce
overlap(x,y) si a es cualitativo
rndif fa(x, y) si a es cuantitativo
(2.5)
overlap(x, y) =
0 si x es igual a y
1 si x es diferente de y
(2.6)
rndif fa(x, y) =
|x−y| maxa−mina
(2.7)
donde maxa y mina son el máximo y el mínimo valor respectivamente que puede tomar el atributo a.
Distancia Euclidiana
Las representaciones de los objetos n-dimensionales quedarán como puntos
bidi-mensionales en el plano Euclidiano. Para calcular las distancias entre los puntos
del plano se utiliza la distancia Euclidiana, que está definida por:
d(
−
→
x
,−
→
y
) = v u u t m X a=1(2.8)donde −→x y −→y son puntos en el plano Eucludiano que representan a dos objetosn-dimensionales originales y xa y ya son los atributos de estos puntos; m es la dimensión de los puntos comparados, en nuestro caso m=2.
2.5.
Algoritmos genéticos
En esta sección presentamos los conceptos más importantes de los algortimos
genéticos.
Algoritmo genético
Los Algoritmos Genéticos (AGs), cuyos principios básicos fueron establecidos en
[Hol92], son métodos adaptativos que pueden ser usados como una herramienta
para resolver problemas de búsqueda y de optimización.
Los algoritmos genéticos se encuentran basados en el proceso de selección natural
de los organismos vivos. Estos algoritmos inician con una población de individuos,
donde cada uno de estos individuos representa una solución del mismo problema,
y se crean nuevos individuos como resultado de operaciones genéticas de mutación
y cruza a lo largo de un cierto número de generaciones. De esta forma se busca
que estos nuevos individuos representen mejores soluciones del problema que se
quiere resolver. En el cuadro “Algoritmo 1” presentamos un algoritmo genético
genérico basado en [Alb11].
Un algoritmo genético enfatiza la importancia de la cruza (operador principal)
sobre la de la mutación (operador secundario), y comúnmente usa selección
pro-babilística.
Para poder aplicar un algoritmo genético se requiere de los 5 componentes básicos
siguientes: una representación de las soluciones potenciales del problema, una
for-ma de crear una población inicial de posibles soluciones (norfor-malmente un proceso
las soluciones en términos de su calidad como solución del problema,
operado-res genéticos que alteren la composición de los hijos que se producirán para las
siguientes generaciones y valores para los diferentes parámetros que utiliza el
al-goritmo genético (tamaño de la población, probabilidad de cruza, probabilidad de
mutación, número máximo de generaciones, etc.).
Algoritmo 1 Algoritmo genético genérico
1: POBLACIÓN← crearPoblaciónInicial(tamañoPoblación);
2: for i=1 to númeroDeGeneraciones do
3: Evaluar con la función de aptitud a cada individuo de la POBLACIÓN
4: siguientePOBLACIÓN ← los mejores K individuos de POBLACIÓN; 5: for j=1 to (tamañoPOBLACIÓN-K) do
6: Seleccionar aleatoriamente dos individuos P y Q de la POBLACIÓN;
7: R=Cruza(P,Q);
8: if (probabilidadDeMutación(R));then
9: R’← Mutación(R);
10: siguientePOBLACIÓN ← siguientePOBLACIÓN ∪ {R0}; 11: else
12: siguientePOBLACIÓN ← siguientePOBLACIÓN ∪ {R};
13: end if
14: end for
15: POBLACIÓN ← siguientePOBLACIÓN; 16: end for
Individuos
La representación más común que usan los algoritmos genéticos para sus
indivi-duos es la binaria (ver figura 2.1).
Cromosoma
Gen 1 Gen 2 Gen 3 Gen 4 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1
alelo
Figura 2.1: Partes de un individuo.
A la cadena binaria se le llama “cromosoma”. A cada subcadena se le conoce
como “gen” y a cada elemento que forma parte de un gen se le llama “alelo”.
Cruza
El operador de cruza más común es el basado en un punto, del cual se selecciona
a dos padres y se cortan ambos cromosomas padre en una posición escogida al
azar, después se intercambian las dos partes finales de ambos cromosomas,
produ-ciendose dos nuevos cromosomas completos, donde cada uno de los descendientes
hereda una parte de los genes de cada uno de los padres. (ver figura 2.2).
1 0 0 1 0 1 1 0 1 Padres
Hijos 1 0 0 1 1 0 1 1 1
0 1 0 1 1 0 1 1 1
0 1 0 1 0 1 1 0 1
Figura 2.2: Cruza de dos cromosomas basada en un punto.
Mutación
La mutación se considera un operador básico, que proporciona un pequeño
La mutación selecciona algunos puntos al azar e invierte sus valores (ver figura
2.3).
1 0 0 1 0 1 0 0 1 Padres
Hijos 1 0 0 0 0 1 1 0 1 Puntos de mutación
Figura 2.3: Mutación de dos genes en un cromosoma.
Si bien se admite que el operador de cruza es el responsable de efectuar la
búsqueda a lo largo del espacio de posibles soluciones, también parece
despren-derse de los experimentos efectuados por varios investigadores que el operador de
mutación va ganando importancia a medida que la población de individuos va
convergiendo a una buena solución [Fog89].
Función de aptitud (fitness)
La función de aptitud es usada para evaluar a los individuos de una población. De
esta manera se determina qué tan bueno es cada individuo respecto a un objetivo
dado. Conocer la aptitud de cada individuo, usualmente, permite al algoritmo
genético conservar los mejores individuos en siguientes generaciones.
2.6.
Centroide de un triángulo
El centroide (también llamado baricentro) de un triángulo es el punto de
in-tersección de las medianas del triángulo (siendo una mediana el segmento que une
un vértice con el punto medio del lado opuesto), (ver figura 2.4).
Supongamos que tenemos un triángulo con vértices A(x1, y1), B(x2, y2) y
P
B(x2 2,y ) Centroide
C(x3 3,y ) A(x1 1,y )
Figura 2.4: Centroide de un triángulo.
P = x
1+x2+x3
3 ,
y1+y2+y3
3
Estado del Arte
Para la visualización de objetos que se encuentran en espacios de alta
dimen-sión se han propuesto varios algoritmos de escalamiento multidimensional, los
cuales se pueden dividir en dos grupos en dependencia de si las distancias entre
objetos se manejan de manera global o local. Algoritmos como MDSCAL[Kru64b],
SMDS [Wit11], FastMap[Fal95], HyperMap[An06] y el algoritmo propuesto en
es-te trabajo hacen uso de la similitud global de las distancias entre los objetos
para posicionarlos en un espacio bidimensional. De esta manera se busca que las
distancias para cualesquiera par de puntos en el plano Euclidiano conserven las
distancias que guardan los objetos del espacio de alta dimensión. Por otro lado,
algoritmos como ISOMAP[Ten00] y LLE[Row00] encuentran representaciones en
un espacio de menor dimensión mediante similitudes locales entre objetos, es decir,
manteniendo la relación de distancias entre objetos dentro de una misma
vecin-dad, lo cual puede llevar a tener mejores representaciones por regiones de objetos,
pero no necesariamente mejores representaciones de manera global. En el presente
capítulo se describen algunos de los algoritmos mencionados anteriormente.
3.1.
MDSCAL
El algoritmo MDSCAL propuesto en [Kru64b], utiliza el método del gradiente
[MRH52] para minimizar la función de STRESS la cual evalúa qué tan buena es
una representación. El método del gradiente consiste en tener una configuración
inicial arbitraria y mejorar la configuración moviéndola ligeramente en la dirección
del espacio de soluciones en la que la función a optimizar decrece más rápidamente,
la cual se conoce como la dirección del gradiente. Este procedimiento se repite
hasta que se llegue a un punto el cual no se pueda mejorar, es decir, cuando todas
las derivadas parciales del gradiente son cero, lo cual indica que se ha llegado a
un óptimo local, que puede o no ser un óptimo global.
3.2.
ISOMAP
En el trabajo [Ten00], se describe el algoritmo “Isometric feature mapping” ó
ISOMAP, el cual se caracteriza por tratar de descubrir la estructura intrínseca
de un conjunto de objetos de alta dimensión a través de representaciones locales
de estos objetos en un espacio bidimensional. Esta característica se atribuye
co-mo una ventaja sobre algoritco-mos coco-mo MDSCAL los cuales están diseñados para
mantener una estructura global de todo el conjunto de datos en un espacio de
menor dimensión.
ISOMAP hace uso de MDSCAL y la idea principal es la estimación de las
dis-tancias geodésicas [MRH12] entre puntos lejanos, dadas únicamente las disdis-tancias
del espacio de entrada. Para las distancias entre puntos cercanos se puede usar
simplemente el cálculo de la distancia geodésica entre tales puntos, y para puntos
lejanos la distancia geodésica puede ser aproximada mediante una secuencia de
saltos entre puntos vecinos. Estas aproximaciones pueden ser efectivamente
cal-culadas mediante la búsqueda de los caminos más cortos en un grafo con aristas
El algoritmo consiste de tres pasos: En el primer paso se determinan los vecinos
de cada punto. Dos métodos simples son conectar cada punto con todos los puntos
dentro de un radio fijo ε; ó conectar cada punto con sus K vecinos más cercanos y posteriormente obtener las distancias dx(i, j) entre los pares de puntos i,j en el espacio de entrada X, entre los objetos vecinos. Estas relaciones de vecindad son
presentadas como un grafo pesado G entre los puntos, condx(i, j) como los pesos entre las aristas del grafo. En la figura 3.1 el segmento rojo representa un grafo
de vecindades entre dos objetos (círculos negros).
Figura 3.1: Un grafo G de vecindades construido en el paso 2 de ISOMAP [Ten00].
En el segundo paso, ISOMAP estima las distancias geodésicas dM(i, j) entre todos los pares de puntos, donde para cada par de puntos no conectados
direc-tamente, las distancias geodésicas pueden ser obtenidas mediante secuencias de
distancias dx(i, j), haciendo uso del algoritmo del camino más corto. En la figura 3.2, la línea roja es la representación bidimensional de la ruta más corta entre los
puntos (círculos negros) del grafo de vecindades de la figura 3.1 y la línea azul, es
la distancia sobre el plano Euclidiano entre los dos puntos.
En el último paso ISOMAP aplica MDSCAL sobre la matriz de distancias
del grafo DG = da(i, j) para encontrar una representación del conjunto de datos completo sobre el plano Euclidiano.
Figura 3.2: Representación de objetos tridimensionales en el plano Euclidiano ob-tenido con ISOMAP [Ten00].
3.3.
LLE
Este algoritmo, propuesto por Roweis y Lawrence [Row00], busca reducir la
di-mensionalidad mediante estructuras locales, reconstruyendo los objetos mediante
vecindades (ver figura 3.3).
Seleccionar vecinos
Reconstruir los puntos mediante los pesos
Búsqueda de los puntos Yi
que mejor son reconstruidos por los pesos
Figura 3.3: Pasos de LLE [Row00].
LLE considera los vecinos más cercanos de cada punto −X→i. Asigna pesos Wij a los vecinos de cada punto −X→i y ajusta los pesos minimizando la función (3.1),
mediante el método de mínimos cuadrados.
ξ(W) = Σi|
−→
Xi−ΣjWij
−→ Xj
2
| (3.1)
Posteriormente se calculan los vectores Yi, en el plano Euclidiano, que mejor sean reconstruidos por los pesosWij mediante la minimización de la función (3.2).
φ(Y) = Σi|
− →
Yi −ΣjWij
− → Yj
2
| (3.2)
3.4.
FastMap e HyperMap
El algoritmo HyperMap [An06] fue propuesto como una generalización de
Fast-Map [Fal95]. HyperFast-Map puede encontrar representaciones sobre el plano
Eucli-diano de un conjunto de objetos n-dimensionales O ={O1, O2, ..., Om}. Para ob-tener una proyección sobre el plano Euclidiano de cada objeto Oi 1 ≤ i ≤ m, primero se seleccionan dos conjuntos de objetos pivote P = {p1, p2, ..., pa} y Q={q1, q2, ..., qb}, dondepi y qi son objetosn-dimensionales.
Posteriormente, para cada objetoOi, se calculan las distanciasLp ={lp1, lp2, ..., lpa} y Lq ={lq1, lq2, ..., lqb}, que son las distancias entre el objeto Oi y cada objeto de los conjuntos de pivotesP y Q respectivamente. En seguida, las coordenadas (xi, yi) en el espacio Euclidiano de cada objeto n-dimensional Oi, son calculadas de la siguiente forma:
xi =lp1W10+lp2W20+...+lpaWa0 (3.3) yi =lq1W100+lq2W200+...+lqbWb00 (3.4)
donde, W0 = {W10, W20, ..., Wa0} y W00 = {W100, W200, ..., Wb00} son pesos que pueden ser escogidos por el usuario con la restricción de que Σa
(i=1)|W
0
i| = 1 y Σb
(i=1)|W
00
i |= 1. (ver figura 3.4)
Figura 3.4: Proyecciones del objeto Oi en distintos espacios objetivos obtenidos
con diferentes pesosW [An06].
En la figura 3.4 se muestra cómo el objeto Oi es representado en dos dimen-siones haciendo uso de los conjuntos de pivotes P = {p1, p2, p3} y Q = {q1, q2}.
Las proyecciones del objeto Oi sobre distintos espacios objetivo se encuentran al variar los pesos W, los cuales son dados por el usuario.
Como se puede apreciar, los algoritmos presentados en esta sección fueron
diseñados para trabajar con conjuntos de datos numéricos; además pueden
fácil-mente quedar atrapados en óptimos locales, lo cual ha motivado a proponer en
este trabajo de tesis un algoritmo genético que permita trabajar con conjuntos
de datos mezclados y que pueda escapar más fácilmente de óptimos locales. En el
Algoritmo propuesto
En este capítulo se introduce un algoritmo genético diseñado especialmente
para realizar escalamiento multidimensional sobre datos mezclados e incompletos.
Se describen los diferentes aspectos del algoritmo genético propuesto, como la
re-presentación de los individuos y la creación de una población inicial que ayude a
encontrar mejores reprentaciones en menos generaciones. Además, se introducen
nuevas operaciones de mutación y cruza diseñadas específicamente para el
proble-ma de escalamiento multidimensional. Asimismo, se introduce una estrategia tipo
divide y vencerás para aplicar el algoritmo genético propuesto sobre conjuntos
grandes de datos.
4.1.
Representación de los individuos
La representación binaria de los individuos es usada usualmente en los
algorit-mos genéticos, sin embargo, para nuestro algoritmo genético se ha decidido hacer
uso de una representación real, debido a que en el problema de escalamiento
multi-dimensional cada objeto n-dimensional del espacio original debe ser representado
por un punto en el plano Euclidiano, de modo que cada punto es representado
por una pareja de coordenadas (x,y). En nuestra representación, un cromosoma es
una secuencia de números reales, donde cada par consecutivo es la representación
en el plano Euclidiano, de un objeto en el espacio n-dimensional original de una
posible solución del escalamiento multidimensional (ver figura 4.1).
O
O
, . . . ,
O
Objetos
Cromosoma
(X1
2
1 m
originales
, . . . ,
de
números reales Y)1 (X2 Y)2 (X Y )m m
Figura 4.1: Cromosoma de 2m números reales que representa una posible solución
del escalamiento multidimensional dem objetosn-dimensionales.
El tamaño de esta representación depende de la cantidad de objetos
origina-les, es decir, para m objetos originales, la representación está formada por 2m
números reales, sin embargo, esta representación no depende de la cantidad de
atributos de describen a los objetos originales, debido a que independientemente
de la cantidad de atributos que describen a los objetos originales, el objeto siempre
será representados por dos números reales.
4.2.
Población inicial
Comúnmente, la población inicial de un algoritmo genético está formada por
individuos generados aleatoriamente, es decir, cada cromosoma es una cadena
arbitraria de 0’s y 1’s, o de números reales si es que la representación es de
números reales como en nuestro algoritmo. Sin embargo, las poblaciones aleatorias
pueden provocar que los algoritmos genéticos necesiten más generaciones para
encontrar una buena solución. Para nuestro algoritmo genético, se ha diseñado
una heurística para la creación de una población inicial que no sea construida de
manera completamente aleatoria, la cual permita tener una mejor aproximación
en menos generaciones.
Debido a que en el escalamiento multidimensional se busca preservar las distancias
entre objetos originales, sobre el plano Euclidiano, en nuestro caso, para crear una
población de individuos (una secuencia de números reales) como los mostrados en
la figura 4.1 procedemos de la siguiente manera:
Supongamos que se tiene un conjunto de m objetosn-dimensionales mezclados e
incompletos.
1 2 3 4 . . n-1 n
o
1o
2o
m . . 23.2 34 74.9 74.9 . . . . . . . . . . . . 16 6.23 12.4 18.9 . . . . . . . . . . 74.9 41.6 11.3 8.01 3.66 4.2 74.9 59.1 83 10 91 23 74 62o
m-1 62 3.07Atributos seleccionados
34 10
( , ) (83,74.9) . . (12.4 16, )(8.01 91, ) Individuo
aleatoriamente
Figura 4.2: Creación de un individuo.
Para crear un individuo, se seleccionan aleatoriamente dos atributos de los
objetos originales y con estos atributos, se proyectan los m objetos sobre el plano
Euclidiano. Esto puede hacerse siempre y cuando los dos atributos seleccionados
sean numéricos. En el caso de que alguno de estos atributos o ambos no sean
numéricos ó algunos valores sean desconocidos, entonces se generan aleatoriamente
valores numéricos para el o los atributos no numéricos o los valores deconocidos
en cada uno de los m objetos de la muestra. De esta forma, un individuo en la
población será una secuencia de números reales, donde cada par consecutivo es
la representación en el plano Euclidiano de un objeto en el espacio original (ver
solución de la representación del conjunto de objetos originales sobre el plano
Euclidiano. Debido a que los objetos originales están descritos por n atributos,
a lo más se pueden formar Q = n(n−1)/2 proyeccciones bidimencionales. Por ejemplo en la figura 4.3(b-d) se muestran las Q = 3(3−1)/2 = 3 proyecciones bidimensionales de los objetos en tres dimensiones que aparecen en 4.3(a).
(a) Objetos tridimensionales
con atributos x, y, z. (b) Proyección bidimensionalusando los atributos x, z.
(c) Proyección bidimensional
usando los atributos x, y. (d) Proyección bidimensionalusando los atributos y, z.
Figura 4.3: Proyecciones bidimensionales de objetos en tres dimensiones.
Para formar una población de tamaño T (parámetro dado por el usuario), si
T ≤ Q, entonces, se seleccionan T pares aleatorios de atributos con lo que se obtendrá de cada par de atributos seleccionando un individuo de la población.
Por otro lado, si T>Q, entonces, se generan Q individuos y posteriormente se generan T-Q individuos que son variantes de la mejor proyección de acuerdo al
STRESS, los cuales se obtienen moviendo cada punto aleatoriamente dentro de
Objetos
tridimensionales P=3 proyeccionesbidimensionales
STRESS
Mejor Proyección
K mejores Proyecciones
Variantes de la mejor proyección
Población de tamaño T
Figura 4.4: Creación de una población de individuos de tamaño T.
4.3.
Operadores específicos de cruza y mutación
En esta sección se introducen nuevas operaciones de mutación y cruza que han
sido diseñadas específicamente para el problema de escalamiento
multidimensio-nal. Estas operaciones están basadas en tratar de hacer coindicir las distancias
entre los objetos originales y las distancias entre las representaciones de éstos,
dejando de lado las operaciones convencionales usadas en los algoritmos genéticos
las cuales no están diseñadas para encontrar mejores representaciones de los
ob-jetos originales, lo cual puede ocasionar que se necesiten más generaciones para
encontrar buenas soluciones, o incluso que el algoritmo genético no converja a una
4.3.1.
Cruza
La operación de cruza es el principal medio de producción de nuevos individuos
[JW05], el objetivo de esta operación, es combinar las mejores características de
dos individuos para producir nuevos individuos que puedan representar una mejor
solución. En este trabajo se ha diseñado una nueva operación de cruza, la cual
busca obtener nuevos individuos que representen mejor un conjunto dem objetos
n-dimensionales O={O1, O2, ..., Om} sobre el plano Euclidiano.
Inicialmente se toman de forma aleatoria dos individuosP yQ de una población:
P ={(x1,1, x1,2),(x2,1, x2,2), ...,(xm,1, xm,2)}
Q={(y1,1, y1,2),(y2,1, y2,2), ...,(ym,1, ym,2)}
y posteriormente se obtienen las matrices de distancias M(O), M(P) y M(Q), donde la matriz M(O) de distancias entre objetos originales (datos mezclados e incompletos) es obtenida calculando las distancias entre cada par de objetos
me-diante la función HOEM [Wil97]. Las matrices de distancias M(P) y M(Q) de los individuosP yQ respectivamente, son obtenidas calculando la distancia entre
cada par de puntos, en cada uno de los individuos, usando la distancia Euclidiana
[Cox94].
M(O) =
D1,1 D1,2 . . . D1,m ..
. ... . .. ...
Dm,1 Dm,2 · · · Dm,m
dondeDi,j =HOEM(Oi, Oj)
M(P) =
dx1,1 dx1,2 . . . dx1,m
..
. ... . .. ...
dxm,1 dxm,2 · · · dxm,m
, di,j =
q
M(Q) =
dy1,1 dy1,2 . . . dy1,m
..
. ... . .. ...
dym,1 dym,2 · · · dym,m
, di,j =
q
(yi,1 −yi,2)2+ (yj,1−yj,2)2
Posteriormente, se obtienen las sumasS(Oi),S(Pi) yS(Qi) de las distancias de cada punto al resto de los puntos mediante la suma por columnas en las matrices
de distancias, tanto de los individuos P y Q como en la matriz de distancias de
los objetos originales. (ver ejemplo en la figura 4.5).
(1,2) (2,2) (1,1) (2,1) (1,2) (2,2) (1,1) (2,1) 0 1 1 1.41 + || 3.41 S(O)i 1 0 1.41 1 + || 3.41 1 1.41 0 1 + || 3.41 1.41 1 1 0 + || 3.41
(1.1,1.9) (2.5,2) (.8,.2) (2,1.2) (1.1,1.9) (2.5,2) (.8,.2) (2,1.2) 0 1.4036 1.7263 1.1402 + || 4.2701 S(Q)i 1.4036 0 2.4759 0.9434 + || 4.8229 1.7263 2.4759 0 1.5620 + || 5.7642 1.1402 0.9434 1.5620 0 + || 3.6456
(a) Matriz de distancias de los objetos n-dimensionales
(c) Matriz de distancias del individuo Q
(1,2.3) (2,1.9) (.75,1) (3,.8) (1,2.3) (2,1.9) (.75,1) (3,.8) 0 1.0770 1.3238 2.5 + || 4.9008 S(P)i 1.0770 0 1.5403 1.4866 + || 4.1039 1.3238 1.5403 0 2.2589 + || 5.1230 2.5 1.4866 2.2589 0 + || 6.2455
(b) Matriz de distancias del individuo P
M(P)= M(O)=
M(Q)=
Figura 4.5: Ejemplos de matrices de distancias de objetosn-dimensionales
origina-les y de los individuosP yQy sus correspondientes sumas de distanciasS(O),S(P)
yS(Q).
Como resultado de la operación de cruza entre los individuos P yQ, se obtiene un nuevo individuo R. Cada par consecutivo de números reales que representa a
un objetos Oi en el nuevo individuo R será el par consecutivo de números reales correspondiente en el individuo P ó en el individuo Q que dentro del individuo al que corresponde mantenga la suma de distancias más parecida a la suma de
distancias correspondiente en los objetos originales. En otras palabras, Oi será representado en el nuevo individuo R por su par consecutivo de números reales correspondiente enP si|S(Oi)−S(Pi)|<|S(Oi)−S(Qi)|; por otro lado, Oi será representado por su par consecutivo de números reales correspondiente en Q si |S(Oi)−S(Qi)|<|S(Oi)−S(Pi)|. En caso de que S(Pi) yS(Qi) sean iguales,Oi podría ser representado por cualquiera de ambos pares consecutivos de números
reales, en nuestro algoritmo, lo representamos por el punto correspondiente en el
individuo P. Esta operación de cruza permite crear nuevos individuos formados por los puntos (pares de números reales) dePo deQ que mantienen distancias más
parecidas a las distancias entre los objetos originales, por lo que estos individuos
representan mejores soluciones que los individuos de generaciones anteriores.
En la figura 4.6 se presentan los puntos (pares de números reales) de un
indi-viduo sobre el plano Euclidiano, que son el resultado de la cruza de dos individos
P y Q cuyas matrices de distancias se muestran en la figura 4.5.
4.3.2.
Mutación
Con la finalidad de explorar más rápidamente el espacio de soluciones, la
opera-ción de mutaopera-ción proporciona un mecanismo para generar aleatoriamente nuevos
individuos y de esta forma mantener una mayor diversidad dentro la población
[QW11]. En este trabajo se introduce una nueva operación de mutación, específica
para el problema de escalamiento multidimensional. Esta operación está basada
en el posicionamiento local de tercias de puntos, de tal forma que las distancias
entre estos tres puntos coincidan exactamente con las distancias de sus
correspon-dientes objetosn-dimensionales.
0 1 2 3
0 1 2 3 0
1 2 3
0 1 2 3
0 1 2 3
0 1 2 3
(1,2) (2,2)
(1,1) (2,1) (0.75,1)
(1,2.3) (2,1.9) (3,0.8) 0 1 2 3
0 1 2 3
(0.75,1) (1.1,1.9) (2,1.9) (2,1.2) (1.1,1.9) (0.8,0.2) (2.5,2) (2,1.2)
(a) Objetos n-dimensionales (b) Individuo P
con STRESS=0.4080
(c) IndividuoQ
con STRESS=0.3766
(d) IndividuoR obtenido de la cruza de P yQ
con STRESS=0.1868
Figura 4.6: Cruza de los individuosP yQ.
puntos (parejas de números reales) a,b y c de dicho individuo, que representan a
los objetos n-dimensionales A, B y C respectivamente. Los puntos a,b y c serán
reposicionados hacia nuevos puntos a’, b’ y c’ de la siguiente manera:
1. Para permitir la exploración de diferentes partes del espacio de búsqueda,
el punto a se posicionará aleatoriamente en una posición a’ alrededor del
punto a dentro de una vecindad con radior dado por el usuario. (ver figura
4.7(b)).
2. El puntob es movido a su posición correcta respecto de a’, es decir, la
dis-tancia entrea’ yb’ debe ser igual a la distancia que existe entre los objetos
A y B en el espacion-dimensional original (ver figura 4.7(c)). Para obtener
Figura 4.7: Diagrama de mutación en un individuo.
al punto a’ con b, como se explica a continuación.
En la figura 4.8, la distancia D es obtenida mediante la función HOEM [Wil97] entre los objetos n-dimensionales originales Ay B;d es la distancia
Euclidiana [Cox94] entre a’ y b que son los puntos que representan en el
plano Euclidiano a los objetos n-dimensionales originales A y B. El punto
buscado b’=(x,y) es el punto sobre la recta que pasa por los puntos a’ y b
tal que la distancia Euclidiana entre a’ y b’ es igual a la distancia D entre
los objetos n-dimensionales originales A y B.
El punto buscado b’ se encuentra sobre la circunferencia con centro en el
D
Objetos n-dimensionales
originales A, B
b’=(x,y)
r=D-d b=(b
Representaciones bidimensionales a’, b
y posición de b’
x ,b y
d
x y B
A
)
a’=(a’ ,a’ )
Figura 4.8: Posicionamiento del punto b’.
r2 = (bx−x)2 + (by −y)2 (4.1) Además, el punto b’ también se encuentra sobre la recta que pasa por los
puntos a’ y b descrita por la ecuación:
y=m(x−a0x) +a0y (4.2)
donde,
m= by −a
0 y bx−a0x
(4.3)
es la pendiente de la recta (4.2).
Sustituyendo (4.2) en (4.1) se tiene la siguiente ecuación de segundo grado
en términos de x:
r2 = (bx−x)2+ (by −(m(x−a0x) +a 0 y))
Realizando operaciones algebraicas para obtener la forma canónica de la
ecuación cuadrática, αx2+βx+γ = 0, se obtuvieron las siguientes constan-tes:
α= 1
β = 2(−m2a
0
x+ma
0
y−bym−bx)
m2+1 γ = m2a0x2−2ma
0
xa
0
y+a0y2+2byma
0
x−2bya
0
y−r2+b2x+b2y
m2+1 Mediante la fórmula general:
x= −β±
√
β2−4αγ
2α (4.5)
y aplicando (4.2) encontramos las soluciones {(x1, y1),(x2, y2)}, las cuales
representan las coordenadas de los puntos sobre los que se intersectan la
recta (4.2) y la circunferencia (4.1). El punto b0 = (x, y) será la solución que cumpla que la distancia que existe entre los punto b0 y a0 sea igual a la distancia D entre los objetos originalesA y B.
3. El punto c es movido a su posición correcta respecto de a’ y b’ (ver figura
4.7(d)), es decir, la distancia entre los puntos c’ y a’ así como la distancia
entre c’ y b’, deben ser iguales a las distancias en el espacio n-dimensional
original entre los objetos C y A y los objetos C y B respectivamente.
En la figura 4.9, D1 y D2 son las distancias HOEM [Wil97] entre objetos
n-dimensionales originales, donde D1 es la distancia entre los objetos A y
C, y D2 es la distancia entre los objetos B y C. Los puntos a’,b’ y c sobre
el plano Euclidiano representan a los objetos n-dimensionales originales A, B y C respectivamente. c’ es la posición a la que se trasladará el punto c
Objetos n-dimensionales originales A, B y C
Representaciones bidimensionales a’, b’
y posición dec’
B
A
c y
b
c
a’=(a’ ,a’ )x y c’=(x,y) b’=(b’ ,b’ )x y
d1 d2
C
D
1
D2
Figura 4.9: Posicionamiento del punto c’.
y c0, respectivamente sean iguales a las distanciasD1 yD2 entre los objetos
n-dimensionales originales, respectivamente.
El punto c’ se encuentra sobre la circunferencia con centro en el punto
a0 = (a0x, a0y) y radio d1 descrita por la ecuación:
d21 = (a0x−x)2+ (a0y−y)2 (4.6) Además, el puntoc’ también se encuentra sobre la circunferencia con centro
en el punto b0 = (b0x, b0y) y radio d2 descrita por la ecuación:
d22 = (b0x−x)2+ (b0y−y)2 (4.7) Entonces,c’ es un punto de intersección de las circunferencias (4.6) y (4.7),
de las cuales mediante operaciones algebraicas obtenemos el siguiente
x2+y2−2a0xx−2a0yy+ (a0x2+a0y2−d21) = 0 (4.8) x2+y2−2b0xx−2b0yy+ (b0x2 +b0y2−d21) = 0 (4.9) Del cual, restando las ecuaciones y despejando x obtenemos la siguiente
ecuación:
x=−yµ+ν (4.10)
con las constantes:
µ
=
b0
y−a0y
b0
x−a0x
ν
=
d2 1+d
2
2−a0x2−a0y2+b0x2+b0y2 2(b0
x−a0x)
Para encontrar el valor de y sustituimos (4.10) en la ecuación (4.9) y obte-nemos:
(−yµ+ν)2+y2−2b0x(−yµ+ν)−2b0yy=d21−b0x2−b0y2 (4.11) Al desarrollar la ecuación anterior obtenemos:
αy2 +βy+γ = 0 (4.12)
con las constantes:
β=−2µν−2b0y
γ =−d2
2+b2x+b2y +ν2−2νb 0 x
Al aplicar la fórmula general para ecuaciones de segundo grado con una
in-cógnita (4.5), encontramos las soluciones{y1, y2}de las cuales al sustituirlas
en la ecuación (4.10), obtenemos los puntos de intersección{(x1, y1),(x2, y2)}
entre las circunferencias (4.6) y (4.7). De los puntos encontrados,c’ será
asig-nado al punto más cercano al punto c, en caso de que ambos puntos estén
a la misma distancia se tomará c0 = (x1, y1).
4.4.
Algoritmo genético
En esta sección, sobre la base de los operadores genéticos de cruza y mutación
así como el proceso de creación de una población inicial, introducidos
anterior-mente, se presenta el algorítmo genético propuesto AGP, para el problema de
escalamiento multidimensional, que mostramos en el cuadro “Algoritmo 2”.
Para medir la calidad de los individuos se han usado como funciones de aptitud
(fitness) las funciones STRESS [Kru64a] ó SSTRESS [TdL77]. El algoritmo
gené-tico propuesto inicia con la creación de una población de individuos, los cuales son
obtenidos mediante proyecciones bidimensionales sobre el plano Euclidiano de los
objetos n-dimensionales originales (ver sección 4.2). Posteriormente el algoritmo
genético propuesto estará buscando mejores representaciones sobre el plano
Eu-clidiano del conjunto de objetos n-dimensionales originales mediante una cierta
cantidad de generaciones, valor dado por el usuario (maxGeneraciones). En cada
generación es creada una NUEVAPOBLACION de tamaño T, de la cual se
espe-ra que sus individuos representen mejor a los objetos n-dimensionales originales
sobre el plano Euclidiano que los individuos de la POBLACION anterior.
Enton-ces la NUEVAPOBLACION pasará a la siguiente generación como POBLACION
Algoritmo 2 AGP /*Algoritmo genético propuesto*/
Entrada: Grupo /*Conjunto de objetos mezclados e incompletos*/, maxGeneraciones,
T /*tamaño de la poblacion*/,
M /*Cantidad de mejores individuos en la población*/, PM /*Probabilidad de mutación*/
Salida: rf /*puntos bidimensionales que representan a los objetos originales*/
1: POBLACION ← PoblaciónInicial(T,Grupo);
2: for i=1 hasta MaxGeneraciones do
3: Evaluar la aptitud de cada individuo en POBLACION;
4: NUEVAPOBLACION← M mejores individuos de POBLACION;
5: forj=1 hasta T-M do
6: seleccionar aleatoriamente dos individuos P y Q de POBLACION;
7: R=Cruza(P,Q);
8: if (probabilidadDeMutación(PM))then
9: R’← Mutación(R);
10: NUEVAPOBLACION← NUEVAPOBLACION∪ {R0};
11: else
12: NUEVAPOBLACION← NUEVAPOBLACION∪ {R};
13: end if
14: end for
15: POBLACION ←NUEVAPOBLACION;
16: end for
17: Evaluar la aptitud de cada individuo de POBLACION y obtener el individuo con menor STRESS;
población en cada generación se evalúan los T individuos de POBLACION, se
seleccionan los M mejores y se agregan a la NUEVAPOBLACION.
Para completar los T individuos de la NUEVAPOBLACION, se obtienen T-M
individuos R como resultado de la operación de cruza entre pares de individuos P
y Q, tomados al azar de la POBLACION (ver seccion 4.3.1). Para los individuos
R obtenidos de la operación de cruza, se calcula la probabilidad de mutación, para
la cual se genera un número aleatorio l (0 ≤ l ≤ 100), si l ≤ P M ( P M valor fijo dado por el usuario con 0 ≤ P M ≤ 100 ). Entonces, se obtiene el individuo R’ como resultado de la operación de mutación (ver seccion 4.3.2) aplicada sobre
el individuo R, y se agrega el individuo R’ a la NUEVAPOBLACION, en caso de
que l > P M, entonces, el individuo R, sin sufrir ningún cambio, es agregado a la NUEVAPOBLACION. Al término de la búsqueda de mejores individuos durante
las maxGeneraciones, se evalúa cada individuo de la población final mediante la
función de aptitud (fitness) y se obtiene el individuo con el valor de STRESS más
pequeño, el cual tomamos como la mejor representación sobre el plano Euclidiano
de los objetos mezclados n-dimensionales originales, encontrado por el algoritmo
genético propuesto usando los parámentros dados.
4.4.1.
Análisis de complejidad de AGP
A continuación presentamos el análisis de la complejidad del algoritmo
gené-tico propuesto AGP, para lo cual, analizaremos por separado la complejidad de
cada paso de AGP, a saber: cálculo de las matrices de distancias, evaluación de
la función de STRESS, generación de la población inicial y de las operaciones de