Programación Lineal Entera

Slides:



Advertisements
Presentaciones similares
Introducción a la Investigación de Operaciones
Advertisements

Representación del conocimiento
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Inteligencia Artificial
INTELIGENCIA ARTIFICIAL
Grupo 4 Matías Melgar Pablo Carbonell
Diferenciación e Integración Numérica
DOM ( Document Object Model) Prof. Franklin Cedeño.
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Análisis Matemático III
KRIGING.
Representación en espacio de estado
Inteligencia Artificial Búsqueda informada y exploración
Universidad Autónoma San Francisco
Investigación Operativa
Optimización matemática Algoritmos Genéticos – Parte 2 Por: Antonio H
2- SIMPLEX.
Optimización Multiobjetivo Por: Antonio H
Tema 2: Métodos de ajuste
Maracaibo, 5 de Noviembre de 2007 Universidad del Zulia Facultad de Ingeniería Instituto de Cálculo Aplicado Universidad del Zulia Facultad de Ingeniería.
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
EXPONENTES Y RADICALES
EXPANSIÓN DE SISTEMAS ELÉCTRICOS DE Universidad Tecnológica de Pereira
Universidad de los Andes-CODENSA
Resolución de Problemas Método Simplex
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Optimización Combinatoria usando Algoritmos Evolucionistas Problemas de Optimización. Idea: Encontrar una solución "factible" y "óptima" de acuerdo a algún.
EL PODER DE SOLVER.
Resolución de Problemas Método Simplex
Programación Lineal Unidad 1 Parte 3.
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Optimización, Búsqueda Heurística

Diseño y análisis de algoritmos
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Complejidad de los problemas de decisión
DEFINICIONES Sea (P) el siguiente problema de programación lineal:
Diseño y análisis de algoritmos
(Organización y Manejo de Archivos)
Descomposición Factorial Unidad 5
Optimización matemática Algoritmo de Búsqueda Tabú Por: Antonio H
Combinación de Clasificadores
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Programación entera y optimización combinatoria Mayo 2007 Módulo 2:
Toma de Decisiones Toda toma de decisión empieza con la detección de un problema. Para tomar la decisión correcta, se debe: Definir el problema en forma.
Prof. Orlando Durán Escuela de Ingeniería Mecánica PUCV Clase 05 AUTOMATIZACION DE LA MANUFACTURA.
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería Maestría en Ingeniería Eléctrica.
El problema de Cutting Sheets
Parte I. Estructuras de Datos.
I. Complejidad de Problemas
Una introducción a la computación evolutiva
Modelos Cuantitativos
1 Problemas de decisión Tipo particular de problemas de optimización Sistemas que evolucionan con el tiempo Se toman decisiones en momentos sucesivos de.
Parte I. Estructuras de Datos.
Sabemos reconocerlas, y calcularlas como soluciones de sistemas de ecuaciones, o de desigualdades Buscamos métodos de cálculo generales y eficientes Problemas.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
MÉTODOS DE EVALUACIÓN DEL DESEMPEÑO
TEMA 5: El problema del flujo con costo mínimo
Programación Lineal Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Sistemas Basados en Reglas
Prof. Juan José Bravo B., M.Sc. ©
RIESGO, RENDIMIENTO Y VALOR
Resolución de problemas
Hernández Camacho Víctor Jesus Islas Sánchez Karla Vanessa
Problema Dual INVESTIGACIÓN DE OPERACIONES. Problema Dual.
Universidad Fermín toro Vice Rectorado Académico Decanato de Ciencias Económicas y Sociales Licenciatura en Administración, Mención: Gerencia Integrantes.
Programación lineal entera (PLE)
Transcripción de la presentación:

Programación Lineal Entera 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 Cut-and-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 PL´s , PL,s … PL´s 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-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 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

Factible? Factible? 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)

infactible infactible Variable seleccionada para asignar valor entero. ( Branching ) infactible infactible No sonda ninguna de las soluciones.

infactible infactible Factible? Factible? Factible? Factible?

infactible infactible Factible? Factible?

- C Una solución es factible y entera, la otra es infactible. x2= 3

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

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

infactible infactible factible y entera infactible infactible Solución heurística primal usando diving

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 S 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 objetivo 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? ? ? ? ?