Modelo de un Algoritmo Genético con Selección Discriminatoria de

Anuncio
Modelo de un Algoritmo Genético con Selección
Discriminatoria de Individuos bajo un Esquema de
Ponderación de Probabilidades de Mutación
Victor Manuel Arroyo Apaza
Orientador: Dr. Yván Jesús Túpac Valdivia
Tesis profesional presentada al Programa Profesional de
Ingenierı́a Informática como parte de los requisitos para
obtener el Tı́tulo Profesional de Ingeniero Informático.
UCSP - Universidad Católica San Pablo
Diciembre de 2013
A Dios, por todo lo que me ha dado,
a mi madre por el apoyo incondicional
brindado todos estos años, a mi familia
y a todos los profesores por sus enseñanzas.
Agradecimientos
En primer lugar deseo agradecer a Dios por haberme guiado a lo largo de estos cinco años
de estudio.
Agradezco a mi madre por el apoyo y esfuerzo brindado para forjarme como un profesional.
Agradezco a la familia Valencia Fernández-Dávila por todos estos años de apoyo incondicional.
Agradezco a la universidad, mi alma matter, por haberme cobijado y brindado la formación
que ahora me permitirá ayudar a construir una mejor sociedad.
Agradezco de forma muy especial a mi asesor Dr. Yván Túpac por haberme guiado en la
elaboración de esta tesis.
Deseo agradecer de forma especial a mis docentes: Ernesto Cuadros, Dennis Barrios, Alex
Cuadros, Luis Diaz Basurco, Juan Carlos Gutierrez porque fueron ejemplos que deseo
seguir en mi vida profesional.
Deseo agradecer al personal administrativo de la universidad: Gabriela Valencia y Gonzalo
Villegas. Muchas gracias por la atención brindada y porque siempre estuvieron dispuestos
a ayudarnos.
Abreviaturas
AG Algoritmo Genético
AGs Algoritmos Genéticos
ES Estrategias de Selección
SDI Selección Discriminatoria de Individuos
ST Selección por Torneo
SR Selección de Ruleta
SS Selección Sexual
SBR Selección Basada en Ranking
MPs Matriz de Preferencias
EPPM Esquema de Ponderación de Probabilidades de Mutación
AMSG Arquitectura Master-Slave Global
4
Resumen
Un Algoritmo Genético (AG) posee varios operadores genéticos que pueden ser modificados para mejorar su rendimiento. Estos operadores incluyen a
la selección, cruzamiento y mutación. La selección es una de las operaciones
más importantes en el AG. Este trabajo de investigación presenta un modelo
de AG que implementa un operador de selección al que se le denominará Selección Discriminatoria de Individuos (SDI), que se inspira en la discriminación
de clases que existe en la sociedad, es decir los mejores se reproducen con los
mejores y los peores con los peores.. La estructura de este operador toma como
base el operador de Selección Sexual (SS) ya existente. El modelo evolutivo
incluye un Esquema de Ponderación de Probabilidades de Mutación (EPPM)
para la asignación de probabilidades de mutación en la población. Para verificar la calidad de la evolución de los operadores propuestos se realizaron
dos casos de uso: solucionar el problema de mejora de calidad en horarios de
trabajo y cuatro funciones Benchmarking. Los experimentos realizados dieron
resultados que muestran una caracterı́stica exploratoria para el operador de
SDI, mejorando el tiempo de convergencia conforme el tamaño de la población
se incrementa.
Abstract
A Genetic Algorithm (GA) has several operators which may be modified
to improve its performance. These operators include selection, crossover and
mutation. Selection is one of the most important operations in the GA. This
research presents a model of GA that implements a selection operator called
Discriminatory Selection of Individual (DSI), which is inspired by discrimination between classes that exists in society, the best individuals reproduce with
the best and the worst with the worst. The structure of this operator builds
on an existing operator called Sexual Selection (SS). The evolutionary model
includes a Weighted Scheme of Mutation Rates (WSMR) for assigning probabilities of mutation in the population. To verify the quality of the evolution
of the proposed operators two use cases were performed: solve the problem of
quality improvement in working schedules and four Benchmarking functions.
The experiments gave results showing a exploratory feature for DSI operator,
improving convergence time as the size of the population increases.
Índice general
1. Introducción
14
1.1. Motivación y Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.1. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5. Organización de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2. Conceptos Previos
19
2.1. Algoritmo Genético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1. Codificación de Problemas . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2. Función de Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2. Operadores Genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1. Operadores de Cruzamiento . . . . . . . . . . . . . . . . . . . . . . 22
2.2.2. Operadores de Mutación . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.3. Operadores de Selección . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3. Consideraciones Finales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3. Propuesta
32
3.1. Esquema de Ponderación de Probabilidades de Mutación . . . . . . . . . . 33
3.2. Selección Descriminatoria de Individuos . . . . . . . . . . . . . . . . . . . . 35
7
ÍNDICE GENERAL
4. Casos de Estudio, Pruebas y Resultados
38
4.1. Caso de Estudio 1: Funciones Benchmarking . . . . . . . . . . . . . . . . . 38
4.1.1. Definición del Individuo . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.2. Operador de Cruzamiento . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.3. Operador de Mutación . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.4. Parámetros del Modelo . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados . . . . . . 49
4.2.1. Definición de Individuo . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.2. Operador de Cruzamiento . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.3. Operador de Mutación . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.4. Matriz de Preferencias . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.5. Función de Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.6. Parámetros del Modelo . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.7. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5. Conclusiones y Trabajos Futuros
61
5.1. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Bibliografı́a
Ingenierı́a Informática - UCSP
64
8
Índice de cuadros
3.1. Ejemplo del cálculo de las probabilidades de mutación por clase donde
n : 16 y P M I : 0,1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1. Parámetros Caso 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2. Comparativo del número de generaciones que los operadores de Selección
necesitaron para converger en la función Schwegel. . . . . . . . . . . . . . . 49
4.3. Parámetros Caso 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9
Índice de figuras
1.1. Ciclo básico de un Algoritmo Genético . . . . . . . . . . . . . . . . . . . . 14
2.1. Esquema básico de un Algoritmo Genético. . . . . . . . . . . . . . . . . . . 20
2.2. Individuo Genético Binario. . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3. Cruce de 1 punto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4. Cruce de 2 puntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5. Cruce Uniforme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.6. Reemplazo Aleatorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.7. Mutación para Representación de Orden. . . . . . . . . . . . . . . . . . . . 25
2.8. Ejemplo de la Selección de Ruleta. . . . . . . . . . . . . . . . . . . . . . . 26
2.9. Ejemplo de la Selección por Torneo. . . . . . . . . . . . . . . . . . . . . . . 27
2.10. Ejemplo de la probabilidad de elección de acuerdo al fitness. . . . . . . . . 28
2.11. Ejemplo de la probabilidad de elección de acuerdo al ranking. . . . . . . . 28
2.12. Separación de la población en hembras y machos. . . . . . . . . . . . . . . 30
2.13. Selección de hembra no emparejada y selección de un macho. . . . . . . . . 30
2.14. Proceso es repetido hasta que todas las hembras hayan sido apareadas. . . 30
3.1. Esquema de un Algoritmo Genético con el operador propuesto. . . . . . . . 32
3.2. Esquema de los pasos del operador propuesto. . . . . . . . . . . . . . . . . 33
3.3. Separación de la población en dos clases. . . . . . . . . . . . . . . . . . . . 35
3.4. Definir la probabilidad de mutación para cada clase. . . . . . . . . . . . . . 36
10
ÍNDICE DE FIGURAS
3.5. Diferenciación de machos y hembras en cada clase.
. . . . . . . . . . . . . 36
3.6. Emparejamiento y producción de descendencia. . . . . . . . . . . . . . . . 36
4.1. Ejemplo básico del Individuo. . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2. Cruce Uniforme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3. Reemplazo Aleatorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4. Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Step. . . . . . . . . . . . . . . . . . . . . . . . 41
4.5. Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Step. . . . . . . . . . . . . . . . . . . . . . . 42
4.6. Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Step. . . . . . . . . . . . . . . . . . . . . . . 42
4.7. Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Step. . . . . . . . . . . . . . . . . . . . . . . 43
4.8. Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Sphere. . . . . . . . . . . . . . . . . . . . . . . 43
4.9. Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Sphere. . . . . . . . . . . . . . . . . . . . . . 44
4.10. Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Sphere. . . . . . . . . . . . . . . . . . . . . . 44
4.11. Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Sphere. . . . . . . . . . . . . . . . . . . . . . 45
4.12. Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Rosenbrock. . . . . . . . . . . . . . . . . . . . 45
4.13. Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Rosenbrock. . . . . . . . . . . . . . . . . . . 46
4.14. Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Rosenbrock. . . . . . . . . . . . . . . . . . . 46
4.15. Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Rosenbrock. . . . . . . . . . . . . . . . . . . 47
4.16. Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Schwefel. . . . . . . . . . . . . . . . . . . . . . 47
Ingenierı́a Informática - UCSP
11
ÍNDICE DE FIGURAS
4.17. Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Schwefel. . . . . . . . . . . . . . . . . . . . . 48
4.18. Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Schwefel. . . . . . . . . . . . . . . . . . . . . 48
4.19. Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Schwefel. . . . . . . . . . . . . . . . . . . . . 49
4.20. Ejemplo tı́pico y básico de un horario de empleados. . . . . . . . . . . . . . 50
4.21. Ejemplo básico de un Horario Estático en 2 periodos de tiempo. . . . . . . 50
4.22. Ejemplo básico de un Horario Dinámico en 2 periodos de tiempo donde los
casilleros sombreados indican la variación entre periodo 1 y periodo 2. . . . 51
4.23. Esquema básico del Individuo. . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.24. Selección de dos columnas aleatoriamente. . . . . . . . . . . . . . . . . . . 53
4.25. Exchange selected columns. . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.26. Selección mitad menos significativa. . . . . . . . . . . . . . . . . . . . . . . 54
4.27. Mutación de turnos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.28. Ejemplo básico de una Matriz de Preferencias. . . . . . . . . . . . . . . . . 55
4.29. Ejemplo básico de un Horario y su respectiva Matriz de Preferencias. . . . 56
4.30. Valores obtenidos después de multiplicar posición por posición. . . . . . . . 56
4.31. Comparación entre Operadores de Selección. . . . . . . . . . . . . . . . . . 57
4.32. Comparación entre Probabilidades de Cruzamiento y Mutación. . . . . . . 58
4.33. Comparación entre diferente número de Indidivuos en una Población . . . 58
4.34. Comparación entre Operadores de Cruzamiento y Mutación . . . . . . . . 59
4.35. Comparación entre diferentes tamaños de clase . . . . . . . . . . . . . . . . 60
4.36. Optimización de la Calidad de un Horario. . . . . . . . . . . . . . . . . . . 60
Ingenierı́a Informática - UCSP
12
Lista de algoritmos
1.
2.
3.
4.
5.
6.
Algoritmo Genético Básico . . . . . . . . . . . . . . .
Pseudocódigo Selección de Ruleta . . . . . . . . . . .
Pseudocódigo Selección por Torneo . . . . . . . . . .
Pseudocódigo Selección Basada en Ranking . . . . . .
Pseudocódigo Selección Sexual . . . . . . . . . . . . .
Pseudocódigo Selección Descriminatoria de Individuos
13
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
26
27
29
31
37
Capı́tulo 1
Introducción
Los Algoritmos Genéticos (AGs) son métodos de optimización [Goldberg, 1989] basados en el paradigma Neo-Darwiniano [Tuttle, 1989], como la vida biológica en nuestro
mundo que envuelve los mecanismos de reproducción, mutación, competición y selección
natural. En la naturaleza los individuos de una población compiten entre sı́ en la búsqueda de recursos tales como comida, agua y refugio. Incluso los miembros de una misma
especie compiten a menudo en la búsqueda de un compañero para producir descendencia.
Aquellos individuos que tienen más éxito en sobrevivir y en atraer compañeros tienen
mayor probabilidad de generar un gran número de descendientes. Por el contrario, individuos poco dotados producirán un menor número de descendientes. Esto significa que los
genes de los individuos mejor adaptados se propagarán en sucesivas generaciones hacia un
número de individuos creciente. La combinación de buenas caracterı́sticas provenientes de
diferentes ancestros, puede a veces producir descendientes superindividuos, cuya adaptación es mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies
evolucionan logrando unas caracterı́sticas cada vez mejor adaptadas al entorno en el que
viven. La Figura 1.1 muestra el ciclo básico evolucionario de un Algoritmo Genético (AG)
con sus respectivos operadores.
Figura 1.1: Ciclo básico de un Algoritmo Genético
El poder de los AGs proviene del hecho de que se trata de una técnica robusta, y
pueden tratar con éxito una gran variedad de problemas provenientes de diferentes áreas,
14
CAPÍTULO 1. Introducción
incluyendo aquellos en los que otros métodos encuentran dificultades. Si bien no se garantiza que el AG encuentre la solución óptima del problema al final de las iteraciones, existe
evidencia empı́rica de que se encuentran soluciones de un nivel aceptable, en un tiempo
competitivo con el resto de algoritmos de optimización combinatoria y además en la literatura se encuentra un análisis matemático que muestra la convergencia al óptimo global
para modelos con codificaciones binarias cuando se emplea elitismo [Rudolph, 1994].
Los AGs están compuestos generalmente de dos procesos. El primer proceso es la selección de individuos para la producción de la siguiente generación y el segundo proceso es
la manipulación de los individuos seleccionados para conformar la siguiente generación
mediante las técnicas de cruzamiento y mutación. El mecanismo de selección determina
cuáles son los individuos seleccionados para la reproducción. El principio más importante
de la estrategia de selección es mientras mejor sea el individuo, mayor es su probabilidad
de ser padre [Razali and Geraghty, 2011].
El mecanismo de selección reduce el área de búsqueda dentro de la población descartando soluciones pobres, el mecanismo de selección debe dar la oportunidad a todos
los individuos ya sean buenos o malos de que puedan reproducirse. Es importante encontrar un equilibrio donde las soluciones pobres deben tener la oportunidad de ir a la
siguiente generación, y las buenas soluciones pasen a la siguiente generación con más
frecuencia que las soluciones pobres. El mecanismo de selección debe ser elegido de tal
manera que la convergencia a la solución óptima global esté garantizada. Durante el desarrollo de los AGs, muchas estrategias de selección han sido propuestas y utilizadas tales
como: Selección de Ruleta (SR), Selección por Torneo (ST) [Michalewicz, 1996], Selección
Basada en Ranking (SBR) o algunas selecciones aplicadas en estrategias evolucionarias
[Geyer et al., 1999]. Recientemente, la Selección Sexual (SS) ha sido propuesta para proveer una clara separación entre exploración y explotación sin la inconveniencia del ajuste
de parámetros [Goh et al., 2003].
1.1.
Motivación y Contexto
En lo que se respecta a los métodos de selección, en la literatura se compara los métodos de selección con mejor rendimiento [Razali and Geraghty, 2011]. Se determina que
el operador de ST obtiene un mejor rendimiento en cuanto a la calidad de la solución en
comparación con la SR y la SBR. Adicionalmente se concluye que la ST es superior a la SR
y SBR en problemas de menor complejidad ya que se vuelve susceptible a la convergencia
prematura conforme la complejidad del problema se incrementa. Las comparaciones entre
los operadores de selección que se han realizado ayudan a comprender la relación del fitness y la convergencia. Se concluye que la ST supera a la SBR en términos de mantener la
presión constante hacia la convergencia. En las investigaciones sobre los AGs para encontrar soluciones de problemas de distintas complejidades y de distintas áreas, generalmente
se proponen operadores genéticos de cruzamiento y mutación, además de la función de
evaluación. Debido a que estos operadores se centran en explorar el espacio de búsqueda,
nace la necesidad de definir un nuevo operador de selección que ayude a explotar mejor el
espacio de búsqueda, es decir, de utilizar todas las soluciones independientemente de su
Ingenierı́a Informática - UCSP
15
1.2. Estado del Arte
calidad. Debido a que el rendimiento de un AG es evaluada en términos de convergencia
y el número de generaciones necesarias para hallar el óptimo global, este nuevo operador debe tener una convergencia uniforme, descartando la convergencia prematura ası́ la
rapidez en alcanzar el óptimo global.
1.2.
Estado del Arte
Varias investigaciones han estudiado el rendimiento de los AGs usando diferentes
estrategias de selección. El rendimiento de los AGs es usualmente evaluada en términos
de convergencia y número de generaciones hasta alcanzar el óptimo global.
En el trabajo de investigación de [Jadaan et al., 2008] se comparan los resutados
de los operadores de SR y SBR usando varias funciones de optimización matemática y
determinó que la SBR superó a la SR en cuanto al menor uso de generaciones para hallar
la solución óptima. Observó que la SBR es más estable y más rápida que la SR.
Por otro lado, [Zhong et al., 2005] compara la SR con la ST, con siete funciones de
prueba y concluyó que el algoritmo con la ST es más eficiente en la convergencia que la
SR.
En el trabajo de investigación de [Goh et al., 2003] se propone un operador de selección denominado SS, el cual se inspira en el concepto de selección sexual propuesto por
Darwin, y compara este operador con diferentes métodos de selección. Se concluye con
que el operador de selección propuesto tiene un rendimiento ya sea igual o mejor que la
SR. El nuevo esquema también tuvo un mejor rendimiento en comparación con la ST.
En el trabajo de investigación de [Cheng et al., 2012] se propone un operador de
Selección Bisexual, en donde se propone dividir la población de individuos en hembras
y machos. Esta propuesta tiende a modificar las preferencias de emparejamiento de los
machos y hembras al punto de que puedan elegir reproducirse con alguien de su mismo
género. Esto debido a que a veces en la población generada no habrá un número equitativo
de machos y hembras.
Finalmente, en el trabajo de investigación de [Razali and Geraghty, 2011] se presenta la comparación del rendimiento del AG al resolver el problema del vendedor viajero
utilizando diferentes mecanismos de selección. Se concluye en el trabajo que la ST obtiene un mejor rendimiento en cuanto a la calidad de la solución en comparación con la
SR y la SBR. Se determina también que la ST es superior a la SR y SBR en problemas
pequeños porque se vuelve susceptible a la convergencia prematura conforme el tamaño
del problema se incrementa.
Los trabajos de investigación mencionados se han realizado para comprender la
relación del fitness y la convergencia. Se concluyó que la ST supera a la SBR en términos
de mantener la presión constante hacia la convergencia. El operador propuesto se basa en
la estructura del operador de SS [Goh et al., 2003]. Los operadores de selección a utilizar
Ingenierı́a Informática - UCSP
16
CAPÍTULO 1. Introducción
para comparar la propuesta serán los usados en los distintos trabajos de investigación, los
cuales son: ST, SR, SBR y la SS.
1.3.
Planteamiento del Problema
Generalmente, los operadores de cruzamiento y la mutación exploran el espacio de
búsqueda, mientras que la selección reduce el área de búsqueda dentro de la población
descartando soluciones pobres. Sin embargo, los peores individuos no deben ser descartados y deben tener algunas posibilidades de ser seleccionados, ya que pueden dar lugar a
material genético útil. Un parámetro crı́tico en el AG es la presión de selección, que es el
proceso de selección que selecciona a los individuos más aptos para la reproducción. Si la
presión de selección es demasiada baja, entonces la tasa de convergencia hacia la solución
óptima será demasiada lenta. Si la presión de selección es demasiada alta, es probable
que el AG se quede atrapado en un óptimo local debido a la falta de diversidad en la
población [Oladele and Sadiku, 2013]. Una buena técnica de búsqueda debe encontrar un
buen equilibrio entre la exploración y la explotación con el fin de encontrar un óptimo
global [Beasley et al., 1993]. Por lo tanto, es importante encontrar un equilibrio entre la
exploración (es decir, soluciones pobres deben tener la oportunidad de ir a la siguiente
generación) y explotación (es decir, las buenas soluciones pasan a la siguiente generación
con más frecuencia que las soluciones pobres) dentro del mecanismo de la selección. Cada
estrategia de selección utilizada en el proceso de un AG afectará significativamente el
rendimiento del algoritmo de una forma diferente. El mecanismo de selección debe ser
elegido de tal manera que la convergencia a la solución óptima global esté garantizada.
Además el proceso de selección debido a que es el proceso más costoso de un AG debe
poseer una caracterı́stica que lo haga paralelizable para ası́ reducir considerablemente el
tiempo y costo de procesamiento.
1.4.
Objetivos
El objetivo principal de esta investigación es proponer y evaluar un nuevo operador
de selección basado en la Selección Sexual para un Algoritmo Genético (AG) el cual
adicionalmente implementa un esquema de probabilidades de mutación.
1.4.1.
Objetivos Especı́ficos
Los objetivos especı́ficos de esta investigación son:
Modelar un nuevo operador de selección.
Modelar un esquema de probabilidades de mutación.
Ingenierı́a Informática - UCSP
17
1.5. Organización de la Tesis
Probar el Algoritmo Genético (AG) con el nuevo operador en un problema de mejora
de calidad de horario de trabajo implementando una estructura adicional.
Probar el Algoritmo Genético (AG) en optimización numérica con Funciones Benchmark.
1.5.
Organización de la Tesis
Este trabajo de investigación se organiza de la siguiente manera:
El Capı́tulo 2 presenta los conceptos previos sobre AGs y Estrategias de Selección
(ES).
El Capı́tulo 3 contiene una descripción de la propuesta del nuevo operador de selección
El Capı́tulo 4 define los casos de uso a utilizar con sus respectivos experimentos.
Finalmente, en el capı́tulo 5 se mencionan las conclusiones, limitaciones y trabajos
futuros correspondientes a este trabajo de investigación.
Ingenierı́a Informática - UCSP
18
Capı́tulo 2
Conceptos Previos
En este capı́tulo se especifican conceptos que son necesarios para la realización de
la propuesta, primeramente se definen a los AGs, seguido de los operadores de selección
existentes.
2.1.
Algoritmo Genético
Los AGs son métodos adaptativos que pueden usarse para resolver problemas de
búsqueda y optimización. Están basados en el proceso genético de los organismos vivos
[Holland, 1975]. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza
acorde con los principios de la selección natural y la supervivencia de los más fuertes, los
AGs son capaces de ir creando soluciones para problemas del mundo real. La evolución de
dichas soluciones hacia valores óptimos del problema depende en buena medida de una
adecuada codificación de las mismas.
Más formalmente, y siguiendo la definición dada por Goldberg, ”Los Algoritmos
Genéticos son algoritmos de búsqueda basados en la mecánica de selección natural y de la
genética natural. Combinan la supervivencia del más apto entre estructuras de secuencias
con un intercambio de información estructurado, aunque aleatorizado, para constituir ası́
un algoritmo de búsqueda que tenga algo de las genialidades de las búsquedas humanas”
[Goldberg, 1989].
Los AGs usan una analogı́a directa con el comportamiento natural. Trabajan con
una población de individuos, cada uno de los cuales representa una solución factible a un
problema dado. Luego el AG evalúa cada candidata de acuerdo con la función de aptitud.
En un acervo de candidatas generadas aleatoriamente, por supuesto, la mayorı́a no funcionarán en absoluto, y serán eliminadas. Sin embargo, por puro azar, unas pocas pueden ser
prometedoras, aunque sólo sea actividad débil e imperfecta, hacia la solución del problema
[Marczyk, 2004]. En la naturaleza esto equivaldrı́a al grado de efectividad de un organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptación de
19
2.1. Algoritmo Genético
un individuo al problema, mayor será la probabilidad de que el mismo sea seleccionado
para reproducirse, cruzando su material genético con otro individuo seleccionado de igual
forma. En la Figura 2.1 se muestra el modelo básico del AG.
Evaluación de
la descendencia
Individuo
x1
x2
x3
x4
f (◦)
genotipo
100100
010010
010110
000001
fitness
1296
324
484
1
Selección de
Progenitores
Evolución
Cruce
Nueva población
de descendientes
Reproducción
Mutación
Figura 2.1: Esquema básico de un Algoritmo Genético.
Durante la ejecución del algoritmo, los padres deben ser seleccionados para la reproducción, a continuación dichos padres seleccionados se cruzarán generando dos hijos, sobre
cada uno de los cuales actuará un operador de mutación. El resultado de la combinación
de las anteriores funciones será un conjunto de individuos, los cuales en la evolución del
AG formarán parte de la siguiente población. A continuación se muestra un pseudocódigo
de un AG básico.
Algoritmo 1 Algoritmo Genético Básico
generar una población inicial
evaluación de fitness de cada individuo
mientras condición de fin = falso hacer
para tamaño población / 2 hacer
seleccionar dos individuos de la anterior generación para cruzamiento
cruzar los dos individuos obteniendo dos descendientes
mutar los dos individuos descendientes
evaluar fitness de los dos individuos descendientes
insertar los dos descendientes en la nueva generación
fin para
si población ha convergido entonces
Terminado := TRUE
fin si
fin mientras
Ingenierı́a Informática - UCSP
20
CAPÍTULO 2. Conceptos Previos
2.1.1.
Codificación de Problemas
Cualquier solución potencial a un problema puede ser presentada dando valores a
una serie de parámetros. El conjunto de todos los parámetros (genes en la terminologı́a
de AGs) se codifica en una cadena de valores denominada cromosoma.
El conjunto de los parámetros representado por un cromosoma particular recibe el
nombre de genotipo. El genotipo contiene la información necesaria para la construcción
del organismo, es decir, la solución real al problema, denominada fenotipo. Por ejemplo,
en términos biológicos, la información genética contenida en el ADN de un individuo serı́a
el genotipo, mientras que la expresión de ese ADN (el propio individuo) serı́a el fenotipo.
Desde los primeros trabajos de [Holland, 1975] la codificación suele hacerse mediante
valores binarios. Se asigna un determinado número de bits a cada parámetro y se realiza
una discretización de la variable representada por cada gen. El número de bits asignados
dependerá del grado de ajuste que se desee alcanzar. Evidentemente no todos los parámetros tienen que estar codificados con el mismo número de bits. Cada uno de los bits
pertenecientes a un gen suele recibir el nombre de alelo. La Figura 2.2 muestra un ejemplo
de un individuo binario que codifica 3 parámetros.
Figura 2.2: Individuo Genético Binario.
Sin embargo, también pueden existir representaciones que codifiquen directamente
cada parámetro con un valor entero, real o en punto flotante. A pesar de que se acusa a
estas representaciones de degradar el paralelismo implı́cito de las representaciones binarias,
permiten el desarrollo de operadores genéticos más especı́ficos al campo de aplicación del
AG [Gestal, 2010].
2.1.2.
Función de Evaluación
Para el correcto funcionamiento de un AG se debe de poseer un método que indique si
los individuos de la población representan o no buenas soluciones al problema planteado.
Por lo tanto para cada tipo de problema que se desee resolver se deberá derivar a un
nuevo método, al igual que ocurrirá con la propia codificación de los individuos. De esto
se encarga la función de evaluación, que establece una medida numérica de la bondad de
una solución. Esta medida recibe el nombre de ajuste.
En la naturaleza el ajuste (o fitness) de un individuo puede considerarse como la
Ingenierı́a Informática - UCSP
21
2.2. Operadores Genéticos
probabilidad de que ese individuo sobreviva hasta la edad de reproducción y se reproduzca.
Esta probabilidad deberá estar ponderada con el número de descendientes. Evidentemente
no es lo mismo una probabilidad de reproducción del 0.25 en una población de un par
de cientos de individuos que esa misma probabilidad en una población de varios millones.
En el mundo de los AGs se empleará esta medición para controlar la aplicación de los
operadores genéticos. Es decir, permitirá controlar el número de selecciones, cruces, copias
y mutaciones llevadas a cabo.
2.2.
Operadores Genéticos
Para el paso de una generación a la siguiente se aplican una serie de operadores
genéticos. A continuación se definen a los operadores de cruzamiento, mutación y selección.
2.2.1.
Operadores de Cruzamiento
Un operador genético de cruzamiento es un operador empleado para la recombinación para producir la descendencia que se insertará en la siguiente generación. Su importancia para la transición entre generaciones es elevada puesto que las tasas de cruce con
las que se suele trabajar rondan el 90 % .
La idea principal del cruce se basa en que, si se toman dos individuos correctamente
adaptados al medio y se obtiene una descendencia que comparta genes de ambos, existe
la posibilidad de que los genes heredados sean precisamente los causantes de la bondad
de los padres. Al compartir las caracterı́sticas buenas de dos individuos, la descendencia,
o al menos parte de ella, deberı́a tener una bondad mayor que cada uno de los padres por
separado. Existen multitud de operadores de cruce. Sin embargo los más empleados son
los que se detallarán a continuación:
Cruce de 1 punto
Es la más sencilla de las técnicas de cruce. Una vez seleccionados dos individuos
se cortan sus cromosomas por un punto seleccionado aleatoriamente para generar dos
segmentos diferenciados en cada uno de ellos: la cabeza y la cola. Se intercambian las
colas entre los dos individuos para generar los nuevos descendientes. De esta manera
ambos descendientes heredan información genética de los padres, tal y como puede verse
en la Figura 2.3.
Ingenierı́a Informática - UCSP
22
CAPÍTULO 2. Conceptos Previos
Figura 2.3: Cruce de 1 punto.
Cruce de 2 puntos
Se trata de una generalización del cruce de 1 punto. En vez de cortar por un único
punto los cromosomas de los padres como en el caso anterior se realizan dos cortes. Deberá
tenerse en cuenta que ninguno de estos puntos de corte coincida con el extremo de los
cromosomas para garantizar que se originen tres segmentos. Para generar la descendencia
se escoge el segmento central de uno de los padres y los segmentos laterales del otro padre.
(Véase Figura 2.4)
Figura 2.4: Cruce de 2 puntos.
Cruce Uniforme
Consiste en la generación aleatoria de una máscara de cruce con valores binarios
[Gestal, 2010]. Si en una de las posiciones de la máscara hay un 1, el gen situado en esa
posición en uno de los descendientes se copia del primer padre. Si por el contrario hay un 0
en gel se copia del segundo padre. Para producir el segundo descendiente se intercambian
los papeles de los padres, o bien se intercambia la interpretación de los unos y ceros de la
máscara de cruce tal como se puede apreciar en la Figura 2.5.
Ingenierı́a Informática - UCSP
23
2.2. Operadores Genéticos
Figura 2.5: Cruce Uniforme.
2.2.2.
Operadores de Mutación
Un operador genético de mutación permite alcanzar cualquier parte del espacio de
búsqueda de un individuo. La mutación de un individuo provoca que alguno de sus genes,
generalmente uno sólo, varı́e su valor de forma aleatoria. Aunque se pueden seleccionar
los individuos directamente de la población actual y mutarlos antes de introducirlos en la
nueva población, la mutación se suele utilizar de manera conjunta con el operador de cruce.
La probabilidad de mutación es muy baja, generalmente menor al 1 %. Esto se debe sobre
todo a que los individuos suelen tener un fitness menor después de mutados. Sin embargo
se realizan mutaciones para garantizar que ningún punto del espacio de búsqueda tenga
una probabilidad nula de ser examinado. Existen multitud de operadores de mutación.
Sin embargo los más empleados son los que se detallarán a continuación:
Reemplazo Aleatorio
Este consiste en variar aleatoriamente un gen de un cromosoma. Si se trabaja con
codificaciones binarias consistir simplemente en negar un bit. (Véase la Figura 2.6)
Ingenierı́a Informática - UCSP
24
CAPÍTULO 2. Conceptos Previos
Figura 2.6: Reemplazo Aleatorio.
Mutación para Representación de Orden
Consiste en la selección aleatoria de dos puntos en el cromosoma. Estos dos puntos
seleccionados se intercambian en el cromosoma generando un nuevo individuo como se
muestra en la Figura 2.7.
Figura 2.7: Mutación para Representación de Orden.
2.2.3.
Operadores de Selección
Los operadores de selección serán los encargados de escoger qué individuos van a
disponer de oportunidades de reproducirse y cuáles no. Puesto que se trata de imitar
lo que ocurre en la naturaleza, se ha de otorgar un mayor número de oportunidades
de reproducción a los individuos más aptos. Por lo tanto la selección de un individuo
estará relacionada con su valor de ajuste. No se debe sin embargo eliminar por completo
las opciones de reproducción de los individuos menos aptos, pues en pocas generaciones
la población se volverı́a homogénea. Se debe dar una posibilidad de reproducirse a los
individuos menos aptos ya que estos pueden incluir material genético útil en el proceso
de reproducción. A continuación se detallará los operadores de selección mayormente
utilizados ası́ como del operador de SS.
Selección de Ruleta
Propuesto por DeJong, también conocida como Selección proporcional a la función
de desempeño, es posiblemente el método más utilizado desde los orı́genes de los AGs
[Blickle and Thiele, 1995]. A cada uno de los individuos de la población se le asigna una
Ingenierı́a Informática - UCSP
25
2.2. Operadores Genéticos
parte proporcional a su ajuste de una ruleta, de tal forma que la suma de todos los
porcentajes sea la unidad. Los mejores individuos recibirán una porción de la ruleta mayor
que la recibida por los peores. Generalmente la población está ordenada en base al ajuste
por lo que las porciones más grandes se encuentran al inicio de la ruleta. Para seleccionar
un individuo basta con generar un número aleatorio del intervalo [0..1] y devolver el
individuo situado en esa posición de la ruleta. Sea N el número de individuos existentes y
fi el desempeño del i-ésimo individuo. La probabilidad asociada a su selección está dada
por:
fi
pi = PN
j=1 fj
(2.1)
Esta posición se suele obtener recorriendo los individuos de la población y acumulando sus proporciones de ruleta hasta que la suma exceda el valor obtenido. (Véase Figura
2.8)
Figura 2.8: Ejemplo de la Selección de Ruleta.
A continuación se muestra el pseudocódigo del procedimiento del operador de SR.
Algoritmo 2 Pseudocódigo Selección de Ruleta
Generar el valor de n con un valor de 0
mientras tamaño de la población >n hacer
Generar el número aleatorio r
Calcular el fitness acumulado, fitness total (Pt ), y la suma del fitness proporcional
(SUM)
si SUM <r entonces
Seleccionar el primer cromosoma, de otra manera, seleccionar el i-ésimo cromosoma
fin si
Incrementar el valor de n en una unidad
fin mientras
Devolver los cromosomas con valores de fitness proporcionales al tamaño de la sección
de la ruleta seleccionada
Ingenierı́a Informática - UCSP
26
CAPÍTULO 2. Conceptos Previos
Selección por Torneo
Esta selección se efectúa mediante un torneo (comparación) entre un pequeño subconjunto de individuos elegidos al azar desde la población. Los beneficios de este tipo de
selección son la velocidad de aplicación (dado que no es necesario evaluar ni comparar la
totalidad de la población) y la capacidad de prevenir, en cierto grado, la convergencia prematura. La principal desventaja es la necesidad de establecer el parámetro correspondiente
al tamaño del subconjunto [Goldberg, 1989].
Variando el número de individuos que participan en cada torneo se puede modificar
la presión de selección. Cuando participan muchos individuos en cada torneo, la presión de
selección es elevada y los peores individuos apenas tienen oportunidades de reproducción.
Un caso particular es el elitismo global. Se trata de un torneo en el que participan todos
los individuos de la población con lo cual la selección se vuelve totalmente determinı́stica.
Cuando el tamaño del torneo es reducido, la presión de selección disminuye y los peores
individuos tienen más oportunidades de ser seleccionados.
En la Figura 2.9 se observa el ejemplo básico de una ST:
Figura 2.9: Ejemplo de la Selección por Torneo.
A continuación se muestra el pseudocódigo del procedimiento del operador de ST.
Algoritmo 3 Pseudocódigo Selección por Torneo
Definir tamaño del subconjunto
Calcular el fitness acumulado, fitness total (Pi )
mientras tamaño del subconjunto >0 hacer
Elegir concursante
fin mientras
Ordenar los concursante de acuerdo a su fitness y elegir el ganador del torneo
Devolver el cromosoma ganador del torneo
Ingenierı́a Informática - UCSP
27
2.2. Operadores Genéticos
Selección Basada en Ranking
Esta selección se efectúa mediante la ordenación de la población de acuerdo a su
fitness y entonces las probabilidades de selección se asignan de acuerdo a su ranking. La
SBR puede evitar la convergencia prematura pero puede ser computacionalmente costosa
por la necesidad de ordenar la población. La probabilidad asociada a su selección está
dada por:
Rankingi = 2 − SP + (2.(SP − 1) ∗
(P os − 1)
)
(n − 1)
donde : 1,0 < SP ≤ 2,0
(2.2)
Se considera a n como el número de individuos en la población, a Pos como la
posición de un individuo en la población y la SP como la presión de selección. En las
Figuras 2.10 y 2.11 se observa como la probabilidad de elección varı́a con la SBR, evitando
que existan super individuos.
Figura 2.10: Ejemplo de la probabilidad de elección de acuerdo al fitness.
Figura 2.11: Ejemplo de la probabilidad de elección de acuerdo al ranking.
A continuación se muestra el pseudocódigo del procedimiento del operador de SBR.
Ingenierı́a Informática - UCSP
28
CAPÍTULO 2. Conceptos Previos
Algoritmo 4 Pseudocódigo Selección Basada en Ranking
Generar el valor de n con un valor de 0
mientras tamaño de la población >n hacer
Generar el número aleatorio r
Ordenar población de acuerdo a su ranking
Asignar los valores de fitness a los individuos de acuerdo a su ranking
Calcular el fitness acumulado, fitness total (Pt ), y la suma del fitness proporcional
(SUM)
si SUM <r entonces
Seleccionar el primer cromosoma, de otra manera, seleccionar el i-ésimo cromosoma
fin si
Incrementar el valor de n en una unidad
fin mientras
Devolver los cromosomas con valores de fitness proporcionales al tamaño de la sección
de la ruleta seleccionada
Selección Sexual
El esquema de Selección Sexual [Goh et al., 2003] se inspira en el concepto de selección sexual propuesto por Darwin que sugiere que la elección de pareja opera a través de
la elección femenina. Esta implementación consta de 5 etapas principalmente:
1. Separar la generación actual en machos y hembras.
2. Seleccionar una hembra no emparejada.
3. Seleccionar un macho a emparejar.
4. Emparejar la hembra y macho para producir descendencia.
5. Vuelva al paso 2 hasta que todas las hembras hayan copulado.
Este diseño asegura que todas las hembras se llegan a reproducir independientemente
de su aptitud y su objetivo es facilitar la exploración del espacio de búsqueda. Por el otro
lado, el sesgo hacia los machos explota el conocimiento de que la estructura del cromosoma
del individuo es mejor. En las Figuras 2.12, 2.13 y 2.14 se detalla en forma gráfica la SS.
Ingenierı́a Informática - UCSP
29
2.2. Operadores Genéticos
Figura 2.12: Separación de la población en hembras y machos.
Figura 2.13: Selección de hembra no emparejada y selección de un macho.
Figura 2.14: Proceso es repetido hasta que todas las hembras hayan sido apareadas.
A continuación se muestra el pseudocódigo del procedimiento del operador de SS.
Ingenierı́a Informática - UCSP
30
CAPÍTULO 2. Conceptos Previos
Algoritmo 5 Pseudocódigo Selección Sexual
Separar la población en machos y hembras de acuerdo a su fitness
Generar el valor n con valor de tamaño de la población / 2
Calcular el fitness acumulado, fitness total (Pt )
mientras n >0 hacer
Seleccionar hembra no emparejada
Seleccionar macho para emparejar de acuerdo a su fitness
Decrementar el valor de n en una unidad
fin mientras
Devolver las parejas formadas por los inviduos de acuerdo al proceso de selección
2.3.
Consideraciones Finales
Luego de la especificación de los conceptos previos de esta sección se procederá a
especificar la propuesta que se basa claramente en la utilización de un AG con un operador
de selección basándose en la estructura de la Selección Sexual[Goh et al., 2003], además
del uso de un esquema de probabilidades de mutación que ayudará a explorar mejor el
espacio de búsqueda. Los operadores de cruzamiento y mutación se basan en los operadores
utilizados en estas investigaciones.
Ingenierı́a Informática - UCSP
31
Capı́tulo 3
Propuesta
En este capı́tulo se detalla la propuesta del nuevo modelo del AG incluyendo el
operador de selección propuesto ası́ como el esquema de ponderación de probabilidades
de mutación. La propuesta se basa en la necesidad de un nuevo operador de selección que
explore el espacio de búsqueda de un problema, con la caracterı́stica de que utilice todas
las soluciones, ya sean buenas o malas. Este nuevo operador debe tener una convergencia
uniforme, descartando la convergencia prematura además de alcanzar el óptimo global en
un menor número de generaciones. En la Figura 3.1 se muestra el modelo básico del AG
donde se resalta la parte que modifica la propuesta, la cual es el operador de selección.
Además, en la Figura 3.2 se muestran los pasos que componen este operador de selección.
Evaluación de
la descendencia
f (◦)
Individuo
x1
x2
x3
x4
genotipo
100100
010010
010110
000001
Evolución
fitness
1296
324
484
1
Modelo de
Selección
Propuesto
Cruce
Nueva población
de descendientes
Reproducción
Mutación
Figura 3.1: Esquema de un Algoritmo Genético con el operador propuesto.
32
CAPÍTULO 3. Propuesta
Figura 3.2: Esquema de los pasos del operador propuesto.
Adicionalmente al operador de selección, se propone un esquema de probabilidades
de mutación que será utilizado por el operador para asignar las probabilidades de mutación
a sus diversas clases. Los puntos contenidos en este capı́tulo son los siguientes:
1. Esquema de Ponderación de Probabilidades de Mutación
2. Operador de Selección Discriminatoria de Individuos
3.1.
Esquema de Ponderación de Probabilidades de
Mutación
Debido a que el operador de selección propuesto divide la población en clases dependiendo de su aptitud, se agrega un esquema donde las probabilidades de mutación en
la población varı́an dependiendo a que clase pertenecen los individuos. La clase más alta
posee una probabilidad base inicial de mutación mientras que las demás clases van aumentando su probabilidad en incrementos constantes de tal forma que la última clase tiene
Ingenierı́a Informática - UCSP
33
3.1. Esquema de Ponderación de Probabilidades de Mutación
una probabilidad de mutación de 1. Este aumento de probabilidad se calcula utilizando
la Ecuación 3.1.
k=
donde:
1 − P M0
(n − 1)
(3.1)
n: es el número de clases.
P M0 : es la probabilidad inicial de mutación.
k: es el incremento de probabilidad por cada clase.
En el Cuadro 3.1 se muestra un ejemplo de la variación de las probabilidad de
mutación al aplicar la Ecuación 3.1 con una probabilidad inicial de 0.10 y un número de
16 clases. El valor de k es de 0.06.
Clase
Probabilidad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
0.10
0.16
0.22
0.28
0.34
0.40
0.46
0.52
0.58
0.64
0.70
0.76
0.82
0.88
0.94
1.00
Cuadro 3.1: Ejemplo del cálculo de las probabilidades de mutación por clase donde n : 16
y P M I : 0,1.
Con este esquema se garantiza que las clases más bajas tengan la oportunidad de
generar descendientes con buen fitness, es decir, la alta probabilidad de mutación ayuda
a explorar el espacio de búsqueda y no solo centrarse en los individuos que pertenecen a
las clases más altas.
Este esquema elimina la dependencia entre clases al realizar operaciones, un problema en los operadores de selección clásicos. Al eliminar esta dependencia ayuda a que el
AG pueda ser paralelizable.
Ingenierı́a Informática - UCSP
34
CAPÍTULO 3. Propuesta
3.2.
Selección Descriminatoria de Individuos
Debido a que surge la necesidad de explotar todos los elementos del espacio de
búsqueda, este operador utiliza el Esquema de Ponderación de Probabilidades de Mutación (EPPM) para asignar probabilidades de mutación a todos los individuos. Al asignar
diferentes probabilidades de mutación a las distintas clases generadas, se garantiza que
los individuos pobres tengan la posibilidad de generar un descendiente bueno.
Este operador de selección divide la población en clases de acuerdo a su fitness.
Juntando a los mejores individuos con los mejores individuos y a los peores individuos con
los peores individuos. Con la separación de la población en clases, se elimina la dependencia
entre clases. Al eliminar esta dependencia el algoritmo puede ser implementado en un
contexto paralelo. Adicionalmente, este operador se basa en la estructura del operador de
selección sexual [Goh et al., 2003]. La Selección Discriminatoria de Individuos (SDI) se
compone principalmente en los siguientes pasos:
1. Separar población en clases de acuerdo a su aptitud.
2. Definir probabilidad de mutación para cada clase utilizando el EPPM.
3. En cada clase diferenciar las hembras y los machos.
4. Seleccionar una hembra no emparejada y un macho de la misma clase para emparejar.
5. Emparejar la hembra y macho para producir descendencia.
6. Vuelva al paso 2 hasta que todas las hembras se hayan reproducido.
A continuación se mostrará un ejemplo gráfico de la SDI ilustrado en las Figuras
3.3, 3.4, 3.5 y 3.6.
Figura 3.3: Separación de la población en dos clases.
Ingenierı́a Informática - UCSP
35
3.2. Selección Descriminatoria de Individuos
Figura 3.4: Definir la probabilidad de mutación para cada clase.
Figura 3.5: Diferenciación de machos y hembras en cada clase.
Figura 3.6: Emparejamiento y producción de descendencia.
A continuación se muestra el pseudocódigo del procedimiento del operador de SSI!
(SSI!).
Ingenierı́a Informática - UCSP
36
CAPÍTULO 3. Propuesta
Algoritmo 6 Pseudocódigo Selección Descriminatoria de Individuos
Ordenar la población de acuerdo a su aptitud
Generar el valor del tamaño de clase
Separar la población en clases de acuerdo a su aptitud
mientras cantidad de clases >0 hacer
Definir probabilidad de mutación para cada clase
Separar los individuos de la clase en machos y hembras de acuerdo a su fitness
Calcular el fitness acumulado, fitness total (Pt ) por cada clase
Generar el valor n con valor de tamaño de la clase / 2
fin mientras
mientras n >0 hacer
Seleccionar hembra no emparejada
Seleccionar macho para emparejar de acuerdo a su fitness
Decrementar el valor de n en una unidad
fin mientras
Devolver las parejas formadas por los inviduos de acuerdo al proceso de selección
Este operador de selección permitirá dividir la población en clases de acuerdo a su
aptitud, lo que permitirı́a emparejar a los mejores con los mejores y peores con los peores,
cada clase tiene su propia probabilidad de mutar que es más baja en las mejores clases
y se incrementa conforme se clasifican los demás individuos. Además permitirı́a utilizar
paralelismo para disminuir el costo de cálculo de soluciones.
Ingenierı́a Informática - UCSP
37
Capı́tulo 4
Casos de Estudio, Pruebas y
Resultados
Con la propuesta ya definida en el capı́tulo anterior se procede a realizar los experimentos y análisis de los resultados obtenidos. Para las pruebas se tendrán dos casos de
uso, los cuales se detallan a continuación:
4.1.
Caso de Estudio 1: Funciones Benchmarking
Para la obtención de resultados de este caso de estudio se utilizan 4 funciones
Benchmarking. Digalakis [Digalakis and Margaritis, 2002] resume un conjunto de funciones Benchmarking. En este conjunto, se seleccionan cuatro funciones, para llevar a cabo
el estudio propuesto, las cuales se mencionan a continuación:
Función Step : es la representante de la problemática de las superficies planas,
las cuáles son obstáculos para los algoritmos de optimización debido a que no dan
información acerca de que dirección es favorable para realizar la búsqueda. Su óptimo
global es 0.
f1 =
n
X
|xi |
donde : −5, 12 ≤ xi ≤ 5, 12
(4.1)
i=1
Función Sphere : función parabólica, convexa lisa, unimodal, simétrica, y cuya convergencia para el óptimo global se consigue fácilmente. Su óptimo global es 0.
f2 =
n
X
x2i
donde : −5, 12 ≤ xi ≤ 5, 12
i=1
38
(4.2)
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
Función Rosenbrock: considerada de alto nivel de dificultad. Es una función no
convexa usada para realizar pruebas de rendimiento para algoritmos de optimización
definida por Howard H. Rosenbrock en 1960 [Rosenbrock, 1960]. Su óptimo global
es 0.
f3 = 100(x21 − x2 )2 + (1 − x1 )2
donde : −2, 048 ≤ xi ≤ 2, 048
(4.3)
Función Schwefel: es una función multimodal compleja, es decir, tiene varios óptimos
locales y solo un óptimo global. Su óptimo global es 837.966.
f4 =
n
X
q
(−xi sin( |xi |))
donde : −500 ≤ xi ≤ 500
(4.4)
i=1
Este subconjunto de funciones contiene caracterı́sticas importantes que sirven para
resolver problemas de optimización, tales como: suavidad, unimodalidad, multimodalidad,
una superficie plana, y también muchos óptimos locales [Broglio Carvalho et al., 2011].
4.1.1.
Definición del Individuo
Dado que se trabaja con valores enteros, el individuo se representa como un arreglo
binario. (Véase Figura 4.1)
Figura 4.1: Ejemplo básico del Individuo.
4.1.2.
Operador de Cruzamiento
El operador de cruzamiento a utilizar según [Digalakis and Margaritis, 2002] es el
cruzamiento uniforme que consiste en la generación aleatoria de una máscara de cruce con
valores binarios [Gestal, 2010]. Si en una de las posiciones de la máscara hay un 1, el gen
situado en esa posición en uno de los descendientes se copia del primer padre. Si por el
contrario hay un 0 el gen se copia del segundo padre. Para producir el segundo descendiente
se intercambian los papeles de los padres, o bien se intercambia la interpretación de los
unos y ceros de la máscara de cruce tal como se puede apreciar en la Figura 4.2.
Ingenierı́a Informática - UCSP
39
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.2: Cruce Uniforme.
4.1.3.
Operador de Mutación
El operador de mutación a utilizar según [Digalakis and Margaritis, 2002] es el reemplazo aleatorio el cual consiste en variar aleatoriamente un gen de un cromosoma, como
el individuo es un arreglo de bits se modifica el 1 por el 0 o viceversa. (Véase Figura 4.3)
Figura 4.3: Reemplazo Aleatorio.
4.1.4.
Parámetros del Modelo
Para resolver este problema tomaremos en cuenta los parámetros detallados en
el Cuadro 4.1. Se consideran las probabilidades de cruzamiento y mutación dadas por
[Srinivas and Patnaik, 1994]. En los resultados el parámetro que varı́a es el tamaño de la
población, debido a que es el único parámetro que afecta los resultados de los experimentos.
La utilización de estos valores como parámetros son especificados por [Digalakis and Margaritis, 2002].
Ingenierı́a Informática - UCSP
40
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
Parámetro
Valor
Tamaño de población
20, 100, 200, 400
Probabilidad de cruzamiento
0.65
Probabilidad inicial de mutación
0.008
Cuadro 4.1: Parámetros Caso 1.
4.1.5.
Resultados
Primeramente se muestran los resultados obtenidos al evaluar la función Step con
los diferentes tamaños de población. En la Figura 4.4 se observa que si bien la SDI no
es la más rápida en converger a su óptimo global, posee una curva bien definida. Hay
que considerar que para este experimento se utilizó un valor entero de 5000 al que se le
restaba el resultado hallado por el AG, esto se realizó solo con el objetivo de visualizar la
curva generada. En la Figura 4.5 se observa una convergencia más rápida por parte de los
operadores de selección utilizados. En la Figura 4.6 se muestra que la curva de la SDI junto
con la ST, la cual venı́a siendo el operador que convergı́a más rápido, convergen antes que
los demás operadores. Finalmente se observa que en la Figura 4.7 la SDI converge más
rápido a su óptimo global que los demás operadores mostrando una curva bien definida.
Figura 4.4: Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Step.
Ingenierı́a Informática - UCSP
41
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.5: Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Step.
Figura 4.6: Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Step.
Ingenierı́a Informática - UCSP
42
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.7: Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Step.
A continuación se muestran los resultados obtenidos al evaluar la función Sphere.
En la Figura 4.8 se observa que la curva del operador de SS converge más rápido que los
demás operadores siendo seguida del operador de SDI. En la Figura 4.9 se observa que
la curva del operador de ST converge más rápido que los demás operadores. Finalmente
se muestra en las Figura 4.10 y 4.11 que el operador de SDI converge más rápido que los
demás operadores.
Figura 4.8: Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Sphere.
Ingenierı́a Informática - UCSP
43
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.9: Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Sphere.
Figura 4.10: Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Sphere.
Ingenierı́a Informática - UCSP
44
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.11: Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Sphere.
Los resultados obtenidos al ejecutar la función de Rosenbrock con los diferentes
tamaños de población se muestran a continuación. En la Figura 4.12 se observa que la
convergencia de la SDI es menor a los demás operadores de selección exceptuando al
operador de SR. En la Figura 4.13 se observa que la convergencia del operador de SDI es
mejor que los demás operadores de selección ası́ como también alcanza su óptimo global
en menos generaciones que los demás operadores. En la Figura 4.14 también se observa
una más rápida convergencia hacia su óptimo global. En la Figura 4.15 se observa que la
convergencia del operador de SDI es más rápido de los demás operadores de selección y
se reafirma el hecho de que el operador halla el óptimo global en menos generaciones.
Figura 4.12: Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Rosenbrock.
Ingenierı́a Informática - UCSP
45
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.13: Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Rosenbrock.
Figura 4.14: Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Rosenbrock.
Ingenierı́a Informática - UCSP
46
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.15: Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Rosenbrock.
A continuación se muestran los resultados obtenidos al probar la función Schwefel,
la cual es una función multimodal. En la Figura 4.16 se observa que los únicos operadores
que generan una curva definida que converge al óptimo global son la SS y la SDI, esto
debido a que esta función posee varios óptimos locales. En las Figuras 4.17, 4.18 y 4.19
se muestra que la mayorı́a de operadores excepto la SR poseen curvas definidas hacia el
óptimo global.
Figura 4.16: Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Schwefel.
Ingenierı́a Informática - UCSP
47
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.17: Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Schwefel.
Figura 4.18: Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Schwefel.
Ingenierı́a Informática - UCSP
48
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.19: Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Schwefel.
Si bien no es posible identificar a simple vista que operador es el que converge
primero al óptimo global, en el Cuadro 4.2 se muestra la cantidad de generaciones que
emplea cada operador en converger al óptimo global.
Operador de Selección
Selección
Selección
Selección
Selección
Selección
por Torneo
de Ruleta
Sexual
Basada en Ranking
Discriminatoria de Individuos
Generación de convergencia
400 Ind 200 Ind 100 Ind
356
418
327
333
241
510
574
391
551
275
535
–
562
567
421
Cuadro 4.2: Comparativo del número de generaciones que los operadores de Selección
necesitaron para converger en la función Schwegel.
Se observa que con esta función multimodal la SR no llega a converger, por otro
lado se muestra que la SDI converge más rápido que los demás operadores.
4.2.
Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados
Un problema adicional abarcado en este trabajo de investigación es la mejora de
calidad de un horario de trabajo cuyo tema es abarcado en varios trabajos de investigación
Ingenierı́a Informática - UCSP
49
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados
utilizando diferentes formas de nombrarlo. Los términos más utilizados son: workforce
scheduling, manpower scheduling, staff scheduling, employee timetabling, crew scheduling
[Morz and Nysret, 2004]. La asignación de un horario de trabajo a los empleados consiste
en adjudicar a los empleados turnos de trabajo en un periodo previamente definido. En
la Figura 4.20 se muestra un ejemplo de un horario básico utilizado generalmente por
diversas empresas e instituciones, en este ejemplo el periodo es de 7 dı́as.
Figura 4.20: Ejemplo tı́pico y básico de un horario de empleados.
Existen básicamente dos tipos de horarios de trabajo: a) los horarios estáticos, los
cuales no varı́an en los diferentes periodos de tiempo y b) los horarios dinámicos que sı́
varı́an en cada periodo de tiempo.
A continuación en las Figuras 4.21 y 4.22 se muestran dos ejemplos básicos de
horarios dinámicos y estáticos cuyo periodo es de 7 dı́as.
Figura 4.21: Ejemplo básico de un Horario Estático en 2 periodos de tiempo.
Ingenierı́a Informática - UCSP
50
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.22: Ejemplo básico de un Horario Dinámico en 2 periodos de tiempo donde los
casilleros sombreados indican la variación entre periodo 1 y periodo 2.
En este caso de uso se considerará el horario dinámico ya que se pretende mejorar la
productividad de los empleados y, al mismo tiempo, tener un mejor impacto de satisfacción
y salud de los empleados.
Para la obtención de resultados en este caso de uso se va a tomar un caso de la
vida real, los horarios de salvavidas de Wilderness Resort, localizado en Wisconsin Dells,
USA, cuyo horario de salvavidas es generado manualmente por 2 personas encargadas que
toman en un tiempo de 4 dı́as calendarios. Este horario tiene un promedio de 50 salvavidas
divididos en 2 turnos. Siendo el trabajo de salvavidas muy crı́tico debido a que un pequeño
descuido puede ocasionar la muerte de alguna persona, los salvavidas deben encontrarse
en su mejor capacidad de respuesta lo cual puede ser afectada por varios motivos como:
Trabajo adicional en altas horas de la noche.
Conflictos personales.
Variación del ritmo circadiano.
Dı́as seguidos de trabajo.
Para lo cual es importante encontrar un horario que pueda mejorar la productividad
y eficiencia de los salvavidas. A continuación se definen los individuos, operadores genéticos
y se propone una estructura llamada Matriz de Preferencias (MPs) para solucionar este
problema.
Ingenierı́a Informática - UCSP
51
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados
4.2.1.
Definición de Individuo
La definición del individuo del AG se basa en el individuo utilizado para resolver el
Problem A: curriculum-based course timetabling [Abdullah and Turabieh, 2012].
El individuo es una matriz d × e, donde d es el número de dı́as y e es el número de
empleados disponibles (Véase Figura 4.23). Los valores de esta matriz son los periodos en
que está compuesto un dı́a de trabajo, en el individuo se está considerando dos periodos:
am y pm.
Figura 4.23: Esquema básico del Individuo.
En el AG se genera una población de x individuos, donde cada individuo representa
una posible solución al problema propuesto.
4.2.2.
Operador de Cruzamiento
El operador de cruzamiento propuesto basado en el operador propuesto en el trabajo
de [Abdullah and Turabieh, 2012], consisten en elegir aleatoriamente dos columnas distintas de nuestros individuos para cruzar e intercambiarlas como se muestra en las Figuras
4.24 y 4.25.
Ingenierı́a Informática - UCSP
52
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.24: Selección de dos columnas aleatoriamente.
En este ejemplo se ha seleccionado aleatoriamente la columna 2 y la columna 5.
Figura 4.25: Exchange selected columns.
Ingenierı́a Informática - UCSP
53
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados
Cabe destacar que el operador de cruzamiento podrı́a generar un individuo que sea
incorrecto, lo que podrı́a ocasionar inconsistencias en el algoritmo. Para solucionar este
problema se utilizará una función de comprobación de individuos, la cual evaluará el
descendiente con la MPs. Y en caso el individuo sea incorrecto se tomará al padre del
individuo, caso contrario el descendiente será elegido.
4.2.3.
Operador de Mutación
El operador de mutación propuesto consiste en seleccionar la mitad menos significativa del individuo y aplicar la mutación de los turnos como se muestran en las Figuras
4.26 y 4.27.
Figura 4.26: Selección mitad menos significativa.
Figura 4.27: Mutación de turnos.
Se procede a mutar los turnos de la columna elegida, es decir si el elemento es am
se procede a cambiarlo por pm y viceversa, se podrá mutar un individuo solo si la MPs
tiene un valor diferente a 0 en esa posición.
4.2.4.
Matriz de Preferencias
Para la generación de la población de los AGs generalmente se realiza mediante
la generación aleatoria sin seguir un patrón de probabilidades. Debido a esta falta de
especificación es que se propone una MPs (Véase Figura 4.28) en el AG para la generación
de la población inicial y cálculo de aptitud.
Ingenierı́a Informática - UCSP
54
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.28: Ejemplo básico de una Matriz de Preferencias.
En la matriz definida por cada dı́a se agrega la cantidad de turnos por dı́a, en este
caso cada dı́a tiene dos turnos. Una de las particularidades de esta matriz es que los valores
de cada columna deben de sumar 1. Si un elemento de la columna varı́a, la diferencia del
valor actual con el anterior se reparte entre los demás elementos de la columna, ya sea para
agregar o disminuir el valor de los demás elementos. Si un empleado no puede trabajar en
un turno especificado el valor para esa posición en la MPs serı́a de 0.
Esta matriz ayudará a generar una población inicial con mayor aptitud, por ende con
una mejor calidad de individuos. Cabe resaltar que esta estructura se basa en el modelo
probabilı́stico al utilizar esta MPs, por lo cual los individuos no serán parecidos ni se
estará forzando una generación estandar de individuos.
Los valores de esta matriz varı́an de acuerdo a valores de eficiencia, penalidades
por parte del empleado, etc. Estos valores influyen para que esta matriz tenga elementos
dinámicos, lo que permitirı́a una mayor aleatoriedad de los individuos a generarse en la
población inicial.
Al modificar un elemento de la MPs los valores de la columna son afectados, de esta
forma se recalcula la MPs para seguir cumpliendo la condición de que los elementos de
una columna deben sumar 1. Para evitar el hecho de que un elemento pueda ser elegido
varias veces, se normalizará cada columna de la MPs.
4.2.5.
Función de Evaluación
El cálculo de fitness del individuo se hará en base a la Ecuación 4.5 utilizando valores
de la MPs.
f (x) =
n X
n
X
M (i, j) ∗ I(i, j)
(4.5)
i=1 j=1
Ingenierı́a Informática - UCSP
55
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados
donde:
f (x): es la función de evaluación.
M : es la Matriz de Probabilidades.
I: es el Individuo.
i, j: son las posiciones en la Matriz de Probabilidades y la matriz del Individuo.
Como previamente se ha definido, la MPs tiene una probabilidad por cada turno
posible de cada empleado. Entonces para calcular el fitness en función de la MPs se multiplicará cada posición de la MPs con la posición del individuo, es decir si en el individuo
la posición de turno está seleccionada, el valor a multiplicar serı́a 1, caso contrario 0. En
las Figuras 4.29 y 4.30 se muestra un ejemplo básico de cálculo de fitness con la MPs.
Figura 4.29: Ejemplo básico de un Horario y su respectiva Matriz de Preferencias.
Figura 4.30: Valores obtenidos después de multiplicar posición por posición.
Con los valores obtenidos después de la operación de evaluación del fitness se procede
a sumar estos valores con lo que se obtendrı́a el valor del fitness de 7.88.
Ingenierı́a Informática - UCSP
56
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
4.2.6.
Parámetros del Modelo
Para resolver este problema tomaremos en cuenta los parámetros detallados en el
Cuadro 4.3.
Parámetro
Valor
Tamaño de población
Probabilidad de cruzamiento
Probabilidad inicial de mutación
Tamaño de clase
448
0.7
0.1
4
Cuadro 4.3: Parámetros Caso 2.
4.2.7.
Resultados
Es interesante verificar el desempeño de este operador de SDI en el AG, a continuación en la Figura 4.31 se muestra la comparación de los operadores de selección.
Figura 4.31: Comparación entre Operadores de Selección.
Analizando la Figura 4.31 para los distintos operadores de selección se observa que el
operador de selección propuesto tiene una curva mejor definida en comparación a los demás
operadores de selección, aunque no presente la misma rapidez de convergencia, mostrando
una caracterı́stica exploratoria. La curva definida se da por el equilibrio entre exploración
y explotación de las posibles soluciones. En la Figura 4.32 se observa la evaluación de
Ingenierı́a Informática - UCSP
57
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados
las distintas probabilidades de cruzamiento y mutación para los operadores evolutivos
propuestos.
Figura 4.32: Comparación entre Probabilidades de Cruzamiento y Mutación.
Las probabilidades óptimas de cruzamiento y mutación según [Srinivas and Patnaik, 1994]
son de 0.65 y 0.008, en la Figura 4.32 se observa que las probabilidad 0.7 y 0.1 son más
óptimas para este caso de uso. Debido a que el operador de SDI separa en clases a la población de individuos, se realizaron pruebas con diferentes cantidades de población para
hallar la mejor y utilizarla como parámetro del algoritmo (Véase Figura 4.33).
Figura 4.33: Comparación entre diferente número de Indidivuos en una Población
Se observa que conforme el número de individuos aumenta, tiende a encontrar una
mejor solución a nuestro problema hasta que llega al máximo de 448, después de este núIngenierı́a Informática - UCSP
58
CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados
mero de individuos el máximo tiende a disminuir. Como parte de ese objetivo especı́fico
tambien se propone un operador de cruzamiento y mutación adecuado para nuestro operador de selección propuesto. En la Figura 4.34 se observa la evaluación de los distintos
operadores de cruzamiento y mutación para encontrar el más apropiado para la propuesta.
Figura 4.34: Comparación entre Operadores de Cruzamiento y Mutación
En la Figura 4.35 se observan los resultados al modificar el tamaño de las clases en
nuestro algoritmo. Se observa que mientras el tamaño de la clase sea mayor, menor será
su eficiencia al momento de converger en la solución de nuestro caso de uso.
Ingenierı́a Informática - UCSP
59
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados
Figura 4.35: Comparación entre diferentes tamaños de clase
A continuación en la Figura 4.36 se muestra la evolución de la calidad del horario
generado conforme las generaciones son ejecutadas.
Figura 4.36: Optimización de la Calidad de un Horario.
Ingenierı́a Informática - UCSP
60
Capı́tulo 5
Conclusiones y Trabajos Futuros
Se modeló un nuevo operador de selección denominado operador de SDI, el cual está
basado en un EPPM. Adicionalmente se probó el nuevo operador con cuatro funciones
Benchmarking y un problema de mejora de calidad en los horarios de trabajo.
Analizando los resultados obtenidos, se comprueba que :
El operador de SDI propuesto en este trabajo de investigación genera una curva
definida independientemente del tamaño de la población.
Por los resultados obtenidos, se observa que este operador de SDI no converge más
rápido que los demás operadores en una población pequeña por lo que muestra una
caracterı́stica exploratoria.
Al incrementar el tamaño de la población. el operador de SDI tiende a mejorar
considerablemente su eficiencia en cuanto a convergencia y el número de generaciones
a ejecutar para encontrar la solución al problema atacado.
El operador de SDI muestra una curva de convergencia uniforme, es decir no tiene el
problema de la convergencia prematura. El esquema de ponderación propuesto para
la mutación en este algoritmo ayuda a que se explore nuevas soluciones a costa de los
individuos menos aptos, este esquema ayuda a explorar en el espacio de búsqueda
cuando el tamaño de la población sea pequeña.
Si bien no existe otro modelo que utilice una estructura que almacene valores de
productividad o probabilidades para comparar los resultados de la calidad del horario obtenido, se observa que la propuesta obtiene un horario que mejora la calidad
de acuerdo a la MPs.
61
5.1. Limitaciones
5.1.
Limitaciones
Las probabilidades y operadores de cruzamiento y mutación utilizados en este trabajo no siempre serán los más óptimos, esto varı́a según el problema a resolver. Si bien,
conforme aumenta el tamaño de población el rendimiento del operador de SDI mejora.
Cuando el espacio de búsqueda de un problema es pequeño, el operador de SDI no muestra
una mejora significativa en comparación con los operadores de selección existentes.
5.2.
Trabajos futuros
En base a la propuesta del AG con el operador SDI y el EPPM que se propone en este
trabajo de investigación. Para poder ser implementado en un contexto paralelo al quitar
la dependencia entre las clases de la población, un trabajo futuro es la implementación de
este algoritmo en un contexto masivamente paralelo (GPU) utilizando una Arquitectura
Master-Slave Global (AMSG).
Ingenierı́a Informática - UCSP
62
Bibliografı́a
[Abdullah and Turabieh, 2012] Abdullah, S. and Turabieh, H. (2012). On the use of
multi neighbourhood structures within a tabu-based memetic approach to university
timetabling problems. Information Sciences, 191:146–168.
[Beasley et al., 1993] Beasley, D., Bull, D. R., and Martin, R. R. (1993). An overview of
genetic algorithms: Part 1, fundamentals.
[Blickle and Thiele, 1995] Blickle, T. and Thiele, L. (1995). A comparison of selection
schemes used in genetic algorithms. Technical report, Gloriastrasse 35, CH-8092 Zurich: Swiss Federal Institute of Technology (ETH) Zurich, Computer Engineering and
Communications Networks Lab (TIK.
[Broglio Carvalho et al., 2011] Broglio Carvalho, D., Nunes Bittencourt, J. C., and
D’Martin Maia, T. (2011). The simple genetic algorithm performance: A comparative
study on the operators combination. In INFOCOMP 2011, The First International
Conference on Advanced Communications and Computation, pages 20–24.
[Cheng et al., 2012] Cheng, R., Yao, M., Xue, X., and Shen, B. (2012). Bisexual evolution:
A novel bisexual evolutionary framework based on the fisher’s runaway process. In
Evolutionary Computation (CEC), 2012 IEEE Congress on, pages 1–8.
[Digalakis and Margaritis, 2002] Digalakis, J. G. and Margaritis, K. G. (2002). On benchmarking functions for genetic algorithms. International Journal of Computer Mathematics, 79(4):403–416.
[Gestal, 2010] Gestal, M. (2010). Introducción a los algoritmos genéticos.
[Geyer et al., 1999] Geyer, H., Ulbig, P., and Schulz, S. (1999). Use of evolutionary algorithms for the calculation of group contribution parameters in order to predict thermodynamic properties: Part 2: Encapsulated evolution strategies. Computers and Chemical Engineering, 23(7):955 – 973.
[Goh et al., 2003] Goh, K. S., Lim, A., and Rodrigues, B. (2003). Sexual selection for
genetic algorithms. Artificial Intelligence Review, 19(2):123–152.
[Goldberg, 1989] Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization
and Machine Learning. Addison-Wesley Longman Publishing Co., Inc., Boston, MA,
USA, 1st edition.
63
BIBLIOGRAFÍA
[Grobner and Wilke, 2001] Grobner, M. and Wilke, P. (2001). Optimizing employee schedule by a hibrid genetic algorithm. Applications of Evolutionary Computing. Lecture
Notes in Computer Science (2001), pages 463–472.
[Holland, 1975] Holland, J. H. (1975). Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor, Michigan, first edition.
[Jadaan et al., 2008] Jadaan, O. A., Rajamani, L., and Rao, C. R. (2008). www.jatit.org
improved selection operator for ga.
[Marczyk, 2004] Marczyk, A. (2004). Genetic algorithms and evolutionary computation.
[Michalewicz, 1996] Michalewicz, Z. (1996). Genetic algorithms + data structures = evolution programs (3rd ed.). Springer-Verlag, London, UK, UK.
[Montana et al., 1998] Montana, D., Brinn, M., Moore, S., and Bidwell, G. (1998). Genetic algorithms for complex, real-time scheduling. In Systems, Man, and Cybernetics.
IEEE International Conference on (1998), pages 2213–2218.
[Morz and Nysret, 2004] Morz, M. and Nysret, M. (2004). Genetic algorithm for rotating
workforce scheduling problem. In Computational Cybernetics, 2004. ICCC 2004. Second
IEEE International Conference (ICCC 2004), pages 121–126.
[Oladele and Sadiku, 2013] Oladele, R. O. and Sadiku, J. S. (2013). Article: Genetic algorithm performance with different selection methods in solving multi-objective network
design problem. International Journal of Computer Applications, 70(12):5–9. Published
by Foundation of Computer Science, New York, USA.
[Razali and Geraghty, 2011] Razali, N. M. and Geraghty, J. (2011). Article: Genetic algorithm performance with different selection strategies in solving tsp. International
Journal of Computer ApplicationsProceedings of The World Congress on Engineering
2011, 2:1134–1139.
[Rosenbrock, 1960] Rosenbrock, H. H. (1960). An automatic method for finding the greatest or least value of a function.
[Rudolph, 1994] Rudolph, G. (1994). Convergence analysis of canonical genetic algorithms. Neural Networks, IEEE Transactions on, 5(1):96–101.
[Srinivas and Patnaik, 1994] Srinivas, M. and Patnaik, L. M. (1994). Adaptive probabilities of crossover and mutation in genetic algorithms. IEEE Transactions on Systems,
Man and Cybernetics (1994).
[Tuttle, 1989] Tuttle, R. H. (1989). Arguments on evolution. a paleontologist’s perspective. American Journal of Physical Anthropology, 80(3):405–406.
[Zhong et al., 2005] Zhong, J., Hu, X., Gu, M., and Zhang, J. (2005). Comparison of
performance between different selection strategies on simple genetic algorithms. In
Computational Intelligence for Modelling, Control and Automation, 2005 and International Conference on Intelligent Agents, Web Technologies and Internet Commerce,
International Conference on, volume 2, pages 1115–1121.
Ingenierı́a Informática - UCSP
64
Descargar