Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1....

46
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 n diferenciable y convexa en G, con G convexo. a) x 0 G es un mínimo (global) si y solo D f ( x 0 )( x - x 0 ) 0. b) x 0 int(G) es un mínimo (global) si y solo D f ( x 0 ) = 0 (f ( x 0 ) = θ). Definición 17.2 Sea f : D n -→ diferenciable en x 0 int(D). x 0 es un punto crítico o estacionario de f si Df ( x 0 ) = 0 (f ( x 0 ) = θ). Nota Si ( x 0 , y 0 ) 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

Transcript of Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1....

Page 1: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 2: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 3: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 4: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 5: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 6: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 7: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 8: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 9: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 10: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 11: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 12: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 13: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 14: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 15: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 16: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 17: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 18: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 19: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 20: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 21: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 22: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 23: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 24: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 25: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 26: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 27: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 28: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 29: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 30: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 31: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 32: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 33: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 34: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 35: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 36: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 37: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 38: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 39: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 40: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 41: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 42: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 43: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 44: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 45: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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

Page 46: Tema 17 Programación no lineal - Universidad de SevillaTema 17 Programación no lineal 17.1. Programación no lineal sin restricciones En la optimización sin restricciones (F = D)

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