Sunteți pe pagina 1din 5

UNIVERSIDAD NACIONAL DE CAJAMARCA

FACULTAD DE INGENIERIA-EAPIM

5.2 Metodologa de resolucin: algoritmo branch and bound


Un primer paso para la resolucin de un modelo de programacin lineal entera es resolver,
mediante el mtodo smplex, el problema lineal asociado. Se trata de un problema lineal con la
misma funcin objetivo y restricciones que el modelo original, pero al que se han relajado la
condicin de que todas o algunas de las variables de decisin sean enteras. Si la solucin as
obtenida es entera, habremos encontrado la solucin del modelo de programacin lineal entera.
En caso contrario (el ms frecuente), la solucin as obtenida es una primera aproximacin a la
solucin del modelo.
Resulta tentador redondear los valores no enteros a enteros en la solucin obtenida para el
problema
lineal asociado.
slo se puede hacer si los valores de las variables son tan
5 Programacin
linealEsto
entera
grandes que el redondeo no afecta excesivamente al resultado final, pero se debe tener cuidado
al hacerlo pues se corre riesgos:

5.1 Introduccin
1. Es posible que la solucin redondeada no sea factible.
En algunas situaciones que pueden representarse con modelos lineales, nos encontramos con
2.
no existesoluciones
ninguna dede
garanta
quefactible
la solucin
sea
que An
slo siendo
tienen factible,
sentido aquellas
la regin
en las
que todas o algunas de
ptima.
las variables de decisin sean nmeros enteros. Estas situaciones pueden representarse
Estos
dos problemas
se ilustran en
el ejemplo 2.a:
mediante
modelos matemticos
ligeramente
diferentes de la programacin lineal. Si todas las
variables de decisin deben ser enteras, tenemos un problema de programacin lineal entera. Si
slo algunas variables de decisin deben ser enteras, pudiendo ser reales las dems, se trata de
Ejemplo
2.a Encontrar
la solucin al modelo de programacin entera:
un problema
de programacin
lineal mixta.
[MAX]
z = 10x
+ ytodas o algunas de las variables enteras slo pueden tomar los valores de 0 o
En algunos
casos,
+ 6y variables
50
1. Axestas
se les llama variables binarias. De este modo tenemos tres tipos de
12x + y 60
variables:
y 0, enteras
a) x,
Variables
no enteras o reales
Podemos empezar por resolver el problema lineal asociado:
b) Variables enteras
[MAX] z = 10x + y
c) xVariables
+ 6y 50binarias
12x + y 60
La posibilidad de utilizar variables enteras o binarias ampla notablemente las posibilidades de
x, y 0
modelizacin matemtica. El precio por una mayor versatilidad de la herramienta es el de una
mayor
complejidad
la resolucin
del modelo. Esta complejidad se debe a los siguientes
La solucin
de este en
problema
es:
hechos:
Para las variables enteras del modelo,x*el= razonamiento
que se emple para mostrar que la
4,366
solucin ptima era un vrtice (o una combinacin
y* = 7,605 convexa de vrtices) de la regin factible no
es vlido: en un caso general, los vrtices
la regin factible no tienen porqu ser nmeros
z* = de
51,267
enteros. En consecuencia, la solucin ptima se encontrar en el interior de la regin factible,
por
lo que el sta
mtodo
smplex,
empleado
de forma
directa,
no proporcionar
la solucin
ptima.
Claramente,
no es
la solucin
del problema
entero.
Como
al redondear uno
de los dos
resultados
A diferencia
del problema
confactible,
variables
reales, eldar
nmero
de soluciones
de un modelo de
por
exceso salimos
de la regin
es tentador
como buena
la solucin:
programacin lineal entera es finito, por lo
que podra plantearse la posibilidad de encontrar la
x=4
solucin mediante la exploracin de todasy=7
las soluciones posibles. Sin embargo, el nmero de
soluciones a explorar para un problema mediano
z = 47 puede ser muy elevado: en principio, para un
problema con n variables enteras debemos explorar 2 n soluciones (excluyendo quizs algunas
descartadas
las restricciones).
Sin
embargo,por
si exploramos
el conjunto de posibles soluciones a partir de la representacin
Para n =o30, tenemos 230 = 1.073.741.924 soluciones posibles.
grfica,
Se han
desarrollado
metodologas
que
permiten
explorar de
manera
ms
eficiente
bien
introducimos
el problema
en un
programa
informtico
que
resuelva
modelos
de que la mera
enumeracin el
conjunto de soluciones posibles. Gran nmero de estas metodologas emplean la
programacin
enlgicaencontramos
del branch and
y estn
incorporadas
x* = 5
a la mayora de programas informticos que
tera,
quebound,
la solucin
ptima
es:
resuelven modelos lineales. Seguidamente
y* =se0 muestra este procedimiento y cmo resolver
modelos de programacinentera mediantez*programas
= 50
informticos.

UNIVERSIDAD NACIONAL DE CAJAMARCA


FACULTAD DE INGENIERIA-EAPIM

El valor de la funcin objetivo es algo inferior al del programa lineal asociado, dado que se
encuentra dentro de la regin factible, aunque no tan pequea como la solucin obtenida por
redondeo.
El ejemplo 2.a nos muestra la necesidad de encontrar un procedimiento que nos permita, a partir
del problema lineal asociado, ir explorando las soluciones enteras hasta encontrar el ptimo del
modelo de programacin entera. Este procedimiento es el algoritmo de branch and bound. Se
trata de ir aadiendo restricciones al programa lineal asociado hasta encontrar la solucin entera
ptima. Para ello se procede en dos pasos: ramificacin (branch) y acotamiento (bound).

5.2.1 Ramificacin
Se trata de aadir restricciones al modelo que fuercen a que una de las variables sea entera.
Esto se consigue aadiendo una de estas dos restricciones para alguna de las variables xBi que
no sea entera en la solucin obtenida hasta el momento:
Redondeo por defecto: imponemos que la variable xBi sea inferior o igual a la parte entera del
valor de esa variable en el ptimo del problema lineal xBi con las restricciones obtenidas hasta el
momento.
Esto equivale a aadir la restriccin:
xi E(xBi)
Redondeo por exceso: imponemos que la variable xi sea mayor o igual al entero inmediatamente
superior del valor xBi. Esto equivale a aadir la restriccin:
xi E(xBi) + 1
Seguidamente, procederemos a resolver mediante el mtodo smplex dos problemas lineales. El
primero, adems de las restricciones que pudiera tener de etapas anteriores, llevar incorporada
la restriccin de redondeo por defecto incorporada en esta etapa. El segundo se diferenciar del
primero en que incluir la restriccin de redondeo por exceso, en vez de la de redondeo por
defecto.
5.2.2 Acotamiento
Para mostrar el razonamiento de la etapa de acotamiento, utilizaremos un problema de mximo.
El lector puede realizar, si lo desea, el mismo razonamiento para el problema de mnimo.
Ms arriba se mostr que la solucin ptima del modelo de programacin lineal entera se
encuentra dentro de la regin factible. Esto significa que, para un problema de mximo, el
ptimo del programa entero ser menor o igual que el ptimo del problema lineal asociado. Al
hacer la ramificacin, hemos encontrado dos alternativas posibles para obtener la solucin
entera. Los valores ptimos de la funcin objetivo z* de cada uno de los programas lineales
resueltos en la etapa anterior sern una cota superior de las posibles soluciones que
obtengamos mediante posteriores ramificaciones a partir de ese modelo. En consecuencia, slo
tendr sentido continuar con el procedimiento de ramificacin a partir del problema lineal que
tenga la mayor z* de los dos. Siguiendo la otra ramificacin, obtendremos soluciones enteras con
valores de z*
inferiores,
seguridad,
a los
que obtendramos
con la otra
y por
Este
hechocon
nostoda
marca,
adems,
cundo
debemos detenernos
enramificacin,
la exploracin
detanto
soluciones
subptimos.
enteras: cuando el problema escogido tenga una solucin con todas las variables enteras. Por
ser el valor de la funcin objetivo una cota superior del ptimo, cualquier otra solucin entera
que pudiramos explorar sera subptima, y por lo tanto no vale la pena seguir explorando.
Cul ser la solucin ptima del modelo de programacin entera? No necesariamente la
obtenida en la ltima etapa, sino la solucin entera con mayor valor de funcin objetivo de las
obtenidas en el proceso.

UNIVERSIDAD NACIONAL DE CAJAMARCA


FACULTAD DE INGENIERIA-EAPIM

Puede suceder que alguna de las ramificaciones abandonadas condujera a una solucin entera
que en aquel momento tuviera un valor de z* inferior al de la otra ramificacin, pero mayor que
la z* obtenida al final.
Seguidamente se expone el algoritmo descompuesto en pasos. El ejemplo 2.b muestra el
funcionamiento del algoritmo para un caso concreto.
Paso 0

Resolver el problema lineal asociado al problema entero: misma funcin objetivo y


restricciones, pero variables no enteras.

Paso 1

Si la solucin obtenida es entera: finalizar. El ptimo ser aquella solucin entera con
mejor valor de la funcin objetivo.
Si no, ir a paso 2.

Paso 2

Escoger una variable bsica cuyo valor en la solucin xBi no sea


entero.
Ramificacin: resolver dos nuevos problemas lineales.
Al primero se le aade la restriccin:
xi E(xBi) (redondeo por defecto).
Al segundo aadiremos la restriccin:
xi E(xBi) + 1 (redondeo por exceso).

Paso 3

Paso 4

Acotacin: de los dos problemas, escoger aquel que d como resultado un valor mejor
de la
funcin objetivo.

Paso 5

Ir a paso 1.

Ejemplo 2.b Problema XYZ en variables enteras (A)


Nuestro profesional en minas decide ahora subdividir el terreno en 6 campos de la misma rea,
de modo que en cada campo slo podr explotar un tipo de mineral, ya sea cobre o plata. El
profesional ha calculado que segn el precio mnimo garantizado por el Gobierno y despus de
restar todos los costes, obtendr un beneficio neto de 100 millones de dlares por campo de
cobre y 160 millones dedolares por campo de plata. El proceso de un campo de cobre necesita
80 horas de mano de obra y la de un campo de plata 160 horas. Durante la obtencin del minera
el profesional dispondr de 700 horas disponibles de mano de obra. Existe adems la restriccin
de que no podr explotar ms de 3 campos de cobre.
Cuntos campos de plata y cuntos campos de cobre debe explotar el pr0fesional para
maximizar
su beneficio?
El problema del profesional minero puede resolverse con el siguiente modelo de
programacin lineal entera:
Variables de decisin:
Cu: campos en que explotara cobre el profesional. Debe ser una variable entera.
Ag: campos en que el agricultor cultivar plata. Debe ser tambin una variable entera.
Funcin objetivo:
[MAX] z = 100Cu + 160Ag
Restricciones:
Cu
80Cu +

160Ag

3
700

UNIVERSIDAD NACIONAL DE CAJAMARCA


FACULTAD DE INGENIERIA-EAPIM

Cu +
Cu 0

Ag

Ag

En la figura 5.2.b se muestra la resolucin de este modelo de programacin entera, mediante el


algoritmo de ramificacin y acotamiento. Ntese como la solucin entera no puede obtenerse
por redondeo de la solucin del modelo con variables reales. Es destacable tambin que el valor
del ptimo del modelo con variables enteras es peor que la del modelo con variables reales.
Para este modelo, podemos interpretar que el hecho de explotar un campo con un solo mineral
es una opcin
menos flexible que explotar diferentes productos en un mismo campo, y en consecuencia la
solucin es peor.
Conjunto de
soluciones a
explorar
Valor de la
funcin objetivo
para la solucin

Todas
Cu* = 3
Ag* = 2.875
Z* = 7600

Valor de las variables


en la solucin relajada

Ag 3
Cu* = 2.75
Ag* = 3
Z* = 7550

Ag 2
Cu* = 3
Ag* = 2
Z* = 6200

Ag 3, Cu 2
Cu* = 2
Ag* = 3.375
Z* = 7400

Ag 3, CEB 2
Cu* = 2
Ag* = 3
Z* = 6800

Solucin
ptima para
el PE

Ag 3, Cu 3
NO
FACTIBLE

Ag 4, Cu 2
Cu* = 0.75
Ag* = 4
Z* = 7150

Ag 4, Cu 0
Cu* = 0
Ag* = 4.375
Z* = 7000

Ag 4, Cu 0
Cu* = 0
Ag* = 4
Z* = 6400

Ag 4, Cu 1
NO
FACTIBLE

Ag 5, Cu 0
NO
FACTIBLE

Figura 5.2.a Branch and bound para el ejemplo 2.b

UNIVERSIDAD NACIONAL DE CAJAMARCA


FACULTAD DE INGENIERIA-EAPIM

5.3 Resolucin de programacin entera mediante programas informticos


Gran parte de los paquetes informticos que resuelven programacin lineal resuelven tambin
programacin entera, usando variantes ms o menos sofisticadas del algoritmo de bifurcacin y
acotamiento expuesto en 5.2. Hay que decir que la introduccin de variables enteras aumenta
considerablemente el nmero de clculos a realizar, por lo que nos podemos encontrar con
limitaciones al nmero de variables enteras que podemos introducir en el modelo.

S-ar putea să vă placă și