Optimización Con Restricciones de Desigualdad
Optimización Con Restricciones de Desigualdad
Optimización Con Restricciones de Desigualdad
Jesús Montes)
RESUMEN
2
2.1 Planteamiento formal del problema
Optimizar f ( x1 , , xn ) Optimizar f ( x)
g1 ( x1 , , xn ) ≤ b1 , g1 ( x) ≤ b1 ,
(*) o (*)
sujeta a sujeta a
g ( x , , x ) ≤ b , g ( x) ≤ b ,
m 1 n m m m
donde x : ( x1 , , xn ) ∈ A , que consiste en optimizar (es decir, hallar los máximos y los mínimos de) la
=
función objetivo f ( x1 , , xn ) en el conjunto factible (o admisible) F definido por los puntos x ∈ A que
cumplen las m restricciones:
F :={ x ∈ A g1 ( x) ≤ b1 , , g m ( x) ≤ bm } ⊆ A .
• Un= punto a : (a1 , , an ) ∈ A es un máximo local de (*) ⇔ a ∈ F y existe un número real r > 0 tal
que f (a) ≥ f ( x) para cada
= x : ( x1 , , xn ) ∈ F ∩ B(a, r ) .
punto a : (a1 , , an ) ∈ A es un mínimo local de (*) ⇔ a ∈ F y existe un número real r > 0 tal
• Un =
que f (a) ≤ f ( x) para cada
= x : ( x1 , , xn ) ∈ F ∩ B(a, r ) .
Observaciones:
1. Nos podemos reducir siempre a estudiar restricciones con desigualdades del tipo menor o igual, ≤ ,
puesto que tenemos la equivalencia:
g ( x) ≥ b ⇔ − g ( x) ≤ −b .
2. Nos podemos reducir siempre a estudiar problemas de maximización puesto que tenemos la
equivalencia:
Minimizar f ( x) Maximizar − f ( x)
g1 ( x) ≤ b1 , g1 ( x) ≤ b1 ,
⇔
sujeta a sujeta a
g ( x) ≤ b , g ( x) ≤ b ,
m m m m
3
3. Por hipótesis, sabemos que la función objetivo f (x) es continua y que el conjunto factible F es
cerrado (ya que es una intersección finita de conjuntos cerrados, g j ( x) ≤ b j ( j = 1,, m) , por ser las
funciones que definen los primeros miembros de las restricciones g j (x) continuas). Luego, por el
Teorema de Weierstrass, si F es no vacío y acotado en R n , entonces existe (al menos) un máximo
global y (al menos) un mínimo global del problema (*).
Ejemplos:
Optimizar f ( x, y ) = x + 2 y
1. ( n = 2 ) x + y ≥ 1,
sujeta a :
x, y ≥ 0.
Optimizar f ( x, y ) := x + y
x 2 + y 2 ≥ 1,
2. ( n = 2 ) 2 2
sujeta a x + y ≤ 2,
x , y ≥ 0.
Optimizar f ( x, y ) := ( x − 1) 2 + ( y − 1) 2
3. ( n = 2 ) x + y ≤ 3
sujeta a x, y ≥ 0.
Optimizar f ( x, y, z ) := 30 x + 20 y + 50 z
2 x + 3 y + 5 z ≤ 2.050,
4 x + 2 y + 7 z ≤ 2.500,
4. ( n = 3 )
sujeta a 0 ≤ x ≤ 400,
0 ≤ y ≤ 400,
0 ≤ z ≤ 150.
Optimizar f ( x, y, z ) := x 2 + y 2 + z 2
5. ( n = 3 ) x + y + z ≥ 1,
sujeta a x, y, z ≥ 0.
Observación: Nuestro objetivo en este tema es dar a conocer las principales técnicas que permiten
resolver un problema de optimización con restricciones de desigualdad dado. Durante este tema veremos
dos métodos de resolución de este tipo de problemas:
Además, veremos que la función Solver del programa Excel nos da la/las solución/soluciones y un
informe de sensibilidad de cualquier programa lineal.
4
2.2 Programación lineal y programación no lineal
Consideramos el problema de optimización con restricciones de desigualdad siguiente:
Optimizar f ( x)
g1 ( x) ≤ b1 ,
(*)
sujeta a
g ( x) ≤ b ,
m m
F := {x ∈ A g1 ( x) ≤ b1 ,, g m ( x) ≤ bm } ⊆ A .
• Decimos que el problema de optimización anterior (*) es un programa lineal (PL) cuando la función
objetivo f (x) es lineal y las funciones que definen los primeros miembros de las restricciones g1 ( x) ,
…, g m (x) también son lineales. En programación lineal a x1 ,, xn les llamamos variables de decisión.
En programación lineal pensamos siempre que el conjunto abierto A donde están definidas la función
objetivo y las funciones que definen los primeros miembros de las restricciones es A := R n . Por tanto,
un PL es de la forma siguiente:
Optimizar f ( x) = c1 x1 + + cn xn
g1 ( x) = a11 x1 + + a1n xn ≤ b1 ,
PL
sujeta a
g ( x) = a x + + a x ≤ b ,
m m1 1 mn n m
donde x := ( x1 ,, xn ) ∈ R n , c1 ,, cn ∈ R , a11 ,, a1n ,, am1 ,, amn ∈ R , y b1 ,, bm ∈ R .
Optimizar c t x
PL
sujeta a A x ≤ b,
x1
donde x := ∈ M n×1 ( R) es la matriz columna de las variables de decisión, c t = (c1 cn ) ∈ M 1× n ( R) es
x
n
a a1n
11
la matriz fila de coeficientes de la función objetivo, A = ∈ M m× n ( R) es la matriz de
a
m1 amn
b1
coeficientes de los primeros miembros de las restricciones y b := ∈ M m×1 ( R) es la matriz columna
b
m
de términos independientes de las restricciones. Así, el conjunto factible es
{ }
F := x ∈ R n A x ≤ b ⊆ R n .
5
2.2.1 Diferencias entre programación lineal (PL) y programación no lineal (PNL)
En cambio, en la PNL sólo sabemos que el conjunto factible F es cerrado en el conjunto A ⊆ R n , pero
en general F no es convexo.
Optimizar f ( x, y )
Ejemplo: ( n = 2 y m = 1 )
sujeta a x y ≤ 1.
{ }
Entonces el conjunto factible F = ( x, y ) ∈ R 2 x y ≤ 1 no es un politopo y tampoco es convexo (ver
Figura 2.2).
6
{ }
Figura 2.2: Conjunto factible F = ( x, y ) ∈ R 2 x y ≤ 1 no convexo
(b) Diferencias sobre el tipo y localización de las soluciones
En la PL los óptimos, si existen, son globales (por el teorema local-global, pues al ser la función objetivo
f ( x) = c1 x1 + + cn xn lineal es a la vez cóncava y convexa). Además, si f (x) es no constante, entonces
los óptimos, si existen, se encuentran en la frontera del conjunto factible F y sólo pueden ser un vértice,
todo un lado, toda una cara, … de F .
En cambio, en la PNL los óptimos pueden estar en los vértices, en puntos de su frontera que no son
vértices (cuando las restricciones son lineales) o en puntos del interior del conjunto factible F .
Ejemplos:
Minimizar f ( x, y ) := ( x − 1) 2 + ( y − 1) 2
1. x + y ≤ 2,
sujeta a
x , y ≥ 0.
Este PNL tiene mínimo en el punto (1,1) , que está en la frontera del conjunto factible F y no es un
vértice de F .
Minimizar f ( x, y ) := ( x − 1) 2 + ( y − 1) 2
2. x + y ≤ 3,
sujeta a
x , y ≥ 0.
Este PNL tiene un mínimo en el punto (1,1) , que está en el interior del conjunto factible.
En la PL, si el conjunto factible F es no vacío y acotado, entonces el PL tiene (al menos) un máximo
global y (al menos) un mínimo global (por el Teorema de Weierstrass).
En cambio, en la PNL si el conjunto factible F es no vacío y acotado el PNL no siempre tiene solución
cuando la funciófiguran objetivo f (x) no es continua.
7
2.2.2 Método gráfico
Optimizar f ( x, y )
g1 ( x, y ) ≤ b1 ,
(*)
sujeta a
g ( x, y ) ≤ b ,
m m
y nos permite determinar el número de óptimos del programa dado (*). Sin embargo, este método gráfico
no nos da en general los óptimos de (*).
Paso 2: Dibujar las curvas de nivel de la función objetivo; es decir, dibujar las curvas f ( x, y ) = k , con
k∈R .
Conclusión:
Los puntos del conjunto factible que tocan a la curva de mayor nivel (respectivamente, de menor nivel)
entre aquellas que tocan al conjunto factible son los máximos (respectivamente, los mínimos) del
problema (*).
Observaciones:
1. Cuando tengamos que resolver un PNL de dos variables aplicaremos este método gráfico (pues es el
único método de resolución de PNL que explicaremos durante este tema).
2. No se conoce ningún método general que permita resolver cualquier problema de optimización con
restricciones de desigualdad (con un número arbitrario n de variables y m de restricciones).
Ejemplos:
Optimizar f ( x, y ) = x + 2 y
1. Resolver gráficamente el PL siguiente: x + y ≥ 1,
sujeta a :
x, y ≥ 0.
{ }
Este método consiste en dibujar el conjunto factible F = ( x, y ) ∈ R 2 x + y ≥ 1, x ≥ 0, y ≥ 0 , que en este
ejemplo es el trozo del primer cuadrante que queda por encima de la recta x + y = 1 , y las curvas de nivel
k ∈ R de la función objetivo f ( x, y ) , que en este ejemplo son las rectas x + 2 y = k (o equivalentemente,
1 k
y = − x + ) con pendiente − 1 / 2 (ver Figura 2.3).
2 2
8
{
Figura 2.3: Conjunto factible: F = ( x, y ) ∈ R 2 x + y ≥ 1, x ≥ 0, y ≥ 0 ;}
curvas de nivel: x + 2 y = k ( k = 0, 1, 2, 3 ).
En este ejemplo el método gráfico nos dice que el PL no tiene máximo y tiene un único mínimo en el
punto (1, 0) (con valor mínimo f (1,0) = 1 ). Notemos que el conjunto factible F no está acotado.
Optimizar f ( x, y ) := x + y
x 2 + y 2 ≥ 1,
2. Resolver gráficamente el PNL siguiente: 2 2
sujeta a x + y ≤ 2,
x, y ≥ 0.
{ }
Al dibujar (ver Figura 2.4) el conjunto factible F = ( x, y ) ∈ R 2 1 ≤ x 2 + y 2 ≤ 2, x ≥ 0, y ≥ 0 (el trozo
del primer cuadrante de la corona circular comprendida entre las circunferencias concéntricas en (0, 0)
de radios 1 y 2 ) y las curvas de nivel x + y = k (las rectas con pendiente − 1 ), vemos que nuestro
PNL tiene un único máximo (con valor máximo 2 ) y dos mínimos en los puntos (1, 0) y (0,1) (con
valor mínimo 1 ). Sin embargo, este método gráfico no nos da el máximo (por simetría, se puede ver
que el máximo se encuentra en el punto (1,1) ).
9
{ }
Figura 2.4: Conjunto factible: F = ( x, y ) ∈ R 2 1 ≤ x 2 + y 2 ≤ 2, x ≥ 0, y ≥ 0 ;
curvas de nivel: x + y = k ( k = 0, 1 / 2, 1, 3 / 2, 2 ).
Optimizar f ( x, y ) := 2 x + y
y ≤ ( x − 1) 2 ,
3. Resolver gráficamente el PNL siguiente:
sujeta a x ≤ 2,
x, y ≥ 0.
{ }
Al dibujar (ver Figura 2.5) el conjunto factible F = ( x, y ) ∈ R 2 y ≤ ( x − 1) 2 , 0 ≤ x ≤ 2, y ≥ 0 y las curvas
de nivel, 2 x + y = k , vemos que nuestro PNL tiene un único máximo en el punto (2,1) (con valor
máximo 5 ) y un único mínimo en el punto (0, 0) (con valor mínimo 0 ).
{ }
Figura 2.5: Conjunto factible: F = ( x, y ) ∈ R 2 y ≤ ( x − 1) 2 , 0 ≤ x ≤ 2, y ≥ 0 ;
curvas de nivel: 2 x + y = k ( k = 0,1,,5 ).
10
2.2.3 Método analítico para programas lineales de dos variables
Este método se puede aplicar cuando tenemos un programa lineal (PL) con n = 2 variables:
Optimizar f ( x, y ) := c1 x + c2 y
g1 ( x, y ) := a11 x + a12 y ≤ b1 ,
(*)
sujeta a
g ( x, y ) := a x + a y ≤ b ,
m m1 m2 m
y nos permite determinar los óptimos del programa dado (*) cuando el conjunto factible
{ }
F =: ( x, y ) ∈ R 2 a11 x + a12 y ≤ b1 , , am1 x + am 2 y ≤ bm es no vacío y acotado.
Paso 2: Hallar los vértices del conjunto factible F . (Para hallar un vértice –intersección de dos lados
consecutivos de F – tenemos que resolver un sistema lineal de 2 ecuaciones y 2 incógnitas.)
Conclusión:
(a) Si en un único vértice de F se alcanza el valor más grande (respectivamente, más pequeño) de
la función objetivo sobre los vértices de F , entonces este vértice es el único máximo
(respectivamente, mínimo) del PL.
(b) Si en dos vértices consecutivos de F se alcanza el valor más grande (respectivamente, más
pequeño) de la función objetivo sobre los vértices de F , entonces cualquier punto del lado de
F que une estos dos vértices es un máximo (respectivamente, mínimo) del PL.
Observación: El algoritmo del simplex (Dantzig, 1947) resuelve cualquier PL con un número arbitrario
n de variables y m de restricciones. Este algoritmo está implementado en el programa Excel, para
utilizarlo se hace mediante la función Solver de este programa. En el apartado 2.2.5 veremos que esta
función del Excel nos da además un informe de sensibilidad del PL.
Ejemplos:
Maximizar f ( x, y ) = x + y
2 x + 3 y ≤ 40,
1. Resolver el PL siguiente:
sujeta a : 4 x + y ≤ 30,
x, y ≥ 0.
{ }
Paso 1: Dibujar el conjunto factible F = ( x, y ) ∈ R 2 2 x + 3 y ≤ 40, 4 x + y ≤ 30, x ≥ 0, y ≥ 0 .
11
{
Figura 2.6: Conjunto factible: F = ( x, y ) ∈ R 2 2 x + 3 y ≤ 40, 4 x + y ≤ 30, x ≥ 0, y ≥ 0 . }
Paso 2: Hallar los vértices del conjunto factible F .
Los vértices de F son los puntos A = (0, 0) , B = (15 / 2, 0) , C = (5,10) y D = (0, 40 / 3) . Por ejemplo, el
vértice C , intersección de las rectas 2 x + 3 y = 40 y 4 x + y = 30 , se obtiene al resolver el sistema:
Maximizar f ( x, y ) = 4 x + 6 y
2 x + 3 y ≤ 40,
2. Resolver el PL siguiente:
sujeta a : 4 x + y ≤ 30,
x, y ≥ 0.
Notemos que el conjunto factible de este ejemplo es el mismo que el del ejemplo anterior (ver Figura
2.6). Al evaluar la función objetivo f ( x, y ) = 4 x + 6 y en los vértices del conjunto factible obtenemos:
Por consiguiente, los puntos del lado que une los vértices C = (5,10) y D = (0, 40 / 3) son los máximos
del PL, siendo su valor máximo f (5,10) = f (0, 40 / 3) = 80 .
12
Maximizar B( x, y ) = 55 x + 30 y
4 x + 2 y ≤ 4.000,
3. Resolver el PL siguiente:
sujeta a : 3 x + 3 y ≤ 4.500,
x , y ≥ 0.
{ }
Paso 1: Dibujar el conjunto factible F = ( x, y ) ∈ R 2 4 x + 2 y ≤ 4.000, 3 x + 3 y ≤ 4.500, x ≥ 0, y ≥ 0 .
{ }
Figura 2.7: Conjunto factible: F = ( x, y ) ∈ R 2 4 x + 2 y ≤ 4.000, 3 x + 3 y ≤ 4.500, x ≥ 0, y ≥ 0 .
Los vértices de F son los puntos A = (0, 0) , B = (1.000, 0) , C = (500,1.000) y D = (0,1.500) . Por
ejemplo, el vértice C , intersección de las rectas 4 x + 2 y = 4.000 y 3 x + 3 y = 4.500 , se obtiene al
resolver el sistema:
13
Optimizar c t x
PL
sujeta a Ax ≤ b
Caso 1: F es no vacío y acotado. En este caso el PL tiene (al menos) un máximo global y (al menos)
un mínimo global.
Subcaso 1.1: c t ≠ λ ⋅ (a j1 ,, a jn ) para todo λ ∈ R y para todo j = 1,, m (el gradiente de la función
objetivo es linealmente independiente con los gradientes de los primeros miembros de las restricciones).
En este caso el PL tiene un único máximo global y un único mínimo global.
Optimizar f ( x, y ) = x + y
2 x + 3 y ≤ 40,
Ejemplo: Resolver el PL siguiente
sujeta a : 4 x + y ≤ 30,
x, y ≥ 0.
{ }
El conjunto factible de este PL, F = ( x, y ) ∈ R 2 2 x + 3 y ≤ 40, 4 x + y ≤ 30, x ≥ 0, y ≥ 0 , está dibujado
en la Figura 2.6 anterior. Observemos que el gradiente de la función objetivo, (1,1) , es linealmente
independiente con los gradientes de los primeros miembros de las restricciones. Esto nos dice que entre
las curvas de nivel de la función objetivo (rectas paralelas con pendiente − 1 ) la de nivel máximo que
toca al conjunto factible lo hará en único punto ( C = (5,10) ) y la de nivel mínimo que toca al conjunto
factible lo hará también en único punto ( A = (0, 0) ). Por tanto, este PL tiene un único máximo (
C = (5,10) ) y un único mínimo ( A = (0, 0) ).
Subcaso 1.2: c t = λ ⋅ (a j1 ,, a jn ) para algún λ ∈ R y para algún j = 1,, m (el gradiente de la función
objetivo es linealmente dependiente con el gradiente del primer miembro de alguna restricción). En este
caso el PL tiene infinitas soluciones.
Optimizar f ( x, y ) = 4 x + 6 y
2 x + 3 y ≤ 40,
Ejemplo: Resolver el PL siguiente
sujeta a : 4 x + y ≤ 30,
x, y ≥ 0.
Notemos que el conjunto factible de este ejemplo es el mismo que el del ejemplo anterior (ver Figura
2.6). Observemos que el gradiente de la función objetivo, (4, 6) , es linealmente dependiente con el
gradiente del primer miembro de la primera restricción, (2, 3) . Esto nos dice que las curvas de nivel de
la función objetivo son rectas paralelas al lado delimitado por esta primera restricción (el lado que une
los vértices C = (5,10) y D = (0, 40 / 3) ). Así, la curva de nivel máximo que toca al conjunto factible
está sobre este lado. Además, la curva de nivel mínimo que toca al conjunto factible lo hace en un único
punto ( A = (0, 0) ). Por tanto, el PL tiene infinitos máximos (los puntos del lado delimitado por la primera
restricción) y un único mínimo ( A = (0, 0) ).
14
Optimizar f ( x, y )
2 x + 3 y ≤ 40,
Ejemplo: Demostrar que el PL siguiente no tiene solución
sujeta a : 4 x + 6 y ≥ 90,
x , y ≥ 0.
Caso 3: F es no acotado. En este caso puede ser que no exista máximo o mínimo del PL.
Optimizar f ( x, y ) = x + y
2 x + 3 y ≥ 40,
Ejemplo: Resolver el PL siguiente
sujeta a : 4 x + y ≥ 30,
x, y ≥ 0.
Notemos que el conjunto factible F en este ejemplo es no acotado. Entre las curvas de nivel de la
función objetivo (rectas paralelas con pendiente − 1 ) no existe ninguna de nivel máximo que toque al
conjunto factible, y existe una de nivel mínimo que toca al conjunto factible (la curva de nivel k = 15
que toca al conjunto factible en el punto C = (5,10) ). Por tanto, este PL no tiene máximos y tiene un
mínimo ( C = (5,10) ).
Optimizar c t x
PL
sujeta a A x ≤ b,
Vamos a analizar ahora la sensibilidad del valor óptimo al cambio de algunos datos como la
disponibilidad de recursos (términos independientes b j de las restricciones) o las ganancias/costes
unitarios (coeficientes ci de la función objetivo).
Pregunta 1: Fijado un j = 1,, m , ¿cómo variaría el valor óptimo del PL si cambiásemos el término
independiente b j de la j -ésima restricción por un nuevo valor b j + ∆b j (dejando el resto de restricciones
y la función objetivo sin cambiar)?
15
Llamaremos a δ j el aumento permisible de b j y δ j ' la reducción permisible de b j .
Pregunta 2: Fijado un i = 1,, n , ¿cómo variaría el óptimo y el valor óptimo del PL si cambiásemos el
coeficiente ci de la i -ésima variable de la función objetivo por un nuevo valor ci + ∆ci (dejando el resto
de coeficientes de la función objetivo y las restricciones sin cambiar)?
si ∆ci ∈ [− ε i ' , ε i ], entonces el nuevo óptimo sigue siendo ( x1* ,, xn* ) y, por tanto, la variación del valor
óptimo es igual a ∆ci ⋅ xi* .
Observación: Los números reales anteriores δ j , δ j ' , ε i , ε i ' (para cada j = 1,, m y cada i = 1,, n ) los
da el informe de sensibilidad del Excel.
Maximizar B( x, y ) = 55 x + 30 y
4 x + 2 y ≤ 4.000,
Ejemplo: PL
sujeta a : 3 x + 3 y ≤ 4.500,
x, y ≥ 0.
En el apartado 2.2.3 vimos que el punto ( x*, y*) = (500,1.000) es el máximo del PL y su valor máximo
es B(500,1.000) = 57.500 .
Comenzamos justificando en este ejemplo la existencia de los números reales λ1* , δ1 , δ1 ' , ε1 , ε1 ' .
( )
B x∆* , y∆* = 55 x∆* + 30 y∆* = 57.500 + 12,5 ⋅ ∆ .
Por consiguiente, hemos visto en este ejemplo que el multiplicador de Kuhn-Tucker (o precio sombra)
λ1* = 12,5 , el aumento permisible de b1 = 4.000 es δ1 = 2.000 y su reducción permisible es δ1 ' = 1.000 .
Desde luego, estos resultados también nos los lo da el informe de sensibilidad del Excel mostrado más
abajo.
16
Figura 2.8: Maximizar B( x, y ) = 55 x + 30 y en el conjunto
{ }
F∆ := ( x, y ) ∈ R 2 4 x + 2 y ≤ 4.000 + ∆, 3 x + 3 y ≤ 4.500, x ≥ 0, y ≥ 0
17
Figura 2.9: Maximizar B∆ ( x, y ) = (55 + ∆) x + 30 y en el conjunto
{
F = ( x, y ) ∈ R 2 4 x + 2 y ≤ 4.000, 3 x + 3 y ≤ 4.500, x ≥ 0, y ≥ 0 }
A continuación, mostramos en este ejemplo el informe de sensibilidad obtenido haciendo uso de la
función Solver del programa Excel (esta función se encuentra disponible en el menú Datos del Excel).
Maximizar B( x,=y ) 55 x + 30 y
sujeto a: 4 x + 2 y ≤ 4.000
3 x + 3 y ≤ 4.500
x ≥ 0, y ≥ 0
Variables x y
Valor variables 500 1000
Coeficientes 55 30 Función objetivo 57500
Celdas de variables
Final Reducido Objetivo Permisible Permisible
Celda Nombre Valor xi* Coste Coeficiente ci Aumentar εi Reducir ε i '
$B$10 Valor variables x 500 0 55 5 25
$C$10 Valor variables y 1000 0 30 25 2,5
Restricciones
Final Sombra Restricción Permisible Permisible
Celda Nombre Valor Precio λ*j Lado derecho b j Aumentar δ j Reducir δ j '
$D$14 Madera 4000 12,5 4000 2000 1000
$D$15 Trabajo 4500 1,666666667 4500 1500 1500
18
Por último, veamos la aplicación práctica del informe de sensibilidad del Excel anterior para responder
directamente a preguntas concretas de este mismo ejemplo.
Pregunta 1: ¿Cómo variaría el valor máximo si la segunda restricción fuese 3 x + 3 y ≤ 5.000 (dejando
el resto de restricciones y la función objetivo sin cambiar)?
19
2.3 Modelos económicos en programación lineal
En este apartado veremos dos tipos de modelos económicos, modelo de producción y modelo de
transporte, que serán resueltos con las técnicas desarrolladas anteriormente de la programación lineal.
Ejemplos:
1. Una empresa produce mesas y sillas. Para hacer una mesa necesitamos 4 m. de tablones de madera y
3 h. de mano de obra, mientras que una silla requiere 2 m. de tablones de madera y 3 h. de mano de
obra. La madera cuesta 10 € por metro de tablón y tenemos disponibles 4.000 m. de tablones.
Disponemos de 4.500 h. de mano de obra a 12 € por hora. Una mesa acabada se vende a 131 €, mientras
que una silla se vende a 86 €. Hallar la producción óptima de mesas y sillas que maximiza el beneficio
de la empresa.
Solución
C ( x, y ) = 10 (4 x + 2 y ) + 12 (3 x + 3 y ) = 76 x + 56 y .
I ( x, y ) = 131x + 86 y .
Por tanto, los beneficios, en euros, de producir y vender x mesas e y sillas son:
B( x, y ) = I ( x, y ) − C ( x, y ) = 131x + 86 − (76 x + 56 y ) = 55 x + 30 y .
4 x + 2 y ≤ 4.000 .
3 x + 3 y ≤ 4.500 .
20
Maximizar B( x, y ) = 55 x + 30 y
4 x + 2 y ≤ 4.000,
sujeta a : 3 x + 3 y ≤ 4.500,
x , y ≥ 0.
Observemos que este PL coincide con el tercer ejemplo del apartado 2.2.3, donde vimos que el punto
(500,1.000) es el máximo del PL y su valor máximo es B(500,1.000) = 57.500 . Por consiguiente, la
empresa ha de producir 500 sillas y 1.000 mesas para obtener el máximo beneficio.
2. Una empresa produce DVD’s para ordenador y coche. Un DVD de ordenador requiere 1 h. de trabajo,
1 lectora laser y otros componentes (cables, etc.); mientras que un DVD de coche requiere 1 / 2 h. de
trabajo, 1 lectora laser y otros componentes. La empresa dispone de 10 trabajadores que pueden trabajar
8 h. diarias con un salario de 10 € por hora, tiene un stock diario de 150 unidades de lectora laser y
puede disponer de la cantidad que se necesite de otros componentes. Sabemos que cada lectora laser le
cuesta 30 €, y que en otros componentes gasta 10 € en cada DVD de ordenador y 25 € en cada DVD
de coche. La empresa vende cada DVD de ordenador a 120 € y cada DVD de coche a 110 €. Hallar la
producción diaria que debe de hacer la empresa para obtener el máximo beneficio.
Solución
Los costes totales, en euros, de producir x DVD’s de ordenador e y DVD’s de coche son:
1
C ( x, y ) = 10 ( x + y ) + 30 ( x + y ) + 10 x + 25 y = 50 x + 60 y .
2
I ( x, y ) = 120 x + 110 y .
Por tanto, los beneficios, en euros, de producir y vender x DVD’s de ordenador e y de coche son:
x + y ≤ 150 .
y
x+ ≤ 80 .
2
21
Conclusión: tenemos que resolver el PL siguiente:
Maximizar B( x, y ) = 70 x + 50 y
x + y ≤ 150,
y
sujeta a : x + ≤ 80,
2
x, y ≥ 0.
En segundo lugar, resolvemos el PL anterior por el método analítico explicado en el apartado 2.2.3.
y
Paso 1: Dibujar el conjunto factible F = ( x, y ) ∈ R 2 x + y ≤ 150, x + ≤ 80, x ≥ 0, y ≥ 0 .
2
En la Figura 2.10 de abajo vemos que el conjunto factible es un cuadrilátero.
y
Figura 2.10: Conjunto factible: F = ( x, y ) ∈ R 2 x + y ≤ 150, x + ≤ 80, x ≥ 0, y ≥ 0 .
2
Paso 2: Hallar los vértices del conjunto factible F .
Los vértices de F son los puntos A = (0, 0) , B = (80, 0) , C = (10,140) y D = (0,150) . Por ejemplo, el
y
vértice C , intersección de las rectas x + y = 150 y x + = 80 , se obtiene al resolver el sistema:
2
x + y = 150, y = 150 − x,
x = 10,
y ⇔ 150 − x ⇔
x + 2 = 80. x + 2 = 80. y = 140.
Por consiguiente, para obtener el máximo beneficio la empresa ha de producir 10 DVD’s de ordenador
y 140 DVD’s de coche.
22
2.3.2 Modelo de transporte
Ejemplos:
1. Una empresa dedicada a la fabricación de componentes de ordenador tiene dos fábricas que producen
800 y 1.500 piezas mensuales, respectivamente. Estas piezas han de ser transportadas a tres tiendas que
necesitan 1.000 , 700 y 600 piezas cada mes, respectivamente. Los costes de transporte, en euros por
pieza, vienen dados en la tabla siguiente:
Fábrica 1 3 7 1
Fábrica 2 2 2 6
¿Cómo debe organizarse el transporte (es decir, cuántas piezas deben enviarse desde cada fabrica a cada
una de las tiendas) para que el coste mensual sea mínimo?
Solución
Fábrica 2 x2 A x2 B x2C
Restricciones de demanda ( ≥ ):
23
Conclusión: tenemos que resolver el PL siguiente:
PL x1 A + x2 A ≥ 1.000,
sujeta a
x1B + x2 B ≥ 700,
x1C + x2C ≥ 600,
x1 A , x1B , x1C , x2 A , x2 B , x2C ≥ 0.
Dado que la producción total de las dos fábricas, 800 + 1.500 = 2.300 , coincide con la demanda total de
las tres tiendas, 1.000 + 700 + 600 = 2.300 , entonces nuestro PL es
0 ≤ x ≤ 1.000,
0 ≤ y ≤ 700,
200 ≤ x + y ≤ 800,
Minimizar c( x, y ) = 6 x + 10 y + 3.000
0 ≤ x ≤ 1.000,
PL
sujeto a 0 ≤ y ≤ 700,
200 ≤ x + y ≤ 800.
24
En segundo lugar, resolvemos el PL anterior por el método analítico explicado en el apartado 2.2.3.
{ }
Paso 1: Dibujar el conjunto factible F = ( x, y ) ∈ R 2 0 ≤ x ≤ 1.000, 0 ≤ y ≤ 700, 200 ≤ x + y ≤ 800 .
{ }
Figura 2.11: Conjunto factible: F = ( x, y ) ∈ R 2 0 ≤ x ≤ 1.000, 0 ≤ y ≤ 700, 200 ≤ x + y ≤ 800 .
Paso 3: Evaluar la función objetivo c( x, y ) = 6 x + 10 y + 3.000 en los vértices del conjunto factible F .
Tenemos:
c(200, 0) = 4.200 , c(800, 0) = 7.800 , c(100, 700) = 10.600 , c(0, 700) = 10.000 c(0, 200) = 5.000 .
25
2. La empresa CAR produce un modelo de coche en tres plantas diferentes situadas en Lleida, Soria y
Valencia con producción máxima respectiva de 1.000 , 1.500 y 2.000 coches. Los centros de
distribución están situados en Barcelona y Madrid que solicitan, respectivamente, 1.400 y 2.300 coches.
Los costes de transporte por unidad desde cada planta de producción a cada distribuidor son:
Lleida 80 € 215 €
Soria 102 € 68 €
Formular el programa lineal que determina el transporte óptimo de coches desde las plantas de
producción hasta los centros de distribución de forma que se minimicen los costes de transporte.
Resolver dicho programa lineal en Excel con la función Solver.
Solución
Barcelona Madrid
C ( xLB , xLM , xSB , xSM , xVB , xVM ) := 80 xLB + 215 xLM + 102 xSB + 68 xSM + 100 xVB + 108 xVM .
Restricciones de demanda ( ≥ ):
26
Conclusión: tenemos que resolver el PL siguiente:
Minimizar C ( xLB , xLM , xSB , xSM , xVB , xVM ) := 80 xLB + 215 xLM + 102 xSB + 68 xSM + 100 xVB + 108 xVM
xLB + xLM ≤ 1.000,
x + x ≤ 1.500,
SB SM
Barcelona Madrid
27
RESUMEN DEL TEMA 2
Dados enteros n, m ≥ 1 y funciones reales continuas f , g1 ,, g m : A ⊆ R n → R en un subconjunto
abierto A ⊆ R n , y números reales b1 ,, bm ∈ R , consideramos un problema de optimización con
restricciones de desigualdad:
Optimizar f ( x)
g1 ( x) ≤ b1 ,
(*)
sujeta a
g ( x) ≤ b ,
m m
el cual consiste en optimizar la función objetivo f (x) en el conjunto factible F definido por los puntos
x := ( x1 ,, xn ) ∈ A que cumplen las m restricciones: F := {x ∈ A g1 ( x) ≤ b1 ,, g m ( x) ≤ bm }.
Objetivo: resolver un problema de optimización con restricciones de desigualdad dado. Tenemos dos
métodos de resolución de este tipo de problemas:
- método gráfico (se puede aplicar cuando n = 2 ),
- método analítico para programas lineales de dos variables.
Además, la función Solver del programa Excel nos da la/las solución/soluciones y un informe de
sensibilidad de cualquier programa lineal.
• Decimos que el problema de optimización anterior (*) es un programa lineal (PL) cuando la función
objetivo f (x) es lineal y las funciones que definen los primeros miembros de las restricciones g1 ( x) ,
…, g m (x) también son lineales. En programación lineal a x1 ,, xn les llamamos variables de decisión
(y pensamos que el abierto donde están definidas las funciones es A := R n ).
Método gráfico
Este método se puede aplicar cuando tratamos con funciones de n = 2 variables:
Optimizar f ( x, y )
g1 ( x, y ) ≤ b1 ,
(*)
sujeta a
g ( x, y ) ≤ b ,
m m
y nos permite determinar el número de óptimos del programa dado (*). Sin embargo, este método no nos
da en general los óptimos de (*). El método gráfico consta de los siguientes pasos:
28
Paso 1: Dibujar el conjunto factible F := {( x, y ) ∈ A g1 ( x, y ) ≤ b1 ,, g m ( x, y ) ≤ bm }.
Paso 2: Dibujar las curvas de nivel de la función objetivo; es decir, dibujar las curvas f ( x, y ) = k , con
k∈R .
Conclusión:
Los puntos del conjunto factible que tocan a la curva de mayor nivel (respectivamente, de menor nivel)
entre aquellas que tocan al conjunto factible son los máximos (respectivamente, los mínimos) del
problema (*).
y nos permite determinar los óptimos del programa dado (*) cuando el conjunto factible
{ }
F =: ( x, y ) ∈ R 2 a11 x + a12 y ≤ b1 , , am1 x + am 2 y ≤ bm es no vacío y acotado. El método analítico consta
de los siguientes pasos:
Paso 1: Dibujar el conjunto factible F (el cual es un polígono convexo y cerrado en R 2 ).
Paso 2: Hallar los vértices del conjunto factible F . (Para hallar un vértice –intersección de dos lados
consecutivos de F – tenemos que resolver un sistema lineal de 2 ecuaciones y 2 incógnitas.)
Paso 3: Evaluar la función objetivo f ( x, y ) := c1 x + c2 y en los vértices del conjunto factible F .
Conclusión:
(a) Si en un único vértice de F se alcanza el valor más grande (respectivamente, más pequeño) de
la función objetivo sobre los vértices de F , entonces este vértice es el único máximo
(respectivamente, mínimo) del PL.
(b) Si en dos vértices consecutivos de F se alcanza el valor más grande (respectivamente, más
pequeño) de la función objetivo sobre los vértices de F , entonces cualquier punto del lado de
F que une estos dos vértices es un máximo (respectivamente, mínimo) del PL.
29
Análisis de sensibilidad de un programa lineal: informe de sensibilidad del Excel
Consideramos el programa lineal (PL) siguiente expresado en forma matricial:
Optimizar c t x
PL
sujeta a Ax ≤ b
Sea x* = ( x1* ,, xn* ) un óptimo de nuestro PL con precios sombras asociados λ1* ,, λ*m (que nos da el
programa Excel). Así, el valor óptimo del PL es V := f ( x1* ,, xn* ) .
Pregunta 1: ¿Cómo variaría el valor óptimo del PL si cambiásemos el término independiente b j de la j
-ésima restricción por un nuevo valor b j + ∆b j ?
Respuesta: Existen números reales δ j , δ j ' ≥ 0 (eventualmente ∞ ) tales que:
[ ]
si ∆b j ∈ − δ j ' , δ j , entonces la variación del valor óptimo es V (b j + ∆b j ) − V (b j ) = λ*j ⋅ ∆b j .
Llamamos a δ j el aumento permisible de b j y δ j ' la reducción permisible de b j .
Pregunta 2: ¿Cómo variaría el óptimo y el valor óptimo del PL si cambiásemos el coeficiente ci de la i
-ésima variable de la función objetivo por un nuevo valor ci + ∆ci ?
Respuesta: Existen números reales ε i , ε i ' ≥ 0 (eventualmente ∞ ) tales que:
si ∆ci ∈ [− ε i ' , ε i ], entonces el nuevo óptimo sigue siendo ( x1* ,, xn* ) y, por tanto, la variación del valor
óptimo es igual a ∆ci ⋅ xi* .
Llamamos a ε i el aumento permisible de ci y ε i ' la reducción permisible de ci .
Observación: Los números reales anteriores δ j , δ j ' , ε i , ε i ' (para cada j = 1,, m y cada i = 1,, n ) los
da el informe de sensibilidad del Excel.
30