Optimización Con Restricciones de Desigualdad

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

Matemàtiques II. Grup H2-ADE Curs 2021/2022 (Prof.

Jesús Montes)

Tema 2: Optimización con restricciones de desigualdad


2.1 Planteamiento formal del problema

2.2 Programación lineal y programación no lineal


2.2.1 Diferencias entre programación lineal y programación no lineal

2.2.2 Método gráfico

2.2.3 Método analítico para programas lineales de dos variables

2.2.4 Tipos de soluciones en la programación lineal

2.2.5 Análisis de sensibilidad de un programa lineal: informe de sensibilidad del Excel

2.3 Modelos económicos en programación lineal


2.3.1 Modelo de producción

2.3.2 Modelo de transporte

RESUMEN
2
2.1 Planteamiento formal del problema

Dados números enteros n, m ≥ 1 , un subconjunto abierto A ⊆ R n y los siguientes datos:

- f : A ⊆ R n → R función real continua,


- g1 , , g m : A ⊆ R n → R funciones reales continuas,
- b1 , , bm ∈ R ,

consideramos el problema de optimización con restricciones de desigualdad siguiente:

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 (global) de (*) ⇔ a ∈ F y f (a) ≥ f ( x) para cada


x := ( x1 ,, xn ) ∈ F .

• Un = punto a : (a1 , , an ) ∈ A es un mínimo (global) de (*) ⇔ a ∈ F y f (a) ≤ f ( x) para cada


x := ( x1 ,, xn ) ∈ F .

• 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 (*).

4. Durante este curso trabajaremos usualmente en los casos n = 2 y n = 3 .

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:

- método gráfico (se puede aplicar cuando n = 2 ),


- método analítico para programas lineales de dos variables.

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

donde x := ( x1 ,, xn ) ∈ A , y consideramos el conjunto factible

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 .

Notemos que un PL puede ser escrito en forma matricial:

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)

(a) Diferencias sobre la estructura del conjunto factible

En la PL el conjunto factible F es un politopo (es decir, es intersección de un número finito de


semiespacios cerrados, ai1 x1 +  + ain xn ≤ bi (i = 1,, m) ); por tanto, F es convexo y cerrado en R n . En
particular, cuando el conjunto factible F es acotado entonces es un poliedro.

Figura 2.1. Conjuntos factibles: F polígono convexo si n = 2 ; F poliedro convexo si n = 3 .

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.

(c) Diferencias sobre la existencia de soluciones

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

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 gráfico
no nos da en general los óptimos de (*).

El método gráfico consta de los siguientes pasos:

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 (*).

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.

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.

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 .

En la Figura 2.6 de abajo vemos que el conjunto factible es un cuadrilátero.

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:

2 x + 3 y = 40, 2 x + 3 (30 − 4 x ) = 40,  x = 5,


 ⇔ ⇔
4 x + y = 30.  y = 30 − 4 x.  y = 10.

Paso 3: Evaluar la función objetivo f ( x, y ) = x + y en los vértices del conjunto factible F .

Tenemos: f (0, 0) = 0 , f (15 / 2, 0) = 15 / 2 = 7,5 , f (5,10) = 15 , f (0, 40 / 3) = 40 / 3 = 13,3...

Conclusión: El punto (5,10) es el máximo del PL y su valor máximo es f (5,10) = 15 .

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:

f (0, 0) = 0 , f (15 / 2, 0) = 30 , f (5,10) = 80 , f (0, 40 / 3) = 80 .

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 .

En la Figura 2.7 de abajo vemos que el conjunto factible es un cuadrilátero.

{ }
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 .

Paso 2: Hallar los vértices del conjunto factible F .

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:

4 x + 2 y = 4.000,  y = 2.000 − 2 x,  x = 500,


 ⇔ ⇔
3 x + 3 y = 4.500.  3 x + 3(2.000 − 2 x) = 4.500.  y = 1.000.

Paso 3: Evaluar la función objetivo B( x, y ) = 55 x + 30 y en los vértices del conjunto factible F .

Tenemos: B(0, 0) = 0 , B(1.000, 0) = 55.000 , B(500,1.000) = 57.500 , B(0,1.500) = 45.000 .

Conclusión: El punto (500,1.000) es el máximo del PL y su valor máximo es B(500,1.000) = 57.500 .

2.2.4 Tipos de soluciones en la programación lineal

Consideramos el programa lineal (PL) siguiente expresado en forma matricial:

13
Optimizar c t x
PL 
sujeta a Ax ≤ b

donde x es la matriz columna de las variables de decisión, c t es la matriz fila de coeficientes de la


función objetivo, A es la matriz de coeficientes de los primeros miembros de las restricciones y b es la
matriz columna de términos independientes de las restricciones. Así, el conjunto factible es
{ }
F := x ∈ R n Ax ≤ b , el cual es un politopo convexo y cerrado en R n .

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

Caso 2: F es el conjunto vacío. En este caso el PL no tiene solución.

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

Este PL no tiene solución ya que las restricciones 2 x + 3 y ≤ 40 , 4 x + 6 y ≥ 90 son incompatibles (si


2 x + 3 y ≤ 40 , entonces 4 x + 6 y ≤ 80 ) y, por tanto, el conjunto factible F no tendrá ningún punto.

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

2.2.5 Análisis de sensibilidad de un programa lineal: informe de sensibilidad del Excel

Consideramos un programa lineal (PL):

Optimizar c t x
PL 
sujeta a A x ≤ b,

donde x es la matriz columna de las variables de decisión, c t es la matriz fila de coeficientes de la


función objetivo, A es la matriz de coeficientes de los primeros miembros de las restricciones y b es la
matriz columna de términos independientes de las restricciones. Sea x* = ( x1* ,, xn* ) un óptimo de
nuestro PL, con multiplicadores de Kuhn-Tucker (o precios sombras) asociados λ1* ,, λ*m , los cuales son
números reales que nos da el informe de sensibilidad del Excel y que juegan un papel análogo al que
hacen los multiplicadores de Lagrange en un problema lagrangiano (ver apartados 1.3 y 1.4 del Tema
1). Así, el valor óptimo del PL es V := f ( x1* ,, xn* ) .

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)?

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 .

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)?

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

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

Consideramos de nuevo el tercer ejemplo del apartado 2.2.3.

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 ' .

Pregunta 1: ¿Cómo variaría el valor máximo si la primera restricción fuese 4 x + 2 y ≤ 4.000 + ∆


(dejando el resto de restricciones y la función objetivo sin cambiar)?

En la Figura 2.8 de abajo vemos que si la primera restricción fuese 4 x + 2 y ≤ 4.000 + ∆ y


− 1.000 ≤ ∆ ≤ 2.000 , entonces el máximo seguiría siendo el punto de intersección de las rectas
 ∆ + 1.000 2.000 − ∆ 
4 x + 2 y = 4.000 + ∆ y 3 x + 3 y = 4.500 , concretamente el punto (x∆* , y∆* ) =  ,  ; y,
 2 2 
por tanto, el valor máximo sería:

( )
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

Pregunta 2: ¿Cómo variaría el máximo y el valor máximo si la función objetivo fuese


B∆ ( x, y ) = (55 + ∆) x + 30 y (dejando las restricciones sin cambiar)?

En la Figura 2.9 de abajo vemos que si la función objetivo fuese B∆ ( x, y ) = (55 + ∆) x + 30 y y


− 25 ≤ ∆ ≤ 5 (en el caso ∆ = −25 la función objetivo B− 25 ( x, y ) = 30 x + 30 y tiene curvas de nivel
paralelas a la recta 3 x + 3 y = 4.500 , y en el caso ∆ = 5 la función objetivo B5 ( x, y ) = 60 x + 30 y tiene
curvas de nivel paralelas a la recta 4 x + 2 y = 4.000 ) entonces el máximo sigue siendo el punto
( x*, y*) = (500,1.000) y el valor máximo sería:

B∆ ( x*, y*) = (55 + ∆) x * +30 y* = 57.500 + ∆ ⋅ x * .

Por consiguiente, hemos visto en este ejemplo que el aumento permisible de c1 = 55 es ε1 = 5 y su


reducción permisible es ε1 ' = 25 . Desde luego, estos resultados también nos los lo da el informe de
sensibilidad del Excel mostrado más abajo.

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

Lado izquierdo Lado derecho


Restricciones (recurso asignado) (recurso disponible)
Madera (m.) 4 2 4000 <= 4000
Trabajo (h.) 3 3 4500 <= 4500

Microsoft Excel 16.0 Informe de sensibilidad

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)?

Mirando en el informe de sensibilidad anterior (en el apartado de “Restricciones”) la fila correspondiente


a la segunda restricción vemos que el precio sombra λ*2 = 1,666666667 , el aumento permisible del término
independiente b2 = 4.500 es δ 2 = 1.500 y su reducción permisible es δ 2 ' = 1.500 .

Si la segunda restricción fuese 3 x + 3 y ≤ 5.000 , entonces la variación de b2 sería


∆b2 = 5.000 − 4.500 = 500 ≤ δ 2 y, por tanto, la variación del valor máximo sería igual a
λ*2 ⋅ ∆b2 = 1,666666667 ⋅ 500 = 833,33 (en otras palabras, el nuevo valor máximo sería igual a
57.500 + 833,33 = 58.333,33 ).

Pregunta 2: ¿Cómo variaría el máximo y el valor máximo si la función objetivo fuese 55 x + 28 y


(dejando las restricciones sin cambiar)?

Mirando en el informe de sensibilidad anterior (en el apartado de “Celdas cambiantes”) la fila


correspondiente a la segunda variable, y , de la función objetivo vemos que el aumento permisible del
coeficiente c2 = 30 es ε 2 = 25 y su reducción permisible es ε 2 ' = 2,5 .

Si la función objetivo fuese 55 x + 28 y , entonces la variación de c2 sería ∆c2 = 28 − 30 = −2 ≥ −ε 2 ' y,


por tanto, el máximo seguiría siendo el punto ( x*, y*) = (500,1.000) y la variación del valor máximo
sería igual a ∆c2 ⋅ y* = −2 ⋅ 1.000 = −2.000 (en otras palabras, el nuevo valor máximo sería igual a
57.500 − 2.000 = 55.500 ).

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.

2.3.1 Modelo de producción

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

En primer lugar, haremos el planteamiento.

Paso 1: Definir las variables de decisión.

Llamamos x e y al número de mesas y sillas, respectivamente, que produce y vende la empresa.

Paso 2: Hallar la función objetivo

Los costes totales, en euros, de producir x mesas e y sillas son:

C ( x, y ) = 10 (4 x + 2 y ) + 12 (3 x + 3 y ) = 76 x + 56 y .

Los ingresos, en euros, de vender x mesas e y sillas son:

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 .

Paso 3: Hallar las inecuaciones de las restricciones.

Por lo que respecta a la restricción de los metros de tablones disponibles:

4 x + 2 y ≤ 4.000 .

Por lo que respecta a la restricción de las horas de mano de obra disponibles:

3 x + 3 y ≤ 4.500 .

Conclusión: tenemos que resolver el PL siguiente:

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

En primer lugar, haremos el planteamiento.

Paso 1: Definir las variables de decisión.

Llamamos x e y al número DVD’s de ordenador y coche, respectivamente, que produce y vende la


empresa diariamente.

Paso 2: Hallar la función objetivo.

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

Los ingresos, en euros, de vender x DVD’s de ordenador e y DVD’s de coche son:

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:

B( x, y ) = I ( x, y ) − C ( x, y ) = 120 x + 110 y − (50 x + 60 y ) = 70 x + 50 y .

Paso 3: Hallar las inecuaciones de las restricciones.

Por lo que respecta a la restricción de las unidades lectoras disponibles:

x + y ≤ 150 .

Por lo que respecta a la restricción de las horas de trabajo disponibles:

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.

Paso 3: Evaluar la función objetivo B( x, y ) = 70 x + 50 y en los vértices del conjunto factible F .

Tenemos: B(0, 0) = 0 , B(80, 0) = 5.600 , B(10,140) = 7.700 , B(0,150) = 7.500 .

Conclusión: El punto (10,140) es el máximo del PL y su valor máximo es B(10,140) = 7.700 .

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:

Coste (€/pieza) Tienda A Tienda B Tienda C

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

En primer lugar, haremos el planteamiento.

Paso 1: Definir las variables de decisión.

Nombramos a las seis cantidades pedidas por:

Tienda A Tienda B Tienda C

Fábrica 1 x1 A x1B x1C

Fábrica 2 x2 A x2 B x2C

Paso 2: Hallar la función objetivo.

La función de los costes totales de transporte, en euros, es:

C ( x1 A , x1B , x1C , x2 A , x2 B , x2C ) := 3 x1 A + 7 x1B + 1x1C + 2 x2 A + 2 x2 B + 6 x2C .

Paso 3: Hallar las inecuaciones de las restricciones.

Restricciones de oferta o disponibilidad ( ≤ ):

- producción de Fabrica 1: x1 A + x1B + x1C ≤ 800 ,


- producción de Fabrica 2: x2 A + x2 B + x2C ≤ 1.500 .

Restricciones de demanda ( ≥ ):

- demanda de Tienda A: x1 A + x2 A ≥ 1.000 ,


- demanda de Tienda B x1B + x2 B ≥ 700 ,
- demanda de Tienda C: x1C + x2C ≥ 600 .

23
Conclusión: tenemos que resolver el PL siguiente:

Minimizar C ( x1 A , x1B , x1C , x2 A , x2 B , x2C ) := 3 x1 A + 7 x1B + 1x1C + 2 x2 A + 2 x2 B + 6 x2C



  x1 A + x1B + x1C ≤ 800,
  x + x + x ≤ 1.500,
  2A 2B 2C

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

Minimizar C ( x1 A , x1B , x1C , x2 A , x2 B , x2C ) := 3 x1 A + 7 x1B + 1x1C + 2 x2 A + 2 x2 B + 6 x2C



  x1 A + x1B + x1C = 800,
 
  x2 A + x2 B + x2C = 1.500,
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.

Por tanto, si escribimos x1 A =: x , x1B =: y entonces tenemos:

Tienda A Tienda B Tienda C

Fábrica 1 x1 A = x x1B = y x1C = 800 − x − y

Fábrica 2 x2 A = 1.000 − x x2 B = 700 − y x2C = x + y − 200

la función de costes totales es:

c( x, y ) := 3 x + 7 y + 1(800 − x − y ) + 2 (1.000 − x) + 2 (700 − y ) + 6 ( x + y − 200) = 6 x + 10 y + 3.000 ,

las restricciones son:

0 ≤ x ≤ 1.000,

0 ≤ y ≤ 700,
200 ≤ x + y ≤ 800,

y nuestro programa de seis variables se ha reducido al PL de dos variables siguiente:

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

En la Figura 2.11 de abajo vemos que el conjunto factible es un cuadrilátero.

{ }
Figura 2.11: Conjunto factible: F = ( x, y ) ∈ R 2 0 ≤ x ≤ 1.000, 0 ≤ y ≤ 700, 200 ≤ x + y ≤ 800 .

Paso 2: Hallar los vértices del conjunto factible F .

Los vértices de F son los puntos:

A = (200, 0) , B = (800, 0) , C = (100, 700) , D = (0, 700) y E = (0, 200) .

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 .

Conclusión: El punto (200, 0) es el mínimo del PL y su valor mínimo es c(200, 0) = 4.200 .

Por consiguiente, hemos obtenido que:

Tienda A Tienda B Tienda C

Fábrica 1 x1 A = 200 x1B = 0 x1C = 600

Fábrica 2 x2 A = 800 x2 B = 700 x2C = 0

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:

Coste por unidad Barcelona Madrid

Lleida 80 € 215 €

Soria 102 € 68 €

Valencia 100 € 108 €

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

En primer lugar, haremos el planteamiento.

Paso 1: Definir las variables de decisión.

Nombramos a las cantidades pedidas por:

Barcelona Madrid

Lleida xLB xLM

Soria xSB xSM

Valencia xVB xVM

Paso 2: Hallar la función objetivo.

La función de los costes totales de transporte, en euros, es:

C ( xLB , xLM , xSB , xSM , xVB , xVM ) := 80 xLB + 215 xLM + 102 xSB + 68 xSM + 100 xVB + 108 xVM .

Paso 3: Hallar las inecuaciones de las restricciones.

Restricciones de oferta o disponibilidad ( ≤ ):

- producción de Lleida: xLB + xLM ≤ 1.000 ,


- producción de Soria: xSB + xSM ≤ 1.500 ,
- producción de Valencia: xVB + xVM ≤ 2.000 .

Restricciones de demanda ( ≥ ):

- demanda de Barcelona: xLB + xSB + xVB ≥ 1.400 ,


- demanda de Madrid: xLM + xSM + xVM ≥ 2.300 .

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

PL   xVB + xVM ≤ 2.000,


sujeta a 
  xLB + xSB + xVB ≥ 1.400,
  xLM + xSM + xVM ≥ 2.300,
 
  xLB , xLM , xSB , xSM , xVB , xVM ≥ 0.

En segundo lugar, resolvemos el PL anterior con el Excel y obtenemos:

Barcelona Madrid

Lleida xLB = 1.000 xLM = 0

Soria xSB = 0 xSM = 1.500

Valencia xVB = 400 xVM = 800

y el coste mínimo es C (1.000, 0, 0,1.500, 400, 800) = 308.400 €.

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

Diferencias entre programación lineal (PL) y programación no lineal (PNL)


(a) Diferencias sobre la estructura del conjunto factible
En la PL el conjunto factible F es un politopo (intersección de un número finito de semiespacios
cerrados); por tanto, F es convexo y cerrado en R n . 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.
(b) Diferencias sobre el tipo y localización de las soluciones
En la PL los óptimos, si existen, son globales. 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 el interior del conjunto
factible F , o en un punto de su frontera que no sea un vértice.
(c) Diferencias sobre la existencia de soluciones
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ón objetivo f (x) no es continua.

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 (*).

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

Tipos de soluciones en la programación lineal


Consideramos el programa lineal (PL) siguiente expresado en forma matricial:
Optimizar c t x
PL 
sujeta a Ax ≤ b
donde x es la matriz columna de las variables de decisión, c t es la matriz fila de coeficientes de la
función objetivo, A es la matriz de coeficientes de los primeros miembros de las restricciones y b es la
matriz columna de términos independientes de las restricciones. Así, el conjunto factible es
{ }
F := x ∈ R n Ax ≤ b , el cual es un politopo convexo y cerrado en R n .
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.
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.
Caso 2: F es el conjunto vacío. En este caso el PL no tiene solución.
Caso 3: F es no acotado. En este caso puede ser que no exista máximo o 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.

Modelos económicos en programación lineal


Hemos visto dos modelos económicos: modelo de producción y modelo de transporte. En los ejercicios
primero debe hacerse el planteamiento siguiendo los siguientes pasos:
Paso 1: Definir las variables de decisión.
Paso 2: Hallar la función objetivo.
Paso 3: Hallar las inecuaciones de las restricciones:
Restricciones de oferta o disponibilidad ( ≤ ),
Restricciones de demanda ( ≥ ).

30

También podría gustarte