Está en la página 1de 16

Fundamentos de Programacin Entera o Edicin 2012 o Repartido de Ejercicios 1 .

Gabriel Bay (1.512.596-0) a 24 de abril de 2012

Indice
1. Ejercicio 1 2. Ejercicio 2 3. Ejercicio 3 4. Ejercicio 4. 5. Ejercicio 5. 6. Ejercicio 6. 7. Ejercicio 7. 8. Anexos. 3 4 7 9 9 11 14 16

1.

Ejercicio 1

Para modelar la decisin de tomar o no un cierto curso, utilizaremos las siguientes o cinco variables binarias para las cuales: 1 si decido tomar el curso i 0 o.c i = 1 5 (a) Para elegir al menos uno de los cursos por lo menos una variable binaria debe ser uno. Expresamos la restriccin de la siguiente forma: o
5

Xi =

xi 1
i=1

(b) Si elegimos a lo sumo cuatro cursos la suma de todas las variables binarias debe ser menor o igual que 4. La restriccin nos quedar de la siguiente forma: o a
5

xi 4
i=1

(c) Para expresar que la eleccin del curso 2 implique la eleccin del curso 5 lo hacemos o o de la siguiente manera: x2 x 5 Dado que las variables son binarias, si x2 toma el valor 1, nos queda 1 x5 y para que se cumpla la restriccin, x5 debe ser 1. Si la variable x2 = 0 nos queda 0 x5 o y por lo tanto x5 queda libre para tomar cualquier valor, 0 o 1. (d) Anlogamente al punto anterior, para expresar que la eleccin del curso 1 implique a o la no eleccin del curso 3, lo hacemos de igual forma pero negando la eleccin del o o curso 3: x1 (1 x3 ) Nuevamente dado que las variables son binarias, si x1 toma el valor 1 para que se cumpla la restriccin, x3 debe ser 0. Tambin en este caso si x1 es 0, x3 puede tomar o e cualquier valor. (e) En este caso la dos variables x4 y x5 debern tomar el mismo valor, si alguna de a ellas es cero la otra deber ser cero y si alguna de ellas es uno tambin la otra a e deber serlo, por lo que la restriccin es una restriccin de igualdad y nos quedar a o o a expresada de la siguiente manera: x4 = x 5

2.

Ejercicio 2
Dado el siguiente problema de programacin entera: o max 2x1 + x2 s.a. x1 + x2 1 x1 + x2 4 5x1 + 3x2 15 x1 0 ; x2 0 x1 y x2 enteras

(a) Determinaremos la solucin en forma grca. Los puntos marcados con c o a rculos en negrita corresponden a la regin factible. o x2 T 5 r
5x1 + 3x2 = 15 dr 4 x1 + x2 d d d d 2 d( 3 , 5 ) 2 dd t d d t t d x1 + x2 t 1 d d d t t t t dr

=1

=4

x1

La solucin es el punto (3, 0) porque pertenece a la regin factible, cumple que x1 y o o x2 son variables enteras y corresponde al valor mximo de la funcin objetivo. a o

(b) La relajacin de programacin lineal la obtenemos quitando la restriccin de inteo o o gralidad de las variables x1 y x2 . x2 T 5 r
d 4 r

5x1 + 3x2 = 15 =1

d x1 + x2 d d d d( 3 , 5 ) t 2 2 d d d d d x1 + x2 t d t t d d dr

=4

x1

La solucin de dicha relajacin es el mismo punto (3, 0) dado que es el vrtice que o o e nos da el mayor valor de la funcin objetivo considerando ahora todos los vrtices o e 5 de la nueva regin factible indicada con el rea rayada. ((0, 1) (3, 0) y ( 3 , 2 )) o a 2 (c) El casco convexo de la regin factible inicial (con las restricciones de integralidad o de las variables x1 y x2 ) es la m nima regin convexa que contiene a dicha regin o o factible. La gura siguiente nos muestra el casco convexo. x2 T

r 3d d

x1 d dt d d

+ x2 = 1

x 1 + x2 = 3
d t d d t d dt r

t t

x1

Para reformular las restricciones considerando el casco convexo nos alcanza con plantear las desigualdades correspondientes a la primera restriccin, que se mantieo ne formando el casco convexo y la recta x1 + x2 = 3 que pasa por los puntos (3, 0) (2, 1) y (1, 2). Es una formulacin ideal, por lo tanto la solucin de programacin lineal cumo o o plir con la integralidad de las variables. a La formulacin quedar entonces de la siguiente manera: o a max 2x1 + x2 s.a. x1 + x2 1 x1 + x2 3 x1 0 ; x2 0

3.

Ejercicio 3
Para modelar este ejercicio utilizaremos dos variables binarias. Xij = 1 si el objeto i se transporta en la caja j 0 o.c i = 1 n j = 1 m Yj = 1 si la caja j es utilizada para la mudanza 0 o.c j = 1 m (1) (2) (3) (4) (5)

Denamos ahora las restricciones que se deben cumplir en el problema. De acuerdo a las dos variables que hemos denido en el punto anterior, se debe cumplir lo siguiente: Si el objeto i se transporta en la caja j entonces la caja j es utilizada para la mudanza. Esto lo expresamos de la siguiente manera:
n

xij nyj
i=1

j = 1 m

(6)

Esto hace que si al menos un objeto se transporta en la caja j, sta deber ser usada. e a Si ninguno de los objetos se transporta en la caja j esta puede ser usada o no dependiendo de la presin que haga la funcin objetivo. o o Existe tambin una restriccin de capacidad en el camin que expresa el volumen de e o o cajas que puede ser transportado.
m

yj bj Q
j=1

(7)

Siendo bj la capacidad de la caja j. Con respecto a los objetos a guardar en cada caja tambin existen restricciones, por e lo tanto el volumen total de dichos objetos no debe superar la capacidad de la caja. La siguiente restriccin expresa lo antedicho. o
n

ai xij bj
i=1

j = 1 m

(8)

Tambin existen restricciones de indivisibilidad de los objetos, si un objeto se guarda e en una caja no puede ir en otra. Esto lo podemos expresar de la siguiente manera:
m

xij 1
j=1

i = 1 n

(9)

Como la letra nos pide que todos los objetos sean transportados en el viaje, se debe incluir la siguiente restriccin: o
n m

xij = n
i=1 j=1

(10)

Bajo estas dos ultimas hiptesis (indivisibilidad y totalidad de los objetos a transpor o tar) las restricciones 9 y 10 se pueden sustituir por la siguiente igualdad:
m

xij = 1
j=1

i = 1 n

(11)

Esta restriccin nos indica que el objeto i va en una y una sola caja j (las variables o son binarias). Finalmente podemos denir la funcin objetivo, que podr ser minimizar el volumen o a a transportar si por ejemplo se cobrara el viaje por volumen transportado y el costo por unidad de volumen fuera C:
m

min
j=1

Cyj bj

(12)

o bien podr ser: a


m

max
j=1

yj

(13)

maximizar la cantidad de cajas a llevar si la estudiante se quiere llevar todas las cajas posibles (aunque estn vac siempre y cuando se cobre el viaje independientemente del e as) volumen.

4.

Ejercicio 4.

Si consideramos el conjunto de puntos de B 3 y queremos mostrar que los conjuntos factibles X1 , X2 y X3 son iguales, basta con mostrar que los tres conjuntos tienen los mismos elementos, es decir que los puntos factibles son los mismos para cualquiera de los tres. Los puntos (0, 0, 0) ; (0, 0, 1) ; (0, 1, 0) ; (0, 1, 1) y (1, 0, 0) cumplen con las tres restricciones que denen cada uno de los conjuntos X1 , X2 y X3 , por lo tanto el conjunto de puntos formado por estos cuatro puntos est incluido en X1 , en X2 y en X3 . a Anlogamente los puntos (1, 0, 1) ; (1, 1, 0) ; y (1, 1, 1) no cumplen con ninguna de las a restricciones que denen por comprensin los conjuntos factibles X1 , X2 y X3 . o Como todos los puntos que hemos considerado son la totalidad de puntos de B 3 entonces los conjuntos X1 , X2 y X3 son iguales en B 3 .

5.

Ejercicio 5.

Planteemos el UFL para esta instancia con cuatro localizaciones y cinco clientes a ser atendidos. Consideremos la siguiente variable real positiva que nos da la cuota parte de atencin o de cada planta j a cada cliente i: 0 Xij 1 i = 1 5 y la siguiente variable binaria: Yj = 1 si abro la localizacin j o 0 o.c j = 1 4 Sean los cij los costos de atender al cliente i desde la localizacin j y fj los costos jos o de abrir la localizacin j. o La funcin objetivo ser entonces: o a
5 4 4

j = 1 4

min (
i=1 j=1

cij xij +
j=1

fj y j )

(14)

Y las restricciones las siguientes:


m

xij = 1
j=1

i = 1 n

(15)

Esta restriccin indica que el total de la demanda del cliente i es satisfecha por la o suma de las ofertas de las plantas j Para indicar que si un cliente i tiene entregas de la planta j esta planta se deber abrir planteamos la siguiente restriccin: o
5

xij 5yj
i=1

j = 1 4

(16)

Basta que un valor de xij sea mayor que 0 para que obligue a abrir la planta j haciendo que la variable binaria yj sea 1. Y obviamente : xij 0 i = 1..,5 j = 1 4 (17)

Resolvemos ahora el problema utilizando glpk el cual se adjunta en el Anexo como Ejercicio5. Obtenemos como costo m nimo 12 y la siguiente matriz que nos indica para cada cliente la cuotaparte que cada planta le aporta a su demanda (tomando dicha demanda como 1). Cliente1 Cliente2 Cliente3 Cliente4 Cliente5 P lanta1 P lanta2 P lanta3 P lanta4 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1

(18)

10

6.

Ejercicio 6.

El problema de colocar ocho reinas en el tablero sin que se amenacen mutuamente, lo podemos formular de la siguiente manera. Sea Xij una variable binaria que cumple la siguiente condicin: o Xij = 1 si la reina esta posicionada en la casilla i, j 0 o.c i = 1 8 j = 1 8 Adems de acuerdo a las reglas de juego del ajedrez, las reinas amenazan o otras piezas a en el tablero si la otra pieza esta en la misma la, en la misma columna, o en la misma diagonal. Vamos a jar la funcin objetivo como maximizar la cantidad de reinas de modos que o cumplan con las restricciones de no amenazarse mutuamente. Nuestra funcin objetivo ser: o a
8 8

max (
i=1 j=1

xij )

(19)

Escribamos ahora las restricciones. Por cada la y cada columna la suma deber ser a menor o igual a uno, dado que no pueden haber dos reinas en una misma la o una misma columna.
8

xij 1
j=1 8

i = 1 n

(20)

xij 1
i=1

j = 1 n

(21)

Ahora vamos a escribir las restricciones que se deben cumplir en las diagonales. Si consideramos las subdiagonales y supradiagonales de la diagonal principal de la matriz (tablero) vemos que se cumple la siguiente propiedad. Sea i la la y j la columna de la diagonal principal, se cumple que para las casillas pertenecientes a dicha diagonal: i j = 0, i = 1 8 Sea i la la y j la columna de la subdiagonal principal se cumple que para las casillas pertenecientes a esta subdiagonal: i j = 1, i = 2 8 11

Anlogamente para la siguiente subdiagonal se cumple que: a i j = 2, i = 3 8 y as sucesivamente con las dems subdiagonales hasta: a i j = 6, i = 7 8 Ahora bien, para la primera supradiagonal principal se cumple que: i j = 1, i = 1 7 Para la siguente se cumple que: i j = 2, i = 1 6 y as sucesivamente con las dems supradiagonales hasta: a i j = 6, i = 1 2 Adems para estas diagonales que hemos detallado, se debe cumplir que solo puede a haber a lo sumo una reina, es decir que estas diagonales a lo sumo sumarn 1 consia derndolas en trminos de variables. a e La restriccin la podemos escribir entonces como: o
8 8

xij 1 k = 6 6
i=1 j=1 ij=k

(22)

Anlogamente para las otras supradiagonales y subdiagonales respectivamente tenea mos: i + j = 3, i = 1 2 i + j = 4, i = 1 3 i + j = 5, i = 1 4 y as sucesivamente hasta: i + j = 9, i = 1 8 para las supradiagonales y i + j = 10, i = 2 8 i + j = 11, i = 3 8 12

i + j = 12, i = 4 8 y as sucesivamente hasta: i + j = 15, i = 7 8 para las subdiagonales. La restriccin nos quedar entonces de la siguiente forma: o a
8 8

xij 1 k = 3 15
i=1 j=1 i+j=k

(23)

Comentarios nales: Podr amos haber obligado a que hubiera una reina por cada la y una reina por cada columna del tablero, cambiando las desigualdades 20 y 21 por igualdades de modo de cubrir el tablero. De todos modos no sabemos a priori cual es la mxima cantidad de a reinas a colocar sin que se amenacen (podr ser menos de 8 y el problema tal cual an est planteado con n=8 no tendr solucin). Al pedir una maximizacin y mantener las a a o o desigualdades 20 y 21, la funcin objetivo presiona hacia arriba y obtendremos la mxima o a cantidad de reinas a colocar en el tablero sin que se amenacen. Si quisiramos obligar a e que la cantidad de reinas sea exactamente 8 tal cual pide la letra deber amos agregar:
8 8

xij = 8
i=1 j=1

(24)

lo cual coincide con la funcin objetivo y maximizar o minimizar ser exactamente lo o a mismo. Resolvemos ahora el problema utilizando glpk el cual se adjunta en el Anexo como Ejercicio 6. Obtenemos como mximo 8 reinas a colocar en el tablero y la matriz (25) que a nos indica la posicin de cada una de ellas. o 1 . . . . . . . 2 . . . . . . . 3 . . . . . . . 4 . . . . . . . 5 . . . . . . . 6 . . . . . . . 7 . . . . . . . 8 . . . . . . .

1 2 3 4 5 6 7 8

(25)

13

7.

Ejercicio 7.
Dado el problema primal de programacin lineal: o min cT x s.a. Ax = b x0

(26)

(a) Podemos denir el problema dual como:

max T b s.a.

(27) T A cT

El problema primal referenciado en 26 lo escribiremos como:

min cT x s.a. b Ax = 0 x0

(28)

Relajaremos ahora el problema primal y denimos f () de la siguiente forma: f () = minx {cT x + T (b Ax) | x 0} Operando nos queda: f () = minx {(cT T A)x + T b | x 0} Si desarrollamos obtenemos:
n

(29)

(30)

f () = minx {
j=1

(cT T A)j xj + T b | xj 0 ; j = 1 n}

(31)

14

Entonces: T b, si (cT T A)j 0 j para algn j tal que (cT T A)j < 0 u

f () =

(32)

Para que cumpla ser una relajacin se deber cumplir que 0 pero como o a b Ax = 0, puede ser cualquiera, y como estamos maximizando no consideramos que (cT T A)j < 0 El problema dual nos quedar entonces de la forma: a max f () y sustituyendo f () por su valor: max T b s.a. (33)

(34) c A0
T T

Reordenando trminos nos queda el problema dual al cual quer e amos llegar, denido en 27: max T b s.a.

(35) T A cT

(b) Para soluciones acotadas la solucin del primal y del dual son la misma, dado que el o gap de dualidad para el problema de programacin lineal es cero. Cuando tenemos o soluciones no acotadas en el primal, en el dual no hay factibilidad y cuando no hay soluciones factibles en el primal las soluciones del problema dual son no acotadas.

15

8.

Anexos.

Se entrega a continuacin impreso como Anexo, los archivos fuentes de glpk. para los o Ejercicios 5 y 6.

16

También podría gustarte