tesis-programacion corrugadora

download tesis-programacion corrugadora

of 72

Transcript of tesis-programacion corrugadora

  • 7/24/2019 tesis-programacion corrugadora

    1/72

    Departamento de Computacin - Facultad de Ciencias Exactas y Naturales

    Universidad de Buenos Aires

    Tesis de Licenciatura

    Mtodos basados en programacin lineal entera para el problema deplanificacin de corrugadoras por tramos consecutivos

    Alumno: Silvina LuceroLU: 641/[email protected]

    Director: Dr. Javier [email protected]

    CoDirector: Lic. Federico [email protected]

  • 7/24/2019 tesis-programacion corrugadora

    2/72

    Agradecimientos

    A Javi por su infinita paciencia, sus consejos, sus explicaciones y sus correcciones. A Fede porlas buenas ideas, la buena onda y la completa predisposicin. A Leo por aguantarme duranteeste perodo, por prestarme a Josephina para los experimentos, por darme aliento y por estarsiempre incondicional a mi lado. A mi familia y amigos por escucharme y apoyarme en todomomento.

  • 7/24/2019 tesis-programacion corrugadora

    3/72

    Resumen

    Una corrugadora es una mquina capaz de realizar cortes longitudinales y transversalespara formar planchas de cartn de diferentes dimensiones. El problema de cortes por tramosconsecutivos(PCTC) consiste en encontrar un programa de cortes que cumpla un conjuntode pedidos minimizando el desperdicio de materia prima, con la restriccin extra de que no sepuede comenzar la produccin de un pedido si hay ms de un pedido con produccin parcialy an no terminado.

    El PCTC surge en el contexto de mquinas corrugadoras que no tienen mucho espaciofsico a la salida de la mquina, con lo cual no es posible tener muchos bancales abiertos en unmomento dado (en cada momento de la produccin se tiene un bancal abierto por cada pedidoen produccin y an no terminado). Este problema est relacionado con el problema de mi-nimizacin de discontinuidades(MDP), que consiste en encontrar un programa de cortes queminimice la cantidad de veces que un pedido se recomienza dentro de dicho programa [6, 10].En nuestro caso particular, una solucin ptima para el MDP con cero discontinuidades siexiste corresponde a una solucin factible para el PCTC.

    En esta tesis se propone un enfoque basado en programacin lineal entera para el PCTC.Se plantean cuatro modelos de programacin lineal entera y se realizan experimentos com-putacionales con el objetivo de determinar cul de ellos tiene mejor performance en la prctica.Se presentan familias de desigualdades vlidas para uno de estos modelos, se disean procedi-mientos de separacin para las familias de desigualdades halladas y se propone un algoritmobranch and cut. Finalmente, se propone una heurstica primal basada en programacin entera,y se evala su impacto computacional sobre instancias reales.

  • 7/24/2019 tesis-programacion corrugadora

    4/72

    Abstract

    A corrugator is a machine performing longitudinal and transversal cuts in order to producerectangular pieces of corrugated cardboard. The consecutive combinations cutting problem(CCCP) consists in finding a cutting program satisfying a set of orders while minimizing thetotal waste, with the additional constraints that production of an order cannot start if thereexists more than one unfinished order with partial production.

    The CCCP arises in the context of corrugators with small space at the machine outlet,hence it is not possible to have many open pallets at any moment in time (there exists anopen pallet for each unfinished order). This problem is closely related to the minimization ofdiscontinuities problem(MDP), which consists in finding a cutting program minimizing thenumber of times that production of an unfinished order is restarted [6, 10]. In our particularcase, an optimal solution for the MDP if exists corresponds to a feasible solution to theCCCP.

    In this thesis we propose an integer programming approach for the CCCP. Four integerprogramming models are presented, and computational experiments are performed in order todetermine which of them has the best performance. Several families of valid inequalities arepresented, together with associated separation procedures. Finally, an integer-programming-based primal heuristic is proposed, and its computational impact is evaluated on real-lifeinstances.

  • 7/24/2019 tesis-programacion corrugadora

    5/72

    ndice general

    1 Introduccin 3

    1.1 Programacin lineal entera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.2 Cartn corrugado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Problema de cutting stock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4 Problema de cortes por tramos consecutivos . . . . . . . . . . . . . . . . . . . 61.5 Resumen del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2 Modelos de programacin lineal entera 9

    2.1 Modelo 1: Anillo-Estrella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Modelo 2: Grafo caterpillar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Modelo 3: Caterpillar con cortes . . . . . . . . . . . . . . . . . . . . . . . . . 142.4 Modelo 4: Cuadrtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.5 Comparaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.5.1 Anlisis de los tiempos de ejecucin . . . . . . . . . . . . . . . . . . . 172.5.2 Caractersticas de las soluciones obtenidas . . . . . . . . . . . . . . . . 20

    3 Desigualdades vlidas 24

    3.1 Familias de desigualdades vlidas . . . . . . . . . . . . . . . . . . . . . . . . . 243.1.1 Desigualdades Garra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.1.2 Desigualdades Ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.1.3 Desigualdades Vecinos . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.1.4 Desigualdades para los nodos internos y externos . . . . . . . . . . . . 26

    3.2 Algoritmos de separacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3 Experiencia computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3.3.1 Desigualdades Garra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3.2 Desigualdades Ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3.3 Desigualdades Vecinos . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3.4 Desigualdades para los nodos internos y externos . . . . . . . . . . . . 30

    3.4 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4 Heurstica primal 39

    4.1 Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.1.1 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    4.2 Experiencia computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    5 Conclusiones 48

    1

  • 7/24/2019 tesis-programacion corrugadora

    6/72

    A Implementacin 50

    A.1 Generacin y ejecucin de los modelos . . . . . . . . . . . . . . . . . . . . . . 50A.1.1 Archivos auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50A.1.2 Algoritmos asociados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    A.2 Algoritmos Generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53A.2.1 Armado de un grafo a partir de una solucin . . . . . . . . . . . . . . 53A.2.2 Otros algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    A.3 Algoritmo branch and cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56A.3.1 LazyConstraintCallback: Ciclo y Garra . . . . . . . . . . . . . . . . . 56A.3.2 IncumbentCallback: Validacin del grafo . . . . . . . . . . . . . . . . . 58A.3.3 UserCutCallback: Cortes . . . . . . . . . . . . . . . . . . . . . . . . . . 58A.3.4 HeuristicCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    B Programa PCTC 64

  • 7/24/2019 tesis-programacion corrugadora

    7/72

    Captulo 1

    Introduccin

    1.1 Programacin lineal entera

    Los orgenes de la disciplina conocida comoinvestigacin operativase remontan a la segundaguerra mundial. Durante la guerra, el gobierno britnico convoc a prestigiosos cientficos paraayudar a encontrar buenas estrategias en la planificacin de recursos a fin de reducir los costosdel ejrcito y contribuir a los objetivos blicos. En 1942, George Dantzig aplic por primeravez una versin preliminar del mtodo simplexpara determinar la localizacin ptima de lasantenas y la mejor distribucin de sus seales. Gracias a este estudio, el ejrcito britnicoconsigui duplicar la efectividad del sistema de defensa y evitar ataques areos alemanes. Elmtodo qued en secreto hasta 1947 cuando Dantzig lo formul en trminos matemticos.

    Ese mismo ao John von Neumann desarrollo la teor a de dualidad para programacin lineal[15].Al finalizar la segunda guerra mundial, se observ que estas herramientas desarrolladas en

    un contexto blico tambin podan ser aplicadas para resolver problemas no militares. Conestos fines, en 1947 se crea un grupo llamado scientific computation of optimum programs(SCOOP). Muchos cientficos importantes de la poca fueron convocados. Habitualmente seconsidera que con la creacin de este grupo se formaliz la existencia de la investigacinoperativa [12].

    En 1948, durante la guerra fra, la URSS bloque las comunicaciones terrestres con Berlnsiendo imposible para Estados Unidos e Inglaterra proporcionar suministros para dicha ciu-dad. El grupo SCOOP liderado por Dantzig dise un plan de abastecimiento areo que, en

    poco tiempo, logr igualar los suministros realizados por carretera y ferrocarril [16].Desde entonces, el uso de modelos de programacin lineal y programacin lineal enterapara resolver problemas de optimizacin combinatoria ha ido en aumento, ayudado por elincremento de la potencia de cmputo y la mejora en los algoritmos y paquetes de software quelos implementan. Este tipo de tcnicas es usado en diversas reas como telecomunicaciones,planificacin de tareas en entornos industriales, problemas de logstica, etc.

    Un problema de programacin lineal es el problema de optimizar una funcin objetivolineal sobre un conjunto de puntos definido por desigualdades lineales en las variables. Unproblema de programacin lineal enteraes un problema lineal que requiere que todas susvariables sean enteras, si dichas variables slo pueden tomar valores en {0, 1} entonces sedice que es un problema de programacin entera 0-1. Si algunas de las variables pueden

    tomar valores enteros y otras pueden tener valores fraccionarios se dice que es un problema

    3

  • 7/24/2019 tesis-programacion corrugadora

    8/72

    Captulo 1. Introduccin 4

    de programacin lineal mixto.Cuando el problema de programacin lineal es entero o mixto, se suelen utilizar algoritmos

    basados en programacin lineal con un esquema denominado branch and bound. Este algo-ritmo utiliza la tcnica de divide and conquerdividiendo recursivamente el problema originalen subproblemas del mismo tipo pero idealmente ms sencillos. Se genera as un rbol deenumeracincuyos nodos son los subproblemas. En cada nodo se resuelve larelajacin linealdel subproblema (es decir, el problema de programacin lineal obtenido eliminando las restric-ciones de integralidad sobre las variables) y el resultado permite obtener una cota dual delptimo del subproblema. La adicin de planos de cortepermite adems ajustar la relajacinlineal agregando restricciones lineales vlidas. Existen esquemas generales de generacin deplanos de corte (como por ejemplo los cortes de Gomory), y es habitual tambin estudiarfamilias de planos de corte para problemas particulares. Si durante el procedimiento branchand boundse aplican planos de cortes, se dice que es un algoritmo branch and cut. Este tipode algoritmos resulta til para muchos problemas si se encuentran familias de desigualdadesvlidas que ajusten significativamente la relajacin lineal de la formulacin inicial [17].

    1.2 Cartn corrugado

    Las cajas de cartn corrugado se utilizan para transporte de mercadera, desde frutas yverduras hasta mquinas industriales. La funcin primordial es proteger los elementos quecontienen mediante un sistema especial de amortiguacin. Sus caractersticas livianas, re-sistentes y econmicas las han convertido en el mtodo ms popular y efectivo de embalajepara trasportar bienes manufacturados.

    Figura 1.1: Papel corrugado. [3]

    El cartn corrugado (ver Figura 1.1)est formado por capas de papel, habitual-mente llamadas liners y ondas. Los linersson papeles sin ondular, mientras que losondas son papeles acanalados que se ad-hieren a los liners mediante pegamento. Ex-isten varios tipos de cartn corrugado: cor-rugado de una cara (un liner y un onda),corrugado sencillo (dos liners y un onda),doble corrugado (tres liners y dos ondas in-

    tercalados) y triple corrugado (cinco linersy dos ondas intercalados).

    Una lnea de produccin de cartn corrugado es una secuencia de pasos donde se trasfor-man bobinas de papel en cajas de cartn. El papel es tratado mediante diferentes nivelesde calor y humedad para hacerlo ms flexible al momento del corrugado, luego se realiza elproceso de acanalado hasta obtener la onda. La siguiente fase consiste en pegar los liners ylas ondas, para lo cual se utiliza calor y adhesivo. Por ltimo, este flujo continuo de cartncorrugado pasa por una etapa de cortes longitudinales y transversales para formar planchasrectangulares segn las especificaciones puntuales de cada pedido.

    Estas planchas se estacionan en bancales o pallets durante unas horas, y luego pasan

    por los procesos de impresin, troquelado y pegado. Por ejemplo, la Figura 1.2 muestra una

  • 7/24/2019 tesis-programacion corrugadora

    9/72

    Captulo 1. Introduccin 5

    Figura 1.2: Plancha de cartn

    plancha troquelada. Las lneas punteadas corresponden a los trazadores, que se utilizan paraplegar la caja y hacer que tome su forma final. El resultado final es una caja impresa y pegada.

    1.3 Problema de cutting stock

    Elproblema de cutting stock(CSP) es un problema muy estudiado por sus aplicaciones indus-triales (papel, vidrio, cermica, etc.). En un sentido amplio, el problema consiste en encontrarun plan de cortes para pedidos de diferentes configuraciones de modo tal de minimizar el des-perdicio de la materia prima usada. En este trabajo nos enfocaremos en el estudio del CSPconuna dimensin [14] para el armado de cajas de cartn. En este contexto, se busca minimizarel desperdicio de cartn.

    La primer formulacin del CSPfue dada en el ao 1939 por Leonid Kantorovich [8]. En19611963, Paul Gilmore y Ralph Gomory lograron avances importantes en la resolucin del

    problema para una dimensin al proponer una estrategia eficiente que utilizapatrones de corte[4, 5].Un patrn est dado por una lista de pedidos que es factible de cortar en forma transversal

    en la corrugadora. Sea Qel conjunto de patrones. Para cada j Q, se define la variable xjcomo el nmero de veces que se usa el patrn j . Sea adems Pel conjunto de pedidos. Parai P y j Q, el valor aij representa la cantidad de veces que aparece el pedido i en elpatrn j y el valor cj representa el costo de utilizar el patrn j . Finalmente, para cada i Pllamamos qia la cantidad de artculos (planchas, en nuestro caso) solicitados por el pedido i.Con estas definiciones, el CSP se define del siguiente modo:

    mnjQ cjxj

    jQ

    aijxj qi i P (1.1)

    xj Z+ j Q (1.2)

    La restriccin (1.1) asegura que la cantidad producida sea, como mnimo, la cantidadsolicitados qi para la instancia i y la restriccin (1.2) establece que la cantidad de patronesusados para el patron i sea entera y no negativa.

    La cantidad de patrones crece exponencialmente con la cantidad de pedidos, lo que haceimposible enumerar las variables. En 1961 Gilmore y Gomory aplicaron por primera vez

    una tcnica que permite manejar casos en los cuales la cantidad de variables es grande perocon una cantidad de restricciones relativamente pequea. Esta tcnica recibi el nombre de

  • 7/24/2019 tesis-programacion corrugadora

    10/72

    Captulo 1. Introduccin 6

    generacin de columnas. Dicho algoritmo comienza con un problema maestro utilizando unpatrn trivial e itera buscando patrones que mejoren la funcin objetivo. En cada paso, seutiliza una instancia especial del problema de la mochila para determinar si existe un patrnque mejora la funcin objetivo [4, 5].

    1.4 Problema de cortes por tramos consecutivos

    Definimos en esta seccin el problema de cortes por tramos consecutivos (PCTC) sobre elque trabajamos en esta tesis. En el contexto del PCTC, un pedidoest especificado por unaterna Pi = (ai, li, qi) R2+ Z+ compuesta por el ancho ai y el largo li de las planchas,junto con la cantidad qide planchas a fabricar [11]. Tpicamente, una corrugadora cuenta conla posibilidad de fabricar al mismo tiempo ms de un pedido, dado que incluye ms de una

    mesa de corte transversal adems de un conjunto de cuchillas longitudinales. La configuracinhabitual incluye dos mesas, con la posibilidad de combinar entre s pedidos de hasta dos largosdistintos [2], y asumimos en este trabajo que sta es la situacin.

    Llamamos A R+al ancho de la corrugadora y [0, 1]al porcentaje de refile mximo.Suponemos dado un conjunto de pedidos P = {1, . . . , n}, de modo tal que cada pedido itiene asociada una terna Pi como en el prrafo anterior. Una combinacines una tupla C=(i,j,n1, n2, m) P2Z2+R+, donden1y n2representan la cantidad de cortes longitudinalespara el pedidoi y j respectivamente, de modo tal que (1 )A n1ai+ n2aj A (es decir,es una secuencia de planchas de dos pedidos cuyos anchos sumados no exceden el ancho dela corrugadora ni estn por debajo de la tolerancia para el refile). El valor mrepresenta losmetros linealesque se fabrican de la combinacin. La cantidad de planchas programadas del

    pedido i en la combinacin es m n1/li, y la cantidad de planchas programadas del pedido jen la misma es mn2/lj. En el contexto de la industria del cartn corrugado, una combinacina veces se denomina un tramo.

    Un programa de corteses una secuencia S= (C1, . . . , C k)de combinaciones, de modo talque para cada pedido i P, la suma de las cantidades programadas del pedidoi en todas lascombinaciones est dentro del intervalo [qi(1 p), qi(1 +p)], dondep [0, 1]es un porcentajede tolerancia (tpicamente, p 0,05). Un problema clsico en este contexto es el problema decutting stockbidimensional que, dado un conjunto de pedidosP, un ancho de corrugadoraAy un porcentaje de refile mximo , pide encontrar un programa de cortes factible si existeque minimice el refile total.

    Un programa de cortes por tramos consecutivoses un programa de cortes Stal que para

    cada pedido i P, las combinaciones en las que aparece el pedido i aparecen en formaconsecutiva enS. Dado un conjunto de pedidosP, un ancho de corrugadoraAy un porcentajede refile mximo , el problema de programacin de corrugadoras por tramos consecutivos(PCTC) consiste en hallar un programa de cortes por tramos consecutivos. Adicionalmente,se puede solicitar que el programa obtenido sea el que minimiza el refile total entre todos losprogramas por tramos consecutivos.

    Por ejemplo, la Tabla 1.1 muestra una instancia del PCTC, compuesta por un conjuntode pedidos. Para cada pedido, se especifica el ancho y largo de la plancha y la cantidad deplanchas a fabricar. Para dicha instancia, la Figura 1.3 muestra una solucin factible al prob-lema PCTC. Cada fila corresponde a una combinacin, y a la derecha se muestran los metroslineales correspondientes a cada una. Esta solucin est compuesta por cinco combinaciones.

    Las dos primeras consisten de los pedidos 4 y 5 autocombinados, respectivamente. Luego

  • 7/24/2019 tesis-programacion corrugadora

    11/72

    Captulo 1. Introduccin 7

    Pedido Ancho Largo Canti dad

    pedido 1 476 476 950

    pedido 2 455 455 2000pedido 3 450 450 2000

    pedido 4 450 450 2000

    pedido 5 405 405 3120

    Cuadro 1.1: Instancia de ejemplo

    Figura 1.3: Solucion PCTC para la instancia 3

    se fabrican los pedidos 2 y 3 junto con el pedido 6, que finaliza la secuencia autocombinado.Si la ltima combinacin se intercambia con la primera, entonces la solucin ya no es factiblepara el PCTC porque el pedido 6 no se estara fabricando en combinaciones consecutivas.Es interesante notar que no siempre se pueden reordenar las combinaciones de una progra-macin que cumple las cantidades de todos los pedidos (pero que no es una solucin portramos consecutivos) para que sea una solucin factible del PCTC.

    El PCTC est relacionado con el problema de minimizacin de discontinuidades(MDP),que consiste en encontrar un programa de cortes que minimice la cantidad de veces que unpedido se recomienza dentro del programa de cortes [6, 10]. En nuestro caso particular, unasolucin ptima para el MDP con cero discontinuidades si existe corresponde a una solucin

    factible para el PCTC. Otros problemas relacionados son el problema de minimizacin debancales abiertos(minimization of open stack problem, MOSP) que pide minimizar el nmeromximo de bancales abiertos en todo momento, y el problema de minimizacin de la dispersinde rdenes (minimization of order spread problem, MORP) que pide minimizar el tiempomximo que un bancal permanece abierto. El MOSP ha sido muy estudiado en la literaturaespecializada [6], pero tanto el MORP como el MDP no han recibido tanta atencin. Noestamos al tanto de estudios sobre el MDP con cero discontinuidades aplicados al problemade minimizacin del refile en corrugadoras. Por otro lado, el PCTC es estudiado en [13] dondese presentan dos heursticas basadas en grafos caterpillar. En dicho trabajo se plantea unmodelo basado en patrones y se utiliza la estructura de los grafos caterpillarpara llegar auna solucin factible.

  • 7/24/2019 tesis-programacion corrugadora

    12/72

    Captulo 1. Introduccin 8

    1.5 Resumen del trabajo

    Este trabajo tiene por objetivo estudiar el problema PCTC por medio de tcnicas de pro-gramacin lineal entera. Se plantean cuatro modelos diferentes que surgen de distintos en-foques, incluyendo (a) adaptaciones de modelos planteados previamente para el problemade m-anillo-estrella, (b) la observacin de que toda solucin del PCTC puede ser modeladautilizando grafos caterpillary (c) la enumeracin de patrones de pedidos vlidos. De estosmodelos implementados se selecciona aquel cuyo tiempo de optimizacin es mejor utilizandouna muestra reducida de 34 instancias de pedidos reales con diferentes configuraciones. Sobredicho modelo se estudian familias de desigualdades vlidas y se propone un algoritmo de tipobranch and cut. Despus de analizar los resultados de este algoritmo, se propone y estudiauna heurstica primal basada en programacin lineal entera.

    El trabajo continua organizado de la siguiente manera:

    Captulo 2 - Modelos de programacin lineal entera: Este captulo detalla cuatro mod-elos de programacin lineal entera planteados para el PCTC, se explican los conceptosbsicos de cada idea de modelado y se hace una comparacin emprica de estos modelos.Finalmente, se estudian las caractersticas de las soluciones arrojadas por cada modelo.

    Captulo 3 - Desigualdades vlidas: De los cuatros modelos se selecciona aquel para elcual un algoritmo branch and boundobtuvo los mejores resultados computacionales.Este captulo estudia diferentes familias de desigualdades para dicho modelo, junto conalgoritmos de separacin para estas familias. Se presentan resultados computacionalesque muestran que las desigualdades halladas no proporcionan mejoras importantes, y

    se ofrece una hiptesis que podra explicar este hecho. Captulo 4 - Heurstica primal: Se propone e implementa una heurstica primal basada

    en programacin lineal entera para el problema, con la intencin de mejorar las cotasprimales durante la ejecucin de un algoritmo branch and bound. Se analizan distintoscriterios de parada y se presentan resultados computacionales.

    Captulo 5 - Conclusiones: Se mencionan las conclusiones del trabajo y algunas lneaspara continuar a futuro.

  • 7/24/2019 tesis-programacion corrugadora

    13/72

    Captulo 2

    Modelos de programacin linealentera

    Presentamos en este captulo cuatro modelos alternativos de programacin lineal entera parael PCTC. Se realizan a continuacin experimentos computacionales sobre instancias reales,para determinar cul de ellos tiene mejor performance, con el objetivo de tomarlo como basepara el resto del trabajo.

    Llamamos P ={1, . . . , n}al conjunto de pedidos y cada pedido j Ptiene asociada unacantidad qj a fabricar. Sea ij Z+ la cantidad de combinaciones en las que participan lospedidos i y j, y denotamos por niijc a la cantidad de apariciones del pedido i en la c-simacombinacin entre los pedidos i y j , parac = 1, . . . , ij. Si un pedido i P se autocombinar,

    entonces tenemos ii> 0.SeaG = (P, E)el grafo de combinaciones, que tiene un nodo por cada pedido y una aristaij por cada par de pedidos i, j tales que ij > 0. Es importante observar que el grafo decombinaciones es unpseudografo si existen pedidos autocombinados.

    Llamamosaiy lial ancho y largo de las cajas del pedidoi, respectivamente. Parai, j Py c = 1, . . . , ij, definimosM AXijc = max(liqi/niijc , ljqj/n

    jijc)como una cota superior a los

    metros lineales que se fabrican en la c-sima combinacin entre los pedidos i y j. Adems,definimos el refileDijc = A (niijcai+ n

    jijcaj)en centmetros de esta combinacin, donde A

    es el ancho de la corrugadora.

    2.1 Modelo 1: Anillo-Estrella

    Un grafo anillo-estrella es un grafo compuesto por un conjunto de ciclos (en este contextollamados anillos) y tal que cada nodo o bien est dentro de un anillo o bien est unido poruna arista a otro nodo que s est dentro de un anillo (llamamos a esta arista una conexinestrella). La Figura 2.1 tiene un ejemplo de un grafo 3-anillo-estrellacon tres anillos y cincoconexiones estrella.

    Para esta formulacion se adapt el modelo propuesto en [1] para el problema de m-anillo-estrella con capacidades. Es interesante observar que las soluciones factibles del PCTC tienenuna estructura similar a los anillos-estrella estudiados en [1], a pesar de que se trata deproblemas que surgen en contextos muy distintos. En efecto, una secuencia de combinacionesque fabrica en forma completa un conjunto de pedidos se corresponde con un camino en el

    grafo de combinaciones, eventualmente con algunos nodos unidos al camino por medio de

    9

  • 7/24/2019 tesis-programacion corrugadora

    14/72

    Captulo 2. Modelos de programacin lineal entera 10

    Figura 2.1: Grafo anillo-estrella con tres anillos y cinco conexiones estrella.

    Figura 2.2: Grafo anillo-estrella asociado con la solucin de la Figura 1.3

    una conexin estrella. Esta estructura en el grafo determina que cada pedido se fabrica enun conjunto de combinaciones consecutivas, siempre que las combinaciones se fabriquen en elorden de recorrida del camino.

    Por ejemplo, la Figura 2.2 muestra grficamente la solucin factible de la Figura 1.3 parala instancia de la Tabla 1.1. Al igual que el modelo presentado en [1], se generan dos nuevos

    nodosd0y d1que contienen el comienzo y el final de cada anillo. La solucin ptima de esteejemplo induce un grafo con tres anillos con un pedido en cada uno y dos conexiones estrellaconectados al pedido 6.

    Para plantear el modelo anillo-estrella, introducimos las siguientes variables. Para i P {d0} y j P {d1} con i = j, la variable binaria xij toma el valor 1 si i y j estnconectados de manera directa en un anillo, y 0 en caso contrario. En forma similar, parai, j P con i = j, la variable binaria yij toma el valor 1 si i est conectado a j por unaconexin estrella y 0 en caso contrario. Para evitar la aparicin de anillos que no comiencenen d0o terminen end1, parai Pdefinimos la variable entera zi {1, . . . , |P|}que contieneel nmero de orden del pedido identro del anillo al cual pertenece, salvo que est unido alanillo por medio de una conexin estrella. Finalmente, para i, j Py para c {1, . . . , ij},

    consideramos la variable real mijc 0 que representa los metros lineales por los cuales se

  • 7/24/2019 tesis-programacion corrugadora

    15/72

    Captulo 2. Modelos de programacin lineal entera 11

    fabrica lac-sima combinacin que involucra los pedidosiyj. Con estas definiciones, podemosplantear el modelo de la siguiente forma.

    1. La funcin objetivo solicita que se minimice el desperdicio total.

    mniP

    jP

    ijc=1

    mijc Dijc

    2. La primera restriccin especifica que la cantidad de anillos que salen del nodo d0 es lamisma que la cantidad de anillos que llegan al nodo d1.

    jP

    xd0,j =kP

    xk,d1

    3. Todo pedido est en algn anillo (es decir, recibe una conexin a travs de una variablex desde otro pedido o bien desde d0) o est conectado a un anillo por una conexinestrella (es decir, es el origen de una conexin estrella a travs de una variable y conotro pedido).

    jP{d0},i=j

    xji +

    jP,i=j

    yij = 1 i P

    4. Todo pedido tiene un arco de entrada si y solo si tiene un arco de salida.

    jP{d0},i=j

    xji =

    jP{d1},i=j

    xij i P

    5. Si j es un nodo estrella que est conectado con un nodo i a travs de una conexin

    estrella (es decir, yji = 1), entonces i tiene que estar en un anillo.yji

    kP{d0}

    xki i P, jP, i=j

    6. Las siguientes restricciones definen valores vlidos para las variablesz, y funcionan comorestricciones de rompimiento de subtours.

    zj (zi+ 1) |P| (1 xij) i, j P, i=j

    7. La cantidad de cajas producidas del pedidoitiene que estar dentro del rango permitido[(1 p)qi, (1 +p)qi].

    qi(1 p) jP

    ij

    c=1

    niijcmijc/li qi(1 +p) i P

    8. Si mijc > 0, entonces tiene que estar activada o bien una conexin anillo o bien unaconexin estrella entre i y j .

    M AXijc(xij+ yij) mijc i, jP, i=j, c= 1, . . . , ij

    9. Restricciones que especifican la naturaleza de las variables.

    xij {0, 1} i P {d0}, j P {d1}

    yij {0, 1} i, j P

    zi Z+ i P

    mijc 0 i, j P, c= 1, . . . , ij

  • 7/24/2019 tesis-programacion corrugadora

    16/72

    Captulo 2. Modelos de programacin lineal entera 12

    Figura 2.3: Un grafo caterpillar.

    Figura 2.4: Dos soluciones factibles representadas como unin disjunta de grafos caterpillarpara la instancia de la Figura 2.1

    2.2 Modelo 2: Grafo caterpillar

    Un grafo caterpillar (o grafo cienpis) es un grafo tal que si se eliminan todos sus nodosde grado 1 (es decir, sus hojas) resulta en un camino o en un grafo vaco. Por ejemplo, laFigura 2.3 es un ejemplo de un grafo caterpillar.

    En este modelo se formula el problema aprovechando que el grafo inducido por cualquiersolucin factible del problema es la unin disjunta de grafos caterpillar (exceptuando lospedidos autocombinados). Al igual que en el modelo anterior, cada combinacin tiene unavariable asociada que representa los metros lineales que se fabrican de la combinacin, ysi esta variable tiene un valor positivo entonces se activa la arista correspondiente delgrafo de combinaciones. Las aristas activadas deben formar una unin disjunta de grafoscaterpillar. Por ejemplo, los grafos de la Figura 2.4 corresponden a dos soluciones factiblespara la instancia de ejemplo presentada en la Figura 2.1.

    Decimos que un nodoi Pes unnodo internosi tiene grado mayor o igual a 2 en el grafo

  • 7/24/2019 tesis-programacion corrugadora

    17/72

    Captulo 2. Modelos de programacin lineal entera 13

    inducido por la solucin factible, y en caso contrario decimos que es una hoja. Para i P,definimos la variable binariax

    ique toma el valor 1 si el nodo icorresponde a un nodo interno

    y toma el valor 0 en caso contrario. En forma similar, para i Pdefinimos la variable binariayi que toma el valor 1 si el nodo i es una hoja y toma el valor 0 en caso contrario.

    Para i, j P con i =j , definimos la variable binaria exij de modo tal que exij = 1si en el

    grafo inducido por la solucin existe una arista entre i y j y adems ambos nodos son nodosinternos, y exij = 0en caso contrario. En forma similar, para i, j P con i=j , definimos lavariable binariaeyijde modo tal quee

    yij = 1si existe una arista entre iyj y adems uno de los

    dos nodos es una hoja, y eyij = 0 en caso contrario. Finalmente, para i, j P yc = 1, . . . , ij,utilizamos la variable real mijc 0que representa los metros lineales fabricados de lac-simacombinacin entre los pedidos i y j .

    1. Al igual que con todos los modelos para el problema, la funcin objetivo especifica quese debe minimizar el desperdicio total.

    mniP

    jP

    ijc=1

    mijc Dijc

    2. El primer grupo de restricciones especifica que todo nodo debe ser o bien una hoja obien un nodo interno. Es importante notar que dentro de este modelo, los nodos quese autocombinan y estn aislados en el grafo inducido por la solucin pueden ser tantonodos internos como hojas.

    xi+ yi= 1 i P

    3. Para i, j P con i =j, la variable eyi,j puede valer 1 slo si i o j son hojas.

    eyij yi+ yj i, jP, i=j

    4. Para i P, si yi= 1entonces el nodo i es una hoja y por lo tanto debe tener grado 1.

    yijP

    eyij |P| (1 yi) + yi i P

    5. Los nodos internos tienen como mximo grado 2 entre nodos internos. Dejamos libre laposibilidad de que un nodoicon xi= 1tenga grado menor que 2, dado que no afecta la

    factibilidad de las soluciones obtenidas e impone una menor restriccin sobre la reginfactible.

    jP

    exij 2xi i P, i=j.

    6. El grafo inducido por la solucin factible no puede tener ciclos entre los nodos internos.Para esto, se imponen las siguientes restricciones de eliminacin de subtoursentre losnodos internos. Llamamos Cal conjunto de todos los ciclos de G, considerados comoconjuntos de aristas.

    ijC

    exij |C| 1 C C

  • 7/24/2019 tesis-programacion corrugadora

    18/72

    Captulo 2. Modelos de programacin lineal entera 14

    7. Para i, j P con i = j y para c = 1, . . . , ij, si mijc > 0 entonces la arista ij debeformar parte del subgrafo de G inducido por la solucin factible.

    mijc M AXijc(exij+ e

    yij) i, jP, c= 1, . . . , ij

    8. La cantidad de cajas producidas de cada pedido tiene que estar dentro del rango per-mitido.

    qj(1 p)iP

    ijc=1

    njijcmijc/lj qj(1 +p) j P

    9. Simetra para las variables exi,j y eyij.

    exij = exji i, j P, i=j

    eyij = eyji i, j P, i=j

    10. Restricciones que especifican la naturaleza de las variables.

    xi {0, 1} i P

    yi {0, 1} i P

    exij {0, 1} i, jP, i=j

    eyij {0, 1} i, jP, i=j

    mijc 0 i, j P, c= 1, . . . , ij

    2.3 Modelo 3: Caterpillar con cortes

    El modelo planteado en esta seccin se basa en la siguiente caracterizacin de los grafoscaterpillar. Ungrafo garra bipartito (bipartite claw) es un grafo de 7 nodos isomorfo al grafode la Figura 2.5.

    Teorema 1. (Lekkerkerker y Boland, 196x [9]) Un grafo conexo G es un grafo caterpillar siy slo si

    1. G no tiene ciclos.

    2. G no contiene ningngrafo garra bipartito como subgrafo inducido.En este modelo slo utilizamos variables binarias xij para cada i, j P con i = j, de

    modo tal que xij = 1si la solucin utiliza alguna combinacin que involucra los pedidos iyj, y xij = 0en caso contrario. Adems, para cada i, j Py para c = 1, . . . , ij, utilizamosla variable real mijc 0 que representa los metros lineales que se fabrican de la c-simacombinacin entre los pedidos i y j .

    1. La funcin objetivo especifica que se debe minimizar el desperdicio total.

    mn

    iP

    jP

    ijc=1

    mijc Dijc

  • 7/24/2019 tesis-programacion corrugadora

    19/72

    Captulo 2. Modelos de programacin lineal entera 15

    Figura 2.5: Un grafo garra bipartito.

    2. El primer grupo de restricciones especifica que el subgrafo de G inducido por las variablesxactivas no debe tener ciclos.

    ijC

    xij |C| 1 C C

    3. Sea Bel conjunto de todas las garras bipartitas de G (no necesariamente inducidas),consideradas como conjuntos de aristas. El siguiente grupo de restricciones especificaque el subgrafo de Ginducido por las variablesxactivas no debe tener garras bipartitas.

    ijB

    xij 5 C B

    4. Las siguientes restricciones especifican el vnculo entre las variablesx y m, de modo talque xij = 1 si mijc > 0 para algn c = 1, . . . , ij.

    mijc M AXijc xij i, j P, i=j, c= 1, . . . , ij

    5. Se fabrica la cantidad solicitada de cada pedido.

    qj(1 p)iP

    ijc=1

    njijcmijc/lj qj(1 +p) j P

    6. Las siguientes restricciones expresan que las variables xij y xji se consideran indistin-tamente, para i, j P.

    xij =xji i, j P

    7. Restricciones que especifican la naturaleza de las variables.

    xij {0, 1} i, jP, i=j

    mijc 0 i, j P, c= 1, . . . , ij

  • 7/24/2019 tesis-programacion corrugadora

    20/72

    Captulo 2. Modelos de programacin lineal entera 16

    2.4 Modelo 4: Cuadrtico

    Sea C el conjunto de todas las combinaciones posibles. Dado un pedido j P, llamamosC(j) Cal conjunto de las combinaciones que incluyen al pedido j. Llamamosta la cantidadmxima de combinaciones que estn presentes en la solucin, y definimosT ={1, . . . , t}.

    En este modelo representamos explcitamente el orden de las combinaciones en el pro-grama. Para esto, para cada i Cy cada k T se introduce una variable binaria xik demodo tal que xik = 1si la combinacin ies la k-sima combinacin del programa de cortes,y xik = 0en caso contrario. Adems, para cada i Cse tiene una variable real mi 0 querepresenta los metros lineales que se fabrican de la combinacin i.

    1. La funcin objetivo especifica que se debe minimizar el desperdicio total. Para i C,definimos Di como el desperdicio por metro lineal de la combinacin i.

    mniC

    midi

    2. El primer grupo de restricciones especifica que slo una combinacin es la k-sima dentrodel programa de cortes.

    iC

    xik 1 k T

    3. Los metros lineales de una combinacin son cero si la combinacin no se usa en elprograma de cortes. Para i C, llamamos M AXi a una cota superior de los metroslineales que se pueden fabricar de la combinacin i, calculada de la misma forma que

    en los modelos anteriores.

    mi M AXikT

    xik i C

    4. Se fabrica la cantidad solicitada de cada pedido, donde prodij representa la cantidad deplanchas fabricadas del pedidoj por cada metro lineal de la combinacin i, para i Cy j P:

    qj(1 p)

    iC(j)

    prodijmi qj(1 +p) j P

    5. Los tramos en los que participa un pedido son consecutivos. Si hay produccin delpedido j en el tramol, entonces la falta de produccin en el tramo k 1(conk 1> l)implica que no hay produccin en el tramo k para este pedido:

    iC(j)

    xik

    iC(j)

    xi,k1+ M

    1

    iC(j)

    xil

    j P, k, l T, l < k 1

    6. Restricciones que especifican la naturaleza de las variables.

    xik {0, 1} i C, k T

    mi 0 i C

  • 7/24/2019 tesis-programacion corrugadora

    21/72

    Captulo 2. Modelos de programacin lineal entera 17

    2.5 Comparaciones

    En esta seccin se comparan los cuatro modelos para 34 instancias de diversa dificultad. Lasinstancias utilizadas fueron extraidas de programas de produccin reales y ordenadas en formacreciente de acuerdo a la cantidad de pedidos que tiene cada una, siendo la ms pequea decinco pedidos diferentes con un promedio de 1100 planchas y la instancia ms grande de 55pedidos con un promedio de 4038 planchas cada uno.

    Si bien ningn pedido supera el ancho de la corrugadora, existen pedidos de ancho igualal ancho total, lo que hace imposible que se puedan combinar con otros pedidos. Alrededorde 600 pedidos tienen un ancho menor a 500 mm, 20 pedidos tienen anchos entre 500 mm y1000 mm, y 290 pedidos tienen anchos entre 1000 mm y 1400 mm. Las instancias incluyen untotal de 267988 metros cuadrados, con un promedio de 14482 metros cuadrados por instanciadonde la instancia ms pequea requiere procesar 818 metros cuadrados y la ms grandeinvolucra 38723 metros cuadrados.

    Para los experimentos se utiliz un ancho mximo de corrugadora de 1400 mm y undesperdicio en la cantidad total de planchas tolerablepdel 5 %. Los experimentos se realizaronen una computadora con procesador AMD FX(tm)-6100 Six-Core, 8GB de memoria RAM ycon un sistema operativo de 64 bits. Se utiliz el paquetecplex(CPLEX Optimization StudioAcademic Research Edition 12.3).

    Los modeloscaterpillary caterpillar con cortesinvolucran restricciones de rompimiento deciclos que estn compuestas por un nmero exponencial de desigualdades. Adems, el modelocaterpillar con cortesincluye restricciones de rompimiento de garras bipartitas, compuestaspor O(n7)desigualdades. En nuestra implementacin, ambas restricciones se agregan dinmi-camente durante la ejecucin del algoritmobranch and bound. Se generan estas restriccionesdespus de que se encuentra una solucin entera, si el grafo resultante no cumple con sercaterpillar. El procedimiento de separacin de estos algoritmos es similar a los algoritmos deseparacin en las familias de desigualdades cicloy garraque se vern en el prximo capitulo:se genera un grafo utilizando las variables asociadas a los ejes del grafo de combinacionescon valores enteros iguales a 1, y se recorre este grafo en busca de cicloso garras. En casode encontrar estas estructuras, se agregan las restricciones asociadas como lazy constraintsdentro de cplex.

    2.5.1 Anlisis de los tiempos de ejecucin

    En el Cuadro 2.1 se muestran los resultados de las corridas de los cuatro modelos para

    diferentes refiles (5%, 10% y 100%). Las diferencias entre las configuraciones de los refilesinfluyen en la cantidad de combinaciones que se deben tener en cuenta: si el refile permitido espequeo, entonces las combinaciones entre pedidos estn ms limitadas. Teniendo en cuentaesto, se eligieron valores para el refile que generan casos donde tenemos pocas, intermediasy muchas combinaciones. Es importante notar que si el refile es demasiado pequeo muchasinstancias resultanno factibles(se muestran subrayadas en el cuadro), mientras que si el refilemximo permitido es alto todas las instancias resultan factibles. Las corridas marcadas conUnknown corresponden a casos en los que no se lleg a la solucin ptima luego de una horade ejecucin. Para el caso del modelo cuadratico notar que hay muchas instancias marcadascon -, esto representa que para dichas instancias no se ha podido generar en memoria elmodelo de programacin lineal entera, debido a su gran tamao.

    Queda en evidencia que el modelo caterpillar con cortesdemora mucho tiempo. Sin em-

  • 7/24/2019 tesis-programacion corrugadora

    22/72

    Captulo 2. Modelos de programacin lineal entera 18

    bargo, el modelo caterpillar con cortesno es el modelo con peores resultados teniendo encuenta que para el modelo cuadrtico, a partir de la instancia 14, no se han podido generarlos modelos iniciales correpondientes en tiempos razonables superando en todos los casos lamemoria fsica de la mquina. Este resultado era esperable debido a la cantidad de combina-ciones que se deben procesar durante la generacin del modelo inicial.

    Los modelos anillo-estrellay caterpillarfueron bastantes parejos entre s y presentaronmejores resultados. Sin embargo, el modelo caterpillarfue capaz de resolver ms instanciasque el modeloanillo-estrella. Por otro lado, cabe mencionar que el promedio de respuesta paralas pruebas realizadas con un refile del 100 % es mayor para el modelo caterpillar (teniendoen cuenta que existe un outlier en la instancia 29), sin embargo, el modelo anil lo-estrellanopudo llegar a resolver todas las instancias en el tiempo lmite propuesto. Por lo tanto, seconsidera el modelo caterpillarpara la siguiente etapa del trabajo.

  • 7/24/2019 tesis-programacion corrugadora

    23/72

    Captulo 2. Modelos de programacin lineal entera 19

    Refile5%

    Refile10%

    Refile100%

    In

    stancia

    Anillo-E

    strella

    Caterpillar

    Caterpillarconcortes

    Cuadrtico

    In

    stancia1

    0.0

    16

    0.0

    16

    1

    0.0

    16

    0.0

    15

    In

    stancia2

    0.0

    15

    0.0

    15

    10

    0.0

    15

    In

    stancia3

    0

    0

    0

    0

    In

    stancia4

    0.0

    16

    0

    0.0

    15

    0

    In

    stancia5

    0.0

    15

    0.0

    16

    10

    0.0

    62

    In

    stancia6

    0

    0.0

    16

    0.0

    15

    0.0

    15

    In

    stancia7

    0

    0

    0

    0

    In

    stancia8

    0.0

    46

    0.0

    62

    5

    0.0

    63

    0.4

    99

    In

    stancia9

    0

    0

    0

    0

    In

    stancia10

    0

    0

    0.0

    15

    0.0

    16

    In

    stancia11

    0.2

    34

    0.0

    78

    3

    0.0

    47

    14

    .991

    In

    stancia12

    0.0

    62

    0.0

    47

    0.0

    47

    0

    In

    stancia13

    0.0

    63

    0.0

    47

    0.0

    31

    1.2

    32

    In

    stancia14

    0

    0.0

    16

    0.0

    31

    0.0

    47

    In

    stancia15

    0

    0.0

    15

    0

    0.2

    49

    In

    stancia16

    0.3

    9

    1.2

    48

    233

    .573

    Unknown

    In

    stancia17

    0

    0.0

    16

    0.0

    15

    0.1

    09

    In

    stancia18

    0.1

    25

    0.0

    47

    0.0

    15

    -

    In

    stancia19

    27

    .067

    20

    .514

    Unknown

    -

    In

    stancia20

    1.9

    35

    7.8

    62

    Unknown

    -

    In

    stancia21

    2.5

    74

    8.9

    23

    27

    73

    .086

    -

    In

    stancia22

    1.0

    61

    0.3

    43

    564

    .491

    -

    In

    stancia23

    0

    0.0

    15

    0.0

    31

    -

    In

    stancia24

    0.3

    43

    0.3

    74

    5

    1.2

    01

    -

    In

    stancia25

    5.4

    14

    12

    .371

    Unknown

    -

    In

    stancia26

    Unknown

    0.9

    36

    937

    .206

    -

    In

    stancia27

    Unknown

    5.3

    04

    Unknown

    -

    In

    stancia28

    32

    .042

    30

    .998

    Unknown

    -

    In

    stancia29

    698

    .635

    67

    .486

    Unknown

    -

    In

    stancia30

    17

    .191

    10

    .545

    Unknown

    -

    In

    stancia31

    0.3

    28

    0.2

    81

    0.0

    47

    -

    In

    stancia32

    9.2

    35

    3.0

    26

    Unknown

    -

    In

    stancia33

    0.3

    12

    0.0

    94

    0.0

    63

    -

    In

    stancia34

    10

    .42

    16

    .911

    Unknown

    -

    P

    romedio

    47.44

    9.84

    186.79912

    3.11

    Anillo-E

    strella

    Caterpillar

    Caterpillarconcortes

    Cuadrtico

    0

    0.0

    16

    10

    .016

    0.0

    31

    0.0

    15

    0.0

    16

    10

    0.0

    15

    0.0

    15

    0.0

    16

    20

    .015

    0.0

    47

    0.0

    15

    0.0

    15

    0

    0.0

    16

    0.0

    31

    0.0

    16

    40

    .047

    0.1

    09

    0

    0.0

    16

    0

    0.0

    47

    0

    0

    0

    0.0

    31

    0.0

    47

    0.0

    31

    30

    .094

    1.4

    97

    0

    0

    0

    0.0

    15

    0.0

    94

    0.0

    78

    50

    .11

    5.3

    2

    0.1

    4

    0.1

    24

    110

    .187

    44

    .569

    0.4

    52

    1.7

    16

    1832

    .807

    1839

    .985

    0.0

    78

    0.0

    47

    0.0

    31

    0.0

    15

    0.0

    32

    0.0

    31

    0.0

    15

    2.3

    09

    1.4

    2

    3.4

    32

    Unknown

    3371

    .572

    0.4

    06

    0.5

    46

    173

    .385

    45

    .88

    0.4

    99

    0.7

    48

    181

    .45

    228

    .619

    5.5

    54

    1.3

    73

    Unknown

    3619

    .426

    8.3

    31

    1

    1.3

    88

    34425

    .227

    -

    2.2

    15

    2.4

    34

    Unknown

    -

    10

    .857

    1

    4.1

    96

    Unknown

    -

    0.9

    21

    0.5

    15

    Unknown

    -

    0

    0

    0

    1.2

    79

    0.5

    78

    1.4

    35

    201

    .591

    -

    10

    .109

    1

    0.3

    43

    Unknown

    -

    Unknown

    1.5

    29

    1561

    .121

    -

    Unknown

    94

    .24

    Unknown

    -

    50

    .42

    5

    0.6

    38

    Unknown

    -

    3268

    .376

    152

    .585

    Unknown

    -

    23

    .946

    2

    8.2

    83

    Unknown

    -

    33

    .93

    3

    6.2

    86

    Unknown

    -

    16

    .256

    8.2

    37

    Unknown

    -

    22

    .605

    2

    0.9

    35

    Unknown

    -

    19

    .344

    3

    5.7

    39

    Unknown

    -

    139.06

    17.66

    1932.30

    654.07

    A

    nillo-E

    strella

    Caterpillar

    Caterpillarconcortes

    Cuadrtico

    0.0

    31

    0.0

    16

    0.0

    16

    0.0

    47

    0.0

    15

    0.0

    16

    0.0

    15

    0.0

    32

    0.0

    16

    0.0

    16

    0.0

    16

    0.0

    47

    0.0

    78

    0.0

    31

    0.0

    16

    0.1

    87

    0.0

    63

    0.0

    47

    0.0

    15

    0.3

    59

    0.0

    47

    0.0

    31

    0.0

    47

    0.2

    03

    0.0

    93

    0.0

    62

    0.0

    32

    5.6

    01

    0.1

    09

    0.1

    56

    0.6

    55

    3.7

    28

    0.0

    62

    0.0

    63

    0.0

    47

    2.1

    68

    0.2

    18

    0.1

    87

    0.0

    32

    18

    .689

    0.4

    06

    0.5

    62

    0.0

    78

    1464

    .428

    1.6

    22

    5.1

    32

    478

    .065

    -

    0.9

    04

    5.4

    29

    344

    .949

    -

    0.2

    18

    2.4

    81

    11

    .654

    129

    .247

    5.5

    38

    17

    .269

    3600

    .035

    -

    0.4

    37

    1.2

    16

    1.8

    56

    -

    0.6

    4

    16

    .911

    19

    .36

    -

    1.4

    82

    13

    .275

    355

    .105

    -

    12

    .917

    49

    .39

    3600

    .737

    -

    7.3

    01

    9.8

    44

    3600

    .176

    -

    7.5

    97

    83

    .71

    223

    .94

    -

    2.2

    15

    3.1

    98

    135

    .83

    -

    0.7

    02

    5.4

    29

    647

    .42

    -

    0.6

    87

    14

    .711

    58

    .079

    -

    19

    .687

    172

    .366

    Unknown

    -

    Unknown

    13

    .572

    2579

    .992

    -

    Unknown

    148

    .31

    Unknown

    -

    472

    .261

    516

    .067

    Unknown

    -

    Unknown

    3312

    .666*

    Unknown

    -

    203

    .784

    194

    .049

    Unknown

    -

    274

    .577

    236

    .186

    Unknown

    -

    71

    .058

    46

    .192

    Unknown

    -

    Unknown

    497

    .69

    Unknown

    -

    280

    .614

    287

    .307

    3600

    .347

    -

    44.04

    68.83

    713.27

    125.00

    Cuadro2.1:Tiempodeejecucindelosmodelosparadiferentesr

    efiles

    *

    Teniendoencuentaqueestam

    ismainstancianopudoresolverseparaelrestodelosmodelos

    ,estevaloresignoradoenelpr

    omediofinal.

  • 7/24/2019 tesis-programacion corrugadora

    24/72

    Captulo 2. Modelos de programacin lineal entera 20

    Figura 2.6: Grafos para la instancia 9

    2.5.2 Caractersticas de las soluciones obtenidas

    Durante los experimentos computacionales se observ que cada modelo tiende a generar solu-ciones ptimas con caractersticas distintas (que corresponden a ptimos alternativos). En estaseccin analizamos empricamente la estructura del grafo solucin, cuyos nodos correspondena los pedidos y cuyas aristas corresponden a las combinaciones seleccionadas. Es interesantemencionar algunos detalles encontrados durante el anlisis que tienen que ver con la solucingrfica para estos modelos. Se estudian los modelos anillo estrella, caterpillar y caterpillarcon cortes.

    Los grafos del modeloanillo estrellason grafos conexos, en los que existe un camino desdeel nodo 0 al nodo 1 pasando por el nodo i (donde i representa un pedido). Para este anlisistuvimos en cuenta el grafo resultado de quitar dichos nodos sabiendo que a efectos prcticosestos nodos son auxiliares dentro del modelo y no corresponden a la solucin del problema.

    Comparando los grafos solucin para cada instancia se puede observar que no necesaria-mente son isomorfos, de hecho, dentro de la muestra que estudiamos se puede ver que noexisten instancias donde el grafo solucin sea el mismo en los tres casos. No obstante, losgrafos del modelo caterpillary anillo estrellatienden a ser ms parecidos que el grafo parael modelo caterpillar con cortes. Por ejemplo, en la Figura 2.6 se muestran los grafos paralos modelos en la instancia 9, se puede observar que la solucin es la misma para los modeloscaterpillary anillo estrellamientras que para el modelo caterpillar con corteses diferente.

    Es interesante analizar la cantidad de componentes conexas presentes en las soluciones.Para el modelo caterpillar con cortesla cantidad de componentes conexas suele ser menor,mientras que para el modelo de anillo estrellala cantidad suele ser mayor. Los modelos anilloestrellatienden a crear ms nodos aislados que el resto de los modelos, mientras que el modelocaterpillar con cortestiende a crear grafos con caminos ms largos. Como ejemplo de esto, lasFiguras 2.7, 2.8 y 2.9 contienen los grafos solucin para los modelos caterpillar,caterpillar concortesy anillo-estrellarespectivamente para una instancia relativamente grande (instancia19) de 41 pedidos con 132570 cajas.

  • 7/24/2019 tesis-programacion corrugadora

    25/72

    Captulo 2. Modelos de programacin lineal entera 21

    Figura 2.7: Solucin del modelo caterpillarpara la instancia 19

  • 7/24/2019 tesis-programacion corrugadora

    26/72

    Captulo 2. Modelos de programacin lineal entera 22

    Figura 2.8: Solucin del modelo caterpillar con cortespara la instancia 19

  • 7/24/2019 tesis-programacion corrugadora

    27/72

    Captulo 2. Modelos de programacin lineal entera 23

    Figura 2.9: Solucin del modeloanil lo-estrellapara la instancia 19

  • 7/24/2019 tesis-programacion corrugadora

    28/72

    Captulo 3

    Desigualdades vlidas

    Debido a que el problema es difcil buscamos conocimiento especfico que pueda ayudar aCPLEX[7] a mejorar sus tiempos de ejecucin. Ese conocimiento puede estar dado por familiasde desigualdades vlidas que se puedan usar como cortes durante la ejecucin del algoritmobranch and boundo bien por heursticas que puedan ayudar a mejorar las cotas primalesdurante el algoritmo.

    En este captulo se describen familias de desigualdades vlidas para el modelo caterpillar,que dan origen a los planos de cortes usados en un algoritmo de tipo branch and cut parael problema. Para cada familia, se detalla un procedimiento de separacin y se exponen losresultados computacionales.

    Recordemos que el modelo caterpillarse basa en la formulacin del problema modelado

    con grafos caterpillar cuyos ejes son representados por las variablesex

    ij y ey

    ij, las variables yirepresentan nodos que son hojas, las variables xirepresentan los nodos internos y las variablesmijc representan los metros lineales para la c-sima combinacin de los pedidosi y j .

    3.1 Familias de desigualdades vlidas

    3.1.1 Desigualdades Garra

    Esta familia de desigualdades se basa en el hecho de que un grafo caterpillar no puede tenergarras bipartitas. Al introducir estas desigualdades como cortes en un algoritmo branch andcut, buscamos que las soluciones intermedias vayan adoptando la forma de un caterpillar lo

    ms temprano posible. Decimos que un nodo es un nodo garrasi cumple que tiene tres vecinosy cada vecino tiene a su vez al menos otro vecino (ver la Figura 3.1).La familia de desigualdades garraespecifica que no se deben formar estas estructuras en

    el grafo solucin, pidiendo que en todo conjunto de seis nodos que forme una garra bipartitano haya ms de cinco ejes de la garra. Formalmente, esta familia est compuesta por lassiguientes desigualdades vlidas:

    exij+ eyij+ e

    xil+ e

    yil+ e

    xik+ e

    yik+ e

    xjz + e

    yjz + e

    xlg+ e

    ylg+ e

    xkm+ e

    ykm 5

    i ,j, l ,k,z ,g ,m P y i=j =z, i=k =m, i=l =g. (3.1)

    Otra manera de evitar nodos garra es pedir que exista al menos un eje ey como vecino del

    nodo garra, teniendo en cuenta que si existe un eje de este tipo entonces el nodo es un nodo

    24

  • 7/24/2019 tesis-programacion corrugadora

    29/72

    Captulo 3. Desigualdades vlidas 25

    Figura 3.1: Nodo Garra

    hoja. De esta forma se asegura que dicho nodo no tenga ms de un vecino. Siguiendo estasideas, podemos plantear la siguiente familia de desigualdades vlidas:

    yj+ yk+ yl exij+ e

    yij+ e

    xik+ e

    yik+ e

    xil+ e

    yil 2

    j, k, l, P y i=j =k =l. (3.2)

    La cantidad de desigualdades que se pueden derivar tanto de esta familia de desigualdadescomo de la anterior presentada depende de la cantidad de garras y la cantidad de vecinos quetenga cada nodo garra. Por ejemplo, si ues un nodo garra yv1, v2,...,vnson nodos adyacentesauen la solucin y cada vitiene un nodo adyacente wi, entonces la cantidad de desigualdadesgarras para esta estructura es O(n3).

    3.1.2 Desigualdades Ciclo

    Al igual que la familia de desigualdades garraesta familia se basa en las propiedades quedebe cumplir un grafo caterpillar. Teniendo en cuenta que en grafos de este tipo no puedenexistir ciclos se plantea la siguiente familia de desigualdades (donde Crepresenta el conjuntode todos los ciclos del grafo de pedidos, considerados como conjuntos de aristas):

    ijC

    exij |C| 1 C C (3.3)

    Cabe sealar que estas desigualdades son parte del modelo original y se agregan como res-

    tricciones dentro de la ejecucin del algoritmo cuando se encuentra una solucin con todaslas variables binarias con valores enteros pero que no es factible porque contiene un ciclo. Sinembargo, tambin se puede realizar la separacin de estas desigualdades sobre las solucionesfraccionarias que se obtienen al resolver los subproblemas del rbol de enumeracin. Dadoque resulta interesante evaluar el impacto de la generacin dinmica de estos planos de cortetambin sobre las soluciones fraccionarias, consideramos estas restricciones como una nuevafamilia de desigualdades vlidas. Cuando se menciona en los experimentos computacionalesque se separan estas desigualdades, se refiere al hecho de que se aplica el algoritmo de se-paracin mencionado en la siguiente seccin sobre las soluciones fraccionarias, adems de laseparacin de estas restricciones (y su agregado como lazy constraints) sobre las solucionesenteras pero no necesariamente factibles halladas a lo largo del algoritmo branch and cut.

  • 7/24/2019 tesis-programacion corrugadora

    30/72

    Captulo 3. Desigualdades vlidas 26

    3.1.3 Desigualdades Vecinos

    Esta familia de desigualdades se basa en que en toda componente conexa del grafo asociadocon la solucin tienen que existir al menos dos hojas, por lo tanto, podemos pedir que existandos ejes eyij. Esto nace del hecho de que un grafo caterpillar es como mnimo un camino (siasumimos que un grafo de un nodo es un camino), por lo tanto tiene al menos dos hojasque son representadas por las variables y, como existen nodos hoja y por la definicin delas variables tambien tienen que existir ejes hoja dados por las variables ey. La siguienteexpresin corresponde a estas observaciones, para el caso en el que Ces un conjunto de nodosinternos. En este caso, la desigualdad pide que la cantidad de ejes con origen en Cy destinofuera de Csea como minimo 2.

    iC

    j /C

    exij+ eyij 2(

    iC

    xi |C| + 1) C P. (3.4)

    En este caso Crepresenta una componente conexa dentro del grafo de las soluciones inter-medias. Esta familia est compuesta por O(2n) desigualdades, donde n es la cantidad depedidos.

    3.1.4 Desigualdades para los nodos internos y externos

    Esta familia de desigualdades impone que si existe un nodo interno xi entonces tiene queexistir un eje interno exij para algn otro pedido j . Esta restriccin nace de observar cmo secomportan los valores de las variables en las soluciones fraccionarias que aparecen a lo largodel branch and bound. Se pudo observar empricamente que las variables correspondientes a

    los ejes (ex yey) se mantenan ms tiempo en valores fraccionarios, mientras que las variablesx e y llegaban a valores enteros ms rpidamente. La intencin de esta familia es que lasvariables que se corresponden a los ejes se vuelvan enteras ms rpidamente en funcin de lasvariablesx e y :

    jP

    exij xi i P. (3.5)

    Podemos repetir esta idea para los nodos hoja. En este caso, si existe algn nodo hoja yentonces tiene que existir algun eje hoja, dado por las variables ey:

    jP

    eyij yi i P. (3.6)

    Ambas familias estn compuestas porn desigualdades, siendo n la cantidad de pedidos.

    3.2 Algoritmos de separacin

    Dada una solucin fraccionaria, el problema de separacinasociado con una familia de de-sigualdades vlidas consiste en determinar si la solucin viola alguna desigualdad de la familia.Unalgoritmo de separacines un procedimiento exacto o heurstico para resolver el problemade separacin asociado con una familia. Este tipo de algoritmos tiene un rol muy importantedurante un algoritmobranch and cutporque podra suceder que una familia de desigualdadessea muy eficaz ajustando la relajacin lineal pero si el algoritmo utilizado para separar esta

    familia no es efectivo, entonces se agregarn pocos cortes de esta familia y el impacto sobre

  • 7/24/2019 tesis-programacion corrugadora

    31/72

    Captulo 3. Desigualdades vlidas 27

    el procedimiento total ser muy bajo o incluso negativo, si el tiempo de ejecucin del algo-ritmo de separacin es alto. Por tal motivo, estos procedimientos tienen que ser eficientes. Enmuchas ocasiones se utilizan heursticas, buscando un balance entre el costo computacional yla cantidad de cortes hallados.

    En esta seccin proponemos algoritmos de separacin para las familias de desigualdadesintroducidas en la seccin anterior. Todos los algoritmos mencionados en esta seccin seencuentran en pseudocdigo en el Anexo A.3.4.

    La mayora de los algoritmos de esta seccin calcula primero un grafo intermedio a partirde la solucin fraccionaria, utilizando una cota inferior k para las variablesey yex. Los nodosde este grafo estn dados por los pedidos, y se agrega un eje y (respectivamente, un ejex) entre los nodos i y j si eyij k (respectivamente, si e

    xij k). El valor de k determina

    indirectamente la densidad de este grafo. La construccin de este grafo se puede realizar entiempo O(n2), donde n es la cantidad de pedidos.

    Una vez armado este grafo, se busca si existen desigualdades vlidas de la familia violadaspor el punto fraccionario en cuestin.

    El algoritmo de separacin de las desigualdades garra(3.1 y 3.2) para cada componenteconexa busca los nodos garra y luego, utilizando un algoritmo recursivo, quita en cadapaso un eje vecino del nodo garra para evitar que en la prxima iteracin vuelva a caer enla misma garra. Este algoritmo es cuadrtico en la cantidad de ejes de la componenteconexa. Una vez detectados los ejes involucrados en una garra, se arma una nuevarestriccin pidiendo que la suma de los ejes sea menor a seis o que los nodos adyacentesal nodo garra sean nodos hojas (y), si dichas restricciones son violadas se agregan comocortes al problema original. Este algorimo finaliza una vez inspeccionados todos los

    nodos en busca de nodosgarra, es decir, en esta instancia, se agregan tantas restriccionesnuevas como garras en el grafo existan.

    Para la familia de desigualdades ciclo (3.3) se calcula para cada componente conexala cantidad de nodos y utilizando las variables asociadas a los ejes se construye ladesigualdad asociada y se chequea si est violada. La complejidad de este algoritmo eslineal en la cantidad de ejes del grafo.

    El procedimiento de separacin para la familia de desigualdades vecinos(3.4) tambinse basa en este grafo intermedio. En este caso, para cada componente conexa se analizanlas variables ex, ey y x y se determina si la desigualdad asociada con la componente

    conexa est violada. El algoritmo es lineal en la cantidad de nodos. Por ltimo, para separar las familias de desigualdades para los nodos internos (3.5

    y nodos externos3.6) no se utiliza el grafo intermedio descripto arriba, sino que seinspeccionan todas las desigualdades de la familia iterando sobre todos los pedidos yreteniendo las desigualdades violadas.

    3.3 Experiencia computacional

    En esta seccin se presentan los resultados de la adicin de cortes generados a lo largo dela ejecucin del algoritmo, convirtiendo de esta forma el esquema branch and bound en un

    algoritmo branch and cut. Se comparan los tiempos de respuesta de este nuevo algoritmo conel branch and boundoriginal.

  • 7/24/2019 tesis-programacion corrugadora

    32/72

    Captulo 3. Desigualdades vlidas 28

    Figura 3.2: Tiempos de ejecucin para algunas instancias en funcin del skip factor, para elalgoritmo branch and cutcon las desigualdades garra.

    Figura 3.3: Tiempos de ejecucin para algunas instancias en funcin del skip factor, para elalgoritmo branch and cutcon las desigualdades ciclo.

    Como se mencion anteriormente, un factor importante a considerar durante la experi-mentacin es la complejidad del algoritmo de separacin de cada familia. Teniendo en cuentaesto se cre un parametro skip factor (SF) que determina la frecuencia de aplicado de cadacorte. Por ejemplo, el valor S F = 5 especifica que se ejecuta el algoritmo de separacin cadacinco subproblemas del rbol de enumeracin en el algoritmo branch and cut. De esta forma,

    se busca un balance entre el tiempo de separacin y su efectividad.Para determinar este valor se hicieron pruebas para instancias de diferentes tamaos.

    Las Figuras 3.2, 3.3 y 3.4 muestran estos resultados para la familia de desigualdades garra(3.1 y 3.2), ciclo (3.3) y vecinos (3.4) respectivamente. De estos resultados se desprendeque cuanto mayor es la frecuencia de agregado de corte la performance se degrada ms.Si los cortes se aplican muy seguido el tiempo desperdiciado en armar el grafo y buscarlos planos de cortes degrada bastante los tiempos y, como los cortes no son efectivos, estetiempo perdido no se recupera. Para estas familias de desigualdades se utiliz durante losexperimentos subsiguientes el valor S F = 30.

    Para la familia de desigualdades nodos(3.5 y 3.6) no hay grandes cambios para los di-ferentes valors de SF, como muestra la Figura 3.5. En este caso, tambin se utiliz el valor

    SF = 30en los experimentos subsiguientes.

  • 7/24/2019 tesis-programacion corrugadora

    33/72

    Captulo 3. Desigualdades vlidas 29

    Figura 3.4: Tiempos de ejecucin para algunas instancias en funcin del skip factor, para elalgoritmo branch and cutcon las desigualdades vecinos.

    Figura 3.5: Tiempos de ejecucin para algunas instancias en funcin del skip factor, para elalgoritmo branch and cutcon las desigualdades sobre los nodos internos.

  • 7/24/2019 tesis-programacion corrugadora

    34/72

    Captulo 3. Desigualdades vlidas 30

    Salvo para las familia de desigualdades (3.5) y (3.6), los algoritmos de separacin involu-cran la construccin de un grafo intermedio con valores de ex

    ijyey

    ijfraccionarios. Recordemos

    que este procedimiento construye un grafo a partir de la solucin fraccionaria, y que estaconstruccin recibe un parmetrok que determina una cota inferior a los valores de las vari-ables (asociadas con los ejes) que sern usadas en el grafo. Este factor es muy importanteporque en funcin de este parmetro se podrn encontrar ms o menos cortes. Por esta raznse realizaron varios experimentos con diferentes valores de k.

    3.3.1 Desigualdades Garra

    En el Cuadro 3.1 se encuentran los resultados de los experimentos realizados para la familiade desigualdadesgarra(3.1 y 3.2) para diferentes valores de k. Los tiempos de ejecucin parala familia de desigualdades (3.1) empeoran sin importar los valores del parmetro utilizado.

    Notar tambin que la cantidad de cortes disminuye para valores de k ms grandes, debido aque el grafo que utilizamos para buscar garras es muy poco denso. Sin embargo, cabe sealarque en los pocos casos en que se agregaron cortes de este tipo resultaron ms eficaces que losaplicados para valores de k ms chicos.

    En este mismo cuadro tambin se pueden ver los cortes aplicados para la familia dedesigualdades (3.2), notar que si bien los cortes aplicados mejoran un poco el tiempo, con-siderando slo los resultados de los cortes (3.1) no son suficientes para mejorar los resultadosdel problema original. An en casos en donde la cantidad de cortes es alta el tiempo no dis-minuye sino que al contrario aumenta notablemente. La eficacia del corte es tan pobre queno alcanza a compensar el tiempo que se utiliza para buscar el corte y aplicarlo.

    3.3.2 Desigualdades Ciclo

    El Cuadro 3.2 contiene los resultados de haber aplicado la familia de desigualdades ciclo(3.3)para diferentes valores del parmetrok. Para esta familia de desigualdades los cortes agregadosno son eficaces, y existen muy pocas instancias que se ven beneficiadas. Es interesante notarque la cantidad de cortes agregados aumenta cuando aumenta el valor k, esto puede serdebido a que cuando k es pequeo los valores fraccionarios de las variables admitidas sontan bajos que no alcanzan para que las desigualdades resultantes sean violadas, y por lo tantolas desigualdades generadas por el algoritmo son ignoradas y no se agregan como cortes.

    3.3.3 Desigualdades Vecinos

    Para esta familia de desigualdades el promedio de ejecucin para los diferentes valores delparmetrok empeor y en particular se pueden ver varias instancias cuyos tiempos de resolu-cin se duplicaron. El Cuadro 3.3 muestra estos datos. Alrededor de 1370 cortes son aplicadoscuandok = 0,9, sin embargo al igual que en los casos anteriores los cortes aplicados no sonefectivos y en la mayora de los casos afectan en forma negativa a los tiempos de ejecucin.

    3.3.4 Desigualdades para los nodos internos y externos

    En el Cuadro 3.4 se pueden ver los resultados para las familias de desigualdades (3.5) y (3.6).Para el caso de la familia (3.5), el promedio de tiempo de ejecucin disminuy para los valorespropuestos del parmetro k y muchas instancias se vieron beneficiadas, como por ejemplo lainstancia 29 (que decrement el tiempo de 3300 segundos a casi 400 segundos). Sin embargo,

  • 7/24/2019 tesis-programacion corrugadora

    35/72

    Captulo 3. Desigualdades vlidas 31

    exij+eyij+e

    xil+e

    yil+e

    xik+e

    yik+e

    xjz+e

    xlg+e

    xkm+e

    yjz+e

    ylg+e

    ykm 5

    k=0 k=0.75 k=0.9

    Instancia T Sin Corte

    Instancia 1 0.016Instancia 2 0.016

    Instancia 3 0.016Instancia 4 0.031Instancia 5 0.047Instancia 6 0.031Instancia 7 0.062Instancia 8 0.156Instancia 9 0.063Instancia 10 0.187Instancia 11 0.562Instancia 12 5.132Instancia 13 5.429Instancia 14 2.481Instancia 15 17.269Instancia 16 1.216Instancia 17 16.911Instancia 18 13.275

    Instancia 19 49.39Instancia 20 9.844Instancia 21 83.71Instancia 22 3.198Instancia 23 5.429Instancia 24 14.711Instancia 25 172.366Instancia 26 13.572Instancia 27 148.31Instancia 28 516.067Instancia 29 3312.666Instancia 30 194.049Instancia 31 236.186Instancia 32 46.192Instancia 33 497.69Instancia 34 287.307

    Promedio | Suma 166.28

    Tiempo Cortes

    0.016 00 0

    0.016 00.031 00.046 00.031 00.063 00.218 00.062 00.218 00.671 05.507 16.989 03.525 123.12 131.248 2

    18.876 326.115 4

    55.24 557.19 35

    148.965 44.758 46.567 0

    21.341 0217.107 719.204 3

    210.804 52046.125 431619.508 87244.266 2471.201 2258.657 0

    793.297 30324.388 16

    187.80 287

    Tiempo Cortes

    0.015 00.016 0

    0 00.031 00.047 00.015 00.094 00.218 00.047 00.218 00.608 07.66 0

    6.583 03.447 2

    39.702 31.513 019.36 0

    20.842 0

    84.63 042.51 6

    124.317 04.352 06.833 0

    20.405 0306.245 0

    16.24 0177.857 13600.05 15

    3605.978 21224.298 1

    2842.526 3055.131 0

    1087.171 6397.803 2

    373.43 87

    Tiempo Cortes

    0.016 00.016 0

    0 00.016 00.046 00.031 00.078 00.219 00.062 00.234 00.624 07.629 06.52 0

    3.291 038.345 01.513 0

    19.016 020.468 0

    84.631 040.42 1

    123.662 04.01 0

    6.427 018.86 0305.7 0

    16.271 0176.187 1

    1752.484 43479.743 3230.554 1495.74 554.584 0

    1083.411 6413.06 1

    246.58 22

    yj+yn+yl exij+e

    yij+e

    xin+e

    yin+e

    xil+e

    yil 2

    k=0

    Tiempo Cortes

    0.015 00.015 0

    0.015 00.031 00.062 00.031 00.078 00.234 00.062 00.234 00.671 08.378 06.786 03.229 046.364 01.607 019.313 020.779 0

    97.703 051.387 0136.656 04.306 06.006 020.249 1373.638 117.519 0267.667 01432.261 41711.503 4285.934 0685.749 057.471 01465.442 01585.064 1

    244.30 0.32

    Cuadro 3.1: Desigualdades Garra

  • 7/24/2019 tesis-programacion corrugadora

    36/72

    Captulo 3. Desigualdades vlidas 32

    ijCe

    xij |C| 1

    k=0 k=0.75 k=0.9

    Instancia T Sin Corte

    Instancia 1 0.016Instancia 2 0.016

    Instancia 3 0.016Instancia 4 0.031Instancia 5 0.047Instancia 6 0.031Instancia 7 0.062Instancia 8 0.156Instancia 9 0.063Instancia 10 0.187Instancia 11 0.562Instancia 12 5.132Instancia 13 5.429Instancia 14 2.481Instancia 15 17.269Instancia 16 1.216Instancia 17 16.911Instancia 18 13.275

    Instancia 19 49.39Instancia 20 9.844Instancia 21 83.71Instancia 22 3.198Instancia 23 5.429Instancia 24 14.711Instancia 25 172.366Instancia 26 13.572Instancia 27 148.31Instancia 28 516.067Instancia 29 3312.666Instancia 30 194.049Instancia 31 236.186Instancia 32 46.192Instancia 33 497.69Instancia 34 287.307

    Promedio | Suma 166.28

    Tiempo Cortes

    0.016 00.015 0

    0.016 00.032 00.078 00.015 00.078 00.234 00.062 00.25 0

    0.639 07.644 26.583 03.292 0

    37.191 41.529 0

    16.208 321.154 0

    76.472 126.426 6

    126.517 14.197 06.567 0

    24.789 2324.014 217.114 0

    230.319 31162.722 23603.42 7329.381 1579.918 159.686 0

    1572.272 2556.253 3

    258.6795 40

    Tiempo Cortes

    0.016 00.015 0

    0.016 00.016 00.047 00.016 00.078 00.234 00.062 00.234 00.64 0

    7.473 26.537 03.136 030.03 31.31 1

    11.559 220.67 0

    74.428 226.91 5

    121.899 04.306 06.786 0

    20.217 0298.243 016.084 0

    233.315 11121.741 21561.024 16304.576 1517.658 354.632 0

    1132.146 0425.337 1

    176.51 39

    Tiempo Cortes

    0.016 00.016 0

    0 00.031 00.047 00.015 00.078 00.203 00.047 00.203 00.593 07.13 2

    6.224 03.089 0

    41.761 121.326 1

    11.123 219.718 0

    72.322 226.676 8

    117.063 04.322 06.662 018.83 1

    292.986 015.944 0

    200.228 22364.773 173604.497 28271.473 2572.462 3

    53.82 01138.152 0

    421.28 1

    272.73 81

    Cuadro 3.2: Desigualdades Ciclo

  • 7/24/2019 tesis-programacion corrugadora

    37/72

    Captulo 3. Desigualdades vlidas 33

    exij+e

    yij 2 (

    xi |c| + 1)

    k=0 k=0.5 k=0.9

    Instancia T Sin Corte

    Instancia 1 0.016Instancia 2 0.016

    Instancia 3 0.016Instancia 4 0.031Instancia 5 0.047Instancia 6 0.031Instancia 7 0.062Instancia 8 0.156Instancia 9 0.063Instancia 10 0.187Instancia 11 0.562Instancia 12 5.132Instancia 13 5.429Instancia 14 2.481Instancia 15 17.269Instancia 16 1.216Instancia 17 16.911Instancia 18 13.275

    Instancia 19 49.39Instancia 20 9.844Instancia 21 83.71Instancia 22 3.198Instancia 23 5.429Instancia 24 14.711Instancia 25 172.366Instancia 26 13.572Instancia 27 148.31Instancia 28 516.067Instancia 29 3312.666Instancia 30 194.049Instancia 31 236.186Instancia 32 46.192Instancia 33 497.69Instancia 34 287.307

    Promedio | Suma 166.28

    Tiempo Cortes

    0.016 00.016 0

    0 00.031 10.047 10.015 10.078 10.218 20.062 00.234 20.484 26.459 68.175 33.541 3

    30.389 431.061 36.895 5

    27.706 7

    139.028 35113.943 245286.324 35

    3.932 65.195 1

    17.956 3254.921 25

    13.65 11199.806 7

    1881.482 883603.389 489207.903 6430.219 3938.766 2571.79 40

    347.289 37

    241.20 1149

    Tiempo Cortes

    0.015 00.016 0

    0.015 00.032 10.047 10.032 10.062 10.171 10.047 00.374 41.045 4

    11.544 1712.979 42.652 3

    22.401 272.324 115.756 3

    28.533 9

    59.826 1250.294 113

    169.058 122.652 26.52 1

    20.421 7206.233 23

    7.535 3609.215 31

    2716.788 185819.535 86273.314 13322.61 2285.005 7

    862.264 60172.693 20

    190.36 684

    Tiempo Cortes

    0.015 00.016 0

    0.016 00.031 10.047 10.016 10.078 10.234 20.062 00.265 30.39 1

    8.174 128.845 52.699 3

    16.833 301.139 34.025 1

    17.738 4

    88.375 1820.327 29

    199.401 172.465 28.892 2

    21.419 5153.755 20

    9.111 3224.642 8

    1795.743 953600.363 473671.709 43877.989 9681.089 5

    3355.488 408530.044 95

    344.15 1387

    Cuadro 3.3: Desigualdades Vecinos

  • 7/24/2019 tesis-programacion corrugadora

    38/72

    Captulo 3. Desigualdades vlidas 34

    i,jPe

    xij xi

    i,jPe

    yij yi

    Instancia T Sin Corte

    Instancia 1 0.016Instancia 2 0.016Instancia 3 0.016Instancia 4 0.031Instancia 5 0.047Instancia 6 0.031Instancia 7 0.062Instancia 8 0.156Instancia 9 0.063Instancia 10 0.187Instancia 11 0.562Instancia 12 5.132Instancia 13 5.429Instancia 14 2.481Instancia 15 17.269

    Instancia 16 1.216Instancia 17 16.911Instancia 18 13.275Instancia 19 49.39Instancia 20 9.844Instancia 21 83.71Instancia 22 3.198Instancia 23 5.429Instancia 24 14.711Instancia 25 172.366Instancia 26 13.572Instancia 27 148.31Instancia 28 516.067Instancia 29 3312.666Instancia 30 194.049Instancia 31 236.186

    Instancia 32 46.192Instancia 33 497.69Instancia 34 287.307

    Promedio | Suma 166.28

    Tiempo Cortes

    0.031 00.015 00.015 00.031 40.062 20.015 30.063 20.172 40.047 00.39 6

    0.609 68.378 188.112 121.389 7

    12.106 38

    0.998 45.974 12

    13.728 955.365 118.877 28

    190.571 162.652 14.617 10

    12.605 12166.734 25

    8.174 11131.758 14682.098 79390.548 315184.814 10486.77 37

    77.58 17300.926 46124.473 13

    84.72 772

    Tiempo Cortes

    0.032 00.016 00.016 00.032 00.047 00.031 00.078 00.172 00.046 00.218 00.624 05.461 15.928 02.605 0

    17.035 25

    1.404 117.581 013.322 544.429 13

    9.86 1188.687 33.916 06.053 016.13 0

    171.508 313.619 0

    159.542 2659.806 23297.151 239249.633 5321.159 82

    52.244 1339.505 29272.846 7

    81.49 450

    Cuadro 3.4: Desigualdades Nodos

    salvo el caso anterior, estas diferencias de tiempo son pequeas y hay instancias que fueronafectadas negativamente por la generacin de estos cortes. La situacin es la misma para lafamilia (3.6): si bien el promedio del tiempo de ejecucin promedio es menor, los resultados

    no son contundentes.

    3.4 Conclusiones

    Para todas las familias de desigualdades se prob con distintas frecuencias de ejecucin delos algoritmos de separacin y con diferentes valores del umbralkpara crear ejes en el grafointermedio, llegando a la conclusin de que ningn algoritmo de separacin propuesto logragenerar cortes que sean contundentes en relacin con la performance del procedimiento global.Si bien hay algunas instancias que se ven beneficiadas, existen ms intancias perjudicadas.

    En la Figura 3.6 se muestra el grafo que se obtiene a partir de la solucin (fraccionaria) dela relajacin lineal para la instancia nmero 19. Los ejes pintados de color verde representan a

    las variablesex y los ejes pintados con rojo representan a las variables ey, tambin se muestran

  • 7/24/2019 tesis-programacion corrugadora

    39/72

    Captulo 3. Desigualdades vlidas 35

    los valores fraccionarios de las variables asociadas a los ejes. En este caso, la suma de cualquiercombinacin que forme una garra es menor a cinco, con lo cual, si bien existen garras en estegrafo, la solucin fraccionaria no viola ninguna desigualdadgarraque, por lo tanto, no generacortes. Se da una situacin similar para el resto de las familias de desigualdades: los valoresfraccionarios de las variables son tan pequeos que no alcanza para que las desigualdades seanvioladas y aporten informacin de valor.

    En un principio se pens que los cortes agregados no eran lo suficientemente fuertes paradisminuir significativamente la regin factible. Sin embargo, durante las corridas y observandoel comportamiento del algoritmo se not que la funcin objetivo del ptimo entero coincide,en casi todos los casos, con la funcin objetivo de la relajacin lineal. Es decir, la cota dualinicial (en el primer nodo del rbol de enumeracin) y la funcin objetivo del ptimo entero(obtenido cuando el algoritmo branch and boundtermina) son iguales o tienen un gap muychico. Este efecto es poco usual y posiblemente es uno de los motivos que explica por qu loscortes antes mencionados no mejoran la cota dual y en consecuencia los tiempos no mejoran.

    La Figura 3.7 muestra parte del log que arroja CPLEXpara dicha instancia y el Cuadro 3.5muestra para todas las instancias el gap en el primer nodo de la ejecucin, las cotas primal ydual y la funcin objetivo de la solucin ptima del problema. Se puede ver que en casi todaslas instancias consideradas, la cota dual inicial dada por la funcin objetivo de la relajacinlineal ya es el valor ptimo, pero tarda mucho tiempo en encontrar una solucin factible cuyafuncin objetivo coincida con este valor.

    En funcin de estas observaciones, no parecera ser conveniente la bsqueda de nuevas fa-milias de desigualdades o el diseo de algoritmos de separacin ms eficientes. Por el contrario,posiblemente unaheurstica primalque sea capaz de encontrar buenas soluciones factibles sea

    ms til en el contexto de un algoritmobranch and bound, dado que podra ayudar aCPLEX

    a encontrar soluciones factibles. El siguiente captulo tiene como objetivo estudiar dicha prob-lemtica.

  • 7/24/2019 tesis-programacion corrugadora

    40/72

    Captulo 3. Desigualdades vlidas 36

    Figura 3.6: Grafo asociado con una solucin fraccionaria hallada por el algoritmo branch andcutpara la instancia 19.

  • 7/24/2019 tesis-programacion corrugadora

    41/72

    Captulo 3. Desigualdades vlidas 37

    Figura 3.7: Log de CPLEXpara la intancia 19.

  • 7/24/2019 tesis-programacion corrugadora

    42/72

    Captulo 3. Desigualdades vlidas 38

    Instancia Primer Solucin Entera Primer Relajacin lineal Funcion Objetivo ptimo gap

    Instancia 1 204.5552 204.5552 204.5552 0.00 %Instancia 2 138.4739 138.4739 138.4739 0.00 %Instancia 3 108.1802 108.1802 108.1802 0.00 %Instancia 4 199.3205 199.3205 199.3205 0.00 %Instancia 5 116.2544 116.2544 116.2544 0.00 %Instancia 6 232.9237 232.9237 232.9237 0.00 %

    Instancia 7 97.5872 59.5361 65.8779 38.99 %Instancia 8 39.7904 39.7638 39.76383 0.07 %Instancia 9 665.1293 665.1293 665.1293 0.00 %Instancia 10 589.8818 589.8818 589.8818 0.00 %Instancia 11 140.052 138.9282 138.9282 0.80 %Instancia 12 279.7578 279.7578 279.7578 0.00 %Instancia 13 932.8774 881.5306 881.5306 5.50 %Instancia 14 2132.2396 2132.2396 2132.2396 0.00 %Instancia 15 653.4546 622.6999 622.7005 4.71 %Instancia 16 966.903 680.8923 680.8922 29.58 %Instancia 17 743.0591 707.0906 707.0906 4.84 %Instancia 18 574.077 557.7429 557.7429 2.85 %Instancia 19 768.8417 768.1219 768.1218 0.09 %Instancia 20 293.5649 283.962 284.3712 3.27 %Instancia 21 350.9971 343.0665 343.0836 2.26 %Instancia 22 423.7602 404.3016 404.3016 4.59 %Instancia 23 648.8221 615.3488 615.3488 5.16 %Instancia 24 483.6359 480.614 480.6140 0.62 %Instancia 25 1033.7158 1030.67 1030.6670 0.29 %Instancia 26 2007.28 1624.1213 1624.1212 19.09 %Instancia 27 2041.3379 1923.8498 1923.8735 5.76 %Instancia 28 1090.1537 1023.920032 1023.9200 6.08 %Instancia 29 761.9839 706.9068 706.9534 7.23 %Instancia 30 1279.0403 1258.6005 1258.6005 1.60 %Instancia 31 1489.3375 1404.7088 1404.7088 5.68 %

    Instancia 32 1087.0284 1078.022 1078.0220 0.83 %Instancia 33 2474.2111 2180.611 2180.8072 11.87 %Instancia 34 818.1024 739.6355 739.6355 9.59 %

    Cuadro 3.5: Comparacin entre la primer solucin entera encontrada, la primer relajacionlineal y la funcin objetivode la solucin ptima

  • 7/24/2019 tesis-programacion corrugadora

    43/72

    Captulo 4

    Heurstica primal

    Como se coment en la seccin anterior aplicar planos de corte durante el algoritmo branch andboundno mejora la cota dual porque esta cota comienza siempre con una buena aproximacinal valor ptimo. En consecuencia, la mayor parte del tiempo consumido porCPLEXse destinaa buscar una solucin factible cuya funcin objetivo coincida (o est cerca) de la cota dualdada por la relajacin lineal. En los experimentos realizados, se observ que muchas solucionesfraccionarias generadas a lo largo del algoritmo tienen una funcin objetivo que coincidecon la funcin objetivo del ptimo entero. Por estos motivos, se propone en este captulouna heurstica primal que intenta construir s