Diseño de una Herramienta Basada en Técnicas Metaheurísticas para el Problema de la Mínima Latencia Edición Única
Texto completo
(2) INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS MONTERREY DIVISIÓN DE INGENIERÍA PROGRAMA DE GRADUADOS EN INGENIERÍA. TECNOLÓGICO DE MONTERREY. DISEÑO DE UNA HERRAMIENTA BASADA EN TÉCNICAS METAHEURÍSTICAS PARA EL PROBLEMA DE LA MÍNIMA LATENCIA TESIS PRESENTADA COMO REQUISITO PARCIAL PARA OBTENER EL GRADO ACADÉMICO DE: MAESTRA EN CIENCIAS ESPECIALIDAD EN SISTEMAS DE CALIDAD Y PRODUCTIVIDAD POR: SUSANA YANETH ARZOLA VÁZQUEZ MONTERREY, NUEVO LEON. MAYO 2011.
(3) INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS MONTERREY DIVISIÓN DE INGENIERÍA PROGRAMA DE GRADUADOS EN INGENIERÍA. TECNOLÓGICO DE MONTERREY®. Diseño de una herramienta basada en técnicas metaheurísticas para el problema de la mínima latencia.. TESIS PRESENTADA COMO REQUISITO PARCIAL PARA OBTENER EL GRADO ACADÉMICO DE:. MAESTRA EN CIENCIAS ESPECIALIDAD EN SISTEMAS DE CALIDAD Y PRODUCTIVIDAD. POR: SUSANA YANETH ARZOLA VÁZQUEZ. MONTERREY, N.L.. MAYO DE 2011.
(4) INSTITUTO T E C N O L Ó G I C O Y DE ESTUDIOS S U P E R I O R E S DE MONTERREY. C A M P U S MONTERREY DIVISIÓN DE INGENIERÍA P R O G R A M A DE G R A D U A D O S EN INGENIERÍA. Los m i e m b r o s del c o m i t é d e tesis r e c o m e n d a m o s q u e el presente proyecto d e tesis p r e s e n t a d o por la Ing. S u s a n a Y a n e t h Arzola V á z q u e z s e a a c e p t a d o c o m o requisito parcial p a r a o b t e n e r el g r a d o a c a d é m i c o d e : Maestra en Ciencias Especialidad en S i s t e m a s d e Calidad y Productividad. C o m i t é d e Tesis:. Dr. Francisco R. Á n g e l Bello A c o s t a Asesor. Sinodal. Sinodal. Aprobado:. Dr. Neale R. Smith Cornejo Director-Maestría e n C i e n c i a s c o n Especialidad e n S i s t e m a s d e Calidad y Productividad. M a y o , 2011.
(5) Dedicatoria. A mi hijo Santiago. Por ser mi inspiración en todo lo que hago, por impulsarme a realizar mi mayor esfuerzo por ser mejor persona cada día, por darme la mayor felicidad que puede existir y por ser la luz en mi vida. A mi esposo Alberto. Por ser mi compañero de vida, por apoyarme incondicionalmente en todos mis planes, por cuidarme siempre y buscar mi bien, por compartir cada momento conmigo y sobre todo por hacerme feliz cada día. A mis padres y mis hermanos. A mis padres por ser mi motor de vida, por todo su amor, por su esfuerzo y sacrificio, por la educación que siempre me dieron y sobre todo sus enseñanzas y consejos. A mis hermanos por ser mis cómplices en todo lo que hago, por escucharme siempre y por impulsarme a lograr todos mis retos.. i.
(6) Agradecimientos. A Dios por darme la oportunidad de vivir y por siempre llenar de bendiciones mi vida A mi asesor, Francisco Ángel Bello, por su gran apoyo en la realización de esta investigación, por confiar siempre en mi, por su paciencia y comprensión y por todo el tiempo que siempre me dedicó. A mis sinodales, gracias por sus recomendaciones y por participar en este proyecto tan valioso para mi. A todos mis amigos, en especial a Gustavo, Enrique, Angélica, Joel, Marco, Antonia, Angie, Arce y Taba, gracias por siempre escucharme, por darme consejos, por impulsarme y ayudarme y sobre todo, por los momentos tan divertidos y de reflexión que pasamos juntos durante esta fase de mi vida estudiantil. A mis compañeras de trabajo, Ileana, Susana y Araceli, gracias por siempre estar de mi lado, por escucharme, por brindarme la oportunidad de lograr este proyecto y por apoyarme en mis decisiones. A mis dos amigas del alma, Gloria y Jess, gracias por su amistad incondicional, por estar conmigo en momentos difíciles, por ayudarme siempre, por ser madres postizas para mi Santi, por ser testigos y por impulsarme a lograr este gran reto en mi formación académica.. ii.
(7) RESUMEN. Entre los factores de mayor influencia para medir la competitividad de las empresas están los relacionados con el servicio a clientes. Generalmente un cliente está satisfecho cuando recibe su pedido en la cantidad exacta solicitada y en el momento de tiempo lo que necesita. Tomando esto en cuenta, gran cantidad de organizaciones en la actualidad prestan mayor atención a la calidad del servicio a clientes y en particular a mejorar los tiempos de respuesta. Para tener tiempos pequeños de entrega, no es suficiente enfocarse solamente en el proceso de transportación y distribución de los productos. También es necesario enfocarse en la optimización del proceso productivo para lograr que los lotes terminen su procesamiento lo antes posible. En la terminología de redes, la latencia está asociada a la longitud de un camino desde un nodo raíz hasta un nodo dado de la red y la latencia total con la suma de la latencia de todos los nodos de la red. Cuando se minimiza la latencia total lo que se hace en realidad es determinar un conjunto de caminos a todos los nodos desde un nodo raíz que en suma o en promedio tengan el menor valor posible. Al llevar esto a un problema de distribución de recursos vemos que minimizar la latencia total significa, determinar la forma en que se visitarán los clientes para que el tiempo de espera total de los clientes sea el menor posible. En el contexto de secuenciación de tareas, significa determinar el orden. iii.
(8) en que se procesarán los lotes de forma tal que se minimice la suma de los tiempos de terminación de todos los lotes. En la presente investigación nos enfocaremos en problemas de latencia m í n i m a aplicados a minimizar los tiempos de espera por u n servicio de clientes que están dispersos geográficamente y a problemas de minimizar la suma de los tiempos de terminación en programación de la producción con costos de preparación de las máquinas dependientes de la secuencia. Teniendo en cuenta la complejidad computacional de estos tipos de problemas se desarrollaran procedimientos metaheurísticos para su resolución, que permitan obtener soluciones de calidad en tiempos razonablemente cortos. Para p o d e r evaluar la calidad de la herramienta desarrollada, se realizarán comparaciones de las soluciones alcanzadas con los valores de las soluciones óptimas, obtenidas por u n optimizador comercial y con los valores de las soluciones obtenidas por otros procedimientos metaheurísticos de la literatura.. iv.
(9) CONTENIDO. CAPÍTULO 1: INTRODUCCIÓN 1.1 1.2 1.3 1.4 1.5 1.6 1.7. 1. Antecedentes Planteamiento del problema Objetivos Preguntas de investigación Justificación Contexto de la investigación Alcances y limitaciones. 1 3 4 5 5 6 7. CAPÍTULO 2: MARCO TEÓRICO. 8. 2.1 2.2 2.3 2.4 2.5 2.6. Descripción del problema Discusión de la bibliografía Problemas del reparador y repartidor El problema de mínima latencia en el contexto de secuenciación de tareas Algoritmos exactos Generalidades de los métodos heurísticos y metaheurísticos 2.6.1 GRASP 2.6.2 Búsqueda Local Iterativa (Iterated Local Search) 2.6.3 Reencadenamiento de Trayectorias (Path Relinking). CAPÍTULO 3: METODOLOGÍA DE SOLUCIÓN 3.1. Procedimiento Metaheurístico Híbrido 3.1.1 Fase constructiva 3.1.2 Fase de mejoramiento de las soluciones iniciales 3.1.3 Fase de post-optimización 3.1.4 Resumen del procedimiento general de solución 3.2 Modificación de la formulación lineal entera. CAPÍTULO 4: EXPERIMENTOS COMPUTACIONALES 4.1. Descripción de las instancias de datos 4.1.1 Instancias generadas 4.1.2 Instancias de la literatura 4.2 Discusión de los resultados computacionales. 8 10 12 13 14 24 27 29 31. 32 32 33 36 39 41 42. 45 45 46 48 48. CAPÍTULO 5: CONCLUSIONES GENERALES. 59. BIBLOGRAFÍA. 62. V.
(10) ÍNDICE DE FIGURAS Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura. 2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 3.5 3.6. Ejemplo de red para problema de mínima latericia Ejemplo de red multinivel Esquema general del grasp Pseudo-código de búsqueda local Pseudo-código de la búsqueda local iterativa Pseudo-código para la fase constructiva del grasp Pseudo-código para el método constructivo 1 Pseudo-código para el método constructivo II Pseudo-código para la búsqueda local compuesta Pseudo-código para las búsquedas locales simples Representación de la red del problema mediante una red multi-nivel. vi. 21 22 28 29 30 33 34 35 37 37 43.
(11) Í N D I C E DE TABLAS Tabla 2.1. Diferencias entre el problema de mínima latencia y el problema del agente viajero Tabla 4.1. Resultados exactos para datos asimétricos con 50 Tabla 4.2. Resultados exactos para datos asimétricos con 51 Tabla 4.3. Resultados exactos para datos asimétricos con 52 Tabla 4.4. Resultados exactos para datos simétricos con 50 Tabla 4.5. Resultados exactos para datos simétricos con 5*1 Tabla 4.6. Resultados exactos para datos simétricos con S2 Tabla 4.7. Resultados exactos para datos geométricos con SO Tabla 4.8. Resultados exactos para datos geométricos con 5*1 Tabla 4.9. Resultados exactos para datos geométricos con S2 Tabla 4.10. Resultados exactos para datos de la literatura Tabla 4.11. Resultados obtenidos por medio de procedimientos metaheurísticos para datos asimétricos con SO, SI y SI Tabla 4.12. Resultados obtenidos por medio de procedimientos metaheurísticos para datos simétricos con 50, 51 y 52 Tabla 4.13. Resultados obtenidos por medio de procedimientos metaheurísticos para datos geométricos con 50, 51 y 52 Tabla 4.14. Resultados de la Prueba de Wilcoxon para las instancias geométricas Tabla 4.15. Resultados obtenidos por medio de procedimientos metaheurísticos propuestos con los mejores resultados de la literatura. vii. 11 50 51 51 51 52 52 53 53 54 55 55 55 56 57 58.
(12) CAPÍTULO 1. INTRODUCCIÓN. 1.1 Antecedentes Actualmente la competitividad es un factor diferenciador entre las organizaciones. Para poder controlar este indicador y mejorar su productividad, las organizaciones evalúan sus procesos, el nivel de satisfacción de sus clientes, los tiempos de espera de los clientes, tiempos de entrega, etc. La Latencia es una medida del tiempo de espera experimentado en un sistema. En el caso de sistemas de distribución representa el tiempo que espera un cliente para ser atendido y en problemas de programación de la producción el tiempo que espera una pieza hasta terminar su procesamiento en una máquina. Teniendo en cuenta que la latencia es una medida para evaluar el tiempo de espera, es un factor que puede influir en la percepción de los clientes sobre la calidad del servicio que reciben. En el contexto de la teoría de redes, la latencia está asociada a la métrica para evaluar la longitud de un camino desde un nodo raíz hasta un nodo dado de la red. En el problema de mínima latencia se busca un camino Hamiltoniano que pase por todos los nodos de forma tal que la suma de las latencias de todos los nodos sea mínima. Dado un camino, que visita n puntos en un espacio métrico, la latencia de uno de los puntos p es la distancia recorrida en el viaje antes de llegar a p (Blum, etal., 2004). En problemas de distribución de recursos el problema de mínima latencia está relacionado con el problema del repartidor y el problema del reparador. El problema del 1.
(13) repartidor, básicamente, trata de encontrar un camino que recorra un conjunto de clientes con la finalidad de minimizar el tiempo de espera total de los mismos. El problema del reparador consiste en programar un recorrido de reparaciones para un grupo de clientes de forma tal que los clientes esperen lo menos posible para comenzar su servicio de reparación. En el caso del problema del repartidor, los tiempos de espera del cliente deben ser relativamente cortos, un ejemplo de esto pudiera ser el servicio de entrega de las pizzas, el cual pretende que los tiempos de espera sean cortos para el cliente y disfruten del producto lo antes posible. Por su parte, en el problema del reparador, los tiempos de servicio adquieren mayor importancia ya que no es únicamente ir a entregar un producto, sino que una vez que se ha llegado al cliente se le debe proporcionar un servicio adecuado. Al igual que en el problema del repartidor, el principal objetivo es lograr encontrar una ruta que minimice el tiempo total de espera de los clientes. La diferencia fundamental entre estos problemas radica en que, debido a la complejidad del servicio requerido, en el problema del reparador los tiempos de servicio son significativamente mayores. Para el caso de secuenciación de tareas, el problema consiste en determinar el orden en que se procesa un conjunto de tareas, lo cual en semejanza con el problema del reparador, donde el tiempo de preparación de la máquina entre dos tareas corresponde al tiempo del trayecto entre dos clientes y los tiempos de procesamiento a los tiempos de servicio de los clientes. El objetivo en este caso consiste en minimizar el tiempo de terminación de procesamiento de las tareas.. 2.
(14) En el contexto de secuenciación de tareas, dentro del problema de mínima latencia se pueden enmarcar los problemas de minimizar el tiempo de flujo total o el tiempo total de terminación de un grupo de tareas a ser procesadas por una máquina. Está demostrado en la literatura que el problema de mínima latencia y, por supuesto, todas las aplicaciones mencionadas anteriormente son problemas NP-duros. De acuerdo a la literatura revisada, para este problema se han propuesto varios algoritmos de aproximación y se han implementado algunas heurísticas simples, sin embargo, se han desarrollado pocos algoritmos exactos, y según nuestro conocimiento, sólo se han implementado dos procedimientos basados en técnicas metaheurísticas.. 1.2 Planteamiento del problema En los algoritmos de aproximación el mejor valor para factor de aproximación es de 3.59 para el caso simétrico, mientras que para el caso asimétrico no existe un factor constante de aproximación, siendo el mejor valor conocido del orden de 0(log n). Por otra parte, los diferentes procedimientos exactos de solución y las formulaciones enteras propuestas consumen tiempos muy altos de computación en instancias de datos relativamente pequeños. Considerando lo anterior, el problema que nos enfrentamos en esta investigación consiste en obtener soluciones factibles cercanas a la solución óptima mediante procedimientos que consuman poco tiempo de computación para el problema de la mínima latencia. Además, teniendo en cuenta la complejidad del problema y la escasez de técnicas metaheurísticas utilizadas para su resolución, en la presente tesis, para obtener soluciones de calidad en tiempos de cómputos razonablemente cortos, desarrollaremos e implementaremos procedimientos metaheurísticos.. 3.
(15) De esta manera el problema queda planteado de la siguiente forma: ¿Cómo implementar técnicas metaheurísticas que generen soluciones factibles de buena calidad al problema de mínima latencia. en tiempos de cómputo. razonablemente cortos?. 1.3 Objetivos Objetivo general: Diseñar una herramienta basada en técnicas metaheurísticas para la resolución del problema de la Mínima Latencia (Minimium Latency Problem) con buenos resultados en calidad y tiempo de cómputo. Objetivos específicos: Generar instancias de datos asimétricas a partir de la generación por separado de los tiempos de trayecto (tiempos de preparación) y los tiempos de servicio (tiempos de procesamiento). Implementar y resolver modelos de Programación Lineal Entera Mixta para el problema de Mínima Latencia que permita obtener soluciones exactas a instancias medianas de datos. Diseñar, desarrollar e implementar procedimientos metaheurísticos híbridos basados en estrategias generales propuestas en la literatura. Validar el procedimiento metaheurístico desarrollado mediante la comparación de la calidad de las soluciones obtenidas con las soluciones óptimas y con los resultados reportados en la literatura. Aplicar el procedimiento metaheurístico desarrollado a instancias de datos de mayor tamaño para valorar el crecimiento en el tiempo de cómputo a medida que crece el tamaño del problema. 4.
(16) 1.4 Preguntas de investigación Algunas preguntas que han surgido para esta investigación son las siguientes: ¿Cómo se comportan los modelos matemáticos a medida que crece el número de nodos en la red? ¿Qué es lo que se ha hecho en métodos aproximados para la resolución del Problema de la Mínima Latencia? ¿Cuáles son los mejores resultados para cada variante de este problema que se reportan en la literatura? ¿Qué técnicas metaheurísticas se han utilizado y cómo se han comportado? ¿Cuáles son los algoritmos exactos que se han propuesto? ¿Cómo se puede abordar este problema?. 1.5 Justificación Debido al afán por lograr un incremento en la competitividad, las organizaciones se preocupan cada vez más por hacer más eficientes sus procesos y aumentar su productividad. Por esta razón, se ha impulsado el uso de herramientas que provean mejores resultados en sus procesos. El problema de mínima latencia estudiado en el presente trabajo de tesis, al estar enfocado a reducir el tiempo de espera de los clientes, tiene una serie de aplicaciones en diversas situaciones de la vida real. Por lo tanto, resolver el problema planteado ayudará a tomar mejores decisiones a las organizaciones y a contemplar planes alternativos en caso de que estén generando programaciones de mala calidad, el tiempo de ocio de los recursos. se incremente, los clientes se muestren inconformes. con el. servicio. proporcionado, exista variabilidad entre tiempos de entrega, etc. Sin embargo, al ser un problema que su resolución tiene una alta complejidad computacional, el no contar con herramientas que provean soluciones de calidad en 5.
(17) tiempos cortos, limita que se plantee su utilización en situaciones prácticas reales. Los procedimientos exactos y los algoritmos de aproximación son resultados de gran importancia desde el punto de vista teórico, pero debido a la complejidad del problema, raramente se pueden aplicar a situaciones reales, donde se trabajan con grandes volúmenes de información. Para tratar problemas a gran escala se necesitan algoritmos veloces que provean soluciones factibles de calidad. Los procedimientos metaheurísticos deben cumplir con estos dos requerimientos. De esta manera, la herramienta desarrollada y basada en técnicas metaheurísticas podrá ofrecer soluciones factibles y en tiempos relativamente cortos para la industria, lo cual mejorará la eficiencia de sus procesos, de la forma de trabajo, de operación, etc., logrando con esto mayores beneficios tanto económicos como sociales para la organización.. 1.6 Contexto de la investigación La investigación se realizará de acuerdo a la literatura revisada, se empleará técnicas metaheurísticas que proporcionen una solución muy cercana a la óptima. Para comprobar la eficiencia de la herramienta desarrollada, se compararan los resultados obtenidos con las soluciones óptimas a través de un modelo lineal entero y con resultados obtenidos por otros procedimientos metaheurísticos de la literatura. El modelo lineal entero se implementará en Cplex 11.1 y los procedimientos metaheurísticos desarrollados se programaran en C++. Esta herramienta desarrollada será de utilidad para la industria en general, para organizaciones cuyas actividades principales sean parecidas a las que involucran a estos tipos de problemas, no existe alguna empresa en específico que se tenga considerada. 6.
(18) para realizar este análisis dado que se aplicarán conceptos y métodos de diseño y análisis de experimentos para generar instancias de prueba para el modelo propuesto.. 1.8 Alcances y limitaciones del estudio Esta herramienta ofrecerá una técnica que reducirá a gran escala el tiempo de cómputo para obtener una buena solución y dará soluciones aproximadas a problemas de alta complejidad computacional, es decir, problemas que pertenecen a la categoría de NP-duros. La herramienta que se obtendrá como resultado de la investigación podrá ser aplicada en la industria donde existan organizaciones que se dediquen a actividades cuyo eje central sea repartir, reparar, secuenciación de tareas, etc. En cuanto a las limitaciones del estudio se podría considerar que los datos con los que se trabajó no son reales, son datos que fueron generados bajo ciertas condiciones, por lo que no fueron obtenidos de forma histórica por alguna empresa.. 7.
(19) CAPÍTULO 2. MARCO TEÓRICO. 2.1 Descripción del Problema Sea G = (V,A). una red dirigida completa donde V = {0,1,2,•••,«} es el conjunto de. nodos y A el conjunto de arcos. El nodo 0 corresponde al nodo raíz y C = {c ) tj. representa la matriz de tiempos de trayecto (costos) asociados a los arcos (i, j) e A Para. una. permutación. dada. (un. camino. Hamiltoniano). de. nodos. P = {0,[1],[2],••-,[«]} de V, donde el nodo 0 está indicado en la primera posición, la latencia l. [t]. del nodo en la posición i se define como la longitud del camino del nodo. raíz 0 al nodo [i] y puede ser calculada de la siguiente forma. - /. [ M ]. [i] es el índice del nodo en la posición / en la permutación, [0] = 0 y /. +c_ [i. [0]. W]. donde. = / = 0 .La 0. latencia total para la permutación P es la suma de la latencias de cada nodo y puede ser n. calculada como L - ^ /. [ f ]. • El objetivo del problema de la mínima latencia es encontrar. í=i. una permutación de nodos que minimice la latencia total. En el problema del repartidor así como en el problema del reparador, los valores de c. 0. se componen de los tiempos. de recorrido t¡- y los tiempos de servicio s ¡ , y pueden ser calculados de la siguiente forma:. 8.
(20) En los problemas de minimizar el tiempo total de terminación y tiempo de flujo total en una máquina cuando se consideran tiempos de preparación dependientes de la secuencia, los tiempos í están asociados con tiempos de preparación de la máquina ¡y. requeridos para procesar la tarea j justo después de la tarea i y s . está asociado con el tiempo de procesamiento de la tarea j . En este caso, c¡j es calculada como:. De esta forma, si los clientes. o las tareas tienen tiempos de servicio. o. procesamiento diferentes, la matriz de tiempos es siempre asimétrica. El problema de la mínima latencia puede ser visto como un caso particular del problema del agente viajero dependiente del tiempo, donde la contribución de cada ciudad a la función objetivo depende de la posición que ocupe en el recorrido. De hecho, empleando la fórmula /. [f]. =/. [ M ]. +c. [ M ] [ ¡ ]. es posible obtener la latencia. para cada posición i como se expresa a continuación:. Ahora sumando las latencias de todos los nodos, podemos obtener la siguiente expresión para la latencia total. 9.
(21) A partir de esta última expresión se puede observar que mientras más cerca se encuentra un nodo al nodo raíz en una permutación P, mayor es su contribución al valor de la latencia total. El problema de mínima latencia es una medida del tiempo de espera en el sistema, generalmente se le atribuyen algunos otros nombres, entre ellos, el problema del repartidor y el problema del agente viajero con costos acumulados. El objetivo de este problema es minimizar el tiempo promedio de llegada a la ubicación de los clientes, considerando los problemas de ruteo de vehículos y programación de máquinas.. 2.2 Discusión de la bibliografía. El problema de mínima latencia se presentó en 1967 por Conway, Maxwell y Miller cuando era conocido como un tipo de problema de programación de la producción. Se puede interpretar como un único problema de programación de máquinas, que genera una secuencia de los tiempos de procesamiento de tareas, en el que el tiempo total de las mismas se debe minimizar (Sarubbi y Luna, 2007). El problema de mínima latencia es una variante muy estudiada del problema del agente viajero (TSP), en el cual el objetivo es reducir al mínimo la espera promedio que los clientes experimentan antes de ser servidos, mientras que en el problema del agente viajero se refiere a la espera total que ocurre en el sistema (Archer y Blasiak, 2008). A pesar de que es identificado frecuentemente con el problema del agente viajero, el problema de mínima latencia podría resultar más complejo de resolver, ya que en este el objetivo consiste en minimizar el tiempo de espera total de todos los clientes, mientras que en el problema del agente viajero la función objetivo se centra en la minimización 10.
(22) del tiempo de viaje del agente, además de ser un problema que constantemente se identifica como el problema TSP, resulta más complejo el poder dar un algoritmo de aproximación. Aún así, el problema de la mínima latencia frecuentemente es referenciado como el problema del agente viajero (TSP: Traveling Salesman Problem), sin embargo existen algunas diferencias significativas entre estos dos tipos de problemas. La diferencia fundamental se refiere a que pequeños cambios en la estructura de un espacio métrico pueden originar grandes cambios en la estructura del problema de la mínima latencia (Blum, et.al, 2004).. Tabla 2.1. Diferencias entre el Problema de Mínima Latencia y el Problema del Agente Viajero (Archer, Leviny y Williamson, 2004).. Según Archer, Leviny y Williamson, el problema de mínima latencia realiza un enfoque orientado al cliente, donde se realiza una visita a partir de un punto "r" y visita todos los nodos en V de forma que minimiza el tiempo de llegada promedio de todos los sitios de los clientes, lo que equivale a la suma de los tiempos de llegada. La hora de llegada a un nodo de V es lo que se llama latencia (2004).. 11.
(23) 2.3 Los Problemas del Reparador y del Repartidor En el problema del reparador suponemos que se tiene una red con n nodos, en cada uno de estos hay una máquina que necesita ser reparada y sólo hay un reparador. Así también se conoce el tiempo que es requerido por el reparador para viajar entre cada nodo; el objetivo es encontrar un orden de visita para el reparador que minimice el tiempo de espera de todas las máquinas (Rocha, Fernandes y Soares, 2005). De esta manera, el problema del reparador es equivalente al problema de mínima latencia en el cual un agente se encarga de visitar todos los nodos, llamados ciudades, para efectos de una mejor explicación, que aparecen en un mapa con el objetivo de minimizar el tiempo de espera de todos los clientes que se encuentran en las ciudades (Ezzine, Semet y Chabchoub, 2010). El problema del reparador es un problema de ruteo de vehículos centrado en el cliente, en el cual el objetivo es minimizar el tiempo de espera de los clientes, en lugar del tiempo total de trayecto de los vehículos con los que son visitados cada cliente (Salehipour et. Al, 2008). En la literatura se han encontrado algunas aplicaciones de este problema, por ejemplo: distribución, programación de máquinas y en sistemas de telecomunicaciones con respecto al control de poder y recepción de conexiones inalámbricas. El problema del repartidor es otra variante del problema mínima latencia, en el que el objetivo es encontrar un recorrido para un vehículo desde un depósito que visite a todos los clientes de forma que se minimice el tiempo total de espera de los mismos. Existen diversas aplicaciones prácticas para el problema del repartidor, tal como la entrega de pizzas a domicilio; en esta aplicación se agrupan varias órdenes y lo que se pretende es minimizar el tiempo promedio de llegada a los clientes (Fischetti M. et al., 1993). Otra aplicación se refiere al área de redes informáticas, donde los usuarios. 12.
(24) pretenden encontrar información almacenada en algún lugar de las redes (Ausiello G. et al., 1994). Según el problema del repartidor también puede ser visto como un problema de programación de una máquina simple con tiempos de procesamiento dependientes de la secuencia, en el cual el tiempo de flujo de las tareas tiene que ser minimizado (Conway etal., 1967).. 2.4 El problema de mínima latencia en el contexto de secuenciación de tareas La secuenciación de tareas se considera dentro de los problemas de determinar el orden de procesamiento de una serie de tareas para optimizar cierto criterio de desempeño, teniendo en cuenta los recursos disponibles. Consiste en ordenar de la mejor manera un conjunto de tareas para su procesamiento en las máquinas. Cada tarea requiere un tiempo de procesamiento diferente (Martínez, 2007). Una de las principales razones de la relevancia del estudio de la secuenciación de tareas en una máquina es que el ambiente en el que se presenta la problemática es muy sencillo y fácil de entender y puede formar la base para casos especiales de todos los otros ambientes. El resultado que se obtiene de un modelo de secuenciación de tareas en una máquina no sólo permite hacerse una idea de lo que ocurre en un ambiente donde se labora con una sola máquina, también provee las bases para heurísticas que pueden ser aplicadas en ambientes más complejos (Pinedo, 1995). La secuenciación es el proceso de asignar actividades a recursos a través del tiempo. En el caso general, la secuenciación es un proceso de toma de decisiones puesto que se decide cuando una actividad debe de comenzar y que recurso debe ser usado para cada actividad. El problema de secuenciación es un problema basado en restricciones. Una. 13.
(25) variedad de restricciones tales como la duración de la actividad, liberación de la tarea, fechas de entrega, restricciones de precedencia y disponibilidad de recursos pueden afectar directamente a la secuenciación (Türkcan, 2007). Generalmente, en diversas situaciones los programadores de la producción consideran que los tiempos de preparación de las máquinas no dependen del orden en que se procesen las tareas y que pueden ser incluidos en los tiempos de procesamiento, sin embargo, en muchas aplicaciones prácticas, al considerarlos dependientes del orden de las tareas se pueden obtener grandes ahorros. Una aplicación directa del problema de mínima latencia está en secuenciación de tareas en una máquina, cuando el objetivo es minimizar la suma de los tiempos de terminación del procesamiento de las tareas y se consideran tiempos de preparación de la máquina dependientes del orden en que se procesen las tareas.. 2.5 Algoritmos exactos Un algoritmo se define como un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos. En el caso de optimización, un algoritmo exacto es aquel que te garantiza encontrar la solución óptima al problema. Para el problema de mínima latencia así como para sus diferentes variantes o aplicaciones se han desarrollado algunos algoritmos exactos de solución. Para estos problemas se han considerado dos versiones en la literatura, una donde la solución se considera un circuito Hamiltoniano y otra donde la solución se considera un camino Hamiltoniano. Es decir, en la primera se parte del depósito, se visitan todos los vértices y se regresa al depósito, mientras que en la segunda no se regresa al depósito. Desde el punto de vista de la formulación no hay mucha diferencia entre las dos. 14.
(26) versiones, ya que la segunda se puede convertir en la primera si se consideran que los arcos de retorno al depósito tienen costos iguales a cero. Según nuestro punto de vista, para las aplicaciones del problema de mínima latencia a los problemas del repartidor, del reparador y de secuenciación de tareas, tiene más sentido considerar la versión del camino Hamiltoniano, ya que aunque en el reparador y en el repartidor es necesario, por lo general, regresar al depósito, la latencia de éste no se toma en cuenta en el cálculo de la latencia total. En la literatura revisada hemos encontrado algunos algoritmos exactos para estos problemas. El primer procedimiento es reportado por Lucena (1990), quien propone un algoritmo enumerativo basado en programación entera no lineal, en la cual las cotas inferiores para la formulación se obtienen a partir de una relajación lagrangeana. Fischetti, Laporte y Martello (1993). desarrollaron un algoritmo exacto para el. problema del repartidor, en el cual se propone un procedimiento de ramificación y acotamiento para una formulación de programación lineal entera, donde para obtener cotas inferiores se explota la estructura matroidal acumulativa del problema. Además, desarrollaron un algoritmo heurístico de dos fases para obtener cotas superiores. En la primera fase es construido el camino Hamiltoniano utilizando el criterio del vecino más cercano, mientras que en la segunda fase se implementa el procedimiento de búsqueda local con movimientos de intercambios 3-opt. Para definir la formulación entera mixta, los autores proponen las siguientes variables de decisión: n - k + 1 , si el arco (i, j) está en la posición k del recorrido 0, si el arco (/, j) no es usado 1, solo si el arco (i, j) aparece en el recorrido 0, en caso contrario Función Objetivo: 15.
(27) En este modelo la función objetivo se refiere a minimizar la suma de todas las distancias de un recorrido de un nodo de partida hacia todos los nodos o clientes a visitar. Las restricciones 2.2 y 2.3 aseguran que todo cliente es visitado exactamente una vez. Las restricciones 2.5, 2.6 y 2.7 definen la red del problema de flujo. En cuanto a la restricción 2.8, la variable xy sólo puede tomar un valor positivo si j le sigue a la i en una sub-ruta. En particular, la restricción 2.6 asegura que no puede existir algún recorrido que sea separado del nodo origen.. 16.
(28) Van Eijl (1995) presenta una formulación de programación entera mixta para el problema del repartidor y deriva un grupo de desigualdades válidas adicionales. Las cotas inferiores se obtuvieron mediante la relajación lineal. En este trabajo el estudio se enfocó en el problema del repartidor desde un punto de vista poliédrico y se incluyeron ventanas de tiempo, donde cada cliente es visitado en un intervalo especificado de tiempo. Los experimentos computacionales se llevaron a cabo utilizando el software MINTO, que es especial para el método branch-and-bound e incluye. funciones. específicas para la generación de planos cortantes. Otros autores como Maffioli y Sciomachen (1993) propusieron una formulación similar a la de Eijl (1995). En la formulación del problema propuesta por Eijl (1995) cada arco (i,j) tiene asociado un tiempo de trayecto que se define como p¡¡_ Se asume que el tiempo de visita está incluido en el tiempo de trayecto, por lo tanto, la hora de llegada en el nodo i es igual a la hora de salida en el nodo i. El nodo 0 es el depósito y cada recorrido inicia y termina en el nodo 0. También se asume que cada tour inicia en el tiempo 0. Posteriormente, el tiempo de espera del cliente ubicado en el nodo i es igual a la hora de salida en el nodo i. A continuación se presenta el modelo propuesto por Eijl (1995), donde las variables de decisión se representan por:. Como se asumió que cada recorrido iniciaba en el tiempo 0, las variables tqj pueden ser omitidas en el modelo. Esto da lugar a la siguiente formulación, en donde C denota una constante grande. Función Objetivo: 17.
(29) (2.9). La función objetivo consiste en minimizar la suma de los tiempos de salida en cada uno de los nodos. Las restricciones 2.10 y 2.11 aseguran que cada nodo, incluyendo el depósito, sea visitado exactamente una vez. La restricción 2.12 garantiza que si x¡¡ = 1, entonces el tiempo de salida en el nodo j es igual al tiempo de salida en el nodo i más el tiempo de trayecto py. De forma fácil se puede comprobar que estas restricciones también impiden que se formen sub-rutas. Si C es una cota superior en el tiempo de salida en el nodo i, por ejemplo C = n * max{pij),. entonces se puede afirmar que la. v;j restricción 2.13 es válida cuando xy = 1. Además estas restricciones obligan que ty = 0 si xy = 0, es decir, cuando el arco no está incluido en el recorrido. Este modelo es adaptado al problema con ventanas de tiempo, donde cada nodo i tiene que ser visitado dentro de un intervalo de tiempo especificado [e¿, /,•]. El repartidor podría llegar al nodo i antes que e„ pero no podría entregar nada antes de abrir o iniciar 18.
(30) la ventana de tiempo. En este caso, el tiempo de salida en el nodo i es mayor que el tiempo de llegada en el nodo i. Para modelar lo anterior, la igualdad presentada en la restricción 2.12 debe ser reemplazada por:. (2.15). Así también se sustituye la restricción 2.13 por la siguiente, donde se especifica el intervalo para la ventana de tiempo: (2.16) Méndez-Díaz, et al. (2008) consideran que el problema del repartidor consiste en encontrar un camino que recorra un conjunto de clientes, comenzando en un nodo depósito, cuyo objetivo es minimizar la suma de los tiempos de espera de los clientes y proponen una formulación entera mixta utilizando los conceptos del problema de ordenamiento lineal. Estos autores evaluaron la calidad de la cota inferior de la relajación lineal del modelo desarrollado y lo compararon con las cotas inferiores de los modelos de la literatura propuestos por Eijl (1995), Fischetti, Laporte y Martello (1993), Fox, Gavish y Graves (1980) y Picard y Queyranne (1978). Además, realizaron un estudio poliédrico de la formulación y generaron tres grupos de desigualdades válidas para el poliedro asociado, que luego fueron utilizadas para el desarrollo de un algoritmo de planos de corte para resolver el problema del reparador. Finalmente el procedimiento de planos de corte fue incorporado a un algoritmo Branch-and-Cut. El modelo propuesto para el problema del repartidor presenta las siguientes variables de decisión: Variables de Decisión: 1, si el nodo i es visitado antes del j 0, en otro caso. 19.
(31) Las restricciones 2.18 y 2.19 definen el conjunto de restricciones del problema de ordenamiento lineal. La restricción 2.22 señala que sólo hay un arco que parte desde el 20.
(32) vértice 0. Si i es el nodo predecesor de j , entonces la restricción 2.23 asegura que el arco (i,j) se usa para llegar a j . Las desigualdades establecen, según la restricción 2.24, que si el nodo i se encuentra antes que el nodo j , el arco usado para llegar hasta / es también utilizado para llegar a /. Finalmente, si j no se encuentra antes de llegar a k las. ecuaciones 2.20 y 2.21 imponen que ningún arco (i,j) o (j,i) es utilizado para llegar hasta k. Otra formulación reciente expresada como un modelo de programación lineal entera mixta del problema de la mínima latencia es propuesta por Sarubbi y Luna (2008). Los autores desarrollan su modelo a partir de una representación del problema mediante una red multinivel (como se muestra en las siguientes figuras), obteniendo un modelo de la ruta más corta con restricciones adicionales.. Figura 2.2. Red Multinivel (Sarubbi y Luna, 2008). 21.
(33) Las variables de decisión y el modelo se muestran a continuación: Variables de Decisión:. Parámetros: = costo fijo por utilizar el arco (i,j) Función Objetivo:. Las restricción 2.26 demuestra que sólo un nodo puede ocupar la primera posición, mientras que la 2.27 define que sólo un nodo puede ocupar la última posición. La. 22.
(34) restricción 2.28 comprueba que sólo puede salir un arco del nodo que ocupa la primera posición. La restricción 2.29 se refiere a que el número de arcos que entran y salen a cada nodo deben ser iguales. Estos autores desarrollan un procedimiento basado en GRASP para obtener cotas superiores para su modelo y aseguran que pudieron obtener soluciones óptimas para instancias del problema de la mínima latencia hasta con 80 nodos, que es el tamaño de instancia más grande resuelto hasta el momento. Este modelo será modificado para que no considere la latencia del depósito en el cálculo de la latencia total y será utilizado en nuestro trabajo de tesis para obtener las soluciones exactas para poder evaluar el desempeño del procedimiento metaheurístico propuesto. Las formulaciones más recientes que encontramos en la literatura son las propuestas por Ezzine, Semet y Chabchoub (2010). Los autores consideran que el Problema del Reparador consiste en determinar un camino Hamiltoniano que minimize la suma de los tiempos de espera de los clientes y proponen dos formulaciones lineales enteras mixtas para el problema. La primera formulación propuesta es derivada en un modelo de programación entera introducido por Miller, Tucker y Zemlin (1960) y luego reforzado por Desrochers y Laporte. (1991) para el problema del agente viajero asimétrico. La segunda. formulación propuesta está basada en la formulación sugerida por Méndez-Díaz et al. (2008). En los experimentos computacionales se compararon las. formulaciones. propuestas con la formulación de Fischetti et al. (1993) y se muestra la eficiencia de la segunda formulación, la cual resuelve de forma óptima hasta para 29 vértices, además, se comporta mejor en relación a los valores del gap de relajación lineal y los tiempos de cómputo.. 23.
(35) 2.6 Generalidades de los Métodos Heurísticos y Metaheurísticos Un método heurístico es un procedimiento para resolver un problema. de. optimización bien definido mediante una aproximación intuitiva, en la que la estructura del problema se utiliza de forma inteligente para obtener una buena solución (Díaz, A., Glover, F., Ghaziri, H.M., et a l , 1996). Los Métodos heurísticos deben ser procedimientos eficientes para encontrar buenas soluciones aunque no se pueda comprobar que sean óptimas. En estos métodos, la rapidez del proceso es tan importante como la calidad de la solución obtenida. Estos métodos se utilizan cuando el problema a resolver es de una naturaleza tal que no se conoce ningún método exacto para su solución o cuando existe un método exacto para resolver el problema pero su uso es computacionalmente muy costoso e ineficiente. Los métodos heurísticos se clasifican en métodos de descomposición, métodos inductivos, métodos de reducción, métodos constructivos y métodos de búsqueda local. Los procedimientos Metaheurísticos son una clase de métodos aproximados que están diseñados para resolver problemas difíciles de optimización combinatoria, en los que los heurísticos clásicos no son efectivos. Los Metaheurísticos proporcionan un marco general para crear nuevos algoritmos híbridos combinando diferentes conceptos derivados de la inteligencia artificial, la evolución biológica y los mecanismos estadísticos (Osman y Kelly 1995). Las metaheurísticas se sitúan conceptualmente "por encima" de las heurísticas en el sentido que guían el diseño de éstas, pueden estar compuestas por una combinación de algunas heurísticas, por ejemplo una metaheurística puede usar una. heurística. constructiva para generar una solución inicial y luego usar otra heurística de búsqueda para encontrar una mejor solución.. 24.
(36) Actualmente existen diversos métodos metaheurísticos que han sido utilizados por algunos investigadores para resolver ciertos problemas, cuya solución es factible computacionalmente y de buena calidad, es decir, cercana al óptimo. Algunos de los metaheurísticos más utilizados son Búsqueda Tabú, GRASP, Búsqueda Dispersa, Algoritmos Genéticos, Recocido Simulado, entre otros. Para el problema de mínima latencia y sus diferentes variantes y/o aplicaciones encontramos que sólo hay dos resultados reportados en la literatura que utilizan técnicas metaheurísticas para su solución. El primero de los resultados es presentado por Salehipour, Sórensen, Goos y Bráysy (2008), quienes desarrollan un procedimiento metaheurístico híbrido para el problema del reparador. El procedimiento desarrollado utiliza la filosofía de los métodos de multiarranque y está compuesto de dos fases: una fase de construcción miope aleatorizada basada en GRASP (Greedy Randomized Adaptive Search Procedure) y una fase de mejoramiento de la solución basada en VND (Variable Neighborhood Descent). Las dos fases se repiten varias veces y se reporta la mejor solución encontrada. Los autores utilizan una función miope basada en la mejor inserción al final de la permutación en construcción, motivados por el hecho de que mientras más cercano está un nodo al nodo raíz más aporta a la función objetivo del problema. En la fase de mejoramiento de la solución utilizaron cinco estructuras de vecindario: intercambio, intercambio inmediato, 2-opt, or-opt y eliminar-insertar. El vecindario variable en descenso (VND) es una variante del VNS (Variable Neighborhood Search), donde la fase de perturbación es omitida por lo que el VND es completamente determinista.. 25.
(37) Estos autores generaron instancias simétricas a partir de coordenadas en el plano para seis diferentes tamaños de problemas, de 10, 20, 50, 100, 200 y 500 nodos, Para cada tamaño generaron con 20 instancias de datos para el problema. Como este procedimiento es el primer metaheurístico desarrollado para el problema del reparador, no les fue posible comparar resultados con publicaciones anteriores, así que las comparaciones se realizaron utilizando cotas inferiores y superiores. Para las cotas inferiores utilizaron una variante del método de árbol de expansión mínima (MST, Mínimum Spanning Tree), mientras que para determinar las cotas superiores se utilizó el heurístico del vecino más cercano. El segundo metaheurístico desarrollado es presentado por Ulrich, Prins y WolflerCalvo (2009). Ellos estudian un problema de rutas de vehículos capacitado con costos acumulados (CCVRP), que es una generalización del problema del reparador. Los autores consideran una flota homogénea de vehículos para servir a un grupo de clientes y su objetivo es minimizar la suma de los tiempos de llegada de los clientes, sujeto a restricciones de capacidad de los vehículos. Para este problema, desarrollan un algoritmo memético (MA, Memetic Algorithm),. y dos procedimientos para obtener. cotas inferiores y superiores. Los algoritmos meméticos pertenecen a la clase de algoritmos evolutivos que utilizan búsqueda local dentro de una estructura clásica de algoritmos genéticos para intensificar la búsqueda. Ulrich et al. (2010) aplicaron el algoritmo memético y los dos procedimientos para obtener cotas al problema del reparador y los resultados fueron comparados con el único metaheurístico publicado para el problema del reparador Salehipour et al. (2008). Los resultados computacionales demostraron que el algoritmo supera los resultados anteriores de la literatura, aunque no haya sido originalmente diseñado para el problema del reparador.. 26.
(38) En la presente investigación se diseñará un procedimiento híbrido que combinará elementos. de. GRASP,. Búsqueda. Local. Iterativa. (Iterated. Local. Search). y. Reencadenamiento de Trayectorias (Path Relinking). Debido a esto describiremos con mayor detalle estos procedimientos metaheurísticos.. 2.6.1 GRASP GRASP {Greedy Randomized Adaptive Search Procedures). es un método multi-. arranque en donde cada paso consiste en una fase de construcción y otra de mejora. En la fase de construcción se aplica una heurística constructiva para obtener una solución inicial y en la segunda fase dicha solución se mejora mediante un algoritmo de búsqueda local. El término GRASP fue introducido por Feo y Rezende (1995) como una metaheurística de propósito general. Según Kontoravdis y Bard (1995), la idea básica de este metaheurístico es permitir una cantidad controlada de eventos aleatorios para superar el funcionamiento miope de algún heurístico puramente miope. Este método ha sido aplicado a un gran número de problemas de optimización combinatoria. El siguiente esquema muestra el funcionamiento global del algoritmo:. Figura 2.3. Esquema general de GRASP 27.
(39) Fase de Construcción: La fase constructiva de GRASP está basada en funciones voraces, aleatorizadas y adaptativas. Todos los mecanismos de construcción considerados construyen una solución incorporando un elemento a la vez. El procedimiento que sigue el GRASP se describe a continuación: En cada iteración la elección del próximo elemento a ser añadido a la solución parcial está determinada por una función voraz (greedy),. la cual elige el. elemento que da mejor resultado inmediato sin tener en cuenta una perspectiva más amplia. Se dice que se adapta porque en cada iteración se actualizan los beneficios obtenidos al añadir el elemento seleccionado a la solución parcial. Es aleatorizado porque no selecciona al mejor candidato sino que con el objeto de diversificar y no repetir soluciones se construye una lista de los mejores candidatos, de entre los cuales se elige uno al azar. Fase de Mejoramiento: En esta fase se realiza un procedimiento de búsqueda local a partir de la solución construida hasta que no se pueda mejorar más. Un algoritmo de búsqueda local explora repetidamente la vecindad de una solución en busca de una mejor solución. Cuando no se encuentra una solución que mejora la actual, se dice que la solución es localmente óptima (Resende y González, 2003). La búsqueda local juega un papel importante en GRASP ya que sirve para buscar soluciones localmente óptimas en regiones prometedoras del espacio de soluciones (Resende y González, 2003).. 28.
(40) Figura 2.4. Seudo-Código de Búsqueda Local (Resende y González, 2003).. 2.6.2 Búsqueda Local Iterativa (Iterated Local Search) La búsqueda local iterativa consiste en realizar una serie de búsquedas locales partiendo de diferentes puntos del espacio de soluciones. En general, puede ser vista como un procedimiento multi-arranque que comienza con una búsqueda local de una solución inicial y luego se repiten iterativamente tres fases: Aceptación de una solución, Perturbación de la solución y Búsqueda Local de la solución. El método comienza aplicando una búsqueda local a una solución inicial hasta que encuentra un mínimo local. Aquí comienza el proceso iterativo: el criterio de aceptación que decide qué solución será perturbada en la iteración siguiente del algoritmo, la perturbación modifica la solución seleccionada por el criterio de aceptación para sacarla del mínimo local y la búsqueda local, que se aplica a la solución perturbada, tiene la finalidad de encontrar un nuevo mínimo local. Este proceso iterativo se repite hasta que se cumpla algún criterio de parada, que puede ser un número fijo de iteraciones o un número de iteraciones sin mejora. La filosofía de trabajo de la Búsqueda Local Iterativa ha sido utilizada en el pasado con diferentes nombres, pero los primeros en utilizarla en su versión actual fueron Lin y. 29.
(41) Kernigham (1973), quienes la aplicaron en la resolución del problema del agente viajero. El primer paso del algoritmo es la generación de la solución inicial que puede ser generada aleatoriamente o utilizando una heurística constructiva. En el criterio de aceptación se selecciona la solución a ser perturbada y se pueden escoger distintas estrategias, pero las principales son la intensificación y la diversificación. También se puede considerar la opción de utilizar alguna estructura de memoria para evitar el análisis de soluciones consideradas con anterioridad. La de perturbación de la solución tiene la finalidad de expulsar la solución de la vecindad del mínimo local en que está atrapada y así poder explorar otras regiones del espacio de soluciones. El procedimiento de Búsqueda Local Iterativa depende en gran medida del grado de perturbación de la solución. Una perturbación aleatoria puede transformar al procedimiento en un algoritmo de búsqueda aleatoria, mientras que si la perturbación es muy débil puede ser que nos lleve a un punto de partida que converja al mismo mínimo local. Búsqueda Local Iterativa S <— SolucionMcial S* = S While(No se cumpla el criterio de parada) do S'= BusquedaLocal(S) S* =. CriteriodeAceptacion(S*,S'). S = Perturbacion{S) End -of - While Figura 2.5: Pseudo-código de la Búsqueda Local Iterativa. 2.6.3 Reencadenamiento de trayectorias (Path Relinking) El Reencadenamiento de Trayectorias se basa en la generación de trayectorias entre soluciones en el espacio de búsqueda y fue propuesto por Fred Glover dentro del. 30.
(42) contexto de Búsqueda Tabú como una estrategia para integrar los procesos de intensificación y diversificación. El reencadenamiento. de trayectorias genera nuevas soluciones mediante. la. exploración de trayectorias en el espacio de soluciones y opera de la siguiente forma: partiendo de dos soluciones de alta calidad, se toma una como origen y otra como destino y se genera una trayectoria de soluciones factibles entre ambas, generalmente mediante movimientos que incorporen características o atributos de la solución destino en la solución origen. Sea A la solución origen y B la solución destino. El reencadenamiento de trayectorias construye la trayectoria de A a B, eliminando los atributos de A para introducir atributos de B. El objetivo es explorar estas trayectorias de soluciones para encontrar otras soluciones que mejoren a aquellas que originaron la trayectoria. En el contexto de reencadenamiento de trayectorias es más común nombrar a la solución origen como solución inicial y a la solución destino como solución guía. Según Glover (1999), para generar las trayectorias deseadas solamente es necesario seleccionar movimientos que cumplan la siguiente función: partiendo de una solución inicial, los movimientos tienen que progresivamente introducir los atributos de la solución guía (o reducir la distancia entre los atributos de la solución inicial y la solución guía). Los roles de solución inicial y solución guía son intercambiables. Cada solución también puede ser inducida a moverse simultáneamente hacia otras soluciones como una forma de generar nuevas combinaciones.. 31.
(43) CAPÍTULO 3. PROCEDIMIENTO DE SOLUCIÓN. En este capítulo describiremos el procedimiento metaheurístico híbrido desarrollado para la resolución del problema planteado y realizaremos una modificación al modelo propuesto por Sarubbi et al. (2008) para poder obtener soluciones exactas y comparar los resultados obtenidos por el procedimiento metaheurístico propuesto. Es importante hacer notar que tanto en el diseño del procedimiento metaheurístico como en el modelo modificado no se tienen en cuenta los costos de los arcos de retorno al depósito en el cálculo de la latencia total, aunque estos arcos si se utilizan en las restricciones del modelo utilizado.. 3.1 Procedimiento Metaheurístico Híbrido El procedimiento de solución está basada en un procedimiento metaheurístico multi-arranque híbrido, que comienza con un generador de diversificación, luego se aplica un mecanismo de búsqueda local y por último un procedimiento de postoptimización. El procedimiento general se puede resumir de la siguiente forma: >. Fase Constructiva: Ejecutar N veces un procedimiento constructivo y guardar las soluciones obtenidas en el conjunto de soluciones iniciales.. >. Fase de Mejora: Aplicar un procedimiento integrado de búsqueda local a cada solución diferente del conjunto de soluciones iniciales y crear el conjunto élite con las M soluciones mejores. 32.
(44) >. Fase de Post-optimización: Ejecutar el procedimiento de reencadenamiento de trayectoria (Path Relinking) para cada par de soluciones en el conjunto élite y guardar la mejor solución encontrada, así como su valor objetivo. A continuación se describe cada una de las fases, así como los elementos que las. componen.. 3.1.1. Fase Constructiva El objetivo de la fase constructiva es obtener un conjunto de N soluciones iniciales diversas. En esta fase se utiliza un procedimiento constructivo basado en GRASP y se prueban dos funciones voraces diferentes. El procedimiento constructivo general utilizado se resume en la siguiente figura Procedimiento Constructivo: 1. Constlter <— O, Maxlter <— N 2. 3. 4. 5. 6. 7.. While (Constlter < Maxlter) do £ P ( 0 ) < - 0 , Sa <-{l,2,•••,«}, 5* <— GraspConstruction Calcúlate ¿ a i SolPool(Constlter) <- 5 Sol Val(Constlter). Jt <- 0. <-Lat. 8. Constlter <— Constlter + 1 9. End of While 10. Return (SolPool,SolVal) Figura 3.1. Seudo-código para la fase constructiva En. el procedimiento. constructivo,. SP. representa. la. secuencia. parcial. en. construcción y Sa es el conjunto de nodos no secuenciados. La construcción de una solución consiste en la adición de un nodo a la vez en forma iterativa a la secuencia parcial SP hasta que todos los nodos estén incluidos en la secuencia. Cuando decimos que la secuencia parcial tiene k posiciones ocupadas, nos referimos a la posiciones 1 a k. En el punto 4 del seudo-código de la fase constructiva se probaron dos funciones voraces (greedy) diferentes para construir una solución. En el primer. método. 33.
(45) {GraspConstructionI), la. secuencia. en. el nodo seleccionado es colocado en la primera posición libre de construcción. {GraspConstructionI!),. SP,. mientras. que. en. el. segundo. método. el nodo seleccionado es insertado en la posición que menos. incrementa el valor de la latencia total de la secuencia parcial SP. En estos métodos heurísticos c. (>. es el costo asociado con el arco (ij).. En ambos métodos la lista. restringida de candidatos se forma por el criterio de calidad. Notemos que uno de los procedimientos metaheurísticos de la literatura (Salehipour et al., 2008) también utiliza una fase constructiva basada en GRASP. La función voraz utilizada en GraspConstructionI. es la misma que la que es utilizada por estos autores,. pero se diferencian en que ellos construyen la lista restringida de candidatos por un criterio de cardinalidad, mientras que en este trabajo se crea por un criterio de calidad. A continuación se muestran las seudo-códigos para los dos métodos constructivos GraspConstructionI. Figura 3.2. Seudo-código para el método constructivo I 34.
(46) Los puntos 3 al 19 de este pseudo-código se repiten mientras existan nodos sin secuenciar. En el punto 3 se determina el costo entre la última posición ocupada de SP y cada nodo sin secuenciar en Sa y en los puntos 4 y 5 se determinan los valores mínimo y máximo de estos costos. En los puntos del 7 al 12 se construye la lista restringida de candidatos. Se incluyen en la lista todos aquellos nodos que cumplan la condición de calidad del punto 8. En los puntos 13 y 14 se selecciona aleatoriamente un elemento de la lista, se coloca en la primera posición libre de SP en el punto 15 y es eliminado de Sa en 16. En el punto 21 se regresa la solución construida por el procedimiento. GraspConstructionlI. Figura 3.3. Seudo-código para el método constructivo II 35.
(47) La diferencia entre estos dos procedimientos constructivos está en que en el procedimiento II, en los puntos 4 y 5 se determina para cada nodo no secuenciado en Sa, el mejor punto de inserción en SP. En p(i) se guarda la mejor posición de SP para insertar el nodo que está en la posición i de Sa, mientras que en AL, se guarda el valor del incremento en la latencia total de SP si se realizara esa inserción. Prácticamente el resto del procedimiento es similar al procedimiento I. En este segundo método constructivo la medida para determinar el mejor punto de inserción se determina a partir de AL¡., que representa el incremento en la latencia total de la secuencia en construcción SP cuando el nodo / e Sa es insertado en la posición j de SP, y es calculado de la siguiente forma:. 3.1.2 Fase de mejoramiento de las soluciones iniciales En esta fase se utiliza un procedimiento compuesto de dos procedimientos simples de búsqueda local. Estos dos procedimientos son aplicados de forma iterativa a cada solución diferente en un conjunto de soluciones iniciales, hasta que un mínimo local sea encontrado para ambos procedimientos. Este procedimiento compuesto está inspirado en la metaheurística de Búsqueda Local Iterativa, con la modificación de que en lugar de perturbar la solución cuando es atrapada por un mínimo local, se aplica otro procedimiento de búsqueda local con movimientos diferentes para sacarla de ese mínimo local. De la explicación anterior podemos concluir que este procedimiento de. 36.
(48) búsqueda local compuesta puede interpretarse como una Búsqueda Local Iterativa descendiente, ya que la perturbación se hace (si es posible) hacia otro mínimo local de mejor calidad. El pseudo-código para esta búsqueda local compuesta se muestra en la figura 3.4. Procedimiento de Búsqueda Local compuesta: 1. Input: Sol and Lat 2. Repeat 3. (Solí,Latí) - LocalSearc hI(Sol,Lat) 4. (Sol2,Lat2) = LocalSearc 5. Sol <- Sol! 6. Lat <— Latí 7. U n t i l ( ¿ a ñ - Z a í 2 = 0) 8. return (Sol, Lat). hll(Solí,Lat. 1). Figura 3.4. Seudo-código para la Búsqueda Local compuesta Este procedimiento recibe como datos iniciales una solución (Sol) y su valor de objetivo (Lat). y regresa en el punto 8 la mejor solución que encontró y su valor de. objetivo. Los puntos 3 al 6 se repiten mientras se sigan encontrando mínimos locales de menor valor. Una vez que ninguna de las dos búsquedas locales simples sea capaz de encontrar una mejor solución, el procedimiento termina. El primer procedimiento simple de búsqueda local (LocalSearchI). está basado en. intercambios entre dos nodos, mientras que el segundo (LocalSearchlI). está basado en. inserciones hacia el final de la secuencia. A continuación mostramos un pseudo-código común para los dos procedimientos simples de búsqueda local. LocalSearch 1. Input: Sol and Lat 2. Repeat 3. Dif <- 0 4. For i' = l to n-l do 5. BestDelta <- 0 6. / <- i 7. For j = i +1 to n do 8. Calcúlate ALaty 9.. If (BestDelta > M,at ) ¡}. do 37.
(49) 10.. 11. 12. 13. 14.. BestDelta. <-. ALat^. r^j Endoflf EndofFor If (BestDelta. 15.. Sol. 16.. Lat <^Lat. 17.. Di/. <0). do. <— Transform. <-. +. (l,r). BestDelta. BestDelta. 18. Endoflf 19. EndofFor 20.Until(Di/ = 0) 21.Return(5o/,ZaO Figura 3.5. Seudo-código para las Búsquedas Locales simples Los dos procedimientos simples de búsqueda local se pueden representar por el pseudo-código de la figura 3.5. En estos procedimientos los puntos del 3 al 19 se repiten mientras existan movimientos mejoradores. En el procedimiento por intercambios se fija el nodo i y se va recorriendo la secuencia hacia el final, buscando el mejor nodo j para realizar el intercambio. En caso de no encontrar ningún movimiento mejorador, se incrementa el valor de i. Para este primer procedimiento en el punto 6 del pseudocódigo se selecciona el nodo a intercambiar, en el punto 11, el nodo con el que se puede hacer el mejor intercambio y en el punto 15 se realiza el intercambio entre estos dos nodos, en caso de ser un movimiento mejorador (condición en el punto 14). Para el procedimiento basado en inserciones, se fija el nodo i a insertar y se va recorriendo la secuencia hacia el final buscando el mejor punto j para realizar la inserción. Para este segundo procedimiento, en el punto 6 del pseudo-código se selecciona el nodo a insertar, en el punto 11, la posición en que se puede hacer la mejor inserción y en el punto 15 se realiza la inserción del nodo seleccionado en la posición seleccionada, en caso de esto represente un movimiento mejorador (condición en el punto 14). Como resultado de esta fase obtenemos soluciones que representan mínimos locales para los tipos de movimientos utilizados en los procedimientos simples de búsqueda local. Las M mejores soluciones diferentes obtenidas en esta fase son seleccionadas para 38.
(50) formar un conjunto élite. Los conjuntos élites son una estructura de datos utilizada, generalmente en procedimientos poblacionales, para agrupar las soluciones de mayor calidad para luego aplicarles algún método de combinaciones. En nuestro caso, el método de combinación que utilizaremos será el de reencadenamiento de trayectorias que describiremos a continuación.. 3.1.3 Fase de post-optimización La. fase. de. post-optimización. consiste. en. un. procedimiento. simple. de. reencadenamiento de trayectoria (Path Relinking) que es ejecutado por cada par de soluciones que se encuentran en el conjunto élite. El reencadenamiento de trayectoria genera nuevas soluciones construyendo un camino desde una solución inicial hasta una solución guía. En nuestro procedimiento, el reencadenamiento se lleva a cabo dos veces por cada par de soluciones, ya que después de ejecutarse por primera vez la solución inicial y la solución guía son intercambiadas. Este camino es generado por la inserción de uno en uno de los elementos de las soluciones iniciales correspondientes a su posición en la solución guía, iniciando en la primera posición. El proceso de inserción se realiza de forma iterativa mediante intercambios entre nodos vecinos para realizar una exploración más exhaustiva del espacio de soluciones. Este procedimiento recibe como datos la solución inicial, el valor del objetivo de esta solución, la solución guía, la mejor solución encontrada hasta el momento y su valor de objetivo. Para ilustrar el funcionamiento del procedimiento, consideremos el siguiente ejemplo pequeño, donde hemos seleccionado las siguientes soluciones como solución inicial y solución guía.. 39.
(51) Nuestro procedimiento consiste en transformar la solución inicial en la solución guía mediante movimientos sucesivos de inserción. Primero identificamos el nodo que ocupa la primera posición en la solución guía, lo buscamos en la solución inicial y si no está en la primera posición, lo insertamos en esa posición de la solución inicial, luego identificamos el nodo que ocupa la segunda posición de la solución guía, y realizamos el mismo procedimiento para la segunda posición de la solución inicial. Este procedimiento se repite hasta que la solución inicial se transforme en la solución guía. A continuación se ilustra este procedimiento para el ejemplo considerado.. Ahora, para explorar un poco más el espacio de soluciones, en lugar de realizar este procedimiento tan simple, hacemos los movimientos de inserción a través de movimientos de intercambios sucesivos entre nodos vecinos. Siguiendo con el ejemplo, nuestro primer objetivo es insertar el nodo 2 en la primera posición de la solución inicial, es decir, de {0,3,5,2,1,4} pasar a {0,2,3,5,1,4}. Para esto realizamos la siguiente sucesión de intercambios entre nodos vecinos:. El segundo movimiento es insertar el nodo 4 en la posición 2 de la solución inicial transformada:. Así sucesivamente procedemos con los restantes movimientos hasta llegar a una solución que coincida con la solución guía.. 40.
(52) {0,2,4,5,3^1} —{0,2,4,5,1,3} Cada vez que se realiza un movimiento de intercambio se evalúa el valor de la latencia total, en caso de encontrarse un valor que mejore el valor de la mejor latencia encontrada hasta el momento, guardamos ese valor y la solución asociada y este nuevo valor es el que se toma de referencia para posteriores comparaciones del proceso de reencadenamiento de trayectorias. Además, cada vez que se encuentra una mejor solución, se toma como solución guía y se aplica el procedimiento de reencadenamiento de trayectorias con todas las soluciones del conjunto élite como soluciones iniciales.. 3.1.4 Resumen del procedimiento general de solución El funcionamiento del procedimiento metaheurístico híbrido puede ser resumido en el siguiente algoritmo: Procedimiento General Paso 1: Lee un archivo de datos que contiene el número de clientes (n), los tiempos de servicio de cada cliente (Sj), los tiempos de trayecto del depósito a cada cliente (t ) y los tiempos de trayecto entre clientes OJ. (t ). y. Paso 2: Calcula los elementos de la matriz de costos utilizando la expresión. Paso 3: Aplica un procedimiento constructivo para generar N soluciones iniciales. Agrupa las soluciones generadas en un conjunto de soluciones iniciales. (El valor de A^es definido por el usuario). Paso 4: Aplica el procedimiento de Búsqueda Local Compuesta a cada solución diferente del conjunto de soluciones iniciales.. 41.
(53) Paso 5: Selecciona las M mejores soluciones diferentes obtenidas en el paso 4 y las agrupa en un conjunto élite. (El valor de M es definido por el usuario). Paso 6: Aplica el procedimiento de reencadenamiento de trayectoria a cada par de soluciones del conjunto élite. Paso 7: Regresa la solución con menor valor de objetivo encontrada.. 3.2 Modificación de la Formulación Lineal Entera Para calcular las soluciones óptimas a las instancias de datos y así poder evaluar los resultados de la metaheurística propuesta se utilizará la formulación lineal entera desarrollada por Sarubbi et al. (2008). Esta formulación es aplicable a instancias de datos con matrices de costo tanto simétricas como asimétricas, pero consideran en el cálculo de la latencia total la latencia del nodo raíz. En las variaciones y/o aplicaciones del problema de mínima latencia que tratamos en la presente investigación, la latencia del nodo raíz (depósito o estado inicial de la máquina) no se tiene en cuenta en el cálculo de la latencia total. Por lo que para poder usar esta formulación es necesario hacerle algunas modificaciones. Para poder comprender la formulación modificada, representemos la red del problema mediante una red multi-nivel, donde se realizan n copias del los nodos asociados a los clientes y una copia al final del nodo raíz. El problema consiste en determinar un camino del nodo 0 a un nodo del nivel n de forma tal que en todos los niveles los nodos visitados sean distintos, además, a los arcos entre los niveles k y k+l se le da una ponderación de (n-k) para k - 0,1,-•• ,n - 1 . Note que aunque los arcos entre los niveles n y n+l no aparecen en la función objetivo, si se utilizan en las restricciones.. 42.
Documento similar
"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería
Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en
Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied
Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa
The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,
o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la
Por otro lado, impresionaba a los observadores la magnitud de la transferencia de fondos de estos países a los acreedores (Cuadro 7), con el consiguiente impacto negativo sobre
b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación