• 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: 2017

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

Copied!
104
0
0

Texto completo

(1)

Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey

Monterrey, Nuevo León a

Lic. Arturo Azuara Flores:

Director de Asesoría Legal del Sistema

Por medio de la presente hago constar que soy autor y titular de la obra titulada"

_ ", en los sucesivo LA OBRA, en virtud de lo cual autorizo a el Instituto Tecnológico y de Estudios Superiores de Monterrey (EL INSTITUTO) para que efectúe la divulgación, publicación, comunicación pública, distribución y reproducción, así como la digitalización de la misma, con fines académicos o propios al objeto de EL INSTITUTO.

El Instituto se compromete a respetar en todo momento mi autoría y a otorgarme el crédito correspondiente en todas las actividades mencionadas anteriormente de la obra.

De la misma manera, desligo de toda responsabilidad a EL INSTITUTO por cualquier violación a los derechos de autor y propiedad intelectual que cometa el suscrito frente a terceros.

Nombre y Firma AUTOR (A)

(2)

 

Optimización de Corte de Material en Dos Dimensiones

Mediante Hiperheurísticas Construidas con un Algoritmo

Genético

   

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

Authors Morán Saavedra, Armando Affiliation ITESM

(3)

Abstract 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.

Discipline Ingeniería y Ciencias Aplicadas / Engineering & Applied Sciences

Item type Tesis

???pdf.cover.sheet .dc.contributor.adv isor???

Dr. Hugo Terashima Marín

???pdf.cover.sheet .thesis.degree.disci pline???

Electrónica, Computación, Información y Comunicaciones

(4)

Rights Open Access

Downloaded 18-Jan-2017 07:28:52

(5)
(6)
(7)

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

(8)

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. Horacio Martínez Sinodal

Director del Programa de Graduados

(9)

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

(10)

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.

(11)

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

(12)

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ísti-cas 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 Opti-mizació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 proble-ma, 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 mo-do que se utilice un algoritmo genético para la construcción de una hiperheurística que solucione el problema.

(13)
(14)

X

Índice general

Reconocimientos VII

Resumen VIII

índice de cuadros XIII

índice de figuras xv Capítulo 1. Introducción 1

1.1. Definición del Problema 2 1.1.1. Motivación 4 1.2. Objetivos 5 1.2.1. Alcances 6 1.3. Hipótesis 6 1.3.1. Justificación 6 1.3.2. Preguntas de Investigación 6 1.4. Contribución 7 1.5. Organización de la Tesis 7

Capítulo 2. Antecedentes 9

2.1. Problema de Optimización de Corte de Material en Dos Dimensiones . 9 2.1.1. Clasificación de los Problemas de Corte 10 2.1.2. Dificultad NP 11 2.1.3. Soluciones 11 2.2. Algoritmos Genéticos 12 2.2.1. Introducción 12 2.2.2. Tipos de Algoritmos Genéticos 16 2.2.3. Representación 16 2.2.4. Selección 18 2.3. Algoritmos de Búsqueda con Heurísticas 19

(15)

2.4. Hiperheurísticas 27 2.5. Resumen 29

Capítulo 3. Modelo de Solución 30

3.1. Introducción 30 3.2. Problemas 31 3.3. Hiperheurísticas 32 3.4. Heurísticas 32 3.5. Algoritmo Genético 34 3.5.1. Representación 34 3.5.2. Función Objetivo 39 3.6. Resumen 40

Capítulo 4. Experimentos y Análisis de Resultados 41

4.1. Resultado Óptimo y Límite Inferior 41 4.2. Descripción de los Problemas 43 4.2.1. Problemas Cgcut 45 4.2.2. Problemas Gcut 46 4.2.3. Problemas Ngcut 47 4.2.4. Problemas G y NG 48 4.3. Parámetros 51 4.3.1. Tamaño de la Población y Número de Ciclos 51 4.3.2. Probabilidad de Cruce y Mutación 52 4.3.3. Tipo de Cruce y Mutación 52 4.3.4. Número de Heurísticas 54 4.4. Análisis de Resultados 55 4.4.1. Problemas Cgcut 56 4.4.2. Problemas Gcut 57 4.4.3. Problemas Ngcut 58 4.4.4. Problemas G y NG 60 4.4.5. Análisis General 61 4.5. Resumen 63

Capítulo 5. Conclusiones 64

5.1. Conclusiones y Contribuciones 64 5.2. Trabajo Futuro 66

(16)
(17)

Índice de cuadros

1.1. Características de los problemas de corte y empacado 3 2.1. Esquema de cruce de un punto en cromosomas de números enteros de

longitud 7 con punto de cruce 3 15 2.2. Esquema de mutación simple en un cromosoma binario de longitud 7

con mutación en el quinto gen 15 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 18 4.1. Propiedades de las piezas de los problemas Cgcut 45 4.2. Propiedades generales de los problemas Cgcut 45 4.3. Propiedades de las piezas de los problemas Gcut 46 4.4. Propiedades generales de los problemas Gcut 46 4.5. Propiedades de las piezas de los problemas Ngcut 47 4.6. Propiedades generales de los problemas Ngcut 47 4.7. Propiedades de las piezas de los problemas G y NG 49 4.8. Propiedades generales de los problemas G y NG 50 4.9. Parámetros utilizados en el modelo de solución 51 4.10. Resultados promedio de problemas evaluados con diferentes números de

individuos y ciclos 52 4.11. Resultados promedio de problemas evaluados con distintas

configura-ciones de probabilidades de cruce y mutación 53 4.12. Resultados promedio de problemas evaluados con distintos tipos de cruce. 53 4.13. Resultados promedio de problemas evaluados con distintos números de

(18)

A.l. Instancias de problemas de corte en dos dimensiones pertenecientes a Cgcut 68 A.2. Instancias de problemas de corte en dos dimensiones pertenecientes a

Gcut 69 A.3. Instancias de problemas de corte en dos dimensiones pertenecientes a

Gcut 70 A.4. Instancias de problemas de corte en dos dimensiones pertenecientes a

Gcut 71 A.5. Instancias de problemas de corte en dos dimensiones pertenecientes a

Gcut 72 A.6. Instancias de problemas de corte en dos dimensiones pertenecientes a

Ngcut 73 A.7. Instancias de problemas de corte en dos dimensiones pertenecientes a

Ngcut 73 A.8. Instancias de problemas de corte en dos dimensiones pertenecientes a

Ngcut 74 A.9. Instancias de problemas de corte en dos dimensiones pertenecientes a

Ngcut 74

(19)

índice de figuras

(20)

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 re-spuesta 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 solu-ciones 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 uti-lizar los AGs dentro de sus negocios y prefieren utiuti-lizar 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 de-cisión de que método utilizar.

(21)

De-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 indi-viduos 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 opti-mización de corte de materiales en dos dimensiones mediante un AG con una repre-sentació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 dificul-tad 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

(22)

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 ma-terial 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.

(23)

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 can-tidad 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

[image:23.612.114.513.451.553.2]

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

(24)

poli-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ísti-cas [31, 32]. La problemática principal en las hiperheurístiHiperheurísti-cas es la de encontrar la com-binació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 ade-cuadas 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 Materi-ales 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.

(25)

• 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 hiper-heurísticas, puede encontrar una relación entre las propiedades de las distintas heurísti-cas 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ísti-cas 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 con-sideració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?

(26)

1.4. Contribución

El aporte del presente trabajo consiste en investigar el desempeño de hiperheurísti-cas 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 opti-mización que ya han tenido éxito resolviendo otros problemas de optiopti-mización.

En función de las preguntas de investigación se pretende que se aporte más infor-mació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 difer-entes.

• 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 repre-sentación de éstas y el mismo Algoritmo Genético específicamente para el proble-ma 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ísti-cas con la finalidad de dar al lector las nociones básiHiperheurísti-cas 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.

(27)
(28)

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

Mate-rial 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.

(29)

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 estruc-tura 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 carac-terí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 pri-ma, 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

1Nó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.

2Más de tres dimensiones se obtienen cuando se expanden a dimensiones no espaciales como peso

(30)

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 normal-mente 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 proble-ma 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

(31)

Para instancias más complejas normalmente métodos heurísticos han sido aplica-dos 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 estruc-turas 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 mecan-ismos de selección natural y genética. Estos se fundan en la sobrevivencia de los individ-uos 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].

(32)

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 indi-viduos o se da una mezcla entre indiindi-viduos 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, en-tonces 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.

(33)

individuos representan la solución del sistema.

El proceso de selección es el medio por el cual el algoritmo obtiene los individu-os que sirven para procrear lindividu-os hijindividu-os de la siguiente generación o ciclo. Existen variindividu-os 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 so-brevivir 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 uni-versal 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 inclu-sive 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.

(34)

Cuadro 2.1: Esquema de cruce de un punto en cromosomas de números enteros de longitud 7 con punto de cruce 3.

Padre Padre Hijo Hijo

1 2 1 2

1 5 1 5

4 7 4 7

9 11

9 11

1 3 3 1

3 3 3 3

13 4 4 13

5 9 9 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 Cromosoma

original mutado

1 1

1 1

1 1 00

1 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 es-pecí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 exis-ten 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].

(35)

2.2.2. Tipos de Algoritmos Genéticos

Existen varios tipos de algoritmos genéticos. Los dos más comunes son los Algorit-mos Genéticos Simples o Generacionales y los AlgoritAlgorit-mos 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 descendi-entes 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 inter-namente 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.

(36)

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 cier-tos 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ándo-lo 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 representa-ciones 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 de-spué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.

4La función módulo, computacionalmente hablando, sirve para obtener el residuo de la división entre

(37)
[image:37.619.202.427.159.217.2]

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 Padre Hijo Hijo

1

2 1 2

1

5 1 5

4 7 4 7

9 11

9 11

1 3 3 1

3 3 3 3

13 4 4 13

5 9 5 9

2.2.4. 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 con-trario 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 pre-sió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 com-putacional 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

5La exploración se refiere a la búsqueda global y la explotación se refiere a la búsqueda local en el

espacio.

6Técnica empleada en los tipos de selección proporcional, como rueda de ruleta, para contrarestar

(38)

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 Población original revuelta

I:

1 :

2 : 3:

4 •

*T . 5: 6:

7 ;

A 45 32 21

^7j i

24

51

10

1 7

I 2 : 1 : 3:

7 ./ .

5 :

4 :

f. •

\J .

:A

00

- 52*

Al­

: 45

T1 ~ , Zl

10 ~

, 1"

°4 — , ¿.^ 37 ~ , j i

51 ­

. ­J 1

Candidatos para aparearse

I 1,

.

: 3 ., «¡ . j . 4 ..

f.

u . 6

\J . : A :45 :45 :21

• 74

. ¿H

:37 :51 • 51

> -J 1

[image:38.619.223.410.316.482.2]

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 espe-rado 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

(39)

Los métodos de Búsqueda con Heurísticas son técnicas con las cuáles se pueden at-acar 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 de-sarrolladas, y muchas están basadas en principios similares. Para el problema de Corte de Material en Dos Dimensiones existen procedimientos secuenciales heurísticos, pro-cedimientos 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 Se-lección y Heurísticas de Acomodo. Para hacer frente al problema se escoge una heurísti-ca 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.

(40)

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 or-den 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.

(41)

• 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

(42)

sin tener que empalmarse con otros objetos. De esta forma se va construyendo el aco-modo en el que serán cortadas las piezas [23].

En la figura 2.2 se puede analizar gráficamente el proceso. Las piezas fueron in-troducidas en el orden 2, 6, 4, 7, 3, O, 1, 5 para este ejemplo.

[image:42.620.95.541.288.420.2]

Una desventaja de esta heurística es que es muy fácil la creación de áreas des-perdiciadas 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 desliza-miento 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 in-troducidas 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 pro-blema que la anterior pero continua siendo rápida.

(43)

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 in-troducidas 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.

(44)

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á or-denada 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.

(45)

El costo computacional extra para llevar a cabo esta modificación no es consider-able y por lo tanto esta propuesta es viconsider-able.

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, nece-sita 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 es-tos 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 in-troducidas 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: verti-cal 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.

(46)

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 Theo-rem (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.

(47)

Theorem" mencionado anteriormente para este método.

El término de hiperheurísticas proviene originalmente de las investigaciones real-izadas 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 ac-ercando 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 hiper-heurí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 do-minio 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úsque-da ya que dependen de las heurísticas que utilizan y su capacibúsque-dad 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 al-gunos pero existen muchos otros trabajos relacionados en muy diversas áreas como los expuestos en [9, 32, 31, 10].

(48)

mo-mentó de ser resueltos los problemas cambian sus propiedades y con esto la forma en que las heurísticas afectan a la búsqueda de una solución [32].

2.5. Resumen

(49)

Capítulo 3

Modelo de Solución

En este capítulo se describe detalladamente el modelo de solución adoptado en este trabajo. Se muestra la manera en la que se representaron las hiperheurísticas dentro de un Algoritmo Genético, la forma en la que se evalúa y construye la solución especificada por cada individuo y la relación de todos los elementos del modelo dentro del proceso de búsqueda de la solución hasta llegar a ella.

3.1. Introducción

Algoritmo Genético

Hiperheurísticasl

Función de Evaluación

Instancias del Problema

Heurísticas Simples del Dominio

­J Solución

Figura 3.1: Modelo básico de solución.

(50)

obtiene a partir de una hiperheurística. Es esta solución la que es analizada y evaluada para contestar las preguntas de investigación y la hipótesis planteada.

El proceso general sigue el flujo esquematizado en el modelo básico de solución, figura 3.1. El proceso se detalla a continuación:

1. Comienza con la definición de una instancia del problema la cual se carga para iniciar el método de solución.

2. Una vez que se tiene cargada la definición, el método inicializa el Algoritmo Genético con poblaciones de individuos creados al azar. Cada individuo representa una hiperheurística.

3. Los individuos se evalúan mediante la evaluación de la calidad de la solución obtenida mediante la aplicación de la hiperheurística que representan al problema. 4. Entonces se procede con la selección, cruce y mutación de los mismos para formar

nuevos individuos que representen otras hiperheurísticas.

5. En este momento se salta al paso 3 y se continúa el proceso hasta que un cierto número de ciclos se alcance o un criterio de terminación se cumpla.

6. Al final el mejor individuo obtenido durante todo el proceso se selecciona y se aplica para resolver la instancia del problema con lo cual se obtiene la solución final.

3.2. Problemas

Las instancias del problema son analizadas más detalladamente en el capítulo 4, no obstante en esta sección se mencionará sus características elementales que guardan en común todas las instancias probadas a lo largo de la experimentación, así como algunas definiciones importantes.

Algunas definiciones importantes dentro del contexto de la especificación del pro-blema son:

Piezas. Conjunto de figuras rectangulares que se desea obtener de la materia prima.

Objetos. Conjunto de figuras rectangulares que representan la materia prima. Las características elementales son:

(51)

• Todas las piezas deben ser cortadas de los objetos.

• El número y tamaño de los objetos es tal que lo anterior es factible. • El conjunto de objetos es de igual tamaño.

• Todas las piezas y objetos son de forma rectangular. • Las piezas pueden ser rotadas en 90 grados.

En las siguientes secciones se detallan las partes componentes del método de solu-ción y la solusolu-ción.

3.3. Hiperheurísticas

El modelo básico de solución tiene como principal fundamento el utilizar una hiperheurística para resolver instancias del problema. Está hiperheurística es creada mediante un Algoritmo Genético que evoluciona poblaciones de individuos que repre-sentan hiper heurísticas.

Al final del proceso la hiperheurística que se utilizará para resolver el problema será la que esté codificada por el mejor individuo.

Como ya se ha descrito anteriormente una hiperheurística es un conjunto de heurísticas en donde se va utilizando una a una secuencialmente sobre la instancia del problema hasta que ciertas condiciones de cambio se cumplen. El único requisito para las heurísticas utilizadas es que sean compatibles entre sí, es decir, que puedan ejecutarse en un determinado período indistintamente.

Considerando lo anterior lo único restante es, obviamente, que las heurísticas sean aplicables al problema y una forma de evaluar el resultado obtenido mediante la hiper-heurística, es decir, una forma de evaluar la calidad de la solución.

A continuación se describen brevemente las características y tipo de heurísticas utilizadas para construir las hiperheurísticas.

3.4. Heurísticas

(52)

conjunto de piezas la siguiente que deberá intentar ser acomodada dentro de los obje-tos. Las heurísticas de acomodo se usan para saber el lugar donde quedará colocada la pieza escogida en ese momento. Cada heurística simple en realidad es una combinación de una heurística de selección y una de acomodo.

Se escogieron nueve heurísticas de selección divididas en tres grupos, cada grupo selecciona las piezas por una propiedad específica. El primer grupo lo hace de acuerdo a su área, el segundo de acuerdo a su altura y el tercero de acuerdo a su anchura. Cada grupo se subdivide en tres heurísticas las cuales eligen la siguiente pieza tomando el ma-yor, el menor o el promedio de la propiedad del grupo. Este conjunto de heurísticas fue obtenido tomando y modificando ideas de otros trabajos relacionados con optimización de corte de material en una dimensión que usan técnicas de selección como Next Fit Decreasing [24].

La colección de Heurísticas de Acomodo utilizadas en la investigación pertenecen a una clase con estabilidad inferior-izquierda, es decir, todas las piezas están ajustadas de manera que ninguna puede ser movida hacia su parte inferior ni hacia su izquierda sin tener que traslaparse con otras piezas. La definición de esta colección está influen-ciada directamente por el trabajo desarrollado por Hopper [22].

Las cinco heurísticas de acomodo utilizadas fueron obtenidas de la literatura. Las primeras dos son BL Algorithm [23] y BLLT Algorithm [27]. Estas se basan en deslices para encontrar la posición en el que las piezas quedarán posicionadas. Las siguientes dos heurísticas BLF Algorithm [6] y BLFR90 Algorithm1 se basan en inserciones, lo cual resulta en un proceso más complejo pero con la posibilidad de ocupar áreas vacías que se encuentren encerradas por otras piezas ya colocadas. Y por último la BLD Algo-rithm [22] la cual funciona de manera parecida a las heurísticas de deslizamiento pero con una primera fase donde se lleva a cabo una inserción.

Además de estas heurísticas también se trabajó con la posibilidad de rotar las piezas en 90 grados. Esto se hizo con la finalidad de enriquecer más la expresividad de la hiperheurística ya que al rotar las piezas en 90 grados se obtiene una configuración distinta que en algunas ocasiones es mejor que la obtenida al dejar las piezas en su posición original. La rotación de las piezas se hace después de aplicar la heurística de selección y antes de la heurística de acomodo. Se incluyeron cuatro heurísticas de rotación las cuales eran:

• No rotar.

1Esta es una modificación de la BLF Algorithm en donde se prueba la figura en su posición normal

Figure

Figura 1.1: Esquema general del problema de corte de material en dos dimensiones.
Cuadro 2.3: Esquema delongitud cruce de dos punto en cromosomas de números enteros de 7 con punto de cruce en 3 y 6.
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

•cero que suplo con arreglo á lo que dice el autor en el Prólogo de su obra impresa: «Ya estaba estendida esta Noticia, año de 1750; y pareció forzo- so detener su impresión

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

por unidad de tiempo (throughput) en estado estacionario de las transiciones.. de una red de Petri

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,

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