Matemáticas 2.º Bachillerato Combinatoria. Cálculo de probabilidades RESUMEN DE COMBINATORIA.
Programación entera y optimización combinatoria
description
Transcript of Programación entera y optimización combinatoria
Programación entera y optimización combinatoria
Mayo 2007
Módulo 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?
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
EJEMPLOSEJEMPLOS
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 = y00
l +f00l con f00
l >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 = y00
l - y0pl *(f00
l /f0pl)
si el l-simo cuadro era óptimo, y0pl 0 p y además
y0pl f0p
l =>
y00l+1 y00
l - f00l = y00
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={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