Algoritmos de Planos de Corte

Documentos relacionados
Programación lineal entera (PLE)

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Formulación del problema de la ruta más corta en programación lineal

Conjuntos y funciones convexas

Programación entera: Ejemplos, resolución gráfica, relajaciones lineales. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

Tema 5: Análisis de Sensibilidad y Paramétrico

El método simplex 1. 1 Forma estándar y cambios en el modelo. 2 Definiciones. 3 Puntos extremos y soluciones factibles básicas. 4 El método simplex.

Algebra lineal y conjuntos convexos

Soluciones básicas factibles y vértices Introducción al método símplex. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 4 Optimización no Lineal

IN Guía de Problemas Resueltos de Geometría de Programación Lineal v1.0

Espacios Vectoriales

Tema 1. Espacios Vectoriales Definición de Espacio Vectorial

Apéndice sobre ecuaciones diferenciales lineales

RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN ENTERA MÉTODOS DE CORTE CORTES DE GOMORY

4.1. Polinomios y teoría de ecuaciones

Clase 9 Programación No Lineal

PROGRAMACIÓN LINEAL ENTERA

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Espacios vectoriales

Espacios vectoriales reales.

Algoritmos para determinar Caminos Mínimos en Grafos

APUNTES DE ÁLGEBRA LINEAL TEMA 2. SISTEMAS DE ECUACIONES LINEALES

Jesús Getán y Eva Boj. Marzo de 2014

Con miras a conocer la metodología que se aplica en el Método SIMPLEX, tenemos a continiacion un ejemplo:

1 Método de la bisección. 1.1 Teorema de Bolzano Teorema 1.1 (Bolzano) Contenido

Teoremas de Convergencia

PLs no acotados El método símplex en dos fases PLs no factibles. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Problemas de Programación Lineal: Método Simplex

5.- Problemas de programación no lineal.

Tema 11.- Autovalores y Autovectores.

Espacios Vectoriales

UNIDAD 6 PROGRAMACIÓN LINEAL ENTERA. de programación lineal entera. lineal entera.

Sistemas de ecuaciones lineales dependientes de un parámetro

Funciones de Clase C 1

520142: ALGEBRA y ALGEBRA LINEAL

Modelos de Programación Lineal: Resolución gráfica y Teorema fundamental. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Aplicaciones de la Forma Normal de Smith de una Matriz Entera

Tema 3: Espacios vectoriales

DUALIDAD EN PROGRAMACION LINEAL

RESOLUCIÓN DE SISTEMAS MEDIANTE DETERMINANTES

Derivadas Parciales (parte 2)

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

Universidad Nacional de Ingeniería Facultad de Ciencias. Física Computacional CC063. Algebra Lineal. Prof: J. Solano 2012-I

Programación Lineal Continua

PASO 1: Poner el problema en forma estandar.

ECUACIONES EN DIFERENCIAS LINEALES CON COEFICIENTES CONSTANTES

Sistem as de ecuaciones lineales

May 4, 2012 CAPÍTULO 5: OPTIMIZACIÓN

Sistemas de Ecuaciones Lineales y Matrices

Teoría de grafos y optimización en redes

Z Optima X 1 + X 2 5 Z 1 -X 1 + 2X Región factible. Figura 1

Descomposición en forma canónica de Jordan (Segunda versión)

Clase 1: Primalidad. Matemática Discreta - CC3101 Profesor: Pablo Barceló. P. Barceló Matemática Discreta - Cap. 5: Teoría de números 1 / 32

Universidad Tec Milenio: Profesional HG04002 Análisis de Decisiones I

TEMA 5: INTERPOLACION NUMERICA

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1

MÉTODO DEL DUAL (TEORIA DE DUALIDAD)

TEMA 8.- NORMAS DE MATRICES Y

Combinación lineal, Independencia Lineal, y Vectores que generan (Sección 6.3 pág. 291)

Problemas de VC para EDVC elaborados por C. Mora, Tema 4

Preliminares Interpolación INTERPOLACIÓN Y APROXIMACIÓN POLINOMIAL

Base y Dimensión de un Espacio Vectorial

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

Ejercicios tipo final

Espacios Vectoriales. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Espacios Vectoriales 1 / 21

Matrices: repaso. Denotaremos con M m n el conjunto de matrices de tamaño m n, o sea, de m filas y n columnas. Una matriz A M m n es de la forma A =

EJERCICIOS DE ÁLGEBRA LINEAL TEMA 1 ESPACIOS VECTORIALES

Geometría combinatoria de cuadrados mágicos, latinos, sudokus y otras tablas curiosas

POST-OPTIMIZACIÓN Y SENSIBILIDAD EN PROBLEMAS LINEALES.

Un subconjunto no vacío H de un espacio vectorial V es un subespacio de V si se cumplen las dos reglas de cerradura:

Programación Lineal Entera. Programación Entera

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA

Método de diferencias finitas para ecuaciones diferenciales parciales elípticas. (Parte II)

Desarrollo de las condiciones de optimalidad y factibilidad. El problema lineal general se puede plantear como sigue:

PROBLEMA DE PROGRAMACIÓN LINEAL RESUELTO POR MÉTODO SIMPLEX

Objetivos formativos de Álgebra

Algebra Lineal. Gustavo Rodríguez Gómez. Verano 2011 INAOE. Gustavo Rodríguez Gómez (INAOE) Algebra Lineal Verano / 21

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

PROBLEMA 1. Considere el siguiente problema de programación lineal:

Dos inecuaciones se dice que son equivalentes cuando ambas tienen las mismas soluciones.

PROGRAMACIÓN LINEAL. Programación Lineal

Clase 8 Matrices Álgebra Lineal

Flujos de redes (Network Flows NF)

NÚMEROS COMPLEJOS: C

1 ÁLGEBRA DE MATRICES

RESOLUCIÓN DE SISTEMAS MEDIANTE DETERMINANTES

Cálculo Diferencial: Enero 2016

El Algoritmo E-M. José Antonio Camarena Ibarrola

PROGRAMACION ENTERA. M. en C. Héctor Martínez Rubin Celis 1

Problemas de Espacios Vectoriales

Métodos de factorización para resolver sistemas de ecuaciones lineales. 22 de agosto, 2012

La función, definida para toda, es periódica si existe un número positivo tal que

El haz de planos paralelos queda determinado por un vector normal, n A, B,

Universidad del Rosario Economía Matemática II Taller 8 - Kuhn Tucker

Una ecuación puede tener ninguna, una o varias soluciones. Por ejemplo: 5x 9 = 1 es una ecuación con una incógnita con una solución, x = 2

Universidad Nacional de Colombia Departamento de Matemáticas Álgebra Lineal - Grupo 1 Resumen Unidad n 3

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Enteros

Transcripción:

Algoritmos de Planos de Corte Problema: max {cx / x X} con X = {x / Ax b, x Z n + } Proposición: conv (X) es un poliedro que puede entonces escribirse como conv (X) = {x / Ax b, x 0} Lo mismo ocurre para un problema de programación lineal entera mixta.

Situación ideal: tenemos una descripción completa de la cápsula convexa. (problemas fáciles). Si el problema es NP-Hard no tenemos esperanza de poder tener una buena descripción de conv(x). Cómo podemos obtener una aproximación de la cápsula convexa? Def: Una desigualdad πx π 0 es una desigualdad válida para X R n si se verifica que πx π 0 para todo x X.

Qué desigualdades válidas son buenas o útiles? Cómo usarlas en un problema en particular? Ejemplos: Desigualdades lógicas como las que ya vimos en los ejemplos de preprocesamiento, redondeo entero, características del problema, etc. (ver ejemplos Wosley pág 114-117). Cómo generar desigualdades válidas? Cómo probar que son válidas? Proposición: πx π 0 es una desigualdad válida para P = {x / Ax b, x 0} si y sólo si u 0, v 0 tal que ua v = π y ub π 0 o u 0 tal que ua π y ub π 0

Proposición: Si X = { y Z 1 / y b } entonces y b es una desigualdad válida para X. Ejemplos: desigualdades válidas para Matching y otros problemas (Wosley, pág 118).

Método de Chvátal- Gomory para construir una desigualdad válida. Sea X = P Z n, P = {x R n / Ax b }, A matriz de mxn {a 1, a 2. a n } columnas de A, u R m +. i) La desigualdad j u a j x j ub es válida para P ii) j u a j x j ub es válida para P. iii) j u a j x j u b es valida para X. Las desigualdades originalmente propuestas por Gomory, que son una clase particular de estas y que fueron las que dieron origen a este método, se pueden expresar a partir de la base óptima de la relajación lineal, incorporar al último sistema y reoptimizar a partir de allí. Ese es el método que Gomory propuso a comienzos de los 60.

Teorema: Toda desigualdad válida para X puede ser obtenida aplicando C-G un número finito de pasos. Porqué esto no es suficiente para considerar resuelto el problema de PLE?.

Más en general si podemos determinar una familia de desigualdades válidas para el problema podemos agregarlas a la formulación y usar un paquete comercial para branch and bound, con la nueva formulación, más ajustada. Ejemplos: Problema de localización sin restricciones de capacidad. Problema de Lost-Sizing con restricciones de capacidad (Wosley pág 122)

Algoritmos de planos de corte Supongamos que X = P Z n y que conocemos una familia F de desigualdades válidas para X, πx π 0 F. F puede tener un número muy grande de desigualdades como para agregarlas directamente a la formulación. Para una función objetivo específica el objetivo no es encontrar la cápsula convexa completa, sólo necesitamos una buena aproximación cerca de la solución óptima. En estos casos usamos un algoritmo de planos de corte para intentar resolver el problema IP = max {cx: x X}.

Algoritmo: 1. Inicialización: t= 0, P 0 = P 2. Iteración t. Resolver el problema de programación lineal. z t = max {cx: x P t } Sea x t una solución óptima. - Si x t Z n parar. x t es óptima para IP - Si x t Z n resolver el problema de separación para x t y la f familia de desigualdades válidas F.. Si se encuentra una desigualdad π t x π t 0 en F, tal que π t x t > π t 0, o sea una desigualdad que corta xt ponemos P t = P {x / π t x π t 0 }, t = t+1.. Sino, parar

Cómo se implementa esto? Se puede usar un paquete comercial de programación lineal. En la práctica es a menudo mejor agregar varios cortes violados por vez y no uno por iteración. Qué implica resolver el problema de separación? Qué pasa si el algoritmo termina sin solución entera para IP? P t = P {x / π i x π i 0,i =1.t } es una formulación más ajustada del problema que puede ser usar para iniciar un branch and bound.

Algoritmo de planos de corte de Gomory (1958) Tenemos el problema max {cx / Ax = b, x 0, x entero} Supongamos que tenemos una solución óptima de la relajación lineal x Bi + j N a ij x j = a i0 para i=1,.m (*) Si la solución básica no es entera existe a i0 Z para alguna fila i. x Bi + j N a ij x j a i0 (**) Restando (*) y (**) queda j N (a ij - a ij ) x j a i0 - a i0 Ponemos f ij = a ij - a ij para j N y f i0 = a i0 - a i0. Esta desigualdad corta la solución óptima x* Definimos la slack s = - f j0 + j N f ij x j, agregamos la nueva ecuación y reoptimizamos. S es entera y nonegativa.

Ej: Wosley (pág 125) Proposición: Sea β i una fila de B -1 y q i = β i - β i para i = 1.m El corte de Gomory j N f ij x j f j0 es una desigualdad de Chvatal- Gomory que se puede escribir en terminos de las variables originales como q a j x j q b

Estas ideas se pueden aplicar también a problemas de Programación Lineal Entera Mixta. El primer algoritmo de corte que se reportó es un caso del TSP de 1954 (Dantzig, Fulkerson, Johnson). En este caso el problema de separación se resolvió detectando los cortes violados mirando la solución. En la práctica esto no es suficiente para resolver problemas de programación lineal entera. Se requiere derivar otro tipo de desigualdades más fuertes y en general ad-hoc para cada problema.

Desigualdades válidas fuertes Qué es una desigualdad válida fuerte para un problema de PLE? Describir una familia interesante de desigualdades fuertes para un problema particular puede ser muy difícil. Dada una familia de desigualdades fuertes el problema de separación puede ser difícil de resolver. Para problemas difíciles hay que usar estas desigualdades en el marco de un Branch and Bound (algoritmos Branch and Cut).

Si el problema es NP-Hard no hay esperanza (salvo que sea P = NP) de obtener una descripción explícita completa de conv(x), con un número polinomial de restricciones. Tampoco se puede esperar resolver el problema de separación en tiempo polinomial. Si tenemos X = X 1 X 2 y el problema sobre X 2 está en P, se puede intentar determinar conv(x 2 ). Si tenemos X = X 1 X 2 con ambos problemas NP-hard, puede de todos modos ser más fácil determinar desigualdades válidas separadas para X 1 y X 2.

Una desigualdad válida πx π 0 para P domina a otra desigualdad válida µx µ 0 si existe v > 0 tal que π v µ y π 0 v µ 0, (π, π 0 ) (v µ, v µ 0 ). Esto implica que {x R n + / πx π 0 } {x R n + / µx µ 0 } Ej : 2 x 1 + 4 x 2 9 es dominada por x 1 + 3 x 2 4 (poner v = 0.5) Una desigualdad válida πx π 0 para P es redundante si existen k 2 desigualdades válidas para P tal que una combinación lineal de ellas con pesos positivos domina a πx π 0. Para que sirve saber si una desigualdad es redundante?

Teorema: Si P es un poliedro de dimensión completa entonces tiene una única descripción minimal P = {x R n / a i x b i para i =1, m } donde cada desigualdad es única (salvo múltiplos positivos) Todas estas desigualdades son entonces necesarias para la descripción de la cápsula convexa. Si se suprime alguna de ellas el poliedro ya no es el mismo P. Si una desigualdad válida para P, no es múltiplo de alguna de las que describen P es redundante.

Se puede demostrar que la dimensión de P es el número máximo número de puntos afinmente independientes en P menos 1. Si P es de dimensión completa dim (P) = n una desigualdad válida πx π 0 es necesaria en la descripción de P si y sólo si es una faceta de P. Entonces si P es de dimensión completa, πx π 0 define una faceta de P si y sólo si hay n puntos afinmente independientes que la satisfacen por igualdad. Ej: Wosley pág 143. Cómo probar que una desigualdad es una faceta? Cómo probar que se tiene la descripción completan de la cápsula convexa de X?

Cómo probar que una desigualdad es una faceta? Suponemos conv(x) acotado y de dimensión completa. Encontrar n puntos afinmente independientes que verifiquen πx = π 0 i) Determinar t n puntos x 1.. x t X que satisfagan πx = π 0 ii) Suponemos que todos los puntos están en un hiperplano µx = µ 0 Resolvemos el sistema lineal donde µ, µ 0 son las incógnitas. µ j x k j = µ 0 para k =1 t iii) Si la única solución es (µ, µ 0 ) = λ (π,π 0 ) para λ 0 entonces la desigualdad πx π 0 define una faceta. Estamos verificando en forma indirecta que los puntos son afinmente independientes. Ej: Wosley pág 144.

Cómo intentar probar que se tiene la descripción completa de la cápsula convexa de X?. Aprovechar la estructura especial del problema. Por ejemplo cuando la matriz es unimodular. Mostrar que los puntos fraccionales no son extremos de P. Probar que para todo c R n la solución óptima de z LP = max {cx/ Ax b} es entera. Probar que para todo c R n existe un punto x * X y una solución factible u * del dual w LP = min {ub/ ua = c, c 0} tal que c x* = u * b.

Probar que si πx π 0 es una faceta de conv(x) entonces es una de las desigualdades que definen P. Verificar que b Z n y mostrar que para todo c Z n el valor óptimo del dual w LP = min {ub/ ua = c, c 0} es entero Supongamos que Q R n x R p es un poliedro tal que P = proy x (Q) = {x R n /(x,w) Q para algún w R p }. Mostrar que para todo c R n max {cx/ (x,w) Q } tiene solución óptima con x X.

Desigualdades para restricciones mochila 0-1 Sea X = {x B n / j a j b} Asumimos que b y los a j son positivos (eventualmente se hace un cambio de variables) Un conjunto C N es un cubrimiento si j a j > b. es un cubrimento minimal si C \ {j} no es cubrimiento para ningún j C Si C es un recubrimiento, la desigualdad de cubrimiento (cover) j C x j C -1 es válida para X. Ej: Determinar desigualdades minimales de cover para X = {x B 7 /11x 1 +6x 2 +6x 3 +5x 4 +5x 5 +4x 6 +x 7 19}

Cómo podemos reforzar esta desigualdades? Si C es un recubrimiento, la desigualdad extendida de cubrimiento j E(C) x j C -1 donde E(C) = C {j/ a j a i para todo i C } Ej: Poner C = {3,4,5,6} en el ejemplo anterior Cómo podemos dar un procedimiento para mejorar esta desigualdad aún más?. Ej: ver continuación del ejemplo anterior, pág 148.

En el caso general queremos encontrar los mejores valores posibles para α j, j N\C tal que la desigualdad es válida para X. j C x j + α j x j C -1 Se puede formular un procedimiento general de lifting para obtener desigualdades que definen facetas a partir de las desigualdades minimales de cover. (Wosley, pág 149)

Separación para las desigualdades de cover Problema: dado un punto x*, 0 x* j 1, con algún x* j no entero, queremos saber si x* satisface o no todas las desigualdades de cover. Podemos escribir las desigualdades de cover como: j C (1- x j ) 1 Entonces queremos determinar si existe un conjunto C N tal que j C a j > b y para el cual j C (1- x* j ) < 1. O sea queremos saber si existe ξ=min C N { j C (1- x* j )/ j C a j > b} < 1

Cómo no conocemos C, podemos reformular esto como un PLE agregando las variables binarias z j : Es ξ=min { jn (1- x* j )z j / j C a j z j > b, z B n } < 1? Si ξ 1, x* satisface todas las desigualdades de cover. Si ξ < 1 con solución óptima z R la desigualdad de cover j R (1- x j ) < R -1 corta a x*.

Ej: Supongamos que tenemos X = {x B 6 / 45 x 1 +46x 2 +79x 3 +54x 4 +53x 5 +125x 6 178 } y el punto fraccional x* = {0,0,3/4,1/2,1,0} El problema de separación de cover quedaría: s.a. Min z 1 + z 2 + ¼ z 3 +1/2 z 4 + z 6 45 z 1 +46 z 2 +79z 3 +54z 4 +53z 5 +125z 6 > 178 z B 6 Una solución óptima de este problema es z R = (0,0,1,1,1,0) con ξ=3/4. Entonces la desigualdad de cover está violada por x*. x 3 +x 4 +x 5 2

Métodos branch and cut Son algoritmos branch and bound en el cual se generan planos de corte en cada nodo del árbol. Combinan todas las ideas que vimos para resolver un problema PLE particular. Requiere un trabajo previo para determinar desigualdades válidas, facetas, etc. para el problema específico a tratar. En cada nodo se trata de obtener la mejor cota dual posible Hay que usar preprocesamiento, heurísticas primales, etc. Se almacenan cortes en un pool de cortes.

Esquema general de un algoritmo Branch and Cut

Ej: Wosley pág 157 Problema de asignación generalizada. max i j c ij x ij s.t. j x ij 1 i = 1, m i a ij x ij b j j = 1 n x B mn Ejemplo con m= 10, n= 5, b = (91,87,109, 88,64) Ver matrices (c ij ) y (a ij ) en el libro.

Coeficientes de la función objetivo c ij 110 16 25 78 59 65 69 54 28 71 19 93 45 45 9 89 31 72 83 20 62 17 77 18 39 37 115 87 59 97 89 102 98 74 61 78 96 87 55 77 74 27 99 91 5 88 97 99 99 51

Matriz a ij 45 88 98 83 69 4 74 87 8 68 59 44 83 82 75 49 73 97 96 72 85 52 87 99 20 27 13 71 1 44 9 72 56 30 72 5 42 43 91 3 60 26 44 53 54 59 66 21 1 95

Arbol generado por el Branch and Cut 554.1 548.9 x 73 = 0 x 73 =1 x 13 = 0 x 13 =1 537 537 545 < 545 545

Algunos detalles de la corrida: Usaron un programa de branch and cut y generaron desigualdades generalizadas de cover usando después el procedimiento de lifting. El preprocesamiento eliminó las 5 variables para las cuales a ij > b j. En el nodo raíz se hicieron 3 iteraciones de la relajación lineal agregando hasta 5 cortes por paso. En los otros 3 nodos se resolvió una sola relajación agregando 5 cortes. El óptimo entero es 545. Si se agrega una cantidad ilimitada de cortes en el nodo raíz, se general 18 cortes en total allí, y el valor de la relajación lineal allí es 546. Usando B&B solamente se requirió resolver la relajación lineal en 4206 nodos.