Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Investigacin de Operaciones II
Temario
Temario
Enumeracin Implcita
Cmo podemos dividir el problema en una serie de problemas ms pequeos, ms fciles de resolver y que uniendo la informacin podamos resolver el problema original?
Proposicin: Sea S = S1 S2 . . . SK una descomposicin de S en conjuntos ms pequeos. Sea z k = max {cx : x Sk } para k = 1, . . . , K . Entonces z = maxk =1,...,K {z k }.
Enumeracin Implcita
Proposicin: Sea S = S1 S2 . . . SK una descomposicin de S en conjunto ms pequeos. Sean z k = max {cx : x Sk } para k una cota superior de z k y z k una cota k = 1, . . . , K .. Sea z = maxk {z k } es una cota superior para z inferior de z k . Entonces z k y z = maxk {z } es una cota inferior para z . Ejemplo: En la gura 1 se muestra una descomposicin de S en dos conjuntos S1 y S2 . Adems se ilustran las cotas superiores e inferiores de los problemas correspondientes.
27 S 13 25 S 20
20 S1 20
25 S2 15 S1
25 S2 15
Ejemplo 2
En la gura 2, S se descompone en dos conjuntos S1 y S2 e ilustra las cotas inferiores y superiores de los problemas correspondientes.
27 S S 13 21 20 S1 18 26 26 S2 S1 21 21 S2 26
Ejemplo 3
En la gura 3, S se descompone en dos conjuntos S1 y S2 e ilustra las cotas inferiores y superiores de los problemas correspondientes.
40 S S 13 24 S1 13 13 37 24 S2 S1 S2 37 37
Podar por optimalidad: z t = {max cx : x St } ha sido resuelto. t z . Podar por cota: z Podar por infactibilidad: St = .
z = max
4x1 x2 x2
2 x Z+ 0
Obtencin de cotas
Para obtener una primera cota superior, se agregan las variables de holgura x3 , x4 , x5 y se resuelve la relajacin de programacin lineal, en la cual las restricciones de integralidad son eliminadas. La representacin ptima resultante es: = max z
59 7 1 4 7 x3 7 x4 1 +7 x3 + 2 7 x4
x1 x2
+ x4 2 7 x3 +
10 7 x4
+ x5
20 7 =3 23 = 7 =
x1 , x2 , x3 , x4 , x5 0 = 59 Se obtiene una cota superior z 7 y una solucin no-entera 20 (x , x ) = ( , 3 ) . Existe alguna forma directa de encontrar una 1 2 7 cota inferior? Aparentemente podemos suponer que la mejor solucin encontrada es (0, 0) con valor objetivo z = 0.
59 7
S 0
Ramicando
, se necesita ramicar o dividir. Cmo deberamos Dado que z < z dividir la regin factible? Una idea es seleccionar una variable que requiere ser entera pero que en la solucin de programacin lineal es fraccionaria. Luego, podemos dividir el problema de la siguiente forma:
S1 = S {x : xj x j } S2 = S {x : xj x j } Siguiendo nuestro ejemplo, dado que x 1 = S1 = S {x : x1
20 7 ,
tomamos:
20 } 7 20 S2 = S {x : x1 } 7 59
7
S 0
x1 2
S1
x1 3
S2
La lista de problemas activos (nodos) que tienen que ser examinados contiene ahora S1 y S2 . Arbitrariamente seleccionamos S1 .
Reoptimizando
Cmo deberamos resolver los programas lineales modicados sin tener que resolverlos nuevamente desde el inicio? Dado que slo hemos aadido una restriccin al programa lineal, la base ptima actual sigue siendo factible dual, y es por esta razn que se reoptimiza desde esta base utilizando el algoritmo simplex dual. Aplicando esta idea a la relajacin de programacin lineal de S1 y reescribiendo x1 2 como x1 + x6 = 2, x6 0 se tiene: z 1 = max
15 2 1 2 x5 3x6
x1 x2 x3 1 2 x5
+ x6 + x6 x5 5x6 x4 + 1 2 x5 + 6x6 x1 , x2 , x3 , x4 , x5 , x6 0
=2 1 = 2 =1 5 = 2
con z 1 =
15 2 ,
1 y (x 1, x 2 ) = (2, 2 ).
59 7
S 0
x1 2
15 2
S1 0
x1 3
S2
Ramicando
S1 no puede ser podado, as usando la misma regla de ramicacin 1 anterior creamos dos nodos S3 y S4 . Dado que x 2 = 2 , tomamos:
1 } 2 1 S2 = S {x : x2 } 2 S1 = S {x : x2
59 7
S 0
x1 2
15 2
S1 0
x1 3
S2
x2 = 0
S3
x2 1
S4
La lista de problemas activos (nodos) que tienen que ser examinados contiene ahora S2 ,S3 y S4 . Arbitrariamente seleccionamos S2 .
Reoptimizando
Aplicando el algoritmo simplex dual a la relajacin de programacin lineal de S2 y reescribiendo x1 3 como x1 x7 = 3, x7 0 se tiene: = max z
59 7 1 4 7 x3 7 x4 2 +1 7 x3 + 7 x4
x1 x2
+ x4 2 7 x3 +
1 7 x3 10 7 x4
+ x5
2 +7 x4 + x7
20 7 =3 23 = 7 1 = 7 =
59 7
S 0
x1 2
15 2
S1 0
x1 3
S2
x2 = 0
S3
x2 1
S4
La lista de problemas activos (nodos) que tienen que ser examinados contiene ahora S3 y S4 . Arbitrariamente seleccionamos S4 .
Reoptimizando
Aplicando el algoritmo simplex dual a la relajacin de programacin lineal de S4 = S {x : x1 2, x2 1 la solucin ptima es: (x 1, x 2 ) = (2, 1) con valor 7. Como esta solucin es entera, z 4 = z4 = z4 = 7. El nodo se poda por optimalidad.
59 7
S 0
x1 2
15 2
S1 0
x1 3
S2
x2 = 0
S3
x2 1
7 S4
Como la solucin es entera, actualizamos el valor de la mejor solucin factible encontrada hasta aqu: z max {0, 7}, almacenar la solucin correspondiente (2,1).59
7
S 7
x1 2
15 2
S1 7
x1 3
S2
x2 = 0
S3
x2 1
7 S4 7
La lista de problemas activos (nodos) que tienen que ser examinados contiene ahora slo S3 . Seleccionamos S3 .
Reoptimizando
Aplicando el algoritmo simplex dual a la relajacin de programacin lineal de S3 = S {x : x1 2, x2 = 0 la solucin 3 ptima es: (x 1, x 2 ) = ( 2 , 0) con valor 6.
59 7
S 7
x1 2
15 2
S1 7
x1 3
S2
x2 = 0
6 S3
x2 1
7 S4 7
x1 2
15 2
S1 7
x1 3
S2
x2 = 0
6 S3
x2 1
7 S4 7
La lista de problemas activos (nodos) que tienen que ser examinados esta vaca. Por ello, la solucin ptima es (x1 , X2 ) = (2, 1) con z = 7. Observe que tambin se hubiera podido utilizar un preprocesamiento de la cota superior observando que el valor de la funcin objetivo debe ser entero dado que los coecientes son enteros y las variables enteras. Con ello, no hubiera sido necesario explorar el nodo S3 .
-PARE. OPTIMO x
? ?
si si si
? ? ?
Si z i z , pode por cota no Si x (PL) entero, actualice cota primal z = z i i Actualice x = x (PL) pode por optimalidad no i i generar dos subproblemas S1 y S2 i i con formulaciones P1 y P2