27
Tema 1: Modelos lineales de optimización con variables continuas. Objetivos del tema: Introducir los problemas de programación lineal. Aprender a formular el modelo de un problema de programación lineal. Estudiar las propiedades de los modelos de programación lineal. Conocer la expresión de un modelo de programación lineal con lenguajes de modelado. Conocer los elementos básicos del lenguaje de modelado OPL (Optimization Programming Language). Saber los tipos de soluciones que pueden tener los problemas de programación lineal. Modelar matemáticamente y resolver en OPL varios problemas de programación lineal 1 J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL

Tema 1: Modelos lineales de optimización con variables continuas

Embed Size (px)

Citation preview

Page 1: Tema 1: Modelos lineales de optimización con variables continuas

Tema 1: Modelos lineales de optimización con variables continuas.

Objetivos del tema:

Introducir los problemas de programación lineal.

Aprender a formular el modelo de un problema de programación lineal.

Estudiar las propiedades de los modelos de programación lineal.p p p g

Conocer la expresión de un modelo de programación lineal con lenguajes de modelado.

Conocer los elementos básicos del lenguaje de modelado OPL (Optimization Programming Language).

Saber los tipos de soluciones que pueden tener los problemas de programación lineal.

Modelar matemáticamente y resolver en OPL varios problemas de programación lineal

1J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 2: Tema 1: Modelos lineales de optimización con variables continuas

Introducción a la programación lineal

El objetivo de un modelo matemático es reproducir la realidad de la forma más fiel posible a fin de entender cómo se comporta ypoder obtener respuestas a determinadas acciones.

L ió li l i d d l á i d lló i d l S d G M di l lLa programación lineal es un tipo de modelo matemático que se desarrolló a partir de la Segunda Guerra Mundial para resolvercierto tipo de problemas de asignación de recursos entre distintas actividades.

Después de la guerra las aplicaciones de la programación lineal se extendieron a una amplia variedad de problemas, de maneraque hoy se utiliza en campos como la ingeniería, la economía, la gestión, y muchas otras áreas de la ciencia, la técnica y lai d t iindustria.

La programación lineal fue formulada por George B. Dantsig alrededor de 1947, cuando trabajaba como consejero matemáticopara la Fuerza Aérea de Estados Unidos en el desarrollo de un sistema automático de planificación temporal de despliegue,entrenamiento y abastecimiento logístico.

Debido a que la Fuerza Aérea denomina programas a sus diversos planes y proyectos a implementar, en el primer artículopublicado por Dantzig se refiere a este problema como programación en una estructura lineal.

El término programación lineal fue acuñado por el economista y matemático T.C. Koopmans en el verano de 1948 cuandocolaboraba con el propio Dantzigcolaboraba con el propio Dantzig.

En 1949, Dantzig publicó el método del simplex para resolver programas lineales, método que fue ampliamente aceptado por sucapacidad de producir soluciones en un tiempo razonable.

La programación lineal estudia la optimización (minimización o maximización) de una función lineal que satisface un conjunto deLa programación lineal estudia la optimización (minimización o maximización) de una función lineal que satisface un conjunto derestricciones lineales de igualdad y/o desigualdad.

2J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 3: Tema 1: Modelos lineales de optimización con variables continuas

Formulación de un modelo de programación lineal

En el proceso de formulación de un modelo de programación lineal hay que dar los siguientes pasos:

1 Determinación de las variables de decisión Representan los elementos del sistema a modelar que son controlables1. Determinación de las variables de decisión. Representan los elementos del sistema a modelar que son controlablespor el decisor. En los modelos lineales continuos estas variables toman como valores números reales y se representanpor letras con subíndices como se acostumbra a hacer con las variables matemáticas, o literales alusivos a susignificado: peso, valor, etc. En el primer caso también se utiliza la representación como vector de un conjuntoindexado de variable:

1 2, ,...x x

1 2( , ,...)x xx

2. Determinación de las restricciones. Representan las limitaciones prácticas de determinados recursos o imposicionesfísicas de la realidad. Se expresan como ecuaciones e inecuaciones lineales de las variables de decisión.Matemáticamente adoptan una de las siguientes formas:

3. Formulación de la función objetivo. Se trata de la función que mide la calidad de la solución y que hay que optimizar(maximizar un beneficio o minimizar un coste) También es una función lineal de todas o parte de las variables de

( ) ; ( ) ; ( ),... ;

i i i i i i

i

g b g b g bi 1 m con g una función lineal en x

x x x

(maximizar un beneficio o minimizar un coste). También es una función lineal de todas o parte de las variables dedecisión.

Maximizar z = f(x); Minimizar z = f(x)

Vamos a ver estos pasos en la formulación de un modelo de programación lineal utilizando el siguiente problema de asignación de recursos:

3J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 4: Tema 1: Modelos lineales de optimización con variables continuas

Problema 1: asignación de recursosEn una fábrica de cerveza se producen tres tipos distintos: rubia, negra y de baja graduación, y para ello se utilizan dos materiasprimas: malta y levadura. En la siguiente tabla se especifican: a) la cantidad de materias primas consumidas para producir una unidadp y g p ) p p pde cada tipo de cerveza; b) las cantidades disponibles de cada materia prima; y c) el precio unitario de venta de cada tipo de cerveza.

Consumo de materias primas por cada tipos de cerveza

Materia prima rubia negra baja Disponibilidad

malta 1 2 2 30

levadura 2 1 2 45

Precio de venta 7 4 3

Se trata de conocer la cantidad a fabricar de cada tipo de cerveza de manera que el beneficio sea máximo.

SoluciónLos tres elementos que definen un problema de programación lineal son: variables de decisión, restricciones y función objetivo.

1

2

x = producción de cerveza rubiax = producción de cerveza negra

Variables de decisiónDel enunciado del problema se desprende que las variables de decisión son las producciones a fabricar de cada tipo de cerveza:

2 2 30 ( )l ili d l di ibl

3 x = producción de cerveza de baja graduación

RestriccionesLas restricciones en este caso imponen que las materias primas utilizadas en la fabricación de los tres tipos de cerveza no debensobrepasar las cantidades disponibles:

1 2 3

1 2 3

1 2 3

2 2 30 ( )2 2 45 ( )

, , 0 ( )

x x x malta utilizada malta disponiblex x x levadura utilizada levadura disponible

x x x no negatividad

Función objetivo

41 2 3z 7 4 3Maximizar x x x

En este caso el objetivo es maximizar el beneficio, que viene dado por la suma de los precios de venta de la producción:

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 5: Tema 1: Modelos lineales de optimización con variables continuas

El modelo matemático de programación lineal para el problema de asignación de recursos queda formulado de la siguiente manera:

1 2 3

1 2 3

1 2 3

1 2 3

7 4 3: 2 2 30

2 2 45 , , 0

Maximizar Z x x xsujeto a x x x

x x xx x x

1 2 3 , , 0 x x x

En este primer módulo de la asignatura nos vamos a ocupar de modelar problemas de programación lineal y resolver los modelosutilizando los lenguajes de modelado disponibles comercialmente. En el módulo segundo abordaremos los algoritmos internos queutilizan estos lenguajes. Sin entrar de momento en los detalles de estos lenguajes, la expresión del problema anterior en dos modernoslenguajes de modelado (OPL y OML) sería la siguiente:

// Variables de decisión dvar float+  x1;dvar float+  x2;dvar float+  x3;

Modelo OPL Model[// Variables de decisión Decisions[ Reals[0,Infinity], x1, x2, x3, z],

Modelo OML

// Función objetivomaximize 7*x1 + 4*x2 + 3*x3;

// Restriccionessubject to

// Función objetivoGoals[Maximize [z ]],

// RestriccionesConstraints

Es evidente que estos lenguajes disponen de una sintaxis muy próxima a la pura expresión matemática El texto en verde corresponde

{x1 + 2*x2 + 2*x3 <= 30;

2*x1 +      x2 + 2*x3 <= 45;}

[z==7*x1 + 4*x2 + 3*x3,x1 + 2*x2 + 2*x3 <= 30,2*x1 +   x2 + 2*x3 <= 45]]

Es evidente que estos lenguajes disponen de una sintaxis muy próxima a la pura expresión matemática. El texto en verde correspondea comentarios, y el azul a palabras reservadas de cada lenguaje. La solución que nos dan los respectivos sistemas son la siguientes:

// solution (optimal) with objective 160x1 = 20;x2 = 5; Solución OPL

Decisions:x1: 20x2: 5

5

;x3 = 0;

Solución OPLx3: 0z: 160 Solución OML

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 6: Tema 1: Modelos lineales de optimización con variables continuas

Propiedades del modelo lineal

La formulación algebraica general de un problema de programación lineal de variables continuas podemos hacerla de la siguiente manera:

1 1 2 2 ...:

n nMaximizar ó Minimizar z c x c x c xsujeta a

11 1 12 2 1 1

21 1 22 2 2 2

: ... ... ...

n n

n n

sujeta aa x a x a x ó ó ba x a x a x ó ó b

Cuatro son las propiedades generales que debe cumplir un problema para poderse plantear como un problema de programación lineal

1 ma x1 2 2 1

1 2

... 0, 0,..., 0

m mn n

n

a x a x ó ó bx x x

Cuatro son las propiedades generales que debe cumplir un problema para poderse plantear como un problema de programación lineal:

• Proporcionalidad

La contribución al coste y a las restricciones es directamente proporcional al valor de las variables de decisión.

• Aditividad

El coste y las restricciones son la suma directa de los valores aportados por las variables de decisión.

• Divisibilidad

Las variables de decisión pueden dividirse en cualquier tipo de fracción, es decir, toman como valores números reales.

• Determinismo

Las valores de mantienen su valor constante., , ..., , ,...,ij i ja c b para i 1,2, n j 1,2 m

6J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 7: Tema 1: Modelos lineales de optimización con variables continuas

Problema 2: producciónProblema 2: producciónUna compañía dispone de un máximo de 14 horas diarias de mano de obra para fabricar diariamente dos productos p1 y p2. Unaunidad de producto p1 necesita 4 horas mientras que una unidad de producto p2 requiere 3. Para la producción se necesita unamateria prima de la que se dispone de 12 unidades diarias, requiriéndose 2 unidades para producir una unidad de p1, y 3unidades para producir una unidad de p2. ¿Qué cantidad de cada producto maximiza la producción?

Solución

Variables de decisiónProducción diaria de p11xProducción diaria de p2

RestriccionesHoras requeridas para producir x1 unidades de p1 y x2 unidades de x2 < horas disponibles al día de mano de obra

Materia prima requerida para producir x1 unidades de p1 y x2 unidades de p2 < unidades de materia prima disponible al día

2 x

1 2

1 2

4 3 142 3 12 x xx x

Función objetivoHay que maximizar la producción total diaria de la compañía

1 2 Maximizar z x x

El modelo de programación lineal para este problema sería:

1 2

1 2

1 2

:

4 3 14 2 3 12

Maximizar z x xsujeta a

x xx x

7

1 2

1 2 0, 0x x

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 8: Tema 1: Modelos lineales de optimización con variables continuas

Interpretación económica del problema de programación lineal

E l P bl 1 b d i d li i d ( l l d ) i id d d l ñí (f b i ió dEn el Problema 1 se trataba de asignar dos recurso limitados (malta y levadura) a tres actividades de la compañía (fabricación decerveza rubia, negra o de baja graduación) optimizando (maximizando) el beneficio global. Conocíamos la disponibilidad(cantidad) de cada recurso, el consumo de recursos por cada actividad, y el beneficio que se obtiene por unidad de productofabricado de cada actividad. Este ejemplo nos permite interpretar un problema general de programación matemática como unproblema de asignación óptima de recursos a una serie de actividades:

1 1 2 2 ... n nMaximizar z c x c x c x

Problema general de programación lineal Interpretación económica(expresado en forma estándar de maximización) (asignación óptima de recursos)

Consumo de recursos por unidad de actividad

11 1 12 2 1 1

21 1 22 2 2 2

: ... ... ...

n n

n n

sujeta aa x a x a x ba x a x a x b

Recursos

Cantidad de recursos disponibles

Actividad

1           2            ...        n

1 11 12 1 ... na a aa a a

1bb

1 1 2 2 1

... ...m m mn na x a x a x b

1 2 0, 0,..., 0nx x x

2..m

Contribución a z por 

21 22 2

1 2

... ... ... ... ...

...

n

m m mn

a a a

a a a

1 2c ... cc

2

...

m

b

b

unidad de actividad 1 2 c ... cnc

( 1, 2,..., )j

z valor del rendimientox nivel de la actividad j para j n

j

i

c incremento en z que se obtiene al aumentar una unidad el nivel de la actividad j

b cantidad de recurso i disponible para asignars

( 1, 2,..., ) ij

e a las actividades para i na cantidad del recurso i consumido por cada unidad de la actividad j

8J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 9: Tema 1: Modelos lineales de optimización con variables continuas

Introducción al lenguaje de modelado OPL (Optimization Programming Language)

A l di d ll d d l l j d d l d l b d l 3 i d i l l j OPLAunque el estudio detallado de los lenguajes de modelado lo abordaremos en el tema 3, en este punto introduciremos el lenguaje OPLque utilizaremos en la resolución de los problemas que plantearemos a lo largo de la asignatura. La razón está en que los recursos deOPL necesarios para expresar los pequeños modelos de esta introducción son sencillos y bastante intuitivos.La estructura general de un programa OPL es la siguiente:

// Variables de decisión El texto precedido de // es una línea de comentario sin valor sintáctico// Variables de decisióndvar float+ Variable de decisión 1;…dvar float+ Variable de decisión n;

// Función objetivoi i F ió bj ti

El texto precedido de // es una línea de comentario sin valor sintáctico.

Las variables de decisión no negativas se declaran con las palabras reservadas  dvar float+ y se representan con literales: x1, var, peso,…

La función objetivo se declara con las palabras reservadas maximize ominimize

maximize Función objetivo;

// Restriccionessubject to{

Restricción 1;

Las restricciones se declaran entre llaves {..} precedidas de las palabras reservadas subject to

Las declaraciones de variables, función objetivo y restricciones terminan en ;

Los símbolos de los operadores lineales son + para la suma y * para la 

Aplicando la sintaxis OPL al modelo lineal del Problema 1 resulta lo siguiente:

…Restricción m

}

// Variables de decisión d fl t+ 1

multiplicación.

Los símbolos relacionales de las restricciones son:  ==  para la igualdad;  <=  para menor o igual; y  >=  para mayor o igual.

Aplicando la sintaxis OPL al modelo lineal del Problema 1 resulta lo siguiente: dvar float+ x1;dvar float+ x2;dvar float+ x3;

// Función objetivomaximize 7*x1 + 4*x2 + 3*x3;

1 2 3

1 2 3

z 7 4 3 : 2 2 30

Maximizar x x xsujeto a x x x

OPL 

// Restriccionessubject to{x1 + 2*x2 + 2*x3 <= 30;2*x1 + x2 + 2*x3 <= 45;

1 2 3

1 2 3

2 2 45 , , 0

x x xx x x

9

2 x1 + x2 + 2 x3 < 45;}Los pasos necesarios para descargar OPL y crear proyectos que permitan 

ejecutar modelos OPL aparecen en el documento: IDE OPL.pdf 

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 10: Tema 1: Modelos lineales de optimización con variables continuas

Representación gráfica de los problemas de programación lineal

Un problema de programación lineal con 2 variables de decisión se puede representar gráficamente en el plano cuyas coordenadas son laspropias variables Para ello se representan las rectas que resultan de convertir las restricciones de desigualdad en ecuaciones y sepropias variables. Para ello se representan las rectas que resultan de convertir las restricciones de desigualdad en ecuaciones, y sedetermina con el signo de desigualdad el semiplano que define cada restricción (marcado en el dibujo con una flecha verde perpendiculara la recta). La región factible queda determinada por la intersección de los semiplanos que definen las restricciones. Por ejemplo,representemos gráficamente el siguiente problema de programación lineal:

1 2

1 2

1 2

z 3 : 6

- 2 2 0

Maximizar x xsujeto a x x

x xx x

Para dibujar las rectas correspondientes alas restricciones y a valores constantes dela función objetivo (iso‐beneficio) sehallan los cortes con los ejes :

Las rectas paralelas de iso‐beneficio aumentan elvalor de z conforme se alejan del origen en elcuadrante positivo. Es evidente que el valor de z dela recta que pasa por el punto extremo (2,4) de laregión factible determina el valor óptimo del 1 2 , 0 x x

1 21 2

2 1

1 21 2

0 6 6

0 6

0 22

0 2

x xx x

x x

x xx x

1 2 6x x 1 2 2x x 2x

región factible determina el valor óptimo delproblema (z=14). Las rectas con valores de zsuperiores a 14 ya no itersectan la región factible.Veremos en el tema 4 que el óptimo de unproblema lineal es siempre un punto extremo de laregión factible. Para 2 variables un vértice delpolígono factible 1 2

2 1

1 21 2

2 1

0 2

0 13 3

0 3

x x

x xx x

x x

//Variables de decisióndvar float+ x1;

1 2 6 x x 1 2 2 x x

6

5

( 2 4 14)

polígono factible.

Podemos comprobar la solución resolviendo elproblema en OPL:

dvar float+ x2;

//Función objetivomaximize x1 + 3*x2;

//Restriccionessubject to

4             

3              

2            

1 2( 2; 4; 14) x x z

1 23 14 x x

Crecimiento del beneficio

{x1 + x2 <= 6;-x1 + x2 <= 2;}

// solution (optimal) with objective 14x1 = 2;

Región factible

3 3

Rectas de iso‐beneficio

0              1             2               3             4               5            6               7 

1               

0 1x

10

;x2 = 4; 1 23 3 x x

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 11: Tema 1: Modelos lineales de optimización con variables continuas

Clasificación de los problemas de programación lineal según el tipo de solución

Atendiendo al tipo de solución podemos clasificar los problemas de programación en las siguientes categorías:Atendiendo al tipo de solución podemos clasificar los problemas de programación en las siguientes categorías:

solución únicafactible

múltiples soluciones

problema de programación lineal

( )

problema de programación lineal no factible

con z infinitono acotado

con z finito rayo óptimo

Veamos con la ayuda de la representación gráfica de la región factible un ejemplo de cada tipo.

1 2 z 6 105 2 10

Maximizar x xj

Problema factible: solución única Problema factible: soluciones múltiples Problema no factible

1 2 z 2Maximizar x x 1 2 z 36

Maximizar x xj

1 2

1 2

1 2

: 5 2 10 3 5 15 , 0

sujeto a x xx x

x x

1 2

1 2

1 2

: 5 2 10 3 5 15 , 0

sujeto a x xx x

x x

Un problema factible que tenga la rectad i b fi i l l l t d

1 2

1 2

1 2

: 6 2 4 , 0

sujeto a x xx xx x

2x 2x 2x

1 25 2 10 x x 1 25 2 10 x x l ó

Infinitas l i

de iso‐beneficio paralela a la recta de unarestricción que contenga un puntoextremo óptimo, tendrá todo unsegmento de puntos óptimos.

Región factible vacía: 

1 22Z x x

1 23 5 5 x x 1 26 10Z x x

1 23 5 5 x x

Solución única

soluciones

1 2 6 x x 1 22 4x x

problema no factible

11

1 21x 1x 1x

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 12: Tema 1: Modelos lineales de optimización con variables continuas

Clasificación de los problemas de programación lineal según el tipo de solución (continuación)

1 2 z 2Maximizar x x

Restricciones redundantesProblema no acotado(z infinito)

Problema no acotado(z finito, rayo óptimo)

1 2

1 2

1 2

1 2

: 2 - 3 3 2 10 , 0

sujeto a x xx xx x

x x

1 2

1 2

1

z 2 5 : 4

2 0

Maximizar x xsujeto a x x

xx x

1 2

1 2

1 2

1 2

z 10 4 : 2

5 2 16 , 0

Minimizar x xsujeto a x x

x xx x

1 2, 0x x

1 2 , 0 x x 1 2,

Región factible definida sólo por una restricción

2x 2x2x

Región factible infinita

Región factible infinitacon z=‐32 (rayo óptimo)

z=‐2   z=‐12   z=‐32

1 25 2 16 x x

1 2 3 x x

21 2x

Los lenguajes de modelado como OPL suelen informar del carácter factible, no factible (infeasible)o no acotado (unbounded) de la

1 22 4x x 1 2 2x x 1 2 2x x

1x 1x 1x

1 2x

1 23 2 10 x x

g j , ( f ) ( )solución.

1212J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 13: Tema 1: Modelos lineales de optimización con variables continuas

Problema 3: mezcla de aceitesUna fábrica produce aceite mezclando aceites refinados, dos de origen vegetal y tres de origen no vegetal. En un mes sólo es posiblerefinar 200 toneladas de vegetal y 250 de no vegetal. El aceite resultante debe cumplir un valor de dureza comprendido entre 3 y 6. Elg y g p p ycosto de una tonelada para cada aceite refinado junto con su dureza aparecen en la siguiente tabla:

VEG_1 VEG_2 NOVEG_1 NOVEG_2 NOVEG_3

costo 110 120 130 110 115

dureza 8 8 6 1 2 0 4 2 5 0

Se trata de refinar las cantidades apropiadas de cada aceite a fin de maximizar el beneficio de la producción final sabiendo que unatonelada del aceite producido se vende a 150,

dureza 8,8 6,1 2,0 4,2 5,0

Solución

1

2

x = cantidad de aceite refinado VEG_1x = cantidad de aceite refinado VEG_2

id d d i fi d NOVEG 1

Solución

Variables de decisión

3

4

5

x = cantidad de aceite refinado NOVEG_1x = cantidad de aceite refinado NOVEG_2x = cantidad de aceite refinado NOVEG_3y cantidad de aceite a producir

1 2

3 4 5

( ) (

x x 200 aceite vegetal refinado capacidad de refino vegetalx x x 250 aceite no vegetal refinado capacidad de refino )

( )1 2 3 4 5

no vegetal8,8x +6,1x + 2x +4,2x +5x 6y límite superior de dureza del aceite producido

Restricciones:

( )3 ( )

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

, , , y p p8,8x +6,1x + 2x +4,2x +5x y límite inferior de dureza del aceite producidox + x + x + x + x y

1 2 3

( ), , , , , 0 ( )4 5

suma de las cantidades de los aceites refinados cantidad de aceite producidox x x x x y no negatividad

F ió bj i

1313

z 1 2 3 4 5Maximizar 150y - 110x -1204x -130x - 110x - 115x (valor aceite producido - coste aceites refinados)Función objetivo:

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 14: Tema 1: Modelos lineales de optimización con variables continuas

Problema 3: expresión OPL del modelo

//Variables de decisióndvar float+ x1;dvar float+ x2;dvar float+ x3;d ar float+ 4

Modelo OPL

dvar float+ x4;dvar float+ x5;dvar float+ y;

//Función objetivomaximize 150*y ‐ 110*x1 ‐ 120*x2 ‐ 130*x3 ‐ 110*x4 ‐ 115*x5;

//Restriccionessubject to{x1 + x2 <= 200;x3 + x4 + x5 <= 250;x3 + x4 + x5 <= 250;8,8*x1+6,1*x2+2*x3+4,2*x4+5*x5 <=6*y;8,8*x1+6,1*x2+2*x3+4,2*x4+5*x5 >=3*y;x1 + x2 + x3 + x4 + x5 == y;

}

// solution (optimal) with objective 17592,5925925926y = 450;x1 = 159,26;

Solución

x2 = 40,741;x3 = 0;x4 = 250;x5 = 0;

14J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 15: Tema 1: Modelos lineales de optimización con variables continuas

Problema 4: asignación de tareas

Una compañía monta un sistema de producción en un proceso dividido en 4 tareas denominadas M, N, P y Q que pueden realizarse enp p p , , y Q q pcualquier orden e indistintamente por 4 equipos. En la siguiente tabla aparecen: a) El tiempo en horas que emplearía cada equipo enrealizar la tarea completa; b) Las horas disponibles por cada equipo; y c) El coste de la hora de trabajo de cada equipo. Se quiereconocer el número de horas de trabajo que deben asignarse a cada equipo para que se minimice el coste total del montaje delsistema.

Tareas

Equipo M N P Q Horas disponibles Coste/hora

1234

52575156

212218201223

25232621

60575455

220300245190

68,369,97171,2

Solución

Variables de decisión

, , , ; 1, 2,3, 4i i i iM N P Q i i i d l i i li l d l i

1 1 1 1

2 2 2 2

220300245

M N P QM N P QM N P Q

Restricciones

Limitación de las horas de trabajo disponibles por cada equipo

Tiempo asignado al equipo i para realizar las tareas M, N, P, Q del sistema

3 3 3 3

4 4 4 4

1 2 3 4

1 2 3 4

245190

/ 52 / 57 / 51 / 56 1/ 212 / 218 / 201 / 223 1

M N P QM N P Q

M M M MN N N N

Imposición de que terminen las 4 tareas que pueden ser realizadasparcialmente por cada uno de los equipos

1 2 3 4

1 2 3 4

/ 25 / 23 / 26 / 21 1/ 60 / 57 / 54 / 55 1

, , , 0; 1, 2,3, 4i i i i

P P P PQ Q Q Q

M N P Q i

No negatividad de la variables de decisión

No negatividad de la variables de decisión

15

Función de coste

1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 z 68,3( ) 69,5( ) 71( ) 71, 2( )Minimizar M N P Q M N P Q M N P Q M N P Q

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 16: Tema 1: Modelos lineales de optimización con variables continuas

//Variables de decisión

Problema 4: expresión OPL

//Variables de decisióndvar float+ M1;dvar float+ M2;dvar float+ M3;dvar float+ M4;dvar float+ N1;dvar float+ N2;dvar float+ N3;dvar float+ N3;dvar float+ N4;dvar float+ P1;dvar float+ P2;dvar float+ P3;dvar float+ P4;dvar float+ Q1;dvar float+ Q2;

// solution (optimal) with objective 23162.1781094527M1 = 52;N1 = 10.547;P1 = 0;Q1 = 0;M2 0dvar float+ Q2;

dvar float+ Q3;dvar float+ Q4;

//Función objetivominimize 68.3*(M1+N1+P1+Q1)+69.5*(M2+N2+P2+Q2)+

71*(M3+N3+P3+Q3)+71.2*(M4+N4+P4+Q4);

M2 = 0;N2 = 0;P2 = 0;Q2 = 0;M3 = 0;N3 = 191;P3 = 0;Q3 54

//Restriccionessubject to{

M1 + N1 + P1 + Q1 <= 220;M2 + N2 + P2 + Q2 <= 300;M3 + N3 + P3 + Q3 <= 245;M4 + N4 + P4 + Q4 <= 190;

Q3 = 54;M4 = 0;N4 = 0;P4 = 21;Q4 = 0;

M4 + N4 + P4 + Q4 <= 190;

M1/52 + M2/57 + M3/51 + M4/56 == 1;N1/212 + N2/218 + N3/201 + N4/223 == 1;P1/25 + P2/23 + P3/26 + P4/21 == 1;Q1/60 + Q2/57 + Q3/54 + Q4/55 == 1;}

Cuando estudiemos más a fondo en el Tema 3 el lenguaje OPL veremosque este modelo puede expresarse de forma más concisa haciendo usode las variables indexadas y las expresiones iterativas.

16J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 17: Tema 1: Modelos lineales de optimización con variables continuas

Formulación matricial del problema de programación lineal

Con frecuencia se utiliza la expresión matricial del problema de programación lineal:

1 1 2 2

11 1 12 2 1 1

z

n n

n n

Maximizar o Minimizar c x c x c xsujeto a :a x a x a x b

TMaximizar o Minimizar zsujeto a

c xAx bx 0expresión 

t i i l

1 1 2 2

1 2

, ,, , , 0

m m mn n m

n

a x a x a x b

x x x

11 1 1 1 1

1

...... ... ... ; ... ; ... ; ... ;

...

n

m mn n m n

a a x b c

a a x b c

A x b c

matricial 

1 2 n

Por ejemplo, para el problema 3 de mezcla de aceites tendremos la siguiente expresión matricial: 

1 2 3 4 5Maximizar z = -110x -1204x -130x -110x -115x 150y200

1 2

3 4 5

x x 200 x x x 250

0 3 0

1 2 3 4 5

1 2 3 4 5

8,8x +6,1x +2x +4,2x +5x 6y8,8x 6,1x 2x 4,2x 5x y

TMaximizar zsujeto a

c xAx bx 0

expresión matricial 

1 2 3 4 5

1 2 3

0 + 0

, , , , , 0

1 2 3 4 5

4 5

x + x + x + x + x yx x x x x y

x x x x x y

x 0

1

2

3

4

; ; ;

1 1 0 0 0 0 x 200 -1100 0 1 1 1 0 x 250 -120

8,8 6,1 2 4,2 5 -6 x 0 -130= 8,8 6,1 2 4,2 5 3 x 0 -110

A x b c

Hemos convertido todas las relaciones a “menor o igual” multiplicando por ‐1 los dos miembros de las restricciones con relación “mayor  o igual”

ó d “ ld d” d

17

5

1 1 1 1 1 1 x 0 -1150 150y- 1 -1 - 1 - 1 - 1 1

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

La restricción de  “igualdad” se convierte en dos restricciones: “mayor o igual”, y “menor o igual”

Page 18: Tema 1: Modelos lineales de optimización con variables continuas

Problema general de la dieta

El problema de la dieta consiste en determinar las cantidades de distintos nutrientes que deben ingerirse para asegurar ciertascondiciones de nutrición minimizando el coste de los nutrientes Se conocen los contenidos nutritivos de un número decondiciones de nutrición, minimizando el coste de los nutrientes. Se conocen los contenidos nutritivos de un número dealimentos, sus precios, y la cantidad mínima diaria de nutrientes aconsejada. El problema consiste en determinar la cantidadde cada alimento que debe comprarse de manera que se satisfagan los mínimos aconsejados con un precio total mínimo.

Si denominamos: m número de nutrientes

ij

j

n número de alimentosa cantidad de nutriente i en una unidad de alimento j

b cantidad mínima de nutriente i aconsejada

i it i d l li t j

Variables de decisión

jc precio unitario del alimento j

jx cantidad que debe comprarse del alimento j

RestriccionesComo la cantidad total de un nutriente dado i es la suma de las cantidades de los nutrientes en todos los alimentos, se debencumplir las siguientes restricciones:

n

b i 1

F ió d t

1; ,...

0; ,...,

ij j ij

j

a x b i 1 m

x j 1 n

Función de costoHay que minimizar el precio total de la dieta:

1

n

j jj

Minimizar z c x

18

j

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 19: Tema 1: Modelos lineales de optimización con variables continuas

Problema 5: dieta

Consideremos el caso de 4 nutrientes N1, N2, N3, N4  que forman parte de  5 alimentos A1, A2, A3, A4, A5. En la siguiente tabla aparecen: 1) Cantidad aconsejada de cada nutriente, 2) Contenido de nutriente que tiene cada alimento, y 3) Coste unitario decada alimento. Debemos calcular la cantidad de cada alimento que debemos comprar para garantizar la cantidad aconsejada de cada nutriente y con coste total mínimo.

Cantidad         Contenido de nutrientes de cada alimento_____ Nutrientes  __ aconsejada _     A1   __         A2              A3    _          A4 _             A5__

N1 74,2 78,6 70,1 80,1 67,2 77,0N2 14,7 6,50 9,40 8,80 13,7 30,4N3 0,14 0,02 0,09 0,03 0,14 0,41N4 0,55 0,27 0,34 0,30 1,29 0,86_

Coste de los alimentos               1 0,5 2 1,2 3

Solución

Variables de decisión

i i

; jx cantidad que debe comprarse del alimento Aj j = 1,2,3,4,5

1

2

3

x78,6 70,1 80,1 67,2 77,0 74,2

x6,50 9,40 8,80 13,7 30,4 14,7

x0,02 0,09 0,03 0,14 0,41 0,14

x

Restricciones

4

5

1 2 3 4 5, , , , 0

x0,27 0,34 0,30 1,29 0,86 0,55

xx x x x x

Función objetivo

19

1 2 3 4 5Minimizar z x +0,5x +2x +1,2x +3x

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 20: Tema 1: Modelos lineales de optimización con variables continuas

Problema 5: expresión OPL

//Variables de decisióndvar float+ x1;dvar float+ x2;dvar float+ x3;

Modelo OPL

dvar float+ x3;dvar float+ x4;dvar float+ x5;

//Función objetivominimize x1 + 0.5*x2 + 2*x3 + 1.2*x4 + 3*x5;

//Restriccionessubject to{

78.6*x1 + 70.1*x2 + 80.1*x3 + 67.2*x4 + 77.0*x5 >= 74.2;6.50*x1 + 9.40*x2 + 8.80*x3 + 13.7*x4 + 30.4*x5 >= 14.7;6.50 x1 + 9.40 x2 + 8.80 x3 + 13.7 x4 + 30.4 x5 > 14.7;0.02*x1 + 0.09*x2 + 0.03*x3 + 0.14*x4 + 0.41*x5 >= 0.14;0.27*x1 + 0.34*x2 + 0.30*x3 + 1.29*x4 + 0.86*x5 >= 0.55;

}

// solution (optimal) with objective 0,792769148366363x1 = 0;x2 = 1,5303;x3 = 0;x4 = 0,023032;

Solución

,x5 = 0;

20J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 21: Tema 1: Modelos lineales de optimización con variables continuas

Problema general de transporte

Se debe enviar un cierto producto en determinadas cantidades u1, . . . , um, desde cada uno de los m orígenes, y recibirse encantidades v1, . . . , vn, en cada uno de los n destinos. El problema consiste en determinar las cantidades xij , que deben enviarse1 n ijdesde el origen i al destino j, para conseguir minimizar el coste total del envío.

m número de orígenesn número de destinos

1 2 i mu u u u

11 12 1 ... nx x x 21 22 2 ... nx x x 1 2 3 i i ix x x 1 2 ...m m mnx x x

i

j

ij

u cantidad a enviar desde origen iv cantidad a recibir en el destino j

c coste unitario de envio desde el origen i al destino j

1 2 j nv v v v

Variables de decisión.

Restricciones.

ijx cantidad que se envia desde el origen i al destino jRestricciones.

11

1

; 1,...,

; 1,...,

n

ijj

m

ij

x u i m

x v j n

1 2 3 m m mx x x

El primer conjunto de restricciones indica que la cantidad de producto que sale del origen i debe coincidir con la suma de lascantidades que parten de ese origen hasta los distintos destinos j = 1, . . . , n.El segundo conjunto de restricciones asegura que el total recibido en el destino j debe corresponder a la suma de todas las 

11

; 1,...,iji

x v j n

cantidades que llegan a ese destino y parten de los distintos orígenes i = 1, . . . , m.

Función objetivo. Hay que minimizar el coste total del envío, que es la suma de los costes de envío por unidad de producto multiplicado por las cantidades enviadas: m ncantidades enviadas:

1 1

m n

ij iji j

Minimizar z c x

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 22: Tema 1: Modelos lineales de optimización con variables continuas

Problema 6: transporte

d l bl d l d l f í d

1 2 3 u u u

11 12 13 x x x 21 22 23 x x x 31 32 33 x x x

Consideremos el problema del transporte de la siguiente figura, con m = 3 orígenes y n = 3 destinos, y con:

1 2 3 1 2 3

11 12 13 21 22 23 31 32 33

u = 2; u = 3; u = 4; v = 5; v = 2; v = 2;c = 0,5; c = 3; c = 2; c = 2; c = 3; c = 4; c = 2; c = 3; c = 1,5

v v v

11 12 13 21 22 23 31 32 33

1 2 3 v v v

Solución

11 12 13 2x x x

Variables de decisión

Restricciones

; ijx cantidad que se envia desde el origen i al destino j i = 1,2,3; j = 1,2,3

11 12 13

21 22 23

31 32 33

234

5

x x xx x xx x x

11 21 31

12 22 32

13 23 33

522

x x xx x xx x x

Función objetivo

22J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

11 12 13 21 22 23 31 32 33 0,5 3 2 2 3 4 2 3 1.,5Minimizar z x x x x x x x x x

Page 23: Tema 1: Modelos lineales de optimización con variables continuas

Problema 6: expresión OPL// Variables de decisiónd fl 11dvar float+ x11;dvar float+ x12;dvar float+ x13;dvar float+ x21;dvar float+ x22;dvar float+ x23;dvar float+ x31;dvar float+ x32;dvar float+ x33;

//Función objetivominimizeminimize0.5*x11+3*x12+2*x13+2*x21+3*x22+4*x23+2*x31+3*x32+1.5*x33;

//Restriccionessubject to{x11+x12+x13==2;x21+x22+x23==3;x31+x32+x33==4;

x11+x21+x31==5;x12+x22+x32==2;;x13+x23+x33==2;}

// solution (optimal) with objective 16x11 = 2;x12 = 0;x12 = 0;x13 = 0;x21 = 1;x22 = 2;x23 = 0;x31 = 2;

23

x32 = 0;x33 = 2;

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 24: Tema 1: Modelos lineales de optimización con variables continuas

Planificación de la producción multi‐períodoSe trata de determinar las cantidades que hay que producir y almacenar (stock) durante cada día de un período (período deoptimización) cuando se conoce una previsión diaria de la demanda para ese período, el coste de la producción y el coste de losl S bié l l d l k i i i l l id d á i d l l El bj i d i i i lalmacenes. Se conoce también el valor del stock inicial y la capacidad máxima de los almacenes. El objetivo esde minimizar el costetotal durante el período.

tx1x 2x nxproducción

0

n número de períodos de tiempos almacenes iniciales

+ ts1ts + 1s0s + 2s + ns1ns

demanda

almacenes 

0

max

t

t

d demanda el día ts capacidad máxima de almacenesc coste de producción en el período t

t d l i t l í d t

En esta situación hay que esperar que el sistema haga una combinación óptimo de la producción y el almacenamiento en función de sus respectivos costos diarios  y la de la demanda que se espera en cada día del período.

V i bl d d i ió

td1d 2d nd

demanda ta coste de almacenamiento en el período t

Variables de decisión

Restricciones. 

t

t

x producción en el período ts almacenamiento en el período t

1

max

; 1, 2,...,; 1, 2,...,

, 0

t t t t

t

t t

s x d s t ns s t ns x

Ecuación de balance: lo que se produce un día más lo que había almacenado dl día anteriorserá igual a la demanda de ese día más lo que se almacena para el día siguiente

No se debe sobrepasar ningún día la capacidad de los almacenes

Función de coste. 

1 ( )

n

t t t ti

Minimizar z c x a s

Suma de los costes de producción y almacenamiento durante todo el período

Restricciones de no negatividad de la variables de decisión

24J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 25: Tema 1: Modelos lineales de optimización con variables continuas

Problema 7: producción multi‐período

3x1x 2x 4x

+

3

+

1x

1s0s +

2

2s + 4s3s

Meses 1 2 3 4

Demanda 30 50 100 190

Coste producción 20 30 40 50

3d1d 2d 4d

Coste almacenamiento 5 6 7 80s 0

tx = producción en el mes t; t = 1,2,3,4

Solución

Variables de decisión

1 1

1 1 2

0+ x = 30+ ss + x = 30+ s

ts = almacenamiento en el mes t; t = 1,2,3,4Restricciones

2 1 3

3 1 4

1

s + x = 30+ ss + x = 30+ s s 40s 402

3

4

s 40s 40s 40

Función objetivo

25

1 2 3 4 1 2 3 4 20 30 40 50 5 6 7 8Minimizar z x x x x s s s s Función objetivo

J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 26: Tema 1: Modelos lineales de optimización con variables continuas

Problema 7: expresión OPL

//Variables de decisióndvar float+ x1;dvar float+ x2;dvar float+ x3;dvar float+ x4;dvar float+ x4;dvar float+ s1;dvar float+ s2;dvar float+ s3;dvar float+ s4;

// solution (optimal) with objective 15120//Función objetivo

minimize20*x1+30*x2+40*x3+50*x4+5*s1+6*s2+7*s3+8*s;

//Restricciones

// solution (optimal) with objective 15120x1 = 70;x2 = 50;x3 = 100;x4 = 150;s1 = 40;2 40//

subject to{0+x1==30+s1;s1+x2==50+s2;s2+x3==100+s3;s3+x4 190+s4;

s2 = 40;s3 = 40;s4 = 0;

s3+x4==190+s4;

s1<=40;s2<=40;s3<=40;s4<=40;}

26J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL 

Page 27: Tema 1: Modelos lineales de optimización con variables continuas

Ejercicio

Teniendo en cuenta que tan importante es formular un modelo de programación lineal como identificar problemas reales que puedan resolversecon este tipo de modelo el ejercicio correspondiente a este tema constará de las siguientes fases:con este tipo de modelo, el ejercicio correspondiente a este tema constará de las siguientes fases:

1. Especificar un problema real que pueda resolverse con un modelo de programación lineal.

2. Obtener el modelo lineal correspondiente al problema especificado.

3. Expresar el modelo en OPL y ejecutarlo en el entorno de desarrollo.

4. Variar los datos de la especificación y observar el efecto que tiene sobre la solución.

27J.J. RUZ, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL