Вы находитесь на странице: 1из 12

CLASE 14 Programacin Entera

Prof. Carlos Bohle Zrecht (carlos.bohle@gmail.com)

Planos cortantes
Branch & Bound: va tomando opciones para los valores de las variables enteras, ramificando Va creando varios problemas de programacin lineal, cada una con un dominio ms chico, acotado a un borde entero, donde se va buscando el ptimo. Idea del algoritmo de planos cortantes: encontrar restricciones lineales que vayan sacando las soluciones fraccionales.

Planos cortantes
Visto grficamente, el dominio de un problema entero es:

Min cTx

Axb

Planos cortantes
Qu buscamos? Generar restricciones lineales que dejen el poliedro factible definido por las soluciones enteras (Ver lnea roja):

Min cTx

Axb

Planos Cortantes
Las nuevas restricciones sern redundantes desde el punto de vista el problema entero (no cambian la cantidad de soluciones factibles), pero si van redefiniendo el problema relajado. Esta idea parte con Gomory, en el ao 1958. Consiste tambin en un mtodo iterativo, a cada iteracin se aaden restricciones para ir restringiendo el dominio. Cada tipo de problema tiene distintos tipos de cortes: p. ej vendedor viajero usa cortes distintos al vendedor viajero.

Algoritmo de Gomory
Resolvemos el problema de relajacin lineal: a partir de esa solucin podemos obtener una primera idea de qu podemos tratar de redondear. Consideremos que para un problema lineal:

Ahora, consideremos las definiciones

Con N el conjunto de las variables no bsicas

Algoritmo de Gomory
Dado que los xj > 0:

Esto es cierto para todas las soluciones enteras, pero no necesariamente para las fraccionales, por lo que aadir las restricciones de parmetros redondeados, las soluciones fraccionales van quedando fuera.

Algoritmo de Gomory
Ejemplo: problema de la mochila

P) Min 16 x1 + 22 x2 + 12 x3 + 8 x4 + 11x5 + 19 x6 s.a. 5 x1 + 7 x2 + 4 x3 + 3 x4 + 4 x5 + 6 x6 14 xi {0,1}, i = 1,..,6


El problema relajado es:

P) Min 16 x1 + 22 x2 + 12 x3 + 8 x4 + 11x5 + 19 x6 s.a. 5 x1 + 7 x2 + 4 x3 + 3 x4 + 4 x5 + 6 x6 14 0 xi 1, i = 1,..,6

Algoritmo de Gomory
La solucin al problema relajado es:

xT = [1 3 / 7 0 0 0 1]
Buscamos encontrar un corte que nos permita liberarnos de la solucin fraccional. Considerando la primera restriccin y la solucin, podemos pasar de:

5 x1 + 7 x2 + 4 x3 + 3x4 + 4 x5 + 6 x6 14 5 x1 + 7 x2 + 6 x6 14
Para sacarnos el fraccional, aadimos la restriccin (redundante si es entero):

x1 + x2 + x6 2

Algoritmo de Gomory
El nuevo problema es:

P) Min 16 x1 + 22 x2 + 12 x3 + 8 x4 + 11x5 + 19 x6 s.a. 5 x1 + 7 x2 + 4 x3 + 3 x4 + 4 x5 + 6 x6 14 x1 + x2 + x6 2 0 xi 1, i = 1,..,6


Y la nueva solucin ser:

xT = [0 1 1/4 0 0 1]

Algoritmo de Gomory
Operando de nuevo sobre la primera restriccin, encontramos la restriccin nueva:

5 x1 + 7 x2 + 4 x3 + 3x4 + 4 x5 + 6 x6 14 7 x2 + 4 x3 + 6 x6 14 x2 + x3 + x6 2
Y el nuevo problema:

P) Min 16 x1 + 22 x2 + 12 x3 + 8 x4 + 11x5 + 19 x6 s.a. 5 x1 + 7 x2 + 4 x3 + 3 x4 + 4 x5 + 6 x6 14 x1 + x2 + x6 2 x2 + x3 + x6 2 0 xi 1, i = 1,..,6

Algoritmo de Gomory
La solucin al problema relajado es:

xT = [1 / 3 1 1 / 3 0 0 2/3]
El problema sigue iterando y realizando cortes sobre el dominio ptimo, hasta dar con una solucin entera. En cada corte se resuelve una relajacin lineal. Este algoritmo es bueno para problemas grandes y complicados, pero es muy especfico.

Вам также может понравиться