Vous êtes sur la page 1sur 6

Algoritmo de

Sesin Ramificacin y
10 Acotamiento

I
OBJETIVOS
Plantear problemas de programacin Entera.
Aplicar el algoritmo de Ramificacin y Acotamiento
Utilizar el LINDO, POMQM o WINQSB para el anlisis respectivo.

II
TEMAS A TRATAR
Formulacin de problemas de programacin entera.
Algoritmo de Ramificacin y Acotamiento.

III
MARCO TEORICO

Revisar Apuntes de Clase

IV
(La prctica tiene una duracin de 02 horas) ACTIVIDADES

ALGORITMO DE RAMIFICACIN Y ACOTAMIENTO


Los problemas de programacin entera pueden resolverse en teora, por medio de la enumeracin de todas
las soluciones posibles y la seleccin de la mejor. En el ejemplo que sigue solo hay dos variables. Pero
aun este sencillo ejemplo tiene 305 combinaciones posibles de soluciones enteras.
Ramificacin y acotamiento es una estrategia de bsqueda sistemtica que reduce mucho el nmero de
combinaciones que se deben examinar. Comienza con la solucin ptima del Simplex en donde se
ignoraron las restricciones de variables enteras. Se selecciona despus una variable con valor no entero y
se crean dos ramas mutuamente excluyentes. Esto da lugar a dos nuevos problemas de PL que se deben
resolver. Si ninguna solucin es entera, se crean ramas y se resuelven nuevos problemas. En cada paso, la
solucin que se encuentra proporciona una cota para esa rama en el sentido de que ninguna otra
solucin puede ser mejor. Por ejemplo, se inicia el proceso con una solucin ptima no entera. Se sabe
que no existe ninguna otra solucin no entera que sea mejor. Un ejemplo ayudara a clarificar este proceso.
Ejemplo: Considrese el siguiente problema de programacin entera:
Maximizar: Z = 60X + 50Y
Restricciones: 2X + 4Y <= 80
3X + 2Y <= 55
X <= 16
Y <= 18
X, Y 0 y ENTERO
La grfica de este problema se muestra en la figura siguiente:

La solucin no entera ptima cae en la interseccin de las dos primeras restricciones: X = 7.5, Y = 16.25,
Z = 1262.5. Ninguna variable es entera. Tambin puede afirmarse que ninguna otra solucin no entera
dar un valor mayor a 1262.5 para la funcin objetivo.
RAMIFICACIN
Se inicia la ramificacin con cualquiera de las dos variables, por ejemplo seleccinese X que tiene un
valor de solucin de 7.5. Como slo son de inters las soluciones enteras, pueden eliminarse todos los
valores de X entre 7 y 8. Es decir, puede dividirse el espacio de soluciones en dos partes, con una X<= 7 y
otra con X>= 8, tal como se muestra en la figura siguiente:
Y
3X + 2Y = 55
20

18
Y = 18

16

14 X = 16

12

2X + 4Y = 80
10
X <= 7
8

4
X >= 8

2 4 6 8 10 12 14 16 18 20 X
Esto crea dos nuevos problemas de PL uno para cada rama.
Rama A: Maximizar: Z = 60X + 50Y
Restricciones: 2X + 4Y <= 80
3X + 2Y <= 55
X <= 16
Y <= 18
X <= 7
Rama B: Maximizar: Z = 60X + 50Y
Restricciones: 2X + 4Y <= 80
3X + 2Y <= 55
X <= 16
Y <= 8
X >= 8
Ntese que la restriccin original X<=16 se convierte en superflua en la rama A. Ahora debe resolverse
cada uno de los problemas ignorando de nuevo la restriccin de variables enteras.
Un diagrama de rbol es muy til para guardar un registro de las ramas. La solucin para las dos ramas
se muestra en el diagrama de rbol de la figura siguiente:

INICIO

X = 7.5

y = 16.25

z = 1262.5

X <= 7 X >= 8

INICIO INICIO
RAMA A RAMA B

X=7 X=8

y = 16.5 y = 15.5

z = 1245 z = 1255

Aunque ambas soluciones dan valores enteros de X, dejan a Y con valores no enteros. Ntese tambin que
la funcin objetivo ha disminuido en ambos casos. En este punto puede afirmarse que ninguna solucin
entera en la rama A puede dar un valor de la funcin objetivo mayor que 1245. De igual manera, 1255 es
una cota superior en la rama B.
La ramificacin posterior se muestra en la figura de la pgina siguiente.
Los modelos de programacin lineal correspondientes a cada una de las ramas posteriores del rbol son:

Rama B1: Rama B2:


Maximizar: Z = 60X + 50Y Maximizar: Z = 60X + 50Y
S.t.: 2X + 4Y <= 80 S.t.: 2X + 4Y <= 80
3X + 2Y <= 55 3X + 2Y <= 55
X <= 16 X <= 16
Y <= 8 Y <= 8
X >= 8 X >= 8
Y <= 15 Y >= 16

Arbol de ramificacin completa

INICIO

X = 7.5

y=
16.25

z = 1262.5

X <= 7 X >= 8

INICIOA
RAMA INICIOB
RAMA

X=7 X=8

y = 16.5 y = 15.5

z = 1245 z = 1255

Y <= 16 Y >= 17 Y <= 15 Y >= 16

INICIO A1
RAMA RAMA
INICIO
A2 INICIO
RAMA B1 INICIO B2
RAMA

X=7 X=6 X = 8.33 No hay


soluciones
Y = 16 y = 17 y = 15 factibles

Z = 1220 Z = 1210 z = 1250

X <= 8 X >= 9

INICIOB1a
RAMA RAMA
INICIO
B1b

X=8 X=9
Y = 14
X = 15

z = 1230 Z = 1240

Rama A1: Rama A2:


Maximizar : Z = 60X + 50Y Maximizar : Z = 60X + 50Y
S.t.: 2X + 4Y <= 80 S.t: 2X + 4Y <= 80
3X + 2Y <= 55 3X + 2Y <= 55
X <= 16 X <= 16
Y <= 8 Y <= 8
X >= 8 X >= 8
Y <= 16 Y >= 17

Rama B1a: Rama B2b:


Maximizar : Z = 60X + 50Y Maximizar : Z = 60X + 50Y
S.t.: 2X + 4Y <= 80 S.t.: 2X + 4Y <= 80
3X + 2Y <= 55 3X + 2Y <= 55
X <= 16 X <= 16
Y <= 8 Y <= 8
X >= 8 X >= 8
Y <=15 Y <=16
X <= 8 X >= 9
En este caso se ha tenido que ramificar todo el rbol, pero generalmente no es necesario ya que la
solucin (valor de Z) de una rama puede servir de cota para no seguir extendiendo otras ramas cuyas
soluciones sean de igual o menor valor a la cota. Por ejemplo si la solucin de la rama A hubiera sido
Z=1240, entonces no hay la necesidad de extenderla ya que cualquier solucin debajo de ella es menor
que 1240.
Por lo tanto la solucin entera ptima del problema se encuentra en la rama B1b con X=9, Y=14 y
Z=1240.

IV
(La prctica tiene una duracin de 02 horas) ACTIVIDADES

Problema 1:

a) Utilizando el WinQsb, PomQm, Lindo o Solver de Excel encuentre la solucin ptima de los
siguientes problemas. Muestre la salida del software.
1) MAX 8X + 7Y
ST
2X + 0.5Y <= 12
4X + 7Y <= 36
X, Y >= 0 Y ENTERO

2) MAX 3X1 + 3X2 + 13X3


ST
-3X1 + 6X2 + 7X3 <= 8
6X1 3X2 + 7X3 <=8
X1, X2, X3 <= 5
X2 >= 0
X1, X3 >= 0 Y ENTERO

3) MAX 16X1 + 22X2 + 12X3 + 8X4


ST
5X1 + 7X2 + 4X3 + 3X4 <= 14
X1, X2, X3, X4 { 0,1}
4) MAX 3X1 + X2 + 2X3 - X4 + X5
ST
2X1+X2-3X4<=1
X1+2X2-3X3-X4+2X5>=2
X1,X2,X3,X4,X5 { 0,1}

5) MIN 3X1 + 2X2 + 4X3


ST
2X1 + 4X2 + 3X3 >= 40
X1 + X2 + 5X3 >= 30
X1, X2, X3 >= 0 Y ENTERO

b) Utilizando el algoritmo de Ramificacin y Acotamiento, construya el rbol respectivo para cada


problema de la parte a) y muestre la rama que tiene la solucin ptima. Verifique sus respuestas
con las obtenidas en el punto anterior.