200 likes | 492 Views
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?.
E N D
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 fi0 - 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 fi00) 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
Finitud del algorimo • Def: orden lexicográfico: un vector vRn,v 0, es lexicográfico >0 (o lex-positivo) si su primera componente no nula es positiva • Def: lex >: un vector vRn 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 y0l la primera columna del cuadro que corresponde a los términos independientes, cuyo primer elemento es - el valor objetivo • La sucesión de valores y0l con l=1..n, es lex-decreciente y acotada, • Si y00l = y00l +f00l con f00l >0, entonces el próximo corte a introducir es el correspondiente a la fila 0: - f00l =- f0jlxj + s • Supongamos se elige la columna p para pivotear: y00l+1 = y00l - y0pl *(f00l /f0pl) si el l-simo cuadro era óptimo, y0pl 0 p y además y0pl f0pl => y00l+1 y00l - f00l = y00l
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={xRn, Ax b} y S=P Zn • Sean • IP=Max {cx / xS} y • CIP=Max {cx/ x conv(S)} • Teo: Dado P={xRn, 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 x0 es una solución óptima de IP ==>x0 es solución óptima de CIP
Método primal de corte • Sean S={xZn, Ax b}, P={xRn, Ax b} y conv(S) la envoltura convexa de P. Nota: conv(S)P • Sea x1 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=yi0, j NB • supongamos existe una columna k / y0k <0 (cuadro no óptimo) y sea r la fila pivote/: yr0/yrk =min(yi0/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 yr0 /yrk j NB\k
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