PLE_2013_k (1)
-
Upload
luis-santiago-gutierrez-falcon -
Category
Documents
-
view
224 -
download
0
description
Transcript of PLE_2013_k (1)
Programación Lineal Entera
Antonio H. Escobar Z.
2013
Universidad Tecnológica de Pereira – Colombia
Posgrado en Ingeniería – Maestría/Doctorado
Branch and Cut
Branch and Cut
• Con este nombre se define una familia de métodos usados para resolver problemas de programación lineal entera mixta PLEM.
• Se clasifica en el grupo de los métodos exactos, porque garantiza la solución óptima global del problema.
• Es un algoritmo que combina conceptos de Branch and Bound, planos de corte, extensiones, heurísticas primales y pre-procesamiento.
• Requiere resolver una secuencia de problemas de programación lineal cuyas características y orden de solución son determinados por la dinámica del algoritmo.
Branch and Cut
• Una etapa de pre-procesamiento precede a todas las demás, y en ella se intenta reducir restricciones y eliminar variables y fijar valores de variables. Esta etapa suele denominarse Cut-and-Branch.
Pre-procesamiento
Branch and Cut
Pre-procesamiento
• Usa los criterios usados en Branch and Bound para ramificar nodos con soluciones fraccionarias.
Branch and Cut
• En su interior requiere resolver un gran número de PL´s relajados. Es decir, necesita de una técnica eficiente (en tiempo de cómputo y memoria) para solucionar este tipo de problemas.
Pre-procesamiento
PL´s , PL,s … PL´sPL
PL
PL
PL
PL
PL PL PLPL
PL PL PL
PL
PL
PL
Branch and Cut• Cuando no logra sondar un nodo, adiciona desigualdades
válidas (cortes) al PL relajado asociado a dicho nodo.
• Gomory (1958) fue el primero en proponer cortes a partir del cuadro simplex, sin embargo, su aplicación cayó en desuso durante muchos años porque parecían quedar atrapados y eran poco eficientes.
• Land-Doig fueron los primeros en proponer un algoritmo Branch-and-Bound en 1960 creando el concepto de árbol de subproblemas.
• Como aplicación individual, el método Branch-and-Bound resultó ser más eficiente que el método de planos de corte, debido a las dificultades computacionales que presentaba este último.
• En teoría, los métodos de planos de corte puros pueden ser utilizados para resolver programas enteros sin necesidad de emplear ramificación, sin embargo, en la práctica los métodos de plano de corte puros no son tan eficientes.
• El interés en los planos de corte resurgió en la década de 1980 como consecuencia del trabajo de Crowder que demostró la potencialidad de los cortes obtenidos para problemas enteros con restricciones tipo mochila.
• Zanette-Fischetti-Balas (2010) han desarrollado métodos con reglas lexicográficas puede dar lugar a un conjunto de planos de corte de Gomory que interactúan bien uno con el otro y permitir un método de planos de corte puro que trabaja efectivamente.
• El concepto de corte ha evolucionado y asume formas cada vez más sofisticadas, a tal punto que son fundamentales en el rendimiento de exitosos paquetes comerciales de programación entera.
• El interés por los planos de cortes impulsó el desarrollo de una teoría poliedral para muchas clases de problemas, conduciendo al desarrollo de cortes específicos para cierta clase de problemas, que tuvieron mucho éxito debido a la reducción drástica de los tiempos de cómputo respecto a los necesarios por Branch-and-Bound.
• En el caso del problema TSP (Traveling Salesman Problem) se ha mostrado que las restricciones de subtours representan facetas del PLE.
• En 1990 Balas demostró que los planos de corte resultan ser muy efectivos en cualquier problema de programación entera cuando se combinan con conceptos de Branch-and-Bound.
• En los trabajos iniciales los planos de corte se aplicaron únicamente al nodo raíz del árbol Branch-and-Bound. Los algoritmos desarrollados no resultaron ser muy eficientes.
• En 1987 Padberg-Rinaldi presentaron una propuesta en la que generan cortes adicionales en el interior del árbol, para el problema TSP, con muy buenos resultados.
• A pesar de que por muchos años hubo poco interés por el uso de los cortes de Gomory, Bixby-Rothberg (2007) mostraron que son los planos de corte generales más útiles.
• Uno de los problemas con los planos de corte de Gomory es que se eventualmente conduce a un problema dual degenerado, si no se tiene cuidado durante su construcción.
• En la actualidad la unión de planos de cortes y Branch-and-Bound es un línea de investigación en la que además se están incluyendo aspectos como computación paralela y computación en la nube.
• Un aspecto que resulta importante es buscar ortogonalidad entre los cortes generados.
• Andersen (2007) y Dey-Tramontani (2009) presentaron desarrollos en los cuales se obtienen cortes a partir de dos filas de la tabla símplex, que potencialmente podrían ser más fuertes que los cortes derivados de una sola fila. Estos métodos utilizan ideas de teoría de grupos.
Branch and Cut - aspectos en investigación
• El estudio de generación de familias de cortes válidos fuertes sólo resulta útil en la práctica si va acompañado del desarrollo de rutinas de separación, que puedan encontrar eficientemente desigualdades violadas.
• El problema de la separación consiste en determinar en forma eficiente un plano de corte que separe la solución fraccionaria de un PL relajado y la envolvente convexa del problema de PLE.
Branch and Cut - aspectos en investigación
• Los cortes generados en un nodo del árbol Branch-and-Bound son válidos para sus nodos descendientes únicamente. Estos se denominan cortes locales. Estos cortes pueden ser modificados para que sean válidos en todo el árbol, mediante un proceso de lifting (extensiones).
Desigualdad válida para P1
infactible para P2
P1P2
lifting
Branch and Cut - aspectos en investigación
• El uso de los coeficientes de costo reducido puede conducir a la fijación de variables en sus valores mínimos o a la introducción de variables a la solución actual dando como resultado un algoritmo Branch-and price-and-Cut.
• Deben considerarse metodologías de manejo de simetría en problemas cuyas formulaciones contienen simetría natural. Por ejemplo, en la programación de tareas en las que se usan máquinas idénticas. El método Branch-and-Bound pierde eficiencia en esta clase de problemas.
• El método de punto interior puede presentar varias ventajas respecto al método simplex si se usa dentro de un esquema Branch-and-Cut. Entre estas se encuentran:
Mayor eficiencia computacional en problemas de gran tamaño.
Los cortes son generados sobre una solución que es más central, conduciendo a cortes más profundos.
No presenta ciclaje cuando se tienen PL´s degenerados.
Branch and Cut - aspectos en investigación
Conceptos asociados:
•Pre-procesamiento: Reducción del espacio solución, reducción de variables, obtención de buenas soluciones iniciales factibles.
•Métodos de solución de PL: Primal simplex, dual simplex, dual simplex canalizado, método de punto interior.
•Branch-and-Bound: Ramificación, limitación y sondaje.
•Planos de corte o desigualdades válidas: Cortes generales (Gomory, cover, clique, zero-half, etc), cortes específicos del problema (ejemplo, subtours en el problema TSP).
•Extensiones: lifting para cortes cover, lifting para cortes disyuntivos.
Conceptos asociados:
•Pre-procesamiento: Produce reducciones en el tiempo final de cálculo en factores del orden de 10 veces.
Variables principales: Algunas variables del problema siempre permanecen fuera de la base en los PL´s.
Fijación de variables: Algunas variables están obligadas a asumir ciertos valores específicos para garantizar factibilidad.
Reducción de restricciones: Existen restricciones redundantes y la posibilidad de compactar restricciones existentes.
Redondeo de partes fraccionarias: Algunas variables y algunas desigualdades pueden hacerse más restrictas.
Determinación de soluciones heurísticas iniciales de buena calidad y factibles → A partir de heurísticas y heurísticas primales.
Heurísticas primales
• Son algoritmos heurísticos que generan o tratan de construir soluciones enteras factibles de buena calidad para problemas de PLE o PLEM.
• Utilizan como referencia una solución óptima fraccionaria asociada a la relajación lineal del problema.
• Permiten encontrar limitantes superiores para la incumbente del problema de PLE, ya que representan soluciones enteras factibles.
Heurísticas primales
Existen diversas propuestas en la literatura especializada como las siguientes:
•Simple Rounding: Realiza redondeo asegurando factibilidad.
•Rounding: Realiza redondeo violando potencialmente algunas restricciones.
•Shifting: Altera los valores de variables enteras o continuas, en su vecindad, para recuperar factibilidad.
•Integer Shifting: Altera valores de variables enteras para obtener factibilidad.
Heurísticas primales
• Diving Heuristics:
• Imitan un procedimiento similar a Branch and Bound.
• Toma una solución de un PL relajado y redondea iterativamente las componentes fraccionarias de la solución buscando una solución entera factible.
• Generalmente realiza búsqueda usando la regla LIFO.
• A diferencia de un Branch and Bound, que busca la mejor forma de subdividir un nodo y evaluarlo (resolviendo PLs), las reglas de ramificación de estas heurísticas buscan la mejor forma de alcanzar la factibilidad.
- C
Ejemplo: A partir de la solución del PL correspondiente, encontrar una solución factible usando Diving.
Variable seleccionada para asignar valor entero.
( Branching )
Factible? Factible?
• La variable x2 conserva su valor fraccionario de 9/4
- C
• Las dos soluciones generadas son infactibles (violan restricciones)
Variable seleccionada para asignar valor entero.
( Branching )
infactible infactible
• No sonda ninguna de las soluciones.
infactible infactible
Factible? Factible? Factible? Factible?
infactible
Factible? Factible?
infactible
- C
• Una solución es factible y entera, la otra es infactible.
x 1 =
2
x2= 2
x2= 3
infactible
factible y entera infactible
infactible
Finaliza el proceso, se encontró una solución factible entera.
- C
• Si se explora la otra rama del árbol se tienen dos soluciones infactibles:
x 1 =
3
x2= 2
x2= 3
infactible
factible y entera infactible
infactible
infactible infactible
Solución heurística primal usando diving
- C
Resumen:
Solución heurística primal usando diving
Heurísticas primales
• Diving Heuristics: Existen varias propuestas en la literatura para realizar este proceso:
• Dive-and-Fix• Fractional Diving• Coefficient Diving• Linesearch Diving• Guide Diving• Pseudocost Diving• Vectorlength Diving
Heurísticas primales• Large Neighborhood Search (LNS): Resuelven subproblemas
de PLE del PLE original. Los subproblemas se crean fijando en algún valor el mayor número de variables en un nodo no sondado. Existen varias propuestas en la literatura para realizar este proceso:
• Local Branching• RINS• Crossover• Mutation
SS S
S
Sub_PLE
Sub_PLE
Limitante inferior y superior
- C
Mínimo valor posible de la función objetivo
Máximo valor posible de la función
objetivoMejor solución
entera factible
Branch and Cut
?
? ?
????
?
??
Cortes?Extensiones?Heurísticas primales?Sub-PLE?
Variable para ramificar?Próximo PL a resolver?
Pseudocostos?Mejor estimado?LIFO?
De que tipo?Cuantos?Donde?