3.PlanosCortantes



Comments



Description

Optimización de Sistemas IIPlanos Cortantes  Métodos que (iterativamente) refnan la región factible o función objetivo mediante desigualdades lineales, denominadas cortes.  Cada desigualdad incluye usualmente más de una variable (hiperplano).  Son aplicables en el contexto de programación lineal entera, mixta y también para problemas no diferenciables convexos.  El algoritmo de separación se encarga de generar cortes dada una solución fraccionaria (no entera).  Balance entre llamadas al algoritmo de separación y número de cortes por iteración. Planos cortantes Tipos de planos cortantes  Gomory – Utilizan redondeo en alguna fla del tableau lineal óptimo con variable básica entera con valor fraccional (Simplex-Dual).  Cobertura (Cover) – Tipo knapsack, en donde la suma de un grupo de variables binarias no puede exceder un número.  Otros: Clique, disjuntivos, lifting, flujo, GUB (generalized upper bounds), MIR (mixedinteger rounding cuts), etc. Impacto de planos cortantes  En CPLEX – Planos cortantes reducen en 53.7X el tiempo de solución (test en 106 instancias) – Algunas aceleraciones (individuales):  Gomory 2.5X  MIR 1.8X  Knapsack 1.4X  Flow covers 1.2X  Implied bounds 1.2X … – Resultados similares obtenidos con Fuente: “The CPLEX Library: Presolve and Cutting Planes”, Ed Rothberg, se tienen que cumplir dos condiciones: Condición 1: Cualquier punto factible para el PLE (problema original) satisface el corte. no satisface el corte. . La generación de cortes sucesivos garantiza el encontrar la solución óptima en una cantidad fnita de iteraciones.Planos cortantes Para que los cortes generados sean válidos. Condición 2: La solución óptima actual para la relajación del PL. Planos cortantes Envoltura Convexa (Convex Hull) Eventualmente después de agregar varios planos cortantes… . No. ¿Es necesario siempre encontrar la envoltura convexa mediante planos cortantes para resolver un problema lineal entero/mixto? Planos cortantes . Sólo es necesario defnir el punto extremo asociado a la solución óptima mediante planos cortantes. x2 ≥ 0 y entero El algoritmo parte de la solución óptima de la relajación y luego agrega restricciones especialmente construidas (cortes) Planos cortantes de Gomory .Ejemplo max z = 7x1 + 10x2 sujeto a: -x1 + 3x2 ≤ 6 7x1 + x2 ≤ 35 x1. 5) x2 4 3 2 1 0 1 2 3 4 5 x1 . x2 ≥ 0 y entero Óptimo relajado: (4. 3.5.Gráfcamente max z = 7x1 + 10x2 sujeto a: -x1 + 3x2 ≤ 6 7x1 + x2 ≤ 35 x1. 3) e rt Co 4 II max z = 7x1 + 10x2 sujeto a: -x1 + 3x2 ≤ 6 7x1 + x2 ≤ 35 x1.Gráfcamente x2 Óptimo: (4. x2 ≥ 0 y entero Corte I 3 2 1 Óptimo: (4. 3) 0 1 2 3 4 5 x1 .57. 5 x1 1 0 -1/22 3/22 4.5 x3 x4 63/22 31/22 Solución 66.Solución básica factible x1 x2 z 0 0 x2 0 1 7/22 1/22 3.5 A partir de SIMPLEX ¿Cómo obtenemos los cortes? Planos cortantes de Gomory . 5  Ecuación x1: x1 . .Planos cortantes de Gomory De la tabla Simplex obtenemos la siguiente información:  Ecuación z: z + 63/22 x3 + 31/22 x4 = 66.5 Debido a que todos las variables deben ser enteras y a que en la solución óptima relajada todos los resultados son no enteros.5  Ecuación x2: x2 + 7/22 x3 + 1/22 x4 = 3. podemos usar cualquier ecuación para generar un corte.1/22 x3 + 3/22 x4 = 4. 2. Movemos los componentes enteros al lado izquierdo y los fraccionales al derecho: x2 – 3 = -7/22 x3 – 1/22 x4 + 1/2 Los coefciente fraccionales se reescriben como la suma de una parte entera más una parte fraccional positiva. Transformamos la ecuación x2 en: Arbitrariamente elegimos la ecuación x2: Planos cortantes de Gomory . x2 + (0 + 7/22) x3 + (0 + 1/22) x4 = (3 + 1/2) 1. entonces x2 – 3 debe ser entero y por lo tanto -7/22 x3 – 1/22 x4 + 1/2 también lo es. x3 y x4 son enteros.Planos cortantes de Gomory Sabemos que x3 y x4 son no negativos por lo que respecto al lado derecho podemos decir: -7/22 x3 – 1/22 x4 + 1/2 ≤ 1/2 … (1) Dado que x2. Así la restricción (1) se transforma en: Corte I -7/22 x3 – 1/22 x4 + 1/2 ≤ 0 . -7/22 x3 – 1/22 x4 + 1/2 ≤ 0 Planos cortantes de Gomory .-7/22 x3 – 1/22 x4 + s1 = -1/2 . s1 ≥ 0 (Corte I) El Corte I lo podemos escribir: En el óptimo relajado esta inecuación no se cumple. 5 -1/2 NO SI .5 -7/22 x3 – 1/22 x4 + s1 = -1/2 . s1 ≥ 0 (Corte I) x2 0 1 7/22 1/22 0 Agregamos esta nueva restricción al x1 1 0 -1/22 3/22 0 Simplex: s1 0 0 -7/22 -1/22 ¿Es ¿Es esta esta tabla tabla factible? óptima? 1 3.Planos cortantes de Gomory Solución básica factible x1 x2 x3 x4 s1 Solución z 0 0 63/22 31/22 0 66.5 4. 57 usamos: SIMPLEX DUAL 0 0 1 1/7 -22/7 1.57 ¿Hemos NO .Planos cortantes de Gomory Solución básica factible x1 x2 x3 x4 s1 Solución z 0 0 0 1 9 62 x2 0 1 0 0 1 3 x1 x3 Debemos iterar hacia un punto factible. Para eso 1 0 0 1/7 -1/7 4. s2 ≥ 0 (Corte II) Tenemos entonces: x1 + (0 + 1/7)x4 + (-1 + 6/7)s1 = (4 + 4/7)  La última solución tiene a x1 y a x3 no enteros  Debemos generar otro corte  Usamos x1 como fuente generadora de corte Planos cortantes de Gomory .-1/7 x4 -6/7 s1 + s2 = -4/7 . 1 s2 ≥ 0 z 0 0 9 II) x2 0 1 0 0 1 Agregamos esta nueva restricción al x1 Simplex: 1 0 0 1/7 -1/7 s2 0 Solución (Corte 62 0 3 0 4.57 s2 0 0 0 -1/7 -6/7 1 -4/7 .57 x3 0 0 1 1/7 -22/7 0 1.Planos cortantes de Gomory Solución básica factible x1 x2 x3 x4 s1 -1/7 x4 -6/7 s10 + s2 = -4/7. Solución básica factible x1 x2 x3 x4 s1 z 0 0 0 0 3 x2 0 1 0 0 1 x1 1 0 0 0 -1 x3 0 0 1 0 -4 x4 0 0 0 1 6 Iteramos con SIMPLEX DUAL Planos cortantes de Gomory s2 Solución 7 58 0 3 1 4 1 1 -7 4 . incluyendo las de holgura y superávit. ¡Problema resuelto! La solución óptima (x1 = 4. son enteras.El corte fraccional supone que todas las variables. z = 58) es entera Planos cortantes de Gomory . x2 = 3. En el caso de la restricción identifcada en el Paso 2. en caso contrario siga al Paso 2. Encuentre el tableau óptimo para la relajación de la PL.Planos cortantes de Gomory Resumen del algoritmo de planos cortantes: Paso 1. Elija una restricción en el tableau óptimo de la relajación del PL cuyo lado derecho tiene la parte fraccionaria más cercana a 1/2 . entonces ha encontrado una solución óptima para el PLE. escriba su lado derecho y cada coefciente de las variables de la forma [x] + f. . Paso 2. Esta restricción se usa para generar un corte. Si todas las variables de solución óptima asumen valores enteros. Paso 2a. . mediante el algoritmo SIMPLEX DUAL. En caso contrario. escoja la restricción cuyo lado derecho tenga la fracción más cercana a ½ y úsela para generar otro corte. Si todas las variables asumen valores enteros en la solución óptima. ha encontrado una solución óptima para el PLE. Encuentre la solución óptima para la relajación del PL. el cual se suma al tableau. Paso 3. Continúe con este proceso hasta que obtenga una solución en la cual todas las variables sean enteras.Planos cortantes de Gomory Paso 2b. Entonces el corte es: Todos los términos con coefciente fraccionario ≤ 0. Vuelva a escribir la restricción usada para generar un corte como: Todos los términos con coefciente entero = todos los términos con coefciente fraccionario. con el corte como una restricción adicional. – Normalmente un número grande de planos cortantes son necesarios.  Desventajas: – Utilizan poca memoria (son baratos)  Ventajas: Planos cortantes de Gomory . – Ninguna solución factible se obtiene hasta el fnal. – Los cortes tienden a ser más débiles a medida que se progresa en el algoritmo. Planos cortantes de cobertura  Este tipo de cortes son conocidos como 0-1 Knapsack (problema de la mochile)  El set C N es conocido como una cobertura si a x  b j jC j  El corte asociado a esta cobertura es  x  C 1 jC j  Se aplican sólo a variables binarias  Requiere de una heurística para identifcar C (cobertura) . Planos cortantes de cobertura .5 x1  5 x2  5 x3  5 x 4  3 x5  8 x6  17 Sólo si las variables son binarias ¿Podemos identifcar cortes de cobertura que sean válidos para esta restricción? Ejemplo. 1}.Planos cortantes de cobertura max 8x1  7x2  5x3  4x4  2x5  6x6 sujeto a: 30x1  25x2  20x3  20x4  20x5  15x6  55 xj  {0.6 .. j  1. surge una estrategia combinada entre el algoritmo de Ramifcación y Acotamiento y el algoritmo de Planos Cortantes: Ramifcación y Corte .Algoritmo Ramifcación y Corte de Buscando mayor efciencia en la búsqueda de un óptimo para una problema de PLE. La idea fundamental del algoritmo es mejorar la búsqueda que hace el algoritmo de RyA a través de la incorporación de nuevas restricciones (cortes). Ramifcación y Corte . Ramifcación y Corte modifca la estrategia de Ramifcación y Acotamiento tratando de fortalecer la relajación con nuevas restricciones antes de ramifcar una solución activa.La nueva restricción debe admitir todas las soluciones discretas del modelo. que hacen más rápida la convergencia a una solución entera. pero debe eliminar el último óptimo relajado obtenido. o. x4  {0. Volvamos al ejemplo de River Power: Ramifcación y Corte . x3. si el generador j entra en operación 0.c.min 7x1 + 12x2 + 5x3 + 14x4 sujeto a: 300x1 + 600x2 + 500x3 + 1600x4 ≥ 700 x1. 1} xj = 1. x2. e. PL0: z = 6. x4) = (0. Recordemos que la solución del PL relajado es: Ramifcación y Corte . 0. x3. 0.4375) Veamos qué propone RyC… En RyA. habríamos ramifcado en x4. x2.125 (x1. 0. 4375): x1 + x2 + x3 + x4 ≥ 1 Siguiendo con el ejemplo de River Power. 0. tenemos que esta restricción corta la solución de PL0: (0.0 + 0 + 0 + 0.4378 < 1 Además. se puede ver que cualquier solución factible del problema original debe al menos contemplar la puesta en marcha de un generador. Esto es: Ramifcación y Corte . 0. 0. x2.636 (x1.818. x3.182) Podemos ahora ramifcar en x3. Se aprecia que esta solución es mejor que la solución de PL0…¿por qué? Al resolver PL0 incluyendo esta restricción tenemos un nuevo PL1: Ramifcación y Corte . x4) = (0. 0. 0.PL1: z = 6. 0. x4) = (0.818. x3. 0. x2.PL0: z = 6. x4) = (0.125 (x1. 0.636 (x1. 1. 0.4375) x 1 + x2 + x 3 + x4 ≥ 1 PL1: z = 6. x4) = (0. x2.125) Se puede apreciar que la ecuación: x1 + x2 + x3 + 2x4 ≥ 2 Es un buen corte para PL2…¿por qué? . x3. 0. x2. 0. x3. 0. 0. 0.182) x3 = 1 x3 = 0 PL2: z = 6.75 (x1. 0. x4) = (0. x3. x3.182) x3 = 0 x3 = 1 PL2: z = 6.5) x1 + x2 + x3 + 2x4 ≥ 2 PL3: z = 12 (x1.PL0: z = 6.) = (1. 1.125 (x1. x4. x2. 0. 0. 1) (x1. 0.5) x4 = 1 x4 = 0 PL4: z = 19 PL5: z = 12 (x1. x2. 0. 0. 0. x2. 1. x4) = (0. x4) = (1. x4) = (0. 0. 0. x2.125) (x1. x3. 0. 0) . x2. x3.636 (x1. 1. x4) = (0. 0. 1. x2.4375) x1 + x2 + x3 + x4 ≥ 1 PL1: z = 6.75 PL6: z = 14 (x1. x2. x3. 0. x3. 0.818. x4) = (0. x3. 0. 0. x3. 0) PL10: INFACTIBLE PL7: z = 11 (x1. 0) x3 = 0 PL9: INFACTIBLE . 1. 0) x3 = 1 PL8: z = 12 (x1. x2. 0) x3 = 0 PL5: z = 14. 1/3.125 (x1. x2. x2. 0. x4) = (1/3.4375) x4 = 1 x4 = 0 PL1: z = 14 PL2: z = 9 (x1. 0. 1. x3. 0. x3. x2. 0.PL0: z = 6. 1. 0) x2 = 1 x3 = 1 x2 = 0 PL3: z = 13 PL6: z = 9. 0) (x1. 0. x4) = (1. x2. x3. 1.8. x2. x2. x4) = (1. x3. x2. 0.7 (x1. 1. 0. 0. 0. 0. x4) = (0. x4) = (0. x3. 1) (x1. x3. 0. x3. x4) = (0.2. x4) = (0.3 x1 = 0 x1 = 1 (x1. x4) = (2/3. Paso 0: Inicialización Algoritmo de Ramifcación y Corte (Minimización) .Haga la única solución activa aquella que tenga todas las variables discretas libres e inicialice el índice de solución t ← 0. también escoja la mejor como cota inferior x’ con valor objetivo z’. Si alguna solución es conocida para el modelo. De otro modo asigne z’ ← -∞. Si existe una cota inferior x’.Si la solución activa permanece. sino. es óptima. el modelo es infactible. De otro modo deténgase. seleccione x(t) y prosiga al Paso 2. Paso 1: Detención Algoritmo de Ramifcación y Corte (Minimización) . Paso 2: Relajación Algoritmo de Ramifcación y Corte (Minimización) .Intente resolver la relajación lineal del problema tratado que corresponde a x(t). entonces no es posible construir una solución entera a partir de este nodo. Paso 3: Término por infactibilidad Algoritmo de Ramifcación y Corte (Minimización) . Termine x(t) e incremente t ← t + 1. Retorne al Paso 1.Si la solución de la relajación lineal da como resultado infactible. Si la solución de la relajación lineal da un resultado de z que es menor que la cota inferior actual. el nodo actual no puede producir un mejor resultado. Retorne al Paso 1. Termine x(t) e incremente t ← t + 1. Paso 4: Término por cota Algoritmo de Ramifcación y Corte (Minimización) . Retorne al Paso 1. entonces ésta es la mejor solución que puede ofrecer el nodo actual. Paso 5: Término por factibilidad Algoritmo de Ramifcación y Corte (Minimización) . termine x(t) e incremente t ← t + 1.Si la solución de la relajación lineal da un resultado que satisface todos las restricciones del problema original. Luego de guardar este resultado como la nueva cota inferior. Incremente t ← t + 1. Paso 6: Restricción válida Algoritmo de Ramifcación y Corte (Minimización) . haga a esta restricción como parte del modelo original.Intente identifcar una restricción válida para el modelo original (PLE) que sea violada por la solución de la relajación activa actual. Si lo logra. Retorne al Paso 2. Escoja alguna variable binaria libre que sea fraccional en la solución activa actual y ramifque. Incremente t ← t + 1. Retorne al Paso 1. Paso 7: Ramificación Algoritmo de Ramifcación y Corte (Minimización) . Optimización de Sistemas II Planos Cortantes .
Copyright © 2024 DOKUMEN.SITE Inc.