PLE_2013_k (1)

40
Programación Lineal Entera Antonio H. Escobar Z. 2013 Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado

description

1

Transcript of PLE_2013_k (1)

Page 1: 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

Page 2: PLE_2013_k (1)

Branch and Cut

Page 3: PLE_2013_k (1)

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.

Page 4: PLE_2013_k (1)

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

Page 5: PLE_2013_k (1)

Branch and Cut

Pre-procesamiento

• Usa los criterios usados en Branch and Bound para ramificar nodos con soluciones fraccionarias.

Page 6: PLE_2013_k (1)

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

Page 7: PLE_2013_k (1)

Branch and Cut• Cuando no logra sondar un nodo, adiciona desigualdades

válidas (cortes) al PL relajado asociado a dicho nodo.

Page 8: PLE_2013_k (1)

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

Page 9: PLE_2013_k (1)

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

Page 10: PLE_2013_k (1)

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

Page 11: PLE_2013_k (1)

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

Page 12: PLE_2013_k (1)

• 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

Page 13: PLE_2013_k (1)

• 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

Page 14: PLE_2013_k (1)

• 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

Page 15: PLE_2013_k (1)

• 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

Page 16: PLE_2013_k (1)

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.

Page 17: PLE_2013_k (1)

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.

Page 18: PLE_2013_k (1)

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.

Page 19: PLE_2013_k (1)

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.

Page 20: PLE_2013_k (1)

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.

Page 21: PLE_2013_k (1)

- C

Ejemplo: A partir de la solución del PL correspondiente, encontrar una solución factible usando Diving.

Page 22: PLE_2013_k (1)

Variable seleccionada para asignar valor entero.

( Branching )

Factible? Factible?

• La variable x2 conserva su valor fraccionario de 9/4

Page 23: PLE_2013_k (1)

- C

• Las dos soluciones generadas son infactibles (violan restricciones)

Page 24: PLE_2013_k (1)

Variable seleccionada para asignar valor entero.

( Branching )

infactible infactible

• No sonda ninguna de las soluciones.

Page 25: PLE_2013_k (1)

infactible infactible

Factible? Factible? Factible? Factible?

Page 26: PLE_2013_k (1)

infactible

Factible? Factible?

infactible

Page 27: PLE_2013_k (1)

- C

• Una solución es factible y entera, la otra es infactible.

x 1 =

2

x2= 2

x2= 3

Page 28: PLE_2013_k (1)

infactible

factible y entera infactible

infactible

Finaliza el proceso, se encontró una solución factible entera.

Page 29: PLE_2013_k (1)

- C

• Si se explora la otra rama del árbol se tienen dos soluciones infactibles:

x 1 =

3

x2= 2

x2= 3

Page 30: PLE_2013_k (1)

infactible

factible y entera infactible

infactible

infactible infactible

Solución heurística primal usando diving

Page 31: PLE_2013_k (1)

- C

Resumen:

Solución heurística primal usando diving

Page 32: PLE_2013_k (1)

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

Page 33: PLE_2013_k (1)

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

Page 34: PLE_2013_k (1)

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

Page 35: PLE_2013_k (1)

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?

Page 36: PLE_2013_k (1)
Page 37: PLE_2013_k (1)
Page 38: PLE_2013_k (1)
Page 39: PLE_2013_k (1)
Page 40: PLE_2013_k (1)