You are on page 1of 27

Tema1:Modeloslinealesdeoptimizacinconvariablescontinuas.

Objetivos del tema:

Introducir los problemas de programacin lineal.

Aprender a formular el modelo de un problema de programacin lineal.

Estudiar las p
propiedades
p de los modelos de p
programacin
g lineal.

Conocer la expresin de un modelo de programacin lineal con lenguajes de modelado.

Conocer los elementos bsicos del lenguaje de modelado OPL (Optimization Programming Language).

Saber los tipos de soluciones que pueden tener los problemas de programacin lineal.

Modelar matemticamente y resolver en OPL varios problemas de programacin lineal

1
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Introduccin a la programacin lineal

El objetivo de un modelo matemtico es reproducir la realidad de la forma ms fiel posible a fin de entender cmo se comporta y
poder obtener respuestas a determinadas acciones.

L programacin
La i lineal
li l es un tipo
i ded modelo
d l matemtico
i que se desarroll
d ll a partir
i de
d la
l Segunda
S d Guerra
G M di l para resolver
Mundial l
cierto tipo de problemas de asignacin de recursos entre distintas actividades.

Despus de la guerra las aplicaciones de la programacin lineal se extendieron a una amplia variedad de problemas, de manera
que hoy se utiliza en campos como la ingeniera, la economa, la gestin, y muchas otras reas de la ciencia, la tcnica y la
i d ti
industria.

La programacin lineal fue formulada por George B. Dantsig alrededor de 1947, cuando trabajaba como consejero matemtico
para la Fuerza Area de Estados Unidos en el desarrollo de un sistema automtico de planificacin temporal de despliegue,
entrenamiento y abastecimiento logstico.

Debido a que la Fuerza Area denomina programas a sus diversos planes y proyectos a implementar, en el primer artculo
publicado por Dantzig se refiere a este problema como programacin en una estructura lineal.

El trmino programacin lineal fue acuado por el economista y matemtico T.C. Koopmans en el verano de 1948 cuando
colaboraba con el propio Dantzig.
Dantzig

En 1949, Dantzig public el mtodo del simplex para resolver programas lineales, mtodo que fue ampliamente aceptado por su
capacidad de producir soluciones en un tiempo razonable.

La programacin lineal estudia la optimizacin (minimizacin o maximizacin) de una funcin lineal que satisface un conjunto de
restricciones lineales de igualdad y/o desigualdad.

2
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Formulacin de un modelo de programacin lineal

En el proceso de formulacin de un modelo de programacin lineal hay que dar los siguientes pasos:

1
1. Determinacin de las variables de decisin.
decisin Representan los elementos del sistema a modelar que son controlables
por el decisor. En los modelos lineales continuos estas variables toman como valores nmeros reales y se representan
por letras con subndices x1 , x2 ,...como se acostumbra a hacer con las variables matemticas, o literales alusivos a su
significado: peso, valor, etc. En el primer caso tambin se utiliza la representacin como vector de un conjunto
indexado de variable: x ( x1 , x2 ,...)

2. Determinacin de las restricciones. Representan las limitaciones prcticas de determinados recursos o imposiciones
fsicas de la realidad. Se expresan como ecuaciones e inecuaciones lineales de las variables de decisin.
Matemticamente adoptan una de las siguientes formas:

gi ( x ) bi ; g i ( x ) bi ; gi ( x ) bi
i 1,...m; con gi una funcin lineal en x

3. Formulacin de la funcin objetivo. Se trata de la funcin que mide la calidad de la solucin y que hay que optimizar
(maximizar un beneficio o minimizar un coste).
coste) Tambin es una funcin lineal de todas o parte de las variables de
decisin.
Maximizar z = f(x); Minimizar z = f(x)

Vamosaverestospasosenlaformulacindeunmodelodeprogramacinlinealutilizandoelsiguienteproblemade
asignacinderecursos:

3
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 1: asignacin de recursos
En una fbrica de cerveza se producen tres tipos distintos: rubia, negra y de baja graduacin, y para ello se utilizan dos materias
primas: malta y levadura. En la siguiente
p g tabla se especifican:
p a)) la cantidad de materias p
primas consumidas p
para p
producir una unidad
de cada tipo de cerveza; b) las cantidades disponibles de cada materia prima; y c) el precio unitario de venta de cada tipo de cerveza.
Consumodemateriasprimasporcadatiposdecerveza
Materiaprima rubia negra baja Disponibilidad
malta 1 2 2 30
levadura 2 1 2 45
Preciodeventa 7 4 3
Se trata de conocer la cantidad a fabricar de cada tipo de cerveza de manera que el beneficio sea mximo.

Solucin
Los tres elementos que definen un problema de programacin lineal son: variables de decisin, restricciones y funcin objetivo.

Variables de decisin
Del enunciado del problema se desprende que las variables de decisin son las producciones a fabricar de cada tipo de cerveza:
x1 = produccin de cerveza rubia
x2 = produccin de cerveza negra
x3 = produccin de cerveza de baja graduacin

Restricciones
Las restricciones en este caso imponen que las materias primas utilizadas en la fabricacin de los tres tipos de cerveza no deben
sobrepasar las cantidades disponibles:
x1 2 x2 2 x3 30 (malta ili d malta
l utilizada l disponible
di ibl )
2 x1 x2 2 x3 45 (levadura utilizada levadura disponible)
x1 , x2 , x3 0 (no negatividad )
Funcin objetivo
En este caso el objetivo es maximizar el beneficio, que viene dado por la suma de los precios de venta de la produccin:
Maximizar z 7x1 4x2 3x3
4
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
El modelo matemtico de programacin lineal para el problema de asignacin de recursos queda formulado de la siguiente manera:

Maximizar Z 7 x1 4 x2 3 x3
sujeto a : x1 2 x2 2 x3 30
2 x1 x2 2 x3 45
x1 , x2 , x3 0
En este primer mdulo de la asignatura nos vamos a ocupar de modelar problemas de programacin lineal y resolver los modelos
utilizando los lenguajes de modelado disponibles comercialmente. En el mdulo segundo abordaremos los algoritmos internos que
utilizan estos lenguajes. Sin entrar de momento en los detalles de estos lenguajes, la expresin del problema anterior en dos modernos
lenguajes de modelado (OPL y OML) sera la siguiente:

//Variablesdedecisin Model[
Modelo OPL Modelo OML
dvar float+x1; //Variablesdedecisin
dvar float+x2; Decisions[Reals[0,Infinity],
dvar float+x3; x1,x2,x3,z],

//Funcinobjetivo //Funcinobjetivo
maximize 7*x1+4*x2+3*x3; Goals[Maximize [z]],

//Restricciones //Restricciones
subject to Constraints
{ [z==7*x1+4*x2+3*x3,
x1+2*x2+2*x3<=30; x1+2*x2+2*x3<=30,
2*x1+x2+2*x3<=45; 2*x1+x2+2*x3<=45
} ]]

Es evidente que estos lenguajes disponen de una sintaxis muy prxima a la pura expresin matemtica.
matemtica El texto en verde corresponde
a comentarios, y el azul a palabras reservadas de cada lenguaje. La solucin que nos dan los respectivos sistemas son la siguientes:

//solution(optimal)withobjective160 Decisions:
x1=20; x1:20
x2=5;; x2:5
Solucin OPL
x3=0; x3:0
z:160 Solucin OML

5
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Propiedadesdelmodelolineal

Laformulacin algebraicageneraldeunproblemadeprogramacinlinealdevariablescontinuaspodemoshacerladelasiguientemanera:

Maximizar Minimizar z c1 x1 c2 x2 ... cn xn


sujeta a :
a11 x1 a12 x2 ... a1n xn b1
a21 x1 a22 x2 ... a2 n xn b2
...
am1 x1 am 2 x2 ... amn xn b1
x1 0, x2 0,..., xn 0

Cuatro son las propiedades generales que debe cumplir un problema para poderse plantear como un problema de programacin lineal
Cuatrosonlaspropiedadesgeneralesquedebecumplirunproblemaparapoderseplantearcomounproblemadeprogramacinlineal:

Proporcionalidad
Lacontribucinalcosteyalasrestriccionesesdirectamenteproporcionalalvalordelasvariablesdedecisin.

Aditividad
Elcosteylasrestriccionessonlasumadirectadelosvaloresaportadosporlasvariablesdedecisin.

Divisibilidad
Lasvariablesdedecisinpuedendividirseencualquiertipodefraccin,esdecir,tomancomovaloresnmerosreales.

Determinismo
Lasvalores de aij , ci , b j para i 1,2,..., n, j 1,2,..., m mantienensuvalorconstante.

6
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 2: produccin
Una compaa dispone de un mximo de 14 horas diarias de mano de obra para fabricar diariamente dos productos p1 y p2. Una
unidad de producto p1 necesita 4 horas mientras que una unidad de producto p2 requiere 3. Para la produccin se necesita una
materia prima de la que se dispone de 12 unidades diarias, requirindose 2 unidades para producir una unidad de p1, y 3
unidades para producir una unidad de p2. Qu cantidad de cada producto maximiza la produccin?

Solucin

Variables de decisin
x1 Produccin diaria de p1
x2 Produccin diaria de p2
Restricciones
Horas requeridas para producir x1 unidades de p1 y x2 unidades de x2 < horas disponibles al da de mano de obra
Materia prima requerida para producir x1 unidades de p1 y x2 unidades de p2 < unidades de materia prima disponible al da

4x1 3x2 14
2x1 3x2 12
Funcin objetivo
Hay que maximizar la produccin total diaria de la compaa
Maximizar z x1 x2

El modelo de programacin lineal para este problema sera:

Maximizar z x1 x2
sujeta a :
4x1 3x2 14
2x1 3x2 12
x1 0, x2 0

7
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Interpretacin econmica del problema de programacin lineal

EEn ell Problema


P bl 1 se trataba
b de
d asignar
i d recurso limitados
dos li i d (malta
( l y levadura)
l d ) a tres actividades
i id d de
d la
l compaa
(fabricacin
(f b i i ded
cerveza rubia, negra o de baja graduacin) optimizando (maximizando) el beneficio global. Conocamos la disponibilidad
(cantidad) de cada recurso, el consumo de recursos por cada actividad, y el beneficio que se obtiene por unidad de producto
fabricado de cada actividad. Este ejemplo nos permite interpretar un problema general de programacin matemtica como un
problema de asignacin ptima de recursos a una serie de actividades:

Problema general de programacin lineal Interpretacin econmica


(expresado en forma estndar de maximizacin) (asignacin ptima de recursos)
Consumoderecursosporunidadde
Maximizar z c1 x1 c2 x2 ... cn xn actividad

sujeta a : Actividad
Cantidadderecursos
a11 x1 a12 x2 ... a1n xn b1 Recursos 12...n disponibles
a21 x1 a22 x2 ... a2 n xn b2 a11 a12 ... a1n
1 b1
... a21 a22 ... a2 n
2 b2
am1 x1 am 2 x2 ... amn xn b1 . ... ... ... ... ...
.
m am1 am 2 ... amn bm
x1 0, x2 0,..., xn 0
Contribucinazpor c1 c2 ... cn
unidaddeactividad

z valor del rendimiento


x j nivel de la actividad j ( para j 1, 2,..., n)
c j incremento en z que se obtiene al aumentar una unidad el nivel de la actividad j
bi cantidad de recurso i disponible para asignarse a las actividades ( para i 1, 2,..., n)
aij cantidad del recurso i consumido por cada unidad de la actividad j

8
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Introduccin al lenguaje de modelado OPL (Optimization Programming Language)

Aunque ell estudio


A di detallado
d ll d de d los
l lenguajes
l j de
d modelado
d l d lo
l abordaremos
b d en ell tema 3,
3 en este punto introduciremos
i d i ell lenguaje
l j OPL
que utilizaremos en la resolucin de los problemas que plantearemos a lo largo de la asignatura. La razn est en que los recursos de
OPL necesarios para expresar los pequeos modelos de esta introduccin son sencillos y bastante intuitivos.
La estructura general de un programa OPL es la siguiente:

// Variables de decisin El texto precedido de // es una lnea de comentario sin valor sintctico
Eltextoprecedidode//esunalneadecomentariosinvalorsintctico.
dvar float+ Variable de decisin 1;
Lasvariablesdedecisinnonegativassedeclaranconlaspalabrasreservadas
dvar float+ Variable de decisin n; dvar float+ yserepresentanconliterales:x1,var,peso,
Lafuncinobjetivosedeclaraconlaspalabrasreservadasmaximize o
// Funcin objetivo minimize
maximize
i i F
Funcin
i objetivo;
bj ti
Lasrestriccionessedeclaranentrellaves{..}precedidasdelaspalabras
// Restricciones reservadassubject to
subject to
Lasdeclaracionesdevariables,funcinobjetivoyrestriccionesterminanen;
{
Restriccin 1; Lossmbolosdelosoperadoreslinealesson+paralasumay*parala
multiplicacin.
Restriccin m
Lossmbolosrelacionalesdelasrestriccionesson:==paralaigualdad;<=
}
paramenoroigual;y>=paramayoroigual.
// Variables de decisin
Aplicando la sintaxis OPL al modelo lineal del Problema 1 resulta lo siguiente: d
dvar fl t+
float+ x1;
1
dvar float+ x2;
dvar float+ x3;
Maximizar z 7 x1 4 x2 3 x3
// Funcin objetivo
sujeto a : x1 2 x2 2 x3 30 OPL maximize 7*x1 + 4*x2 + 3*x3;
2 x1 x2 2 x3 45
// Restricciones
x1 , x2 , x3 0 subject to
{
x1 + 2*x2 + 2*x3 <= 30;
2*x1
2 x1 + x2 + 2*x3
2 x3 <=
< 45;
LospasosnecesariosparadescargarOPLycrearproyectosquepermitan }
ejecutarmodelosOPLapareceneneldocumento:IDEOPL.pdf
9
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Representacin grfica de los problemas de programacin lineal
Un problema de programacin lineal con 2 variables de decisin se puede representar grficamente en el plano cuyas coordenadas son las
propias variables.
variables Para ello se representan las rectas que resultan de convertir las restricciones de desigualdad en ecuaciones,
ecuaciones y se
determina con el signo de desigualdad el semiplano que define cada restriccin (marcado en el dibujo con una flecha verde perpendicular
a la recta). La regin factible queda determinada por la interseccin de los semiplanos que definen las restricciones. Por ejemplo,
representemos grficamente el siguiente problema de programacin lineal:

Maximizar z x1 3 x2
Las rectas paralelas de isobeneficio aumentan el Para dibujar las rectas correspondientes a
valor de z conforme se alejan del origen en el sujeto a : x1 x2 6 las restricciones y a valores constantes de
cuadrante positivo. Es evidente que el valor de z de -x1 2 x2 2 la funcin objetivo (isobeneficio) se
la recta que pasa por el punto extremo (2,4) de la hallan los cortes con los ejes :
regin factible determina el valor ptimo del x1 , x2 0
problema (z=14). Las rectas con valores de z
x 0 x2 6
superiores a 14 ya no itersectan la regin factible. x1 x2 6 1
Veremos en el tema 4 que el ptimo de un x2 0 x1 6
problema lineal es siempre un punto extremo de la x2
regin factible. Para 2 variables un vrtice del x1 0 x2 2
polgono factible.
factible x1 x2 6 x1 x2 2 x1 x2 2
x2 0 x1 2
Podemos comprobar la solucin resolviendo el
x 0 x2 1
6
problema en OPL:
x1 3 x2 3 1
5 x2 0 x1 3
//Variables de decisin
dvar float+ x1;
dvar float+ x2; 4 ( x1 2;
2 x2 4;
4 z 14)
//Funcin objetivo
maximize x1 + 3*x2; 3
x1 3 x2 14
//Restricciones
subject to 2 Crecimientodelbeneficio
{
Rectasdeisobeneficio
x1 + x2 <= 6; Reginfactible
-x1 + x2 <= 2; 1
}

//solution(optimal)withobjective14
0 x1
x1=2;; 01234567
x2=4; x1 3 x2 3

10
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Clasificacin de los problemas de programacin lineal segn el tipo de solucin
Atendiendo al tipo de solucin podemos clasificar los problemas de programacin en las siguientes categoras:

solucin nica
factible
mltiples soluciones

problema de programacin lineal
no factible
con z infinito
no acotado
con z finito (rayo ptimo)

Veamos con la ayuda de la representacin grfica de la regin factible un ejemplo de cada tipo.

Problemafactible:solucinnica Problemafactible:solucionesmltiples Problemanofactible

Maximizar z 2 x1 x2 Maximizar z 6 x1 10 x2 Maximizar z x1 3 x2

sujeto a : 5x1 2 x2 10 sujeto


j a: 5x1 2 x2 10 sujeto
j a: x1 x2 6

3x1 5 x2 15 3x1 5 x2 15 x1 2 x2 4

x1 , x2 0 x1 , x2 0 x1 , x2 0
x2 x2 Un problema factible que tenga la recta
x2
d isobeneficio
de i b fi i paralela
l l a la
l recta
t de
d una
restriccin que contenga un punto
extremo ptimo, tendr todo un
segmento de puntos ptimos.

5x1 2 x2 10 5x1 2 x2 10 Infinitas Reginfactiblevaca:


Solucin
l soluciones
l i problemanofactible
nica

3x1 5 x2 5 3x1 5 x2 5
Z 6 x1 10 x2 x1 2 x2 4
Z 2 x1 x2 x1 x2 6
x1 x1 x1

11
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Clasificacin de los problemas de programacin lineal segn el tipo de solucin (continuacin)

Problemanoacotado Problemanoacotado Restriccionesredundantes


(zinfinito) (zfinito,rayoptimo)
Maximizar z 2 x1 x2
Maximizar z 2 x1 5 x2 Minimizar z 10 x1 4 x2 sujeto a : x1 x2 2
sujeto a : x1 x2 4 sujeto a : x1 x2 2 -x1 x2 3
x1 2 5x1 2 x2 16 3x1 2 x2 10
x1 , x2 0 x1 , x2 0 x1 , x2 0
x2 x2 z=2z=12z=32 x2
Reginfactibledefinida

Reginfactibleinfinita
Reginfactible sloporunarestriccin
conz=32(rayoptimo)
infinita
5 x1 2 x2 16
x1 x2 3

x1 2 x1 x2 2
x1 2 x2 4 x1 x2 2 3 x1 2 x2 10
x1 x1 x1

Los lenguajes
g j de modelado como OPL suelen informar del carcter factible,, no factible ((infeasible)o
f ) no acotado ((unbounded)) de la
solucin.

12
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 3: mezcla de aceites
Una fbrica produce aceite mezclando aceites refinados, dos de origen vegetal y tres de origen no vegetal. En un mes slo es posible
g
refinar 200 toneladas de vegetal y 250 de no vegetal.
g El aceite resultante debe cumplir
p un valor de dureza comprendido
p entre 3 y 6. El
costo 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 88
8,8 61
6,1 20
2,0 42
4,2 50
5,0

Se trata de refinar las cantidades apropiadas de cada aceite a fin de maximizar el beneficio de la produccin final sabiendo que una
tonelada del aceite producido se vende a 150,

Solucin
Variables de decisin
x1 = cantidad de aceite refinado VEG_1
x2 = cantidad de aceite refinado VEG_2
x3 = cantidad
id d de
d aceite
i refinado
fi d NOVEG_1
NOVEG 1
x4 = cantidad de aceite refinado NOVEG_2
x5 = cantidad de aceite refinado NOVEG_3
y cantidad de aceite a producir
Restricciones:
x1 x2 200 (aceite vegetal refinado capacidad de refino vegetal )
x3 x4 x5 250 (aceite no vegetal refinado capacidad de refino no vegetal )
, 1 +6,1x
8,8x , 4 + 5x5 6yy
, 2 + 2x3 + 4,2x (lmite superior
p de dureza del aceite p
producido)
8,8x1 +6,1x2 + 2x3 + 4,2x4 + 5x5 3 y (lmite inferior de dureza del aceite producido)
x1 + x2 + x3 + x4 + x5 y ( suma de las cantidades de los aceites refinados cantidad de aceite producido)
x1 , x2 , x3 , x4 , x5 , y 0 (no negatividad )
F i objetivo:
Funcin bj i
Maximizar z 150y - 110x1 - 1204x2 - 130x3 - 110x4 - 115x5 (valor aceite producido - coste aceites refinados)

13
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 3: expresin OPL del modelo

//Variablesdedecisin
dvar float+x1; Modelo OPL
dvar float+x2;
dvar float+x3;
d ar float+x4;
dvar float+ 4
dvar float+x5;
dvar float+y;

//Funcinobjetivo
maximize 150*y 110*x1 120*x2 130*x3 110*x4 115*x5;

//Restricciones
subject 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)withobjective17592,5925925926
y = 450; Solucin
x1 = 159,26;
x2 = 40,741;
x3 = 0;
x4 = 250;
x5 = 0;

14
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 4: asignacin de tareas

p
Una compaa monta un sistema de p
produccin en un pproceso dividido en 4 tareas denominadas M,, N,, P y Q q
que p
pueden realizarse en
cualquier orden e indistintamente por 4 equipos. En la siguiente tabla aparecen: a) El tiempo en horas que empleara cada equipo en
realizar la tarea completa; b) Las horas disponibles por cada equipo; y c) El coste de la hora de trabajo de cada equipo. Se quiere
conocer el nmero de horas de trabajo que deben asignarse a cada equipo para que se minimice el coste total del montaje del
sistema.
Tareas

Equipo M N P Q Horas disponibles Coste/hora

1 52 212 25 60 220 68,3


2 57 218 23 57 300 69,9
3 51 201 26 54 245 71
4 56 223 21 55 190 71,2

Solucin
Variables de decisin
M i , N i , Pi , Qi ; i 1, 2,3, 4
Tiempo
i asignado
i d all equipo
i i para realizar
li lasl tareas M, N, P, Q del
d l sistema
i
Restricciones
M 1 N1 P1 Q1 220
M 2 N 2 P2 Q2 300 Limitacin de las horas de trabajo disponibles por cada equipo

M 3 N 3 P3 Q3 245
M 4 N 4 P4 Q4 190 Imposicin de que terminen las 4 tareas que pueden ser realizadas
parcialmente por cada uno de los equipos
M 1 / 52 M 2 / 57 M 3 / 51 M 4 / 56 1
N1 / 212 N 2 / 218 N 3 / 201 N 4 / 223 1
No negatividad de la variables de decisin
P1 / 25 P2 / 23 P3 / 26 P4 / 21 1
Q1 / 60 Q2 / 57 Q3 / 54 Q4 / 55 1
No negatividad de la variables de decisin
M i , N i , Pi , Qi 0; i 1, 2,3, 4
Funcin de coste
Minimizar z 68,3( M 1 N1 P1 Q1 ) 69,5( M 2 N 2 P2 Q2 ) 71( M 3 N 3 P3 Q3 ) 71, 2( M 4 N 4 P4 Q4 )
15
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 4: expresin OPL

//Variables de decisin
dvar float+ M1;
dvar float+ M2;
dvar float+ M3;
dvar float+ M4;
dvar float+ N1;
dvar float+ N2;
dvar float+ N3;
dvar float+ N4;
dvar float+ P1; // solution (optimal) with objective 23162.1781094527
dvar float+ P2; M1 = 52;
dvar float+ P3; N1 = 10.547;
dvar float+ P4; P1 = 0;
dvar float+ Q1; Q1 = 0;
dvar float+ Q2; M2 = 0
0;
dvar float+ Q3; N2 = 0;
dvar float+ Q4; P2 = 0;
Q2 = 0;
//Funcin objetivo M3 = 0;
minimize 68.3*(M1+N1+P1+Q1)+69.5*(M2+N2+P2+Q2)+ N3 = 191;
71*(M3+N3+P3+Q3)+71.2*(M4+N4+P4+Q4); P3 = 0;
Q3 = 54
54;
//Restricciones M4 = 0;
subject to N4 = 0;
{ P4 = 21;
M1 + N1 + P1 + Q1 <= 220; Q4 = 0;
M2 + N2 + P2 + Q2 <= 300;
M3 + N3 + P3 + Q3 <= 245;
M4 + N4 + P4 + Q4 <= 190;

M1/52 + M2/57 + M3/51 + M4/56 == 1;


N1/212 + N2/218 + N3/201 + N4/223 == 1;
Cuando estudiemos ms a fondo en el Tema 3 el lenguaje OPL veremos
P1/25 + P2/23 + P3/26 + P4/21 == 1;
Q1/60 + Q2/57 + Q3/54 + Q4/55 == 1;
que este modelo puede expresarse de forma ms concisa haciendo uso
} de las variables indexadas y las expresiones iterativas.

16
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Formulacinmatricialdelproblemadeprogramacinlineal

Confrecuenciaseutilizalaexpresinmatricialdelproblemadeprogramacinlineal:

Maximizar o Minimizar z c1 x1 c2 x2 cn xn
Maximizar o Minimizar z cT x
sujeto a :
sujeto a Ax b
a11 x1 a12 x2 a1n xn b1 expresin x0
matricial
ti i l

am1 x1 am 2 x2 amn xn bm a11 ... a1n x1 b1 c1
, , A ... ... ... ; x ... ; b ... ; c ... ;

am1 ... amn xn bm cn
x1 , x2 , , xn 0

Porejemplo,paraelproblema3demezcladeaceitestendremoslasiguienteexpresinmatricial:

Maximizar z = -110x1 - 1204x2 - 130x3 - 110x4 - 115x5 150y


x1 x2 200
x3 x4 x5 250
expresin Maximizar z cT x
8,8x1 +6,1x2 + 2x3 + 4,2x4 + 5x5 6y 0 matricial
sujeto a Ax b
8,8x1 6,1x2 2x3 4,2x4 5x5 3 y 0
x0
x1 + x2 + x3 + x4 + x5 y 0
x1 x2 x3 x4 x5 + y 0
x1 , x2 , x3 , x4 , x5 , y 0

1 1 0 0 0 0 x1 200 -110
Hemosconvertidotodaslasrelacionesamenor 0 0 1 1 1 0 x 250 -120
oigualmultiplicandopor1losdosmiembrosde 2
lasrestriccionesconrelacinmayoroigual 8,8 6,1 2 4, 2 5 -6 x3 0 -130
A= ; x ; b ;c
8,8 6,1 2 4, 2 5 3 x4 0 -110
Larestriccindeigualdadseconvierteendos
d ld d d 1 1 1 1 1 1 x5 0 -115
restricciones:mayoroigual,ymenoroigual
- 1 -1 -1 -1 -1 1 y 0 150

17
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema general de la dieta
El problema de la dieta consiste en determinar las cantidades de distintos nutrientes que deben ingerirse para asegurar ciertas
condiciones de nutricin,
nutricin minimizando el coste de los nutrientes.
nutrientes Se conocen los contenidos nutritivos de un nmero de
alimentos, sus precios, y la cantidad mnima diaria de nutrientes aconsejada. El problema consiste en determinar la cantidad
de cada alimento que debe comprarse de manera que se satisfagan los mnimos aconsejados con un precio total mnimo.

Sidenominamos:
m nmero de nutrientes
n nmero de alimentos
aij cantidad de nutriente i en una unidad de alimento j
b j cantidad mnima de nutriente i aconsejada
c j precio
i unitario
it i del
d l alimento
li t j

Variablesdedecisin
x j cantidad que debe comprarse del alimento j
Restricciones
Como la cantidad total de un nutriente dado i es la suma de las cantidades de los nutrientes en todos los alimentos, se deben
cumplir las siguientes restricciones:
n

a x
j 1
ij j bi ; i 1,...m

x j 0; j 1,..., n

FFuncindecosto
i d t
Hayqueminimizarelpreciototaldeladieta:
n
Minimizar z c j x j
j 1

18
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema5:dieta

Consideremoselcasode4nutrientesN1,N2,N3,N4queformanpartede5alimentosA1,A2,A3,A4,A5.Enlasiguientetabla
aparecen:1)Cantidadaconsejadadecadanutriente,2)Contenidodenutrientequetienecadaalimento,y3)Costeunitariode
cadaalimento.Debemoscalcularlacantidaddecadaalimentoquedebemoscomprarparagarantizarlacantidadaconsejadade
cadanutrienteyconcostetotalmnimo.
Cantidad Contenidodenutrientesdecadaalimento_____
Nutrientes__aconsejada_A1__A2A3_A4_A5__
N1 74,2 78,6 70,1 80,1 67,2 77,0
N2 14,7 6,50 9,40 8,80 13,7 30,4
N3 0,14 0,02 0,09 0,03 0,14 0,41
N4 0,55 0,27 0,34 0,30 1,29 0,86_
Costedelosalimentos1 0,5 2 1,2 3

Solucin
Variablesdedecisin
x j cantidad que debe comprarse del alimento Aj; j = 1,2,3,4,5
Restricciones
i i
x1
78,6 70,1 80,1 67,2 77,0 74,2
6,50 x2
9,40 8,80 13,7 30,4 14,7
x3
0,02 0,09 0,03 0,14 0,41 0,14
x
0,27 0,34 0,30 1,29 0,86 4 0,55
x
5
x1 , x2 , x3 , x4 , x5 0
Funcinobjetivo

Minimizar z x1 +0,5x2 + 2x3 +1,2x4 + 3x5

19
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema5:expresinOPL

//Variables de decisin
dvar float+ x1; Modelo OPL
dvar float+ x2;
dvar float+ x3;
dvar float+ x4;
dvar float+ x5;

//Funcin objetivo
minimize x1 + 0.5*x2 + 2*x3 + 1.2*x4 + 3*x5;

//Restricciones
subject to
{
78.6*x1 + 70.1*x2 + 80.1*x3 + 67.2*x4 + 77.0*x5 >= 74.2;
6.50*x1
6.50 x1 + 9.40*x2
9.40 x2 + 8.80*x3
8.80 x3 + 13.7*x4
13.7 x4 + 30.4*x5
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,792769148366363


x1 = 0;
Solucin
x2 = 1,5303;
x3 = 0;
x4 = 0,023032;
,
x5 = 0;

20
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema general de transporte
Se debe enviar un cierto producto en determinadas cantidades u1, . . . , um, desde cada uno de los m orgenes, y recibirse en
cantidades v1, . . . , vn, en cada uno de los n destinos. El problema consiste en determinar las cantidades xij , que deben enviarse
desde el origen i al destino j, para conseguir minimizar el coste total del envo.
u1 u2 ui um
m nmero de orgenes
x11 x12 ...x1n x21 x22 ...x2 n xi1 xi 2 xi 3 xm1 xm 2 ...xmn n nmero de destinos
ui cantidad a enviar desde origen i
v j cantidad a recibir en el destino j
cij coste unitario de envio desde el origen i al destino j
v1 v2 vj vn

Variables de decisin.

xij cantidad que se envia desde el origen i al destino j


Restricciones. xm1 xm 2 xm3
n

x
j 1
ij u1 ; i 1,..., m

x
i 1
ij v1 ; j 1,..., n

El primer conjunto de restricciones indica que la cantidad de producto que sale del origen i debe coincidir con la suma de las
cantidades que parten de ese origen hasta los distintos destinos j = 1, . . . , n.
Elsegundoconjuntoderestriccionesaseguraqueeltotalrecibidoeneldestinojdebecorresponderalasumadetodaslas
cantidadesquelleganaesedestinoypartendelosdistintosorgenesi=1,...,m.

Funcinobjetivo.
Hayqueminimizarelcostetotaldelenvo,queeslasumadeloscostesdeenvoporunidaddeproductomultiplicadoporlas
cantidades enviadas:
cantidadesenviadas: m n
M inimizar z cij xij
i 1 j 1

J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema6:transporte

Consideremoselproblemadeltransportedelasiguientefigura,conm=3orgenesyn=3destinos,ycon:
d l bl d l d l f d
u1 = 2; u2 = 3; u3 = 4; v1 = 5; v2 = 2; v3 = 2; u1 u2 u3
c11 = 0,5; c12 = 3; c13 = 2; c21 = 2; c22 = 3; c23 = 4; c31 = 2; c32 = 3; c33 = 1,5
x11 x12 x13 x21 x22 x23 x31 x32 x33

v1 v2 v3

Solucin
Variablesdedecisin
xij cantidad que se envia desde el origen i al destino j; i = 1,2,3; j = 1,2,3
Restricciones
x11 x12 x13 2
x21 x22 x23 3
x31 x32 x33 4

x11 x21 x31 5


x12 x22 x32 2
x13 x23 x33 2
Funcinobjetivo
Minimizar z 0,5 x11 3x12 2 x13 2 x21 3x22 4 x23 2 x31 3 x32 1.,5 x33

22
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 6: expresin OPL
// Variables de decisin
d
dvar fl
float+ x11;
11
dvar float+ x12;
dvar float+ x13;
dvar float+ x21;
dvar float+ x22;
dvar float+ x23;
dvar float+ x31;
dvar float+ x32;
dvar float+ x33;

//Funcin objetivo
minimize
0.5*x11+3*x12+2*x13+2*x21+3*x22+4*x23+2*x31+3*x32+1.5*x33;

//Restricciones
subject 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 16


x11 = 2;
x12 = 0;
x13 = 0;
x21 = 1;
x22 = 2;
x23 = 0;
x31 = 2;
x32 = 0;
x33 = 2;

23
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Planificacindelaproduccinmultiperodo
Se trata de determinar las cantidades que hay que producir y almacenar (stock) durante cada da de un perodo (perodo de
optimizacin) cuando se conoce una previsin diaria de la demanda para ese perodo, el coste de la produccin y el coste de los
almacenes.
l S conoce tambin
Se bi ell valor
l del
d l stockk inicial
i i i l y la
l capacidad
id d mxima
i d los
de l almacenes.
l El objetivo
bj i esde
d minimizar
i i i ell coste
total durante el perodo.

x1 x2 produccin xt xn n nmero de perodos de tiempo


s0 almacenes iniciales
almacenes dt demanda el da t
s0 s1 s2 s t 1 st s n 1 sn
+ + + + smax capacidad mxima de almacenes
ct coste de produccin en el perodo t
demanda
dn
at coste
t de
d almacenamiento
l i t en ell perodo
d t
d1 d2 dt
Enestasituacinhayqueesperarqueelsistemahagaunacombinacinptimodelaproduccinyelalmacenamientoenfuncindesus
respectivoscostosdiariosyladelademandaqueseesperaencadadadelperodo.

Variablesdedecisin
V i bl d d i i
xt produccin en el perodo t
st almacenamiento en el perodo t
Restricciones.
Ecuacin de balance: lo que se produce un da ms lo que haba almacenado dl da anterior
st 1 xt dt st ; t 1, 2,..., n ser igual a la demanda de ese da ms lo que se almacena para el da siguiente

st smax ; t 1, 2,..., n
No se debe sobrepasar ningn da la capacidad de los almacenes
st , xt 0

Funcindecoste. Restricciones de no negatividad de la variables de decisin

n
Minimizar z (c x
i 1
t t a t st )
Suma de los costes de produccin y almacenamiento durante todo el perodo

24
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 7: produccin multiperodo
x1 x2 x3 x4

Meses 1 2 3 4
Demanda 30 50 100 190
s0 s1 s2 s3 s4
+ + + + Costeproduccin 20 30 40 50
Costealmacenamiento 5 6 7 8
s0 0
d1 d2 d3 d4

Solucin
Variablesdedecisin
xt = produccin en el mes t; t = 1,2,3,4
st = almacenamiento en el mes t; t = 1,2,3,4
Restricciones
0 + x1 = 30 + s1
s1 + x1 = 30 + s2
s2 + x1 = 30 + s3
s3 + x1 = 30 + s4
s1 40
s2 40
s3 40
s4 40

Funcinobjetivo
Funcin objetivo
Minimizar z 20 x1 30 x 2 40 x3 50 x 4 5 s1 6 s 2 7 s3 8 s 4

25
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 7: expresin OPL

//Variables de decisin
dvar float+ x1;
dvar float+ x2;
dvar float+ x3;
dvar float+ x4;
dvar float+ s1;
dvar float+ s2;
dvar float+ s3;
dvar float+ s4;
// solution (optimal) with objective 15120
//Funcin objetivo
x1 = 70;
x2 = 50;
minimize
x3 = 100;
20*x1+30*x2+40*x3+50*x4+5*s1+6*s2+7*s3+8*s;
x4 = 150;
s1 = 40;
//
//Restricciones
s2
2 = 40
40;
subject to
s3 = 40;
{
s4 = 0;
0+x1==30+s1;
s1+x2==50+s2;
s2+x3==100+s3;
s3+x4 190+s4;
s3+x4==190+s4;

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

26
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Ejercicio

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

1. Especificar un problema real que pueda resolverse con un modelo de programacin 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 especificacin y observar el efecto que tiene sobre la solucin.

27
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL

You might also like