Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
2
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
Parmetros
A0
AMAX
PMAX
Dt
Demanda en el periodo t
CPt
CAt
3
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
Produccin en el periodo t
at,p
Una vez definidos los conjuntos, parmetros y variables del problema, ya se puede proceder a la especificacin del modelos matemtico
que nos dar la solucin ptima del problema. Dicho modelo estar compuesto por una funcin objetivo ms un conjunto de restricciones.
Funcin objetivo:
Se trata de minimizar los costes de produccin y almacenamiento.
(1)a
CP p
min z
CA
at
t 1
t 1
Restricciones:
Tanto la capacidad de produccin como la capacidad de almacenamiento estn limitadas:
(2a )
( b)
(2
0 pt PMAX
0 at AMAX
; t
; t
Balance de material: el nivel de inventario en cada periodo es igual al nivel en el periodo anterior ms la produccin en el periodo actual
menos la demanda en dicho periodo. La segunda ecuacin es la primera pero particularizada para el primer periodo.
(3a )
at at 1 pt Dt
; t : t 1
(3b)
a1 A0 p1 D1
4
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
modelo.mod (continuacin)
// Restricciones
subject to {
// Parmetros
int A0
=
int AMAX =
int PMAX =
int D[T] =
int CP[T] =
int CA[T] =
...;
...;
...;
...;
...;
...;
;
// Variables
dvar int+
dvar int+
dvar float+
dvar float+
p[T];
a[T];
obj1;
obj2;
// Etiquetado
constraint
constraint
constraint
constraint
// Funcin objetivo
minimize obj1 + obj2;
// 1. Funcin objetivo
obj1==sum(t in T) CP[t]*p[t];
obj2==sum(t in T) CA[t]*a[t];
// 2
2. Capacidades mximas
C2a = forall(t in T) p[t]<=PMAX;
c2b = forall(t in T) a[t]<=AMAX;
// 3. Balance de material
C3a = forall(t in T: t>1) a[t]==a[t-1]+p[t]-D[t];
C3b =
a[1]==A0
+p[1]-D[1];
de restricciones
C2a;
C2b;
C3a;
;
C3b;
parmetros
6, 1 ];
4,
, 3 ];
2, 2 ];
datos.dat
Solucin
5
Un coste asociado a la parada (CEk) o puesta en marcha (CSk) de la maquinaria de cada productor, ms un coste de produccin fijo
asociado al funcionamiento de dicha maquinaria (CPFk), adems del coste variable de produccin (CVPk).
Adems de un lmite en la mxima capacidad de produccin por periodo de cada productor (PMAXk), puede existir un lmite inferior
(PMINk), ya que podra no merecer la pena poner en funcionamiento una mquina si no es para producir una cantidad suficiente de
producto.
Adicionalmente, la mxima variacin en la produccin entre dos periodos consecutivos de cada productor est limitada, tanto para un
incremento (PIMAXk) como para un decremento (PDMINk) en la produccin.
Tambin podemos encontrar lmites inferiores en la capacidad de almacenamiento (AMINk) que aseguren un stock mnimo para
satisfacer algn imprevisto en la demanda.
Respecto a este ltimo punto, tambin se puede imponer que la suma de la mxima capacidad de produccin de todos los
productores sea superior a la demanda (Dk) de cada periodo en una determinada cantidad denominada reserva (Rk).
Este tipo de problemas encaja perfectamente en el problema de la programacin de centrales trmicas de produccin de
electricidad.
El coste de poner en funcionamiento una central trmica de produccin de energa elctrica, habiendo estado parada un par de das, es
del orden del coste de compra de un apartamento en una buena zona residencial de una ciudad media
media. Por tanto
tanto, la planificacin de los
arranques y paradas de las centrales trmicas ha de hacerse con cuidado.
El problema de la programacin horaria de centrales trmicas consiste en determinar para un horizonte de planificacin multi-horario, el
arranque y parada de cada central, de tal forma que se suministre la demanda en cada hora, el coste se minimice, y se satisfagan
determinadas restricciones tcnicas y de seguridad.
6
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
Parmetros
Dt
Demanda en el periodo t
Rt
X0k
P0k
CPFk
CPVk
CSk
CEk
C
Coste
d
de parada
d d
de lla centrall k
PMINk
PMAXk
PIMAXk
PDMAXk
7
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
Variables
pt,k
xt,k
st,k
et,k
Una vez definidos los conjuntos, parmetros y variables del problema, ya se puede proceder a la especificacin del modelos matemtico
que nos dar la solucin ptima del problema. Dicho modelo estar compuesto por una funcin objetivo ms un conjunto de restricciones.
Funcin objetivo:
(1)a
CPF
min z
t 1 k 1
CPV
t 1 k 1
CS
t 1 k 1
CE
t 1 k 1
x t ,k
pt ,k
st ,k
et ,k
8
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
(2)a
PMIN k xt ,k pt ,k PMAX k xt ,k
; t, k
(3a )
(3b)
pt ,k pt 1,k PIMAX k
p1,k P0k PIMAX k
; t, k : t 1
; k
Anlogamente, ninguna central puede bajar su produccin por encima de un mximo, que se denomina rampa mxima de bajada de
carga. Esta restriccin se expresa mediante la ecuacin (4a). La ecuacin (4b) es la particularizacin de la (4a) para el primer periodo.
(4a )
(4b)
pt 1,k pt ,k PDMAX k ; t, k : t 1
P0k p1,k PDMAX k ; k
Cualquier central que est funcionando puede pararse pero no arrancarse, y anlogamente cualquier central parada puede arrancarse
pero no pararse. As, la lgica de cambio de estado (de arranque a parada y viceversa) ha de preservarse a lo largo de todo el horizonte
de planificacin. Esta restriccin se expresa mediante la ecuacin (4a) para t>1 y mediante la ecuacin (4b) para el primer periodo.
(5a )
(5b)
st ,k et ,k xt ,k xt 1,k
s1,1 k e11,k x11,k X k
; t, k : t 1
; p
9
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
(6)a
p
k 1
t ,k
Dk
; t
Finalmente, por razones de seguridad, la potencia total disponible en centrales en funcionamiento debe ser mayor que la demanda en
una determinada cantidad de reserva
reserva.
(7)a
PMAX
k 1
xt ,k Dk Rk
; t
Ejemplo: Supngase que se desea planificar la produccin de electricidad en K=3 centrales trmicas a lo largo de un horizonte de
planificacin de T=5 horas. Las demandas en esas horas es D=[150, 500, 400, 350, 200]. Adems, la reserva en dichas horas es
R=[15, 50, 40, 50, 30]. Se considera adems que todas las centrales estn paradas en el periodo previo al comienzo del horizonte de
planificacin, X0=[0, 0, 0]. Adems se dispone de los costes de arranque, parada, produccin fija y variable, as como de los lmites en la
capacidad de produccin de cada central y de los lmites mximos de incremento y decremento en la produccin por periodo de cada
central. Estos datos se recogen en la siguiente tabla.
Central
Parmetro
No 1
No 2
No 3
0.100
0.125
0.150
Coste de arranque
20
18
Coste de parada
05
0.5
03
0.3
01
0.1
Produccin mnima
50
80
40
Produccin mxima
350
200
140
200
100
100
300
150
100
10
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
// Conjuntos
modelo.mod
int NT = ...;
int NK = ...;
setof(int) T = {t | t in 1..NT};
setof(int) K = {k | k in 1..NK};
// Parmetros
float D[T]
float R[T]
int
X0[K]
float P0[K]
float CPF[K]
float CPV[K]
float CS[K]
float CE[K]
float PMAX[K]
float PMIN[K]
float PIMAX[K]
float PDMAX[K]
// Variables
dvar boolean
dvar boolean
dvar boolean
dvar float+
d a float+
dvar
dvar float+
dvar float+
dvar float+
=
=
=
=
=
=
=
=
=
=
=
=
...;
...;
;
...;
...;
...;
...;
...;
...;
...;
...;
...;
...;
// Restricciones
constraint C2a;
constraint C2b;
constraint C3a;
constraint C3b;
constraint C4a;
constraint C4b;
constraint C5a;
constraint C5b;
constraint C6;
constraint C7;
modelo.mod (continuacin 1)
x[T,K];
s[T,K];
e[T,K];
p[T,K];
obj1
obj1;
obj2;
obj3;
obj4;
11
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
modelo.mod (continuacin 2)
// Restricciones
subject to {
// 1. Funcin objetivo
obj1==sum(t in T, k
obj2==sum(t in T, k
obj3==sum(t in T, k
obj4==sum(t in T, k
in
in
in
in
K)
K)
K)
K)
CPF[k]*x[t,k];
CPV[k]*p[t,k];
CS[k]*s[t,k];
CE[k]*e[t,k];
// 2. Lmites en la produccin
C2a = forall(t in T, k in K) p[t,k]>=PMIN[k]*x[t,k];
C2b = forall(t in T, k in K) p[t,k]<=PMAX[k]*x[t,k];
// 3. Mximo incremento en la produccin por periodo
C3
C3a
= forall(t
f
ll(t in
i T:
T t>1
t>1, k in
i K) p[t,k]-p[t-1,k]<=PIMAX[k];
[t k] [t 1 k]< PIMAX[k]
C3b = forall(
k in K) p[1,k]-P0[k]
<=PIMAX[k];
// 4. Mnimo incremento en la produccin por periodo
C4a = forall(t in T: t>1, k in K) p[t-1,k]-p[t,k]<=PDMAX[k];
C4b = forall(
k in K) P0[k]
-p[1,k]<=PDMAX[k];
// 5. Lgica del cambio de estado
C5a = forall(t in T: t>1, k in K) s[t,k]-e[t,k]==x[t,k]-x[t-1,k];
C5b = forall(
k in K) s[1,k]-e[1,k]==x[1,k]-X0[k];
// 6
6. Demanda
C6 = forall(t in T) sum(k in K) p[t,k]==D[t];
// 7. Reserva
C7 = forall(t in T) sum(k in K) PMAX[k]*x[t,k]>=D[t]+R[t];
}
12
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
d
de l
los parmetros
t
[ 150
, 500
,
[ 15
, 50
,
[
0
,
0
,
[
0
,
0
,
[
5
,
7
,
[
0.100,
0.125,
[ 20
, 18
,
[
0.5 ,
0.3 ,
[ 50
, 80
,
[ 350
, 200
,
[ 200
, 100
,
[ 300
, 150
,
400
40
0
0
6
0.150
5
1.0
40
140
100
100
Solucin
datos.dat
, 350 , 200 ];
, 50 , 30 ];
];
];
];
];
];
];
];
];
];
];
0
1
0
0
0
0]
1]
1]
1]
0]];
p = [[
[[150
0 0]
]
[350 100 50]
[350
0 50]
[310
0 40]
[200
0 0]];
s = [[1
[0
[0
[0
[0
0
1
0
0
0
0]
1]
0]
0]
0]];
e = [[0
[0
[0
[0
[0
0
0
1
0
0
0]
0]
0]
0]
1]];
13
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
(8')a
f 0
t ,k , f
1 ; t, k
Por otro lado, para calcular el coste asociado al cambio de estado de cada central en periodos diferentes, se puede definir una variable de
cambio de estado o reconfiguracin de la central, crt,k,f,f, indexada en el periodo t, la central k, y los estados f y f en los que se pueda
encontrar dicha central en los periodos t y t-1 respectivamente.
As, la nueva definicin de conjuntos y variables es la siguiente:
Conjuntos
T
Variables
xt,k ,f
cr t,k ,f ,f
14
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
(5a ')
(5b ')
(1')a
min
i z
CPV
t 1 k 1
; t, k, f , f ' : t 1
pt ,k
K F 1 F 1
cr
t 1 k 1 f 0 f ' 0
t ,k , f , f '
Ntese como se han agrupado los costes de procesamiento fijo (f=1 0 y ff=1)
=1), de arranque (f=0 y ff=1)
=1), y de parada (f=1 y ff=0)
=0), en el
coste de reconfiguracin CR. Esta equivalencia se muestra en la ecuacin siguiente, y debe tenerse en cuenta a la hora de introducir los
datos del problema. Adems, ahora el estado inicial de las centrales queda definido mediante el parmetro X0k,f en lugar de X0k.
CRk ,0,0 0
CRk ,0,1 CSk CPFk
CRk ,1,0 CEk
CRk ,1,1 CPFk
(2')a
(7')a
PMIN k xt ,k ,1 pt ,k PMAX k xt ,k ,1 ; t, k
K
PMAX
k 1
xt ,k ,1 Dk Rk
; t
15
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
La planificacin se llevar a cabo a lo largo de un horizonte de planificacin discreto compuesto por T periodos.
En cada periodo una planta puede estar parada o produciendo un nico derivado.
La cantidad a producir en cada periodo esta limitada tanto inferior como superiormente para cada planta y producto.
Las cantidades de los diferentes derivados producidos en cada periodo pueden ser directamente destinadas a satisfacer la demanda
del periodo correspondiente o almacenadas en tanques para satisfacer la demanda en periodos futuros.
La capacidad de dichos tanques est limitada, existiendo adems un lmite inferior de reserva que asegure un stock mnimo para
satisfacer algn imprevisto en la demanda.
Existe la posibilidad de retrasar la entrega de una cierta cantidad de la demanda de cada periodo a periodos futuros. Dicho retraso
puede ir acumulndose en los periodos sucesivos si en ellos la demanda sigue sin entregarse a tiempo, pero dicho retraso debe ser
nulo para el ltimo periodo del horizonte de planificacin. Las entregas fuera de plazo tienen un coste asociado.
El coste de produccin es diferente para cada producto y para cada periodo de tiempo. Es decir, el procesado de algunos derivados
es ms costoso que el de otros y pueden existir ventanas de tiempo en las que el funcionamiento de las plantas sea ms econmico.
Existen costes asociados a la parada y puesta en marcha de cada planta. Dichos costes dependen de la planta y del producto que se
est produciendo antes de la parada o del producto que se vaya a producir tras el arranque.
Cada planta puede cambiar el tipo de derivado a producir de un periodo a otro. El coste de tal reconfiguracin depende de la planta y
del par de productos involucrados en la misma.
16
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
El coste asociado a la entrega de la demanda en un periodo posterior al especificado depende del tipo de producto demandado.
Adems, coste por unidad no entregada a tiempo no es constante, sino que depende de si el retraso en la entrega de la demanda (rd)
supera una determinada cantidad (RD) o no segn se muestra en la figura. As, si en el periodo t existe una cantidad de producto p,
rd, que aun no ha sido entregada para satisfacer la demanda en los periodos anteriores, el coste asociado se puede escribir como:
C t ( d)
Coste(rd)
si rd RD
CIRD rd
Coste(rd )
CIRD RD CSRD rd RD si rd RD
CSRD
CIRD
RD
rd
Finalmente, existe un beneficio por la venta del stock acumulado al final del horizonte de planificacin, siendo el precio de venta
diferente para cada producto
As, el objetivo del problema es encontrar la secuencia y cantidad ptima de derivados a producir en cada una de las plantas de la
refinera minimizando:
Y maximizando:
OBJ5: Los ingresos por la venta de los productos en existencias al final del ltimo perodo.
Como en los ejemplos anteriores de deben fijar claramente los conjuntos, parmetros y variables del problema para posteriormente
establecer la funcin objetivo y restricciones del modelo matemtico con el que obtener la solucin al problema.
17
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
N
Nmero
d
de productos
d t
a producir
d i iindexado
d
d en p=1,...,P
1 P
Parmetros
X0k,p
Denota si el producto p se est produciendo en la planta k al inicio del horizonte de planificacin. Si es cero para todo p, la
planta
l t k est
t parada.
d
A0p
AMIN,p
AMAX,p
CAp
CVp
Dt,p
CPt,p
CMINk,p
CMAXk,p
CSk,p
CEk,p
CRk,p,p
Coste asociado a la reconfiguracin de la planta k como consecuencia del procesado de productos diferentes p y p en
periodos consecutivos
CIRDp
CSRDp
RDp
Mxima cantidad de producto p cuya entrega puede retrasarse a periodos posteriores antes de incrementar su coste CDsp
18
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
P1 Gasolina
P2 Diesel
P3 LPG
A0
10
40
20
AMIN
10
10
10
AMAX
200
200
200
CA
CV
10
15
Parmetro
CR (Planta No 1)
P1 Gasolina
P2 Diesel
P3 LPG
50
30
P2 Diesel
50
20
P3 LPG
30
20
P1 Gasolina
Parmetro
Parmetro
Periodo
P2 Diesel
P3 LPG
90 / 10
80 / 20
50 / 15
70 / 10
40 / 20
40 / 15
30 / 15
80 / 30
40 / 20
30 / 15
30 / 30
70 / 20
Planta
CMIN / CMAX
P1 Gasolina
P2 Diesel
P3 LPG
No 1
5 / 30
5 / 40
5 / 70
No 2
5 / 30
5 / 40
5 / 70
No 3
5 / 40
5 / 50
5 / 40
No 4
5 / 40
5 / 50
5 / 40
Parmetro
Planta
CS / CE
P1 Gasolina
P2 Diesel
P3 LPG
50
30
P2 Diesel
50
20
P3 LPG
30
20
P1 Gasolina
Parmetro
CR (Planta No 3)
P1 Gasolina
P2 Diesel
P3 LPG
50
30
P2 Diesel
50
20
P3 LPG
30
20
P1 Gasolina
Parmetro
CR (Planta No 2)
Parmetro
P1 Gasolina
CR (Planta No 4)
P1 Gasolina
P2 Diesel
P3 LPG
50
30
P2 Diesel
50
20
P3 LPG
30
20
P1 Gasolina
P2 Diesel
P3 LPG
30
10
P1 Gasolina
P2 Diesel
P3 LPG
No 1
4 / 0.4
3 / 0.3
5 / 0.5
Parmetro
No 2
4 / 0.4
3 / 0.3
5 / 0.5
CIRD
20
No 3
4 / 0.4
3 / 0.3
5 / 0.5
CSRD
50
80
40
No 4
4 / 0.4
3 / 0.3
5 / 0.5
RD
20
30
20
19
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL
Final
i
solution
i
with
i
objective
j
i
11516:
6
obj1 = 10750;
obj2 = 360;
obj3 = 106;
Solucin
obj4 = 600;
obj5
j = 300;
Leyenda:
Producto 1: Gasolina
Producto 2: Diesel
Producto 3: LPG
20
A. HERRN, INTRODUCCIN A LA PROGRAMACIN MATEMTICA, MSTER UNIVERSITARIO EN INGENIERA DE SISTEMAS Y DE CONTROL