• No se han encontrado resultados

Optimización de Corte de Material en Dos Dimensiones Mediante Hiperheurísticas Construidas con un Algoritmo Genético

N/A
N/A
Protected

Academic year: 2020

Share "Optimización de Corte de Material en Dos Dimensiones Mediante Hiperheurísticas Construidas con un Algoritmo Genético"

Copied!
100
0
0

Texto completo

(1)

(2) © Armando Moran Saavedra, 2004.

(3) Optimización de Corte de Material en Dos Dimensiones mediante Hiperheurísticas construidas con un Algoritmo Genético.. Por Ing. Armando Moran Saavedra. TESIS. Presentada a la División de Electrónica, Computación, Información y Comunicaciones Este trabajo es requisito parcial para obtener el grado académico de Maestro en Ciencias en Sistemas Inteligentes. Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey Monterrey. N.L. Diciembre de 2004.

(4) Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey División de Electrónica, Computación, Información y Comunicaciones Programa de Graduados. Los miembros del comité de tesis recomendamos que la presente tesis de Armando Moran Saavedra sea aceptada como requisito parcial para obtener el grado académico de Maestro en Ciencias, especialidad en: Sistemas Inteligentes. Comité de tesis:. Dr.HoracioMartínez Sinodal. Director del Programa de Graduados Diciembre de 2004.

(5) Optimización de Corte de Material en Dos Dimensiones mediante Hiperheurísticas construidas con un Algoritmo Genético.. TESIS. Maestría en Ciencias en Sistemas Inteligentes. Instituto Tecnológico y de Estudios Superiores de Monterrey. Por. Ing. Armando Moran Saavedra Diciembre 2004.

(6) A mi madre, Silvia Saavedra Bravo, por su amor y cariño inmenso, motivación y confianza que han sido el impulso a lo largo de mi vida.. A mi padre, Armando Moran Roldan, por su dedicación, apoyo y amor infinito que me ha brindado incondicionalmente..

(7) Reconocimientos. Deseo externar mi más sincero agradecimiento a las siguientes personas. Al Dr. Hugo Terashima Marín por su apoyo incondicional durante el curso de la maestría, ya que sin su ayuda y asesoría la culminación de la misma no hubiera sido posible. Al Dr. Manuel Valenzuela Rendón, por sus valiosas críticas y sugerencias como sinodal que ayudaron a mejorar la calidad de esta tesis. Al Dr. Horacio Martínez, por sus comentarios y contribuciones como sinodal que sirvieron como orientación en el desarrollo de esta investigación. A Mamá, Papá, Mamá Vocha, Papá Guayo y Papá Armando que gracias a su amor, esfuerzo inmensurable y confianza plena he logrado llegar hasta este peldaño de mi vida. A mis amigos y compañeros de estudio Gaby, Edgardo, Samer, Alex, Neto, Mario, Daniel, Nelo y Frontini que en todo momento me dieron aliento y estuvieron conmigo incondicionalmente en las buenas y en la malas. A mis amigos y hermanos Quique y Eloy quienes con su amistad, consejo y apoyo moral me han ayudado a guiarme en la vida. A Euri, Marisol, Victor, Pepe, José Luis, Paul y todos mis amigos que aun estando lejos siempre estuvieron para escucharme y pude contar con ellos. A todos mis profesores por su dedicación y enseñanzas que me brindaron para la realización de mi maestría. A todas las demás personas que de cualquier manera contribuyeron a hacer posible la elaboración de este proyecto de tesis.. ARMANDO MORAN SAAVEDRA Instituto Tecnológico y de Estudios Superiores de Monterrey Diciembre 2004. VII.

(8) Optimización de Corte de Material en Dos Dimensiones mediante Hiperheurísticas construidas con un Algoritmo Genético.. Armando Moran Saavedra, M.C. Instituto Tecnológico y de Estudios Superiores de Monterrey, 2004. Asesor de la tesis: Dr. Hugo Terashima Marín. En la presente tesis se plantea explorar y aprovechar un enfoque reciente de búsqueda llamado Hiperheurística para resolver Problemas de Optimización de Corte de Material en Dos Dimensiones. Las hiperheurísticas son una combinación de heurísticas que en conjunto son capaces de encontrar mejores resultados que cada heurística simple. Actualmente varios de los enfoques para atacar este tipo de problemas de Optimización utilizan Algoritmos Genéticos los cuales se conforman de una codificación directa del problema en el cromosoma, sin embargo, a pesar de que los resultados obtenidos mediante estas técnicas no son ineficientes, no han gozado del suficiente éxito ya que requieren un alto grado de conocimiento específico del dominio y dicha representación genera que el espacio de búsqueda y el tiempo requerido para ejecutarlos crezca considerablemente conforme la entrada de los problemas crece. Una posible respuesta a estos inconvenientes es la codificación indirecta del problema, es decir, que los individuos no representen una solución al problema sino un proceso de solución. El presente trabajo propone utilizar una hiperheurística para tal fin de modo que se utilice un algoritmo genético para la construcción de una hiperheurística que solucione el problema. Existen métodos similares que ya han tenido éxito resolviendo otros problemas de Optimización como la Asignación de Horarios para Exámenes, Problemas de Acomodo de Cajas en Depósitos, entre otros. Tales resultados son un aliciente para la implantación de este nuevo enfoque que intenta eludir los inconvenientes que presenta la codificación directa y con esto poder evaluar su eficiencia para resolver una clase de problemas de tipo NP-completos que cuenta con múltiples aplicaciones industriales..

(9) Los resultados obtenidos en esta investigación han sido encontrados satisfactorios. La experimentación llevada acabo ha demostrado que este enfoque para atacar problemas de corte de material en dos dimensiones es eficiente y en promedio sobrepasa el rendimiento de varios métodos utilizados anteriormente y el de heurísticas simples. De lo anterior, se concluye la prueba de la hipótesis planteada y se refuerza la idea de utilizar este reciente enfoque para atacar problemas de optimización de tipo NP-completos.. IX.

(10) X. Índice general. Reconocimientos. VII. Resumen. VIII. índice de cuadros. XIII. índice de. figuras. Capítulo 1. Introducción 1.1. Definición del Problema 1.1.1. Motivación 1.2. Objetivos 1.2.1. Alcances 1.3. Hipótesis 1.3.1. Justificación 1.3.2. Preguntas de Investigación 1.4. Contribución 1.5. Organización de la Tesis Capítulo 2. Antecedentes 2.1. Problema de Optimización de Corte de Material en Dos Dimensiones . 2.1.1. Clasificación de los Problemas de Corte 2.1.2. Dificultad NP 2.1.3. Soluciones 2.2. Algoritmos Genéticos 2.2.1. Introducción 2.2.2. Tipos de Algoritmos Genéticos 2.2.3. Representación 2.2.4. Selección 2.3. Algoritmos de Búsqueda con Heurísticas 2.3.1. Heurísticas para Corte de Material en Dos Dimensiones con Figuras Rectangulares X. xv 1 2 4 5 6 6 6 6 7 7 9 9 10 11 11 12 12 16 16 18 19 20.

(11) 2.4. Hiperheurísticas 2.5. Resumen. 27 29. Capítulo 3. Modelo de Solución 3.1. Introducción 3.2. Problemas 3.3. Hiperheurísticas 3.4. Heurísticas 3.5. Algoritmo Genético 3.5.1. Representación 3.5.2. Función Objetivo 3.6. Resumen. 30 30 31 32 32 34 34 39 40. Capítulo 4. Experimentos y Análisis de Resultados 4.1. Resultado Óptimo y Límite Inferior 4.2. Descripción de los Problemas 4.2.1. Problemas Cgcut 4.2.2. Problemas Gcut 4.2.3. Problemas Ngcut 4.2.4. Problemas G y NG 4.3. Parámetros 4.3.1. Tamaño de la Población y Número de Ciclos 4.3.2. Probabilidad de Cruce y Mutación 4.3.3. Tipo de Cruce y Mutación 4.3.4. Número de Heurísticas 4.4. Análisis de Resultados 4.4.1. Problemas Cgcut 4.4.2. Problemas Gcut 4.4.3. Problemas Ngcut 4.4.4. Problemas G y NG 4.4.5. Análisis General 4.5. Resumen. 41 41 43 45 46 47 48 51 51 52 52 54 55 56 57 58 60 61 63. Capítulo 5. Conclusiones 5.1. Conclusiones y Contribuciones 5.2. Trabajo Futuro. 64 64 66. Apéndice A. Definición de los problemas obtenidos de la literatura pertenecientes a los conjuntos Cgcut, Gcut y NgcutG 67. XI.

(12) Apéndice B. Definición de los problemas pertenecientes a los conjuntos G y NG 75 Bibliografía. 82. Vita. 85. XII.

(13) Índice de cuadros. 1.1. Características de los problemas de corte y empacado 2.1. Esquema de cruce de un punto en cromosomas de números enteros de longitud 7 con punto de cruce 3 2.2. Esquema de mutación simple en un cromosoma binario de longitud 7 con mutación en el quinto gen 2.3. Esquema de cruce de dos punto en cromosomas de números enteros de longitud 7 con punto de cruce en 3 y 6 4.1. Propiedades de las piezas de los problemas Cgcut 4.2. Propiedades generales de los problemas Cgcut 4.3. Propiedades de las piezas de los problemas Gcut 4.4. Propiedades generales de los problemas Gcut 4.5. Propiedades de las piezas de los problemas Ngcut 4.6. Propiedades generales de los problemas Ngcut 4.7. Propiedades de las piezas de los problemas G y NG 4.8. Propiedades generales de los problemas G y NG 4.9. Parámetros utilizados en el modelo de solución 4.10. Resultados promedio de problemas evaluados con diferentes números de individuos y ciclos 4.11. Resultados promedio de problemas evaluados con distintas configuraciones de probabilidades de cruce y mutación 4.12. Resultados promedio de problemas evaluados con distintos tipos de cruce. 4.13. Resultados promedio de problemas evaluados con distintos números de heurísticas 4.14. Resultados para el conjunto de problemas Cgcut 4.15. Resultados para el conjunto de problemas Gcut 4.16. Resultados para el conjunto de problemas Ngcut 4.17. Resultados para los conjuntos de problemas G y NG 4.18. Utilización y tiempo promedio requerido por Hyp-AG. XIII. 3 15 15 18 45 45 46 46 47 47 49 50 51 52 53 53 54 56 57 59 60 62.

(14) A.l. Instancias Cgcut A.2. Instancias Gcut A.3. Instancias Gcut A.4. Instancias Gcut A.5. Instancias Gcut A.6. Instancias Ngcut A.7. Instancias Ngcut A.8. Instancias Ngcut A.9. Instancias Ngcut B.l. B.2. B.3. B.4. B.5. B.6.. Instancias Instancias Instancias Instancias Instancias Instancias. de problemas de corte en dos dimensiones pertenecientes a 68 de problemas de corte en dos dimensiones pertenecientes a 69 de problemas de corte en dos dimensiones pertenecientes a 70 de problemas de corte en dos dimensiones pertenecientes a 71 de problemas de corte en dos dimensiones pertenecientes a 72 de problemas de corte en dos dimensiones pertenecientes a 73 de problemas de corte en dos dimensiones pertenecientes a 73 de problemas de corte en dos dimensiones pertenecientes a 74 de problemas de corte en dos dimensiones pertenecientes a 74 de de de de de de. problemas problemas problemas problemas problemas problemas. de de de de de de. corte en corte en corte en corte en corte en corte en. XIV. dos dos dos dos dos dos. dimensiones guillotinables. . dimensiones guillotinables. . dimensiones guillotinables. . dimensiones no guillotinables. dimensiones no guillotinables. dimensiones no guillotinables.. . . . . . .. 76 77 78 79 80 81.

(15) índice de figuras. 1.1. Esquema general del problema de corte de material en dos dimensiones. 2.1. 2.2. 2.3. 2.4. 2.5.. Esquema de un ejemplo de selección por torneo de tamaño dos Representación gráfica de la heurística BL-Algorithm Representación gráfica de la heurística BLLT-Algorithm Representación gráfica de la heurística BLF-Algorithm Representación gráfica de la heurística BLD-Algorithm. 4 19 23 24 25 26. 3.1. Modelo básico de solución 3.2. Representación del cromosoma 3.3. Gráfica de los valores posibles para una función de evaluación. 30 36 40. 4.1. 4.2. 4.3. 4.4. 4.5. 4.6.. 48 49 56 58 59 61. Esquema del generador de problemas guillotinables Esquema del generador de problemas no guillotinables Gráfica de mejor encontrado para el problema Cgcutl Gráfica de mejor encontrado para el problema Gcut2 Gráfica de mejor encontrado para el problema Ngcutl Gráfica de mejor encontrado para el problema NG1. XV.

(16) Capítulo 1 Introducción. Los Algoritmos Genéticos (AGs) tienen la capacidad de encontrar soluciones en espacios de búsqueda muy grandes y con formas complejas. Pueden actuar en ambientes donde no se tiene un conocimiento profundo ya que son guiados mediante funciones de evaluación las cuales sólo necesitan poder diferenciar entre una mejor solución y otra. Tratando de sacar provecho de estas cualidades los algoritmos genéticos se han utilizado ampliamente para enfrentar problemas de optimización de dificultad no polinomial los cuales presentan dichas características. Los resultados obtenidos en general son buenos, sin embargo, no han sido bien aceptados en usos prácticos debido a que conforme el problema incrementa de tamaño, el espacio de búsqueda y por tanto el tiempo de respuesta se tornan bastante altos. Lo anterior se debe principalmente a que utilizan una representación directa del problema por lo cual la longitud del cromosoma crece a la misma o mayor razón que la instancia del problema. Asimismo este enfoque tiene problemas para encontrar soluciones que sigan un patrón difícil de captar por la representación usada. Aún más, dicha representación es normalmente altamente específica del dominio lo cual limita su uso a un problema en específico o peor a sólo un conjunto de instancias similares [32]. Estas desventajas conllevan a que los usuarios comerciales estén renuentes a utilizar los AGs dentro de sus negocios y prefieren utilizar algoritmos de búsqueda con heurísticas que pese a que sus soluciones son de menor calidad, éstos son más simples, rápidos y fáciles de entender [31]. Además las heurísticas ofrecen un máximo de error conocido y devuelven soluciones razonablemente buenas y prácticas razón por la cual han tenido muy buena aceptación y las ha hecho confiables a la hora de tomar la decisión de que método utilizar. Actualmente ha surgido un nuevo enfoque que pretende aprovechar las ventajas de los AGs y minimizar sus inconvenientes mediante la representación indirecta del problema, así como utilizar la versatilidad y simplicidad de las heurística. Una extensa investigación llevada acabo por miembros del grupo de Computación Evolutiva del De1.

(17) partamento de Inteligencia Artificial de la Universidad de Edimburgo [33] demostró que la representación o codificación directa del problema ha sido encontrada restrictiva. La representación indirecta consiste en buscar una codificación en la cual los individuos del AG representen no la solución directa del problema sino una estrategia para resolverlo. Dicha propuesta ya ha sido experimentada anteriormente: Terashima-Marín et al. [33] utilizaron esta idea para resolver el Problema de Asignación de Horarios para Exámenes en la cual utilizó un AG para evolucionar combinaciones de estrategias de satisfacción de restricciones (PSRs) para encontrar una solución; Ross et al. [32] utilizaron una propuesta similar para resolver Problemas de Acomodo de Cajas en Depósitos pero utilizando el concepto de hiperheurísticas. Ambos trabajos reportan el éxito obtenido utilizando este nuevo enfoque. Las Hiper heurísticas son métodos de búsqueda formadas por un conjunto de heurísticas sencillas mezcladas entre sí. Dependiendo de las características de cada heurística y de la región de la solución explorada las hiperheurísticas dictan cuál será utilizada en determinado momento [10]. Teniendo influencia de estas nuevas ideas se propone resolver problemas de optimización de corte de materiales en dos dimensiones mediante un AG con una representación indirecta en la cual cada individuo forme una hiperheurística en vez de una codificación directa de la solución del problema. Los Problemas de Optimización de Corte de Materiales son problemas de dificultad no polinomial [14] los cuales son importantes por su frecuencia en la industria de producción masiva. Éstos consisten básicamente en cómo cortar piezas más pequeñas de piezas más grandes de forma tal que el desperdicio sea el mínimo. Es observable que muchas diferentes propiedades y restricciones pueden darse en distintos ambientes con lo cual la dificultad de los problemas aumenta. El objetivo es investigar sobre el efecto y rendimiento que tienen estas nuevas ideas aplicadas a un problema no trivial y de dificultad NP-Completo como lo son los problemas de optimización de corte de material.. 1.1.. Definición del Problema. Los problemas de optimización se originan en un vasto número de situaciones con objetivos y restricciones diferentes. El problema de corte de material es un problema de optimización que se da principalmente en la industria de producción masiva en donde 2.

(18) Cuadro 1.1: Características de los problemas de corte y empacado. Característica Dimensionalidad. Tipo de asignación Ordenamiento de objetos grandes Ordenamiento de objetos pequeños. Símbolo 1 2 3 N B V 0. I. D F M R C. Descripción Unidimensional Bidimensional Tridimensional N-dimensional con A" > 3 Todos los objetos y una selección de piezas Una selección de objetos y todas las piezas Un objeto Figuras idénticas Diferentes figuras Pocas piezas (de diferentes figuras) Muchas piezas de muchas figuras diferentes Muchas piezas de pocas figuras Figuras congruentes. se requiere cortar materia prima [25]. Básicamente el problema consiste en encontrar el mejor acomodo de piezas pequeñas sobre piezas grandes para ser cortadas tratando de maximizar la utilización del material y evitar el desperdicio. Esto es particularmente atractivo para las empresas de producción masiva donde pequeñas mejoras pueden causar grandes ahorros de material y reducir el costo de producción o en industrias donde la materia prima es un recurso muy costoso y cualquier optimización representa un gran ahorro. Pertenece a la clase de problemas de complejidad no polinomial o NP-Completo [14] lo que significa que aún no se han desarrollado algoritmos cuyos tiempos de ejecución estén acotados por una función polinomial. No obstante, existen algoritmos acotados por una función polinomial pero sólo para validar las soluciones obtenidas. Los problemas de corte de material pueden ser considerados problemas de empacado o viceversa por la enorme similitud de sus propiedades entre ambos, así que su importancia no se limita a aquellos problemas de corte sino que además con mínimas o nulas modificaciones a las técnicas de solución éstas pueden ser utilizadas para resolver cualquier de los dos tipos de problemas. Existen varios tipos de problemas de corte de material los cuales se pueden clasificar por su dimensión, tipo de asignación, variedad de objetos grandes y variedad de artículos pequeños [11]. En el cuadro 1.1 se muestran las características de estos problemas según la clasificación mencionada.. 3.

(19) La tesis se enfoca en resolver problemas de optimización de corte de material en dos dimensiones los cuales consisten en hacer cortes en un plano bidimensional para obtener piezas más pequeñas a partir de otras más grandes. Esto supone un problema combinatorio donde cada combinación es un acomodo diferente de las piezas. La cantidad de combinaciones posibles es demasiado grande como para tratar de resolver el problema mediante la revisión de todas las combinaciones posibles. Dentro de la clase de estos problemas en dos dimensiones aún existen muchas variantes y por lo tanto subclases. Las propiedades específicas del tipo de problemas seleccionados para llevar acabo la presente investigación son las siguientes: • Un conjunto de piezas que se desean obtener las cuales se pueden repetir. • Todas las piezas deben ser cortadas de los objetos. • Un conjunto de objetos de igual tamaño, suficientes para cortar de ellos todas la piezas. • Todas las piezas y objetos son de forma rectangular. • Las piezas pueden ser rotadas a 90 grados. Este subtipo de problema se presenta principalmente en la industria maderera y de laminas de metal. La figura 1.1 muestra un esquema general de este problema.. Piezas. Objetos. Figura 1.1: Esquema general del problema de corte de material en dos dimensiones. En resumen las propiedades y su dificultad del problema de corte de material en dos dimensiones lo hacen una buena elección para probar el rendimiento del nuevo método de optimización sugerido en esta investigación.. 1.1.1.. Motivación. Comúnmente se le ha hecho frente a estos problemas que son de dificultad no polinomial mediante heurísticas ya que para instancias grandes se vuelven intratables por 4.

(20) métodos de investigación de operaciones. Por ejemplo, una heurística de selección puede ser cortar primero todas las piezas más grandes hasta llegar con las más pequeñas. Si bien normalmente dan resultados adecuados, existen casos para los que una heurística en específico no pueden dar una solución cercana a la óptima. Varios estudios se han realizado en torno a eludir estos inconvenientes y se ha demostrado que en varias ocasiones una combinación de heurísticas ha dado mejores resultados que el sólo emplear una única. A este proceso se le ha llamado Hiperheurísticas [31, 32]. La problemática principal en las hiperheurísticas es la de encontrar la combinación de heurísticas adecuadas, así como encontrar cuando debe suceder el cambio entre cada heurística empleada. La utilización de Algoritmos Genéticos en la industria no ha sido muy común debido a algunos inconvenientes de éstos, que no obstante su poder de búsqueda en espacios grandes y desconocidos, han hecho que sean poco prácticos. Sin embargo, las características de un Algoritmo Genético podrían ser explotadas para obtener la solución al problema de cómo obtener y combinar las heurísticas adecuadas para la construcción de una hiperheurística. De esta manera un AG podría tener un uso más práctico y eficaz ya que de alguna forma estaría encapsulando el conocimiento mediante la representación indirecta del problema [31]. Estas ideas ya han sido exploradas anteriormente en problemas de optimización logrando resultados muy favorables [9, 33]. Así la motivación principal de este trabajo radica en indagar en las consecuencias y resultados del desarrollo del enfoque antes discutido para resolver Problemas de Corte de Material en Dos Dimensiones.. 1.2.. Objetivos. El objetivo general es resolver Problemas de Optimización de Corte de Materiales en Dos Dimensiones con formas rectangulares, mediante el uso de hiperheurísticas creadas mediante un AG que puedan superar las soluciones existentes que utilizan una simple heurística o AGs con codificación directa. Los objetivos particulares a cumplir en este trabajo de investigación son los siguientes: • Encontrar una forma adecuada de representar las hiperheurísticas, es decir, las combinaciones de heurísticas dentro de los individuos de un AG adecuado para esta aplicación. • Definir y acotar las heurísticas que se utilizarán dentro de las opciones para combinar. 5.

(21) • Probar los resultados obtenidos contra los resultados obtenidos por otros métodos ya implementados.. 1.2.1.. Alcances. • Crear un AG que represente hiperheurísticas para resolver Problemas de Corte de Material en Dos Dimensiones. • Evaluar y comparar el desempeño de este enfoque con otras técnicas de solución utilizadas para atacar el mismo tipo de problemas.. 1.3.. Hipótesis. La utilización de un Algoritmo Genético con una codificación que represente hiperheurísticas, puede encontrar una relación entre las propiedades de las distintas heurísticas y las diferentes etapas de solución dentro de un Problema de Corte de Material, de manera que permita crear combinaciones de Algoritmos de Búsqueda con Heurísticas que encuentren un mejor resultado que los habidos hasta ahora por medio de heurísticas simples y otros métodos utilizados.. 1.3.1.. Justificación. Se ha probado en varios casos que las combinaciones de heurísticas son mejores que las heurísticas solas o simples y que los Algoritmos Genéticos son buenos para realizar búsquedas en espacios desconocidos. El análisis del enfoque propuesto y la consideración de todos estos conocimientos refuerzan la idea de que la hipótesis es correcta y por tanto motivan a la realización de la presente tesis.. 1.3.2.. Preguntas de Investigación. 1. ¿Es un algoritmo genético apropiado para construir hiperheurísticas? 2. ¿Son las hiperheurísticas una buena forma de codificación indirecta para evadir los problemas relacionados con los Algoritmos Genéticos? 3. ¿Es factible para un Algoritmo Genético encontrar las relaciones entre las propiedades de cierta heurística y las propiedades de un estado en la solución de un problema? 4. ¿Qué tan práctico es el nuevo enfoque, es decir, es factible implementarlo? 5. ¿Podría ser útil para crear un software de optimización? 6.

(22) 1.4.. Contribución. El aporte del presente trabajo consiste en investigar el desempeño de hiperheurísticas aplicadas a problemas de corte de material en dos dimensiones y concluir acerca de la calidad de sus soluciones. Las hiperheurísticas son una técnica reciente para resolver problemas de optimización que ya han tenido éxito resolviendo otros problemas de optimización. En función de las preguntas de investigación se pretende que se aporte más información acerca de: • La eficacia de un algoritmo genético para crear hiperheurísticas. • Saber el desempeño obtenido mediante el enfoque seleccionado ante otros diferentes. • Averiguar más sobre el éxito de las hiperheurísticas para atacar problemas de optimización al presentarle un nuevo reto. • Investigar sobre la relación que debe de haber entre las heurísticas, la representación de éstas y el mismo Algoritmo Genético específicamente para el problema en cuestión. • Probar distintas funciones objetivos específicas del problema.. 1.5.. Organización de la Tesis. A continuación se presenta una guía general del contenido de la presente tesis. En el capítulo 2 se muestran los antecedentes relacionados con los Problemas de Optimización de Corte de Material, Algoritmos Genéticos. Heurísticas e Hiperheurísticas con la finalidad de dar al lector las nociones básicas de los temas en cuestión. En el capítulo 3 se describe el modelo de solución propuesto en donde se ahonda en temas específicos de la propuesta como lo son la representación de las hiperheurísticas, la función objetivo empleada, entre otros. En el capítulo 4 se da una descripción de los experimentos llevados acabo y los resultados obtenidos, así como su análisis.. 7.

(23) Por último en el capítulo 5 se presenta una conclusión del trabajo realizado y sus resultados. Ademas se mencionan las pautas a seguir en trabajos futuros.. 8.

(24) Capítulo 2 Antecedentes. En este capítulo se dará al lector una descripción general de los temas relacionados con el presente trabajo. Dichos temas abarcan Problemas de Optimización de Corte de Material en Dos Dimensiones, Algoritmos Genéticos, Heurísticas e Hiperheurísticas los cuales se detallan en las siguientes secciones.. 2.1.. Problema de Optimización de Corte de Material en Dos Dimensiones. Los Problemas de Optimización de Corte de Material consisten esencialmente en encontrar un buen arreglo de las múltiples piezas a cortar dentro de regiones en objetos de mayor tamaño sin que exista traslape entre ellas [21]. Principalmente este tipo de problema es importante en la industria de producción masiva en donde el ahorro de desperdicio tiene una gran repercusión en los costos de producción y gastos de materia prima. Esto se debe a que la cantidad de piezas que se procesan son muchas y cualquier desperdicio aumenta ampliamente [25]. También suelen ser importantes en industrias especializadas donde se necesita hacer corte en materias primas las cuales por sus propiedades representan un recurso muy costoso de manera que cualquier Optimización puede representar un gran ahorro. Normalmente la disposición de las piezas es creada por recursos humanos, sin embargo, esto es costoso y no siempre los resultados son buenos, por lo que la automatización de estos procesos resulta algo no trivial para este tipo de industrias. Las principales industrias en donde se puede observar este problema son en las industrias del: papel, acero, vidrio, madera, plástico y textiles. Sin embargo, estos problemas no sólo se limitan al sector manufacturero, por su dualidad con los problemas de empacado también encuentran gran importancia en la industria del transporte e inclusive en sectores no industriales como el sector financiero y en el área de investigación de operaciones en formas más abstractas. 9.

(25) 2.1.1.. Clasificación de los Problemas de Corte. Los Problemas de Corte de Material son muy diversos y aparecen en muchas distintas áreas de aplicación. No obstante, muchos de ellos mantienen la misma estructura básica. Impulsado por lo anterior, Dyckhoff en 1990 estudió las características y propiedades principales y propuso un sistema de clasificación [11]. Este sistema de clasificación divide en dos grandes grupos a todas las instancias de estos problemas. El primer grupo concierne a todos aquellos problemas de corte y empacado1 que involucran hasta tres dimensiones espaciales euclidianas, por ejemplo, carga de vehículos, corte de material, etc. El segundo grupo se compone de problemas más abstractos en donde se incluyen otras dimensiones como el peso, tiempo o características financieras, por ejemplo, asignación de memoria, asignación de presupuestos, cambio de divisas, balance de línea, etc. Las cuatro características más importantes que está clasificación propone para categorizar a los problemas son el orden de los objetos, el orden de las piezas, el tipo de asignación y la dimensionalidad. El orden de los objetos y el orden de las piezas se refiere a la forma, cantidad y otras propiedades de cada uno de ellos. El tipo de asignación trata sobre si todos los objetos y piezas o sólo una selección de estos deberá ser cortada. Esta característica además marca la pauta entre: enfocarse en las dimensiones correctas de la materia prima, o en el corte de las piezas pequeñas sobre materia prima ya definida: ambos casos con la finalidad de minimizar el desperdicio. Los Problemas de Optimización de Corte se pueden clasificar por las dimensiones que les afectan en: una, dos, tres o más dimensiones las cuales describen la geometría de los patrones, es decir, su dimensionalidad2. Además se pueden subdividir en corte de piezas regulares o piezas irregulares. El corte de piezas regulares se refiere a que la materia prima y las piezas tienen formas de figuras regulares como rectángulos, triángulos, círculos, etc. Mientras que en el corte de piezas irregulares las formas son libres. No obstante, en la mayoría de los problemas de 1. Nótese la fuerte relación entre los problemas de corte y los de empacado gracias a la dualidad de materia y espacio. De esta forma los problemas de corte pueden ser vistos como problemas donde el objetivo es empacar el espacio ocupado por las piezas dentro de los contenedores y viceversa los problemas de empacado pueden ser vistos como problemas donde el objetivo es cortar el espacio de los contenedores para asignarlo a los objetos que se desean empacar. 2 Más de tres dimensiones se obtienen cuando se expanden a dimensiones no espaciales como peso o tiempo.. 10.

(26) corte de piezas regulares la geometría concierne a formas rectangulares para objetos y piezas [21]. El interés de la presente tesis se centra en los problemas de dos dimensiones con piezas rectangulares. Adicionalmente los problemas de corte de piezas regulares se pueden dividir en guillotinables y no guillotinables. Los problemas de tipo guillotinables incluyen una restricción más la cual advierte que los cortes deben ser rectos a lo largo de todo el material restante. Sin embargo, el objetivo de este trabajo se enfoca en el tipo de problemas no guillotinables aun cuando el enfoque podría ser modificado para atacar problemas de tipo guillotinables. Finalmente es importante destacar que en las aplicaciones industriales normalmente otros factores entran en juego los cuales pueden agregar más restricciones como lo pueden ser las propiedades del material cortado, los procesos y características del corte, calendarización de los trabajos de corte, etc.. 2.1.2.. Dificultad NP. El problema de optimización de corte de material con piezas rectangulares es un problema NP-Completo [13]. NP-Completo hace referencia a la complejidad del problema la cual, en términos prácticos, significa que actualmente no existe algún algoritmo para resolver el problema que no crezca su tiempo de ejecución exponencialmente con el tamaño de las instancias. De esta forma sería absurdo tratar de resolver estos problemas con algún algoritmo exacto que resultará en el óptimo ya que el tiempo computacional requerido sería sumamente grande (pudieran ser inclusive siglos para algunas instancias relativamente pequeñas). Así, para poder tratar con estos problemas se opta por relajar la calidad de la solución a cambio de manejar tiempos de computación razonables. Ejemplo de esta situación son los algoritmos de búsqueda con heurísticas los cuales resultan en soluciones buenas pero no óptimas en todos los casos.. 2.1.3.. Soluciones. Muchos son los tipos de soluciones propuestas dependiendo del tipo y tamaño de las instancias de estos problemas. Para problemas con pocas restricciones se han desarrollado algoritmos exactos y procedimientos con heurísticas específicas del problema [8, 18].. 11.

(27) Para instancias más complejas normalmente métodos heurísticos han sido aplicados con un buen porcentaje de éxito, sin embargo, gran parte se debe a la relajación de las restricciones, al conocimiento específico de ciertas instancias y a la tolerancia en la calidad de la solución. Actualmente varios enfoques utilizando Algoritmos Genéticos han sido estudiados. Éstos usan principalmente representaciones basadas en el orden y basadas en estructuras de árboles. No obstante las soluciones que proveen son buenas, estos enfoques aún poseen algunos inconvenientes. Se puede generalizar que la solución del Problema de Corte de Material en Dos Dimensiones dentro de los distintos enfoques se divide en dos subproblemas. • La selección de la pieza que se va a cortar de la materia prima. • El lugar dentro de la materia prima de donde se obtendrá la pieza, es decir, el lugar de donde se cortará la misma.. 2.2.. Algoritmos Genéticos. 2.2.1.. Introducción. Los Algoritmos Genéticos (AGs) son algoritmos de búsqueda basados en los mecanismos de selección natural y genética. Estos se fundan en la sobrevivencia de los individuos más aptos (formados por cadenas de bits u otros tipos de datos computacionales) a lo largo de varias generaciones o ciclos del algoritmo mediante la utilización de una serie de operadores (códigos que manipulan los datos) de selección, cruce y mutación, entre otros, que intervienen en la formación de nuevos y mejores individuos. Los AGs fueron desarrollados por John Holland y sus colegas en la Universidad de Michigan dentro de una investigación que se llevaba acabo donde el tema central era buscar formas de hacer más robustos los sistemas. Los AGs buscan una mejora para alcanzar algún punto deseable [19]. Tradicionalmente los AGs codifican los parámetros del sistema a resolver en una cadena binaria la cual conforma a cada uno de los individuos envueltos en el proceso. Estos son evaluados, reproducidos, cruzados y mutados para mejorar la población de individuos y con esto evolucionar hasta encontrar una población que contenga individuos tan aptos como sea requerido [15].. 12.

(28) El pseudo código de un Algoritmo Genético es [26, 15]:. Crear N individuos de solución, los cuáles tienen un código genético, o sea, una secuencia de datos que caracterizan una posible solución al problema. Los datos pueden representar parámetros críticos, pasos para la solución, reglas, etc y pueden ser de cualquier tipo de datos computacionales.. Para cada generación o ciclo en la evolución, se hace lo siguiente:. 1. Para cada individuo en N se aplica la solución representada por éste al problema, simulando el ambiente y se evalúa su aptitud, es decir, que tan bien lo hizo. 2. Se seleccionan L individuos con las más altas probabilidades para sobrevivir en la siguiente generación o ciclo. 3. Se crean nuevos individuos a partir de los L que sobrevivieron mediante: • Haciendo copias de los L individuos que sobrevivieron e introduciendo pequeñas variaciones aleatorias en cada copia. • Creando individuos adicionales mediante la combinación de partes del código genético (usando reproducción sexual, o combinando porciones de los cromosomas) de los L sobrevivientes. • Haciendo combinaciones de las dos anteriores. Dependiendo del estilo se remplaza toda la población con los nuevos individuos o se da una mezcla entre individuos nuevos y los ya existentes. 4. Se determina si continuar o no evolucionando cuando: mejora = (el mejor individuo calificado de la actual generación o ciclo) - (el mejor calificado en la generación o ciclo pasado) y si mejora < umbral de mejora establecido, entonces el algoritmo se detiene o cuando un número específico de generaciones o ciclos se alcancen. El individuo con la mayor calificación de la última generación o ciclo tiene la mejor solución. Entonces se puede aplicar la solución definida por su código genético al problema.. La población inicial es creada de forma aleatoria o con individuos que podrían tener características deseables lo cual en ocasiones es fundamental, usualmente estos. 13.

(29) individuos representan la solución del sistema. El proceso de selección es el medio por el cual el algoritmo obtiene los individuos que sirven para procrear los hijos de la siguiente generación o ciclo. Existen varios métodos, uno de los más simples pero menos eficiente es especificar que tan apto es cada individuo mediante la función objetivo y normalizar para obtener el porcentaje de aptitud de cada uno con respecto a los demás, luego se toma esta información y se seleccionan los individuos al azar en proporción a su porcentaje de aptitud calculado, de esta manera los individuos más aptos son los que tiene mayor probabilidad de sobrevivir en las siguientes generaciones o ciclos. Este método se suele llamar selección por rueda de ruleta pues es análogo a poner a todos los individuos en una ruleta con pedazos proporcionales a su aptitud y girarla para seleccionar alguno. Otros métodos de selección incluyen: selección por remanente estocástico sin reemplazo, selección universal estocástica, ranqueo lineal, selección determinística, selección por torneo (la cual se detalla más adelante), entre otras. La función objetivo es específica del problema y es una medida de que tan apto es un individuo ya sea con respecto al problema o con respecto a los demás individuos. Una de las grandes ventajas de utilizar un Algoritmo Genético radica justamente en la función de objetivo pues ésta puede ser definida solamente en función de que tan bueno es un individuo contra los demás, por lo que no es necesario saber realmente su aptitud con respecto al problema. Esto conlleva a que los Algoritmo Genéticos puedan ser utilizados en problemas donde no se tiene un profundo conocimiento de ellos. El operador de cruzamiento es análogo al intercambio de material genético en la reproducción sexual natural. Existen muchas formas de intercambio que varían inclusive dependiendo del modelo de representación utilizado para los individuos. Una de las más sencillas es buscar aleatoriamente un número que represente la posición dentro del cromosoma o individuo hasta donde se partirá en dos e intercambiar los dos pedazos creados entre parejas escogidas aleatoriamente. A este cruce se le llama cruce de un punto y se ilustra en el cuadro 2.1. Existen otros tipos de cruce como son: cruce de dos puntos, cruce uniforme, cruce en múltiples puntos, cruce en cromosomas circulares, cruce especiales específicos del dominio, etc. Existe también el operador de mutación que es una transformación al azar dentro del cromosoma. Dependiendo de la representación utilizada existen diversos tipos de mutación. Por ejemplo, en individuos representados por una cadena binaria una mutación puede ser cambiar algún bit de los que la conforman por su opuesto, es decir, si es cero cambia a uno y si es uno cambia a cero como se muestra en el cuadro 2.2. Dentro de los tipo de mutación más comunes se encuentran: mutación uniforme, mutación 14.

(30) Cuadro 2.1: Esquema de cruce de un punto en cromosomas de números enteros de longitud 7 con punto de cruce 3. Padre 1 Padre 2 Hijo 1 Hijo 2. 1 5 1 5. 4 7 4 7. 9 11 9 11. 1 3 3 1. 3 13 5 3 4 9 3 4 9 3 13 5. por intercambio, mutación simple, mutación múltiple, mutación gaussiana, etc. Cabe destacar que normalmente este operador se da con una probabilidad baja y sirve para explotar espacios de la solución aún no vistos.. Cuadro 2.2: Esquema de mutación simple en un cromosoma binario de longitud 7 con mutación en el quinto gen. Cromosoma original Cromosoma mutado. 1 1 1 0 1 1 1 1 0 0. 1 1. 0 0. Una ventaja de los AGs es que no se necesita mucha información del problema ya que actúan conforme a funciones de evaluación que pueden ser como cajas negras lo cual les da generalidad para atacar diversos problemas de optimización, sin embargo, esta misma ventaja puede ser una desventaja ya que no explotan el conocimiento específico del problema y además los puede hacer difíciles de seguir y no saber qué es lo que está pasando con el resultado. Algunas aplicaciones de los AGs son en problemas de optimización, búsqueda y razonamiento. No obstante los AGs no han tenido mucho éxito en la práctica pues normalmente ocupan demasiado tiempo para resolver un problema. Como cualquier algoritmo de aproximación no aseguran que la solución sea la óptima ya que existen problemas epistáticos en donde la solución óptima no puede ser alcanzada. Otra cuestión es que sus soluciones no son continuas, esto es, que si cambia sólo un poco los parámetros del problema la solución puede variar enormemente, en casos extremos hasta para la misma instancia [32]. Sin embargo, se ha observado que al codificarlos de una forma indirecta muchos de estos problemas se pueden mejorar o resolver [33]. Es esta la razón por la cual se desea utilizar una codificación que represente una combinación algoritmos de búsqueda con heurísticas, es decir, una hiperheurística que resuelvan el problema que se está atacando en lugar de representar la solución directamente. 15.

(31) 2.2.2.. Tipos de Algoritmos Genéticos. Existen varios tipos de algoritmos genéticos. Los dos más comunes son los Algoritmos Genéticos Simples o Generacionales y los Algoritmos Genéticos de Estado Estable. Los Generacionales son llamados así porque todos los descendientes remplazan totalmente a sus padres de generación en generación. Este tipo puede acarrear algunos inconvenientes como el que buenos individuos tal vez no se reproduzcan [30]. Además suelen tardarse más en converger a la solución ya que tienen menor presión selectiva, sin embargo, en ocasiones esto puede ser deseable además de hacerlos más parecidos a los modelos naturales; en la naturaleza todos los individuos mueren y sólo los descendientes sobreviven. Por otra parte existen formas de aumentar esta presión, por ejemplo, en ocasiones se suele usar elitismo para mejorar el rendimiento del algoritmo lo cual consiste en conservar al individuo mejor evaluado de la generación anterior. En los Algoritmos Genéticos de Estado Estable algunos o todos los miembros se reproducen y su descendencia compite contra ellos sobreviviendo sólo los mejores de cualquiera de las dos. Esto hace que la presión selectiva sea mayor y que la convergencia sea más rápida. Este tipo de Algoritmo Genético es más rápido debido a lo anterior y a que ciertas optimizaciones en el algoritmo pueden ser llevadas a cabo, como el sólo evaluar una vez a cada individuo, así los individuos que se traslapen en el nuevo ciclo no deben de ser evaluados nuevamente. En esta investigación este fue el tipo de Algoritmo Genético empleado puesto que se desea encontrar la solución rápidamente y el desempeño en este caso es muy similar.. 2.2.3.. Representación. La representación hace referencia a la forma en la que se mapea el problema internamente en el Algoritmo Genético. El término genotipo es utilizado para denotar los tipos de datos computacionales que son usados para exponer el problema real dentro del Algoritmo Genético, mientras que el término fenotipo se refiere a las propiedades naturales del problema. Así por ejemplo, para un problema de optimización en una red eléctrica el fenotipo podría ser el voltaje y corriente utilizados mientras que el genotipo sería una cadena binaria en la cual estuvieran codificadas estas características. Originalmente los Algoritmos Genéticos han utilizado cadenas binarias para codificar las variables que modelan el problema, pero este tipo de representación padece de algunos problemas como distancias de Hamming muy largas las cuales se refieren a la diferencia existente entre individuos en el genotipo los cuales en el fenotipo son muy similares o contiguos, mutaciones en bits de orden alto sobre representaciones. 16.

(32) numéricas donde el problema es que se generan cambios muy sustanciales en soluciones numéricas, por ejemplo, 0001 puede representar un uno y una mutación en su bit de orden más alto 1001 representaría un 17, etc. Con el tiempo otras formas de representación se han ido desarrollando como un esfuerzo de lograr que el genotipo y el fenotipo sean mas similares. Actualmente se suelen usar cadenas de números enteros, matrices, números reales, arreglos de clases definidas por el usuario, árboles, etc. Utilizar un genotipo con arreglos de números enteros puede ser benéfico para ciertos problemas. Para el desarrollo de la presente investigación se ha determinado que este tipo de representación es la adecuada ya que son enumeraciones de heurísticas simples y cantidades enteras de piezas lo que se quiere codificar. Como su nombre lo indica, la representación por medio de números enteros utiliza arreglos de números enteros donde cada elemento del arreglo representa una propiedad del sistema, por ejemplo, una medida de alguna propiedad física o alguna enumeración de una propiedad discreta como el tipo de heurística. La mutación en esta codificación se hace obteniendo un número aleatorio y mapeándolo dentro del rango establecido para cada gen3 mediante una función módulo4. Los tipos de cruces que se utilizan son iguales a los utilizados en otras representaciones como en las cadenas binarias, exceptuando el caso cuando se utiliza este tipo de genotipo para representar permutaciones. Los más comunes son cruce de un punto o dos puntos. Para su implantación se toma el tamaño de los cromosomas o individuos, se obtiene uno o dos números diferentes respectivamente dentro de este rango y después se utilizan estos números para saber la o las posiciones en las que se dividirán los individuos para formar las secciones del arreglo que se intercambiarán como resultado del cruce de los individuos. En el cuadro 2.1 visto anteriormente se ilustra el cruce de un punto y a continuación en el cuadro 2.3 se ilustra el cruce dos puntos. 3. Elemento del arreglo. La función módulo, computacionalmente hablando, sirve para obtener el residuo de la división entre dos números. Dicho residuo se utiliza normalmente para acotar los valores de un número aleatorio 4. 17.

(33) Cuadro 2.3: Esquema de cruce de dos punto en cromosomas de números enteros de longitud 7 con punto de cruce en 3 y 6. Padre 1 Padre 2 Hijo 1 Hijo 2. 2.2.4.. 1 4. 5 7 1 4 5 7. 9 11 9 11. 1 3 3 1. 3 3 3 3. 13 4 4 13. 5 9 5 9. Selección. Otro aspecto importante en un algoritmo genético es la forma en la que se escogen los individuos destinados a ser reproducidos y/o a sobrevivir a la siguiente generación o ciclo. El mecanismo con el cual se lleva acabo esta tarea es llamado selección. La selección de los individuos es importante porque afecta a la presión selectiva pudiendo lograr que ésta sea muy poca o que se sobrepase. La presión selectiva esta directamente relacionada con la explotación y exploración del espacio de búsqueda5. De manera que a mayor presión selectiva mayor propensión a una convergencia prematura existirá con lo cual la explotación del espacio de búsqueda será malo. Y por lo contrario a menor presión selectiva la convergencia será muy lenta provocando inclusive que nunca converja con lo cual la exploración del espacio será ineficiente. El objetivo es entonces encontrar una presión selectiva equilibrada. Anteriormente se dio una descripción general de la selección por rueda de ruleta, pero este tipo de selección no es muy conveniente pues suele tener demasiada presión selectiva. Además para su correcta funcionalidad necesita de escalamiento6 como cualquier otro tipo de selección proporcional lo que agrega además una carga computacional y un tanto de complejidad extra. Normalmente se utilizan otros métodos de selección más robustos. La selección por torneo es un tipo de selección por ranqueo que actualmente es muy usada pues a demostrado ser eficiente. Esta selección no necesita escalamiento y es fácil de implantar, además de mantener un buen equilibrio en la presión selectiva. La selección de torneo de tamaño m se realiza de la siguiente forma [34]: 1. Se revuelve la población para evitar la posibilidad de que los individuos compitan 5. La exploración se refiere a la búsqueda global y la explotación se refiere a la búsqueda local en el espacio. 6 Técnica empleada en los tipos de selección proporcional, como rueda de ruleta, para contrarestar el efecto de sobreconvergencia. 18.

(34) siempre contra los mismos. 2. Los individuos participan en m torneos cada uno contra los otros individuos que están en posición adyacente a ellos. Para saber cuales son los individuos afectados entre cada torneo se una ventana de tamaño m sobre la población y ésta se va recorriendo a lo largo de forma tal que al llegar al final el primer o los primero individuos se consideran adyacentes a los últimos. 3. En cada torneo al mejor de los individuos se le asigna una copia en la lista de selección. En la figura 2.1 se muestra un ejemplo de selección por tornero de tamaño dos en donde se debe maximizar la función objetivo. Población original. Población revuelta. I: A. I :A 00 2 :- 52* 1 : 45 Zl 3:, T1. 1 : 45 2 : 32 3: 21 4*T •. ^7 ji 5: 24. 6: 51 7 ; 1 10 7. Al-. ~. 7/ .., 10 1" ~. °4 — 5 :, ¿.^ 4 :,• j37i ~ f. • 511 \J .. -J. Candidatos para aparearse I :A 1 ,.:45 ::45 3 .,:21 j«¡ ...• 74 ¿H 4 ..:37 f.u .:51 6 • 51 \J .> -J 1. I = Individuo A = Aptitud. Figura 2.1: Esquema de un ejemplo de selección por torneo de tamaño dos. Esta selección asigna m copias al mejor individuos, cero al peor y en el valor esperado m/2 a la mediana. Lo cual conlleva a tener una buena relación entre la explotación, búsqueda global en el espacio, y la exploración, búsqueda local en el espacio.. 2.3.. Algoritmos de Búsqueda con Heurísticas. Muchos problemas prácticos tienen espacios de búsquedas muy amplios, y varios son de dificultad no polinomial. Cuando se quiere resolver estos problemas con metodologías exactas como las de métodos de investigación de operaciones resulta que la cantidad de procesamiento es tal que el tiempo para poder resolverlos se vuelve impráctico o en ocasiones intratable.. 19.

(35) Los métodos de Búsqueda con Heurísticas son técnicas con las cuáles se pueden atacar este tipo de problemas mediante la simplificación de los procedimientos por medio de una una función o evaluación que induce o ayuda a decidir por cual camino seguir en la búsqueda en lugar de recorrerlos todos. El resultado es que el espacio de búsqueda es altamente podado por estos mecanismo los cuales lo reducen a un tamaño tratable. El éxito o no de estas técnicas depende en que tan certeras son las guías que proveen las heurísticas para podar el espacio de búsqueda [29]. El termino heurística es muchas veces usado para referirse a todo el algoritmo de búsqueda en vez de referirse sólo al proceso de decisión dentro del algoritmo. Las heurísticas normalmente ofrecen un buen equilibrio entre la calidad de la solución y el tiempo computacional con respecto al tamaño del espacio de búsqueda, sin embargo, existen ocasiones en las cuales una heurística que normalmente es buena puede dar malos resultados y viceversa una heurística pobre puede actuar muy bien. Muchos tipos de heurísticas diferentes para cada tipo de problemas han sido desarrolladas, y muchas están basadas en principios similares. Para el problema de Corte de Material en Dos Dimensiones existen procedimientos secuenciales heurísticos, procedimientos híbridos, entre otros [25]. En la siguiente subsección se hace mención a las heurísticas utilizadas en esta tesis.. 2.3.1.. Heurísticas para Corte de Material en Dos Dimensiones con Figuras Rectangulares. Para atacar estos problemas se utilizan dos tipos de heurísticas: Heurísticas de Selección y Heurísticas de Acomodo. Para hacer frente al problema se escoge una heurística de selección y una de acomodo las cuales se complementan entre sí para formar el proceso completo de solución. Las siguientes son heurísticas específicas del dominio para corte de material en dos dimensiones con figuras rectangulares de tipo no guillotinables.. Heurísticas de Selección Las heurísticas de selección sirven para conocer dentro del conjunto de piezas que se desean cortar cuál es la siguiente pieza que se acomodará dentro de los objetos de materia prima. Estas heurísticas seleccionan a la siguiente pieza de acuerdo a alguna propiedad relacionada con ella. Por ejemplo, para las piezas involucradas en los Problemas de 20.

(36) Optimización de Corte de Material en Dos Dimensiones dichas propiedades pueden ser su área, altura, anchura, etc. El orden en el que son seleccionadas las piezas depende de la naturaleza de la propiedad usada para la heurística de selección. Si la propiedad es una magnitud el orden puede ser de mayor a menor o viceversa de menor a mayor o cualquier otra forma de selección aplicable como el promedio. Por motivos de optimización la forma en la que las heurísticas de selección están codificadas no realiza un ordenamiento para luego ir escogiendo la siguiente pieza, en lugar se limita a seleccionar la pieza que cumpla con el criterio de selección escogido y una vez seleccionada la pieza ésta se quita de la lista de piezas por acomodar. De esta forma se evita la necesidad de ordenar la lista de piezas cada que una nueva heurística de selección es escogida. A continuación se mencionan las nueve heurísticas utilizadas en el este trabajo. Heurística de selección por área • De mayor a menor área. La siguiente pieza seleccionada es la que tenga mayor área de las restantes por acomodar. • De menor a mayor área. La siguiente pieza seleccionada es la que tenga menor área de las restantes por acomodar. • Promedio de área. La siguiente pieza seleccionada es la eme se encuentre más cerca del área promedio de las piezas restantes por acomodar. Heurística de selección por altura. De mayor a menor altura. La siguiente pieza seleccionada es la que tenga mayor altura de las restantes por acomodar. De menor a mayor altura. La siguiente pieza seleccionada es la que tenga menor altura de las restantes por acomodar. Promedio de altura. La siguiente pieza seleccionada es la que se encuentre más cerca de la altura promedio de las piezas restantes por acomodar. Heurística de selección por anchura. 21.

(37) • De mayor a menor anchura. La siguiente pieza seleccionada es la que tenga mayor anchura de las restantes por acomodar. • De menor a mayor anchura. La siguiente pieza seleccionada es la que tenga menor anchura de las restantes por acomodar. • Promedio de anchura. La siguiente pieza seleccionada es la que se encuentre más cerca de la anchura promedio de las piezas restantes por acomodar. Esta clase de heurísticas de selección fueron ideadas y adaptadas a partir de heurísticas utilizadas para atacar problemas de corte de material en una dimensión como Next Fit Decreasing [24]. Heurísticas de Acomodo Las heurísticas de acomodo sirven para encontrar la posición dentro de los objetos de materia prima donde deberán ser colocadas las piezas para ser cortadas, es decir, localizar el espacio de materia prima que será destinado para cada pieza. La colección de Heurísticas de Acomodo utilizadas en la investigación pertenecen a una clase en la cual se preserva la estabilidad del acomodo en sentido inferior a la izquierda, es decir, todas las piezas están colocadas de tal forma que ninguna puede ser movida más hacia la parte inferior ni hacia la izquierda sin tener que traslaparse con otras piezas [l]. Estás heurísticas no pueden ser utilizadas para problemas guillotinables dado que las configuraciones resultantes de las piezas a cortar dentro de la materia prima no garantizan que el tipo de corte requerido se pueda generar. Para atacar problemas guillotinables se utilizan otras heurísticas que están fuera del contexto de este trabajo, no obstante, cabe señalar que la adaptación del enfoque para trabajar con problemas guillotinables básicamente requeriría solamente desarrollar las heurísticas específicas. A continuación se describen las cinco heurísticas de acomodo utilizadas. BL Algorithm Esta heurística consiste en colocar la pieza en la esquina superior derecha de la materia prima y posteriormente mediante una serie de deslizamientos subsecuentes intercalados hacia la parte inferior y hacia la izquierda se mueve la pieza hasta que quede en una posición fija, donde ya no son posibles más movimientos hacia estas direcciones. 99.

(38) sin tener que empalmarse con otros objetos. De esta forma se va construyendo el acomodo en el que serán cortadas las piezas [23]. En la figura 2.2 se puede analizar gráficamente el proceso. Las piezas fueron introducidas en el orden 2, 6, 4, 7, 3, O, 1, 5 para este ejemplo. Una desventaja de esta heurística es que es muy fácil la creación de áreas desperdiciadas por el efecto de piezas de gran tamaño obstruyendo el deslizamiento de otras piezas. Un punto a favor es que está heurística es muy simple y por tanto muy rápida.. Figura 2.2: Representación gráfica de la heurística BL-Algorithm. BLLT Algorithm Esta heurística es igual a la BL Algorithm excepto que en lugar de que su deslizamiento horizontal se lleve acabo hasta que tope contra otro objeto o margen de la pieza que se está cortando, la pieza se desliza hasta que se termina la superficie del objeto sobre el que se está deslizando y es entonces cuando continúa con su deslizamiento vertical [27]. En la figura 2.3 se puede analizar gráficamente el proceso. Las piezas fueron introducidas en el orden 2, 6, 4, 7, 3, O, 1, 5 para este ejemplo. Esta heurística al estar basada en deslizamientos también padece del mismo problema que la anterior pero continua siendo rápida. BLF Algorithm. 23.

(39) Figura 2.3: Representación gráfica de la heurística BLLT-Algorithm. Esta heurística es un poco más compleja computacionalmente que las anteriores y más sofisticada, ya que intenta llenar los espacios libres que se puedan generar en las configuraciones de las piezas introducidas mediante la utilización de inserciones en lugar de desplazamientos con lo cual es posible ocupar áreas vacías que se encuentren encerradas por otras piezas ya colocadas [6]. Lo que hace es buscar posibles puntos de inserción y probar las piezas para saber si éstas caben o no, si caben se agregan las piezas de lo contrario se busca otro punto de inserción. Esta heurística mantiene la estabilidad del acomodo hacia la parte inferior izquierda mediante la ejecución de la heurística BL Algorithm cada vez que se introduce una nueva pieza a partir del punto de inserción. En la figura 2.4 se puede analizar gráficamente el proceso. Las piezas fueron introducidas en el orden 2, 6. 4, 7, 3, O, 1, 5 para este ejemplo. Los resultados que genera está heurística son mejores que los resultados de las heurísticas anteriores. No obstante, al codificar está heurística se debe tener cuidado en hacerlo de una manera eficiente ya que al ser más compleja el tiempo requerido para ejecutarla puede ser bastante mayor con respecto a las heurísticas vistas anteriormente. Una forma de codificarla eficientemente es guardar una memoria de los puntos de inserción la cual contenga la información procesada hasta el momento para cada punto de inserción con la finalidad de ahorrarse este trabajo de procesamiento la siguiente vez que sea requerido. El algoritmo actúa de la siguiente manera. • Cada vez que una nueva pieza es colocada se crean dos nuevos posibles punto de inserción los cuales se guardan en una lista de posibles puntos de inserción. La 24.

(40) esquina superior izquierda y la esquina inferior derecha corresponden a estos dos nuevos puntos de inserción. Cada nueva pieza que se intenta insertar va recorriendo está lista la cual está ordenada de los puntos más abajo y a la izquierda hacia los que están más arriba y a la derecha. En cada intento se va calculando el espacio libre en el punto de inserción en cuestión y esta información es la que se debe de ir guardando para evitar tener que volverla a calcular nuevamente en otra ocasión. Otras cuestiones como borrar los puntos de inserción que por lógica ya no pudieran ser ocupados deben ser tomadas en cuenta. Por último es importante recordar ejecutar el BL Algorithm para mantener la estabilidad en la configuración.. Figura 2.4: Representación gráfica de la heurística BLF-Algorithm. BLFR90 Algorithm Esta heurística es una modificación al algoritmo anterior la cual consiste en rotar la pieza 90 grados a la hora de probar si cabe dentro del espacio correspondiente a un punto de inserción si es que no cupo cuando no estaba rotada. La rotación se hace en 90 grados solamente pues es la única rotación que vale la pena dadas las características geométricas de las piezas. La idea de haber realizado esta modificación nació de la observación de que en ocasiones el espacio libre encerrado puede no ser lo suficientemente amplio para albergar una pieza en su posición original pero si para contenerla si la pieza es rotada en 90 grados.. 25.

(41) El costo computacional extra para llevar a cabo esta modificación no es considerable y por lo tanto esta propuesta es viable. BLD Algorithm Esta heurística funciona de manera muy parecida a la BL Algorithm, la diferencia radica en que en lugar de colocar la pieza en la esquina superior derecha de la materia prima la coloca en la esquina superior derecha del último objeto colocado y a partir de ahí es cuando comienza con la serie de deslizamientos hasta llegar a una posición fija [22]. Una diferencia importante es que por la forma de operar de esta heurística, necesita verificar que la pieza no se encuentre traslapada con otra y que este dentro de los límites de la materia prima. Si la pieza en cuestión se encuentra en alguno de estos casos entonces la heurística ejecuta la heurística BL algorithm para colocar la pieza. En la figura 2.5 se puede analizar gráficamente el proceso. Las piezas fueron introducidas en el orden 2, 6, 4, 7, 3, O, 1, 5 para este ejemplo.. Figura 2.5: Representación gráfica de la heurística BLD-Algorithm. Heurísticas de Rotación Existen cuatro heurísticas de rotación que son utilizadas para lograr acomodos diferentes para aumentar la diversidad y por tanto la probabilidad de obtener un mejor resultado. Estas heurísticas sirven para marcar la necesidad de ser rotadas o no las piezas en 90 grados. La rotación sólo tiene importancia en 90 grados ya que todas las piezas son rectangulares con lo que sólo pueden tener dos orientaciones posibles: vertical u horizontal. Estas heurísticas se aplican justo después de seleccionar la pieza que se va a tratar de colocar mediante alguna heurística de selección. Las cuatro heurísticas de rotación son las siguientes: 26.

(42) 1. Ninguna de las piezas a cortar son rotadas, es decir, permanecen con su orientación original. 2. Todas las piezas a cortar son rotadas antes de intentar buscarles una localidad dentro de los objetos de materia prima. 3. Todas las piezas son rotadas antes de intentar buscarles una localidad de forma tal que todas las piezas queden orientadas verticalmente. Esto se logra comparando su ancho con respecto a su alto de forma que si su ancho es mayor entonces las piezas son rotadas en 90 grados para lograr que queden orientadas verticalmente. 4. Todas las piezas son rotadas antes de intentar buscarles una localidad de forma tal que todas las piezas queden orientadas horizontalmente. Esto se logra comparando su ancho con respecto a su alto de forma que si su alto es mayor entonces las piezas son rotadas en 90 grados para lograr que queden orientadas horizontalmente.. 2.4.. Hiperheurísticas. Anteriormente existía una carrera implícita entre los autores por demostrar que una heurística era mejor que otra. Sin embargo, esta tendencia comenzó a desaparecer cuando en 1995 Wolpert y MacReady [35] publicaron su teorema No Free Lunch Theorem (NFT) el cual demostró que cuando el promedio de todos los problemas se definen en un espacio de búsqueda finito, todos los algoritmos tienen el mismo rendimiento promedio. El NFT trajo como consecuencia que los autores cambiaran su forma de ver las heurísticas y se enfocaran en que problemas eran fáciles de atacar con determinada heurísticas en lugar de preocuparse por crear una heurística que fuera mejor que todas las demás. Aun antes existía ya la idea de que aunque las heurísticas podían ser muy valiosas para algunas instancias siempre existían algunas para las cuales tenían sus limitaciones. Dado que diferentes heurísticas tiene diferentes propiedades y con ello ventajas y desventajas distintas parece tener sentido combinarlas unas con otras para soslayar las desventajas de una con las ventajas de otra [5]. La idea principal es ir aplicando un conjunto de heurísticas simples, entendibles y bien definidas para modificar el estado del problema hasta resolverlo. La hiperheurística asocia cada heurística con una condición o estado del problema hasta que éste cambie y entonces aplica una nueva heurística que este mejor adaptada a ese estado. No obstante continúa siendo un algoritmo de aproximación y por tanto sigue siendo válido el teorema "No Free Lunch. 27.

(43) Theorem" mencionado anteriormente para este método. El término de hiperheurísticas proviene originalmente de las investigaciones realizadas en el área de Sistemas de Planeación Automatizada en el campo de Inteligencia Artificial. Los sistemas pioneros trataban de formar series de acciones para lograr una determinada meta que usualmente estaba compuesta por una serie de especificaciones requeridas. Estas series se formaban mediante la búsqueda de acciones que fueran acercando el estado actual del problema al estado deseado [5]. Está línea de investigación dio lugar a lo que se puede considerar el primer ejemplo de un sistema utilizando hiperheurísticas, el planeador LR-26 dentro del sistema COMPOSER el cual fue usado para la planeación de la agenda de satélites de comunicación [16]. La mayor dificultad de este nuevo método es identificar y dividir los problemas en las partes necesarias y además encontrar la mejor combinación de heurísticas simples que resuelvan dichas partes. Esto puede involucrar una interdependencia no lineal entre dichas partes [5]. En la presente tesis se plantea hacer frente a este problema utilizando un algoritmo genético para realizar dicha tarea. Este enfoque además tiene la ventaja de aislar el conocimiento específico del dominio del algoritmo genético como se plantea en [5], ya que una vez que el modelo básico es correcto lo único que se debe modificar es el conjunto de heurísticas simples y la función de evaluación, los cuales engloban este conocimiento abstrayéndolo. Una desventaja de las hiperheurísticas es que no visitan todo el espacio de búsqueda ya que dependen de las heurísticas que utilizan y su capacidad de expresar soluciones. Esta carencia limita a las hiperheurísticas, no obstante, si la selección de las heurísticas utilizadas se hace correctamente se pueden lograr resultados bastante buenos buenos. Varios trabajos de investigación en relación a las hiperheurísticas se han realizado anteriormente y han resultado en favor de éstas. Un ejemplo real del uso de esté método es el descrito en [17] donde el problema consistía en la recolección y entrega de pollos en granjas de Escocia y el Norte de Inglaterra para llevarlos al lugar de procesamiento. Otro ejemplo es el desarrollado en [33] donde el objetivo era resolver la calendarización masiva de exámenes en una universidad. Estos ejemplos son citados por mencionar algunos pero existen muchos otros trabajos relacionados en muy diversas áreas como los expuestos en [9, 32, 31, 10]. Las hiperheurísticas son entonces métodos que utilizan combinaciones de heurísticas simples para atacar problemas. Éste es un nuevo enfoque que se basa en que dos o más heurísticas pueden resolver ciertos problemas mejor que una sola ya que al mo28.

Figure

Figura 1.1: Esquema general del problema de corte de material en dos dimensiones.
Cuadro 2.1: Esquema de cruce de un punto en cromosomas de números enteros de longitud 7 con punto de cruce 3.
Figura 2.1: Esquema de un ejemplo de selección por torneo de tamaño dos.
Figura 2.2: Representación gráfica de la heurística BL-Algorithm.
+7

Referencias

Documento similar

Este trabajo presenta la implementación de un algoritmo genético como una alternativa para determinar la posición y orientación del sistema de coordenadas de

Las actividades ilegales o criminales, sin embargo, cuando faltan víctimas, no tie- nen por qué rendir siempre forzosamente más beneficios. Más bien sucede lo contra- rio. La amenaza

Una vez colocados manualmente los pivotes de la primera fila en la posición adecuada según nuestro algoritmo genético, procedemos a evaluar la optimización de la

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

Los problemas de seguridad de la información en las organizaciones públicas son persistentes; una de las causas es la escasez de modelos y métodos adecuados para medir la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

El desarrollo de una conciencia cáritas es esencial para identificar cuando un momento de cuidado se convierte en transpersonal, es necesaria para identificar

De acuerdo al título del trabajo, nos podemos dar cuenta que se utilizó EMD y Redes Neuronales, pero al ocupar ANNs como aproximadores de nuestra función de predicción,