Tema 17
Programación no lineal
17.1. Programación no lineal sin restricciones
En la optimización sin restricciones (F = D) si el conjunto factible es convexo y la función objetivo
es convexa y diferenciable podemos caracterizar sus mínimos a través de su diferencial. En particular, un
punto interior del conjunto factible es un mínimo de una función convexa siempre y cuando el gradiente de
la función objetivo sea cero (este tipo de puntos reciben el nombre de puntos críticos).
Proposición 17.1 (mínimos de funciones convexas) Sea f : G ⊆ Rn→ R diferenciable y convexa en G,
con G convexo.
a) x0 ∈ G es un mínimo (global) si y solo D f (x0)(x − x0) ≥ 0.
b) x0 ∈ int(G) es un mínimo (global) si y solo D f (x0) = 0 (∇ f (x0) = θ). ♣
Definición 17.2 Sea f : D ⊆ Rn−→ R diferenciable en x0 ∈ int(D).
x0 es un punto crítico o estacionario de f si D f (x0) = 0 (∇ f (x0) = θ). ♣
Nota Si (x0, y0) es un punto crítico de f (x, y) el plano tangente a la superficie z = f (x, y) es paralelo al
plano XY . ♣
705
Bloque V. PROGRAMACIÓN MATEMÁTICA
Proposición 17.3 (Condición necesaria de óptimo local de primer orden) Sea f : D ⊆ Rn−→ R diferen-
ciable en x0 ∈ int(D).
Si x0 es un óptimo local de f entonces x0 es un punto crítico de f (∇ f (x0) = θ). ♣
La proposición 17.1 garantiza que para las funciones convexas diferenciables todos los puntos críticos
son mínimos globales. En el caso de las funciones cóncavas diferenciables todos los puntos críticos son
máximos globales. En el caso general los puntos críticos son los únicos puntos del interior de un conjunto
que pueden ser óptimos locales de la función. Para estudiar si son óptimos tenemos que estudiar si la función
es convexa en un entorno del punto, con lo que serán mínimos locales, o si es cóncava en un entorno del
punto, con lo que serán máximos locales. La tercera opción es que el punto crítico no sea un óptimo local,
en cuyo caso diremos que es un punto de silla.
Definición 17.4 Sea f : D ⊆ Rn−→ R diferenciable en x0 ∈ int(D).
x0 es un punto de silla de f si es un punto crítico y ∀U(x0) ⊆ D
∃ x1, x2 ∈ U(x0) tales que: f (x1) > f (x0) y f (x2) < f (x0). ♣
Ejemplo 17.5 El origen es un mínimo de f (x, y) = x2 + y2 y un máximo de f (x, y) = −x2 − y2. En el caso
de f (x, y) = x2 − y2 es un punto de silla.
Cuando la función objetivo es dos veces diferenciable con continuidad para determinar si los puntos
críticos son óptimos de la función tenemos que estudiar la forma de la función determinando el signo de
la forma cuadrática asociada a la matriz hessiana de la función objetivo, q(h) = ht H f (x) h (por abuso de
notación, en vez de hablar del signo de la forma cuadrática hablamos del signo de la matriz hessiana).
PROYECTO MATECO 3.1416 Página 706
TEMA 17. PROGRAMACIÓN NO LINEAL
Proposición 17.6 (Condición necesaria de óptimo local de segundo orden) Sea f : D ⊆ Rn−→ R, dos
veces diferenciable con continuidad en un punto crítico, x0 ∈ int(D)
Si x0 es un mínimo local entonces H f (x0) es semidefinida positiva.
Si x0 es un máximo local entonces H f (x0) es semidefinida negativa. ♣
Nota Esta condición es necesaria pero no suficiente, por ejemplo, f (x, y) = x2y tiene un punto de silla
en (0, 0) y su matriz hessiana en el punto es nula y, por consiguiente, es tanto semidefinida positiva como
semidefinida negativa. ♣
Proposición 17.7 (Condición suficiente de óptimo local de segundo orden) Sea f : D ⊆ Rn−→ R dos
veces diferenciable en un punto crítico, x0 ∈ int(D).
Si H f (x0) es definida positiva x0 es un mínimo local estricto.
Si H f (x0) es definida negativa x0 es un máximo local estricto.
Si H f (x0) es indefinida x0 es un punto de silla. ♣
Nota Si H f (x0) es semidefinida positiva solo podemos afirmar que x0 es un mínimo local o un punto de
silla y tenemos que ver que sucede en los alrededores del punto. Si H f (x) existe y es semidefinida positiva
en un entorno de x0 es un mínimo local y si existe y es semidefinida positiva en todo el conjunto factible x0
es un mínimo global.
Análogamente, si H f (x0) es semidefinida negativa solo podemos afirmar que x0 es un máximo local
o un punto de silla. Si existe y es semidefinida negativa en un entorno de x0 es un máximo local y si es
semidefinida negativa en todo el conjunto factible es un máximo global (por la convexidad y concavidad de
la función objetivo). ♣
Página 707 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
Nota El teorema de Weierstrass garantiza que si D es compacto y f es continua en D entonces f tiene
tanto un máximo como un mínimo globales en D (teorema 16.4). Si f es diferenciable en su interior los
alcanza o bien en un punto crítico del interior o bien en la frontera. ♣
Ejemplo 17.8 Estudiar los óptimos locales de la función
f (x, y) = 40x − 7x2 + 20y − 4y2 − 4xy − 120.
Solución
Paso 1 Obtenemos los puntos críticos imponiendo ∇ f (x, y) = 0:
∂ f∂x
(x, y) = 0 ⇒ 40 − 14x − 4y = 0
∂ f∂y
(x, y) = 0 ⇒ 20 − 8y − 4x = 0
Para ello, despejamos y de la primera ecuación obteniendo y = 40−14x4 . Sustituimos este valor de y en la
segunda ecuación, 20− (80− 28x)− 4x = 0, y despejamos x, obteniendo x = 52 . Sustituimos este valor de x
en y, obteniendo y = 54 . Por tanto, el único punto crítico es (5
2 ,54 ).
Paso 2 Estudiamos las condiciones de segundo orden calculando la matriz hessiana de f :
H f (x, y) =
∂2 f∂ x2 (x, y)
∂2 f∂ y∂ x
(x, y)
∂2 f∂ x∂ y
(x, y)∂2 f∂ y2 (x, y)
=
−14 −4
−4 −8
Como los menores principales de la matriz son D1 = −14 y D2 = 96 la matriz hessiana es definida
negativa. Además, como la matriz no depende del punto la función es concava y tenemos un máximo
global estricto (en general depende del punto y es necesario sustituirlo obteniéndose resultados locales).
Ejercicio 17.9 Calcular los posibles máximos, mínimos o puntos de silla de las siguientes funciones
PROYECTO MATECO 3.1416 Página 708
TEMA 17. PROGRAMACIÓN NO LINEAL
a) f (x) = x2 − 2x + 2
b) f (x, y) = −18x2y − 72xy − 6y3 − 54y − 80
c) f (x, y, z) = 3(y − 4) − 3x2(y − 4) + (y − 4)2 + z(4 + z)
Solución
(a) f (x) = x2 − 2x + 2
I El primer paso es igualar la derivada de la función a cero para determinar los posibles puntos críticos:
ddx
(x2 − 2x + 2) = 2x − 2 = 0 =⇒ x = 1
I Estudiamos las condiciones de segundo orden calculando la derivada segunda:
d2
dx2 (x2 − 2x + 2) = 2
Como la derivada segunda no depende del punto y es positiva la función es convexa y tenemos un
mínimo global estricto en el que la función alcanza el valor mínimo, f (1) = 1 (si la derivada segunda
depende del punto se sustituye este punto con resultados locales).
(b) f (x, y) = −18x2y − 72xy − 6y3 − 54y − 80
I El primer paso es igualar el gradiente de la función a cero para determinar los posibles puntos críticos:
∂ f∂x
(x, y) = 0 =⇒ −36 x y − 72 y = 0
∂ f∂y
(x, y) = 0 =⇒ −18 x2 − 72 x − 18 y2 − 54 = 0
Página 709 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
El sistema no es lineal y para resolverlo descomponemos la primera ecuación en dos ecuaciones lineales.
Sustituyendo sus soluciones en la segunda ecuación obtenemos todas las soluciones del sistema
−36 y (x + 2) = 0 =⇒
y = 0 =⇒ − 18 x2 − 72 x − 54 = 0 =⇒
x = −3
x = −1
x = −2 =⇒ − 18y2 + 18 = 0 =⇒
y = 1
y = −1
I Estudiamos las condiciones de segundo orden calculando la matriz hessiana y sus menores angulares
(la matriz depende del punto y solo vamos a obtener resultados locales):
∂2
∂x2( f )
∂2
∂y∂x( f )
∂2
∂x∂y( f )
∂2
∂y2( f )
=
−36 y −36 x − 72
−36 x − 72 −36 y
. En el punto (−3, 0) la matriz hessiana es
0 36
36 0
Como los menores angulares son d1 = 0 y d2 = det(H) = −1296 la matriz hessiana es indefinida y tenemos
un punto de silla.
. En el punto (−1, 0) la matriz hessiana es
0 −36
−36 0
PROYECTO MATECO 3.1416 Página 710
TEMA 17. PROGRAMACIÓN NO LINEAL
Como los menores angulares son d1 = 0 y d2 = det(H) = −1296 la matriz hessiana es indefinida y tenemos
un punto de silla.
. En el punto (−2, 1) la matriz hessiana es
−36 0
0 −36
Como la matriz es diagonal tenemos sus autovalores en la diagonal. Al ser negativos la matriz hessiana es
definida negativa y tenemos un máximo local.
. En el punto (−2,−1) la matriz hessiana es
36 0
0 36
Como la matriz es diagonal tenemos sus autovalores en la diagonal. Al ser positivos la matriz hessiana es
definida positiva y tenemos un mínimo local.
(c) f (x, y, z) = 3(y − 4) − 3x2(y − 4) + (y − 4)2 + z(4 + z)
I El primer paso es igualar el gradiente de la función a cero para determinar los posibles puntos críticos:
∂ f∂x
(x, y, z) = 0 =⇒ −6 x (y − 4) = 0
∂ f∂y
(x, y, z) = 0 =⇒ −3 x2 + 2 y − 5 = 0
∂ f∂z
(x, y, z) = 0 =⇒ 2 z + 4 = 0
Página 711 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
Como el sistema no es lineal descomponemos la primera ecuación en dos ecuaciones lineales. Resolve-
mos el sistema sustituyendo las soluciones de estas ecuaciones y despejando el resto de variables:
x = −1 y = 4 z = −2
x = 1 y = 4 z = −2
x = 0 y = 52 z = −2
I Estudiamos las condiciones de segundo orden calculando la matriz hessiana y sus menores angulares
(la matriz depende del punto y solo vamos a obtener resultados locales):
H(x, y, z) =
24 − 6 y −6 x 0
−6 x 2 0
0 0 2
con menores angulares d1 = 24 − 6y, d2 = 48 − 12 y − 36 x2, d3 = 96 − 24 y − 72 x2
. En el punto (0, 52 ,−2) estos menores son d1 = 9, d2 = 18, d3 = 36 con lo que es definida positiva y
tenemos un mínimo local.
. El procedimiento se repite con el resto de soluciones. ♣
Maxima 17.10 Calcular los posibles máximos, mínimos o puntos de silla de las siguientes funciones
a) f (x) = x4 − 2x2 + 2
b) f (x, y) = −18x2y − 72xy − 6y3 − 54y − 80
c) f (x, y, z) = 3(y − 4) − 3x2(y − 4) + (y − 4)2 + z(4 + z)
Solución
(a) f (x) = x4 − 2x2 + 2
PROYECTO MATECO 3.1416 Página 712
TEMA 17. PROGRAMACIÓN NO LINEAL
Definimos la función y calculamos sus puntos críticos igualando a cero su derivada
( % i1) f(x):=xˆ4-2*xˆ2+2;
f(x) := x4 − 2x2 + 2
( % o1)
( % i2) diff(f(x),x,1);
4x3 − 4x ( % o2)
( % i3) sol:solve([ %], [x]);
[x = −1, x = 1, x = 0]
(sol)
Calculamos su derivada segunda, cuyo signo depende del punto y proporciona resultados locales.
( % i4) diff(f(x),x,2);
12x2 − 4 ( % o4)
( % i5) at(diff(f(x),x,2),sol[1]);
8 ( % o5)
( % i6) at(diff(f(x),x,2),sol[2]);
8 ( % o6)
( % i7) at(diff(f(x),x,2),sol[3]);
−4 ( % o7)
Tenemos que x = −1 y x = 1 son mínimos locales con valor mínimo f (−1) = f (1) = 1 y x = 0 un
máximo local con valor máximo f (0) = 2.
( % i8) wxplot2d([f(x)], [x,-2,2])$
( % t8)
Aunque no lo podemos afirmar analíticamente sin un estudio más profundo, en la gráfica de la función
podemos observar que los mínimos son mínimos globales y que la función no tiene máximos globales.
(b) x3 + 3xy2 − 15x − 12y
Página 713 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
Definimos la función y calculamos sus puntos críticos igualando a cero sus derivadas parciales. Para
ello, calculamos el vector gradiente mediante la matriz jacobiana
( % i1) f(x,y):=xˆ3+3*x*yˆ2 -15* x-12*y;
f (x, y) := x3 + 3x y2 + (−15) x + (−12) y ( % o1)
( % i2) J:jacobian([f(x,y)],[x,y]);
(3y2 + 3x2 − 15 6xy − 12
)(J)
( % i3) grad:args(J)[1];
[3y2 + 3x2 − 15, 6xy − 12] (grad)
( % i4) sol:solve(grad,[x,y]);
[[x = 2, y = 1], [x = 1, y = 2], [x = −1, y = −2], [x = −2, y = −1]] (sol)
Calculamos su matriz hessiana cuyo signo depende del punto, por lo que nos proporcionará resultados
locales.
( % i5) H:hessian(f(x,y),[x,y]);
6x 6y
6y 6x
(H)
Para determinar el signo de la matriz hessiana en cada punto podemos utilizar el método de los menores
angulares o calcular sus autovalores.
( % i6) d1:H[1,1];
6x (d1)
( % i7) d2:determinant(H);
36x2 − 36y2 (d2)
PROYECTO MATECO 3.1416 Página 714
TEMA 17. PROGRAMACIÓN NO LINEAL
( % i9) ev([d1,d2],sol[1]);
eigenvalues(ev(H,sol[1]));
[12, 108] ( % o8)
[[6, 18], [1, 1]] ( % o9)
( % i11) ev([d1,d2],sol[2]);
eigenvalues(ev(H,sol[2]));
[6,−108] ( % o10)
[[18,−6], [1, 1]] ( % o11)
( % i13) ev([d1,d2],sol[3]);
eigenvalues(ev(H,sol[3]));
[−6,−108] ( % o12)
[[6,−18], [1, 1]] ( % o13)
( % i15) ev([d1,d2],sol[4]);
eigenvalues(ev(H,sol[4]));
[−12, 108] ( % o14)
[[−18,−6], [1, 1]] ( % o15)
Vistos los resultados podemos afirmar que en el punto (2, 1) la matriz hessiana es definida positiva con
lo que es un mínimo local. En los puntos (1, 2) y (−1,−2) la matriz hessiana es indefinida con lo que son
puntos de silla. En el punto (−2,−1) la matriz hessiana es definida negativa con lo que es un máximo local.
Dibujamos tanto la gráfica completa de la función como las gráficas en un entorno de los puntos críticos.
( % i16) lista3:makelist(at([x,y,f(x,y)],sol[t]),t,1,4);
[[2, 1,−28], [1, 2,−26], [−1,−2, 26], [−2,−1, 28]] (lista3)
( % i17) opt:[surface_hide = true,contour=’both,contour_levels = [-50,1,50],
point_type=filled_circle, color=red]$
Página 715 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
( % i18) wxdraw3d(explicit(f(x,y),x,-3,3,y,-3,3),opt, points(lista3))$
( % t18)( % i19) opt:[surface_hide= true,contour=’both,contour_levels =100, point_type=filled_circle, color=red]$
( % i20) wxdraw3d(
explicit(f(x,y),x,1.9,2.1,y,0.9,1.1),
opt,points([at([x,y,f(x,y)],sol[1])]))$
( % t20)
( % i21) wxdraw3d(
explicit(f(x,y),x,0.9,1.1,y,1.9,2.1),
opt, points([at([x,y,f(x,y)],sol[2])]))$
( % t21)
( % i22) wxdraw3d(
explicit(f(x,y),x,-1.1,-0.9,y,-2.1,-1.9),
opt, points([at([x,y,f(x,y)],sol[3])]))$
( % t22)
( % i23) wxdraw3d(
explicit(f(x,y),x,-2.1,-1.9,y,-1.1,-0.9),
opt, points([at([x,y,f(x,y)],sol[4])]))$
( % t23)
(c) f (x, y, z) = −72x2 + 270y + 18x2y − 72y2 + 6y3 + 160z − 120z2 + 40z3 − 5z4
PROYECTO MATECO 3.1416 Página 716
TEMA 17. PROGRAMACIÓN NO LINEAL
Definimos la función y calculamos sus puntos críticos igualando a cero sus derivadas parciales. Para
ello, calculamos el vector gradiente mediante la matriz jacobiana
( % i1) f(x,y,z):= - 72*xˆ2 + 270*y + 18*xˆ2*y - 72*yˆ2 + 6*yˆ3 + 160*z - 120*zˆ2 + 40*zˆ3 - 5*zˆ4;
f (x, y, z) := (−72) x2 +270y+18x2y+(−72) y2 +6y3 +160z+(−120) z2 +40z3 +(−5) z4 ( % o1)
( % i2) J:jacobian([f(x,y,z)],[x,y,z]);
(36xy − 144x 18y2 − 144y + 18x2 + 270 −20z3 + 120z2 − 240z + 160
)(J)
( % i3) sol:solve(args(J[1]));
[[z = 2, y = 5, x = 0], [z = 2, y = 3, x = 0], [z = 2, y = 4, x = −1], [z = 2, y = 4, x = 1]] (sol)
Calculamos su matriz hessiana cuyo signo depende del punto, por lo que nos proporcionará resultados
locales. Para determinar este signo utilizaremos los autovalores de la matriz
( % i4) H:hessian(f(x,y,z),[x,y,z]);
36y − 144 36x 0
36x 36y − 144 0
0 0 −60z2 + 240z − 240
(H)
( % i5) eigenvalues(ev(H,sol[1]));
[[0, 36], [1, 2]] ( % o5)
( % i6) eigenvalues(ev(H,sol[2]));
[[−36, 0], [2, 1]] ( % o6)
( % i7) eigenvalues(ev(H,sol[3]));
[[−36, 36, 0], [1, 1, 1]] ( % o7)
( % i8) eigenvalues(ev(H,sol[4]));
[[−36, 36, 0], [1, 1, 1]] ( % o8)
En las dos últimas soluciones la matriz hessiana es indefinida, por lo que son puntos de silla. En la
primera solución la matriz es semidefinida positiva, con lo que puede ser un mínimo o un punto de silla.
Página 717 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
En la segunda solución es semidefinida negativa, con lo que puede ser un máximo o un punto de silla. En
ambos casos tenemos que estudiar el comportamiento de la función en un entorno de cada punto crítico.
Una forma de hacernos una idea de la situación es ver si crece o decrece el valor de la función objetivo
cuando nos separamos del punto crítico en una dirección determinada, v, con un paso de longitud variable,
h. El correspondiente incremento de la función será positivo si es un mínimo y negativo si es un máximo.
Por tanto, si al calcular este incremento obtenemos valores positivos y negativos es un punto de silla.
( % i12) v:[1,1,1]$
pto:at([x,y,z],sol[1])$
apply(f,pto+h*v)-apply(f,pto)$
define(g(h),expand( %));
g(h) := −5h4 + 24h3 + 36h2 ( % o12)
( % i13) wxplot2d([g(h)], [h,-0.2,0.2])$
( % t13)
Podemos observar que los incrementos de la función son positivos, lo que es compatible con que sea un
mínimo (no podemos afirmar que lo sea).
( % i17) v:[1,1,1]$
pto:at([x,y,z],sol[2])$
apply(f,pto+h*v)-apply(f,pto)$
define(g(h),expand( %));
g(h) := −5h4 + 24h3 − 36h2 ( % o17)
( % i18) wxplot2d([g(h)], [h,-0.2,0.2])$
( % t18)
Podemos observar que los incrementos de la función son negativos, lo que es compatible con que sea
un máximo (no podemos afirmar que lo sea). ♣
I Aunque consideremos distintas longitudes de paso en varias direcciones y obtengamos incrementos
siempre del mismo signo, no podemos afirmar fehacientemente que sea un óptimo.
PROYECTO MATECO 3.1416 Página 718
TEMA 17. PROGRAMACIÓN NO LINEAL
Ejercicio 17.11 Calcular y clasificar los puntos estacionarios de las siguientes funciones:
(a) f (x, y) = 2x + 4y − x2 − y2 − 3 (b) f (x, y) = x3 + y3 − 3xy
(c) f (x, y) = x2 + 2xy + 2y2 (d) f (x, y) = (x − y)(1 − xy)
(e) f (x, y) = 2x2 + y2 + 6xy + 10x − 6y + 5 (f) f (x, y) = 2xy − 2x2 − y2 + 8x − 2y
(g) f (x, y) = x2 − x2y + 2y2 (h) f (x, y) = x3 + 3xy2 − 15x − 12y
(i) f (x, y) = 100x + 150y − 40lnx − 20lny − 20x2 − 35y2 con x, y ≥ 0
(j) f (x, y) = 30x12 y
13 − 15x − 10y con x, y ≥ 0
(k) f (x, y, z) = 16x + 12y + 20z − x2 − 2y2 − 3z2 − 2xz − 25 con x, y, z ≥ 0
Nota (Métodos numéricos para el cálculo de óptimos) Un vector d ∈ Rn es una dirección de descenso
de la función en el punto x ∈ Rn si para todo λ ∈ R arbitrariamente pequeño f (x + λd) < f (x) y es una
dirección de ascenso si para todo λ ∈ R arbitrariamente pequeño f (x + λd) > f (x).
Para determinar un óptimo nos movemos desde un punto xk a un punto xk+1 = xk + λkdk siguiendo una
dirección de ascenso o descenso, según sea un problema de maximización o minimización.
Así, en el algoritmo del gradiente partimos de un punto inicial, desde el que tomamos como dirección
de ascenso el vector gradiente y de descenso la dirección opuesta al gradiente. La longitud del paso λk la
determinamos maximizando o minimizando el valor de la función, según sea un problema de maximización
o minimización (optλ
f (xk + λdk)). Repetimos el proceso y terminamos siguiendo un criterio de parada que
depende de lo próximos que estén los resultados y donde la proximidad mínima para parar, ε, recibe el
nombre de tolerancia. Los criterios más usados son
||∇ f (xk)|| < ε | f (xk+1) − f (xk)| < ε |xk+1 − xk| < ε ♣
Página 719 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
17.2. Programación no lineal con restricciones
Consideramos el problema (∗∗) consistente en encontrar el punto o puntos del conjunto factible en los
que la función objetivo alcanza su valor máximo/mínimo y en general buscamos óptimos globales.
(∗∗) opt f (x1, · · · , xn)
s.a. gi(x1, · · · , xn) = bi ∀ i = 1, · · · , r
gi(x1, · · · , xn) ≤ bi ∀ i = r + 1, · · · , k
gi(x1, · · · , xn) ≥ bi ∀ i = k + 1, · · · ,m
Nota (Eliminación de variables) En el caso particular de un problema definido mediante m restricciones de
igualdad puede ser posible despejar m variables en función de las otras y reducirlo al problema de optimizar
una función de n − m variables sin restricciones. Así, si podemos escribir el problema como
opt f (h(xm+1, . . . , xn), xm+1, . . . , xn)
de forma que si x0 ∈ A es un mínimo del problema reducido entonces (h(x0), x0) ∈ F es un mínimo del
problema original y con el mismo carácter local o global, siendo la situación análoga para máximos. Es
importante señalar que no siempre es posible y solo lo podemos hacer si existe h : A ⊆ Rn−m → Rm
continua verificando que (x1, . . . , xm) = h(xm+1, . . . , xn) ∀ (x1, . . . , xn) ∈ F. ♣
Ejemplo 17.12
opt (x − 3)2 + (y − 2)2
s.a. x + y ≤ 7
x, y ≥ 0
PROYECTO MATECO 3.1416 Página 720
TEMA 17. PROGRAMACIÓN NO LINEAL
En este problema el dominio es un conjunto compacto y la función objetivo es continua y, por tanto, el
problema tiene máximo y mínimo globales (teorema de Weierstrass).
I Los puntos óptimos de la función objetivo interiores al dominio son posibles optimos del problema
con restricciones y, al ser la función objetivo diferenciable, cumplen la condición necesaria de óptimo local
y su gradiente es cero. En nuestro caso se deja como ejercicio comprobar que el único punto crítico interior
es el punto (3, 2) (al ser la función objetivo convexa es un mínimo global).
I Los vértices también son posibles óptimos y en nuestro caso son: (0, 0), (0, 7) y (7, 0).
I Los óptimos interiores a cada frontera dada por una restricción de igualdad son el último tipo posible
de óptimo. En nuestro caso, es posible despejar una variable en función de la otra y reducir el problema a
optimizar una única variable obteniendo un punto por cada restricción. Se deja como ejercicio comprobar
que son los puntos (4, 3), (0, 2) y (3, 0).
Entre estos candidatos a óptimo el que tenga la imagen mayor será el máximo global y el que la tenga
menor el mínimo global:
Óptimos interiores al dominio: (3,2) con f (3, 2) = 0
Óptimos interiores a las restricciones (uno por cada restricción):
(4,3) con f (4, 3) = 2, (0,2) con f (0, 2) = 9 y (3,0) con f (3, 0) = 4.
Óptimos en los vértices del dominio: (0,0) con f (0, 0) = 13, (0,7)
con f (0, 7) = 34 y (7,0) con f (7, 0) = 20.
Así, (3,2) es el mínimo global con valor mínimo 0 y (0,7) es el máximo global con valor máximo 34.
Como el problema tiene dos variables, una posibilidad es la resolución gráfica mediante la representa-
ción de las curvas de nivel de la función objetivo. El mínimo será el punto de la región factible por el que
pase la curva de nivel de menor valor y el máximo punto por el que pase la de mayor valor.
En nuestro caso las curvas de nivel de la función objetivo corresponden a circunferencias con centro el
punto (3, 2) y en la gráfica se puede observar que las curvas de nivel dentro del conjunto factible (zona azul
Página 721 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
celeste) crecen desde el punto (3, 2), donde vale cero, hasta el punto (0, 7), donde vale 34 (en rojo). A partir
de la curva de nivel correspondiente a este punto las curvas de nivel están fuera del conjunto factible. ♣
17.2.1. Multiplicadores de Lagrange y condiciones de Karush-Kuhn-Tucker
El método de los multiplicadores de Lagrange tiene la ventaja de que todos los posibles óptimos se tratan
con un único formalismo. Además, permite analizar su comportamiento ante variaciones en las restricciones
que puedan hacer que dejen de serlo. Básicamente, consiste en convertir el problema (∗∗) en el problema de
optimizar una función sin restricciones, que recibe el nombre de función lagrangiana asociada al problema.
Para ello consideramos todas las restricciones con todos los términos en el lado izquierdo, de forma que
queda gi(x1, . . . , xn) − bi para i = 1, . . . ,m. Por cada restricción añadimos a las variables originales una
variable, λi, que recibe el nombre de multiplicador por la forma de la función.
Definición 17.13 Sean f , gi : D ⊆ Rn−→ R de clase C1 en int(D), ci ∈ R, (i = 1, . . . ,m < n)
La función lagrangiana asociada al problema (∗∗) es:
L(x1, . . . , xn, λ1, . . . , λm) = f (x1, . . . , xn) ± λ1[g1(x1, . . . , xn) − c1
]± · · · ± λm
[gm(x1, . . . , xn) − cm
]
donde el signo que asociamos a cada multiplicador de la función lagrangiana depende del tipo de restric-
ción (por eso escribimos ±).
Nota Se puede asociar cualquier signo a las restricciones en la función lagrangiana puesto que los multi-
plicadores pueden ser tanto positivos como negativos. Utilizaremos la siguiente convención para enunciar
de forma simple las condiciones que debe cumplir el signo de los multiplicadores para que un punto crítico
sea un tipo concreto de óptimo (máximo/mínimo). Así, asociamos el signo menos a las igualdades y a las
desigualdades menor o igual y el signo más a las desigualdades mayor o igual. De este modo tenemos
PROYECTO MATECO 3.1416 Página 722
TEMA 17. PROGRAMACIÓN NO LINEAL
L(x, λ) = f (x) − λ1[g1(x) − c1
]− · · · − λr
[gr(x) − cr
]−λr+1
[gr+1(x) − cr+1
]− · · · − λk
[gk(x) − ck
]+λk+1
[gk+1(x) − ck+1
]+ · · · + λm
[gm(x) − cm
]♣
Las condiciones de optimalidad de primer orden son condiciones necesarias que se basan en estudiar el
gradiente de la función lagrangiana obtenido considerando solo como variables las variables originales
∇xL(x, λ) =
∂ f∂x1
(x) − λ1∂g1(x)∂x1
− · · · − λm∂gm
∂x1(x)
...
∂ f∂xn
(x) − λ1∂g1(x)∂xn
− · · · − λm∂gm
∂xn(x)
donde podemos observar que este gradiente se anula si y solo si el gradiente de la función objetivo en x0 es
combinación lineal de los gradientes de las restricciones
∇ f (x0) = λ1∇g1(x0) + · · · + λm∇gm(x0)
Para poder utilizar esta caracterización es necesario que los gradientes de las funciones que definen las
restricciones activas en el punto cumplan ciertas condiciones a las que nos referimos como condiciones de
regularidad o cualificaciones de las restricciones. Cuando las funciones que intervienen son diferencia-
bles con continuidad utilizaremos como condición de regularidad que los gradientes correspondientes a las
restricciones activas sean linealmente independientes (si solo hay una restricción la condición de regulari-
dad equivale a que este gradiente no sea nulo).
Teorema 17.14 (Condición necesaria de óptimo local de primer orden) Sean f , gi : D ⊆ Rn−→ R de
clase C1 en int(D) (i = 1, . . . ,m) y x0 ∈ int(D) un punto del conjunto factible que verifica la condición de
regularidad (el punto pertenece al conjunto factible si y solo si cumple todas las restricciones).
Si x0 es un óptimo del problema (?) entonces existen unos escalares λ1, . . . , λm tales que
Página 723 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
• Las derivadas de la función lagrangiana con respecto a las variables originales son nulas
∇x f (x0, λ) = θ
• Los multiplicadores asociados a las restricciones no activas en x0 son nulos
λi(gi(x0) − ci) = 0 ∀ i = 1, · · · ,m
• En un máximo los multiplicadores asociados a las desigualdades son positivos y en un mínimo negati-
vos (diremos que se verifican las condiciones de Kuhn-Tucker para máximo/mínimo respectivamente)
λi ≤ 0 ∀ i = 1, · · · ,m (mın); λi ≥ 0 ∀ i = 1, · · · ,m (max) ♣
I Los signos de los multiplicadores dependen de la formulación del problema, por lo que si el problema
no está formulado siguiendo la convención adoptada las condiciones sobre los signos de los multiplicado-
res cambian. Una condición equivalente que no depende de la formulación del problema es que los signos
sean tales que al comparar la lagrangiana con la función original en todo el conjunto factible se tenga:
L(x, λ) ≤ f (x) ∀x ∈ F (mın) L(x, λ) ≥ f (x) ∀x ∈ F(max) ♣
Maxima 17.15 Comprobar que los candidatos a óptimo del problema 17.12 son los puntos críticos de la
langragiana correspondiente a dicho problema.
Solución
El primer paso es definir la función objetivo y la función que define el dominio.
( % i2) f(x,y):=(x-3)ˆ2+(y-2)ˆ2$
g(x,y):=x+y-7$
PROYECTO MATECO 3.1416 Página 724
TEMA 17. PROGRAMACIÓN NO LINEAL
Para definir la función lagrangiana del problema consideramos también las restricciones de no negativi-
dad para las variables
( % i3) define(L(x,y,λ),f(x,y)-λ1*g(x,y)+λ2*x+λ3*y);
L (x, y, λ) := y λ3 + x λ2 − (y + x − 7) λ1 + (y − 2)2 + (x − 3)2 ( % o3)
Igualamos a cero las parciales de la función lagrangiana con respecto a las variables originales:
( % i5) eq1:diff(L(x,y,λ),x,1)=0;
eq2:diff(L(x,y,λ),y,1)=0;
λ2 − λ1 + 2 (x − 3) = 0 (eq1)
λ3 − λ1 + 2 (y − 2) = 0 (eq2)
Incluimos las restricciones del dominio (como son desigualdades hay que incluir que el multiplicador
es cero si la restricción no es activa).
( % i8) eq3:λ1*g(x,y)=0;
eq4:λ2*x=0;
eq5:λ3*y=0;
(y + x − 7) λ1 = 0 (eq3)
x λ2 = 0 (eq4)
y λ3 = 0 (eq5)
Al resolver el sistema obtenemos los siete puntos críticos
Página 725 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
( % i9) sol:solve([eq1,eq2,eq3,eq4,eq5],[x,y,λ1,λ2,λ3]);
[[x = 3, y = 2, λ1 = 0, λ2 = 0, λ3 = 0], (sol)
[x = 4, y = 3, λ1 = 2, λ2 = 0, λ3 = 0],
[x = 0, y = 2, λ1 = 0, λ2 = 6, λ3 = 0],
[x = 0, y = 7, λ1 = 10, λ2 = 16, λ3 = 0],
[x = 3, y = 0, λ1 = 0, λ2 = 0, λ3 = 4],
[x = 7, y = 0, λ1 = 8, λ2 = 0, λ3 = 12],
[x = 0, y = 0, λ1 = 0, λ2 = 6, λ3 = 4]]
El último paso sería determinar si los candidatos a óptimo están dentro del conjunto factible. En nuestro
caso lo están todos y son los mismos candidatos a óptimos que obtuvimos en el problema 17.12 (obsérvese
que el multiplicador es cero cuando la restricción es inactiva). ♣
Ejercicio 17.16 Resolver el siguiente problema distinguiendo si las variables son no negativas o pueden
tomar cualquier valor
opt x2 + y2
x + y = 10
Solución
La función lagrangiana asociada al problema es
L(x, y, λ) = x2 + y2 − λ (x + y − 10)
PROYECTO MATECO 3.1416 Página 726
TEMA 17. PROGRAMACIÓN NO LINEAL
Para determinar los puntos críticos de la lagrangiana igualamos su gradiente con respecto a x e y al
vector cero y tenemos en cuenta que es un punto del conjunto factible
∂L
∂x= 2 x − λ = 0
∂L
∂y= 2 y − λ = 0 10 − y − x = 0
De la primera ecuación obtenemos x = λ/2 y de la segunda y = λ/2. Al sustituir en la restricción tene-
mos λ = 10 y, por tanto x = 5 e y = 5. En el ejercicio 17.21 veremos las condiciones de segundo orden, que
mostrarán que tenemos un mínimo global del problema. Esto lo podemos ver si representando gráficamen-
te el problema mediante las curvas de nivel de la función y la recta correspondiente a la restricción. Así,
observamos que el primer punto del conjunto factible que tocan las curvas de nivel es el punto (5, 5) por lo
que es el mínimo global de la función con f (5, 5) = 50.
Si consideramos variables pueden tomar cualquier valor la función no tiene máximo y crece indefinida-
mente. Sin embargo, si consideramos que son no negativas sí lo tiene, ya que, por el teorema de Weierstrass
hay tanto mínimo como maximo globales. Para determinarlos consideramos la lagrangiana del problema
incluyendo las restricciones x ≥ 0 e y ≥ 0
L(x, y, λ1, λ2, λ3) = x2 + y2 − λ1 (x + y − 10) + λ2x + λ3y
Para determinar los puntos críticos de la lagrangiana igualamos su gradiente con respecto a x e y al vector
cero y tenemos en cuenta que es un punto del conjunto factible en el que las restricciones de desigualdad
pueden estar activas o no
∂L
∂x(x, λ) = 2 x − λ1 + λ2 = 0
∂L
∂y(x, λ) = 2 y − λ1 + λ3 = 0 x + y = 10 λ2x = 0 λ3y = 0
Página 727 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
Si consideramos que la restricción x ≥ 0 es activa tenemos x = 0 y si no lo es λ2 = 0. Análogamente, si
consideramos que la restricción y ≥ 0 es activa tenemos y = 0 y si no lo es λ3 = 0. Esto hace que tengamos
cuatro casos (utilizamos en todos la primera restricción):
x = 0 e y = 0: corresponde al punto (0, 0), que no está en el conjunto factible pues no verifica la
primera restricción.
x = 0 y λ3 = 0: corresponde al punto (0, 10) con multiplicadores λ1 = λ2 = 20 y λ3 = 0. Como λ2 es
positivo y λ3 = 0 el punto cumple las condiciones de máximo (no hay condiciones sobre λ1).
y = 0 y λ2 = 0: corresponde al punto (10, 0) con multiplicadores λ1 = λ3 = 20 y λ2 = 0. Como λ3 es
positivo y λ2 = 0 el punto cumple las condiciones de máximo (no hay condiciones sobre λ1).
λ2 = 0 y λ3 = 0: corresponde al punto (5, 5) con multiplicadores λ1 = 10 y λ2 = λ3 = 0, que hemos
analizado ya y es un mínimo global (λ2 = λ3 = 0 es compatible con que sea un mínimo).
Si representamos gráficamente el problema cuando consideramos que las variables son no negativas, el
conjunto factible es el segmento de recta correspondiente a la recta dentro del primer cuadrante (en rojo).
Las curvas de nivel son circunferencias que van aumentando
de valor a medida que aumenta su radio (en amarillo) y parten
del punto (0,0), que no está en el conjunto factible. El primer
punto del conjunto factible que tocan es el punto (5, 5) donde
la curva de nivel vale 50 (en verde). El valor de las curvas de
nivel crece hasta los puntos (0, 10) y (10, 0), donde la curva
de nivel vale 100 (en azul).Estos puntos son los últimos puntos del conjunto factible que tocan las curvas de nivel. ♣
Nota Las condiciones de Kuhn-Tucker son condiciones necesarias de optimalidad local, de forma que
todo máximo local satisface las condiciones para máximo y todo mínimo local satisface las condiciones
PROYECTO MATECO 3.1416 Página 728
TEMA 17. PROGRAMACIÓN NO LINEAL
para mínimo. Por tanto, si un punto no satisface las condiciones de Kuhn-Tucker para máximo no es un
máximo local y si no satisface las condiciones de Kuhn-Tucker para mínimo no es un mínimo local. ♣
Nota Si en un óptimo los gradientes de las restricciones no son linealmente independientes puede que este
óptimo no sea un punto crítico de la función lagrangiana y qué no aparezca entre los candidatos a óptimo.♣
Ejemplo 17.17 Resolver el siguiente problema
mın x2 + y2 + z2
s.a. (1 − x)3 = y
y = 0
Solución
L(x, y, z, λ1, λ2) = x2 + y2 + z2 − λ1((1 − x)3 − y) − λ2y
Igualamos sus parciales con respecto a las variables originales a cero e incluimos las restricciones
∂L
∂x(x, y, z, λ1, λ2) = 2x + λ13(1 − x)2 = 0
∂L
∂y(x, y, z, λ1, λ2) = 2y + λ1 − λ2 = 0
∂L
∂z(x, y, z, λ1, λ2) = 2z = 0
(1 − x)3 = y
y = 0
La función lagrangiana no tiene puntos críticos, ya que de las tres últimas ecuaciones x = 1, y = 0, z = 0
pero al sustituirlos en la primera ecuación obtenemos 2 = 0, que es imposible.
Sin embargo, el conjunto factible es F = {(1, 0, z)/z ∈ R} y en él f (1, 0, z) = z2 con mínimo en z = 0,
por lo que el punto (1,0,0) es el mínimo global del problema.
Página 729 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
Que no sea un punto crítico se debe a que los gradientes de las restricciones son paralelos (l.d.) y no se
dan las condiciones de regularidad
∇g1(x, y, z) =(3(1 − x)2,−1, 0
)∇g2(x, y, z) = (0, 1, 0)
=⇒ ∇g1(1, 0, 0) = (0,−1, 0) //∇g2(1, 0, 0) = (0, 1, 0)♣
Nota (Interpretación geométrica) En el caso de igualdades es necesario que el gradiente de la función
objetivo sea combinación lineal de los gradientes de las restricciones. En el caso de desigualdades menor o
igual las condiciones de Kuhn-Tucker indican que en un posible máximo la combinación lineal correspon-
diente a las restricciones activas es positiva, de forma que el gradiente de la función objetivo está dentro del
cono convexo generado por los gradientes de las restricciones activas, que apuntan hacia el exterior de la
región, de este modo, la dirección en la que crece la función queda fuera de la región factible. En un posible
mínimo esta combinación lineal es negativa, de forma que el gradiente de la función objetivo está en la
parte opuesta del correspondiente cono convexo y es la dirección en la que decrece la que queda fuera de la
región factible (en desigualdades mayor o igual hay que tener en cuenta que el gradiente de la restricción
apunta hacia el interior de la región factible). ♣
Ejemplo 17.18
mın x2 + y2
s.a. 2x − y ≤ 4
x + 4y ≤ 10
x, y ≥ 0
En este problema las curvas de nivel de la función (en amarillo) son circunferencias que parten del punto
(0,0), van aumentando de valor a medida que aumenta su radio y alcanzan su máximo en el punto ( 269 ,
169 )
(en rojo). Como las restricciones son menor o igual, sus gradientes apuntan al exterior de la región factible
(en verde y azul). En el máximo el gradiente de la función (en rojo) está dentro del cono convexo generado
por los gradientes de las restricciones, de forma que la dirección en la que podría crecer le llevaría fuera de
la región factible. ♣
PROYECTO MATECO 3.1416 Página 730
TEMA 17. PROGRAMACIÓN NO LINEAL
Si la función objetivo está definidas en un abierto convexo el estudio de su concavidad y convexidad
puede permitirnos aplicar el teorema local-global de forma que óptimos locales se transformen en óptimos
globales. Si la función es diferenciable con continuidad y es cóncava o convexa en el conjunto factible po-
demos aplicar el teorema local-global y cualquier punto que satisfaga las condiciones necesarias de primer
orden es un óptimo local y, por tanto, global (si la función es convexa todo mínimo local es un mínimo
global y si la función es cóncava todo máximo local es un máximo global).
No siempre es sencillo estudiar si la función es cóncava o convexa en el conjunto factible y puede ser
más fácil estudiar es si la función objetivo es cóncava o convexa en su dominio. En particular, cuando la
función objetivo es cóncava o convexa y las restricciones son lineales tenemos garantizado que el corres-
pondiente óptimo local es un óptimo global.
Proposición 17.19 (Condiciones de optimalidad global bajo restricciones de igualdad lineales) Sean f :
D ⊆ Rn−→ R de clase C1 en int(D) con D convexo, gi : D ⊆ Rn
−→ R (i = 1, . . . ,m < n) funciones
lineales y bi ∈ R (i = 1, . . . ,m < n).
Si f es convexa en D entonces cualquier punto que satisfaga las condiciones necesarias de primer
orden es un mínimo local y, por tanto, global.
Si f es cóncava en D entonces cualquier punto que satisfaga las condiciones necesarias de primer
orden es un máximo local y, por tanto, global. ♣
Si la función objetivo es cóncava o convexa y alguna restricción es no lineal no siempre un óptimo
local se transforma en global. Cuando las funciones que definen restricciones de desigualdad menor o igual
activas son convexas y las que definen restricciones de desigualdad mayor o igual cóncavas el conjunto
factible es convexo y, en cada caso, podemos aplicar el teorema local-global (las restricciones lineales no
influyen en el carácter del óptimo pues las funciones correspondientes son tanto cóncavas como convexas).
Página 731 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
Si hay restricciones de igualdad se necesitan condiciones adicionales sobre la concavidad y convexidad de
las funciones que definen estas restricciones para que un óptimo local se transforme en global.
Proposición 17.20 (Condiciones de optimalidad global bajo restricciones de igualdad generales) Sean
f , gi : D ⊆ Rn−→ R de clase C1 definidas en un abierto convexo D de Rn y x0 ∈ F es un punto que verifica
las condiciones necesarias de primer orden con vector de multiplicadores λ∗ = (λ∗1, . . . , λ∗m) tal que las
funciones que definen restricciones activas de desigualdad menor o igual son convexas y las que definen
restricciones de desigualdad mayor o igual cóncavas.
Si f es convexa en D se tiene que x0 es un mínimo global si además las funciones que definen restric-
ciones de igualdad asociadas a multiplicadores positivos son cóncavas y las asociadas a multiplica-
dores negativos convexas.
Si f es cóncava en D se tiene que x0 es un máximo global si además las funciones que definen
restricciones de igualdad asociadas a multiplicadores positivos son convexas y las asociadas a mul-
tiplicadores negativos cóncavas. ♣
Ejercicio 17.21 Estudiar si en el problema 17.16 los puntos críticos de la correspondiente función lagran-
giana cumplen alguna de las condiciones de optimalidad global.
Solución En el problema 17.16 vimos gráficamente que el punto (5, 5) es el mínimo global de la función
con f (5, 5) = 50. Para aplicar condiciones de optimalidad global necesitamos la matriz hessiana
H f (x, y) =
∂2L∂x2
(x, y)∂2L∂y∂x
(x, y)
∂2
∂x∂y(x, y)
∂2
∂y2(x, y)
=
2 0
0 2
En nuestro caso, la matriz hessiana de la función es diagonal, por lo que sus autovalores son los ele-
mentos de la diagonal. Como son positivos es definida positiva, por tanto, la función es convexa. Como la
restricción es lineal podemos garantizar que el punto (5, 5) es un mínimo global. ♣
PROYECTO MATECO 3.1416 Página 732
TEMA 17. PROGRAMACIÓN NO LINEAL
Maxima 17.22 Resolver el siguiente problema
max 4y2 + 2(x − 1)2
s.a. x + 2y ≤ 8
x, y ≥ 0
Solución
El primer paso es definir la función objetivo y la función que define el dominio.
( % i2) f(x,y):=4*yˆ2+2*(x-1)ˆ2$
g(x,y):=x+2*y-8$
Para definir la función lagrangiana del problema consideramos también las restricciones de no negativi-
dad para las variables
( % i3) define(L(x,y,λ),f(x,y)-λ1*g(x,y)+λ2*x+λ3*y);
L (x, y, λ) := y λ3 + x λ2 − (2y + x − 8) λ1 + 4y2 + 2(x − 1)2 ( % o3)
Igualamos el gradiente de la función lagrangiana con respecto a las variables originales e incluimos
las restricciones del dominio (como son desigualdades hay que incluir que el multiplicador es cero si la
restricción no es activa).
( % i5) eq1:diff(L(x,y,λ),x,1);
eq2:diff(L(x,y,λ),y,1);
λ2 − λ1 + 4 (x − 1) (eq1)
λ3 − 2λ1 + 8y (eq2)
Página 733 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
( % i8) eq3:λ1*g(x,y);
eq4:λ2*x;
eq5:λ3*y;
(2y + x − 8) λ1 (eq3)
x λ2 (eq4)
y λ3 (eq5)
Al resolver el sistema obtenemos cinco puntos críticos
( % i9) sol:solve([eq1,eq2,eq3,eq4,eq5],[x,y,λ1,λ2,λ3]);
[[x = 1, y = 0, λ1 = 0, λ2 = 0, λ3 = 0],
[x =103, y =
73, λ1 =
283, λ2 = 0, λ3 = 0],
[x = 0, y = 0, λ1 = 0, λ2 = 4, λ3 = 0],
[x = 0, y = 4, λ1 = 16, λ2 = 20, λ3 = 0],
[x = 8, y = 0, λ1 = 28, λ2 = 0, λ3 = 56]] (sol)
Representamos las curvas de nivel de la función objetivo y el conjunto factible junto a los puntos críticos
( % i11) ptos:makelist(ev([x,y],sol[k]),k,1,length(sol))$
solgraf:points(ptos)$
( % i12) fgraf:makelist(implicit(f(x,y)=k, x, 0, 9, y, 0, 6),k,0,150,5)$
( % i13) fgrafsol:makelist(implicit(f(x,y)=ev(f(x,y),sol[k]), x, 0, 9, y, 0, 6),k,1,length(sol))$
PROYECTO MATECO 3.1416 Página 734
TEMA 17. PROGRAMACIÓN NO LINEAL
( % i14) ggraf:implicit(g(x,y)=0, x, 0, 9, y, 0, 6)$
( % i15) reg:region(g(x,y)<=0, x, 0, 9, y, 0, 9)$
( % i16) wxdraw2d(fill_color=lightblue,reg, color=red,point_type=filled_circle,point_size=2,solgraf,
color=blue,fgrafsol,color=red,ggraf,fgraf)$
( % t16)
El conjunto factible es convexo y la función objetivo es convexa (ejercicio). Como en el punto (1, 0) los
multiplicadores son no positivos cumple las condiciones de mínimo y es un mínimo global.
Como el conjunto factible es cerrado y acotado tenemos garantía de que hay un máximo global, en
nuestro caso el punto (8, 0) es el punto crítico en el que las curvas de nivel alcanzan su valor máximo. ♣
Ejercicio 17.23 Resolver los siguientes problemas:
(a)
opt (x − 3)2 + (y − 2)2
s.a. x + y = 7
x, y ≥ 0
(b)
mın x2 + 2y2
s.a. x + 2y ≤ −3
x − 2y ≤ 2
x ≥ −2
(c)
opt (x1 + 1)2 + (x2 + 1)2
s.a. x21 + x2
2 ≤ 2
x2 ≤ 1
Página 735 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
17.2.2. Interpretación económica y análisis de sensibilidad
Dentro del vector de multiplicadores λ∗ = (λ∗1, . . . , λ∗m) cada multiplicador λi está asociado a una restric-
ción y corresponde a la tasa de variación del valor óptimo de la función respecto al cambio en la constante
bi. Si la restricción determina la cantidad utilizada de un recurso concreto y el término independiente de las
restricciones es la cantidad de recurso disponible, el multiplicador correspondiente aproxima el cambio en
el valor óptimo de la función objetivo al incrementar en una unidad la cantidad de recurso utilizada.
Si la restricción es de desigualdad y no está activa el multiplicador asociado es cero y una variación en
el término independiente no afecta al valor óptimo de la función objetivo. Si la restricción es de desigualdad
y está activa, cuando se trate de máximos los multiplicadores serán positivos o nulos y cuando aumente el
valor de la constante el valor máximo será mayor. En cambio, en el caso de mínimos los multiplicadores
serán negativos o nulos y el nuevo valor mínimo será menor.
Cuando la función a optimizar está dada en unidades monetarias el multiplicador representa la cantidad
que estaríamos dispuestos a pagar por una unidad más de recurso, por lo que a veces recibe el nombre de
precio sombra o precio marginal. Obsérvese que si la restricción no está activa y un recurso no se agota
en el óptimo el multiplicador es cero y no estamos dispuestos a pagar por más cantidad de recurso. ♣
Ejemplo 17.24 Una empresa fabrica tres tipos de output a partir de un único input con un beneficio men-
sual estimado en unidades monetarias de
B(x, y, z) = 10000 − 2(x − 500)2 − 3(y − 500)2 − 2(z − 500)2
donde x, y y z representan las cantidad de input utilizada en cada uno de los output.
a) Determinar la distribución óptima del input entre los tres output, teniendo en cuenta que tiene un
contrato que les obliga a consumir la totalidad del input que asciende a 1100 unidades.
PROYECTO MATECO 3.1416 Página 736
TEMA 17. PROGRAMACIÓN NO LINEAL
b) ¿Le interesa a la empresa adquirir una unidad más de input si el coste de su adquisición es de 150
unidades monetarias?.
( % i1) f(x,y,z):=10000-2*(x-500)ˆ2-3*(y-500)ˆ2-2*(z-500)ˆ2$
( % i2) g(x,y,z):=x+y+z-1100$
( % i3) define(L(x,y,z,λ),f(x,y,z)-λ*g(x,y,z));
L (x, y, z, λ) := − (z + y + x − 1100) λ − 2(z − 500)2− 3(y − 500)2
− 2(x − 500)2 + 10000 ( % o3)
( % i6) eq1:diff(L(x,y,z,λ),x,1);
eq2:diff(L(x,y,z,λ),y,1);
eq3:diff(L(x,y,z,λ),z,1);
−λ − 4 (x − 500) (eq1)
−λ − 6 (y − 500) (eq2)
−λ − 4 (z − 500) (eq3)
( % i7) eq4:g(x,y,z);
z + y + x − 1100 (eq4)
( % i8) sol:solve([eq1,eq2,eq3,eq4],[x,y,z,λ]);
[[x = 350, y = 400, z = 350, λ = 600]] (sol)
Página 737 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
( % i9) hessian(f(x,y,z),[x,y,z]);
−4 0 0
0 −6 0
0 0 −4
( % o9)
Maxima 17.25 Una empresa fabrica a partir de un único input tres tipos de output con un coste de fabri-
cación (en euros) de
C(x, y, z) = 3(x − 60)2 + 15(y − 50)2 + 5(z − 30)2
donde x, y y z representan las cantidad de input utilizada en cada uno de los output.
a) Determinar la distribución óptima del input entre los tres output, teniendo en cuenta que tiene un
contrato que les obliga a producir 200 unidades en total.
b) ¿Le interesa a la empresa firmar un contrato para producir una unidad más si se estima que producirá
un incremento de 100 euros en los beneficios?.
( % i1) f(x,y,z):=3*(x-60)ˆ2+15*(y-50)ˆ2+5*(z-30)ˆ2$
( % i2) g(x,y,z):=x+y+z-200$
( % i3) define(L(x,y,z,λ),f(x,y,z)-λ*g(x,y,z));
L (x, y, z, λ) := − (z + y + x − 200) λ + 5(z − 30)2 + 15(y − 50)2 + 3(x − 60)2 ( % o3)
PROYECTO MATECO 3.1416 Página 738
TEMA 17. PROGRAMACIÓN NO LINEAL
( % i6) eq1:diff(L(x,y,z,λ),x,1);
eq2:diff(L(x,y,z,λ),y,1);
eq3:diff(L(x,y,z,λ),z,1);
6 (x − 60) − λ (eq1)
30 (y − 50) − λ (eq2)
10 (z − 30) − λ (eq3)
( % i7) eq4:g(x,y,z);
z + y + x − 200 (eq4)
( % i8) sol:solve([eq1,eq2,eq3,eq4],[x,y,z,λ]);
[[x =2803, y =
1703, z = 50, λ = 200]] (sol)
( % i9) hessian(f(x,y,z),[x,y,z]);
6 0 0
0 30 0
0 0 10
( % o9)
Página 739 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
17.2.3. Condiciones de optimalidad de segundo orden
Las condiciones de optimalidad de segundo orden se basan en estudiar la forma de la función en el
subespacio tangente a las restricciones activas:
T (x0) = {h ∈ Rn /∇gi(x0) · h = 0 ∀ i ∈ I = {i/gi(x0) = ci}}
Para ello, analizamos la matriz hessiana de la función lagrangiana obtenida tomando como variables solo
las variables originales y su restricción al correspondiente subespacio tangente a las restricciones activas:
q|T (h) = ht HxL(x0, λ∗) h ∀ h ∈ T (x0)
Proposición 17.26 (Condiciones suficientes de 2o orden para optimalidad local) Sean f , gi : D ⊆ Rn−→ R
(i = 1, . . . ,m) funciones de clase C2, x0 una solución factible verificando las condiciones de regularidad
con (x0, λ∗) verificando las condiciones de Kuhn-Tucker y sea HxL(x0, λ
∗) la matriz hessiana de la función
lagrangiana obtenida tomando como variables solo las variables originales.
Si HxL(x0, λ∗) restringida al espacio tangente a las restricciones activas en x0, T (x0), es definida
positiva entonces x0 es un mínimo local estricto (puede ser global).
Si HxL(x0, λ∗) restringida al espacio tangente a las restricciones activas en x0, T (x0), es definida
negativa entonces x0 es un máximo local estricto (puede ser global). ♣
PROYECTO MATECO 3.1416 Página 740
TEMA 17. PROGRAMACIÓN NO LINEAL
Nota (Criterio de los menores) Para este criterio vamos a utilizar la matriz hessiana de la función lagran-
giana escrita por bloques pero en otro orden, que recibe el nombre de matriz hessiana orlada:
HL =
0 · · · 0 ∂g1∂x1
· · ·∂g1∂xn
.... . . 0
... · · ·...
0 · · · 0 ∂gm∂x1
· · ·∂gm∂xn
∂g1∂x1· · ·
∂gm∂x1
∂2 f∂x2
1· · ·
∂2 f∂x1∂xn
.... . .
......
. . ....
∂g1∂xn· · ·
∂gm∂xn
∂2 f∂xn∂x1
· · ·∂2 f∂x2
n
El método que vamos a utilizar no es siempre concluyente, pero si la forma restringida es definida lo
detecta. Consideramos los últimos (n-m) menores principales de la matriz hessiana orlada y distinguimos
si son todos no nulos o no (el primero de ellos es de orden n + m y el orden de los demás va decreciendo).
Si alguno de estos menores es nulo la forma cuadrática restringida no es definida pero el método no es
concluyente sobre su signo. Sin embargo, si los últimos (n-m) menores principales de la matriz hessiana
orlada son no nulos sí lo es:
Si los (n-m) menores tienen el signo de (−1)m el punto es un mínimo relativo condicionado.
Si los (n-m) menores alternan su signo empezando en el signo de (−1)m+1 el punto es un máximo
relativo condicionado.
Si alguno de los (n-m) menores no corresponde a ninguna de las reglas anteriores es un punto de silla.
Obsérvese que si n − m = 1 solo tenemos que calcular el determinante de la hessiana orlada. ♣
Ejemplo 17.27 La producción de un determinado producto depende del capital, K, y trabajo, L utilizados
en la producción según la función f (K, L) = 3K1/2L1/2. Los costes unitarios de capital y trabajo son de cK
y cL u.m. respectivamente.
Página 741 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
a) (Producción dada minimizando los recursos empleados) Determinar las cantidades de capital y tra-
bajo necesarias para producir Q unidades de producto si se pretende minimizar el coste. >Cuál
debería ser el precio mínimo de venta del producto para que resultase rentable incrementar la pro-
ducción?
min cKK + cLL
s.a. 3K1/2L1/2 = Q
(K > 0, L > 0)
b) (Máxima producción para unas disponibilidades dadas) Determinar las cantidades de capital y tra-
bajo necesarias para obtener la máxima producción si se dispone de k u.m. >Cómo afectan las
variaciones en la cantidad de recursos disponibles a la producción?
max 3K1/2L1/2
s.a: cKK + cLL = k
(K > 0, L > 0)
Solución
(a)
mın cKK + cLL
s.a: 3K1/2L1/2 = Q
Todos los puntos del conjunto factible cumplen las condiciones de regularidad (al ser una única restric-
ción su gradiente es linealmente independiente si no es cero)
∇g(K, L) =
(32
K−1/2L1/2,32
K1/2L−1/2), (0, 0)
PROYECTO MATECO 3.1416 Página 742
TEMA 17. PROGRAMACIÓN NO LINEAL
Posibles óptimos: ∇L(K, L, λ) = 0
K =Q3
(cL
cK
)1/2
L =Q3
(cK
cL
)1/2
λ =23
(cLcK)1/2
La matriz hessiana de la función lagrangiana tomando como variables solo las variables originales es:
HxL(K, L, λ) =
34λK−3/2L1/2 −3
4λK−1/2L−1/2
−34λK−1/2L−1/2 3
4λK1/2L−3/2
Vamos a clasificarla restringida al subespacio tangente a las restricciones en el punto crítico pero solo
vamosa obtener un resultado local:
HxL =
0 cK cL
cK34λK−3/2L1/2 −3
4λK−1/2L−1/2
cL −34λK−1/2L−1/2 +3
4λK1/2L−3/2
Como |HL| es negativo y tiene el signo de (−1)m la forma cuadrática restringida es definida positiva y,
por tanto, es un mínimo local estricto.
Para estudiar su optimalidad global consideramos que la matriz hessiana de la función lagrangiana
obtenida tomando como variables solo las variables originales es semidefinida positiva (D1 > 0, D2 = 0),
lo que, en principio, no es suficiente para afirmar que es un mínimo. Sin embargo, como la función es lineal
el carácter del óptimo depende de la concavidad o convexidad de las restricciones.
En este caso la matriz hessiana de la restriccíon f (K, L) − Q
H f (K, L) =
−
3√
L4K3/2
3
4√
K√
L3
4√
K√
L−
3√
K4L3/2
Página 743 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
es semidefinida negativa en todo el dominio y, por tanto, la restriccíon es cóncava
Como la función objetivo es convexa, el multiplicador es positivo (λ > 0) y la restricción cóncava el
punto crítico es un mínimo global. Además, como el multiplicador es positivo un aumento de la producción
implicaría un aumento de los costes de λ = 23 (cLcK)1/2 por unidad producida por encima de la producción
óptima. Para compensar este coste el precio de venta debe ser mayor que este valor.
(b)
max 3K1/2L1/2
s.a: cKK + cLL = k
L(K, L, λ) = 3K1/2L1/2 − λ (cKK + cLL − k)
Todos los puntos del conjunto factible cumplen las condiciones de regularidad (si no hay costes de
capital o trabajo el problema no tiene sentido)
∇g(K, L) = (ck, cL) , (0, 0)
∂L
∂K(K, L, λ) =
32
K−1/2L1/2 − cKλ = 0
∂L
∂L(K, L, λ) =
32
K1/2L−1/2 − cLλ = 0
∂L
∂λ(K, L, λ) = cKK + cLL − k = 0
−→
K =k
2cK
L =k
2cL
λ =3
2√
cK√
cL
La matriz hessiana de la función lagrangiana tomando como variables solo las variables originales es:
HxL(K, L, λ) =
−
3√
L4K3/2
3
4√
K√
L3
4√
K√
L−
3√
K4L3/2
PROYECTO MATECO 3.1416 Página 744
TEMA 17. PROGRAMACIÓN NO LINEAL
Vamos a clasificarla restringida al subespacio tangente a las restricciones en el punto crítico pero solo
vamos a obtener un resultado local:
HxL =
0 cK cL
cK −3√
L4K3/2
3
4√
K√
L
cL3
4√
K√
L−
3√
K4L3/2
Como |HL| es positivo y tiene el signo de (−1)m+1 es definida negativa y tenemos un máximo local estricto.
Para estudiar su optimalidad global consideramos que la matriz hessiana de la función lagrangiana
obtenida tomando como variables solo las variables originales es semidefinida negativa (D1 < 0, D2 = 0),
lo que, en principio, no es suficiente para afirmar que es un máximo. Sin embargo, como las restricciones
son lineales, la matriz hessiana de f coincide con la matriz hessiana obtenida tomando como variables solo
las variables originales. En este caso es semidefinida negativa en todo el dominio y, por tanto, cóncava.
La proposición 17.19 garantiza que es un máximo global. Además, como el multiplicador es positivo un
aumento de los recursos disponibles implicaría un aumento de la producción. ♣
Página 745 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
Ejercicios del tema
Ejercicio 17.28 Calcular los mínimos, máximos y puntos de silla (si los hay) de las siguientes funciones:
(a) f (x) = x2 + 2 (b) f (x) =√
1 + x
(c) f (x) = x(x − 3)2 (d) f (x) = ln(1 + x)
(e) f (x) = x3 − 3x + 2 con x ≥ 0 (f) f (x) = sen(x) con 0 ≤ x ≤ 2π
(g) f (x, y) = x2 + xy + 2y2 (h) f (x, y) = 3xy + x2y + xy2
(i) f (x, y) = 4x + 9
y + 1 + y + x (j) f (x, y) = (y − x2)(y + 2x2)
(k) f (x, y) = x2 − x(y2 − 4y) (l) f (x, y) = x2y2
(m) f (x, y) = (x2 − 4x)y − y2 (n) f (x, y, z) = 6xz3 − yz
(ñ) f (x, y, z) = xy + yz + xz (o) f (x, y, z) = x2 + y2 − 3x − 3xz + 3z2
(p) f (x, y, z) = 16x + 12y + 20z − x2 − 2y2 − 3z2 − 2xz − 25 con x, y, z ≥ 0
Ejercicio 17.29 Dada la función f (x, y) = ax2 + 2xy + by2 + x + y + 1 con a, b ∈ R tales que ab , 1 y
a , 0, discútanse los extremos de f según los valores de los parámetros a y b.
Ejercicio 17.30 Determinar si el punto (0, 0) es un óptimo de las siguientes funciones y, en su caso, si es
un óptimo local o global.
(a) f (x, y) = 2x3 − 2x2 − y2 (b) f (x, y) = x4 − 2x2y + y2.
Ejemplo 17.31 Hallar los valores de a y b para que la función f (x, y) = ax3 + 3bxy2 − 15a2x − 12y tenga
un mínimo local en el punto (2, 1)
Solución
Para que el punto (2, 1) sea un punto crítico se tiene que cumplir ∇ f (2, 1) = θ:
∂ f∂x
(2, 1) = 0 ⇒ 3ax2 + 3by2 − 15a2|(2,1) = 0 ⇒ 12a + 3b − 15a2 = 0
∂ f∂y
(2, 1) = 0 ⇒ 6bxy − 12|(2,1) = 0 ⇒ 12b − 12 = 0
PROYECTO MATECO 3.1416 Página 746
TEMA 17. PROGRAMACIÓN NO LINEAL
1. Despejamos b de la segunda ecuación, obteniendo b = 1.
2. Sustituimos b en la primera ecuación, obteniendo 12a + 3 − 15a2 = 0, es decir, 5a2 − 4a − 1 = 0, con
lo que los posibles valores de a son:
a =4 ±√
16 + 2010
=
1
−15
La matriz hessiana de f en el punto crítico (2, 1) es
H f (2, 1) =
∂2 f∂ x2 (2, 1) ∂2 f
∂ y∂ x (2, 1)
∂2 f∂ x∂ y (2, 1) ∂2 f
∂ y2 (2, 1)
=
6ax 6by
6by 6bx
∣∣∣∣∣∣∣∣∣∣∣(2,1)
=
12a 6b
6b 12b
Como los menores principales de esta matriz son D1 = 12a y D2 = 144ab − 36b2, la forma cuadrática
asociada al hessiano en (2, 1) es:
definida positiva para a = 1 y b = 1 (D1 = 12 y D2 = 108)
indefinida para a = −15 y b = 1 (D1 = −12
5 y D2 = −3245 ).
Por tanto, para que f tenga un mínimo local en el punto (2, 1) tiene que cumplirse a = 1 y b = 1. ♣
Ejemplo 17.32 Sean f : R2→ R una función diferenciable dos veces con continuidad y (x0, y0) un punto
crítico suyo (en el cuál se anulan las derivadas parciales de primer orden). Se sabe:
∂2 f∂x2 (x0, y0) =
∂2 f∂y2 (x0, y0) = a, con a , 0,
∂2 f∂x∂y
(x0, y0) =∂2 f∂y∂x
(x0, y0) = 0
Estudiar el carácter como extremo relativo del punto (x0, y0) según los valores de a.
Página 747 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
Solución La matriz hessiana de f en el punto crítico (x0, y0) es
H f (x0, y0) =
∂2 f∂ x2 (x0, y0)
∂2 f∂ y∂ x
(x0, y0)
∂2 f∂ x∂ y
(x0, y0)∂2 f∂ y2 (x0, y0)
=
a 0
0 a
Como los menores principales de esta matriz son D1 = a y D2 = a2, la forma cuadrática asociada al hessiano
en (x0, y0) es definida positiva para a > 0 y definida negativa para a < 0 (podemos razonar también sobre
los autovalores ya que tiene como autovalor doble λ = a). Por tanto para a > 0 tenemos un mínimo local
estricto y a < 0 tenemos un máximo local estricto. ♣
Ejercicio 17.33 Encontrar, si es posible y suponiendo que las variables son continuas, los óptimos globales
de los problemas de PNL sin restricciones que se plantearon en los ejercicios del tema 16 (problema 16.40,
problema 16.41, problema16.50, problema 16.51, problema 16.58 y problema 16.61).
Ejercicio 17.34 Resolver los siguientes problemas:
a) mın(2x1 + 3x2), s.a. x21 + 3
2 x22 = 6.
b) max(x21 + x2
2 − x23), s.a. {x1 + x2 = 1, x1 − x2 + x3 = 3}.
c) mın(x21 + x2
2 + x23), s.a. x1 = 3.
d) mın(x21 + x2
2 + x23), s.a. x1 + x2 + x3 = 3.
e) mın(x21 + x2
2 + x23), s.a. {x1 = 3, x1 + x2 + x3 = 3}.
f) opt (−x21 − 4x2
2 − 16x23), s.a. x1 − 1 = 0.
g) opt (−x21 − 4x2
2 − 16x23), s.a. x1x2 − 1 = 0.
h) max(x21 + x2), s.a. x2
1 + x22 = 1.
PROYECTO MATECO 3.1416 Página 748
TEMA 17. PROGRAMACIÓN NO LINEAL
i) mın 3 + x21 + 2x2
2 + 4x2 − 2x1 + (x3 − 2)2, s.a. 2x1 + 4x2 + x3 = 0.
j) opt x1x2 + x23, s.a. 2x1 − x2 + x3 = 0.
k) opt (1 + x21)x2, s.a. x2 − x2
1 = 3.
l) max x1 + x2, s.a. x21 + x2
2 ≤ 1.
m) max (x1 + 1)2 + (x2 + 1)2, s.a. {x21 + x2
2 ≤ 2, x2 ≤ 1}.
n) mın −x1 − x2 + 12 x2
1 + x22 − x1x2, s.a. {x1 + x2 ≤ 3, −2x2 − 3x2 ≤ −6, x1 ≥ 0, x2 ≥ 0}.
ñ) max x21 + x2
2, s.a. {2x1 − x2 ≤ 1, x1 + x2 ≤ 1}.
o) mın x21 + x2
2, s.a. {2x1 − x2 ≤ 5, x1 + x2 ≥ 3}.
p) max x31 + 2x1x2, s.a. {x1 − x2 ≤ 0, x1 ≥ 0, x2 ≥ 0}.
q) max x1 − x2, s.a. {x1 + x22 ≤ 3, x1 ≥ 0}.
r) max 2x21 + x2
2, s.a. x1 ≥ 1.
s) mın 9x21 + x2
2, s.a. {x21 + (x2 − 2)2 ≤ 1, x1 ≥ 0, x2 ≥ 0}.
¿En cuanto varía el valor de la función objetivo en los ejercicios n)), ñ)) y o)) si el término independiente
de la primera restricción aumenta en 0.2 unidades y disminuye en 0.1 el de la segunda restricción? ¿Cuál
sería el nuevo valor de la función objetivo?
Ejercicio 17.35 Determinar tres números positivos x, y, z tales que:
(a) xyz es máximo sujeto a x + y + z = 18 (b) x + y + z es mínimo sujeto a xyz = 27 ♣
Ejercicio 17.36 Determinar para qué valores de b el punto (1, 1,−1) es un mínimo del problema y para
qué valores de b es un máximo: opt f (x, y, z) = x2 + y2 + bxy + x + y + 2z restringida a x2 + y2 − z2 = 1. ♣
Página 749 PROYECTO MATECO 3.1416
Bloque V. PROGRAMACIÓN MATEMÁTICA
Ejercicio 17.37 Una fábrica produce un único bien a partir de tres factores, siendo fijos tanto el precio de
venta del producto, como los precios de compra de los factores. El beneficio obtenido por dicha empresa es
(en miles de euros):
B(x1, x2, x3) = x31 −
12
x22 + x3 + 10
donde x1, x2, x3 es el número de toneladas de las tres materias primas utilizadas en el proceso de produc-
ción. La empresa tiene un contrato con un proveedor que le obliga a consumir exactamente 2 toneladas de
la primera materia y a que las cantidades consumidas de las otras dos sean iguales.
a) Calcular las cantidades de materias primas que debe comprar la empresa para maximimizar sus
beneficios si se cumplen las condiciones del contrato.
b) Si el proveedor admitiese suministrar más cantidad de la primera materia prima a un coste negocia-
bles de p1 (miles de euros) por tonelada, calcular el valor máximo de p1 que el empresario estaría
dispuesto a pagar para que le fuese rentable recibir una tonelada más.
Ejercicio 17.38 Una empresa desea minimizar sus costes totales, con la condición de que los ingresos
obtenidos por la venta de las cantidades x1 y x2 de los dos productos que fabrica superen un cierto umbral
mínimo de 3 unidades. Sabiendo que los costes unitarios de fabricación de cada bien son funciones lineales
de los outputs producidos de la forma c1 = x1 y c2 = 2x2, se vende todo lo que se produce y los precios son
respectivamente p1 = 1 y p2 = 3. Formular el problema matemático y resolverlo mediante las condiciones
de Kuhn-Tucker. Además, estudiar cómo varía el coste óptimo con respecto a la situación anterior si como
mínimo se ingresan 2,8 u.m. ¿Y si como mínimo se desea ahora ingresar 3,1 u.m.?.
Ejercicio 17.39 Resolver, si es posible, los problemas de PNL con restricciones que se plantearon en los
ejercicios del tema 16 suponiendo, si es necesario, que las variables son continuas (problema 16.43, pro-
blema 16.44, problema 16.46, problema 16.47, problema 16.52 y problema 16.60).
PROYECTO MATECO 3.1416 Página 750
Top Related