Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LP s2 2004 PDF
LP s2 2004 PDF
17 de julio de 2004
La Programación Lineal (LP) es una herramienta para resolver problemas de optimización que se
caracterizan por tener como función objetivo y restricciones combinaciones lineales de las variables de
decisión. La principal ventaja radica en que existe un algoritmo eficiente (SIMPLEX) para resolver
este tipo de modelos.
1. Conceptos Básicos
Consideremos el siguiente ejemplo para describir los términos presentes en todo problema de LP.
Ejemplo 1.
Una mueblerı́a produce mesas y sillas de madera. Cada mesa es vendida en $27000 y requiere $10000
en materiales, además, el costo de unitario por mano de obra se estima en $14000. En el caso de
las sillas, su precio de venta es de $21000 y los costos son de $9000 y $10000, en materiales y mano
de obra respectivamente. La fabricación de cada producto requiere de dos tipos de labores: carpinterı́a
y terminaciones. Una mesa requiere de 1 hora de carpinterı́a y 2 horas de terminaciones. Una silla
requiere de 1 hora de carpinterı́a y 1 hora de terminaciones.
Cada semana, la mueblerı́a puede obtener todos los materiales que desee, sin embargo, se pueden
dedicar hasta 100 horas a las terminaciones y hasta 80 horas a la carpinterı́a. La demanda por mesas
no está limitada, mientras que la demanda semanal máxima por sillas es de 40.
La mueblerı́a desea maximizar sus utilidades (ingresos - costos). Formule un modelo matemático que
permita maximizar las utilidades.
1
F.I.O. Segundo Semestre 2004 Programación Lineal
hVentai Materiales
h i Mano
h de iObra Carpinterı́a
h i Terminaciones
h i Dda. Máxima
$ $ $ hr. hr. £ un. ¤
un. un. un. un. un. sem.
Mesa 27000 10000 14000 1 2 –
Silla 21000 9000 10000 1 1 40
Disponibilidad – – – 80 100 –
En el ejemplo, los costos e ingresos no dependen del valor de x1 o de x2 , por lo tanto basta
concentrarse en maximizar la diferencia entre:
µ ¶ µ ¶ µ ¶
ingresos costos de costos por
− − (1.2)
semanales materiales mano de obra
Luego, se debe expresar los términos anteriores en función de las variables de decisión x 1 y x2 .
Supondremos que todas las sillas y mesas fabricadas son vendidas (respentando las condiciones
de mercado del enunciado). Ası́:
µ ¶ µ ¶ µ ¶
ingresos ingresos ingresos
= +
semanales por mesas por sillas
³ ´¡ ³ ´³ ´ (1.3)
= $ mesas ¢ + $ sillas
mesa semana silla semana
= 27000x1 + 21000x2
Similarmente:
µ ¶
costos por
= 10000x1 + 9000x2
µ materiales ¶ (1.4)
costos por
= 14000x1 + 10000x2
mano de obra
Por lo tanto la función a maximizar queda (en miles):
2
F.I.O. Segundo Semestre 2004 Programación Lineal
1.3. Restricciones
En la medida que las variables x1 y x2 crecen, la función objetivo aumenta su valor. Por lo tanto si
se pudiera escoger arbitrariamente el valor de x1 y x2 , la mueblerı́a podrı́a hacer crecer arbitrariamente
el valor de sus utilidades. Evidentemente, en la práctica esto no es posible. En este ejemplo, el valor
de las variables está limitado por las siguientes tres restricciones:
Es importante notar que todos los valores en la expresión anterior son por semana, ya que las variables
de decisión se han escogido con esa referencia.
El valor que aparece a la derecha del signo de la desigualdad en cada restricción se denomina the
constraint’s right-hand side (rhs) o coeficiente del lado derecho de la restricción. Usualmente,
representa la cantidad disponible de cierto recurso.
Si una variable de decisión xi debe cumplir condiciones de no-negatividad, debemos agregar la re-
stricción xi ≥ 0. Si la variable de decisión xi puede asumir valores positivos y negativos se dice que la
variable xi no tiene restricción de signo (srs).
En este ejemplo, ambas variables de decisión se refieren a cantidades a producir, por lo tanto son
no-negativas, luego: x1 ≥ 0 y x2 ≥ 0. Sin embargo, en otros ejemplos las varibles pueden ser srs, por
ejemplo en el caso de que xi se refiere al saldo de alguna cuenta.
3
F.I.O. Segundo Semestre 2004 Programación Lineal
Combinando todas las expresiones anteriores, es posible completar el modelo matemático para este
problema de optimización:
La misma hipótesis del punto anterior pero suponiendo que cada hora de terminaciones equivale
a dos horas de carpinterı́a.
2. Generalización
Repasemos en primer lugar algunos conceptos de linealidad de funciones y desigualdades.
Definición 1 Una función f (x1 , x2 , · · · , xn ) de x1 , x2 , · · · , xn es una función lineal sı́ y sólo sı́ para
un conjunto de constantes c1 , c2 , · · · , cn , se tiene: f (x1 , x2 , · · · , xn ) = c1 x1 + c2 x2 + · · · + cn xn
f (x1 , x2 , · · · , xn ) ≤ b
f (x1 , x2 , · · · , xn ) ≥ b
1. Se maximiza (o minimiza) una función lineal de las variables de decisión. La función que es
maximizada o minimizada se denomina función objetivo.
2. Los valores de las variables de decisión deben satisfacer un conjunto de restricciones. Cada
restricción debe ser una ecuación o desigualdad lineal.
3. Existe una restricción de signo asociada a cada variable. Para toda variable x i , la res- tricción
de signo especifica si xi debe ser no-negativa (xi ≥ 0)o bien sin restricción de signo (srs).
4
F.I.O. Segundo Semestre 2004 Programación Lineal
3. Consecuencias y Supuestos
El hecho que la función objetivo de un PL sea una función lineal de las variables de decisión tiene
dos implicancias:
2. La contribución a la función objetivo para toda variable es independiente de los valores de las
otras variables de decisión.
Análogamente, el hecho de que cada restricción sea una ecuación o desigualdad lineal también
tiene dos implicancias:
1. La contribución de cada variable al coeficiente del lado izquierdo de cada restricción es propor-
cional al valor de la variable.
2. La contribución de cada variable al coeficiente del lado izquierdo de cada restricción es indepen-
diente de los valores de las otras variables.
Para que un modelo de LP corresponda a una representación adecuada de la realidad, las variables
de decisión deben satisfacer los dos supuestos anteriores. Adicionalmente, se agregan dos supuestos:
el supuesto de Divisibilidad y el de Certeza.
El Supuesto de Divisibilidad requiere que cada variable de decisión pueda tomar valores frac-
cionarios. En el ejemplo anterior, el supuesto se traduce en que es aceptable producir 2.4 sillas ó 1.6
mesas. Evidentemente, el supuesto de divisibilidad no se satisface en el ejemplo. En este caso se puede
proceder a formular el modelo como un problema de programación lineal entera (ILP), problema en el
cual una o más variables deben ser enteras. Este tipo de problema se estudiará más adelante. Cuando
no se satisface el supuesto de divisibilidad, una posibilidad es redondear la solución obtenida a un
valor entero, sin embargo no existen garantı́as que dicha solución sea la mejor.
El Supuesto de Certeza exige que cada parámetro: coeficientes de la función objetivo, coeficientes
del lado derecho, etc. sean conocido con certeza, es decir, no se acepta incertidumbre en sus valores.
Es claro que es muy difı́cil que un problema cumpla exactamente con todos los supuestos. Sin embargo,
un modelo puede ser útil aunque difiera de la realidad si se es consistente con los requerimientos más
estrictos del problema y se tienen presente las limitaciones al interpretar los resultados.
Definición 4 La región factible para un LP es el conjunto de puntos que satisfacen todas las re-
stricciones (incluidas las de signo) de un problema de LP.
5
F.I.O. Segundo Semestre 2004 Programación Lineal
La mayorı́a de los problemas de LP tienen sólo una solución óptima. Sin embargo, existen muchos
problemas de LP que no poseen solución óptima o bien poseen varios o infinitos valores óptimos.
5. Algunos Ejemplos
5.1. Problema de la Dieta
Una dieta diaria satisfactoria debe contener al menos 2000 [kCal], 55 [g] de proteı́nas y 800 [mg] de
Calcio. Se pide formular un modelo que permita determinar una dieta satisfactoria de mı́nimo costo
a partir de los alimentos indicados en el Tabla 5.1.
h i £ u ¤
Alimento Porción Energı́a [kCal] Proteı́nas [g] Calcio [mg] Precio u$ Lı́mite dı́a
Avena 28 110 4 2 3 4
Pollo 100 205 32 12 24 3
Huevos 2 160 13 54 13 2
Leche 237 160 8 285 9 8
Pastel 170 420 4 22 20 2
Cerdo 260 260 14 80 29 2
Modelo:
En este caso resulta natural definir como variable de decisión xi la cantidad de alimento tipo ”i”(i =
1 . . . 6) a consumir. Como cada alimento tiene un costo, basta ponderar cada variable de decisión por
su respectivo coeficiente y construir la función objetivo a minimizar. Las restricciones obedecen a los
lı́mites diarios de consumo por alimento y a las condiciones de energı́a, proteı́nas y calcio que debe
cumplir la dieta. Por lo tanto, el modelo queda:
6
F.I.O. Segundo Semestre 2004 Programación Lineal
Las enfermeras que empiezan a trabajar en los perı́odos 2, 3 y 4 ganan US$40 al dı́a, y aquellas
que comienzan en los perı́odos 1, 5 y 6 ganan US$50 al dı́a. ¿Cuál es la planificación de los turnos de
las enfermeras que minimizan los costos por salarios?
Modelo:
En este caso podemos identificar como variable de decisión el número de enfermeras N i que comienza
a trabajar en el turno ”i”(i = 1 . . . 6). De esta forma, la función objetivo queda:
Evidentemente, la función anterior debe ser minimizada. Para construir las restricciones es conveniente
recurrir a una representación gráfica de los turnos (Figura 5.1).
Turno
1 2 3 4 5 6
N1
N2
N3
N4
N5
N6
Figura 5.1: Esquema de los turnos
De la gráfica anterior se observa que en cada bloque trabajan las enfermeras que comenzaron su
turno en dicho bloque, pero también las que empezaron su turno en el bloque anterior. Por lo tanto,
las restricciones de personal mı́nimo por turno quedan:
N1 + N 2 ≥ 60
N2 + N 3 ≥ 50
N3 + N 4 ≥ 35
N4 + N 5 ≥ 55
N5 + N 6 ≥ 40
N6 + N 1 ≥ 25
7
F.I.O. Segundo Semestre 2004 Programación Lineal
Ni ≥ ∀ i
Modelo:
En este caso la decisión a tomar corresponde a la producción de computadores por trimestre. Co-
mo se puede fabricar computadores en horario normal y en sobretiempo es conveniente separar ambos
tipos de producción en variables distintas. Además, se debe decidir en cada perı́odo cuantas unidades
guardar en inventario. Definamos las siguientes variables (∀ t = 1 . . . 4):
8
F.I.O. Segundo Semestre 2004 Programación Lineal
Modelo:
La decisión consiste simplemente en determinar el número de productos que son transportados desde
cada origen hacia cada destino. Luego, se emplearán las siguientes variables:
Las restricciones corresponden a la capacidad máxima en cada origen y a la demanda en cada destino.
Además, como las variables representan cantidades, deben ser positivas.
Pm
xij ≤ ei ∀ i = 1 . . . n (disponibilidad)
Pj=1
n
i=1 xij ≥ dj ∀ j = 1 . . . m (demanda)
xij ≥ 0 ∀i×j (restricción de signo)
9
F.I.O. Segundo Semestre 2004 Programación Lineal
Modelo:
Para poder formular un modelo para el problema supondremos que no existen pérdidas en el pro-
ceso de refinamiento y que tanto el octanaje como la presión de vapor se pueden mezclar linealmente.
De acuerdo al supuesto anterior debemos definir variables que nos permitan controlar que propor-
ción de cada tipo de petróleo se empleará para fabricar cada tipo de gasolina, ası́:
Como se conoce el precio de venta de cada gasolina y el costo de cada petróleo, la función objeti-
vo se reduce a maximizar la diferencia entre ingresos y costos, es decir, las utilidades.
A continuación construimos las restricciones. Las restricciones respecto de inventario disponible y de-
manda de cada tipo de gasolina se explican por sı́ solas:
Las restricciones de presión de vapor y de octanaje mı́nimo deben ser normalizadas respecto de la
10
F.I.O. Segundo Semestre 2004 Programación Lineal
cantidad total fabricada, que no es necesariamente la cantidad máxima o mı́nima posible de fabricar.
25x11 +15x21
x11 +x21 ≤ 23 (Presión de vapor máxima gasolina tipo 1)
25x12 +15x22
x12 +x22 ≤ 23 (Presión de vapor máxima gasolina tipo 2)
87x11 +98x21
x11 +x21 ≥ 88 (Octanaje mı́nimo gasolina tipo 1)
87x12 +98x22
x12 +x22 ≥ 88 (Octanaje mı́nimo gasolina tipo 2)
xij ≥ 0 ∀i×j
Los costos fijos semanales son de $800. Los gastos de operación variable son de $1,0 por hora de
trabajo de obrero no calificado y $2,4 por hora de obrero calificado. Los dispositivos mecánicos sin
acabar son vendidos a la planta a $6,5 cada uno. El taller tiene un contrato bajo el cual debe entregar
100 de estos dispositivos semanalmente a la empresa. El dueño del taller tiene como polı́tica el producir
no más de 50 dispositivos a la semana por sobre el contrato.
Los dispositivos terminados se venden a $15 cada uno sin restricciones de mercado.
Se requieren 0,5 horas de obrero no calificado y 0,25 horas de obrero calificado para producir un
dispositivo sin acabar listo para entregar a la otra empresa. Uno de estos dispositivos puede ensam-
blarse y dejarlo terminado agregándole 0,5 horas de trabajador calificado.
Un dispositivo listo para entregar al mercado se puede producir con 0,6 horas de obrero no califi-
cado y 0,5 horas de obrero calificado.
Plantear el modelo de Programación Lineal que permita responder la consulta: ¿ Cómo y cuánto
producir para cumpir el contrato de modo de maximizar las utilidades ?
Modelo:
En este caso, es posible establecer tres tipo de productos: intermedio (i = 1), intermedio que se
acaba (i = 2) y acabado (i = 3). Por lo tanto, se puede definir las siguientes variables:
De acuerdo al enunciado, los dos obreros no calificados y el obrero calificado trabajan 40 horas se-
manales fijas, por lo tanto, sólo es necesario cuantificar como variables las horas extraordinarias de
trabajo.
zj = horas extraordinarias de los trabajadores tipo j j = 1, 2
Donde tipo 1 corresponde a obreros no calificados y tipo 2 a obreros calificados.
11
F.I.O. Segundo Semestre 2004 Programación Lineal
Como existe información de costos de producción y de precio de venta para razonable plantear el
problema como uno de maximización de utilidades. Luego, debemos expresar la diferencia entre in-
gresos (I) y costos (C) como función de las variables de decisión:
I = 6,5 × x1 + 15 (x2 + x3 )
x1 ≥ 100
x1 ≤ 150
Las otras restricciones tienen que ver con la disponibilidad de mano de obra para producción:
x i , zj ≥ 0 ∀ i, j
una demanda mı́nima diaria de 90 pasajeros a Antofagasta, 100 a Temuco, 200 a Puerto Montt
y de 120 pasajeros a Punta Arenas. Además, lo que la aerolı́nea recibe por pasajero a cada lugar
es de 40 si el destino es Antofagasta, 40 si el destino es Temuco, 45 si el destino es Puerto Montt
y 70 si se viaja a Punta Arenas.
Los datos tanto de operación y de disponibilidad que actualmente tiene la aerolı́nea se muestran
en el Tabla 5.6. Finalmente, se ha dispuesto (de preferencia, pero no obligatoriamente) atender
12
F.I.O. Segundo Semestre 2004 Programación Lineal
más de una ruta por cada tipo de avión, ante lo cual se han planteado condiciones al diseño
del sistema de pasajeros (Tabla 5.7). Determinar el modelo de programación lineal que permita
optimizar la asignación de los aviones a las distintas rutas.
Modelo:
Para plantear el problema, se debe definir variables de decisión que sean capaces de reflejar
el tipo de avión (i = 1, . . . 3) y el destino (j = 1, . . . 4) al que es asignada. Luego, se define:
En este problema, no se conoce el valor exacto de la demanda por pasajes ya que sólo se conoce
el valor mı́nimo de la demanda por pasajes. Por lo tanto, se puede formular la función objetivo
de dos formas: como un un problema de maximización de las utilidades obtenidas de la diferencia
entre el ingreso mı́nimo asociado a la demanda mı́nima conocida y el costo de asignación de los
aviones (ingresos constantes), o bien simplemente como un problema de minimización de costos
de asiganción.
Intuitivamente es claro que maximizar una constante menos unas función frente a minimizar
la misma función es equivalente, por lo que cualquiera de las dos formulaciones conduce a la
misma solución. Luego, la función objetivo queda:
3 X
X 4
Min cij × xij
i=1 j=1
Donde los coeficientes cij corresponden a los datos del Tabla 5.5. Luego, se procede a plantear
las restricciones. En primer lugar se debe garantizar poder satisfacer la demanda mı́nima, por lo
tanto basta ponderar la capacidad de cada tipo de avión por el número asignado a cada destino
j:
50x1j + 30x2j + 20x3j ≥ dj ∀ j = 1, . . . 4
Donde dj representa la demanda de cada destino j, es decir: 90, 100, 200 y 120 para Antofagasta,
Temuco, Puerto Montt y Punta Arenas, respectivamente.
13
F.I.O. Segundo Semestre 2004 Programación Lineal
También existe una restricción asociada al número de viajes diarios máximo por tipo de avión i
a cada destino j:
xij ≤ mij ∀i×j
Los coeficientes mij corresponden a los datos del Tabla 5.7.
xij ≥ 0 ∀i×j
2. Un importador de whisky está planificando su negocio considerando que en las próximas tem-
poradas tendrá las siguientes demandas (en miles de botellas):
Tipo Temporadas
1 2 3 4
Seco 10 12 14 8
Frutoso 13 15 17 19
Añejo 21 25 9 11
El whisky seco lo vende a 34 unidades monetarias por botella, el frutoso a 28, 5 y el añejo a
22, 5, en las primeras dos temporadas. En las siguientes temporadas se espera poder venderlos
en un 5 % más caro. Cada tipo de whisky es elaborado mezclando tres materias primas, A, B y
C, de las cuales puede importar un máximo de 2000, 2500 y 1200 botellas por temporada a un
costo de 35, 25 y 20 unidades monetarias, respectivamente. Estos costos, válidos para la primera
temporada, deberı́an aumentar un 2 % en cada temporada. El whisky seco debe contener por lo
menos un 60 % de la materia prima 1 y no más de un 20 % de la materia prima 3, el frutoso
debe contener por lo menos un 15 % de la materia prima 1 y no más de un 60 % de la materia
prima 3, y el añejo debe contener por lo menos un 50 % de la materia prima 2. Cada botella de
whisky fabricada en una temporada puede ser vendida en dicha temporada o almacenada a un
costo unitario por temporada de 0, 5 unidad monetaria para ser vendida posteriormente.
Formule un modelo de programación lineal que permita optimizar las actividades del importador.
Defina claramente variables, función objetivo y restricciones.
Modelo:
Variables:
14
F.I.O. Segundo Semestre 2004 Programación Lineal
Función objetivo:
4
X
máx (1 + (j − 1) × 0,05) (34y1j + 28,8y2j + 22,5y3j )
j=1
4 X
X 3 3 X
X 3
− (1 + (j − 1) × 0,02) (35xijA + 25xijB + 20xijC ) − 0,5 zij
j=1 i=1 j=1 i=1
Restricciones:
• Disponibilidad de materia prima:
3
X
xijA ≤ 2000 ∀ j = 1...4
i=1
3
X
xijB ≤ 2500 ∀ j = 1...4
i=1
X3
xijC ≤ 1200 ∀ j = 1...4
i=1
15
F.I.O. Segundo Semestre 2004 Programación Lineal
xijk ≥ 0 ∀ i, j, k
yij , zij ≥ 0 ∀ i, j
Formule un modelo de programación lineal que permita planificar la operación de la fábrica du-
rante los próximos n meses de forma tal de minimizar el costo total. Defina claramente variables,
función objetivo y restricciones.
Modelo:
Variables:
xij : Cantidad de artı́culos de tipo i producidos en el mes j; ∀i = 1, . . . , m, j = 1, . . . , n.
sij : Cantidad de artı́culos de tipo i almacenados en el mes j; ∀i = 1, . . . , m, j =
1, . . . , n.
yj : Cantidad de horas extras de mano de obra en el mes j: ∀j = 1, . . . , n.
Función objetivo:
16
F.I.O. Segundo Semestre 2004 Programación Lineal
Minimizar costo total = costo de producción + costo de mano de obra + costo de almace-
namiento
X m
n X n
X n X
X m
M in z = xij × ci + yj × cst + sij × s
j=1 i=1 j=1 j=1 i=1
Restricciones
• Mano de obra:
m
X
xij × moi ≤ hj + yj ∀j = 1, . . . , n
i=1
yj ≤ stj ∀j = 1, . . . , n
• Demanda:
• Inventario final:
sin ≥ si ∀i = 1, . . . , m
• No-negatividad:
xij , sij , yj ≥ 0 ∀i = 1, . . . , m, j = 1, . . . , n
17
F.I.O. Segundo Semestre 2004 Programación Lineal
Formule un modelo de programación lineal que permita planificar la invasión de Irak a costo
mı́nimo.
Modelo:
Variables:
xi = número de soldados que llegan por tierra a la ciudad i (i = 1 . . . 5)
yi = número de soldados que llegan por aire a la ciudad i (i = 1 . . . 5)
zi = número de soldados que se quedan en la ciudad i (i = 1 . . . 5)
vi = número de vehı́culos que llegan a la ciudad i (i = 1 . . . 5)
qi = número de vehı́culos que se quedan en la ciudad i (i = 1 . . . 5)
Función objetivo:
5
X 5
X 5
X
M in z = b × x1 + d × y1 + ki−1 i × xi + mi−1 i × vi + p yi
i=2 i=2 i=1
Restricciones:
Basora:
x1 + y 1 ≥ T 1
z1 ≥ C 1
x2 = 0,95(x1 + y1 ) − z1
1
v1 ≥ (x1 + y1 )
10
1
q1 ≥ z1
10
v2 = 0,98v1 − q1
Nasiriya:
x2 + y 2 ≥ T 2
z2 ≥ C 2
x3 = 0,95(x2 + y2 ) − z2
1
v2 ≥ (x2 + y2 )
10
1
q2 ≥ z2
10
v3 = 0,98v2 − q2
Karbala:
x3 + y 3 ≥ T 3
z3 ≥ C 3
x4 = 0,95(x3 + y3 ) − z3
1
v3 ≥ (x3 + y3 )
10
1
q3 ≥ z3
10
v4 = 0,98v3 − q3
18
F.I.O. Segundo Semestre 2004 Programación Lineal
Bagdad:
x4 + y 4 ≥ T 4
z4 ≥ C 4
x5 = 0,95(x4 + y4 ) − z4
1
v4 ≥ (x4 + y4 )
10
1
q4 ≥ z4
10
v5 = 0,98v4 − q4
Mosul:
x5 + y 5 ≥ T 4
z5 ≥ C 5
1
v5 ≥ (x5 + y5 )
10
1
q5 ≥ z5
10
Naturaleza de las variables:
x i , yi , z i , v i , q i ≥ 0
19