Generarel valor del tama˜no de clase
Separarla poblaci´on en clases de acuerdo a su aptitud mientras cantidad de clases >0 hacer
Definir probabilidad de mutaci´on 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˜no 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
Devolverlas parejas formadas por los inviduos de acuerdo al proceso de selecci´on
Este operador de selecci´on permitir´a dividir la poblaci´on 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´as baja en las mejores clases y se incrementa conforme se clasifican los dem´as individuos. Adem´as permitir´ıa utilizar paralelismo para disminuir el costo de c´alculo de soluciones.
Cap´ıtulo 4
Casos de Estudio, Pruebas y
Resultados
Con la propuesta ya definida en el cap´ıtulo anterior se procede a realizar los expe- rimentos y an´alisis de los resultados obtenidos. Para las pruebas se tendr´an dos casos de uso, los cuales se detallan a continuaci´on:
4.1.
Caso de Estudio 1: Funciones Benchmarking
Para la obtenci´on de resultados de este caso de estudio se utilizan 4 funciones Benchmarking. Digalakis [Digalakis and Margaritis, 2002] resume un conjunto de funcio- nes Benchmarking. En este conjunto, se seleccionan cuatro funciones, para llevar a cabo el estudio propuesto, las cuales se mencionan a continuaci´on:
Funci´on Step : es la representante de la problem´atica de las superficies planas, las cu´ales son obst´aculos para los algoritmos de optimizaci´on debido a que no dan informaci´on acerca de que direcci´on es favorable para realizar la b´usqueda. Su ´optimo global es 0. f1 = n X i=1 |xi| donde : −5, 12 ≤ xi ≤ 5, 12 (4.1)
Funci´on Sphere : funci´on parab´olica, convexa lisa, unimodal, sim´etrica, y cuya con- vergencia para el ´optimo global se consigue f´acilmente. Su ´optimo global es 0.
f2 = n X i=1 x2 i donde : −5, 12 ≤ xi ≤ 5, 12 (4.2)
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
Funci´on Rosenbrock: considerada de alto nivel de dificultad. Es una funci´on no convexa usada para realizar pruebas de rendimiento para algoritmos de optimizaci´on definida por Howard H. Rosenbrock en 1960 [Rosenbrock, 1960]. Su ´optimo global es 0. f3 = 100(x 2 1− x2) 2 + (1 − x1) 2 donde : −2, 048 ≤ xi ≤ 2, 048 (4.3)
Funci´on Schwefel: es una funci´on multimodal compleja, es decir, tiene varios ´optimos locales y solo un ´optimo global. Su ´optimo global es 837.966.
f4 = n X i=1 (−xisin( q |xi|)) donde: −500 ≤ xi ≤ 500 (4.4)
Este subconjunto de funciones contiene caracter´ısticas importantes que sirven para resolver problemas de optimizaci´on, tales como: suavidad, unimodalidad, multimodalidad, una superficie plana, y tambi´en muchos ´optimos locales [Broglio Carvalho et al., 2011].
4.1.1.
Definici´on del Individuo
Dado que se trabaja con valores enteros, el individuo se representa como un arreglo binario. (V´ease Figura 4.1)
Figura 4.1: Ejemplo b´asico del Individuo.
4.1.2.
Operador de Cruzamiento
El operador de cruzamiento a utilizar seg´un [Digalakis and Margaritis, 2002] es el cruzamiento uniforme que consiste en la generaci´on aleatoria de una m´ascara de cruce con valores binarios [Gestal, 2010]. Si en una de las posiciones de la m´ascara hay un 1, el gen situado en esa posici´on 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´on de los unos y ceros de la m´ascara de cruce tal como se puede apreciar en la Figura 4.2.
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.2: Cruce Uniforme.
4.1.3.
Operador de Mutaci´on
El operador de mutaci´on a utilizar seg´un [Digalakis and Margaritis, 2002] es el re- emplazo 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´ease Figura 4.3)
Figura 4.3: Reemplazo Aleatorio.
4.1.4.
Par´ametros del Modelo
Para resolver este problema tomaremos en cuenta los par´ametros detallados en el Cuadro 4.1. Se consideran las probabilidades de cruzamiento y mutaci´on dadas por [Srinivas and Patnaik, 1994]. En los resultados el par´ametro que var´ıa es el tama˜no de la poblaci´on, debido a que es el ´unico par´ametro que afecta los resultados de los experimentos.
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
Par´ametro Valor Tama˜no de poblaci´on 20, 100, 200, 400 Probabilidad de cruzamiento 0.65 Probabilidad inicial de mutaci´on 0.008
Cuadro 4.1: Par´ametros Caso 1.
4.1.5.
Resultados
Primeramente se muestran los resultados obtenidos al evaluar la funci´on Step con los diferentes tama˜nos de poblaci´on. En la Figura 4.4 se observa que si bien la SDI no es la m´as r´apida en converger a su ´optimo global, posee una curva bien definida. Hay que considerar que para este experimento se utiliz´o un valor entero de 5000 al que se le restaba el resultado hallado por el AG, esto se realiz´o solo con el objetivo de visualizar la curva generada. En la Figura 4.5 se observa una convergencia m´as r´apida por parte de los operadores de selecci´on 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´as r´apido, convergen antes que los dem´as operadores. Finalmente se observa que en la Figura 4.7 la SDI converge m´as r´apido a su ´optimo global que los dem´as operadores mostrando una curva bien definida.
Figura 4.4: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 20 Indivi- duos al evaluar la Funci´on Step.
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.5: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 100 Indivi- duos al evaluar la Funci´on Step.
Figura 4.6: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 200 Indivi- duos al evaluar la Funci´on Step.
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.7: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 400 Indivi- duos al evaluar la Funci´on Step.
A continuaci´on se muestran los resultados obtenidos al evaluar la funci´on Sphere. En la Figura 4.8 se observa que la curva del operador de SS converge m´as r´apido que los dem´as operadores siendo seguida del operador de SDI. En la Figura 4.9 se observa que la curva del operador de ST converge m´as r´apido que los dem´as operadores. Finalmente se muestra en las Figura 4.10 y 4.11 que el operador de SDI converge m´as r´apido que los dem´as operadores.
Figura 4.8: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 20 Indivi- duos al evaluar la Funci´on Sphere.
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.9: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 100 Indivi- duos al evaluar la Funci´on Sphere.
Figura 4.10: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 200 Indi- viduos al evaluar la Funci´on Sphere.
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.11: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 400 Indi- viduos al evaluar la Funci´on Sphere.
Los resultados obtenidos al ejecutar la funci´on de Rosenbrock con los diferentes tama˜nos de poblaci´on se muestran a continuaci´on. En la Figura 4.12 se observa que la convergencia de la SDI es menor a los dem´as operadores de selecci´on exceptuando al operador de SR. En la Figura 4.13 se observa que la convergencia del operador de SDI es mejor que los dem´as operadores de selecci´on as´ı como tambi´en alcanza su ´optimo global en menos generaciones que los dem´as operadores. En la Figura 4.14 tambi´en se observa una m´as r´apida convergencia hacia su ´optimo global. En la Figura 4.15 se observa que la convergencia del operador de SDI es m´as r´apido de los dem´as operadores de selecci´on y se reafirma el hecho de que el operador halla el ´optimo global en menos generaciones.
Figura 4.12: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 20 Indivi- duos al evaluar la Funci´on Rosenbrock.
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.13: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 100 Indi- viduos al evaluar la Funci´on Rosenbrock.
Figura 4.14: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 200 Indi- viduos al evaluar la Funci´on Rosenbrock.
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.15: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 400 Indi- viduos al evaluar la Funci´on Rosenbrock.
A continuaci´on se muestran los resultados obtenidos al probar la funci´on Schwefel, la cual es una funci´on multimodal. En la Figura 4.16 se observa que los ´unicos operadores que generan una curva definida que converge al ´optimo global son la SS y la SDI, esto debido a que esta funci´on posee varios ´optimos 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 ´optimo global.
Figura 4.16: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 20 Indivi- duos al evaluar la Funci´on Schwefel.
4.1. Caso de Estudio 1: Funciones Benchmarking
Figura 4.17: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 100 Indi- viduos al evaluar la Funci´on Schwefel.
Figura 4.18: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 200 Indi- viduos al evaluar la Funci´on Schwefel.
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.19: Comparaci´on entre Operadores de Selecci´on con una Poblaci´on de 400 Indi- viduos al evaluar la Funci´on Schwefel.
Si bien no es posible identificar a simple vista que operador es el que converge primero al ´optimo global, en el Cuadro 4.2 se muestra la cantidad de generaciones que emplea cada operador en converger al ´optimo global.
Operador de Selecci´on Generaci´on de convergencia 400 Ind 200 Ind 100 Ind Selecci´on por Torneo 356 510 535
Selecci´on de Ruleta 418 574 –
Selecci´on Sexual 327 391 562
Selecci´on Basada en Ranking 333 551 567 Selecci´on Discriminatoria de Individuos 241 275 421
Cuadro 4.2: Comparativo del n´umero de generaciones que los operadores de Selecci´on necesitaron para converger en la funci´on Schwegel.
Se observa que con esta funci´on multimodal la SR no llega a converger, por otro lado se muestra que la SDI converge m´as r´apido que los dem´as operadores.
4.2.
Caso de Estudio 2: Mejora de Calidad en Hora-
rios de Empleados
Un problema adicional abarcado en este trabajo de investigaci´on es la mejora de calidad de un horario de trabajo cuyo tema es abarcado en varios trabajos de investigaci´on
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados utilizando diferentes formas de nombrarlo. Los t´erminos m´as utilizados son: workforce scheduling, manpower scheduling, staff scheduling, employee timetabling, crew scheduling [Morz and Nysret, 2004]. La asignaci´on 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´asico 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´asico de un horario de empleados.
Existen b´asicamente dos tipos de horarios de trabajo: a) los horarios est´aticos, los cuales no var´ıan en los diferentes periodos de tiempo y b) los horarios din´amicos que s´ı var´ıan en cada periodo de tiempo.
A continuaci´on en las Figuras 4.21 y 4.22 se muestran dos ejemplos b´asicos de horarios din´amicos y est´aticos cuyo periodo es de 7 d´ıas.
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.22: Ejemplo b´asico de un Horario Din´amico en 2 periodos de tiempo donde los casilleros sombreados indican la variaci´on entre periodo 1 y periodo 2.
En este caso de uso se considerar´a el horario din´amico ya que se pretende mejorar la productividad de los empleados y, al mismo tiempo, tener un mejor impacto de satisfacci´on y salud de los empleados.
Para la obtenci´on 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˜no 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´on 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´on se definen los individuos, operadores gen´eticos y se propone una estructura llamada Matriz de Preferencias (MPs) para solucionar este problema.
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados
4.2.1.
Definici´on de Individuo
La definici´on 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´umero de d´ıas y e es el n´umero de empleados disponibles (V´ease Figura 4.23). Los valores de esta matriz son los periodos en que est´a compuesto un d´ıa de trabajo, en el individuo se est´a considerando dos periodos: amy pm.
Figura 4.23: Esquema b´asico del Individuo.
En el AG se genera una poblaci´on de x individuos, donde cada individuo representa una posible soluci´on 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 distin- tas de nuestros individuos para cruzar e intercambiarlas como se muestra en las Figuras 4.24 y 4.25.
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.24: Selecci´on de dos columnas aleatoriamente.
En este ejemplo se ha seleccionado aleatoriamente la columna 2 y la columna 5.
Figura 4.25: Exchange selected columns.
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´a una funci´on de comprobaci´on de individuos, la cual evaluar´a el descendiente con la MPs. Y en caso el individuo sea incorrecto se tomar´a al padre del individuo, caso contrario el descendiente ser´a elegido.
4.2.3.
Operador de Mutaci´on
El operador de mutaci´on propuesto consiste en seleccionar la mitad menos signifi- cativa del individuo y aplicar la mutaci´on de los turnos como se muestran en las Figuras 4.26 y 4.27.
Figura 4.26: Selecci´on mitad menos significativa.
Figura 4.27: Mutaci´on 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´a mutar un individuo solo si la MPs tiene un valor diferente a 0 en esa posici´on.
4.2.4.
Matriz de Preferencias
Para la generaci´on de la poblaci´on de los AGs generalmente se realiza mediante la generaci´on aleatoria sin seguir un patr´on de probabilidades. Debido a esta falta de especificaci´on es que se propone una MPs (V´ease Figura 4.28) en el AG para la generaci´on de la poblaci´on inicial y c´alculo de aptitud.
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
Figura 4.28: Ejemplo b´asico 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´as elementos de la columna, ya sea para agregar o disminuir el valor de los dem´as elementos. Si un empleado no puede trabajar en un turno especificado el valor para esa posici´on en la MPs ser´ıa de 0.
Esta matriz ayudar´a a generar una poblaci´on 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´an parecidos ni se estar´a forzando una generaci´on 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´amicos, lo que permitir´ıa una mayor aleatoriedad de los individuos a generarse en la poblaci´on 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´on 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´a cada columna de la MPs.
4.2.5.
Funci´on de Evaluaci´on
El c´alculo de fitness del individuo se har´a en base a la Ecuaci´on 4.5 utilizando valores de la MPs. f(x) = n X i=1 n X j=1 M(i, j) ∗ I(i, j) (4.5)
4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados donde:
f(x): es la funci´on de evaluaci´on. 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´on de la MPs se mul- tiplicar´a cada posici´on de la MPs con la posici´on del individuo, es decir si en el individuo la posici´on de turno est´a seleccionada, el valor a multiplicar ser´ıa 1, caso contrario 0. En las Figuras 4.29 y 4.30 se muestra un ejemplo b´asico de c´alculo de fitness con la MPs.
Figura 4.29: Ejemplo b´asico de un Horario y su respectiva Matriz de Preferencias.
Figura 4.30: Valores obtenidos despu´es de multiplicar posici´on por posici´on.
Con los valores obtenidos despu´es de la operaci´on de evaluaci´on del fitness se procede a sumar estos valores con lo que se obtendr´ıa el valor del fitness de 7.88.
CAP´ITULO 4. Casos de Estudio, Pruebas y Resultados
4.2.6.
Par´ametros del Modelo
Para resolver este problema tomaremos en cuenta los par´ametros detallados en el Cuadro 4.3.
Par´ametro Valor Tama˜no de poblaci´on 448 Probabilidad de cruzamiento 0.7 Probabilidad inicial de mutaci´on 0.1 Tama˜no de clase 4