PLE clase: Fundamentos de Branch and Cut
Download
Report
Transcript PLE clase: Fundamentos de Branch and Cut
Universidad Tecnológica de Pereira – Colombia
Posgrado en Ingeniería – Maestría/Doctorado
Programación Lineal Entera
Antonio H. Escobar Z.
2013
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 Cutand-Branch.
Pre-procesamiento
Branch and Cut
• Usa los criterios usados en Branch and Bound para
ramificar nodos con soluciones fraccionarias.
Pre-procesamiento
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´s
PL
PL
PL
PL
PL
PL
PL
PL
PL
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.
Branch and Cut - aspectos en investigación
• En la actualidad la unión de planos de cortes y Branch-andBound 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
lifting
P1
P2
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.
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.
Ejemplo: A partir de la solución del PL correspondiente,
encontrar una solución factible usando Diving.
-C
Variable seleccionada
para
asignar valor
entero.
( Branching )
Factible?
Factible?
• La variable x2 conserva su valor fraccionario de 9/4
• Las dos soluciones generadas son infactibles (violan
restricciones)
-C
Variable seleccionada
para
asignar valor
entero.
( Branching )
infactible
• No sonda ninguna de las soluciones.
infactible
infactible
Factible?
infactible
Factible?
Factible?
Factible?
infactible
Factible?
infactible
Factible?
• Una solución es factible y entera, la otra es infactible.
x2= 2
-C
x1 = 2
x2= 3
Finaliza el proceso, se encontró una solución factible entera.
infactible
factible y
entera
infactible
infactible
• Si se explora la otra rama del árbol se tienen dos
soluciones infactibles:
x2= 3
x2= 2
x1 = 3
-C
infactible
factible y
entera
Solución heurística
primal usando diving
infactible
infactible
infactible
infactible
Resumen:
Solución heurística
primal usando diving
-C
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
S
Sub_PLE
S
S
S
Sub_PLE
Limitante inferior y superior
-C
Mejor solución
entera factible
Branch and Cut
?
?
?
?
Variable para ramificar?
Próximo PL a resolver?
?
Pseudocostos?
Mejor estimado?
LIFO?
?
?
?
?
?
Cortes?
Extensiones?
Heurísticas primales?
Sub-PLE?
De que tipo?
Cuantos?
Donde?