Ejercicios de Programaci´on Entera

Investigaci´on Operativa
Ingenier´ıa Inform´atica, UC3M
Curso 08/09
1. En una ciudad se intenta disminuir la contaminaci´on reduciendo la circulaci´on interurbana. Un primer
estudio busca determinar el m´ınimo n´umero de autobuses que satisfagan la necesidades de transporte.
Despu´es de recoger la informaci´on se observa que este n´umero var´ıa seg´un la hora del d´ıa, 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. Adem´as, si en el turno que comienza a las
8:00 p.m. hay m´as de 4 autobuses, en el siguiente ha de haber tambi´en m´as de 4. Plantear un problema
de programaci´on lineal entera para determinar el m´ınimo n´umero de autobuses diario que satisface
las necesidades anteriores.
Soluci´on.
Las decisiones que se deben tomar son cu´antos 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 decisi´on que tenemos que considerar son
xi = n´umero 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 autob´us que empiece a trabajar en el periodo i, i =
1, . . . , 5, est´a circulando en el periodo siguiente, i + 1. Los que entran a trabajar en el u´ ltimo periodo,
el 6, est´an circulando tambi´en en el primero de la ma˜nana, el 1. As´ı, para cubrir las necesidades
m´ınimas 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

hay m´as de 4 autobuses. como poco. xi ∈ ZZ+ . hay m´as de 4 autobuses (5 o m´as) o s´olo hay 4 (sabemos que. teniendo en cuenta que 4 ≤ x5 + x6 ≤ 20. hay 4).a. Una empresa fabrica tres productos 1. en los 2 u´ ltimos turnos empiezan a trabajar los autobuses necesarios para cubrir esos 2 turnos m´as el siguiente.Queremos minimizar el n´umero de autobuses diario. . Necesitamos una variable binaria δ que nos indique si en el turno que comienza a las 8:00 p. 6 M´ın x1 + x2 + x3 + x4 + x5 + x6 s. Por u´ ltimo. . tenemos que modelar la condici´on: si en el turno que comienza a las 8:00 p. a˜nadir la restricci´on: x5 + x6 − 4 ≤ 16(x6 + x1 − 4) Tambi´en pod´ıamos haber interpretado que la condici´on s´olo hac´ıa referencia a los autobuses que empezaban en ese periodo. . xi ∈ ZZ+ . Para ello podemos considerar la restricci´on: x5 + x6 ≤ 4(1 − δ) + 20δ donde x5 + x6 es el n´umero de autobuses que est´an circulando en el periodo que empieza a las 8:00 p. 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. y la disponibilidad de cada tipo de maquinaria (en horas por semana): 2 . en el siguiente ha de haber tambi´en m´as de 4. . Ahora. . La cota superior de 20 se obtiene como 12 + 4 + 4. que deben procesarse en dos tipos de maquinaria denominadas A y B. i = 1. . no podemos eliminar la condici´on x6 + x1 ≥ 4 El problema quedar´ıa finalmente como: Modelo 2 Modelo 1 M´ın x1 + x2 + x3 + x4 + x5 + x6 s. 1}. 1}. entonces tendr´ıamos que considerar x6 ≤ 4(1 − δ) + 8δ y x1 ≥ 5δ En este caso. 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. es suficiente con imponer que si δ = 1 ⇒ x6 + x1 > 4. Para ello. que viene dado por x1 + x2 + x3 + x4 + x5 + x6 . los beneficios (por tonelada procesada) en euros. . Si x5 + x6 > 4 ⇒ δ = 1. que nos permite no incluir la variable binaria δ es.m. se incluye la restricci´on x6 + x1 ≥ 4 + δ y podemos eliminar la condici´on x6 + x1 ≥ 4 Otra opci´on. .m. Como mucho.a.m. 2 y 3. En la siguiente tabla se recogen los tiempos de procesamiento (por tonelada procesada) con cada m´aquina. i = 1. 6 2.

/ton.Tipo de Productos Disponibilidad maquinaria 1 2 3 (horas) A 2 5 4 70 B 3 4 6 86 Benef. ¿c´omo se representa esta nueva condici´on? (d) La empresa desea ampliar la disponibilidad con la maquinaria B si. en la m´aquina A. Variables binarias que nos indican si se realiza cada uno de los 4 posibles incrementos o no: δA1 . ¿C´omo debe modificarse la condici´on considerada en el apartado anterior? Soluci´on.  1. en la m´aquina B. Se pide: (a) Formular el problema que se debe plantear la direcci´on de la empresa para obtener el plan de procesamiento e inversi´on de mayor beneficio. (b) Si la empresa desease aumentar la disponibilidad de un s´olo tipo de maquinaria. x2 y x3 : cantidad de cada producto que se fabrica. ¿c´omo se modifica el modelo anterior reflejando tal situaci´on? (c) Si no se quiere a˜nadir disponibilidad de B a menos que se a˜nada de A. en la m´aquina A y 8 y 12 h. se puede realizar un tipo de incremento para cada m´aquina. (horas) 10 15 Coste inversi´on (miles de euros) 1600 1700 B 8 12 1700 1750 A lo sumo. y s´olo si. δA2 . Para ello. se incrementa tambi´en la A. Las variables de decisi´on son: x1 . Gracias a un estudio de mercado se conocen los l´ımites de demanda de los productos. si no se realiza δA2 . δA1 = 0. δB1 y δB2 se definen an´alogamente para los incrementos de 15 h. respectivamente. puede llevar a cabo alguna de las posibilidades indicadas a continuaci´on Tipo de maquinaria A Incremento de disp. (euros) 800 700 950 La empresa considera aumentar la disponibilidad de tiempo de procesamiento de la maquinaria. la inversi´on total no puede exceder de 3400000 euros. si se realiza el incremento de 10 h.) Producto m´ınima m´axima 1 6 17 2 3 8 3 7 20 Adem´as. que son Demanda (ton. δB1 y δB2 . 3 .

si no se realiza An´alogamente se define δB . δA = 0. si se realiza alg´un incremento en la m´aquina A. 3 ≤ x2 ≤ 8. x2 . se puede realizar un tipo de incremento para cada m´aquina: δA1 + δA2 ≤ 1 (1) δB1 + δB2 ≤ 1 (2) L´ımites de la demanda de cada producto: 6 ≤ x1 ≤ 17. es decir. entonces es suficiente con a˜nadir: δA1 + δA2 + δB1 + δB2 ≤ 1 Si no se mantienen. s´olo se puede invertir en una m´aquina pero las ampliaciones se pueden acumular.La funci´on objetivo a maximizar: beneficios de venta . ¿c´omo se modifica el modelo anterior reflejando tal situaci´on? Si se siguen manteniendo las restricciones (1) y (2). (b) Si la empresa desease aumentar la disponibilidad de un s´olo tipo de maquinaria. δB1 y δB2 variables binarias. 7 ≤ x3 ≤ 20 La inversi´on total no puede exceder de 3400000 euros: 1600δA1 + 1700δA2 + 1700δB1 + 1750δB2 ≤ 3400 x1 .coste incremento de capacidad de las m´aquinas 800x1 + 700x2 + 950x3 − 1600δA1 − 1700δA2 − 1700δB1 − 1750δB2 Las restricciones son: Disponibilidad de maquinaria: 2x1 + 5x2 + 4x3 ≤ 70 + 10δA1 + 15δA2 3x1 + 4x2 + 6x3 ≤ 86 + 8δB1 + 12δB2 A lo sumo. entonces hay que a˜nadir 2 nuevas variables binarias que indiquen si se invierte o no en cada m´aquina:  1. Estas 2 variables toman su valor en funci´on del valor de las variables binarias previamente definidas: δA1 + δA2 ≤ 2δA (3) δB1 + δB2 ≤ 2δB (4) Estas 2 restricciones sustituir´ıan a las anteriores (1) y (2). x3 ≥ 0 y δA1 . habr´ıa que a˜nadir para modelizar la condici´on que se nos pide ahora: δA + δB ≤ 1 4 . Adem´as. δA2 .

s ≥ 0. 3. 5 . entonces se definen δA y δB como antes y se a˜nade la restricci´on: δB ≤ δA (b) La empresa desea ampliar la disponibilidad con la maquinaria B si. a lo sumo 1 inversi´on en cada m´aquina.s x1 − 2x2 + 2x3 s. y s´olo si. los nuevos subproblemas se pueden introducir bien sobre x1 (x1 ≤ 2 y x1 ≥ 3) o bien sobre x2 (x2 ≤ 1 y x2 ≥ 2). se incrementa tambi´en la A. Dado el problema entero m´ınx x1 − 2x2 + 2x3 s. Soluci´on. habr´ıa que a˜nadir la restricci´on: δB1 + δB2 ≤ δA1 + δA2 Si se elimina la condici´on. ¿C´omo debe modificarse la condici´on considerada en el apartado anterior? Se debe cambiar la desigualdad por una igualdad.a x1 + x2 − 2x3 ≤ 4 2x1 − x2 − x3 ≥ 3 x ≥ 0 enteras. ¿c´omo se representa esta nueva condici´on? Como antes. a) Comprueba que la soluci´on del problema relajado es:  T 7/3 5/3 0 . y en el v´ertice indicado tenemos que T B λ = cB ⇔ σN 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. b) Con los valores que toman las variables b´asicas.” c) Calcula la soluci´on de dicho subproblema y comenta qu´e subproblemas introducir´ıas para continuar el proceso de soluci´on. b) Indica el siguiente subproblema que elegir´ıas para resolver por el m´etodo de “branch and bound. 1 Por tanto. Cualquiera de ellos se puede seleccionar para continuar el proceso. si no se elimina la condici´on de. a) El problema relajado en forma est´andar es m´ınx.a x1 + x2 − 2x3 + s1 = 4 2x1 − x2 − x3 − s2 = 3 x. el v´ertice indicado es soluci´on.(b) Si no se quiere a˜nadir disponibilidad de B a menos que se a˜nada de A.

s2 = 0.a x1 + x2 − 2x3 + s1 = 4 2x1 − x2 − x3 − s2 = 3 (P2 ). tenemos las siguientes cotas para el problema entero: −1 ≤ zopt ≤ ∞ Siguiendo las reglas dadas en la pr´actica. guardamos la soluci´on actual (2. s ≥ 0. s1 = 1. usamos el orden lexicogr´afico y ramificamos por x1 . Para comprobar si es o´ ptima. El m´as eficiente (que no hemos visto en clase) es el m´etodo dual del Simplex. A continuaci´on se obtiene la soluci´on por el m´etodo primal del Simplex (el estudiado en clase). como hay empate (las 2 est´an igual de cerca del entero m´as pr´oximo). x3 = 0.s x1 − 2x2 + 2x3 s. se trata de una soluci´on factible del problema entero. Podamos la rama P1 . c) Construimos entonces los subproblemas (ya en forma est´andar) m´ınx.Con la informaci´on proporcionada por la soluci´on o´ ptima del problema relajado. Resolvemos P1 aplicando alg´un procedimiento adecuado. entonces el v´ertice actual es la soluci´on o´ ptima del subproblema P1 . x 1 − s4 = 3 x. 0)t como la mejor soluci´on 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 : 6 .s x1 − 2x2 + 2x3 s. m´ınx. x2 y x3 enteras. 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.a x1 + x2 − 2x3 + s1 = 4 2x1 − x2 − x3 − s2 = 3 (P1 ) x 1 + s3 = 2 x. s3 = 0. x2 = 1. 1. Como adem´as tiene todas sus coordenadas x1 . s ≥ 0. calculamos los costes reducidos de las variables no b´asicas. Partimos de la soluc´ıo´ n b´asica: x1 = 2.

7 .a 4x1 + 5x2 + x3 3x1 + 2x2 ≤ 10 x1 + 4x2 ≤ 11 3x1 + 3x2 + x3 ≤ 13 x ≥ 0. Por lo tanto. aplicando el m´etodo de “branch and bound”. m´ınx. s ≥ 0. s ≥ 0. enteras. x3 = 1/3. en este caso en x1 o en x2 .a x1 + x2 − 2x3 + s1 = 4 2x1 − x2 − x3 − s2 = 3 (P2 ).Si en el apartado b) hubieramos optado por ramificar por x2 . entonces tendr´ıamos que construir los subproblemas (ya en forma est´andar) m´ınx. si hemos seguido este camino todav´ıa nos quedar´ıan 3 nodos pendientes por explorar.s x1 − 2x2 + 2x3 s. Por ejemplo. P2 obtenemos que la soluci´on o´ ptima de dicho subproblema es: x1 = 8/3. por ejemplo.s x1 − 2x2 + 2x3 s. s1 = 0. Si resolvemos.a x1 + x2 − 2x3 + s1 = 4 2x1 − x2 − x3 − s2 = 3 (P1 ) x2 + s 3 = 1 x. x2 = 2. s4 = 0. el siguiente problema entero: m´ax s. Resuelve. 4. si optamos ramificar el subproblema P2 por x1 . Esta soluci´on no es entera por lo que ser´ıa necesario volver a ramificar. tendr´ıamos: Para cada uno de los nodos tendr´ıamos 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 funci´on objetivo son enteros. x2 − s 4 = 2 x. s2 = 0.

4 se puede ajustar a 19 (mejor cota).Soluci´on. x2 = 2. s3 . s1 })     3 2 0 1 1 1 4 0 0 5     B= xB = B −1 b =  25  . Siguiendo la regla de las pr´acticas ramificamos por x1 (es la que toma un valor m´as cercano al entero) ⇒ introducimos las restricciones x1 ≤ 1 y x1 ≥ 2. x1 = 1. con z = 19.3. x2 .a 4x1 + 5x2 + x3 3x1 + 2x2 ≤ 10 x1 + 4x2 ≤ 11 (P2 ) 3x1 + 3x2 + x3 ≤ 13 x1 ≥ 2 x≥0 Comenzamos resolviendo P1 . Resolvemos el problema relajado.4 La cota superior de 19. que en forma est´andar es: m´ax s. x3 = 0. s ≥ 0 Empezamos por la SBF asociada a la base (variables b´asicas: {x1 .4 Por tanto. Empezamos escribiendo el problema en forma est´andar.8.a 4x1 + 5x2 + x3 3x1 + 2x2 + s1 = 10 x1 + 4x2 + s2 = 11 3x1 + 3x2 + x3 + s3 = 13 x1 + s 4 = 1 x ≥ 0.7. s ≥ 0.a 4x1 + 5x2 + x3 3x1 + 2x2 + s1 = 10 x1 + 4x2 + s2 = 11 3x1 + 3x2 + x3 + s3 = 13 x ≥ 0 enteras. 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 λ4 2 8 . ya que todos los coeficientes son enteros. obtenemos las siguientes cotas para el problema entero: −∞ ≤ zopt ≤ 19. 3 3 1 0 2 1 0 0 0 2 Los costes reducidos de las variables no b´asicas (s2 . Los subproblemas resultantes son: m´ax s. x3 .a 4x1 + 5x2 + x3 3x1 + 2x2 ≤ 10 x1 + 4x2 ≤ 11 (P1 ) 3x1 + 3x2 + x3 ≤ 13 x1 ≤ 1 x≥0 m´ax s. y obtenemos como soluci´on. m´ax s.

. entonces ramificamos por la de menor ´ındice. x3 . s2 })     3 2 0 1 0 1     1 4 0 0 1  2     −1    B = 3 3 1 0 0  . Hay un empate. Como la soluci´on es fraccionaria. En forma est´andar: m´ax 4x1 + 5x2 + x3 s. s1 .a m´ax s. entonces todos los nodos que cuelguen de este nodo tienen las siguientes cotas: −∞ ≤ z ∗ ≤ 19 Obtenemos los subproblemas: m´ax s.a 4x1 + 5x2 + x3 3x1 + 2x2 ≤ 10 x1 + 4x2 ≤ 11 3x1 + 3x2 + x3 ≤ 13 (P3 ) x1 ≤ 1 x2 ≤ 2 x≥0 4x1 + 5x2 + x3 3x1 + 2x2 ≤ 10 x1 + 4x2 ≤ 11 3x1 + 3x2 + x3 ≤ 13 (P4 ) x1 ≤ 1 x2 ≥ 3 x≥0 Escogemos de los dos u´ ltimos subproblemas (seguimos una estrategia de b´usqueda en profundidad) el subproblema P3 .a  3  1  3   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 . El valor o´ ptimo del subproblema P1 es 19.Todos los costes reducidos son negativos y se trata de un problema de maximizaci´on. tenemos que seguir ramificando. que en este caso es x2 . xB = B b =  4     1 0 0 0 0  3 0 1 0 0 0 2 9 . x2 . . s5 ≥ 0 Empezamos por la SBF asociada a la base (variables b´asicas: {x1 . x2 . . s1 . x3 . . entonces el v´ertice actual es la soluci´on o´ ptima del subproblema P1 .

Luego. se trata de una soluci´on factible del problema entero. guardamos la soluci´on actual (1. s ≥ 0. 4)t como la mejor soluci´on entera encontrada hasta el momento y actualizamos la cota inferior del problema entero (mejor conocido) 18 ≤ zopt ≤ 19 Pasamos a resolver el subproblema P4 . despu´es de probar algunas bases y de que todas nos den no factibles. entonces el v´ertice actual es la soluci´on o´ ptima del subproblema P3 . s3 . correspondiente al nodo hermano del subproblema P3 . entonces en la segunda restricci´on debe ser x1 + 4x2 ≥ 0 + 4 · 3 = 12  11. El problema de la fase 1 es: m´ın s. 2. con valor objetivo z ∗ = 18. se resuleve el problema por el m´etodo de las dos fases. 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 maximizaci´on. Nota: si no nos damos cuenta del razonamiento anterior. Podamos la rama P3 . s ≥ 0 Como x2 ≥ 3. Como adem´as tiene todas sus coordenadas x1 . z1 ≥ 0 10 . En forma est´andar: m´ax 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.Los costes reducidos de las variables no b´asicas (s2 . x2 y x3 enteras. el subproblema P4 es no factible y se poda esa rama.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.

25) con valor objetivo o´ ptimo z ∗ = 0. x2 . ya que habr´ıamos obtenido una soluci´on entera cuyo valor o´ ptimo lanza la mejor cota. no habr´ıamos tenido que resolver ning´un otro subproblema. 4. El u´ nico nodo que queda pendiente es el correspondiente al subproblema P2 . En este caso. 0.25 > 0.5. se trata de una soluci´on factible del problema entero.a 3x1 + 2x2 + s1 = 10 x1 + 4x2 + s2 = 11 (P2 ) 3x1 + 3x2 + x3 + s3 = 13 x1 − s 4 = 2 x ≥ 0.75. x2 y x3 enteras. Si no nos damos cuenta de esto. tambi´en podemos garantizar que el v´ertice actual es el o´ ptimo del problema entero. s2 })  3 1  B= 3 1 2 4 3 0 0 0 1 0  0 1  . 0. s ≥ 0 Empezamos por la SBF asociada a la base (variables b´asicas: {x1 . x3 . con valor objetivo z ∗ = 19. 0 0   2 2   xB = B −1 b =   1 1 Los costes reducidos de las variables no b´asicas (s2 . Podamos la rama P2 y podemos dar por finalizada la b´usqueda. si hubi´eramos empezado resolviendo el problema P2 . 0. El a´ rbol de b´usqueda es: 11 . 4. que en forma est´andar es: m´ax 4x1 + 5x2 + x3 s. Como adem´as tiene todas sus coordenadas x1 . 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 1−2 0 0 0 −1 0 σ(s4 )  Todos los costes reducidos son negativos y se trata de un problema de maximizaci´on. entonces el v´ertice actual es la soluci´on o´ ptima del subproblema P2 . ya que la soluci´on factible entera obtenida alcanza la mejor cota del problema. 2. s3 .Al resolverlo se obtiene como soluci´on o´ ptima (x.75. s. como la soluci´on que acabamos de encontrar mejora a la mejor por el momento que ten´ıamos guardada (que ten´ıa un valor objetivo de 18). z1 )t = (0. 0. 1.

a˜nadiendo las restricciones x2 ≤ 4 y x2 ≥ 5. 4. 4) con z = −8. 12 . respectivamente. Como la soluci´on no satisface las condiciones de integralidad hay que ramificar por x2 y se crean dos problemas P1 y P2 . La mejor cota se puede ajustar a −9. y su soluci´on es x = (5. . x2 ∈ {0.5. Cotas para el valor de todas las souciones con x2 ≤ 4: −8.5 ≤ z ∗ ≤ ∞.o. Resuelve por el m´etodo de Branch and Bound el siguiente problema de programaci´on entera: minimizar sujeto a − x 1 − x2 − x1 ≤ 0 2x1 − 2x2 ≤ 1 2x2 ≤ 9 x1 .5) con z = −9. est´a entre las cotas superior e inferior hay que ramificar (por x1 ).5. que se puede ajustar a −8 ≤ z ∗ ≤ ∞. La mejor cota para el problema original sigue siendo −9. .5 ≤ z ∗ ≤ ∞. 2. soluci´on x = (4.5. El problema relajado P0 es el siguiente: minimizar sujeto a − x1 − x2 − x1 ≤ 0 2x1 − 2x2 ≤ 1 2x2 ≤ 9.5. Como no se satisfacen las condiciones de integralidad y el valor de la f. 1.} Soluci´on. . Problema P1 : minimizar sujeto a − x1 − x2 − x1 ≤ 0 2x1 − 2x2 ≤ 1 2x2 ≤ 9 x2 ≤ 4. Cotas para la funci´on objetivo: −9.

Problema P4 : minimizar sujeto a − x1 − x2 − x1 ≤ 0 2x1 − 2x2 ≤ 1 2x2 ≤ 9 x2 ≤ 4 x1 ≥ 5 Siguiendo una estrategia de b´usqueda en profundidad deber´ıamos de seguir resolviendo P3 . a resolver el problema P3 . entonces. El problema P2 : minimizar sujeto a − x1 − x2 − x1 ≤ 0 2x1 − 2x2 ≤ 1 2x2 ≤ 9 x2 ≥ 5. ahora mejor conocido= −8. Pasamos. entonces la rama se poda y se actualiza la cota superior para el problema original.o. Ya no tenemos m´as problemas que procesar por lo que el procedimiento termina escogiendo el mejor candidato. cuya soluci´on es x = (4. Como la soluci´on s´ı satisface las condiciones de integralidad y el valor de la f. 4) con z = −8. Pasamos a resolver el problema P4 . Las nuevas cotas para el problema original son: −9 ≤ z ∗ ≤ −8 Se guarda la soluci´on x = (4. es no factible y por tanto la rama se poda. por lo que la rama se poda. que resulta ser no factible. est´a entre las cotas. En una central hidroel´ectrica debe decidirse qu´e turbinas se pondr´an en marcha durante el d´ıa de manera que se satisfaga la demanda (estimada) de la poblaci´on a la que se sirve: 13 . Vamos a seguir una estrategia de b´usqueda en anchura y pasamos a reolver el problea P2 . 4) con z ∗ = −8 6. 4) como mejor soluci´on encontrada (incumbente). esto es x∗ = (4.Problema P3 : minimizar sujeto a − x1 − x2 − x1 ≤ 0 2x1 − 2x2 ≤ 1 2x2 ≤ 9 x2 ≤ 4 x1 ≤ 4.

por cada megawatio que la turbina opera sobre el nivel m´ınimo.750 MW 2. tambi´en por hora.000 1’30 1. Concretamente. en el que hay desconexi´on al final del d´ıa y las turbinas no se pueden desconectar de un periodo a otro. para cumplir con los requisitos de calidad establecidos en el contrato. Cada turbina tiene que funcionar entre unos niveles m´ınimo y m´aximo. en marcha 2 2.m. a 9 a. Variables: nit = n´umero de turbinas trabajando del tipo i en el periodo t. Adem´as. a 6 p.000 MW La central dispone de turbinas de 3 tipos distintos. ¿cu´anto cuesta este nivel de garant´ıa de servicio? d) ¿C´omo cambiar´ıa el modelo si no se produce la desconexi´on al final del d´ıa? Compara las soluciones obtenidas con los dos modelos Soluci´on. 15.m. 9 a.m. Los costes de funcionamiento dependen del nivel al que la turbina est´e operando: hay un coste por hora que la turbina opera a nivel m´ınimo y un coste extra.000 MW 1. 10 de tipo 2 y 5 de tipo 3.000 MW 3.000 1.000 MW 27.000 MW 25.m. 3 p. una vez que una turbina se ha puesto en marcha ya no se desconecta hasta el final del ciclo.000 MW 40.250 MW 1. a 6 a. es decir.000 MW 30. Modelo del apartado a).m. no obstante. siempre dentro de los l´ımites de operaci´on. la producci´on de las turbinas que est´an en funcionamiento.m. a 12 p. xit = producci´on de las turbinas del tipo i en el periodo t. tiene que haber suficientes generadores funcionando en cualquier periodo del d´ıa como para responder a un incremento de la demanda estimada de hasta un 15 %. a) ¿Qu´e turbinas deben estar funcionando y en qu´e periodos del d´ıa deben hacerlo para minimizar el coste total? b) ¿Cu´al es el coste marginal de producci´on de electricidad en cada periodo del d´ıa?.600 4. la puesta en marcha de una turbina conlleva un coste: Tipo 1 Tipo 2 Tipo 3 Nivel m´ınimo 850 MW 1.m.m.000 Coste/hora por MW coste puesta por encima del m´ın. dispone de 12 de tipo 1.12 p. durante el d´ıa. ¿qu´e tarifas se deber´ıan cobrar? c) ¿Qu´e ahorro se producir´ıa si se rebajara el 15 % de reserva de energ´ıa que se debe garantizar?. Al final del ciclo de 24 horas hay una desconexi´on breve antes de comenzar la aplicaci´on de la siguiente planificaci´on. 6 p. 14 .500 MW Nivel Coste por hora m´aximo al m´ınimo 2.m. a 3 p. es decir. El posible incremento debe poder ser atendido ajustando.000 3 500 Adem´as.m. 6 a.

. por ejemplo. para el primer periodo los costes de producci´on ser´ıan (primer y segundo sumando de la funci´on objetivo): h i h i 6×1000n11 +6×2600n21 +6×3000n31 + 2(x11 −850n11 )+1. Entonces. 5 .Obs´ervese que. es suficiente con contar el n´umero de turbinas funcionando en el u´ ltimo periodo y cargar su coste: F1 n15 + F2 n25 + F3 n35 . donde Cit = costes de producci´on por periodo (coste por hora por MW por encima del m´ınimo por n´umero de horas del periodo). ( MW que globalmente todas las turbinas de tipo i est´an produciendo por encima xit − mi nit = del m´ınimo en el periodo t. donde Fi = costes de puesta en marcha. En general. Luego. donde mi = la producci´on m´ınima de las turbinas de tipo i. Costes de funcionamiento por encima del m´ınimo: C1t (x1t − m1 n1t ) + C2t (x2t − m2 n2t ) + C3t (x3t − m3 n3t ).30(x21 −1250n21 )+3(x31 −1500n31 ) Restricciones: Demanda de cada periodo de tiempo: 3 X xit ≥ Dt i=1 15 ∀t = 1. . x12 − 850n12 es el n´umero de MW que globalmente todas las turbinas de tipo 1 est´an produciendo por encima del m´ınimo durante todo el perido 2. contendr´a los siguientes sumandos para cada uno de los periodos: Costes de funcionamiento al m´ınimo: E1t n1t + E2t n2t + E3t n3t . el n´umero de turbinas puestas en marcha durante el d´ıa se corresponde con el n´umero de turbinas que est´an funcionando en el u´ ltimo periodo. Funci´on objetivo: m´ın 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. . Costes de puesta en marcha: Como las turbinas no se pueden apagar. . que tiene que medir todos los costes derivados de las decisiones tomadas. donde Eit = costes de funcionamiento por periodo (coste por hora al m´ınimo por n´umero de horas del periodo). la funci´on objetivo.

5 i=1 N´umero de generadores funcionando y puestos en marcha: como no se pueden desconectar de un periodo a otro. 3. . . ∀i = 1. 5 (6) Como tenemos las restricciones (5). n35 ≤ 5 En el modelo del apartado b). . es suficiente con exigir no negatividad y n15 ≤ 12. . . . . 2. en el que las turbinas se pueden desconectar de un periodo a otro y no hay desconexi´on al final del d´ıa tenemos que considerar las variables sit = n´umero de turbinas puestas en marcha del tipo i en el periodo t. ∀t = 1. Garant´ıa del 15 % de producci´on extra: 3 X Mi nit ≥ 1. . 0 ≤ s2t ≤ 10. . . ∀i = 1.L´ımites de producci´on de cada turbina en cada periodo: mi nit ≤ xit ≤ Mi nit ∀i = 1. . . . . 5 (mi y Mi son los l´ımites de capacidad de los generadores de tipo i). . . . En la funci´on 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 n´umero de generadores funcionando y puestos en marcha: sit ≥ nit − nit−1 . . 3. se debe verificar ni(t+1) ≥ nit . . . . 0 ≤ s3t ≤ 5. 16 . que son tambi´en variables enteras acotadas entre 0 y el n´umero m´aximo de generadores del tipo i: 0 ≤ s1t ≤ 12. t = 1. 5 Cambia el c´alculo de los costes de puesta en marcha. 0 ≤ n3t ≤ 5. . para todo t = 1. 2.15Dt . . ∀i = 1. t = 1. t = 1. ya que si s´olo se han desconectado turbinas de un periodo a otro nos dar´ıa un valor negativo. 2. 3. . t = 1. . 4 nit son variables enteras acotadas entre 0 y el n´umero m´aximo de generadores del tipo i: 0 ≤ n1t ≤ 12. . 5 (cuando t = 1. 3. n25 ≤ 10. para todo t = 1. . 4 (5) El n´umero de turbinas puestas en marcha en el periodo t + 1 se puede calcular como si(t+1) = ni(t+1) − nit . t − 1 = 5) No se puede dejar la igualdad como en modelo anterior. 2. Las restricciones de cota (6) se deben de mantener para todos los periodos. . 0 ≤ n2t ≤ 10.

Una alternativa es obtener los multiplicadores de un problema relacionado: Fijar las variables enteras al valor obtenido en la soluci´on o´ ptima y resolver el problema lineal resultante As´ı. lo que podemos hacer es resolver la relajaci´on lineal del problema entero original y fijarnos en el multiplicador de la restricci´on de reserva. lo que debemos hacer es fijar el n´umero de turbinas de cada tipo que funcionan en cada periodo al valor obtenido en la soluci´on o´ ptima del problema entero y resolver el problema de programaci´on lienal que queda. El coste marginal vendr´a dado por los multiplicadores de las restricciones de satisfacci´on de demanda. Para contestar al apartado c) no podemos hacer lo mismo porque al fijar el n´umero de turbinas que funcionan en cada periodo la restricci´on del 15 % de reserva de energ´ıa desaparece. 17 . para contestar a la cuesti´on b). En ese caso.Para contestar a las cuestiones b) y c) hay que tener en cuenta que la interpretaci´on de los multiplicadores λ como precios sombra no es posible en modelos con variables enteras. en la que se ped´ıa calcular el coste marginal de producci´on de electricidad en cada periodo del d´ıa.