You are on page 1of 24

Programacin Lineal Entera.

o Algoritmos de Ramicacin y Acotacin o o

Introduccin o

En la denicin de los (PPL) slo exigiamos a las variables una condicin de no negativio o o dad, pero esta suposicin no siempre corresponde a la realidad. En ocasiones la naturaleza o de la variable exige una condicin adicional como es la la de ser entera. As si hablamos o , de nmero de trabajadores o instalar estaciones de bomberos en una zona, etc, la propia u naturaleza de la variable exige que sean enteras. Esta nueva restriccin aade dicultades o n a la resolucin del problema, como ya veremos. o Denicin 1.1 Un problema de programacin lineal en el que todas las variables han de o o ser enteras se dice un problema de programacin lineal entero puro. o Ejemplo 1.1 Max s.a: 3x1 2x2 x1 + x2 6 x1 x2 12 xi 0, i = 1, 2. x1 , x2 enteras.

o o Denicin 1.2 Un problema de programacin lineal en el que slo algunas de las vario ables han de ser enteras se dice un problema de programacin lineal entero mixto. o Ejemplo 1.2 Max s.a: 3x1 2x2 x1 + x2 6 x1 x2 12 xi 0, i = 1, 2. x1 entera. 1

Observacin 1.1 La expresin problema de programacin entera (PPE) como o o prende tanto los problemas enteros puros, como los enteros mixtos. Denicin 1.3 El problema de programacin lineal que se obtiene al omitir las restrico o ciones de integridad de un problema entero se le llama problema entero relajado. Proposicin 1.1 La regin factible del problema entero relajado contiene a la regin o o o factible del problema entero. Corolario 1.1 El ptimo de problema entero relajado obtiene mejor valor en la funcin o o objetivo que el ptimo del problema entero. o Una primera aproximacin a la resolucin de los problemas enteros pdr ser la de reo o a dondear los valores del problema relajado. Pero ese camino no conduce a buenas soluciones y hay que descartarlo, como vemos, en el siguiente ejemplo. Ejemplo 1.3 Max s.a: 21x1 + 11x2 7x1 + 4x2 13 xi 0, i = 1, 2. x1 , x2 enteras.

La regin factible del problema es F = {(0, 0)(0, 1)(0, 2)(0, 3)(1, 0)(1, 1)}. Si evaluamos o dichos puntos nos da que el ptimo es el punto (0,3) y que z = 33. o Observacin 1.2 Obviamente el mtodo de evaluacin de los puntos factibles no es noro e o malmente una buena estrategia, pues pueden ser muy numerosos o incluso innitos. As pues, resolvamos el problema relajado para redondear las soluciones. Max s.a: 21x1 + 11x2 7x1 + 4x2 13 xi 0, i = 1, 2.

La solucin por mtodos grcos es ( 13 , 0). Redondeando obtenemos (2,0), que es un o e a 7 punto infactible y por tanto no puede ser la solucin. Si redondeamos por abajo para o conseguir la factibilidad nos queda (1,0), que como sabemos tampoco es ptima, ya que o el valor de la funcin objetivo en ese punto es 21 < 33. Con lo que hemos probado que o al redondear una solucin es posible que pierda la factibilidad y si es factible puede estar o muy alejada del ptimo. o

Algoritmo de Dakin

El algoritmo de Dakin est encuadrado dentro de la clase de algoritmos de ramicacin a o y acotacin (Branch and Bound). Consta de dos procesos. o 1. Ramicacin. Consiste en la particin del espacio continuo del problema relajado o o en dos subproblemas tambin continuos. En esta particin se eliminan partes no e o factibles del problema relajado. Si el ptimo del problema relajado (P) en la variable o xi toma el valor x , entonces hacemos la siguiente particin en dos subproblemas o i (P1 , P2 ), introduciendo nuevas restricciones al problema. P
    Q Q Q Q Q

xi [x ] i
  

xi [x ] + 1 i
Q Q Q

P1

P2

donde [x ] denota la parte entera de x . Seguiremos ramicando hasta encontrar la i i solucin entera ptima del problema original. o o o o cita de las soluciones 2. Acotacin. Se trata de conseguir una enumeracin impl factibles sin necesidad de sondearlas todas expl citamente. As pues, no ser nece a sario sondear ni ramicar un nodo cuando se den alguna de las siguientes circunstancias: (a) El subproblema es infactible. (b) El subproblema tiene una solucin que satisface las condiciones de integridad o del problema original. (c) El valor del ptimo del subproblema no es mejor que una solucin encontrada o o previamente y que es factible para el problema original (est acotado). a Observacin 2.1 El algoritmo requiere para ser ecaz que tengamos soluciones enteras o para comparar y evitar sondear ramas no prometedoras, por ello debemos utilizar una disciplina LIFO en la resolucin de problemas. O sea, resolver primero, los ultimos proo blemas creados. 4

Ejemplo 2.1 Rulisa fabrica mesas y sillas. Una mesa necesita 1 hora de trabajo y 9 tablas, y una silla requiere 1 hora de trabajo y 5 tablas. Disponemos de 6 horas de trabajo y tenemos 45 tablas. Sabiendo que el benecio de construir una mesa es 8 euros y de una silla 5 euros. Determinar la poltica de fabricacin para maximizar el benecio. o Sea x1 = Nmero de mesas fabricadas. u Sea x2 = Nmero de sillas fabricadas. u El problema queda Max s.a: 8x1 + 5x2 x1 + x2 6 9x1 + 5x2 45 xi 0, i = 1, 2. xi enteras i = 1, 2.

Veamos el problema relajado grcamente. a

Empezamos por resolver el problema relajado, mediante el algoritmo del simplex. 8 5 0 0 8 5 0 0 x1 x2 x3 x4 x1 x2 x3 x4 0 1 1 1 0 6 = x3 0 0 4/9 1 1/9 1 = 0 9 5 0 1 45 x1 8 1 5/9 0 1/9 5 8 5 0 0 0 0 5/9 0 8/9 40 8 5 0 0 x1 x2 x3 x4 5 0 1 9/4 1/4 9/4 8 1 0 5/4 1/4 15/4 0 0 5/4 3/4 165/4

x3 x4

x2 x1

La solucin ptima es x = 15 y x = 9 , con z = 165 . El siguiente paso es escoger una o o 1 2 4 4 4 variable con valor fraccionario que tenga que ser entera (por ejemplo x1 , aunque tambin e valdr x2 ). Dividimos en dos sobproblemas de acuerdo al algoritmo de Dakin. a Subproblema-1. (P1 ). Se aade la restriccin x1 [x ] = x1 3. n o 1 Subproblema-2. (P2 ). Se aade la restriccin x1 [x ] + 1 = x1 4. n o 1 Observemos la grca de P1 y P2 . a

Observacin 2.2 Observamos que la unin de las regiones factibles de los problemas o o contiene toda la regin factible del problema original. (Slo se han eliminado partes que o o no contienen puntos enteros). El arbol queda, por tanto:

P (15/4, 9/4) Z = 165/4 X1 3


      Q Q

X1 4 Q Q Q Q P2

P1

Resolvamos P1 , aplicando el simplex. 8 5 0 0 0 8 5 0 0 0 x1 x2 x3 x4 x5 x1 x2 x3 x4 x5 5 0 1 9/4 1/4 0 9/4 x2 5 0 1 9/4 1/4 0 9/4 = 8 1 0 5/4 1/4 0 15/4 x1 8 1 0 5/4 1/4 0 15/4 0 1 0 0 0 1 3 x5 0 0 0 5/4 -1/4 1 3/4 0 0 5/4 3/4 0 165/4 0 0 5/4 3/4 0 165/4 8 5 0 0 0 x1 x2 x3 x4 x5 5 0 1 1 0 1 3 8 1 0 0 0 1 3 0 0 0 5 1 4 3 0 0 5 0 3 39

x2 x1 x5

x2 x1 x4

Optimo (3,3). Como la solucin es entera se trata de un nodo terminal. o P (15/4, 9/4) Z = 165/4 X1 3
      Q Q

X1 4 Q Q Q Q P2

P1 (3, 3) Z = 39 Resolvemos ahora P2 .

x2 x1 x5

8 5 0 0 0 8 5 0 0 0 x1 x2 x3 x4 x5 x1 x2 x3 x4 x5 5 0 1 9/4 1/4 0 9/4 x2 5 0 1 9/4 1/4 0 9/4 = 8 1 0 5/4 1/4 0 15/4 x1 8 1 0 5/4 1/4 0 15/4 0 1 0 0 0 1 4 x5 0 0 0 -5/4 1/4 1 1/4 0 0 5/4 3/4 0 165/4 0 0 5/4 3/4 0 165/4

x2 x1 x3

8 5 0 0 0 x1 x2 x3 x4 x5 5 0 1 0 1/5 9/5 9/5 8 1 0 0 0 1 4 0 0 0 1 1/5 4/5 1/5 0 0 0 1 1 41

a Optimo (4, 9 ). Como no es entera y adems 41 > 39 (lo que signica que el nodo no 5 est acotado). Tenemos, por tanto, un nodo que no es terminal y que requerir nuevas a a ramicaciones.

P (15/4, 9/4) Z = 165/4 X1 3


      Q Q

X1 4 Q Q Q Q P2 (4, 9/5) Z = 41

P1 (3, 3) Z = 39

Hay que seguir ramicando en x2 , a partir de P2 . Subproblema-3. (P3 ). Se aade la restriccin x2 [x ] = x2 1. n o 2 Subproblema-4. (P4 ). Se aade la restriccin x2 [x ] + 1 = x2 2. n o 2

P (15/4, 9/4) Z = 165/4 X1 3 


    Q Q Q

X 4 Q 1 Q Q P2 (4, 9/5) Z = 41

P1 (3, 3) Z = 39 X2 1 
   

Q Q Q

QX2 2 Q Q

P3

P4

Resolvemos P3 grcamente. a

10

Resolviendo, mediante el simplex, queda: 8 5 0 0 0 0 x1 x2 x3 x4 x5 x6 0 1 0 1/5 9/5 0 9/5 x2 1 0 0 0 1 0 4 = x1 0 0 1 1/5 4/5 0 1/5 x3 0 1 0 0 0 1 1 x6 0 0 0 1 1 0 41 8 5 0 0 x 1 x2 x3 x4 0 1 0 1/5 1 0 0 0 0 0 1 1/5 0 0 0 1/5 0 0 0 1 0 0 x5 x6 9/5 0 9/5 1 0 4 4/5 0 1/5 -9/5 1 4/5 1 0 41

x2 x1 x3 x6

5 8 0 0

5 8 0 0

x2 = x1 x3 x5

5 8 0 0

8 5 0 0 0 0 x1 x2 x3 x4 x5 x6 0 1 0 0 0 1 1 1 0 0 1/9 0 5/9 40/9 0 0 1 1/9 0 4/9 5/9 0 0 0 1/9 1 5/9 4/9 0 0 0 8/9 0 5/9 365/9

La solucin ptima es ( 40 , 1). o o 9

P (15/4, 9/4) Z = 165/4 X1 3 


     Q Q Q

X 4 Q 1 Q Q P2 (4, 9/5) Z = 41

P1 (3, 3) Z = 39 X2 1 
    

Q Q Q

QX2 2 Q Q

P3 (40/9, 1) Z = 365/9

P4

11

Hemos perdido la integridad de la variable x1 y como 365 > 39, hemos de seguir rami9 cando. Como sabemos, la pol tica ptima del algoritmo es resolver antes las ramicaciones o que se derivan de P3 antes de sondear P4 . Subproblema-5. (P5 ). Se aade la restriccin x1 [x ] = x1 4. n o 1 Subproblema-6. (P6 ). Se aade la restriccin x1 [x1 ] + 1 = x1 5. n o

P (15/4, 9/4) Z = 165/4 X1 3 


     Q Q Q

X 4 Q 1 Q Q P2 (4, 9/5) Z = 41

P1 (3, 3) Z = 39 X2 1 
    

Q Q

QX2 2 Q Q

P3 (40/9, 1) Z = 365/9 X1 4 
    Q Q Q

P4

X 5 Q 1 Q Q P6

P5

12

Veamos la resolucin de P5 grcamente. o a

Veamos la resolucin mediante el simplex de P5 . o 8 5 0 0 0 0 0 x1 x2 x3 x4 x5 x6 x7 0 1 0 0 0 1 0 1 1 0 0 1/9 0 5/9 0 40/9 = 0 0 1 1/9 0 4/9 0 5/9 0 0 0 1/9 1 5/9 0 4/9 1 0 0 0 0 0 1 4 0 0 0 8/9 0 5/9 0 365/9 8 5 0 0 0 0 0 x1 x2 x3 x4 x5 x6 x7 0 1 0 0 0 1 0 1 1 0 0 1/9 0 5/9 0 40/9 = 0 0 1 1/9 0 4/9 0 5/9 0 0 0 1/9 1 5/9 0 4/9 0 0 0 -1/9 0 5/9 1 4/9 0 0 0 8/9 0 5/9 0 365/9 13

x2 x1 x3 x5 x7

5 8 0 0 0

x2 x1 x3 x5 x7

5 8 0 0 0

x2 x1 x3 x5 x4

5 8 0 0 0

8 5 0 0 0 0 0 x1 x 2 x3 x4 x5 x6 x7 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 4 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 5 9 4 0 0 0 0 0 5 8 37

Tenemos solucin entera (4,1) con z = 37, por lo que es nodo terminal. o P (15/4, 9/4) Z = 165/4 X1 3 
     Q Q Q

X 4 Q 1 Q Q P2 (4, 9/5) Z = 41

P1 (3, 3) Z = 39 X2 1 
    

Q Q Q

QX2 2 Q Q

P3 (40/9, 1) Z = 365/9 X1 4 
    Q Q Q

P4

X 5 Q 1 Q Q P6

P5 (4, 1) Z = 37

14

Retomamos el problema P6 y veamos su resolucin grca. o a

Resolvamos el problema P6 , aplicando el algoritmo del simplex. 8 5 0 0 0 0 0 x1 x2 x3 x4 x5 x6 x7 0 1 0 0 0 1 0 1 1 0 0 1/9 0 5/9 0 40/9 = 0 0 1 1/9 0 4/9 0 5/9 0 0 0 1/9 1 5/9 0 4/9 1 0 0 0 0 0 1 5 0 0 0 8/9 0 5/9 0 365/9 8 5 0 0 0 0 0 x1 x2 x3 x4 x5 x6 x7 0 1 0 0 0 1 0 1 1 0 0 1/9 0 5/9 0 40/9 = 0 0 1 1/9 0 4/9 0 5/9 0 0 0 1/9 1 5/9 0 4/9 0 0 0 1/9 0 -5/9 1 5/9 0 0 0 8/9 0 5/9 0 365/9 15

x2 x1 x3 x5 x7

5 8 0 0 0

x2 x1 x3 x5 x7

5 8 0 0 0

x2 x1 x3 x5 x7

5 8 0 0 0

8 5 0 0 0 0 0 x1 x2 x3 x4 x5 x6 x7 0 1 0 1/5 0 0 9/5 0 1 0 0 0 0 0 1 5 0 0 1 1/5 0 0 4/5 1 0 0 0 0 1 0 1 1 0 0 0 1/5 0 1 9/5 1 0 0 0 1 0 0 1 40

Solucin entera (5,0), por lo que es nodo terminal y adems mejora la candidata a solcin o a o ptima que ten o amos hasta ahora, pues z = 40. P (15/4, 9/4) Z = 165/4 X1 3 
    Q Q Q

X 4 Q 1 Q Q P2 (4, 9/5) Z = 41

P1 (3, 3) Z = 39 X2 1 
    

Q Q Q

QX2 2 Q Q

P3 (40/9, 1) Z = 365/9 X1 4 
    Q Q Q

P4

X 5 Q 1 Q Q P6 (5, 0) Z = 40

P5 (4, 1) Z = 37

Ascendemos en el arbol y analizamos los nodos que hab quedado sin sondear. Como an el ptimo asociado a P2 , que no est totalmente sondeado, pues le queda una rama sin o a estudiar, vale 41, entonces no est acotado y tenemos que sondearlo. a

16

As pues resolvemos P4 .

La tabla del simplex queda , recordemos que hay que aadir la restriccin a la tabla n o ptima de P2 , como sigue: o 8 5 0 0 0 0 x1 x2 x3 x4 x6 x6 0 1 0 1/5 9/5 0 9/5 x2 1 0 0 0 1 0 4 = x1 0 0 1 1/5 4/5 0 1/5 x3 0 1 0 0 0 1 2 x6 0 0 0 1 1 0 41 8 5 0 0 0 0 x1 x2 x3 x4 x6 x6 0 1 0 1/5 9/5 0 9/5 1 0 0 0 1 0 4 0 0 1 1/5 4/5 0 1/5 0 0 0 1/5 9/5 1 1/5 0 0 0 1 1 0 41

x2 x1 x3 x6

5 8 0 0

5 8 0 0

El problema es infactible.

17

As pues el arbol queda completo.

P (15/4, 9/4) Z = 165/4 X1 3 


    Q Q Q

X 4 Q 1 Q Q P2 (4, 9/5) Z = 41

P1 (3, 3) Z = 39 X2 1 
   

Q Q Q

QX2 2 Q Q

P3 (40/9, 1) Z = 365/9 X1 4 
     Q Q Q

P4 INFACTIBLE X 5 Q 1 Q Q P6 (5, 0) Z = 40

P5 (4, 1) Z = 37

La solucin ptima es, por tanto, (5,0), con z = 40. o o

18

Programacin booleana o

Como ya vimos, en ocasiones los problemas tienen restricciones en las que las variables slo o pueden tomar los valores {0,1}, que llamamos booleanos (p.e. el problema de asignacin). o Para resolverlo usaremos una variante del algoritmo de ramicacin y acotacin, adaptada o o a esa particularidad. La ramicacin ser en este caso. o a P
    Q Q Q Q

xi = 1
  

Q Q

xi = 0
Q Q

P1

P2

Para facilitar la resolucin del problema actuaremos como sigue: o 1. Si es un problema de minimizar, lo transformamos en uno de maximizar, pues es ms fcil comparar cantidades positivas. a a 2. Cambiar los costos de forma que todos sean positivos. As si cj < 0, entonces , hacemos el cambio de variable yj = 1 xj . 3. Se efectuan las ramicaciones con el orden de las variables de mayor costo de las que no tengan valor asignado. 4. Se usa como valor de acotacin el mayor de los posibles, suponiendo que todas las o variables que no tienen valor asignado valen 1. Veamos un ejemplo Ejemplo 3.1 Min s.a: 6x1 5x2 + x3 2x4 3x1 + 4x2 + x3 + x4 4 2x1 + x2 x3 x4 3 4x1 + 2x2 2x3 + 2x4 5 xi 0, i = 1, 2, 3, 4. xi booleanas, i = 1, 2, 3, 4. 19

Transformamos el problema, de acuerdo a lo referido anteriormente. Max s.a: 6x1 + 5x2 x3 + 2x4 Max 6x1 + 5x2 + y3 + 2x4 1 3x1 + 4x2 + x3 + x4 4 s.a: 3x1 + 4x2 y3 + x4 3 2x1 + x2 x3 x4 3 2x1 + x2 + y3 x4 4 = 4x1 + 2x2 2x3 + 2x4 5 4x1 + 2x2 + 2y3 + 2x4 7 xi 0, i = 1, 2, 3, 4. xi 0, i = 1, 2, 4, y3 0. xi booleanas, i = 1, 2, 3, 4. xi booleanas, i = 1, 2, 4, y3 booleana.

Iniciamos las ramicaciones. Subproblema-1 (P1 ) x1 = 1, z = 13. Subproblema-2 (P2 ) x1 = 0, z = 7.

P Z = 13

X1 = 1 


 

Q Q

Q Q X1 = 0 Q Q

P1 Z = 13

P2 Z =7

Comenzamos por P1 , que es el ms prometedor. Las ecuaciones quedan: a 4x2 y3 + x4 0 x2 + y 3 x4 2 2x2 + 2y3 + 2x4 3 xi 0, i = 2, 4, y3 0. xi booleanas, i = 2, 4, y3 booleana. Continuamos las ramicaciones, a partir de P1 . Subproblema-3 (P3 ) x2 = 1, z = 13. Subproblema-4 (P4 ) x2 = 0, z = 8.

20

P Z = 13

X1 = 1 


 

Q Q Q

Q X1 = 0 Q Q

P1 Z = 13 X2 = 1 
     Q Q Q Q X2 = 0 Q Q

P2 Z =7

P3 Z = 13

P4 Z = 8

Seguimos con P3 , que es el ms prometedor. Las ecuaciones quedan: a y3 + x4 4 y 3 x4 1 2y3 + 2x4 1 x4 , y3 0 x4 , y3 booleanas Continuamos las ramicaciones por P3 . Subproblema-5 (P5 ) x4 = 1, z = 13. Subproblema-6 (P6 ) x4 = 0, z = 11.

21

P Z = 13

X1 = 1 


  

Q Q

Q X1 = 0 Q Q

P1 Z = 13 X2 = 1 
     Q Q Q Q X2 = 0 Q Q

P2 Z =7

P3 Z = 13 X4 = 1 


P4 Z = 8
Q Q Q Q X4 = 0 Q Q

 

P5 Z = 13

P6 Z = 11

Seguimos con P5 , que es el ms prometedor. Las ecuaciones quedan: a y3 5 y3 2 2y3 1 y3 0 y3 booleana. El problema es infactible, como podemos ver en la tercera ecuacin. o

22

Con lo que podemos completar el arbol.

P Z = 13

X1 = 1 


  

Q Q

Q X1 = 0 Q Q

P1 Z = 13 X2 = 1 
     Q Q Q Q X2 = 0 Q Q

P2 Z =7

P3 Z = 13 X4 = 1 
     Q Q Q Q X4 = 0 Q Q

P4 Z = 8

P5 Infactible

P6 Z = 11

Subimos un nivel y ramicamos desde P6 , cuyas ecuaciones son: y3 4 y3 1 2y3 1 y3 0 y3 booleana. Subproblema-7 (P7 ) y3 = 1, z = 11. Subproblema-8 (P8 ) y3 = 0, z = 10. Obviamente P7 es infactible por la tercera ecuacin, por lo que tenemos una candidata o a solucin ptima en P8 con x1 = 1, x2 = 1, x4 = 0, y3 = 0, que verican todas las o o restricciones y valor de la funcin objetivo z =10. o

23

El arbol queda ahora P Z = 13

X1 = 1 


  

Q Q

Q X1 = 0 Q Q

P1 Z = 13 X2 = 1 


P2 Z =7

 

Q Q

Q Q X2 = 0 Q Q

P3 Z = 13 X4 = 1 
     Q Q Q Q X4 = 0 Q Q

P4 Z =8

P5 Infactible Y3 = 1 
    

P6 Z = 11
Q Q Q Q Y3 = 0 Q Q

P7 Infactible

P8 Z = 10

Si analizamos los nodos que no hemos sondeado (P2 y P4 ) vemos que su funcin o objetivo est acotada por la solucin que ya tenemos, por lo que es peor. As pues, no a o hay que sondearlas y esa es la ptima. Para acabar, debemos deshacer los cambios. As o tenemos que (1,1,1,0) es la solucin y el valor de la funcin objetivo original es z =-10. o o

24

You might also like