Sei sulla pagina 1di 41

Introduccin a GLPK en

Optimizacin de Problemas de Produccin


Pedro Pieyro - Luis Stbile - Carlos Testuri
Colaboran: Hctor Cancela - Antonio Mauttone
Depto. Investigacin Operativa. Instituto de Computacin. Facultad de Ingeniera, UdelaR

2015

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

1 / 41

GNU Linear Programming Kit (GLPK)

Paquete informtico para la resolucin de problemas de programacin


lineal (LP) y programacin lineal entera mixta (MIP)
Ofrece un lenguaje de modelado algebraico (GMPL: GNU Math
Programming Language)

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

2 / 41

Problemas en GMPL

Los problemas se escriben en un archivo de texto plano utilizando los


elementos del lenguaje
Descripcin del modelo: Formado por una secuencia de sentencias
Datos del modelo: Formado por una secuencia de bloques de datos

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

3 / 41

Descripcin del modelo (Sentencias)

Las sentencias son la la unidad bsica del lenguaje


Toda sentencia finaliza con un punto y coma (;)
Sentencias Declarativas: Sirven para definir objetos del modelo
Sentencias Funcionales: Para realizar acciones especficas
(No las veremos en el curso)

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

4 / 41

Descripcin del modelo (Objetos)

Es definido mediante un nombre simblico que lo identifica


Los objetos pueden ser: escalares o N-dimensionados (N 1)
Objetos Escalares: Los referenciamos por medio del nombre; por
ejemplo t
Objetos Vectoriales: Los referenciamos por medio del nombre y un
subndice entre corchetes; por ejemplo: nutriente[i]
Objetos N-Dimensionados: Los referenciamos por medio del nombre y
N subndices entre corchetes; por ejemplo para N=2 (matriz),
contenido[i,j]

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

5 / 41

Descripcin del modelo (Conjuntos, Parmetros y Variables)

Los conjuntos definen el dominio de los ndices utilizados en el modelo


Los parmetros representan datos de la realidad
Las variables representan magnitudes que estn bajo el control de quin
toma las decisiones
Definicin y Sintxis
Conjuntos
set nombre;
Parmetros
param nombre dominio;
Variables de Decisin
var nombre dominio expresin;

Ejemplo
set alimento;
param precio{i in alimento};
var x{i in alimento} >= 0;

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

6 / 41

Descripcin del modelo (Restricciones)

Las restricciones representan exigencias que debe cumplir la solucin


que buscamos
Definicin y Sintxis
Restricciones
s.t. nombre dominio : expresin = expresin;
s.t. nombre dominio : expresin < expresin;
s.t. nombre dominio : expresin > expresin;
s.t. nombre dominio : expresin expresin;
s.t. nombre dominio : expresin expresin;
Ejemplo
s.t. demanda{j in nutriente} :
sum{i in alimento} x[i] * contenido[i,j] >= requisito[j];

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

7 / 41

Descripcin del modelo (Funcin Objetivo)

La funcin objetivo representa la expresin que queremos optimizar


Definicin y Sintxis
Funcin Objetivo
maximize nombre dominio :
expresin;
minimize nombre dominio :
expresin;

Ejemplo

minimize costo :
sum{i in alimento} precio[i] * x[i];

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

8 / 41

Descripcin del modelo (Comentarios)

Es una construccin muy til al momento de documentar nuestros


modelos
Sirven para hacer anotaciones legibles
Estas anotaciones son ignoradas por el intrprete que procesa el modelo
Comentarios de lnea: El caracter numeral (#) comenta todo lo que se
encuentre a su derecha
Comentarios de bloque: La secuencia barra asterisco (/*) comenta todo
lo que se encuentra entre los caracteres /* y */.

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

9 / 41

Datos del modelo

La primera forma de proporcionarle datos al modelo es por medio del


operador de asignacin := (dos puntos igual) en la declaracin
(definicin) del objeto. Por ejemplo:
set alimento := Leche Carne Arroz Papa Tomate;
La segunda es por medio de bloques de datos en la seccin de datos del
modelo

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

10 / 41

Datos del modelo (Seccin de datos)

La seccin de datos del modelo puede estar definida en el mismo archivo


que la descripcin del modelo, luego de la sentencia data;
En esta seccin las expresiones no estn permitidas
Por medio de bloques de datos se asignan valores a los Conjuntos y a
los Parmetros
sentencia;
. . .
sentencia;
data;
bloque de datos;
. . .
bloque de datos;
end;

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

11 / 41

Datos del modelo (Seccin de datos) (2)

Aunque por lo general vamos a querer tener los datos del modelo en un
archivo diferente, de modo de poder instanciar un mismo modelo con
distintos juegos de datos
sentencia;
sentencia;
. . .
sentencia;
end;

data;
bloque de datos;
bloque de datos;
. . .
bloque de datos;
end;

Archivo del modelo

Archivo de datos

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

12 / 41

Datos del modelo (Bloques de datos)

Bloque de datos
Ejemplo
Conjuntos
set nombre := t1 , . . . ,tn ;
set alimento := Leche Carne Arroz Papa Tomate;
Parmetros (Escalar)
param nombre := v;
param T := 4;
Parmetros (Vector)
param nombre := t1 , v1 ,
param precio := Leche 24
t2 , v 2 ,
Carne 190
...
Arroz 32
tn1 , vn1 ,
Papa 25
tn , v n ;
Tomate 50;

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

13 / 41

Datos del modelo (Bloques de datos)


Bloque de datos
Parmetros (Matriz)
param nombre : c1
r1 a11
r2 a21
. . .
rm am1
Ejemplo
Parmetros (Matriz)
param contenido
:
Leche
Carne
Arroz
Papa
Tomate

c2
a12
a22
. . .
am2

...
cn :=
. . . a1n
. . . a2n
. . .
. . . amn ;

Gr Pr Ca :=
20 34 49
250 180 0
2,5 67 780
1
21 170
2
11 47;

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

14 / 41

Problema de la dieta
El problema trata de la seleccin de alimentos que satisfacen requisitos
nutricionales a costo mnimo. Dado un conjunto de alimentos, con su
informacin nutricional y precio, el objetivo es seleccionar las cantidades de
alimentos a adquirir de forma de minimizar el costo de la dieta, mientras se
cumple con requisitos nutricionales. Estos requisitos se establecen como cotas
mnimas de algunos componentes nutricionales.
Cuadro: Contenido de nutrientes y precios por alimento

Alimento
Leche (L)
Carne (Kg)
Arroz (Kg)
Papa (Kg)
Tomate (Kg)
Requisitos (/da)

Grasas(g)
20
250
2.5
1
2
60

Protenas(g)
34
180
67
21
11
120

Carbohidratos(g)
49
0
780
170
47
280

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

Precio($)
24
190
32
25
50

2015

15 / 41

Problema de la dieta (Formulacin)

El objetivo es determinar la cantidad diaria de cada alimento a adquirir


mediante las variables xL , xC , xA , xP , xT .
Para cada nutriente existe una restriccin de cantidad mnima.

min 24xL + 190xC + 32xA + 25xP + 50xT

s.a.
20xL + 250xC + 2,5xA + xP + 2xT 60,
(Grasas)

34xL + 180xC + 67xA + 21xP + 11xT 120, (Proteinas)

49xL + 780xA + 170xP + 47xT 280,


(Carbohidratos)

xL , xC , xA , xP , xT 0.

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

16 / 41

Implementacin del Problema de la dieta (Conjuntos y Parmetros)


1
2

# PROBLEMA DE LA DIETA
#

3
4
5

set alimento ;
/ Alimentos /

6
7
8

10

11

set nutriente ;
/ Nutrientes /

param p r e c i o { i i n a l i m e n t o } ;
/ Precio por alimento /

12

13

14

param r e q u i s i t o { j i n n u t r i e n t e } ;
/ Requisitos n u t r i c i o n a l e s d i a r i o s /

15

16

17

param c o n t e n i d o { i i n a l i m e n t o , j i n n u t r i e n t e } ;
/ Contenido n u t r i c i o n a l j por alimento i /

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

17 / 41

19

20

22

23

25

26

Implementacin del Problema de la dieta (Variables, restricciones y


objetivo)

v a r x { i i n a l i m e n t o } >= 0 ;
/ Cantidades a ser adquiridas /

m i n i m i z e c o s t : sum{ i i n a l i m e n t o } p r e c i o [ i ] x [ i ] ;
/ C o s t o minimo /

s . t . demanda { j i n n u t r i e n t e } : sum{ i i n a l i m e n t o } x [ i ]
c o n t e n i d o [ i , j ] >= r e q u i s i t o [ j ] ;
/ Satisfaga los r e q u i s i t o s d i a r i o s para el n u t r i e n t e i /

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

18 / 41

28

Implementacin del Problema de la dieta (Bloques de datos)

data ;

29

30

s e t a l i m e n t o : = Leche C a r n e A r r o z Papa Tomate ;

31

32

s e t n u t r i e n t e := Grasas P r o t e i n a s Carbohidratos ;

33

34

35

36

37

38

param p r e c i o : = Leche
Carne
Arroz
Papa
Tomate

24 / ( $ p o r l i t r o ) /
190 / ( $ p o r Kg ) /
32 / ( $ p o r Kg ) /
25 / ( $ p o r Kg ) /
5 0 ; / ( $ p o r Kg ) /

39

40

41

42

param r e q u i s i t o : = G r a s a s
60
/ ( g d i a r i o s ) /
Proteinas
120 / ( g d i a r i o s ) /
Carbohidratos 280; / ( g d i a r i o s ) /

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

19 / 41

44

45

46

47

48

49

50

51

Implementacin del Problema de la dieta (Bloques de datos) (2)

param c o n t e n i d o :
Grasas P r o t e i n a s Carbohidratos :=
#
(g)
(g)
(g)
Leche
20
34
49
C a r n e 250
180
0
Arroz 2.5
67
780
Papa
1
21
170
Tomate
2
11
47;
end ;

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

20 / 41

Resolucin

El programa glpsol es ejecutado desde la lnea de comandos. Para indicarle al


intrprete que el archivo de entrada corresponde a una descripcin de un
modelo, utilizamos la opcin model. Por medio de la opcin output indicamos
el archivo en donde se almacenar el resultado. Las opciones son antecedidas
por dos guiones o signo de menos.
C:\> glpsol --model dieta.mod --output dieta.sol

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

21 / 41

Interpretacin de los resultados (Informacin sobre el problema)

Problem:
Rows:
Columns:
Non-zeros:
Status:
Objective:

dieta
4
5
19
OPTIMAL
cost = 80.3187251 (MINimum)

El solver ha encontrado un valor ptimo (mnimo en este caso) al problema


dieta y vale $ 80.31.

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

22 / 41

Interpretacin de los resultados


(Informacin sobre el estado de la funcin objetivo y las restricciones)

No.
Row name
St
Activity
Lower bound
Upper bound
Marginal
------ ------------ -- ------------- ------------- ------------- ------------1 cost
B
80.3187
2 demanda[Grasas]
NL
60
60
0.414343
3 demanda[Proteinas]
NL
120
120
0.462151
4 demanda[Carbohidratos]
B
368.988
280

Analizando la tabla vemos que el estado (Columna St) de los requisitos


nutricionales en Grasas esta acotado inferiormente (NL). Su valor marginal
(valor dual o precio sombra) vale $ 0.4143 por lo que si la restriccin fuera
relajada, la funcin objetivo mejorara ese valor. Con los requisitos de
Protenas sucede algo similar. Sin embargo los requisitos nutricionales en
Carbohidratos no estn acotados (St es B) por lo que la restriccin esta
inactiva. Relajarla no mejorar el valor objetivo. Su valor dual es 0.
Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin
Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

23 / 41

Interpretacin de los resultados (Informacin de la solucin)

No.
-----1
2
3
4
5

Column name
-----------x[Leche]
x[Carne]
x[Arroz]
x[Papa]
x[Tomate]

St
Activity
Lower bound
Upper bound
Marginal
-- ------------- ------------- ------------- ------------B
2.96414
0
NL
0
0
3.22709
B
0.286853
0
NL
0
0
14.8805
NL
0
0
44.0876

Vemos en la columna Activity la solucin ptima del problema. Las que


presentan estado B son las variables bsicas. La solucin es entonces Leche =
2.96414 litros y Arroz 0.286853 Kg. Deberamos adquirir esas cantidades
diriamente para minimizar los costos y cumplir con los requisitos
nutricionales. La columna Marginal indica los costos reducidos de las
variables no bsicas por lo que podemos deducir fcilmente que se ha
alcanzado el mnimo.

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

24 / 41

Problema de distribucin

El objetivo es encontrar un programa de envos de menor costo que satisfaga


los requerimientos del mercado y los suministros de las plantas. Supongamos
que contamos con tres plantas de productos enlatados ubicados en en Portland
(Maine), Seattle y San Diego. Las plantas pueden llenar 250, 500 y 750 latas
de conserva por da, respectivamente. El distribuidor opera con cinco
almacenes ubicados en New York, Chicago, Topeka (Kansas City), Dallas y
San Francisco. Cada uno de los almacenes puede vender 300 latas
diariamente. El distribuidor desea determinar el nmero de latas de conserva a
ser entregadas de las tres plantas a los cincos almacenes de modo que cada
almacen debera obtener tantas latas como pueda vender diariamente a costo
de transporte mnimo.

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

25 / 41

Problema de distribucin (2)

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

26 / 41

Problema de distribucin (3)

Para simplificar el modelo vamos a suponer que contamos con dos plantas
(Seattle y San Diego) y tres almacenes (New York, Chicago y Topeka).
En el cuadro mostramos los costos de envo (en dlares americanos) por
unidad desde las plantas a los almacenes.
Cuadro: Costos de distribucin (dlares por lata)

Almacenes
Plantas
Seattle
San Diego

New York

Chicago

Topeka

2.5
2.5

1.7
1.8

1.8
1.4

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

27 / 41

Problema de distribucin (Decisiones y objetivo)

Decisiones:
xSeattleNew York
xSeattleChicago
xSeattleTopeka
xSan DiegoNew York
xSan DiegoChicago
xSan DiegoTopeka
Objetivo:
min

Cantidad de latas de Seattle a New York


Cantidad de latas de Seattle a Chicago
Cantidad de latas de Seattle a Topeka
Cantidad de latas de San Diego a New York
Cantidad de latas de San Diego a Chicago
Cantidad de latas de San Diego a Topeka

transporte[i, j] x[i, j]

i{Seattle,SanDiego} j{NewYork,Chicago,Topeka}

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

28 / 41

Problema de distribucin (Restricciones)

Para cada planta, la cantidad de conservas distribuidas debe ser menor o


igual a la cantidad producida.
xSeattleNew York + xSeattleChicago + xSeattleTopeka
500
xSan DiegoNew York + xSan DiegoChicago + xSan DiegoTopeka 750
Debemos satisfacer la demanda de los almacenes.
xSeattleNew York + xSan DiegoNew York 300
xSeattleChicago + xSan DiegoChicago
300
xSeattleTopeka + xSan DiegoTopeka
300
No negatividad de las variables de decisin:
xSeattleNew York 0, xSeattleChicago 0, xSeattleTopeka 0,
xSan DiegoNew York 0, xSan DiegoChicago 0, xSan DiegoTopeka 0

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

29 / 41

Problema de distribucin (Formulacin)

P
P

min

i{Seattle,SanDiego}
j{NewYork,Chicago,Topeka} transporte[i, j] x[i, j]

s.a.
x
500

Pj{New York,Chicago,Topeka} Seattlej

x
750

Pj{New York,Chicago,Topeka} San Diegoj


x

300
Pi{Seattle,San Diego} iNew York

x
300

Pi{Seattle,San Diego} iChicago

i{Seattle,San Diego} xiTopeka 300

xi,j 0 con i {Seattle, San Diego} y j {New York, Chicago, Topeka}

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

30 / 41

Implementacin del Problema de distribucin (Conjuntos y Parmetros)


1
2

# PROBLEMA DE TRANSPORTE
#

3
4
5

set planta ;
/ Plantas /

6
7
8

10

11

s e t almacen ;
/ Almacenes /

param c a p a c i d a d { i i n p l a n t a } ;
/ C a p a c i d a d de l a p l a n t a i /

12

13

14

param demand { j i n a l m a c e n } ;
/ Demanda d e l mercado j /

15

16

17

param t r a n s p o r t e { i i n p l a n t a , j i n a l m a c e n } ;
/ C o s t o de t r a n s p o r t e p o r l a t a de c o n s e r v a /

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

31 / 41

19

20

22

23

25

26

Implementacin del Problema de distribucin (Variables, restricciones y


objetivo)
v a r x { i i n p l a n t a , j i n a l m a c e n } >= 0 ;
/ Cantidades a ser d i s t r i b u i d a s /

m i n i m i z e c o s t : sum{ i i n p l a n t a , j i n a l m a c e n } t r a n s p o r t e [ i , j ]
x[ i , j ];
/ C o s t o s t o t a l e s de t r a n s p o r t e /

s . t . s u p p l y { i i n p l a n t a } : sum{ j i n a l m a c e n } x [ i , j ] <= c a p a c i d a d
[ i ];
/ S u j e t o a l o s l i m i t e s de l a p l a n t a i /

27

28

29

s . t . demand { j i n a l m a c e n } : sum{ i i n p l a n t a } x [ i , j ] >= demanda [ j


];
/ S a t i s f a g a l a demanda d e l mercado j /

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

32 / 41

31

Implementacin del Problema de distribucin (Bloques de datos)


data ;

32

33

s e t p l a n t a : = S e a t t l e SanDiego ;

34

35

s e t a l m a c e n : = NewYork C h i c a g o Topeka ;

36

37

38

param c a p a c i d a d : = S e a t t l e
SanDiego

500
750;

39

40

41

42

param demand : = NewYork


Chicago
Topeka

300
300
300;

43

44

45

46

param t r a n s p o r t e :
NewYork
Seattle
2.5
SanDiego
2.5

Chicago
1.7
1.8

Topeka : =
1.8
1.4 ;

47

48

end ;

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

33 / 41

Interpretacin de los resultados


(Informacin sobre el estado de la funcin objetivo y las restricciones)

No.
Row name
St
Activity
Lower bound
Upper bound
Marginal
------ ------------ -- ------------- ------------- ------------- ------------1 cost
B
1680
2 supply[Seattle]
NU
500
500
< eps
3 supply[San-Diego]
B
400
750
4 demand[New-York]
NL
300
300
2.5
5 demand[Chicago]
NL
300
300
1.7
6 demand[Topeka]
NL
300
300
1.4

Si bien la restriccin supply[Seattle] acota la funcin objetivo superiormente,


el valor marginal esta muy prximo a 0 (, con  0).
Por otro lado, las restricciones de mercado nos indican que si pudieramos
elegir un mercado para reducir su demanda (relajar la restriccin), nos
convendra elegir el de New York, dado que cada unidad decrementara los
costos 2.5 puntos en el valor ptimo.
Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin
Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

34 / 41

Interpretacin de los resultados (Informacin de la solucin)

No. Column name St


Activity
Lower bound
Upper bound
Marginal
------ ------------ -- ------------- ------------- ------------- ------------1 x[Seattle,New-York]
B
200
0
2 x[Seattle,Chicago]
B
300
0
3 x[Seattle,Topeka]
NL
0
0
0.4
4 x[San-Diego,New-York]
B
100
0
5 x[San-Diego,Chicago]
NL
0
0
0.1
6 x[San-Diego,Topeka]
B
300
0

Analizando la segunda tabla vemos que el programa de envo de menor costo


es aquel que enva desde Seattle 200 latas a New York, y 300 a Chicago; y
desde San Diego 100 a New York y 300 a Topeka cumpliendo los lmites de
las plantas y las demandas de los mercados. A su vez indica que enviar latas
desde Seattle a Topeka o de San Diego a Chicago aumenta el costo por lata en
dlares en 0.4 y 0.1 unidades respectivamente.
Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin
Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

35 / 41

Problema de determinacin de lotes no capacitada

El problema de determinacin de lotes no capacitada puede ser descrito como


sigue. Hay un horizonte de n perodos donde, para cada perodo t
(t {1, . . . , n}), hay costos fijos de produccin (ft ), costos unitarios de
produccin (pt ), una demanada a satisfacer (dt 0) y costos de depsito ht
para el almacenamiento de la produccin no vendida al finalizar cada uno de
los perodos.

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

36 / 41

Problema de determinacin de lotes no capacitada (Decisiones y objetivo)


Variables de Decisin
xt es la cantidad producida en el perodo t,
st es el inventario al final del perodo t,
yt = 1 si se produce en el perodo t, yt = 0 en otro caso.
Restricciones
equilibrio de inventario segn perodos:
st1 + xt = dt + st , t = 1, . . . , n,
s0 = 0
,
activacin de produccin
Dado que no hay una cota de produccin se asume un valor grande M
para la activacin de los costos fijos
xt Myt , t = 1, . . . , n,
Funcin Objetivo
minimizar

Pn

t=1 (pt xt

+ ht st + ft yt )

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

37 / 41

Problema de determinacin de lotes no capacitada (Formulacin)

Pn

min

t=1 (pt xt + ht st + ft yt )

s.a.
s

t1 + xt = dt + st , t = 1, . . . , n

xt Myt , t = 1, . . . , n

s0 = 0,

xt 0, t = 1, . . . , n

st 0, t = 1, . . . , n

yt {0, 1}, t = 1, . . . , n

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

38 / 41

Implementacin del Problema de determinacin de lotes no capacitada


(Conjuntos y Parmetros)
1
2

# PROBLEMA DE DETERMINACION DE LOTES NO CAPACITADA


#

3
4
5

set periodo ;
/ Periodos /

6
7

param M;

8
9

10

param f { i i n p e r i o d o } ;
/ C o s t o f i j o de p r o d u c i r en e l p e r i o d o t /

11

12

13

param p { i i n p e r i o d o } ;
/ C o s t o u n i t a r i o de p r o d u c c i o n en e l p e r i o d o t , /

14

15

16

param h { i i n p e r i o d o } ;
/ c o s t o u n i t a r i o de a l m a c e n a m i e n t o en e l p e r i o d o t /

17

18

19

param d { i i n p e r i o d o } ;
/ demanda en e l p e r i o d o t /

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

39 / 41

21

22

Implementacin del Problema de determinacin de lotes no capacitada


(Variables y objetivo)

v a r x { i i n p e r i o d o } >= 0 ;
/ C a n t i d a d e s a p r o d u c i r s e en e l p e r i o d o t /

23

24

25

v a r s { i i n ( p e r i o d o u n i o n { 0 } ) } >= 0 ;
/ i n v en t a r io al f i n a l del periodo t /

26

27

28

30

31

var y{ i in p e r i o d o } , b i n a r y ;
/ 1 s i s e p r o d u c e en e l p e r i o d o t , 0 en o t r o c a s o /

m i n i m i z e c o s t o : sum{ i i n p e r i o d o } p [ i ] x [ i ] + h [ i ] s [ i ] +
f [ i ] y[ i ];
/ C o s t o minimo /

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

40 / 41

33

34

Implementacin del Problema de determinacin de lotes no capacitada


(Restricciones)

s . t . e q u i l i b r o { i i n p e r i o d o } : s [ i 1] + x [ i ] = d [ i ] + s [ i ] ;
/ E q u i l i b r i o de i n v e n t a r i o /

35

36

37

s . t . a c t i v { i i n p e r i o d o } : x [ i ] <= M y [ i ] ;
/ A c t i v a c i o n de l a p r o d u c c i o n /

38

39

40

s . t . i n i c i a l : s [0] = 0;
/ Inventario i n i c i a l /

Facultad de Ingeniera. UdelaR (Depto. Investigacin Optimizacin


Operativa. Instituto
de Problemas
de Computacin.
de Produccin
Facultad de Ingeniera)

2015

41 / 41

Potrebbero piacerti anche