Está en la página 1de 27

Tema1:Modeloslinealesdeoptimizacinconvariablescontinuas.

Objetivos del tema:


Introducir los problemas de programacin lineal.
Aprender a formular el modelo de un problema de programacin lineal.
propiedades
p
de los modelos de p
programacin
g
lineal.
Estudiar las p
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 de
d 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

30

levadura

45

Preciodeventa

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
l utilizada
ili d malta
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
dvar float+x1;
dvar float+x2;
dvar float+x3;

Modelo OPL

Model[
//Variablesdedecisin
Decisions[Reals[0,Infinity],
x1,x2,x3,z],

//Funcinobjetivo
maximize 7*x1+4*x2+3*x3;

//Funcinobjetivo
Goals[Maximize [z]],

//Restricciones
subject to
{
x1+2*x2+2*x3<=30;
2*x1+x2+2*x3<=45;
}

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

Modelo OML

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
x1=20;
x2=5;;
Solucin OPL
x3=0;

Decisions:
x1:20
x2:5
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 de
d
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
(expresado en forma estndar de maximizacin)

Interpretacin econmica
(asignacin ptima de recursos)
Consumoderecursosporunidadde
actividad

Maximizar z c1 x1 c2 x2 ... cn xn

Actividad

sujeta a :
a11 x1 a12 x2 ... a1n xn b1

Recursos

a21 x1 a22 x2 ... a2 n xn b2

...
am1 x1 am 2 x2 ... amn xn b1

12...n

Cantidadderecursos
disponibles

a11

a12

...

a1n

b1

2
.
.
m

a21

a22

...

a2 n

b2

...
am1

...
am 2

...
...

...
amn

...

Contribucinazpor
unidaddeactividad

c1

c2

...

cn

x1 0, x2 0,..., xn 0

bm

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
dvar float+ Variable de decisin 1;

dvar float+ Variable de decisin n;


// Funcin objetivo
maximize
i i
F
Funcin
i objetivo;
bj ti
// Restricciones
subject to
{
Restriccin 1;

Restriccin m
}

El texto precedido de // es una lnea de comentario sin valor sintctico


Eltextoprecedidode//esunalneadecomentariosinvalorsintctico.
Lasvariablesdedecisinnonegativassedeclaranconlaspalabrasreservadas
dvar float+ yserepresentanconliterales:x1,var,peso,
Lafuncinobjetivosedeclaraconlaspalabrasreservadasmaximize o
minimize
Lasrestriccionessedeclaranentrellaves{..}precedidasdelaspalabras
reservadassubject to
Lasdeclaracionesdevariables,funcinobjetivoyrestriccionesterminanen;
Lossmbolosdelosoperadoreslinealesson+paralasumay*parala
multiplicacin.
Lossmbolosrelacionalesdelasrestriccionesson:==paralaigualdad;<=
paramenoroigual;y>=paramayoroigual.

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

Maximizar z 7 x1 4 x2 3 x3
sujeto a :

x1 2 x2 2 x3 30

OPL

2 x1 x2 2 x3 45
x1 , x2 , x3 0

LospasosnecesariosparadescargarOPLycrearproyectosquepermitan
ejecutarmodelosOPLapareceneneldocumento:IDEOPL.pdf

// Variables
d
dvar
fl t+
float+
dvar float+
dvar float+

de decisin
x1;
1
x2;
x3;

// Funcin objetivo
maximize 7*x1 + 4*x2 + 3*x3;
// Restricciones
subject to
{
x1 + 2*x2 + 2*x3 <= 30;
2*x1
2
x1 + x2 + 2*x3
2 x3 <=
< 45;
}

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
valor de z conforme se alejan del origen en el
cuadrante positivo. Es evidente que el valor de z de
la recta que pasa por el punto extremo (2,4) de la
regin factible determina el valor ptimo del
problema (z=14). Las rectas con valores de z
superiores a 14 ya no itersectan la regin factible.
Veremos en el tema 4 que el ptimo de un
problema lineal es siempre un punto extremo de la
regin factible. Para 2 variables un vrtice del
polgono factible.
factible
Podemos comprobar la solucin resolviendo el
problema en OPL:

sujeto a :

Para dibujar las rectas correspondientes a


las restricciones y a valores constantes de
la funcin objetivo (isobeneficio) se
hallan los cortes con los ejes :

x1 x2 6
-x1 2 x2 2
x1 , x2 0

x 0 x2 6
x1 x2 6 1
x2 0 x1 6
x1 0 x2 2
x1 x2 2
x2 0 x1 2
x 0 x2 1
x1 3 x2 3 1
x2 0 x1 3

x2

x1 x2 6

x1 x2 2

6
5

//Variables de decisin
dvar float+ x1;
dvar float+ x2;

//Funcin objetivo
maximize x1 + 3*x2;

//Restricciones
subject to
{
x1 + x2 <= 6;
-x1 + x2 <= 2;
}

( x1 2;
2 x2 4;
4 z 14)

x1 3 x2 14
Crecimientodelbeneficio

Rectasdeisobeneficio

Reginfactible
1

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

0
01234567

x1

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

Maximizar z 6 x1 10 x2

Maximizar z 2 x1 x2
sujeto a :

sujeto
j
a:

5x1 2 x2 10

x2

sujeto
j
a:

3x1 5 x2 5

3x1 5 x2 5
x1

x1 x2 6
x1 2 x2 4
x1 , x2 0

x2

Un problema factible que tenga la recta


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

Solucin
l
nica

Z 2 x1 x2

5x1 2 x2 10
x1 , x2 0

x1 , x2 0

5x1 2 x2 10

Maximizar z x1 3 x2

3x1 5 x2 15

3x1 5 x2 15
x2

Problemanofactible

Problemafactible:solucionesmltiples

Infinitas
soluciones
l i

Reginfactiblevaca:
problemanofactible

x1 2 x2 4

Z 6 x1 10 x2
x1

x1 x2 6

x1

11
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL

Clasificacin de los problemas de programacin lineal segn el tipo de solucin (continuacin)

Problemanoacotado
(zinfinito)

Maximizar z 2 x1 x2

Minimizar z 10 x1 4 x2

Maximizar z 2 x1 5 x2
sujeto a :

Restriccionesredundantes

Problemanoacotado
(zfinito,rayoptimo)

sujeto a :

x1 x2 4
x1 2
x1 , x2 0

x2

x2

sujeto a :

x1 x2 2

-x1 x2 3

5x1 2 x2 16

3x1 2 x2 10

x1 , x2 0

x1 , x2 0
x2

z=2z=12z=32

Reginfactible
infinita

x1 x2 2

Reginfactibleinfinita
conz=32(rayoptimo)

Reginfactibledefinida
sloporunarestriccin

5 x1 2 x2 16

x1 x2 3
x1 2

x1 2 x2 4

x1 x2 2
x1

x1

x1 x2 2
3 x1 2 x2 10

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
y 250 de no vegetal.
g
El aceite resultante debe cumplir
p un valor de dureza comprendido
p
entre 3 y 6. El
refinar 200 toneladas de vegetal
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
, 2 + 2x3 + 4,2x
, 4 + 5x5 6yy
8,8x

(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;
dvar float+x2;
dvar float+x3;
d ar float+x4;
dvar
float+ 4
dvar float+x5;
dvar float+y;

Modelo OPL

//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;
x1 = 159,26;
x2 = 40,741;
x3 = 0;
x4 = 250;
x5 = 0;

Solucin

14
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL

Problema 4: asignacin de tareas


p
monta un sistema de p
produccin en un p
proceso dividido en 4 tareas denominadas M,, N,, P y Q q
que p
pueden realizarse en
Una compaa
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

Horas disponibles

Coste/hora

1
2
3
4

52
57
51
56

212
218
201
223

25
23
26
21

60
57
54
55

220
300
245
190

68,3
69,9
71
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 las
l 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
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
P1 / 25 P2 / 23 P3 / 26 P4 / 21 1

Imposicin de que terminen las 4 tareas que pueden ser realizadas


parcialmente por cada uno de los equipos

No negatividad de la variables de decisin

Q1 / 60 Q2 / 57 Q3 / 54 Q4 / 55 1
M i , N i , Pi , Qi 0;

i 1, 2,3, 4

No negatividad de la variables de decisin

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
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+

de decisin
M1;
M2;
M3;
M4;
N1;
N2;
N3;
N4;
P1;
P2;
P3;
P4;
Q1;
Q2;
Q3;
Q4;

//Funcin objetivo
minimize 68.3*(M1+N1+P1+Q1)+69.5*(M2+N2+P2+Q2)+
71*(M3+N3+P3+Q3)+71.2*(M4+N4+P4+Q4);
//Restricciones
subject to
{
M1 + N1 + P1
M2 + N2 + P2
M3 + N3 + P3
M4 + N4 + P4

+
+
+
+

Q1
Q2
Q3
Q4

M1/52 + M2/57 +
N1/212 + N2/218
P1/25 + P2/23 +
Q1/60 + Q2/57 +
}

<=
<=
<=
<=

220;
300;
245;
190;

M3/51 + M4/56 == 1;
+ N3/201 + N4/223 == 1;
P3/26 + P4/21 == 1;
Q3/54 + Q4/55 == 1;

//
M1
N1
P1
Q1
M2
N2
P2
Q2
M3
N3
P3
Q3
M4
N4
P4
Q4

solution (optimal) with objective 23162.1781094527


= 52;
= 10.547;
= 0;
= 0;
= 0
0;
= 0;
= 0;
= 0;
= 0;
= 191;
= 0;
= 54
54;
= 0;
= 0;
= 21;
= 0;

Cuando estudiemos ms a fondo en el Tema 3 el lenguaje OPL veremos


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

a11 x1 a12 x2 a1n xn b1

expresin
matricial
ti i l

Ax b
x0

a11 ... a1n


x1
b1
c1

A ... ... ... ; x ... ; b ... ; c ... ;


am1 ... amn
xn
bm
cn

am1 x1 am 2 x2 amn xn bm

, ,

x1 , x2 , , xn 0

Porejemplo,paraelproblema3demezcladeaceitestendremoslasiguienteexpresinmatricial:

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


x1

200

x2
x3

x4 x5

250

Maximizar z cT x
Ax b
sujeto a
x0

expresin
matricial

8,8x1 +6,1x2 + 2x3 + 4,2x4 + 5x5 6y 0


8,8x1 6,1x2 2x3 4,2x4 5x5 3 y 0

x1 +

x2 + x3 +

x4 + x5 y 0

x1

x2 x3

x4 x5 + y

x1 , x2 , x3 , x4 , x5 , y 0

Hemosconvertidotodaslasrelacionesamenor
oigualmultiplicandopor1losdosmiembrosde
lasrestriccionesconrelacinmayoroigual
Larestriccindeigualdadseconvierteendos
d
ld d
d
restricciones:mayoroigual,ymenoroigual

1
0

8,8
A=
8,8
1

- 1

0
6,1
6,1

1
2
2

1
4, 2
4, 2

1
5
5

-1

-1

-1

-1

0
x1
200
-110

x
250
-120

x3
0
-130
; x ; b
;c

x4
0
-110
x5
0
-115
1

y
1
0
150

0
-6
3

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

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;


Restricciones
i i

j = 1,2,3,4,5

x1
70,1 80,1 67,2 77,0 74,2
x2
9,40 8,80 13,7 30,4 14,7
x3
0,09 0,03 0,14 0,41 0,14
x

0,34 0,30 1,29 0,86 4 0,55


x
5
x1 , x2 , x3 , x4 , x5 0

78,6
6,50

0,02

0,27

Funcinobjetivo

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


19
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL

Problema5:expresinOPL

//Variables
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+

de decisin
x1;
x2;
x3;
x4;
x5;

Modelo OPL

//Funcin objetivo
minimize x1 + 0.5*x2 + 2*x3 + 1.2*x4 + 3*x5;
//Restricciones
subject to
{
78.6*x1 + 70.1*x2
6.50*x1
6.50
x1 + 9.40*x2
9.40 x2
0.02*x1 + 0.09*x2
0.27*x1 + 0.34*x2
}

//
x1
x2
x3
x4
x5

+
+
+
+

80.1*x3
8.80*x3
8.80 x3
0.03*x3
0.30*x3

+
+
+
+

67.2*x4
13.7*x4
13.7 x4
0.14*x4
1.29*x4

+
+
+
+

77.0*x5
30.4*x5
30.4 x5
0.41*x5
0.86*x5

>=
>=
>
>=
>=

74.2;
14.7;
0.14;
0.55;

solution (optimal) with objective 0,792769148366363


= 0;
Solucin
= 1,5303;
= 0;
= 0,023032;
,
= 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

v1

v2

vj

vn

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

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

x
i 1

ij

u1 ; i 1,..., m
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

u1 = 2;

u2 = 3; u3 = 4; v1 = 5; v2 = 2; v3 = 2;

c11 = 0,5; c12 = 3; c13 = 2; c21 = 2; c22 = 3; c23 = 4; c31 = 2; c32 = 3; c33 = 1,5

u1
x11 x12 x13

u2
x21 x22 x23

v1

v2

u3
x31 x32 x33

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.
x2

x1

s0

s1

produccin

s2

almacenes
s t 1

n nmero de perodos de tiempo


s0 almacenes iniciales

xn

xt

st

s n 1

sn

dt demanda el da t
smax capacidad mxima de almacenes
ct coste de produccin en el perodo t

demanda
d2

d1

dt

dn

at coste
t de
d almacenamiento
l
i t en ell perodo
d t

Enestasituacinhayqueesperarqueelsistemahagaunacombinacinptimodelaproduccinyelalmacenamientoenfuncindesus
respectivoscostosdiariosyladelademandaqueseesperaencadadadelperodo.
Variablesdedecisin
V
i bl d d i i
xt produccin en el perodo t

st almacenamiento en el perodo t
Restricciones.
st 1 xt dt st ; t 1, 2,..., n
st smax ;

t 1, 2,..., n

st , xt 0

Ecuacin de balance: lo que se produce un da ms lo que haba almacenado dl da anterior


ser igual a la demanda de ese da ms lo que se almacena para el da siguiente
No se debe sobrepasar ningn da la capacidad de los almacenes

Restricciones de no negatividad de la variables de decisin

Funcindecoste.

Minimizar z

(c x
i 1

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

s0

s1

x4

x3

x2

x1

s2

s3

s0 0
d1

d2

d3

Meses

Demanda

30

50

100

190

Costeproduccin

20

30

40

50

Costealmacenamiento

s4

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
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+
dvar float+

de decisin
x1;
x2;
x3;
x4;
s1;
s2;
s3;
s4;

//Funcin objetivo
minimize
20*x1+30*x2+40*x3+50*x4+5*s1+6*s2+7*s3+8*s;
//
//Restricciones
subject to
{
0+x1==30+s1;
s1+x2==50+s2;
s2+x3==100+s3;
s3+x4 190+s4;
s3+x4==190+s4;

//
x1
x2
x3
x4
s1
s2
2
s3
s4

solution (optimal) with objective 15120


= 70;
= 50;
= 100;
= 150;
= 40;
= 40
40;
= 40;
= 0;

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

También podría gustarte