La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación entera y optimización combinatoria Mayo 2007 Módulo 2:

Presentaciones similares


Presentación del tema: "Programación entera y optimización combinatoria Mayo 2007 Módulo 2:"— Transcripción de la presentación:

1 Programación entera y optimización combinatoria Mayo 2007 Módulo 2:

2 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?

3 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

4 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

5 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

6 (1)  f ij x j  f i0 - 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 f i0  0) y dual factible

7 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

8 EJEMPLOS

9 Finitud del algorimo Def: orden lexicográfico: un vector v  R n, v  0, es lexicográfico >0 (o lex-positivo) si su primera componente no nula es positiva Def: lex >: un vector v  R n se dice lex > que otro vector u  R n, 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

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

11 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 lex- decreciente 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 0j l x j + s Supongamos se elige la columna p para pivotear: y 00 l+1 = y 00 l - y 0p l *(f 00 l /f 0p l ) si el l-simo cuadro era óptimo, y 0p l  0  p y además y 0p l  f 0p l => y 00 l+1  y 00 l - f 00 l =  y 00 l 

12 Conclusión: la convergencia se alcanza en un número finito de pasos.

13 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

14 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

15 Sean P={x  R n, Ax  b} y S=P  Z n Sean –IP=Max {cx / x  S} y –CIP=Max {cx/ x  conv(S)} Teo: Dado P={x  R n, Ax  b}, y S=P  Z n y c  R n 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

16 Método primal de corte Sean S={x  Z n, Ax  b}, P={x  R n, 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)?

17 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 x i es entera  i  B x i +  y ij x j =y i0, j  NB supongamos existe una columna k / y 0k <0 (cuadro no óptimo) y sea r la fila pivote/: y r0 / y rk =min(y i0 / y ik ) i si y rk =1, la próxima solución básica también es entera

18 Si y rk  1, agregamos el corte: x k +   y rj / y rk  x j   y r0 / y rk  j  NB\k

19 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


Descargar ppt "Programación entera y optimización combinatoria Mayo 2007 Módulo 2:"

Presentaciones similares


Anuncios Google