Sei sulla pagina 1di 30

9.

PROGRAMACION ENTERA
9.1

Introduccin y ejemplos de modelamiento

9.2

Resolucin de problemas de Programacin Entera

9.3

Mtodo de Branch and Bound

9.1

Introduccin y ejemplos de modelamiento

a) Problema de la mochila.
Una empresa est pensando invertir en cuatro
proyectos diferentes, cada proyecto se finaliza a lo
ms en 3 aos. Los flujos de caja requeridos en
cada ao junto con el Valor Presente Neto de cada
proyecto, concludos los aos de ejecucin, y las
disponibilidades de recursos financieros se
resumen en la siguiente tabla:

Proy 1 Proy 2 Proy 3 Proy 4

Disp. Recursos

Ao 1

10

12

30

Ao 2

15

15

Ao 3

18

16

12

V.P.N.

35

18

24

16

Interesa determinar en cules proyectos invertir de


modo de conseguir el mayor V.P.N. de la inversin.

Variables de decisin:
xi

1 si se invierte en el proyecto i, con i 1,2,3,4


0 si no

Funcin objetivo:
Max 35x1 + 18x2 + 24x3 + 16x4
Restricciones (tres alternativas):
1 Reinvirtiendo el dinero no utilizado en un perodo
Ao 1: 10x1 + 8x2 + 6x3 + 12x4 + s1
Ao 2: 8x1 + 15x2 + 4x3
Ao 3: 18x1
xi {0,1}

+ 16x3
i = 1,2,3,4

= 30
+ s2

= 15 + s1
12 + s2

2 Sin invertir el dinero no utilizado en un perodo, pero


utilizando el retorno de los proyectos concludos:
Ao 1: 10x1 + 8x2 + 6x3 + 12x4

30

Ao 2: 8x1 + 15x2 + 4x3

15 + 16x4

Ao 3: 18x1

12 + 18x2

Xi {0,1}

+ 16x3
i = 1,2,3,4

3 Reinvirtiendo dinero no utilizado en un perodo y


retorno de proyectos concludos:
Ao 1: 10x1 + 8x2 + 6x3 + 12x4 + s1
Ao 2: 8x1 + 15x2 + 4x3
Ao 3: 18x1
Xi {0,1}

+ 16x3
i = 1,2,3,4

= 30
+ s2 15 + s1 + 16x4
12 + s2 + 18x2

Notar que el conjunto de las soluciones factibles es


finito. Esto ocurrir generalmente con los problemas
de programacin entera (puros). En el ejemplo, el
nmero de soluciones factibles no supera el nmero
de las soluciones binarias del problema (variables
restringidas slo a valores 0 o 1) que son 24 = 16,
dado el nmero de variables utilizadas, de hecho las
soluciones factibles son menos de 16 pues en
particular xi=1 para i=1,2,3 y 4 no satisface las
disponibilidades de capital en cualquiera de las tres
alternativas.

Supongamos que adicionalmente la


efectuada requiera nuevas restricciones.
i)

inversin

Se debe invertir en al menos 1 de los 3 primeros


proyectos:
x x x 1
1
2
3

ii) El proyecto 2 no puede ser tomado a menos que el


proyecto 3 si sea tomado:
x x
2
3
iii) Se puede tomar el proyecto 3 o 4 pero no ambos:
x x 1
3
4
iv) No se puede invertir en ms de dos proyectos:
x x x x 2
1
2
3
4

b) Cumplimiento de un subconjunto
restricciones de un problema.

Consideremos un problema
siguientes restricciones:

que

de

las

posee

las

12x1 + 24x2 + 18x3 2400


15x1 + 32x2 + 12x3 1800
20x1 + 15x2 + 20x3 2000

Supongamos que nos basta con obtener alguna


solucion ptima que verifique el cumplimiento de al
menos 2 de las 3 restricciones anteriores.

Variables de decisin
yi

1 La restriccin j se satisface
0 Si la restriccin j no se satisface

Cada inecuacin anterior la reemplazamos por:


12x1 + 24x2 + 18x3 2400 + M1 (1-y1)
15x1 + 32x2 + 12x3 1800 + M2 (1-y2)
20x1 + 15x2 + 20x3 2000 + M3 (1-y3)
Adems, debemos agregar la restriccin que permita
que a lo ms una de las restricciones no se cumpla:
y1 + y2 + y3 2

Mi = constante lo suf. grande

c) Inclusin de costos fijos.


Supongamos que se desea tener lotes de compra
de un producto dado, para satisfacer demandas
que fluctan en el tiempo sobre un horizonte de
planificacin dividido en T perodos.
Asumimos conocidos: una estimacin de la
demanda dt, con t = 1, 2, ..., T, los costos fijos
asociados a la compra de una unidad pt, los costos
asociados a la mantencin de una unidad en
inventario de cada perodo ht y los costos fijos
asociados a la gestin de compra en el perodo t, st.

Observacin: no se permite unidades de faltante.

Variables de decisin
xt:

nmero de unidades compradas en t.

It:

nivel de inventario al final del perodo t.

yt

1 si se hace una compra en el perodo t.


0 si no
t: 1, 2, ..., T

Funcin objetivo
T

t 1

st y

pt xt htI

Restricciones

xt + It-1 - It = dt

t = 1, 2, ..., T
I0 = inventario inicial

xt Mt yt

t = 1, 2, ..., T
Mt = cte. grande

d) Problema de cobertura:
Dado un nmero de regiones o zonas en las cuales se
ha subdividido una comuna, cuidad, pas, etc., digamos
que un total de m, se desea instalar un cierto nmero
de servidores ( escuelas, centros de atencin primaria
de salud, compaas de bomberos, etc.) de entre un
conjunto de n potenciales servidores ubicados en
alguna de las zonas dadas.
Se conoce la informacin relativa a que zonas pueden
ser atendidas por cada uno de los n potenciales
servidores, es decir, se conoce la matriz de incidencia
A =( aij ) donde :

1, si la zona i se puede ser atendida por el servidor j.

aij
0

si no
i = 1,2,.....,m.

j = 1,2,.....,n.

Se desea determinar cules son los servidores que


deben ser instalados de modo de dar cobertura a cada
zona, dados los costos de instalacin Cj del servidor j.
Variables de desicin :

1, si se instala el servidor j.

xj

0 si no

Funcin objetivo:
Min

j c x

j j

Restricciones :

j a x 1

; j =1,...,n.

ij j

; i =1,...,m.

Si adicionalmente, hay algn limite en el nmero de


servidores que se pueden instalar, digamos k :

j x

e) Problema de transporte y localizacin :


Si se tiene un conjunto de m clientes que demandan di
unidades de un producto determinado. Una compaa
desea satisfacer esas demandas desde un cierto
conjunto de plantas elegidas de n potenciales lugares
donde se instalarn.
Sean cj los costos asociados a la instalacin de la
planta j , vj el costo unitario de produccin de la planta j
y tij el costo de transporte de una unidad desde la
planta j al cliente i .
Se desea decidir cules plantas abrir y el tamao de
cada una de modo de satisfacer las demandas
estimadas.

1,

Si se abre la planta j.

Si no

yj

xij = el nmero de unidades elaboradas en la planta j para


satisfacer el cliente i, con j = 1,...,n. y i = 1,....,m. .

Funcin objetivo :

c y

j j

costo instalacin

v (x )
j

ij

costo produccin

tx

ij ij

costo transporte

Restricciones :

demanda cliente i:

ij

di

i = 1,....,m

Relacionar variables de produccin con las asociadas a


la apertura de plantas (variables binarias ):

ij

Mjyj

; j = 1,...,n

donde Mj es una constante grande (por ejemplo,


capacidad mxima de produccin de la planta j).
xij 0

; yj { 0, 1}

9.2 Resolucin de problemas de Programacin Entera


Supongamos que tenemos el siguiente problema de
programacin lineal:
PL)

Max

cTx

s.a.

Ax=b
x0

Pero todas o una parte de las variables deben


restringir su valor a nmeros enteros, dando origen a
un problema de Programacin Entera (puro) o de
Programacin Entera- Mixta, respectivamente.

Por ejemplo:
PLE) Max
s.a.

cTx
Ax=b
x 0, xj entero

El problema PL) corresponde a la relajacin continua del


problema PLE), que resulta de eliminar las condiciones
de integralidad de las variables de decisin en PLE). El
valor ptimo de PL) provee slo una cota superior del
valor ptimo de PLE). Notar sin embargo, que si la
solucin ptima de PL) cumple con la integralidad de los
valores requiridos, entonces esta solucin es tambin
solucin ptima de PLE).

Ejemplo
PLE) Max
s.a.

x2
- 2x1 + 2x2 1
+ 2x1 + 2x2 7

2x1 + 2x2

x1 0, x2 0 enteros
x2
- 2x1 + 2x2 1
7
7

. .
. .
. .
1.5

.
.
3.5

x1

Notar que en el ejemplo la solucin ptima puede ser


hallada por simple enumeracin de todas las
soluciones factibles, aqu las soluciones ptimas son:
x1* = 1
x2* = 1

x1* = 2
x2* = 1

Esta alternativa de enumeracin queda naturalmente


restringida a problemas muy pequeos.
Alternativamente, podemos resolver la relajacin
continua asociada al problema PLE). Si la solucin
ptima de la relajacin continua da una solucin
entera, esa es la solucin ptima no solo del
problema lineal sino que tambin lo es del problema
lineal entero.

En el ejemplo, la solucin de la relajacin continua es:


x1 = 3/2
x2 = 2
A partir de esta ltima solucin podemos redondear o
truncar los valores que no salieron enteros, obteniendo
respectivamente en el ejemplo:
x1 = 2
x1 = 1
x2 = 2

x2 = 2

las cuales no son soluciones factibles de PLE), de


modo que desde el punto de vista de una resolucin
numrica no es suficiente con resolver la relajacin
continua.

Todava podran resultar soluciones factibles de PLE)


pero no neceasariamente ptimas. Por ejemplo:
PLE) Max
s.a.

f(x1, x2) = x1 + 5x2


x1 + 10x2 10
x1 1
x1 0, x2 0 enteros

Solucin ptima de PL)


x1 = 1

f(1,9/10)=5,5

x2 = 9/10
Redondeando o truncando los valores
x1 = 1 infactible

x1 = 1

x2 = 1

x2 = 0

f(1,0)=1

Pero la solucin ptima de PLE) x1=0; x2=1; v(PLE)=5

9.3 Mtodo de Branch and Bound

Consideremos el siguiente problema de programacin


entera:
PLE) Max 21x1 + 11x2
s.a. 7x2 + 4x2 13
x1 0
x2 0
x1, x2 enteros
Consideremos inicialmente la resolucin de la
relajacin continua de PLE), que consiste en eliminar
las condiciones de integralidad.

x2
X2 = 3

3
3/2

X2 = 2

21x1+11x2=39

X2 = 1
13/7 sol. relajada

x1
21x1+11x2

X1 = 1

X1 = 2 7x1+4x2=13

Descripcin del mtodo Branch and Bound (maximizacin)


Paso 0

Hacer P0, la relajacin continua de PLE)


fijar la cota inferior del v(PLE) en -.

Paso 1

Seleccionar un problema no resuelto, Pi


Resolver Pi) como problema de programacin
lineal.
Agotar este problema, usando:
(i) que se encontr una solucin entera
(ii) que el problema resulta infactible
(iii) que el problema no provee un valor mejor
que la actual cota del valor ptimo v(PLE).

Si el problema Pi resulta agotado y da solucin


entera, mejorar el valor de la cota inferior de
v(PLE).
Si todos los problemas estn agotados parar.
Solucin ptima de PLE), la solucin entera
asociada a la actual cota inferior de v(PLE), si
existe (si no existe entonces PLE) es infactible)
Si el problema no est agotado pasar al paso 2.

Paso 2

Seleccionar una variable xj=j, cuyo valor en


la solucin ptima de Pi) no de entero.
Eliminamos la regin correspondiente a
j < j < j +1
Crear dos nuevos problemas de programacin
lineal que incorporan a Pi) dos restricciones
mutuamente excluyentes:
xj j

xj j +1

una en cada problema y volver al paso 1.

x1 = 13/7
x2 = 0
z = 39

P0
x11
x1 = 1
x2 = 3/2
z = 37.5

P1
x22

P11

P12

x1 = 5/7
x2 = 2
z = 37
x11

x1 = 0
x2 = 13/4
z = 35.75
x23
x1 = 0
x2 = 3
z = 33

P2
infactible

x21
x1 = 1
x2 = 1
z = 32

x12

P1211

P121

P122
x24

P1212
infactible

infactible

P0) Relajacin continua


-< z 39
P1) Max
21x1 + 11x2
s.a.
7x1 + 4x2 13
x1 1
x1 0
x2 0
P2) Max 21 x1 + 11x2
s.a.
7x1 + 4x2 13
x1 1
x2 1
x1 0
x2 0
De donde 32 z 39

Solucin ptima
X1* = 0
X2* = 3
Z = 33

Direcciones electrnicas en Programacin Entera

Preguntas de consulta frecuente en Programacin Lineal:

http://www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-faq.html

Servidor NEOS, gua de software de Programacin Entera:

http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Categories/intprog.html

Servidor Neos, ejemplo problema del corte de rollos:

http://www-fp.mcs.anl.gov/otc/Guide/CaseStudies/cutting/index.html

Gua de software de Programacin Lineal en revista OR&MS


Today (INFORMS Magazine)
http://lionhrtpub.com/softwaresurveys.shtml

Potrebbero piacerti anche