Mdulo 2 Programacin entera y optimizacin combinatoria Mayo
Módulo 2: Programación entera y optimización combinatoria Mayo 2007
Métodos de corte Sea el problema de optimización: (ILP) Min c’x / Ax=b, x 0, x entero (A, c y b enteros) ¿Sirve tomar la solución real de (ILP) y luego redondear la solución al entero más próximo?
Sea (LP) una relajación de (ILP): (LP) Min c’x / Ax=b, x 0 (A, c y b enteros) Se cumple que: óptimo (ILP) óptimo (LP) Ideas básicas en los métodos de corte: • ir agregando a LP restricciones, de a una por vez, de forma de excluir el óptimo no entero del problema relajado • estas nuevas restricciones no deben excluir ningún punto entero de la región factible
• Def: plano de corte es una restricción lineal tal que no excluye ningún punto entero del conjunto de soluciones factibles • Algoritmos de corte: – Gomory (método fraccional dual) – Método primal de corte
Cortes de Gomory • Def: parte entera de un número real y, y , es el entero más grande q / q y Ejemplos: 2. 7 = 2 -1. 3 = -2 0 = 0 • Def: parte fraccionaria f= y- y del número y. Nota: 0 f 1
(1) fijxj fi 0 - Corte de Gomory • Teo: Si (1) es agregado al final del ‘tableau’ óptimo del (LP), ninguna solución entera es eliminada. El nuevo tableau es básico, primal no factible (si fi 0 0) y dual factible
Algoritmo fraccional dual: • Resolver LP, relejación entera de ILP. Sea x* solución óptima de LP • sbf=‘si’ • Mientras x* no entera y sbf =‘si’ hacer: – elegir una fila ‘i’ – agregar un corte de Gomory generado por ‘i’ – aplicar el simplex dual – si el dual es no acotado, entonces sbf=no – resolver el nuevo problema. Sea x*=nuevo óptimo – fin mientras
EJEMPLOS
Finitud del algorimo • Def: orden lexicográfico: un vector v Rn, v 0, es lexicográfico >0 (o lex-positivo) si su primera componente no nula es positiva • Def: lex >: un vector v Rn se dice lex > que otro vector u Rn , v lex> u, si el vector v-u es lex-positivo 0 1 0 0 es lex-positivo y 0 lex > 5 3 -4 -3 -1 5 -1
• La prueba se basa en considerar el algoritmo simplex dual con una regla de pivoteo que en caso de empate seleccione la columna de acuerdo al orden lexicográfico positivo. • Dado un problema (ILP) se resuelve la relajación LP por simplex, se puede asegurar que el cuadro óptimo final tiene todas sus columnas lex-positivas o se lo puede transformar en uno de esta forma (se considera como primer fila la de los costos reducidos). • Consideremos un problema LP a los que se le han agregado sucesivamente n cortes al final de cada cuadro óptimo del simplex.
• Sea y 0 l la primera columna del cuadro que corresponde a los términos independientes, cuyo primer elemento es - el valor objetivo • La sucesión de valores y 0 l con l=1. . n, es lexdecreciente y acotada, • Si y 00 l = y 00 l +f 00 l con f 00 l >0, entonces el próximo corte a introducir es el correspondiente a la fila 0: f 00 l =- f 0 jlxj + s • Supongamos se elige la columna p para pivotear: y 00 l+1 = y 00 l - y 0 pl *(f 00 l /f 0 pl) si el l-simo cuadro era óptimo, y 0 pl 0 p y además y 0 pl f 0 pl => y 00 l+1 y 00 l - f 00 l = y 00 l
• Conclusión: la convergencia se alcanza en un número finito de pasos.
Evaluación • Por ser un algoritmo dual, no produce una solución primal factible hasta alcanzar el óptimo • Puede ser problemático decidir cuando un número es entero o no, ya que los errores se acumulan
Gomory para MIP • El algoritmo de Gomory se extiende directamente ara MIP • En MIP no es razonable utilizar la fila de la función objetivo para producir cortes ya que este puede ser no entero
• Sean P={x Rn, Ax b} y S=P Zn • Sean – IP=Max {cx / x S} y – CIP=Max {cx/ x conv(S)} • Teo: Dado P={x Rn, Ax b}, y S=P Zn y c Rn se cumple: – El valor objetivo de IP esta acotado inferiormente sii el valor objetivo de CIP esta acotado inferiormente – Si CIP tiene un valor óptimo acotado ==> tiene solución´óptima en un extremo de conv(S) y es solución óptima de IP – Si x 0 es una solución óptima de IP ==>x 0 es solución óptima de CIP
Método primal de corte • Sean S={x Zn, Ax b}, P={x Rn, Ax b} y conv(S) la envoltura convexa de P. Nota: conv(S) P • Sea x 1 una solución entera no óptima de conv(S), o sea un punto extremo de conv(S) • Idea básica: usar cortes para habilitar el pivoteo en un punto extremo adyacente de conv(S) de forma que si el objetivo era maximizar, el objetivo crezca • Problema: cuantos cortes son necesarios para encontrar un punto extremo de conv(S)?
• Partimos de un cuadro de simplex con una sbf (solución básica factible) entera • Sea B=conjunto de índices de variables básicas y NB el de las no básicas • xi es entera i B • xi + yijxj=yi 0, j NB • supongamos existe una columna k / y 0 k <0 (cuadro no óptimo) y sea r la fila pivote/: yr 0/ yrk =min(yi 0/ yik) i • si yrk =1 , la próxima solución básica también es entera
• Si yrk 1, agregamos el corte: xk + yrj /yrk xj yr 0 /yrk j NBk
Se encuentra una solución óptima cuando: solución entera, primal y dual factible Algoritmo primal de cortes: • Comenzar con una solución entera, primal factible • La solución es dual factible? - Si : fin • Corte y pivoteo: agregar un corte de la forma anterior, pivotear manteniendo las condiciones de solución entera primal factible y volver al punto anterior
- Slides: 19