• No se han encontrado resultados

Algoritmo para la optimización de parámetros continuos vía simulación basado en un algoritmo genético híbrido

N/A
N/A
Protected

Academic year: 2020

Share "Algoritmo para la optimización de parámetros continuos vía simulación basado en un algoritmo genético híbrido"

Copied!
106
0
0

Texto completo

(1)PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE ESCUELA DE INGENIERIA. ALGORITMO PARA LA OPTIMIZACIÓN DE PARÁMETROS CONTINUOS VÍA SIMULACIÓN BASADO EN UN ALGORITMO GENÉTICO HÍBRIDO. JOSÉ IGNACIO OLGUÍN. Tesis presentada a la Dirección de Investigación y Postgrado como parte de los requisitos para optar al grado de Magister en Ciencias de la Ingenierı́a. Profesor Supervisor: PEDRO GAZMURI. Santiago de Chile, Mayo 2008 c MMVIII, José Ignacio Olguı́n.

(2) PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE ESCUELA DE INGENIERIA. ALGORITMO PARA LA OPTIMIZACIÓN DE PARÁMETROS CONTINUOS VÍA SIMULACIÓN BASADO EN UN ALGORITMO GENÉTICO HÍBRIDO. JOSÉ IGNACIO OLGUÍN. Miembros del Comité: PEDRO GAZMURI JOSÉ PEDRO PRINA PABLO ZEGERS MIGUEL RÍOS Tesis presentada a la Dirección de Investigación y Postgrado como parte de los requisitos para optar al grado de Magister en Ciencias de la Ingenierı́a Santiago de Chile, Mayo 2008 c MMVIII, José Ignacio Olguı́n.

(3) A mis padres, Iván y Ximena.

(4) AGRADECIMIENTOS. Agradezco a mi profesor supervisor, Pedro Gazmuri, por su guı́a, su constante apoyo y los numerosos aportes que ha realizado a mi desarrollo personal y profesional durante mi paso por la Escuela de Ingenierı́a de la Universidad Católica de Chile. Estos cuatro años trabajados con él han constituido una experiencia profundamente interesante, desafiante y enriquecedora, que ha dejado una huella imborrable en mi formación. Igualmente agradezco a los profesores José Pedro Prina, Pablo Zegers y Miguel Rı́os, miembros de mi comisión, por sus valiosos comentarios y sugerencias que permitieron mejorar la calidad de este trabajo. Finalmente quiero agradecer mi familia por apoyarme constantemente y brindarme el entorno propicio para llevar a cabo esta aventura.. iv.

(5) INDICE GENERAL. AGRADECIMIENTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. iv. INDICE DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. viii. INDICE DE TABLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. x. RESUMEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. xi. ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. xii. 1. INTRODUCCION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.1. Simulación de Eventos Discretos . . . . . . . . . . . . . . . . . . . . .. 1. 1.2. Optimización Vı́a Simulación . . . . . . . . . . . . . . . . . . . . . . .. 2. 1.3. Definición del Problema a Resolver. . . . . . . . . . . . . . . . . . . .. 6. 1.4. Método Propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7. 1.5. Organización de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . .. 8. 2. BREVE REVISION DE LOS METODOS EXISTENTES . . . . . . . . .. 10. 2.1. Métodos Basados en el Gradiente . . . . . . . . . . . . . . . . . . . .. 10. 2.1.1. Diferencias Finitas . . . . . . . . . . . . . . . . . . . . . . . . . .. 11. 2.1.2. Razones de Verosimilitud . . . . . . . . . . . . . . . . . . . . . . .. 12. 2.1.3. Análisis de Perturbaciones . . . . . . . . . . . . . . . . . . . . . .. 13. 2.2. Métodos de Superficie de Respuesta . . . . . . . . . . . . . . . . . . .. 14. 2.3. Métodos de Trayectoria Muestreada . . . . . . . . . . . . . . . . . . .. 15. 2.4. Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 16. 3. MARCO TEORICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 17. 3.1. Algoritmos Genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . .. 17. 3.1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 17. 3.1.2. Codificación del Genoma . . . . . . . . . . . . . . . . . . . . . . .. 18. 3.1.3. Operadores de Cruza . . . . . . . . . . . . . . . . . . . . . . . . .. 19 v.

(6) 3.1.4. Algoritmos Genéticos Hı́bridos . . . . . . . . . . . . . . . . . . . .. 20. 3.1.5. Funcionamiento de nHGA . . . . . . . . . . . . . . . . . . . . . .. 22. 3.1.6. Desempeño de nHGA . . . . . . . . . . . . . . . . . . . . . . . . .. 27. 3.2. Ranking y Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 30. 3.2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 30. 3.2.2. Métodos de Dos Etapas. . . . . . . . . . . . . . . . . . . . . . . .. 32. 3.2.3. Métodos Completamente Secuenciales . . . . . . . . . . . . . . . .. 37. 3.3. Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 50. 4. DESCRIPCION DEL ALGORITMO PROPUESTO . . . . . . . . . . . .. 51. 4.1. Generación de la Población Inicial . . . . . . . . . . . . . . . . . . . .. 52. 4.2. Evaluación de la Función de Adaptación . . . . . . . . . . . . . . . . .. 55. 4.2.1. Evaluación de la Función Objetivo. . . . . . . . . . . . . . . . . .. 55. 4.2.2. Evaluación de la Función de Adaptación . . . . . . . . . . . . . .. 60. 4.3. Estrategias de Selección . . . . . . . . . . . . . . . . . . . . . . . . . .. 60. 4.3.1. Estrategia de Selección del Progenitor Femenino . . . . . . . . . .. 60. 4.3.2. Estrategia de Selección del Progenitor Masculino . . . . . . . . . .. 61. 4.4. Operador de Cruza . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 62. 4.5. Estrategia de Reemplazo . . . . . . . . . . . . . . . . . . . . . . . . .. 63. 4.6. Criterio de Cambio . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 63. 4.7. Criterio de Término . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 64. 5. RESULTADOS EXPERIMENTALES . . . . . . . . . . . . . . . . . . . .. 66. 5.1. Función Esfera con Ruido . . . . . . . . . . . . . . . . . . . . . . . . .. 66. 5.2. Lı́nea de Producción . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 74. 5.3. Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 75. 6. CONCLUSIONES Y TRABAJO FUTURO . . . . . . . . . . . . . . . . .. 77. BIBLIOGRAFIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 79. ANEXO A. SENSIBILIDAD DE nHGA AL TAMAÑO DE LA POBLACION. 87 vi.

(7) ANEXO B. FUNCIONES DE PRUEBA . . . . . . . . . . . . . . . . . . . .. 89. vii.

(8) INDICE DE FIGURAS. 3.1 Función Bohachevsky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 22. 3.2 Diagrama de flujo de la etapa de diversificación del algoritmo nHGA. . . .. 23. 3.3 Diagrama de flujo de la etapa de intensificación del algoritmo nHGA. . . .. 23. 3.4 Ejemplo del desempeño de la etapa de diversificación de nHGA . . . . . .. 24. 3.5 Ejemplo del desempeño de la etapa de intensificación de nHGA . . . . . .. 24. 3.6 Resultados de 4 experimentos que muestran el desempeño de los métodos Rinott (1978) y ETSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 37. 3.7 Región de continuación de SSM . . . . . . . . . . . . . . . . . . . . . . . .. 40. 3.8 Resultados de 4 experimentos que muestran el desempeño de los métodos ETSS, SSM y SSM modificado. . . . . . . . . . . . . . . . . . . . . . . . .. 46. 3.9 Desempeño de los métodos ETSS mı́nimo, SSM y SSM modificado con n0 distintos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 49. 4.1 Diagrama de flujo del algoritmo . . . . . . . . . . . . . . . . . . . . . . . .. 52. 4.2 Dos tı́picas poblaciones iniciales en 2 y 3 dimensiones . . . . . . . . . . . .. 54. 4.3 Motivación para el uso de δ relativo . . . . . . . . . . . . . . . . . . . . . .. 56. 4.4 Distribución de 5000 individuos generados utilizando el método PNX para dos valores diferentes del parámetro η. . . . . . . . . . . . . . . . . . . . .. 63. 5.1 Función Esfera en 2 dimensiones y la función de varianza para σ = 0.2 . .. 67. 5.2 Medidas de desempeño para algoritmo propuesto en comparación con ISS .. 69. 5.3 Medidas de desempeño para el algoritmo propuesto y su versión no hı́brida. 71. 5.4 Medidas de desempeño del algoritmo propuesto y una versión hı́brida que utiliza constantemente el parámetro δ proporcionado por el usuario . . . .. 72 viii.

(9) 5.5 Medidas de desempeño del algoritmo propuesto para tres tamaños distintos de la población . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 73. ix.

(10) INDICE DE TABLAS. 3.1 Resultados de nHGA, CHA y GL–25 . . . . . . . . . . . . . . . . . . . . .. 28. 3.2 Varianzas de los experimentos para comparar el desempeño de técnicas de ranking y selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 35. 3.3 Desempeño de los métodos Rinott (1978) y ETSS . . . . . . . . . . . . . .. 36. 3.4 Desempeño de los métodos ETSS, SSM y SSM modificado . . . . . . . . .. 45. 3.5 Número inicial de muestras por individuo de los experimentos para comparar el desempeño de técnicas de ranking y selección . . . . . . . . . . . . . . .. 47. A.1Resultados de nHGA para el conjunto de 18 funciones de prueba utilizando tres tamaños de población . . . . . . . . . . . . . . . . . . . . . . . . . . .. 88. x.

(11) RESUMEN. Simulación es una poderosa herramienta que permite estudiar sistemas complejos, pero que por si sola no es capaz de optimizar los parámetros del sistema. Para esto es necesario combinar la herramienta de simulación con alguna estrategia de optimización especialmente diseñada para superar los problemas que se originan de esta interacción. Este trabajo tiene por objetivo desarrollar una nueva estrategia de optimización que permita resolver este problema de manera general, utilizando el menor número posible de evaluaciones del modelo de simulación; que son precisamente las dos áreas en que menos destacan los algoritmos actualmente disponibles en la literatura. Para esto se desarrolla un nuevo algoritmo de optimización para parámetros continuos vı́a simulación basado en un algoritmo genético hı́brido. Este tipo de algoritmos ha demostrado tener un muy buen desempeño en una amplia gama de problemas, y por lo tanto, el algoritmo aquı́ presentado constituya una herramienta de uso general, que además no requiere un alto grado de sofisticación por parte del usuario. Mediante una novedosa técnica de ranking y selección, el algoritmo realiza una eficiente comparación estadı́stica entre las distintas soluciones factibles que va visitando, guiando ası́ la búsqueda sin desorientarse por las aleatorias salidas del modelo de simulación. Además esta técnica permite reducir el número de evaluaciones del modelo de simulación realizadas durante el proceso completo de optimización. Estudios numéricos realizados en este trabajo sugieren que este algoritmo constituye una herramienta eficiente y confiable, tanto al optimizar funciones con ruido como modelos de simulación. En particular se muestra como los resultados obtenidos por este algoritmo superan a los resultados obtenidos por otro reciente algoritmo disponible en la literatura.. xi.

(12) ABSTRACT. Simulation is a powerful tool that allows studying complex system, but it is incapable to optimize the system’s parameters by itself. In order to do this it is necessary to combine the simulation tool with any optimization strategy specially designed to tackle the problems that this interaction creates. The objective of this work is to develop a new optimization strategy that allows solving this problem in a general way, requiring the lower amount possible of simulation model evaluations; which are precisely the two major lacks of the algorithms available in the literature. The continuous-parameter optimization via simulation algorithm developed in this work is based on a hybrid genetic algorithm. This type of algorithms has proved to have a very good overall performance on a variety of problems; therefore the algorithm presented here could be considered a generic-use tool that doesn’t require a high sophistication degree from the user. Through an innovative ranking and selection technique, the algorithm makes an efficient comparison among the visited feasible solutions. In this fashion, the search process is guided without getting disoriented because of the random outputs from the simulation model. The numerical studies ran in this work suggest that the algorithm is an efficient and reliable tool to optimize both functions with noise and simulation models. In particular, it is shown how the results obtained by the proposed algorithm are better than the ones obtained by another state-of-the-art algorithm available in the literature.. xii.

(13) 1. INTRODUCCION. 1.1. Simulación de Eventos Discretos Simulación es una técnica que busca imitar el funcionamiento de un sistema del mundo real dentro de un computador (Law & Kelton, 1999). La finalidad de un modelo de este tipo es estimar algunas de las caracterı́sticas del sistema. Para ello se debe generar una historia artificial del sistema, o corrida, y observar las medidas de desempeño en que se está interesado. Es importante aclarar que si se trata de una simulación estocástica, cada una de estas observaciones será distinta y, por lo tanto, mientras más corridas se realicen, más exacta será la estimación que se puede hacer. Los modelos de simulación son particularmente útiles y eficaces para estudiar sistemas complejos, sobre todo cuando es inviable solucionar el modelo matemático que permitirı́a obtener una respuesta exacta a las interrogantes que se tengan respecto al sistema. Gazmuri (1994) presenta una revisión de una serie de modelos que permiten estudiar de manera exacta algunos sistemas estocásticos. La utilidad y versatilidad de este tipo de modelos han logrado que sean ampliamente aceptados y estudiados en el mundo de la investigación de operaciones. Lane, Mansour y Harpell (1993) reportaron que simulación es consistentemente posicionada como una de las tres técnicas más importantes dentro del marco de la investigación de operaciones1 . Gupta (1997) analizó un total de 1294 artı́culos de la revista Interfaces 2 y encontró que simulación era la segunda técnica que más se consideraba en ellos3 . Polito (2003) analizó las mallas curriculares de una muestra de 146 universidades y entidades académicas en Estados Unidos y determinó que simulación es la segunda materia de investigación de operaciones y gestión que más tı́picamente se dicta en ellas4 . 1. Junto con programación matemática y estadı́stica Revista del INFORMS (Institute for Operations Research and the Management Sciences) dedicada a mejorar la aplicación práctica de la investigación de operaciones. 3 Solamente superada por programación matemática. 4 Solamente superada por estadı́stica.. 2. 1.

(14) Existen varios tipos de simulaciones. Durante el transcurso de este trabajo se centrará la atención exclusivamente en la simulación de eventos discretos, que corresponde a la simulación de sistemas que cambian de estado en instantes de tiempo perfectamente definidos (sistemas discretos). Este tipo de simulación posee tres caracterı́sticas importantes (Law & Kelton, 1999): (i) Es dinámica, pues la simulación recrea la evolución del sistema a través del tiempo, y por lo tanto éste juega un rol fundamental. (ii) Es discreta, pues el sistema que se modela también es discreto. (iii) Es estocástica, ya que el sistema que se modela es de naturaleza aleatoria. Esto se traduce en que el modelo puede no entregar la misma respuesta frente a un mismo escenario. Es importante destacar que, desde una perspectiva más simplista, un modelo de simulación de eventos discretos puede ser visto como una función matemática que toma el conjunto de parámetros del sistema como variables de entrada y entrega las medidas de desempeño que interesen como variables de salida. Sin embargo, como los sistema estudiados son aleatorios, estas medidas de desempeño en realidad son variables aleatorias, y el modelo entrega una instancia de ellas por cada réplica que se haga.. 1.2. Optimización Vı́a Simulación Los modelos de simulación permiten responder directamente cierto tipo de preguntas. Supongamos, por ejemplo, que se dispone de un modelo de simulación de una pequeña sucursal bancaria en que los clientes esperan, en una única cola, su turno para ser atendidos por alguna de las dos cajas de las que dispone el banco. Este modelo permite responder de forma directa algunas preguntas, como por ejemplo ¿qué pasa con el tiempo promedio de espera de los clientes si las cajas atienden un 25% más rápido? o ¿qué pasa con el tiempo promedio de espera de los clientes si se habilita una caja adicional? Sin embargo, este modelo de simulación por sı́ solo 2.

(15) resulta inútil si se desea conocer ¿cuál es el número de cajas y sus respectivas tasas de atención que hacen que el sistema funcione de manera óptima? Para hacer esto es necesario combinar el modelo de simulación con alguna estrategia de optimización. Esto se conoce como un problema de optimización vı́a simulación. Un excelente punto de partida para introducirse en este tema es el clásico artı́culo de Fu (1994), Optimization Via Simulation: A Review. Por su parte, Swisher, Hyden, Jacobson y Schruben (2000) y Fu, Glover y April (2005) presentan revisiones más actuales del estado del arte del tema. La optimización vı́a simulación busca determinar el conjunto óptimo de parámetros del sistema (discretos y/o continuos) que optimizan una función objetivo asociada a un modelo de simulación (Swisher et al., 2000). En otras palabras, la optimización vı́a simulación puede ser vista como un problema de optimización en el cual la función objetivo solamente puede ser evaluada a través de un modelo de simulación (Azadivar, 1999). Esta fusión entre modelos de simulación y optimización es una de las áreas más importantes y desafiantes dentro del marco de la simulación. De hecho, sea cual sea la forma en que se enfrente este problema, se debe lidiar con tres grandes inconvenientes (Azadivar, 1999): (i) En el problema de optimización vı́a simulación no se cuenta con una expresión analı́tica de la función objetivo. Esto imposibilita el cálculo exacto del gradiente de la función, que es el punto de partida de la mayorı́a de los bien conocidos algoritmos de optimización de programación matemática. (ii) La función objetivo es una función estocástica de los parámetros del sistema. Esto hace imposible conocer con exactitud cuál es el valor de la función objetivo para una cierta solución factible del problema de optimización; solamente se puede obtener una estimación de dicho valor. Además esta aleatoriedad dificulta enormemente la comparación entre dos o más soluciones.. 3.

(16) (iii) En general, correr un modelo de simulación puede tomar un tiempo considerable. Por lo tanto el costo de cada evaluación de la función objetivo es mucho mayor que el que se enfrenta cuando se cuenta con una expresión analı́tica. Esto lleva a que la eficiencia de la estrategia de optimización sea un tema crucial. La forma de abordar este problema depende de la naturaleza de las variables de entrada del problema (i.e. conjunto de parámetros del sistema modelado). Cuando los parámetros son discretos el espacio de búsqueda de soluciones es contable, en consecuencia, la metodologı́a consiste simplemente en comparar las posibles soluciones y ordenarlas según el valor de la función objetivo. Para hacer esto, de una manera eficiente y estadı́sticamente correcta, existen las técnicas de ranking y selección (R&S) y los procedimientos de comparación múltiple (MCP). Swisher, Jacobson y Yücesan (2003) y Benson, Goldsman y Pritchett (2006) presentan excelentes revisiones de estas técnicas. Por otro lado, cuando los parámetros son continuos el espacio de búsqueda de soluciones se hace incontable e infinito y, por lo tanto, resulta imposible comparar todas las soluciones. Es por esto que los principales esfuerzos investigativos en esta área (Fu et al., 2000) se han centrado en los llamados métodos basados en el gradiente que, emulando conocidos algoritmos de programación matemática, guı́an una búsqueda hacia la solución óptima mediante los gradientes locales de la función objetivo. Fu (2005) y Kim (2006) presentan excelentes revisiones de estas técnicas. Lamentablemente las técnicas que permiten estimar el gradiente de la función objetivo son bastante sofisticadas y resultan ser muy dependientes del problema en particular al que se aplican. Esto hace que en general, los métodos basados en el gradiente sean poco generales y difı́ciles de aplicar (Fu et al., 2000; Azadivar, 1999). Por esta razón se han producido diferencias en la forma de enfrentar el problema de optimización de parámetros continuos vı́a simulación, debido a una diferencia de. 4.

(17) intereses, entre el mundo de los investigadores académicos y el mundo de los fabricantes de softwares comerciales de simulación. Mientras que los primeros han puesto su atención en los métodos basados en el gradiente, posiblemente debido al desafı́o que estas técnicas representan, los segundos han centrado sus esfuerzos en la utilización de conocidas metaheurı́sticas, adaptadas de la optimización combinatorial, que prometen dar una solución eficiente y de uso general al problema. Esta diferencia se deja ver de manera latente en el artı́culo de Fu et al. (2000), Integrating Optimization and Simulation: Research and Practice, donde se convoca a un panel de connotados expertos del tema (tanto del mundo académico como del mundo de los fabricantes de software) a dar su opinión respecto al presente y el futuro de la integración entre la optimización y la simulación. Sin embargo, existe consenso entre ambas partes en que se deben desarrollar métodos de propósito general, que permitan resolver satisfactoriamente cualquier tipo de problema y que puedan ser usados sin poseer grandes conocimientos en la materia. Es ası́ que tanto académicos como fabricantes coinciden en que las metaheurı́sticas tomarán un rol fundamental en la optimización de parámetros continuos vı́a simulación. Pese a esto, la investigación no ha avanzado mucho en esta dirección y son pocos los autores que han desarrollado algoritmos basados en metaheurı́sticas para resolver el problema de optimización de parámetros continuos vı́a simulación. Algunos ejemplos son Hedlund y Mollaghasemi (2001) y Buchholz y Thümmler (2005) que emplean un algoritmo genético y un algoritmo evolutivo respectivamente. Este trabajo pretende continuar avanzando en esta lı́nea de investigación. Para ello se desarrolla un algoritmo genético hı́brido que pretende resolver eficientemente la instancia del problema de optimización vı́a simulación que se presenta a continuación.. 5.

(18) 1.3. Definición del Problema a Resolver Es muy importante definir de manera clara el problema que se intenta resolver en este trabajo. Para esto, se considera que se cuenta con un modelo general de simulación que toma un vector x de n parámetros de entrada y que entrega un vector y(x) de m variables aleatorias de salida. En este trabajo se supone que x pertenece a Rn y que, en consecuencia, todos los parámetros de entrada son continuos. Además se considera que existe una función real de x e y(x), llamada g(x, y(x)), que combina los n parámetros de entrada y las m variables de salida en una única salida aleatoria. La función objetivo se construye finalmente de acuerdo al significado de la función g(·) y a las necesidades del modelador. Por ejemplo, si se está modelando el funcionamiento de una bodega y g(·) es una expresión para el costo de operación mensual, posiblemente interesará minimizar el valor esperado de dicho costo. Ahora, si se está modelando la evolución del precio de un portafolio de activos en un mercado y g(·) es una expresión de su rentabilidad, probablemente interesará minimizar la varianza (riesgo) de dicha rentabilidad. Ası́ mismo, si se está modelando el funcionamiento de un basural y g(·) es una expresión para el nivel de contaminación que se libera, seguramente interesará minimizar la probabilidad de que dicha contaminación supere cierto umbral. Este trabajo se limita a considerar la minimización del valor esperado de g(x, y(x)). Tomando en cuenta todas las definiciones anteriores, el problema que se busca resolver en este trabajo está dado por:    min E g x, y(x) ≡ f x x. Sujeto a: xi ≥ li ,. i = 1, . . . , n. x i ≤ ui ,. i = 1, . . . , n. (1.1). x ∈ Rn. 6.

(19) donde l y u son los lı́mites inferior y superior respectivamente para los parámetros  del sistema y definen el espacio de búsqueda de soluciones. Además se define f x como la función objetivo estocástica del problema como una forma de simplificar la notación. Como se puede observar, la principal diferencia entre la optimización determinı́stica y la optimización vı́a simulación es que en esta última la función objetivo f (x) no puede ser evaluada directamente. Solamente se puede obtener una estimación, fˆ(x), que puede ser vista como una versión ruidosa de f (x).. 1.4. Método Propuesto Este trabajo tiene por finalidad desarrollar un algoritmo genético hı́brido que permita resolver eficientemente el problema de optimización continua vı́a simulación presentado anteriormente. En general, los algoritmos genéticos hı́bridos son una muy buena opción al enfrentar este tipo de problemas, pues logran un efectivo balance entre la adecuada exploración del espacio de búsqueda y la rápida intensificación en zonas prometedoras, realizando un número relativamente pequeño de evaluaciones de la función objetivo. El algoritmo genético hı́brido desarrollado durante este trabajo está compuesto de dos etapas, cada una de las cuales es a su vez un algoritmo genético especialmente calibrado para cumplir una misión en particular (diversificación e intensificación). Ambas etapas se inspiran fuertemente en el algoritmo genético desarrollado por Olguı́n y Gazmuri (2008), que presenta un desempeño notable en la minimización de funciones determinı́sticas. Para ayudar a guiar la búsqueda del algoritmo genético sobre el aleatorio entorno en que se debe desenvolver, se integra al algoritmo una novedosa técnica de ranking y selección, inspirada en el trabajo de Pichitlamken, Nelson y Hong (2006). Esta permite asignar inteligentemente los recursos computacionales a las distintas soluciones 7.

(20) factibles que se visiten, de manera de invertir mayores recursos en las soluciones más interesantes y no desperdiciarlos en soluciones con bajo desempeño. El objetivo final es reducir drásticamente el número de evaluaciones del modelo de simulación necesarias para garantizar la correcta operación del algoritmo genético. El objetivo principal que se persigue al desarrollar este algoritmo es obtener una herramienta de uso general, que permita resolver eficientemente una amplia gama de problemas, sin demandar un alto grado de sofisticación por parte del usuario.. 1.5. Organización de la Tesis El resto de la tesis se organiza de la siguiente manera. En el capı́tulo 2 se presenta una pequeña revisión de los métodos que actualmente se utilizan para resolver el problema de optimización de parámetros continuos vı́a simulación. Estos métodos pueden ser clasificados en: métodos basados en el gradiente, métodos de superficie de respuesta y métodos de trayectoria muestreada. En el capı́tulo 3 se entrega el marco teórico necesario para sustentar el desarrollo del algoritmo propuesto. Este marco teórico incluye una revisión de los conceptos más importantes de algoritmos genéticos como herramienta de optimización continua determinı́stica, y de los métodos de ranking y selección para la comparación estadı́stica de un conjunto de soluciones factibles de un problema de optimización estocástica. Una presentación detallada de la arquitectura y el funcionamiento del algoritmo propuesto en este trabajo puede ser encontrada en el capı́tulo 4. En el capı́tulo 5 se analiza y compara el desempeño del algoritmo, utilizando funciones determinı́sticas con ruido.. Además se realiza una optimización de los. parámetros de entrada de un modelo de simulación de una pequeña lı́nea de producción. Todos los problemas de optimización utilizados en este capı́tulo son extraı́dos de la literatura existente de manera de comparar el desempeño del algoritmo con los métodos metaheurı́sticos disponibles anteriormente. 8.

(21) Finalmente, en el capı́tulo 6 se entregan las conclusiones más importantes surgidas de este trabajo, ası́ como el aporte realizado y los lineamientos para trabajos futuros.. 9.

(22) 2. BREVE REVISION DE LOS METODOS EXISTENTES. Existe una serie de autores que entregan excelentes revisiones de los distintos métodos disponibles en la actualidad para resolver el problema de optimización continua vı́a simulación. Fu (1994) entrega un excelente punto de partida para el estudio de las técnicas disponibles, poniendo énfasis en los métodos basados en el gradiente. Carson y Maria (1997) presentan un resumen general de las técnicas de optimización vı́a simulación. Azadivar (1999) presenta una revisión de los métodos existentes, poniendo énfasis en los temas que hacen distinta a la optimización vı́a simulación de la optimización determinı́stica. Swisher et al. (2000) presentan una extensa revisión de la literatura técnica publicada entre los años 1988 y 2000. Fu et al. (2005) presenta una revisión de las técnicas existentes y los softwares disponibles en el mercado, e ilustra el problema a través de ejemplos y aplicaciones del mundo real. A continuación se describen brevemente los distintos métodos que tı́picamente se utilizan para resolver el problema de optimización continua vı́a simulación.. 2.1. Métodos Basados en el Gradiente Los métodos basados en el gradiente tratan de imitar a su contra–parte en optimización determinı́stica, guiando una búsqueda del óptimo a través de los gradientes locales de la función objetivo. Estos métodos han atraı́do enormemente la atención de los investigadores durante las últimas dos décadas, considerando la gran cantidad de publicaciones que se pueden encontrar sobre el tema. El algoritmo de optimización más ampliamente usado para guiar la búsqueda es el método de aproximación estocástica (SA), desarrollado por Robbins y Monro (1951). Kushner y Yin (2003) entregan una revisión de este método. La forma general del método de aproximación estocástica en su n–ésima iteración está dada por ˆ (xn ), xn+1 = xn − an ∇f. (2.1) 10.

(23) donde xn es el vector con los parámetros de entrada del modelo de simulación en la ˆ (xn ) es una estimación del gradiente de la función objetivo iteración n del método, ∇f en xn y an es una secuencia positiva decreciente que entrega el tamaño de los pasos al método. Comúnmente se considera que las condiciones suficientes para que el método converja a un óptimo local son que (1) el sesgo de la estimación del gradiente se vaya a cero, y (2) que la serie del tamaño de los pasos cumpla con ∞ X n=0. an = ∞,. ∞ X. a2n < ∞.. (2.2). n=0. Tı́picamente la serie an = a/n (para alguna constante a) es utilizada en este método ya que cumple con (2.2). Por otra parte, N. Chen, Liu y Feng (2006) presentan una serie de condiciones suficientes y necesarias para la convergencia del método. Sin lugar a dudas uno de los puntos más importantes de estos métodos es la forma en que se estima el gradiente de la función objetivo. Fu (2005) y Kim (2006) entregan sendas revisiones de la investigación desarrollada en este tema. A continuación se presentan las formas más importantes de hacer esta estimación. 2.1.1. Diferencias Finitas La estimación por diferencias finitas es la forma más obvia de estimar el gradiente de la función objetivo. Consiste en realizar varias corridas de la simulación para estimar n secantes y utilizarlas como aproximaciones de las derivadas parciales de la función objetivo. En su forma más básica esta estimación está dada por ˆ f (x + ∆ei ) − f (x) ∂f = , ∂xi ∆. (2.3). donde ei es el i–ésimo vector unitario de Rn y ∆ es una constante lo más pequeña posible. En esta versión de la estimación se requieren un total de n + 1 réplicas de la simulación por cada gradiente. Existe otra versión que permite conseguir mejores 11.

(24) tasas de convergencia al ser usada en combinación con aproximación estocástica, pero requiere 2n réplicas de la simulación por cada gradiente. Esta estimación está dada por ˆ ∂f f (x − ∆ei ) − f (x + ∆ei ) = . ∂xi 2∆. (2.4). Finalmente, vale la pena destacar que pese a requerir un gran esfuerzo computacional y presentar bajas tasas de convergencia al ser usado en combinación con aproximación estocástica, este método es simple de implementar y aplicable a cualquier problema. 2.1.2. Razones de Verosimilitud En el método de las razones de verosimilitud, el gradiente del valor esperado de una variable de salida con respecto a un parámetro del sistema es expresado como el valor esperado de una función de los parámetros del sistema y/o los parámetros de la simulación (largo de la simulación, instancias de las variables de salida, etc.). En Glynn (1989) se encuentra una presentación formal de este método. Suponiendo que en el problema (1.1) las variables aleatorias de salida del modelo de simulación pueden ser representadas a través de un vector aleatorio Y con función de densidad conjunta hY (x, ·), entonces la función objetivo que se busca derivar puede ser formulada como Z f (x) = E {g(x, Y )} =. g(x, ω)hY (x, ω)dω,. (2.5). Ω. donde Ω es el dominio de hY (x, ·). Se puede demostrar (Fu, 1994, §5.2.3) que el gradiente de la función objetivo puede ser expresado como ∇ E {g(x, Y )} = E {g(x, Y )∇ ln hY (x, Y )} .. (2.6). Por ejemplo si se considera la simulación de un sistema M/M/1, en que la función objetivo es simplemente el tiempo medio en el sistema de los N primeros clientes, la 12.

(25) derivada respecto al tiempo medio de atención (θ) está dada por  N N  d E{T } 1 X X ai 1 = , ti − dθ N i=1 i=1 θ2 θ. (2.7). donde ti y ai son las instancias observadas del tiempo en el sistema y del tiempo de atención respectivamente del i–ésimo cliente. Es importante destacar que este método implica necesariamente seguir la pista de algunas estadı́sticas “internas” de la simulación, como los tiempos de atención y de permanencia en el sistema en el ejemplo anterior. Esto hace que generalmente se deba intervenir levemente el código del programa de simulación para que reporte las estadı́sticas necesarias. Además el método es de uso poco general, pues expresiones similares a la derivada para el modelo M/M/1 deben ser formuladas para cada sistema en particular; acción que requiere cierto grado de sofisticación por parte del usuario.. 2.1.3. Análisis de Perturbaciones El análisis de perturbaciones es el método de estimación del gradiente que más ha llamado la atención de los investigadores. De hecho existe una enorme cantidad de trabajos en la literatura que exploran este método y sus variaciones. Los libros de Ho y Cao (1991) y de Glasserman (1991) cubren prácticamente todos los temas referentes a la estimación de gradientes con el análisis de perturbaciones. El análisis de perturbaciones permite estimar el gradiente completo de la función objetivo a través de una única corrida del modelo de simulación. La idea clave detrás de este método es que si un parámetro del sistema es perturbado infinitesimalmente, la sensibilidad de la respuesta del sistema hacia ese parámetro puede ser estimada trazando la trayectoria de su propagación a través del sistema. Esta será una función de la fracción de las propagaciones que permanecen después de haber tenido un efecto significativo sobre la respuesta de interés. Por ejemplo si se considera la simulación de un sistema M/M/1, en que la función objetivo es simplemente el tiempo medio en el sistema de los N primeros clientes, y que durante ese horizonte se presentaron 13.

(26) M perı́odos en los cuales el sistema estuvo ocupado, la derivada respecto al tiempo medio de atención (θ) está dada por M nm X i xm d E{T } 1 XX j = , dθ N m=1 i=1 j=1 θ. (2.8). donde nm es el número de clientes atendidos en el m–ésimo perı́odo en que el sistema estuvo ocupado y xm j es la instancia del tiempo de atención observada en la simulación para el j–ésimo cliente en el m–ésimo perı́odo ocupado del sistema. Una desventaja importante de este método es que, al igual que en el método de razones de verosimilitud, se debe seguir la pista de algunas estadı́sticas internas de la simulación. Esto implica que el modelo de simulación debe poseer la capacidad y la flexibilidad de reportar las estadı́sticas necesarias para construir la estimación. Además este método requiere cierto grado de sofisticación por parte del usuario, que debe ser capaz de construir una expresión, como la del ejemplo, para su sistema en particular. 2.2. Métodos de Superficie de Respuesta Los métodos de superficie de respuesta (RSM) buscan obtener una relación funcional aproximada entre las variables de entrada del modelo y la función objetivo del problema de optimización, ajustando una serie de modelos de regresión. Posteriormente el modelo ajustado es optimizado utilizando cualquiera de las conocidas técnicas de la programación matemática. Barton y Meckesheimer (2005) presentan una excelente revisión de este tema. En la aplicación de RSM a simulación se distinguen dos grandes categorı́as, metamodelos y procedimientos secuenciales. Se habla de un metamodelo cuando se ajusta una regresión al espacio completo de búsqueda. Este procedimiento es considerado poco práctico, pues inevitablemente se requiere un gran esfuerzo computacional para ajustar un modelo al dominio entero del problema. Sin embargo, los metamodelos son útiles para otras tareas aparte de 14.

(27) la optimización, como entregar entendimiento del problema, predecir valores de las salidas del modelo y ayudar en la verificación y validación del modelo. Kleijnen y Sargent (2000) desarrollan una metodologı́a para el ajuste de metamodelos en simulación. Barton (1998) presenta una revisión de los avances de esta técnica. Cuando el objetivo es exclusivamente la optimización, los metamodelos resultan ser ineficientes pues recolectan mucha información de áreas del espacio de búsqueda que son poco interesantes. Para mejorar esto se han desarrollado los procedimientos secuenciales. Estos procedimientos ajustan una regresión de primer orden a la función objetivo del problema de optimización, y solamente después de encontrar la vecindad del óptimo se ajustan regresiones locales de mayor orden. De esta forma se consigue un ahorro significativo en recursos computacionales. De hecho los métodos secuenciales generalmente requieren un menor número de evaluaciones del modelo de simulación que muchos de los métodos basados en el gradiente. Nicolai, Dekker, Piersma y Oortmarssen (2004) presentan un marco de trabajo para este tipo de modelos. Myers et al. (1999) presentan una revisión de los avances y de las lı́neas de investigación de esta técnica.. 2.3. Métodos de Trayectoria Muestreada El método de trayectoria muestreada busca aplicar técnicas de optimización determinı́stica a una estimación de la función objetivo construida a partir de muestras de ésta para distintos valores de los parámetros de entrada. En particular, si f˜i (x0 ) representa la i–ésima muestra de f (x0 ) para cualquier x0 que pertenece al espacio de búsqueda de soluciones, a partir de la ley fuerte de los grandes números se tiene que n. 1X˜ fi (x0 ), fˆ(x0 ) = n i=1. (2.9). converge a f (x0 ) con probabilidad igual a uno si los f˜i (x0 ) son estimadores i.i.d. insesgados de f (x0 ) y n tiende a infinito. Por lo tanto el método busca optimizar la función determinı́stica fˆ(x), que aproxima a f (x) para un valor grande de n. 15.

(28) Cada función f˜i (x) debe ser muestreada en los distintos valores de x para una misma trayectoria de eventos i en el modelo de simulación. Esto se hace posible mediante la generación de números aleatorios comunes para todas las muestras de f˜i (x) en cada uno de los valores de x. Gürkan, Özge y Robinson (1994) y Ferris, Munson y Sinapiromsaran (2000) entregan una presentación formal del método y prueban su funcionamiento. Robinson (1996) realiza una justificación matemática del funcionamiento del método y presenta las condiciones para su convergencia. La principal ventaja de este método es que permite aplicar un gran número de poderosas técnicas de optimización determinı́stica, que son capaces de, entre otras cosas, lidiar con problemas en que los parámetros de entrada están sujetos a complejas restricciones; que es precisamente un área donde fallan los métodos basados en el gradiente que utilizan aproximación estocástica. La principal desventaja es que requiere un gran número de evaluaciones del modelo de simulación. 2.4. Discusión En este capı́tulo se revisaron brevemente los métodos que actualmente se utilizan para resolver el problema de optimización de parámetros continuos vı́a simulación: métodos basados en gradiente, métodos de superficie de respuesta y métodos de trayectoria muestreada. Esta revisión permitió observar como la mayorı́a de estos métodos poseen ciertas desventajas –complejidad de uso y abuso de recursos computacionales– que dejan ver una gran área de oportunidad para continuar mejorando. En capı́tulos futuros se verá como precisamente las metaheurı́sticas –en particular los algoritmos genéticos– utilizadas como métodos de optimización son capaces de superar dichos problemas.. 16.

(29) 3. MARCO TEORICO. El marco teórico se divide en dos grandes temas. En primer lugar se presenta una revisión de los algoritmos genéticos como mecanismo de optimización para funciones continuas, poniendo especial énfasis en el algoritmo nHGA (Olguı́n & Gazmuri, 2008) que sirve de base para el algoritmo que se introducirá en el capı́tulo 4. Posteriormente se presenta una revisión de las distintas técnicas de ranking y selección existentes en la literatura. Estas técnicas permiten comparar estadı́sticamente el desempeño de un conjunto de configuraciones distintas de un sistema en particular. A lo largo de este trabajo estas técnicas serán utilizadas como una forma de comparar el desempeño de un conjunto de soluciones factibles del problema de optimización. Esta comparación es fundamental para ayudar a guiar la búsqueda del algoritmo genético en un entorno aleatorio.. 3.1. Algoritmos Genéticos 3.1.1. Introducción Los algoritmos genéticos son una popular técnica heurı́stica de búsqueda, ampliamente usada para encontrar soluciones a problemas de optimización. Este tipo de algoritmos fueron desarrollados originalmente por J.H. Holland en la década de los 70 (Holland, 1962, 1992). La idea principal detrás de los algoritmos genéticos es simular el comportamiento de una población de individuos. Cada uno de estos individuos tiene asociado un código genético único, llamado genoma, que representa una solución factible del problema de optimización. Esta población, tal como una población de seres vivos, evolucionará de generación en generación hacia mejores soluciones gracias a varios operadores genéticos aleatorios, tales como selección, cruza y mutación. Estos operadores utilizan soluciones existentes para producir nuevas soluciones. 17.

(30) De vital importancia es un valor numérico, llamado valor de adaptación, que es asignado a cada solución. Este valor es una estimación de qué tan buena es la solución que ese individuo representa. De esta forma, es posible seleccionar para la reproducción, con una mayor probabilidad, a aquellos individuos que presenten mejores valores de adaptación, de manera de ir mejorando la calidad de la población en cada nueva generación. Mediante esta evolución se espera que, tras un gran número de generaciones, se cuente con una población altamente adaptada al problema. Posiblemente, el mejor de los individuos de esta población final estará asociado a la solución óptima del problema, o por lo menos a una solución lo suficientemente cercana a ella. Muchos autores han escrito acerca de los algoritmos genéticos y sus variaciones. Srinivas y Patnaik (1994) presentan una completa revisión de este tema.. 3.1.2. Codificación del Genoma En la formulación original de los algoritmos genéticos, el genoma era codificado utilizando código binario (Goldberg & Holland, 1988). Este código ha probado funcionar eficientemente en varios problemas de optimización combinatorial. Ası́, por ejemplo, Beasley y Chu (1996) aplicaron un tipo de algoritmo genético al problema de cobertura de conjuntos, Fogel (1993) resuelve un conjunto de instancias seleccionadas del problema del vendedor viajero y Nara, Shiose, Kitagawa y Ishihara (1992) resuelven el problema de reconfiguración de mı́nima pérdida en sistemas radiales de distribución eléctrica. En general, estos problemas son sumamente complejos y no pueden ser resueltos de manera óptima en tiempo polinomial. Sin embargo, los autores muestran mediante experimentos numéricos, que el uso de algoritmos genéticos permite encontrar soluciones de muy buena calidad en poco tiempo. Desafortunadamente, para otros tipos de problemas, el código binario parece no ser la elección más adecuada. 18.

(31) El código real resulta adecuado para abordar problemas de optimización de variables continuas (Salomon, 1996). En este caso el genoma es modelado a través de un vector de números reales que contiene las coordenadas de la solución factible que es asociada al individuo. Estos algoritmos genéticos de código real, como los propuestos por Goldberg (1991), Lucasius y Kateman (1989) o Wright (1991), han probado resolver eficientemente problemas del mundo real en muchos campos. Por ejemplo Baskar, Subbaraj y Rao (2003) resuelven el problema económico de despacho de combustibles con múltiples opciones, Duffy y McNelis (2001) resuelven el modelo de crecimiento económico estocástico mediante expectativas parametrizadas y Yoshimoto, Harada y Yoshimoto (2003) enfrentan el problema de ajustar una función a una serie de datos con un spline. Estos problemas generalmente toman la forma de complejos problemas de optimización continuos, altamente no lineales y de muchas variables. Todos los autores muestran mediante experimentación numérica, que los algoritmos genéticos de código real tienen excelente desempeño en cada uno de los problemas. 3.1.3. Operadores de Cruza El operador de cruza es generalmente visto como la parte más importante de los algoritmos genéticos (DeJong & Spears, 1992). Por esta razón muchos autores han propuesto nuevos operadores de cruza mejorados (Herrera, Lozano & Sanchez, 2003; Ono, Satoh & Kobayashi, 1999; Voigt, Mühlenbein & Cvetkovic, 1995). Los operadores de cruza centrados en un progenitor (Ballester & Carter, 2003, 2004; Deb & Agrawal, 1995) son una familia de operadores de cruza que utilizan una distribución de probabilidades para generar nuevos individuos en el vecindario de uno de los progenitores, conocido como el progenitor femenino. Usualmente la dispersión de la distribución de probabilidades está dada por la distancia entre los progenitores. Algunos experimentos (Deb, Anand & Joshi, 2002) han probado la mejora en el desempeño de los algoritmos genéticos gracias al uso de operadores de cruza centrados en un progenitor. 19.

(32) Garcı́a-Martı́nez, Lozano, Herrera, Molina y Sánchez (2008) notaron que algunos individuos pueden estar mejor dotados para actuar como progenitores femeninos que como progenitores masculinos, o viceversa. Por lo tanto, propusieron dividir la población en dos grupos: el grupo femenino, que incluye a los NF mejores individuos, y el grupo masculino, que incluye a los NM mejores individuos. En Garcı́a-Martı́nez et al. (2008) se muestra que realizar esta diferenciación sexual entre los individuos antes de la selección puede mejorar el trabajo de los operadores de cruza centrados en un progenitor.. 3.1.4. Algoritmos Genéticos Hı́bridos Es sabido que el éxito de cualquier heurı́stica de búsqueda global depende de su habilidad para lograr un equilibrio entre la exploración del espacio de búsqueda y la explotación de las áreas prometedoras. Los algoritmos genéticos hı́bridos han sido desarrollados para enfrentar precisamente este problema. La idea clave detrás de ellos es utilizar dos algoritmos diferentes, apropiadamente calibrados, para cada tarea. Como la lenta convergencia de los algoritmos genéticos es un problema conocido (Chelouah & Siarry, 2003), es común ver algoritmos genéticos hı́bridos cuya etapa de intensificación es llevada a cabo por un algoritmo de descenso que intensifica la búsqueda en un área prometedora encontrada por el algoritmo genético en la etapa de diversificación. Chelouah y Siarry (2003) proponen un algoritmo genético hı́brido, llamado CHA, cuya etapa de diversificación es llevada a cabo por un algoritmo genético de código real, que utiliza un operador de cruza no centrado en un progenitor. Además, su etapa de diversificación es realizada mediante un popular algoritmo de búsqueda directa llamado Nelder–Mead simplex search (Nelder & Mead, 1965; Lagarias, Reeds, Wright & Wright, 1998). A través de una extensa experimentación numérica los autores muestran las mejoras en la convergencia del algoritmo como resultado de su etapa de intensificación. 20.

(33) Garcı́a-Martı́nez et al. (2008) proponen otro algoritmo genético hı́brido, llamado GL–25. En este caso, tanto la etapa de diversificación como la de intensificación son llevadas a cabo por algoritmos genéticos de código real sexualmente diferenciados, apropiadamente calibrados para cada tarea. En un principio, durante la etapa de diversificación, se utiliza NF = 50% y NM = 100%, de manera de promover la exploración de distintas zonas del espacio de búsqueda. Esta configuración se mantiene, como máximo, hasta agotar un 25% del presupuesto computacional y de ahı́ se pasa a la etapa de intensificación, con NF = 1% y NM = 50%, que permite converger rápidamente a la solución óptima. A través de una experimentación numérica, los autores mostraron que el algoritmo genético sexualmente diferenciado tiene un mejor desempeño que la versión no diferenciada. Considerando la eficiencia del algoritmo Nelder–Mead simplex search para manejar una etapa de intensificación y la confiabilidad y efectividad de un algoritmo genético sexualmente diferenciado para la etapa de diversificación, Olguı́n y Gazmuri (2008) desarrollaron un nuevo algoritmo genético hı́brido, llamado nHGA. Este algoritmo busca tomar lo mejor de cada uno de los algoritmos presentados anteriormente. El algoritmo desarrollado en este trabajo es un algoritmo genético hı́brido, cuyas etapas de diversificación e intensificación corresponden a algoritmos genéticos, basados en la etapa de diversificación de nHGA. Por esta razón es de suma importancia validar el funcionamiento adecuado de dicho algoritmo, en particular de su etapa de diversificación. A continuación se presenta un ejemplo del funcionamiento de nHGA. Este ejemplo tiene dos finalidades. En primer lugar busca validar el funcionamiento del algoritmo y en segundo lugar da pie a una discusión un poco más profunda de las caracterı́sticas que hacen que nHGA sea tan robusto. Posteriormente se presenta una comparación entre los desempeños de nHGA, CHA y GL–25. Esta comparación se hace en base al. 21.

(34) 4. f2(x1,x2). 3 2 1 0 −1 1 0.5 0 −0.5 x2. −1 −1. 0. −0.5. 0.5. 1. x1. Figura 3.1. Función Bohachevsky. desempeño exhibido por cada uno de los algoritmos frente a un conjunto de 18 complejas funciones de prueba cuyas caracterı́sticas son conocidas (Hedar & Fukushima, 2006, 2003). En el apéndice B se presenta la lista de las funciones y sus caracterı́sticas. 3.1.5. Funcionamiento de nHGA Como una forma de mostrar el funcionamiento de nHGA, a continuación se discute su desempeño en la función Bohachevsky, que es una función bidimensional extremadamente compleja con muchos mı́nimos locales (ver figura 3.1). El valor óptimo de esta función se encuentra en x∗ = (0, 0), con f (x∗ ) = 0. Las figuras 3.2 y 3.3 muestran los diagramas de flujo de las etapas de diversificación e intensificación de nHGA respectivamente. Olguı́n y Gazmuri (2008) presentan una descripción más acabada del funcionamiento de este algoritmo. La etapa de diversificación del algoritmo comienza con la generación de la población inicial que utilizará el algoritmo genético. Es de suma importancia que el tamaño de la población inicial sea preciso. Si éste es demasiado pequeño se corre peligro de dejar partes del espacio de búsqueda sin muestrear. Por el contrario, si es demasiado grande se incurre en un gasto excesivo de recursos computacionales. En el apéndice A se muestra una discusión más acabada respecto a la sensibilidad del algoritmo nHGA 22.

(35) Figura 3.2. Diagrama de flujo de la etapa de diversificación del algoritmo nHGA.. &. '. ! !. " $. #!. !. !. !. !. !. $. " $. &. ! %#!. !. !. $ '. #!. ( ). ' '. !. !. !. $ &. ". %#!. !. $. !. &. Figura 3.3. Diagrama de flujo de la etapa de intensificación del algoritmo nHGA.. 23.

(36) Iteración #23. Iteración #46 1. 0.5. 0.5. 0.5. 0. x2. 1. x2. x2. Iteración #1 1. 0 −0.5. −0.5 −1 −1. 0 x1. 0 x1. −1 −1. 1. 0 x1. 1. Evolución de la mejor solución. Iteración #95. Iteración #69. 1. −0.5. −1 −1. 1. 0. 0.4. 1. x2. 0. 0 −0.5. −0.5 −1 −1. 0 x1. −1 −1. 1. 0 x1. 0.3 0.25 0.2 0.15 0.1 0.05 0. 1. 0. 15 30 45 60 75 90 Iteración. Figura 3.4. Desempeño de la etapa de diversificación de nHGA para la función Bohachevsky. Los primeros gráficos muestran la dispersión de la población en cinco iteraciones diferentes. El gráfico de abajo a la derecha muestra la evolución del valor de la función objetivo para el mejor individuo. Evolución de la mejor solución. Evolución del mejor vértice 0.4 0.06 Función objetivo. 0.35. 0.04 x2. x2. Función objetivo. 0.35 0.5. 0.5. 0.02. 0. 0.3 0.25 0.2 0.15 0.1 0.05. −0.02 −0.05. 0. 0.05. 0.1 x1. 0.15. 0.2. 0. 5. 10. 15 20 Iteración. 25. 30. Figura 3.5. Desempeño de la etapa de intensificación de nHGA para la función Bohachevsky. El gráfico de la izquierda muestra la ruta seguida por el mejor vértice del simplex. El gráfico de la derecha muestra la evolución del valor de la función objetivo para ese vértice.. 24.

(37) al tamaño de la población. Por otro lado, también es muy importante la distribución de la población dentro del espacio de búsqueda. Ésta debe cubrirlo de manera homogénea para evitar la prematura convergencia del algoritmo hacia un mı́nimo local. En este ejemplo, el algoritmo genera una población inicial de 50 individuos, uniformemente distribuidos sobre el espacio de búsqueda [−1, 1]2 , como se muestra en la figura 3.4. Como muchos algoritmos genéticos basados en operadores de cruza centrados en un progenitor, nHGA utiliza un modelo de algoritmo genético de estado estacionario y no utiliza un operador de mutación. En contraste con el modelo de algoritmo genético generacional, el de estado estacionario (también conocido como incremental (Whitley & Kauth, 1988)) inserta solamente un nuevo miembro a la población en cada iteración del algoritmo. Este nuevo individuo es producto de la cruza de dos individuos de la población. Uno de ellos, el progenitor femenino, es seleccionado con mayor probabilidad mientras mayor es su valor de adaptación dentro del grupo del 50% mejor de la población. Por otra parte, el progenitor masculino, es seleccionado aleatoriamente dentro de la población completa. El nuevo individuo se crea en un lugar del espacio de búsqueda elegido aleatoriamente, en que cada coordenada de esta posición está dada por una distribución normal, con centro en el progenitor femenino y una varianza que es proporcional a la distancia entre los dos progenitores. De esta forma los nuevos individuos irán creciendo en áreas prometedoras del espacio de búsqueda y el algoritmo irá convergiendo al óptimo global. Es ası́ como en el ejemplo, después de 46 iteraciones, la población claramente ha abandonado la periferia del espacio de búsqueda, centrándose mayoritariamente en el centro de éste. Después de 95 iteraciones, los individuos están repartidos a lo largo del eje x1 , excepto por unos pocos individuos que aún están explorando un mı́nimo local en (0, 0.5). En este punto se cumple el criterio de cambio, que establece que la distancia. 25.

(38) promedio de los progenitores femeninos al mejor individuo de la población es menor a cierto umbral, y la etapa de diversificación se da por concluida. Lo que se saca en claro de ésta es que el área alrededor de (0, 0) es un área prometedora que debe ser explorada con mayor detención. Para esto, la mejor solución encontrada hasta ese punto, que es (0.173, 0.031), es entregada como punto de partida a la etapa de intensificación. La etapa de intensificación de nHGA es llevada a cabo por el algoritmo Nelder– Mead simplex search. Este se basa en el concepto de simplex, que es una figura geométrica de n + 1 vértices sobre un espacio de n dimensiones. El algoritmo busca hacer evolucionar un simplex inicial, hasta convertirlo en un simplex muy pequeño ubicado sobre un mı́nimo local de la función. Este evolución se realiza gracias a 5 transformaciones geométricas elementales, conocidas como reflexión, expansión, contracción interna, contracción externa y multi–contracción. En cada iteración, el algoritmo sólo realiza comparaciones entre los valores de la función objetivo de los vértices del simplex de manera de determinar la transformación más adecuada para realizar. Después de cada transformación, el vértice con el mayor valor de la función objetivo es reemplazado por una solución mejor. La figura 3.5 muestra el desempeño de la etapa de intensificación de nHGA para el ejemplo en estudio. Se puede observar que hizo evolucionar el simplex inicial casi directamente hacia el óptimo global en tan sólo 30 iteraciones, llegando a la solución final (7.75e–6, –2.31e–5) con un valor de la función objetivo de tan sólo 1.88e–8. Es importante resaltar la eficiencia de la etapa de intensificación. Comparando la evolución del valor de la función objetivo de la mejor solución de cada una de las etapas respectivamente, es claro que la tasa de descenso producida por el algoritmo Nelder–Mead simplex search es más pronunciada, logrando una rápida convergencia al óptimo global. De hecho, para este ejemplo la etapa de intensificación necesitó tan sólo 60 evaluaciones de la función objetivo, lo que representa un gran ahorro de. 26.

(39) recursos computacionales frente a las 144 evaluaciones realizadas por en la etapa de diversificación.. 3.1.6. Desempeño de nHGA El desempeño de nHGA será testeado en un conjunto de 18 funciones de prueba (ver apéndice B). Como el algoritmo es de naturaleza estocástica, se busca estimar el desempeño promedio para cada función. Por esta razón, cada problema de minimización es resuelto 200 veces. Interesan tres medidas de desempeño para cada experimento: (1) el número promedio de evaluaciones de la función objetivo, (2) la diferencia promedio entre el valor de la función objetivo de la mejor solución encontrada y el valor óptimo de la función (llamada distancia a f (x∗ )) y (3) la proporción de minimizaciones exitosas. Para el cálculo de este último indicador, se debe tener en cuenta que una minimización se considera exitosa cuando la mejor solución encontrada, xf , satisface la siguiente expresión f (xf ) − f (x∗ ) < rel f¯(·) + abs ,. (3.1). donde rel = 1e − 4, abs = 1e − 4 y f¯(·) es el valor promedio de la función objetivo sobre el espacio de búsqueda. La definición de éxito presentada anteriormente fue construida para ser justa con el conjunto completo de funciones. Por esta razón se consideran un término para el error relativo (rel f¯(·) ) y un término para el error absoluto (abs ). Para funciones con un valor de f¯(·) alto, el segundo término es prácticamente despreciable, y el éxito es conseguido por aquellas soluciones que estén a una distancia de f (x∗ ) menor a un 0.01% de f¯(·). Por ejemplo, una solución con f (xf ) = 3.01 para la función Goldstein y Price (f (x∗ ) = 3 y f¯(·) = 53482) es considerada exitosa gracias al término del error relativo. Sin embargo, para funciones con un valor de f¯(·) bajo, el primer término es prácticamente despreciable y el segundo se hace más importante. Por ejemplo, una solución con f (xf ) = −186.73088 para la función 27.

(40) Tabla 3.1. Resultados de nHGA, CHA y GL–25 para el conjunto de 18 funciones de prueba. Cada valor corresponde a un promedio de 200 muestras independientes. Función. Número de evaluaciones. Distancia a f (x∗ ). Éxito (%). (#). nHGA. CHA. GL–25. nHGA. CHA. GL–25. nHGA. CHA. GL–25. 1. 257.2. 268.0. 384.9. 3.59e–7. 3.63e–7. 2.26e–3. 100. 100. 92. 2. 185.0. 229.6. 261.7. 2.16e–8. 2.24e–2. 7.93e–5. 100. 95. 95. 3. 203.2. 324.3. 327.6. 6.00e–2. 7.99e–1. 1.20e–3. 94. 20. 96. 4. 223.9. 341.4. 286.3. 1.35e–1. 6.44370. 4.85e–3. 100. 73. 100. 5. 251.8. 283.8. 532.5. 13.1980. 35.3630. 9.50540. 81. 58. 25. 6. 244.9. 369.2. 396.6. 2.32e–3. 2.46e–1. 7.62e–4. 100. 92. 100. 7. 179.5. 283.6. 308.9. 5.18e–8. 1.37e–1. 4.31e–5. 100. 78. 100. 8. 207.7. 230.4. 271.1. 3.39e–6. 4.40e–2. 4.57e–4. 100. 92. 90. 9. 330.4. 587.3. 459.8. 2.14e–6. 2.09e–6. 6.62e–5. 100. 100. 96. 10. 249.5. 480.2. 437.8. 1.60e–9. 6.19e–9. 8.21e–6. 100. 100. 100. 11. 685.3. 1351.1. 1412.9. 6.94e–2. 12.4180. 2.45370. 100. 94. 100. 12. 955.8. 2120.6. 1183.0. 9.54e–3. 5.25e–2. 2.99e–3. 92. 56. 97. 13. 303.6. 453.4. 544.1. 4.2e–10. 1.39800. 0.05570. 100. 99. 100. 14. 870.7. 1977.6. 1940.2. 8.60e–1. 32.5340. 1.81010. 100. 87. 100. 15. 2155.4. 6557.6. 6425.5. 8.12340. 60.7340. 5.34970. 100. 100. 100. 16. 180.2. 261.4. 291.5. 1.45e–9. 3.81e–9. 7.72e–5. 100. 100. 100. 17. 748.4. 1581.5. 1442.5. 3.45e–9. 1.51e–1. 2.22e–3. 100. 100. 100. 18. 3434.6. 6581.6. 6082.5. 1.23e–8. 1.24e–1. 3.31e–5. 100. 100. 100. Shubert (f (x∗ ) = −186.7309 y f¯(·) = 1.7e − 6) es considerada exitosa gracias al término del error absoluto. El desempeño de nHGA es comparado con los otros dos algoritmos genéticos hı́bridos presentados anteriormente, CHA y GL–25. Los criterios de parada de ambos algoritmos fueron levemente modificados con el propósito de que el presupuesto computacional disponible para cada uno de ellos fuera el mismo. La tabla 3.1 muestra los resultados obtenidos por cada uno de los 3 algoritmos. Se puede observar que nHGA se desempeña mejor que la competencia. De hecho, es el algoritmo más exitoso de los 3 en 16 de las 18 funciones utilizadas, con un porcentaje promedio de éxito del 98%. Es más, nHGA no presenta un 100% de éxito solamente en 3 funciones: 28.

(41) • La función Easom (#3), que es una función muy plana con varios mı́nimos locales y cuyo mı́nimo global se ubica en un valle muy angosto y agudo. Para esta función se obtiene una tasa de éxito del 94%. • La función Shubert (#5), que es una función extremadamente compleja con 760 mı́nimos locales y 18 mı́nimos globales. Para esta función se obtiene una tasa de éxito del 81%. • La función Hartmann(6) (#12), que es una función en 6 dimensiones y que posee 4 mı́nimos locales, 2 de los cuales tienen un valor de la función objetivo muy similar al mı́nimo global. Para esta función se obtiene una tasa de éxito de un 92%. Por otro lado, el número de evaluaciones de la función objetivo realizado por nHGA es el más bajo de los 3 algoritmos en todos los experimentos. En promedio el algoritmo realiza 648 evaluaciones para minimizar cada función, lo que representa un 50% de las evaluaciones realizadas por los otros algoritmos. Además, para las funciones de 2 dimensiones, que representan un 55.6% de la muestra utilizada, el número de evaluaciones promedio no excede las 260 evaluaciones (excepto por la función Rosenbrock(2) que requiere 303.6 evaluaciones), con un promedio de tan sólo 224 evaluaciones. En general, se puede decir que los resultados generales obtenidos por nHGA son muy satisfactorios con todas las funciones utilizadas. Una pequeña revisión del desempeño de CHA y GL–25 puede ayudar a entender mejor las caracterı́sticas que hacen que nHGA obtenga estos resultados. • CHA requiere menos evaluaciones de la función objetivo que GL–25 en 10 de las 18 funciones utilizadas. Esto puede ser en su mayor parte explicado por el uso de un algoritmo de descenso en la etapa de intensificación (en este caso el algoritmo Nelder–Mead simplex search). Esto reporta un ahorro en recursos computacionales.. 29.

(42) • GL–25 logra una tasa de éxito igual o mejor que CHA en 14 de las 18 funciones utilizadas. Esto puede ser explicado en su mayor parte porque el algoritmo genético sexualmente diferenciado, basado en un operador de cruza centrado en un progenitor, explora de mejor manera el espacio de búsqueda, reduciendo la posibilidad de quedarse atrapado en un mı́nimo local. Estas dos caracterı́sticas, y las sinergias que ellas pueden producir, están presentes en nHGA y explican su extraordinario desempeño general.. 3.2. Ranking y Selección 3.2.1. Introducción El algoritmo, nHGA, presentado en la sección anterior requiere que en cada iteración se determine el mejor individuo de la población completa (i.e. el individuo que esté asociado con la solución que tenga el menor valor de la función objetivo). En optimización determinı́stica, como la presentada en la sección anterior, la selección del mejor individuo es trivialmente realizada evaluando el valor de la función objetivo para la población completa. Sin embargo, en el contexto de la simulación vı́a optimización, la aleatoriedad complica dramáticamente esta selección. Se requiere realizar muchas corridas del modelo para obtener una estimación útil del valor de la función objetivo de cada uno de los individuos. Idealmente, se deben realizar suficientes corridas como para tener seguridad de que la elección del mejor individuo es correcta. Sin embargo, si se dedican muchos recursos computacionales a esta selección, entonces la búsqueda guiada por el algoritmo genético hı́brido puede verse perjudicada debido al poco presupuesto computacional que quedará disponible para ello. Por lo tanto la eficiencia de la selección, en términos de lograr un balance entre tomar una decisión correcta y el presupuesto computacional requerido, es crı́tica para lograr un buen desempeño en términos generales de la rutina de optimización. 30.

(43) Las técnicas de ranking y selección, utilizadas en optimización discreta vı́a simulación, proveen una herramienta eficiente para realizar la selección del mejor individuo dentro de la población. Sean x(1) , x(2) , . . . , x(N ) los N individuos de una población cualquiera1 , donde    f x(1) , f x(2) , . . . , f x(N ) son sus valores de la función objetivo respectivamente.   Dado que estos valores son variables aleatorias, se define µi = E f x(i) y σi2 =   Var f x(i) . Es importante hacer notar que los superı́ndices de los individuos son asignados de tal forma que µ1 ≤ µ2 ≤ · · · ≤ µN . El objetivo de las técnicas de ranking y selección es seleccionar al individuo con el menor valor esperado de la función objetivo (i.e. el individuo x(1) ). De lograrse este objetivo, se dirá que se realizó una elección correcta (EC). Lamentablemente, la aleatoriedad inherente en los valores de la función objetivo de los distintos individuos hace que nunca se pueda estar absolutamente seguro de realizar la elección correcta. Sin embargo, se puede especificar una probabilidad de hacer la elección correcta. Además, se considera que el modelador puede ser indiferente en la selección de un individuo sub–óptimo, cuando el valor de la función objetivo de éste es prácticamente el mismo que el del mejor individuo. Esto es, si µ2 − µ1 es muy pequeño, el modelador puede ver que ambos individuos tienen un desempeño prácticamente igual y no le importa si erróneamente se selecciona a x(2) . Para cuantificar esto, se define el parámetro de indiferencia, δ, que es la máxima diferencia que mantiene indiferente al modelador. Se define además la probabilidad de elección correcta como P{EC} = P{µ1 < µi , ∀i ∈ {i 6= 1 : µi − µ1 ≥ δ}}. Los métodos de ranking y selección permiten asegurar que esta probabilidad sea mayor que P ∗ , que es una probabilidad especificada por el modelador y que debe cumplir con 1/N < P ∗ < 1. La probabilidad de elección correcta igual a 1/N se puede conseguir seleccionando un individuo al azar.. 1. También se pueden ver como N configuraciones distintas de un sistema, que es el enfoque que se le suele dar en optimización discreta vı́a simulación. 31.

(44) 3.2.2. Métodos de Dos Etapas La primera aproximación para resolver este problema fue presentada por Bechhofer (1954), pero el método suponı́a que las medias µi eran desconocidas y que las varianzas σi2 eran conocidas e iguales para todos los individuos. Zinger y St.Pierre (1958) presentaron un procedimiento que consideraba que las varianzas eran conocidas y distintas. Lamentablemente, en ambos casos, los supuestos requeridos son muy poco realistas al aplicarse en el contexto de simulación vı́a optimización. Afortunadamente,    Rinott (1978) desarrolló un método que supone que f x(1) , f x(2) , . . . , f x(N ) son variables aleatorias i.i.d. con distribución normal con medias desconocidas y varianzas desconocidas y distintas. El procedimiento desarrollado por Rinott (1978) posee dos etapas. En la primera etapa de muestreo, se realizan n0 (≥ 2) réplicas de la simulación para cada uno de los N individuos y se calculan las medias n0   1 X ¯ (1) fˆj x(i) µ̂i = fˆn0 x(i) = n0 j=1. (3.2). y las varianzas muestrales n. σ̂i2. =. Si2 (n0 ). 0  2  1 X (1) fˆj x(i) − µ̂i = , n0 − 1 j=1. (3.3).  para i = 1, 2, . . . , N , donde fˆj x(i) es el valor obtenido para la función objetivo del  ¯ individuo i en la j–ésima corrida del modelo y fˆn x(i) es el promedio de n de esas corridas. A partir de estas estimaciones es posible obtener el número total de réplicas necesarias para cada individuo, dado por ( & 2 ') h σ̂i2 ; Ni = max n0 , δ. (3.4). 32.

(45) donde h es una constante que satisface Z ∞ ∗ P = T (u + h)N −1 t(u)du,. (3.5). −∞. en que T (·) y t(·) son las funciones de distribución y de densidad, respectivamente, de la distribución t de Student con n0 − 1 grados de libertad. En la segunda etapa se realizan las Ni −n0 réplicas restantes para cada individuo. Finalmente se calculan nuevamente las medias muestrales Ni   1 X ¯ˆ (i) = µ̂i = fNi x fˆj x(i) Ni j=1. (3.6). para i = 1, 2, . . . , N y se elige como el mejor a aquel individuo que tenga una menor media muestral. Este método presenta un problema, debido básicamente a que el presupuesto computacional es asignado a cada individuo proporcionalmente a la varianza muestral obtenida en la primera etapa. De esta manera, pueden existir individuos con un desempeño claramente inferior que obtienen tanto presupuesto computacional como el mejor de los individuos, simplemente por presentar una varianza similar en la primera etapa. Para solventar esta debilidad, E. Chen y Kelton (2000) desarrollaron una mejora al método de Rinott (1978), que da paso a un nuevo método conocido como procedimiento mejorado de selección de dos etapas (ETSS). La diferencia entre ambos radica en considerar no solamente la varianza muestral de la primera etapa, sino que también la media de ésta, para determinar el número de réplicas adicionales para cada individuo. Para esto los autores proponen reemplazar la constante h de la ecuación (3.4) por hi =. hδ  max δ,. (1) µ̂i. n o , (1) − min µ̂j. (3.7). j6=i. donde h es la misma constante que satisface la ecuación (3.5). De esta forma se introduce información respecto a la diferencia de desempeño entre el i–ésimo individuo y el mejor de los individuos. Si esta diferencia es pequeña 33.

Referencias

Documento similar

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)