You are on page 1of 17

Ejercicios de Programacion Entera

Investigacion Operativa
Ingeniera Informatica, UC3M
Curso 08/09
1. En una ciudad se intenta disminuir la contaminacion reduciendo la circulacion interurbana. Un primer
estudio busca determinar el mnimo numero de autobuses que satisfagan la necesidades de transporte.
Despues de recoger la informacion se observa que este numero vara segun la hora del da, pero se
puede considerar constante en intervalos sucesivos de cuatro horas:
12:00 p.m.
4:00 p.m.
8:00 p.m.

12:00 a.m.
4:00 a.m. 4 autobuses
4:00 a.m.
8:00 a.m. 8 autobuses
8:00 a.m. 12:00 p.m. 10 autobuses

4:00 p.m.
8:00 p.m.
12:00 a.m.

7 autobuses
12 autobuses
4 autobuses

Los turnos de autobuses funcionan durante ocho horas seguidas y pueden comenzar al principio de
cualquiera de los seis periodos descritos anteriormente. Ademas, si en el turno que comienza a las
8:00 p.m. hay mas de 4 autobuses, en el siguiente ha de haber tambien mas de 4. Plantear un problema
de programacion lineal entera para determinar el mnimo numero de autobuses diario que satisface
las necesidades anteriores.
Solucion.
Las decisiones que se deben tomar son cuantos autobuses empiezan a trabajar en cada uno de los
turnos. Hay 6 turnos, que empiezan al principio de cada uno de los 6 periodos de 4 horas descritos
anteriormente. Luego, las variables de decision que tenemos que considerar son
xi = numero de autobuses que empiezan a trabajar en el turno i,

i = 1, . . . , 6,

que son variables enteras.


Como los turnos son de 8 horas consecutivas, un autobus que empiece a trabajar en el periodo i, i =
1, . . . , 5, esta circulando en el periodo siguiente, i + 1. Los que entran a trabajar en el u ltimo periodo,
el 6, estan circulando tambien en el primero de la manana, el 1. As, para cubrir las necesidades
mnimas en cada uno de los periodos se debe verificar:
x6 + x1 4
x1 + x2 8
x2 + x3 10
x3 + x4 7
x4 + x5 12
x5 + x6 4
1

Queremos minimizar el numero de autobuses diario, que viene dado por x1 + x2 + x3 + x4 + x5 + x6 .


Por u ltimo, tenemos que modelar la condicion: si en el turno que comienza a las 8:00 p.m. hay mas
de 4 autobuses, en el siguiente ha de haber tambien mas de 4.
Necesitamos una variable binaria que nos indique si en el turno que comienza a las 8:00 p.m. hay
mas de 4 autobuses (5 o mas) o solo hay 4 (sabemos que, como poco, hay 4). Para ello podemos
considerar la restriccion:
x5 + x6 4(1 ) + 20
donde x5 + x6 es el numero de autobuses que estan circulando en el periodo que empieza a las 8:00
p.m. La cota superior de 20 se obtiene como 12 + 4 + 4. Como mucho, en los 2 u ltimos turnos
empiezan a trabajar los autobuses necesarios para cubrir esos 2 turnos mas el siguiente.
Si x5 + x6 > 4 = 1. Ahora, es suficiente con imponer que si = 1 x6 + x1 > 4. Para ello,
se incluye la restriccion
x6 + x1 4 +
y podemos eliminar la condicion x6 + x1 4
Otra opcion, que nos permite no incluir la variable binaria es, teniendo en cuenta que 4 x5 + x6
20, anadir la restriccion:
x5 + x6 4 16(x6 + x1 4)
Tambien podamos haber interpretado que la condicion solo haca referencia a los autobuses que
empezaban en ese periodo, entonces tendramos que considerar
x6 4(1 ) + 8

x1 5

En este caso, no podemos eliminar la condicion x6 + x1 4


El problema quedara finalmente como:
Modelo 2

Modelo 1

Mn x1 + x2 + x3 + x4 + x5 + x6
s.a. x6 + x1 4
x1 + x2 8
x2 + x3 10
x3 + x4 7
x4 + x5 12
x5 + x6 4
x6 + x1 4
x6 4(1 ) + 8
x1 5
{0, 1}, xi ZZ+ , i = 1, . . . , 6

Mn x1 + x2 + x3 + x4 + x5 + x6
s.a. x6 + x1 4
x1 + x2 8
x2 + x3 10
x3 + x4 7
x4 + x5 12
x5 + x6 4
x6 + x 1 4 +
x5 + x6 4(1 ) + 20
{0, 1}, xi ZZ+ , i = 1, . . . , 6

2. Una empresa fabrica tres productos 1, 2 y 3, que deben procesarse en dos tipos de maquinaria denominadas A y B. En la siguiente tabla se recogen los tiempos de procesamiento (por tonelada procesada)
con cada maquina, los beneficios (por tonelada procesada) en euros, y la disponibilidad de cada tipo
de maquinaria (en horas por semana):
2

Tipo de
Productos
Disponibilidad
maquinaria
1
2
3
(horas)
A
2
5
4
70
B
3
4
6
86
Benef./ton. (euros) 800 700 950
La empresa considera aumentar la disponibilidad de tiempo de procesamiento de la maquinaria. Para
ello, puede llevar a cabo alguna de las posibilidades indicadas a continuacion
Tipo de maquinaria
A
Incremento de disp. (horas)
10
15
Coste inversion (miles de euros) 1600 1700

B
8
12
1700 1750

A lo sumo, se puede realizar un tipo de incremento para cada maquina. Gracias a un estudio de
mercado se conocen los lmites de demanda de los productos, que son
Demanda (ton.)
Producto mnima maxima
1
6
17
2
3
8
3
7
20
Ademas, la inversion total no puede exceder de 3400000 euros. Se pide:
(a) Formular el problema que se debe plantear la direccion de la empresa para obtener el plan de
procesamiento e inversion de mayor beneficio.
(b) Si la empresa desease aumentar la disponibilidad de un solo tipo de maquinaria, como se modifica el modelo anterior reflejando tal situacion?
(c) Si no se quiere anadir disponibilidad de B a menos que se anada de A, como se representa esta
nueva condicion?
(d) La empresa desea ampliar la disponibilidad con la maquinaria B si, y solo si, se incrementa
tambien la A. Como debe modificarse la condicion considerada en el apartado anterior?
Solucion.
Las variables de decision son:
x1 , x2 y x3 : cantidad de cada producto que se fabrica.
Variables binarias que nos indican si se realiza cada uno de los 4 posibles incrementos o no:
A1 , A2 , B1 y B2 .

1, si se realiza el incremento de 10 h. en la maquina A,


A1 =
0, si no se realiza
A2 , B1 y B2 se definen analogamente para los incrementos de 15 h. en la maquina A y 8 y 12
h. en la maquina B, respectivamente.
3

La funcion objetivo a maximizar: beneficios de venta - coste incremento de capacidad de las maquinas
800x1 + 700x2 + 950x3 1600A1 1700A2 1700B1 1750B2
Las restricciones son:
Disponibilidad de maquinaria:
2x1 + 5x2 + 4x3 70 + 10A1 + 15A2
3x1 + 4x2 + 6x3 86 + 8B1 + 12B2
A lo sumo, se puede realizar un tipo de incremento para cada maquina:
A1 + A2 1

(1)

B1 + B2 1

(2)

Lmites de la demanda de cada producto:


6 x1 17,

3 x2 8,

7 x3 20

La inversion total no puede exceder de 3400000 euros:


1600A1 + 1700A2 + 1700B1 + 1750B2 3400
x1 , x2 , x3 0 y A1 , A2 , B1 y B2 variables binarias.
(b) Si la empresa desease aumentar la disponibilidad de un solo tipo de maquinaria, como se modifica el modelo anterior reflejando tal situacion?
Si se siguen manteniendo las restricciones (1) y (2), entonces es suficiente con anadir:
A1 + A2 + B1 + B2 1
Si no se mantienen, es decir, solo se puede invertir en una maquina pero las ampliaciones se
pueden acumular, entonces hay que anadir 2 nuevas variables binarias que indiquen si se invierte
o no en cada maquina:

1, si se realiza algun incremento en la maquina A,


A =
0, si no se realiza
Analogamente se define B . Estas 2 variables toman su valor en funcion del valor de las variables
binarias previamente definidas:
A1 + A2 2A

(3)

B1 + B2 2B

(4)

Estas 2 restricciones sustituiran a las anteriores (1) y (2). Ademas, habra que anadir para modelizar la condicion que se nos pide ahora:
A + B 1
4

(b) Si no se quiere anadir disponibilidad de B a menos que se anada de A, como se representa esta
nueva condicion?
Como antes, si no se elimina la condicion de, a lo sumo 1 inversion en cada maquina, habra que
anadir la restriccion:
B1 + B2 A1 + A2
Si se elimina la condicion, entonces se definen A y B como antes y se anade la restriccion:
B A
(b) La empresa desea ampliar la disponibilidad con la maquinaria B si, y solo si, se incrementa
tambien la A. Como debe modificarse la condicion considerada en el apartado anterior?
Se debe cambiar la desigualdad por una igualdad.
3. Dado el problema entero
mnx
x1 2x2 + 2x3
s.a x1 + x2 2x3 4
2x1 x2 x3 3
x 0 enteras,
a) Comprueba que la solucion del problema relajado es:

T

7/3 5/3 0

b) Indica el siguiente subproblema que elegiras para resolver por el metodo de branch and bound.
c) Calcula la solucion de dicho subproblema y comenta que subproblemas introduciras para continuar el proceso de solucion.
Solucion.
a) El problema relajado en forma estandar es
mnx,s
x1 2x2 + 2x3
s.a
x1 + x2 2x3 + s1 = 4
2x1 x2 x3 s2 = 3
x, s 0,
y en el vertice indicado tenemos que
T

B = cB

1 2
1 1

!
=

1
2

!
=

2 1
2

= cN N T = 0 1
0
0
0 1

1
1
1
1

1

= 1 0.
1

Por tanto, el vertice indicado es solucion.


b) Con los valores que toman las variables basicas, los nuevos subproblemas se pueden introducir
bien sobre x1 (x1 2 y x1 3) o bien sobre x2 (x2 1 y x2 2). Cualquiera de ellos se puede
seleccionar para continuar el proceso.
5

Con la informacion proporcionada por la solucion o ptima del problema relajado, tenemos las
siguientes cotas para el problema entero:
1 zopt
Siguiendo las reglas dadas en la practica, como hay empate (las 2 estan igual de cerca del entero
mas proximo), usamos el orden lexicografico y ramificamos por x1 .
c) Construimos entonces los subproblemas (ya en forma estandar)
mnx,s
x1 2x2 + 2x3
s.a
x1 + x2 2x3 + s1 = 4
2x1 x2 x3 s2 = 3 (P1 )
x 1 + s3 = 2
x, s 0,

mnx,s
x1 2x2 + 2x3
s.a
x1 + x2 2x3 + s1 = 4
2x1 x2 x3 s2 = 3 (P2 ).
x 1 s4 = 3
x, s 0,

Resolvemos P1 aplicando algun procedimiento adecuado. El mas eficiente (que no hemos visto
en clase) es el metodo dual del Simplex. A continuacion se obtiene la solucion por el metodo
primal del Simplex (el estudiado en clase). Partimos de la soluco n basica:
x1 = 2, x2 = 1, x3 = 0, s1 = 1, s2 = 0, s3 = 0.
Para comprobar si es o ptima, calculamos los costes reducidos de las variables no basicas. Los
multiplicadores son


0
1
1 2 1
1


T
B = cB 1 1 0 2 = 2 = 2
3
0
1 0 0
3
y los costes reducidos


4
0
2 1 0
2
(x3 )

N = (s2 ) = 0 0 1 0 2 = 2
3
0
0 1
3
(s3 )
0

Todos los costes reducidos son positivos, entonces el vertice actual es la solucion o ptima del
subproblema P1 . Como ademas tiene todas sus coordenadas x1 , x2 y x3 enteras, se trata de
una solucion factible del problema entero. Podamos la rama P1 , guardamos la solucion actual
(2, 1, 0)t como la mejor solucion entera encontrada hasta el momento y actualizamos la cota
superior (mejor conocido):
1 zopt 0
El u nico nodo que queda pendiente es el correspondiente al subproblema P2 :

Si en el apartado b) hubieramos optado por ramificar por x2 , entonces tendramos que construir los
subproblemas (ya en forma estandar)
mnx,s
x1 2x2 + 2x3
s.a
x1 + x2 2x3 + s1 = 4
2x1 x2 x3 s2 = 3 (P1 )
x2 + s 3 = 1
x, s 0,

mnx,s
x1 2x2 + 2x3
s.a
x1 + x2 2x3 + s1 = 4
2x1 x2 x3 s2 = 3 (P2 ).
x2 s 4 = 2
x, s 0,

Si resolvemos, por ejemplo, P2 obtenemos que la solucion o ptima de dicho subproblema es:
x1 = 8/3, x2 = 2, x3 = 1/3, s1 = 0, s2 = 0, s4 = 0.
Esta solucion no es entera por lo que sera necesario volver a ramificar, en este caso en x1 o en x2 .
Por lo tanto, si hemos seguido este camino todava nos quedaran 3 nodos pendientes por explorar.
Por ejemplo, si optamos ramificar el subproblema P2 por x1 , tendramos:

Para cada uno de los nodos tendramos las siguientes cotas:


cota inferior
nodo 1
-1
nodo 2
0
nodo 3
0

cota superior
+
+
+

La cota inferior de los nodos 2 y 3 se obtiene de ajustar la cota inferior de 32 teniendo en cuenta que
los coeficientes de la funcion objetivo son enteros.
4. Resuelve, aplicando el metodo de branch and bound, el siguiente problema entero:
max
s.a

4x1 + 5x2 + x3
3x1 + 2x2 10
x1 + 4x2 11
3x1 + 3x2 + x3 13
x 0, enteras.

Solucion. Empezamos escribiendo el problema en forma estandar.


max
s.a

4x1 + 5x2 + x3
3x1 + 2x2 + s1 = 10
x1 + 4x2 + s2 = 11
3x1 + 3x2 + x3 + s3 = 13
x 0 enteras, s 0.

Resolvemos el problema relajado, y obtenemos como solucion,


x1 = 1.8, x2 = 2.3, x3 = 0.7, con z = 19.4
Por tanto, obtenemos las siguientes cotas para el problema entero:
zopt 19.4
La cota superior de 19.4 se puede ajustar a 19 (mejor cota), ya que todos los coeficientes son enteros.
Siguiendo la regla de las practicas ramificamos por x1 (es la que toma un valor mas cercano al entero)
introducimos las restricciones x1 1 y x1 2. Los subproblemas resultantes son:
max
s.a

4x1 + 5x2 + x3
3x1 + 2x2 10
x1 + 4x2 11
(P1 )
3x1 + 3x2 + x3 13
x1 1
x0

max
s.a

4x1 + 5x2 + x3
3x1 + 2x2 10
x1 + 4x2 11
(P2 )
3x1 + 3x2 + x3 13
x1 2
x0

Comenzamos resolviendo P1 , que en forma estandar es:


max
s.a

4x1 + 5x2 + x3
3x1 + 2x2 + s1 = 10
x1 + 4x2 + s2 = 11
3x1 + 3x2 + x3 + s3 = 13
x1 + s 4 = 1
x 0, s 0

Empezamos por la SBF asociada a la base (variables basicas: {x1 , x2 , x3 , s1 })


3 2 0 1
1
1 4 0 0
5


B=
xB = B 1 b = 25
,
3 3 1 0
2
1 0 0 0
2
Los costes reducidos de las variables no basicas (s2 , s3 , s4 ) vienen dados por:



3 1 3 1
1
4
0
2 4 3 0 5
1

2

B T = cB
= = 2
0 0 1 0 3 1
1
1 0 0 0


(s2 )
0
0


N = (s3 ) = 0 0
(s4 )
0
0

1
0
2

0

1 0 0 1
12

0 1 0 2 = 1
1
0 0 1
12
1

Todos los costes reducidos son negativos y se trata de un problema de maximizacion, entonces el
vertice actual es la solucion o ptima del subproblema P1 . Como la solucion es fraccionaria, tenemos
que seguir ramificando. Hay un empate, entonces ramificamos por la de menor ndice, que en este
caso es x2 . El valor o ptimo del subproblema P1 es 19, entonces todos los nodos que cuelguen de este
nodo tienen las siguientes cotas:
z 19
Obtenemos los subproblemas:
max
s.a

max
s.a

4x1 + 5x2 + x3
3x1 + 2x2 10
x1 + 4x2 11
3x1 + 3x2 + x3 13 (P3 )
x1 1
x2 2
x0

4x1 + 5x2 + x3
3x1 + 2x2 10
x1 + 4x2 11
3x1 + 3x2 + x3 13 (P4 )
x1 1
x2 3
x0

Escogemos de los dos u ltimos subproblemas (seguimos una estrategia de busqueda en profundidad)
el subproblema P3 . En forma estandar:
max 4x1 + 5x2 + x3
s.a

1
0

2
4
3
0
1

0
0
1
0
0

1
0
0
0
0

0
1
0
0
0

0
0
1
0
0

0
0
0
1
0


x1

x2

10
0
x3

0 11
s1
13
0
=

s2
0 1
s3
2
1

s4
s5

x1 , x2 , x3 , s1 , . . . , s5 0
Empezamos por la SBF asociada a la base (variables basicas: {x1 , x2 , x3 , s1 , s2 })


3 2 0 1 0
1


1 4 0 0 1
2

B = 3 3 1 0 0 ,
xB = B b =
4


1 0 0 0 0
3
0 1 0 0 0
2

Los costes reducidos de las variables no basicas (s2 , s3 , s4 ) vienen dados por:



3 1 3 1 0
1
4
0



2 4 3 0 1 2 5
0


3 = 1 = 1
B T = cB
0
0
1
0
0



1 0 0 0 0 4 0
1
0 1 0 0 0
5
0
2
0



(s3 )
0
0 0 1 0 0 0
1

N = (s4 ) = 0 0 0 0 1 0
1 = 1

(s5 )
0
0 0 0 0 1 1
2
2
Todos los costes reducidos son negativos y se trata de un problema de maximizacion, entonces el
vertice actual es la solucion o ptima del subproblema P3 . Como ademas tiene todas sus coordenadas
x1 , x2 y x3 enteras, se trata de una solucion factible del problema entero, con valor objetivo z = 18.
Podamos la rama P3 , guardamos la solucion actual (1, 2, 4)t como la mejor solucion entera encontrada hasta el momento y actualizamos la cota inferior del problema entero (mejor conocido)
18 zopt 19
Pasamos a resolver el subproblema P4 , correspondiente al nodo hermano del subproblema P3 . En
forma estandar:
max
4x1 + 5x2 + x3
s.a
3x1 + 2x2 + s1 = 10
x1 + 4x2 + s2 = 11
3x1 + 3x2 + x3 + s3 = 13 (P4 )
x1 + s 4 = 1
x 2 s5 = 3
x 0, s 0
Como x2 3, entonces en la segunda restriccion debe ser
x1 + 4x2 0 + 4 3 = 12  11.
Luego, el subproblema P4 es no factible y se poda esa rama. Nota: si no nos damos cuenta del razonamiento anterior, despues de probar algunas bases y de que todas nos den no factibles, se resuleve el
problema por el metodo de las dos fases. El problema de la fase 1 es:
mn
s.a

z1
3x1 + 2x2 + s1 = 10
x1 + 4x2 + s2 = 11
3x1 + 3x2 + x3 + s3 = 13 (P4 )
x1 + s 4 = 1
x2 s5 + z1 = 3
x 0, s 0, z1 0
10

Al resolverlo se obtiene como solucion o ptima (x, s, z1 )t = (0, 2.75, 0, 4.5, 0, 4.75, 1, 0, 0.25) con
valor objetivo o ptimo z = 0.25 > 0.
El u nico nodo que queda pendiente es el correspondiente al subproblema P2 , que en forma estandar
es:
max
4x1 + 5x2 + x3
s.a
3x1 + 2x2 + s1 = 10
x1 + 4x2 + s2 = 11
(P2 )
3x1 + 3x2 + x3 + s3 = 13
x1 s 4 = 2
x 0, s 0
Empezamos por la SBF asociada a la base (variables basicas: {x1 , x2 , x3 , s2 })

3
1

B=
3
1

2
4
3
0

0
0
1
0

0
1

,
0
0


2
2

xB = B 1 b =
1
1

Los costes reducidos de las variables no basicas (s2 , s3 , s4 ) vienen dados por:


1
4
1
3 1 3 1
0
2 4 3 0 5

2

B T = cB
= =
1
0 0 1 0 3 1
2
0
4
0 1 0 0

1
1
1 0 0 0
0
(s1 )

N = (s3 ) = 0 0 0 1 0 0 = 1
2
12
0 0 0 1
0
(s4 )

Todos los costes reducidos son negativos y se trata de un problema de maximizacion, entonces el
vertice actual es la solucion o ptima del subproblema P2 . Como ademas tiene todas sus coordenadas
x1 , x2 y x3 enteras, se trata de una solucion factible del problema entero, con valor objetivo z = 19.
Podamos la rama P2 y podemos dar por finalizada la busqueda, ya que la solucion factible entera
obtenida alcanza la mejor cota del problema. Si no nos damos cuenta de esto, como la solucion que
acabamos de encontrar mejora a la mejor por el momento que tenamos guardada (que tena un valor
objetivo de 18), tambien podemos garantizar que el vertice actual es el o ptimo del problema entero.
En este caso, si hubieramos empezado resolviendo el problema P2 , no habramos tenido que resolver
ningun otro subproblema, ya que habramos obtenido una solucion entera cuyo valor o ptimo lanza la
mejor cota.
El a rbol de busqueda es:

11

5. Resuelve por el metodo de Branch and Bound el siguiente problema de programacion entera:
minimizar
sujeto a

x 1 x2
x1 0
2x1 2x2 1
2x2 9
x1 , x2 {0, 1, 2, . . .}

Solucion. El problema relajado P0 es el siguiente:


minimizar
sujeto a

x1 x2
x1 0
2x1 2x2 1
2x2 9,

y su solucion es x = (5, 4.5) con z = 9.5. Como la solucion no satisface las condiciones de
integralidad hay que ramificar por x2 y se crean dos problemas P1 y P2 , anadiendo las restricciones
x2 4 y x2 5, respectivamente. Cotas para la funcion objetivo: 9.5 z . La mejor cota se
puede ajustar a 9.
Problema P1 :
minimizar
sujeto a

x1 x2
x1 0
2x1 2x2 1
2x2 9
x2 4,

solucion x = (4.5, 4) con z = 8.5. Como no se satisfacen las condiciones de integralidad y el valor
de la f.o. esta entre las cotas superior e inferior hay que ramificar (por x1 ). Cotas para el valor de
todas las souciones con x2 4: 8.5 z , que se puede ajustar a 8 z . La mejor
cota para el problema original sigue siendo 9.
12

Problema P3 :
minimizar
sujeto a

x1 x2
x1 0
2x1 2x2 1
2x2 9
x2 4
x1 4.

Problema P4 :
minimizar
sujeto a

x1 x2
x1 0
2x1 2x2 1
2x2 9
x2 4
x1 5

Siguiendo una estrategia de busqueda en profundidad deberamos de seguir resolviendo P3 . Vamos a


seguir una estrategia de busqueda en anchura y pasamos a reolver el problea P2 .
El problema P2 :
minimizar
sujeto a

x1 x2
x1 0
2x1 2x2 1
2x2 9
x2 5,

es no factible y por tanto la rama se poda. Pasamos, entonces, a resolver el problema P3 , cuya solucion
es x = (4, 4) con z = 8. Como la solucion s satisface las condiciones de integralidad y el valor de
la f.o. esta entre las cotas, entonces la rama se poda y se actualiza la cota superior para el problema
original, ahora mejor conocido= 8. Las nuevas cotas para el problema original son:
9 z 8
Se guarda la solucion x = (4, 4) como mejor solucion encontrada (incumbente).
Pasamos a resolver el problema P4 , que resulta ser no factible, por lo que la rama se poda.
Ya no tenemos mas problemas que procesar por lo que el procedimiento termina escogiendo el mejor
candidato, esto es x = (4, 4) con z = 8
6. En una central hidroelectrica debe decidirse que turbinas se pondran en marcha durante el da de
manera que se satisfaga la demanda (estimada) de la poblacion a la que se sirve:
13

12 p.m. a 6 a.m.
6 a.m. a 9 a.m.
9 a.m. a 3 p.m.
3 p.m. a 6 p.m.
6 p.m. a 12 p.m.

15.000 MW
30.000 MW
25.000 MW
40.000 MW
27.000 MW

La central dispone de turbinas de 3 tipos distintos. Concretamente, dispone de 12 de tipo 1, 10 de tipo


2 y 5 de tipo 3. Cada turbina tiene que funcionar entre unos niveles mnimo y maximo. Los costes
de funcionamiento dependen del nivel al que la turbina este operando: hay un coste por hora que la
turbina opera a nivel mnimo y un coste extra, tambien por hora, por cada megawatio que la turbina
opera sobre el nivel mnimo. Ademas, la puesta en marcha de una turbina conlleva un coste:

Tipo 1
Tipo 2
Tipo 3

Nivel
mnimo
850 MW
1.250 MW
1.500 MW

Nivel
Coste por hora
maximo
al mnimo
2.000 MW
1.000
1.750 MW
2.600
4.000 MW
3.000

Coste/hora por MW coste puesta


por encima del mn. en marcha
2
2.000
130
1.000
3
500

Ademas, para cumplir con los requisitos de calidad establecidos en el contrato, tiene que haber suficientes generadores funcionando en cualquier periodo del da como para responder a un incremento
de la demanda estimada de hasta un 15 %. El posible incremento debe poder ser atendido ajustando,
siempre dentro de los lmites de operacion, la produccion de las turbinas que estan en funcionamiento.
Al final del ciclo de 24 horas hay una desconexion breve antes de comenzar la aplicacion de la
siguiente planificacion; no obstante, durante el da, una vez que una turbina se ha puesto en marcha
ya no se desconecta hasta el final del ciclo.
a) Que turbinas deben estar funcionando y en que periodos del da deben hacerlo para minimizar el
coste total?
b) Cual es el coste marginal de produccion de electricidad en cada periodo del da?, es decir,
que tarifas se deberan cobrar?
c) Que ahorro se producira si se rebajara el 15 % de reserva de energa que se debe garantizar?, es
decir, cuanto cuesta este nivel de garanta de servicio?
d) Como cambiara el modelo si no se produce la desconexion al final del da? Compara las soluciones obtenidas con los dos modelos
Solucion.
Modelo del apartado a), en el que hay desconexion al final del da y las turbinas no se pueden desconectar de un periodo a otro.
Variables:
nit = numero de turbinas trabajando del tipo i en el periodo t.
xit = produccion de las turbinas del tipo i en el periodo t.
14

Observese que, por ejemplo, x12 850n12 es el numero de MW que globalmente todas las turbinas
de tipo 1 estan produciendo por encima del mnimo durante todo el perido 2. En general,
(
MW que globalmente todas las turbinas de tipo i estan produciendo por encima
xit mi nit =
del mnimo en el periodo t,
donde mi = la produccion mnima de las turbinas de tipo i.
Entonces, la funcion objetivo, que tiene que medir todos los costes derivados de las decisiones
tomadas, contendra los siguientes sumandos para cada uno de los periodos:
Costes de funcionamiento al mnimo:
E1t n1t + E2t n2t + E3t n3t ,
donde Eit = costes de funcionamiento por periodo (coste por hora al mnimo por numero de
horas del periodo).
Costes de funcionamiento por encima del mnimo:
C1t (x1t m1 n1t ) + C2t (x2t m2 n2t ) + C3t (x3t m3 n3t ),
donde Cit = costes de produccion por periodo (coste por hora por MW por encima del mnimo
por numero de horas del periodo).
Costes de puesta en marcha:
Como las turbinas no se pueden apagar, el numero de turbinas puestas en marcha durante el da
se corresponde con el numero de turbinas que estan funcionando en el u ltimo periodo. Luego, es
suficiente con contar el numero de turbinas funcionando en el u ltimo periodo y cargar su coste:
F1 n15 + F2 n25 + F3 n35 ,
donde Fi = costes de puesta en marcha.
Funcion objetivo:
mn

5 X
3
X

Eit nit +

5 X
3
X

t=1 i=1

Cit (xit mi nit ) +

t=1 i=1

3
X

Fi ni5

i=1

Por ejemplo, para el primer periodo los costes de produccion seran (primer y segundo sumando de
la funcion objetivo):
h
i h
i
61000n11 +62600n21 +63000n31 + 2(x11 850n11 )+1.30(x21 1250n21 )+3(x31 1500n31 )
Restricciones:
Demanda de cada periodo de tiempo:
3
X

xit Dt

i=1

15

t = 1, . . . , 5

Lmites de produccion de cada turbina en cada periodo:


mi nit xit Mi nit

i = 1, 2, 3, t = 1, . . . , 5

(mi y Mi son los lmites de capacidad de los generadores de tipo i).


Garanta del 15 % de produccion extra:
3
X

Mi nit 1.15Dt ,

t = 1, . . . , 5

i=1

Numero de generadores funcionando y puestos en marcha: como no se pueden desconectar de


un periodo a otro, se debe verificar
ni(t+1) nit ,

i = 1, 2, 3, t = 1, . . . , 4

(5)

El numero de turbinas puestas en marcha en el periodo t + 1 se puede calcular como


si(t+1) = ni(t+1) nit ,

i = 1, 2, 3, t = 1, . . . , 4

nit son variables enteras acotadas entre 0 y el numero maximo de generadores del tipo i:
0 n1t 12, 0 n2t 10, 0 n3t 5, para todo t = 1, . . . , 5

(6)

Como tenemos las restricciones (5), es suficiente con exigir no negatividad y


n15 12, n25 10, n35 5
En el modelo del apartado b), en el que las turbinas se pueden desconectar de un periodo a otro y
no hay desconexion al final del da tenemos que considerar las variables sit = numero de turbinas
puestas en marcha del tipo i en el periodo t, que son tambien variables enteras acotadas entre 0 y el
numero maximo de generadores del tipo i:
0 s1t 12, 0 s2t 10, 0 s3t 5, para todo t = 1, . . . , 5
Cambia el calculo de los costes de puesta en marcha. En la funcion objetivo hay que reemplazar
el sumando
3
X
Fi ni5
i=1

por
5 X
3
X

Fi sit

t=1 i=1

Cambian las restricciones relativas al numero de generadores funcionando y puestos en marcha:


sit nit nit1 ,

i = 1, 2, 3, t = 1, . . . , 5

(cuando t = 1, t 1 = 5) No se puede dejar la igualdad como en modelo anterior, ya que si


solo se han desconectado turbinas de un periodo a otro nos dara un valor negativo.
Las restricciones de cota (6) se deben de mantener para todos los periodos.
16

Para contestar a las cuestiones b) y c) hay que tener en cuenta que la interpretacion de los multiplicadores como precios sombra no es posible en modelos con variables enteras.
Una alternativa es obtener los multiplicadores de un problema relacionado:
Fijar las variables enteras al valor obtenido en la solucion o ptima y resolver el problema
lineal resultante
As, para contestar a la cuestion b), en la que se peda calcular el coste marginal de produccion de
electricidad en cada periodo del da, lo que debemos hacer es fijar el numero de turbinas de cada tipo
que funcionan en cada periodo al valor obtenido en la solucion o ptima del problema entero y resolver
el problema de programacion lienal que queda. El coste marginal vendra dado por los multiplicadores
de las restricciones de satisfaccion de demanda.
Para contestar al apartado c) no podemos hacer lo mismo porque al fijar el numero de turbinas que
funcionan en cada periodo la restriccion del 15 % de reserva de energa desaparece. En ese caso,
lo que podemos hacer es resolver la relajacion lineal del problema entero original y fijarnos en el
multiplicador de la restriccion de reserva.

17

You might also like