Optimización de Procesos. Click to edit Master title style Tier I: Métodos Matemáticos de...

Post on 22-Jan-2016

217 views 0 download

Tags:

Transcript of Optimización de Procesos. Click to edit Master title style Tier I: Métodos Matemáticos de...

Optimización deProcesos

Click to edit Master title style

Tier I: Métodos Matemáticos de Optimización

Sección 3:

Programación No Lineal

Click to edit Master title style

Introducción a la Programación No Lineal

• Ya hemos hablado sobre los aspectos básicos de la programación no Lineal (nonlinear programming, NLP) en el capítulo de Introducción cuando consideramos la optimización no restringida.

Click to edit Master title style

• Anteriormente optimizamos funciones no lineales de una variable usando la 1a y 2a derivadas.

• Usaremos el mismo concepto aqui pero ahora extendido a funciones con más de una variable.

Introducción a la Programación No Lineal

Click to edit Master title style

Optimización Multivariable No Restringida

• Para funciones con una variable, usamos la 1a y 2a derivadas.

• Para funciones con múltiples variables, usamos información idéntica que es el gradiente y el Hessiano.

• El gradiente es la primera derivada con respecto a todas las variables, mientras que el Hessiano es el equivalente de la segunda derivada

Click to edit Master title style

El Gradiente

• Repaso del gradiente ():

Para una función “f ”, de variables x1, x2, …, xn:

nx

f

x

f

x

ff

21

Ejemplo: 231

321 )(3)(215 xxxxf

312

22

3 6)(6)(315 xxxxf

Click to edit Master title style

El Hessiano

• El Hessiano (2) de f(x1, x2, …, xn) es:

2

2

2

2

1

2

2

2

22

2

12

21

2

21

2

21

2

2

nnn

n

n

x

f

xx

f

xx

f

xx

f

x

f

xx

fxx

f

xx

f

x

f

f

Click to edit Master title style

Ejemplo de Hessiano

• Ejemplo (de antes):2

313

21 )(3)(215 xxxxf

13

2

32

606

0120

600

xx

x

x

f

312

22

3 6)(6)(315 xxxxf

Click to edit Master title style

Optimización No Restringida

El procedimiento de optimización para funciones multivariables es:

1. Resolver el gradiente de la función igual a cero para obtener puntos candidatos.

2. Obtener el Hessiano de la función y evalúalo en cada uno de los puntos candidatos

• Si el resultado es "positivo definitivo" (será definido después) entonces el punto es un mínimo local.

• Si el resultado es un“negativo definitivo” (será definido después) entonces el punto es un máximo local.

Click to edit Master title style

Positivo/Negativo Definitivo

• Una matriz es un “positivo definitivo” si todos los eigenvalores de la matriz son positivos(> 0)

• Una matriz es un “negativo definitivo” si todos los eigenvalores de la matriz son negativos(< 0)

Click to edit Master title style

Positivo/Negativo Semi-definitivo

• Una matriz es un “positivo semi-definitivo” si todos los eigenvalores son no-negativos (≥ 0)

• Una matriz es un “negativo semi-definitivo” si todos los eigenvalores son no-positivos (≤ 0)

Click to edit Master title style

Matriz de Ejemplo

Dada la matriz A:

211

175

542

A

Los eigenvalores de A son:22 702.31 702.23

Esta matriz es un negativo definitivo

Click to edit Master title style

Ejemplo de NLP No Restringida

Considera el problema:

Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2 – x2x3 + (x3)2 + x3

Primero, encontramos el gradiente con respecto a xi:

1 2

1 2 3

2 3

2 1

2

2 1

x x

f x x x

x x

Click to edit Master title style

A continuación, igualamos el gradiente a cero:

0f

0

0

0

12

2

12

32

321

21

xx

xx

xx

Entonces, tenemos un sistema de 3 ecuaciones y 3 incógnitas. Cuando resolvemos, obtenemos:

1

1

1

3

2

1

x

x

x

x

Ejemplo de NLP No Restringida

Click to edit Master title style

Así tenemos solo un punto candidato para verificar.

Encuentra el Hessiano:

210

121

0122 f

Ejemplo de NLP No Restringida

Click to edit Master title style

Los eigenvalores de esta matriz son:

414.31 586.02 23

Todos los eigenvalores son > 0, entonces el Hessiano es un positivo definitivo.

Entonces, el punto es un mínimo

1

1

1

3

2

1

x

x

x

x

Ejemplo de NLP No Restringida

Click to edit Master title style

A diferencia de la Programación Lineal, a menos que conozcamos la forma de la función a ser minimizada o podamos determinar si es convexa, no podemos decir si este punto es el mínimo global o si hay valores de función más pequeños.

Ejemplo de NLP No Restringida

Click to edit Master title style

Método de Solución

• En el ejemplo previo, cuando igualamos el gradiente a cero, tuvimos un sistema de 3 ecuaciones lineales y 3 incógnitas.

• Para otros problemas, estas ecuaciones pueden ser no lineales.

• Entonces, el problema se puede convertir en un sistema de ecuaciones no lineales, que puede ser muy difícil de resolver.

Click to edit Master title style

• Para evitar esta dificultad, los problemas de NLP son usualmente resuletos numéricamente.

• Ahora veremos ejemplos de métodos numéricos usados para encontrar el punto óptimo para problemas de NLP de una sola variable. Estos y otros métodos pueden ser encontrados en cualquier referencia de métodos numéricos.

Método de Solución

Click to edit Master title style

Método de Newton

Al resolver la ecuación f (x) = 0 para encontrar un mínimo o un máximo, uno puede usar el paso de iteración:

)(

)(''

'1

k

kkk

xf

xfxx

donde k es la iteración actual.

La iteración se continua hasta que |xk+1 – xk| < donde es la tolerancia especificada.

Click to edit Master title style

Diagrama del Método de Newton

El método de Newton aproxima f (x) como una línea recta a xk y obtiene un nuevo punto (xk+1), que es usado para aproximar la función a la siguiente iteración. Esto es llevado a cabo hasta que el nuevo punto es suficientemente cercano a x*.

xx* xk+1 xk

Tangente de f (x) en xk

f (x)

Click to edit Master title style

Comentarios del Método de Newton

• Uno debe asegurar que f (xk+1) < f (xk) para encontrar un mínimo y f (xk+1) > f (xk) para encontrar un máximo.

• Desventajas:– Tanto la primera como la segunda derivada

deben ser calculadas– El valor estimado inicial es muy importante – si

no es suficientemente cercano a la solución, pudiera ser que el método no converja

Click to edit Master title style

Método Regula-Falsi

Este método requiere dos puntos, xa y xb que que agrupan la solución a la ecuaciónf (x) = 0.

)()(

)()(''

'

ab

abbbc

xfxf

xxxfxx

Donde xc estará entre xa y xb. El siguiente intervalo será xc y xa o xb, cualquiera que tenga el signo opuesto a xc.

Click to edit Master title style

Diagrama Regula-Falsi

El método Regula-Falsi aproxima la función f (x) como una línea recta e interpola para encontrar la raíz.

xxa

xb

xc

x*

f (x)

Click to edit Master title style

Comentarios del método Regula-Falsi

• Este método requiere conocimiento inicial de dos puntos que limiten la solución

• Sin embargo, no requiere el cálculo de la segunda derivada

• El Método Regula-Falsi requiere ligeramente más iteraciones para converger que el Método de Newton

Click to edit Master title style

Optimización Multivariable

• Ahora consideraremos la optimización multivariable no restringida

• Casi todos los métodos de optimización multivariable hacen lo siguiente:

1. Eligen una dirección de búsqueda dk

2. Minimizan a lo largo de esa dirección para encontrar un nuevo punto:

donde k es el número de iteración actual y k es un escalar positivo llamado tamaño de paso.

kkkk dxx 1

Click to edit Master title style

El Tamaño de Paso

• El tamaño de paso, k, es calculado de la siguiente manera:

• Queremos minimizar la función f(xk+1) = f(xk +kdk) donde la única variable es k porque xk y dk son conocidas.

• Establecemos y resolvemos

para k usando un método de solución de una

sola variable como los mostrados

previamente.

0

d

d

k

kkkf

dx

Click to edit Master title style

Método de Descenso más Inclinado

• Este método es muy simple – usa el gradiente (para maximización) o el gradiente negativo (para minimización) como la dirección de búsqueda:

)( kk f xd

for

min

max

Entonces, )(1 kkkk f xxx

Click to edit Master title style

Método de Descenso Más Inclinado

• Puesto que el gradiente es la velocidad de cambio de la función en ese punto, usar el gradiente (o gradiente negativo) como la dirección de búsqueda ayuda a reducir el número de iteraciones requeridas

x1

x2 f(x) = 5

f(x) = 20

f(x) = 25

xk

f(xk)

-f(xk)

Click to edit Master title style

Pasos del Método de Descenso Más Inclinado

Los pasos del Método de Descenso más Inclinado son:

1. Elige un punto inicial x0

2. Calcula el gradiente f(xk) donde k es el número de iteración

3. Calcula el vector de búsqueda:

4. Calcula la siguiente x:Usa un método de optimización de una variable para determinar k.

)( kk f xd kkkk dxx 1

Click to edit Master title style

5. Para determinar la convergencia, usa alguna tolerancia dada 1 y evalúa:

para convergencia

O, usa otra tolerancia 2 y evalúa:

para convergencia

11 )()( kk ff xx

2)( kf x

Pasos del Método de Descenso Más Inclinado

Click to edit Master title style

Convergencia

• Estos dos criterios pueden ser usados para cualquiera de los métodos de optimización multivariable discutidos aquí

Recordatorio: La normal de un vector, ||x|| está dada por:

222

21 )()()( n

T xxx xxx

Click to edit Master title style

Ejemplo del Método de Descenso Más Inclinado

Resolvamos el problema anterior con el Método del Descenso Más Inclinado:

Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2 – x2x3 + (x3)2 + x3

Seleccionemos

0

0

00x

Click to edit Master title style

10000001)0(2)( 00 xd f

122)1(2)( 3232121 xxxxxxxf x

101101

101000 01 x

Ahora, necesitamos determinar 0

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

2)(4)( 0

0

1

d

df x

)()(00)1)(()()( 0200201 xf

)(2)(2 020

A continuación, iguala a cero y resuelve:

21

420 2)(4 0

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Entonces,

101000 01 x

2

10

2

1000

2

10

2

11x

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

110

2

10

2

1011)( 11 xd f

0101 d

Toma el gradiente negativo para encontrar la siguiente dirección de búsqueda:

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

0102

10

2

1 12

x

2

1

2

1 1

Actualiza la fórmula de iteración:

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

1)(2)( 1

1

1

d

df x

2

1

4

1

2

1)()(1

2

1

4

1)( 12112

xf

21)( 121

Insertala en la función original y toma la derivada para encontrar 1:

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Ahora podemos igualar la derivada a cero y resolver para 1:

211 1)(2 1

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Ahora, calcula x2:

0102

10

2

1 12

x

0

2

10

2

10

2

1

2

1

2

1

2

12x

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Así,

11

2

1

2

11

2

1

2

111)( 22 xd f

2

10

2

12d

2

10

2

1

2

1

2

1

2

1 23 x

)1(

2

1

2

1)1(

2

1 22

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

2

3)1(

)( 22

3

d

df x

4

1)1(

2

3)1(

2

1)( 2223 xf

Iguala la derivada a cero y resuelve:

212

2

3)1( 2

Encuentra 2:

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Calcula x3:

2

10

2

1

2

1

2

1

2

1 23 x

4

10

4

1

2

1

2

1

2

1

4

3

2

1

4

33x

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

0

2

100

2

10)( 33 xd f

0

2

10

4

3

2

1

4

3 34 x

4

3)1(

2

1

4

3 3

Encuentra la siguiente dirección de búsqueda:

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

08

9)1(

2

1)( 33

4

d

df x

2

3)(

2

3)1(

4

1)( 3234 xfEncuentra 3:

4

53

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Entonces, x4 se convierte en:

0

8

50

4

3

2

1

4

34x

4

3

8

9

4

34x

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

8

5

4

3

8

5

8

5

4

3

8

5)( 44 xd f

8

5

4

3

8

5

4

3

8

9

4

3 45 x

)

2

53(

4

1)

2

3(

4

3)

2

53(

4

1 444

La siguiente dirección de búsqueda:

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

032

43

16

73)( 44

5

d

df x

64

51

32

43)(

32

73)( 4245 xf

146434

Encuentra 4:

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Actualiza para x5:

8

5

4

3

8

5

146

43

4

3

8

9

4

35x

1168

1091

73

66

1168

10915x

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Revisemos si el criterio de convergencia es satisfecho

Evalúa ||f(x5)||:

584

21

584

35

584

21)( 5xf

0786.058421

58435

58421)(

2225 xf

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Entonces, ||f(x5)|| = 0.0786, que es muy pequeña y lo suficientemente cercana a cero para nuestro ejemplo

Nota que la respuesta de

1168

1091

73

66

1168

1091x

es muy cercana al valor deque obtuvimos analíticamente

111* x

Ejemplo del Método de Descenso Más Inclinado

Click to edit Master title style

Funciones Cuadráticas

• Las funciones cuadráticas son importantes para el siguiente método que veremos

• Una función cuadrática puede ser escrita en la forma: xTQx donde x es el vector de variables y Q es una matriz de coeficientes

Ejemplo:

)2(x x2x )(x2

210

121

0122

2212

1

3

2

1

321

x

x

x

xxx

)2(x x2x– 2332

Click to edit Master title style

Método del Gradiente Conjugado

• El Método del Gradiente Conjugado tiene la propiedad de que si f(x) es cuadrática, tomará exactamente n iteraciones para converger, donde n es el número de variables en el vector x

• Aunque funciona especialmente bien con funciones cuadráticas, este método también podrá funcionar con funciones no cuadráticas A

Click to edit Master title style

Pasos del Método del Gradiente Conjugado

1. Elige un punto inicial x0 y calcula f(x0). Deja d0 = -f(x0)

2. Calcula x1 usando:Encuentra 0 realizando optimización de una variable en f(x0 +0d0) usando los métodos discutidos anteriormente. (Observa la ilustración después del algoritmo de explicación)

0001 dxx

Click to edit Master title style

3. Calcula f(x1) y f(x1). La nueva dirección de búsqueda es calculada usando la ecuación:

)()(

)()()(

00

11011

xx

xxdxd

ff

fff

T

T

Esto puede ser generalizado para la iteración kth:

)()(

)()()(

1111

kkT

kkTkkk

ff

fff

xx

xxdxd

Pasos del Método del Gradiente Conjugado

Click to edit Master title style

4. Usa cualquiera de los dos métodos discutidos antes para determinar la tolerancia:

11 )()( kk ff xx

2)( kf x

O,

Pasos del Método del Gradiente Conjugado

Click to edit Master title style

Número de Iteraciones

• Para funciones cuadráticas, este método convergerá en n iteraciones (k = n)

• Para funciones no cuadráticas, después de n iteraciones, el algoritmo se cicla nuevamente con dn+1 convirtiéndose en d0.

Click to edit Master title style

Tamaño de Paso para Funciones Cuadráticas

• Al optimizar el tamaño de paso, podemos aproximar la función a optimizar de la siguiente manera:

)()()()()()( 2

2

1 kkTkkkTkkk ffff dxddxxdx

• Para una función cuadrática, esta no es una aproximación – es exacta

Click to edit Master title style

Tomamos la derivada de la función con respecto a e igualamos a cero:

0)()()()( 2

kkTkkkTkk

ffd

dfdxddx

dx

La solución a esta ecuación es:

kkTk

kkToptk

f

f

dxd

dx

)()(

)(2

,

Tamaño de Paso para Funciones Cuadráticas

Click to edit Master title style

• Entonces, para el problema de optimizar una función cuadrática

kkTk

kkToptk

f

f

dxd

dx

)()(

)(2

,

es el tamaño de paso óptimo.

• Para una función no cuadrática, esta es una aproximación del tamaño de paso óptimo.

Tamaño de Paso para Funciones Cuadráticas

Click to edit Master title style

Método Multivariable de Newton

Podemos aproximar el gradiente de f a un punto x0 usando:

)()()()( 0020 xxxxx fff

Podemos hacer el lado derecho de la ecuación igual a cero y rearreglar para obtener:

)()( 01020 xxxx ff

Click to edit Master title style

Podemos generalizar esta ecuación para dar una expresión iterativa del Método de Newton:

)()(121 kkkk ff xxxx

donde k es el número de iteración

Método Multivariable de Newton

Click to edit Master title style

Pasos del Método de Newton

1. Elige un punto inicial, x0

2. Calcula f(xk) y 2f(xk)

3. Calcula la siguiente x usando la ecuación

4. Usa cualquiera de los criterios de convergencia discutidos anteriormente para determinar la convergencia. Si no ha convergido, regresa al paso 2.

)()(121 kkkk ff xxxx

Click to edit Master title style

Comentarios del Método de Newton

• Podemos ver que a diferencia de los dos métodos previos, el Método de Newton usa ambos, el gradiente y el Hessiano

• Esto usualmente reduce el número de iteraciones requerido, pero aumenta el cálculo necesitado para cada iteración

• De esta manera, para funciones muy complejas, un método más simple es por lo general más rápido

Click to edit Master title style

Ejemplo del Método de Newton

Como ejemplo, usaremos el mismo problema que antes:

Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2 – x2x3 + (x3)2 + x3

12212)( 3232121 xxxxxxxf x

Click to edit Master title style

El Hessiano es:

210

121

012

)(2 xf

Y necesitaremos el inverso del Hessiano:

43

21

41

2112

14

12

14

3

210

121

012

)(

1

12 xf

Ejemplo del Método de Newton

Click to edit Master title style

Entonces, elige

0

0

00x

Calcula el gradiente para la 1a iteración:

100000100)( 0 xf

101)( 0 xf

Ejemplo del Método de Newton

Click to edit Master title style

Así, la nueva x es:11 0 2 0 0( ) ( )

3 1 14 2 40 1

1 1 0 1 02 20 131 1

4 2 4

f f

x x x x

1

1

11x

Ejemplo del Método de Newton

Click to edit Master title style

Ahora calcula el nuevo gradiente:

000121121112)( 1 xf

Puesto que el gradiente es cero, el método ha convergido

Ejemplo del Método de Newton

Click to edit Master title style

Comentarios del Ejemplo

• Puesto que usa la 2a derivada, el Método de Newton modela funciones cuadráticas exactamente y puede encontrar el punto óptimo en una iteración.

• Si la función hubiera sido de mayor orden, el Hessiano no hubiera sido constante y se hubiera requerido mucho más trabajo para calcular el Hessiano y tomar el inverso para cada iteración.

Click to edit Master title style

Optimización Restringida No Lineal

• Previamente en este capítulo, resolvimos problemas de NLP que solo tenían funciones objetivo, sin restricciones.

• Ahora veremos métodos sobre como resolver problemas que incluyen restricciones.

Click to edit Master title style

NLP con Restricciones de Igualdad

• Primero, trataremos problemas que solo contienen restricciones de igualdad:

Minimiza f(x) x = [x1 x2 … xn]

Sujeta a: hi(x) = bi i = 1, 2, …, m

Click to edit Master title style

Ilustración

Considera el problema:

Minimiza x1 + x2

Sujeta a: (x1)2 + (x2)2 – 1 = 0

La región factible es un círculo con un radio de uno. Las posibles curvas de función objetivo son lines con pendiente de -1. El mínimo será el punto donde la línea más baja todavía toque el círculo.

Click to edit Master title style

Gráfica de Ilustración

f(x) = 1

f(x) = 0

f(x) = -1.414

Región Factible

707.0

707.0*x

)(xf

El gradiente de f apunta en la dirección de incremento de f

Click to edit Master title style

Más sobre la Gráfica

• Puesto que las líneas de la función objetivo son líneas rectas paralelas, el gradiente de f es una línea recta apuntando en la dirección del incremento de f, que es a la derecha superior

• El gradiente de h estará apuntando fuera del círculo y su dirección dependerá del punto al que el gradiente es evaluado.

Click to edit Master title style

Más Detalles

f(x) = 1

f(x) = 0

f(x) = -1.414

Región Factible

707.0

707.0*x

)( *xh

)( *xf

0

11x

)( 1xf

Plano Tangente

)( 1xhx1

x2

Click to edit Master title style

Conclusiones

• En el punto óptimo, f(x) es perpendicular a h(x)

• Como podemos ver en el punto x1, f(x) no es perpendicular a h(x) y podemos mover (bajar) para mejorar la función objetivo

• Podemos decir que en un max o min, f(x) debe ser perpendicular a h(x) – De otra manera, podemos mejorar la función

objetivo cambiando de posición

Click to edit Master title style

Condiciones Necesarias de Primer Orden

Entonces, para que un punto sea un mínimo (o un máximo), debe satisfacer la siguiente ecuación:

Esta ecuación significa que f(x*) y h(x*) deben estar exactamente en direcciones opuestas en un punto mínimo o máximo

0)()( *** xx hf

Click to edit Master title style

La función Lagrangiano

Para ayudar al usar este hecho, introducimos la Función Lagrangiano, L(x,):

)()(),( xxx hfL

Repaso: La notación x f(x,y) significa el gradiente de f con respecto a x.

Entonces, )()(),( xxx xxx hfL

Click to edit Master title style

y para asegurar la factibilidad.0)( * xh

Condiciones Necesarias de Primer Orden

• Así, usando la nueva notación para expresar las Condiciones Necesarias de Primer Orden (First Order Necessary Conditions, FONC), si x* es un mínimo (o máximo) entonces

0),( ** ,

xx xL

Click to edit Master title style

• Otra manera de verlo es que una Función Lagrangiano incluye toda la información sobre nuestro problema

• Entonces, podemos tratar el Lagrangiano como un problema de optimización no restringida con variables x1, x2, …, xn y 1, 2, …, m.

Podemos resolverlo al resolver las ecuaciones 0

x

L

& 0λ

L

Condiciones Necesarias de Primer Orden (FONC)

Click to edit Master title style

Usando las FONC

Usando las FONC para el ejemplo previo,

)()(),( xxx hfL 12

22

121 xxxx

0

0),(

2

1

xL

xL

Lx x

Y la primera ecuación FONC es:

Click to edit Master title style

Ejemplo de FONC

Esto se vuelve:

&

021 11

xx

L

021 22

xx

L

La ecuación de factibilidad es:

o,

0122

21 xx

0122

21

xxL

Click to edit Master title style

Entonces, tenemos tres ecuaciones y tres incógnitas.

Cuando se resuelven simultáneamente, obtenemos

707.021 xx & 707.0

Podemos ver de la gráfica que x1 y x2 positivas corresponden a un máximo, mientras que x1 y x2 negativas corresponden a un mínimo.

Ejemplo de FONC

Click to edit Master title style

Observaciones de FONC

• Si regresas al capítulo de LP y revisas la definición matemática de las condiciones KKT, puedes notar que se parecen a las FONC que acabamos de usar

• Esto se debe a que es el mismo concepto

• Simplemente usamos una derivación ligeramente diferente esta vez, pero obtuvimos el mismo resultado

Click to edit Master title style

Limitaciones de FONC

• Las FONC no garantizan que las soluciones será mínimos/máximos.

• Como en el caso de la optimización no restringida, solo proveen puntos candidatos que deben ser verificados por las condiciones de segundo orden.

• Solo si el problema es convexo las FONC garantizan que las soluciones serán puntos extremos.

Click to edit Master title style

Condiciones Necesarias de Segundo Orden

(Second Order Necessary Conditions, SONC)

Para donde

y para cualquier y

donde

)()(),( 222 xxx hfLx ),(2 xLx

0y

x

xyxJ

x

)(

1

*

*

)(m

hh

h

Si x*es un mínimo local, entonces

0),( *2 yxy LxT

Click to edit Master title style

Condiciones Suficientes de Segundo Orden

(Second Order Sufficient Conditions, SOSC)

• y puede considerarse como un plano tangente tal como en el ejemplo gráfico mostrado anteriormente– Jh es solo el gradiente de cada ecuación h(x) y

vimos en el ejemplo que el plano tangente debe ser perpendicular a h(x) y por esa razón

0),( *2 yxy LxT

0yJ )(xh

Click to edit Master title style

El Vector y

x1

x3

x2

Plano Tangente (todos los vectores

y posibles))(xh

0)( xh

*x

El plano tangente es la ubicación de todos los vectores y y se intersecta con x*

Debe ser ortogonal (perpendicular) a h(x)

Click to edit Master title style

Problemas de Maximización• Las definiciones previas de SONC y SOSC

son para problemas de minimización• Para problemas de maximización, el sentido

del signo de desigualdad debe ser invertido

Para problemas de maximización:

SONC:

SOSC: 0),( *2 yxy LxT

0),( *2 yxy LxT

Click to edit Master title style

• Las condiciones necesarias son requeridas para que un punto sea un extremo pero incluso si son satisfechas, no garantizan que el punto es un extremo.

• Si las condiciones suficientes son reales, entonces se garantiza que el punto es un extremo. Pero si no se satisfacen, no significa que el punto no es un extremo.

Necesario y Suficiente

Click to edit Master title style

Procedimiento

1. Resuelve las FONC para obtener puntos candidatos.

2. Prueba los puntos candidatos con las SONC

– Elimina cualquier punto que no satisfaga las SONC

3. Prueba los puntos restantes con las SOSC– Los puntos que las satisfacen son min/max’s – Para los puntos que no las satisfacen, no

podemos decir si son puntos extremos o no

Click to edit Master title style

Problemas con Restricciones de Desigualdad

Consideraremos problemas como:

Minimiza f(x)

Sujeta a: hi(x) = 0 i = 1, …, m

y gj(x) ≤ 0 j = 1, …, p

Una restricción de desigualdad, gj(x) ≤ 0 es llamada “activa” en x* si gj(x*) = 0.Dejemos que el grupo I(x*) contenga todos los índices de las restricciones activas en x*:

0)( * xjg Para todo j en el grupo I(x*)

Click to edit Master title style

Lagrangianos para Problemas con Restricciones de Igualdad y

DesigualdadEl Lagrangiano está escrito:

Usamos ’s para las igualdades y ’s para las desigualdades.

p

jjji

m

ii ghfL

11

)()()(),,( xxxμλx

Click to edit Master title style

FONC para Restricciones de Igualdad y Desigualdad

Para el Lagrangiano general, las FONC se vuelven

p

jjji

m

ii ghfL

1

*

1

* *)(*)(*)(*)*,*,( 0xxxμλx

y la condición de soltura complementaria:

,0)( ** xjj g,0* j pj ,1

Click to edit Master title style

SONC para Restricciones de Igualdad y Desigualdad

Las SONC (para un problema de minimización) son:

donde como antes.

0yxy x ),,( ***2 LT

0yxJ )( *

Ahora, J(x*) es la matriz de los gradientes de todas las restricciones de igualdad y solo las restricciones de desigualdad que están activas en x*.

Click to edit Master title style

SOSC para Restricciones de Igualdad y Desigualdad

• Las SOSC para un problema de minimización con restricciones de igualdad y desigualdad son:

0yxy ),,( ***2 LxT

Click to edit Master title style

Ejemplo de Lagrangiano Generalizado

• Resuelve el problema:

Minimizar f(x) = (x1 – 1)2 + (x2)2

Sujeta a: h(x) = (x1)2 + (x2)2 + x1 + x2 = 0

g(x) = x1 – (x2)2 ≤ 0

El Lagrangiano para este problema es: 21

221

22

21 2)1(),,( xxxxxxL x

221 xx

Click to edit Master title style

• Las condiciones necesarias de primer orden:

0212 111

xxx

L

0222 2222

xxxx

L

0212

22

1

xxxxL

0221 xx

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

Resolviendo las 4 ecuaciones FONC, obtenemos 2 soluciones:

4534.0

2056.0)1(x 9537.045.0 &

y

0

0)2(x 20 &2)

1)

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

Ahora trabaja las SONC en la 1a solución:

Tanto h(x) como g(x) están activas en este punto (ambas son iguales a cero). Entonces, el Jacobiano es el gradiente de ambas funciones evaluado en x(1):

9068.01

0932.0411.1

21

1212

)1(2

211

x

xJx

xx

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

La única solución a la ecuación:

0yxJ )( )1(

es:

00

00y

Y el Hessiano del Lagrangiano es:

993.00

09.2

2220

022

)1(

2

x

x

L

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

Entonces, la ecuación SONC es:

0

00

00

00

00

993.00

09.2

00

00

Esta desigualdad es verdadera, entonces la SONC es satisfecha para x(1) y aún es un punto candidato.

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

La ecuación SOSC es:

Y solo calculamos el lado izquierdo de la ecuación para ser la matriz cero. Entonces, en nuestro caso para x2:

0yxy x ),,( ***2 LT

0yyxx

00

00)1(

2LT

Así, las SOSC no son satisfechas.

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

Para la segunda solución:

Nuevamente, tanto h(x) como g(x) son activos en este punto. Entonces, el Jacobiano es:

01

11

21

1212

)2(2

21)2(

x

xJx

xx

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

La única solución a la ecuación:

0yxJ )( )2(

es:

00

00y

Y el Hessiano del Lagrangiano es:

20

02

2220

022

)2(

2

x

x

L

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

Entonces, la ecuación SONC es:

0

00

00

00

00

20

02

00

00

Esta desigualdad es verdadera, entonces la SONC es satisfecha por x(2) y aún es un punto candidato

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

La ecuación SOSC es:

Y solo calculamos el lado izquierdo de la ecuación para ser la matriz cero. Entonces, en nuestro caso para x2:

0yxy x ),,( ***2 LT

0yyxx

00

00)2(

2LT

Así, las SOSC no son satisfechas.

Ejemplo de Lagrangiano Generalizado

Click to edit Master title style

Conclusiones del Ejemplo

• De esta manera, podemos decir que tanto x(1) como x(2) pueden ser mínimos locales, pero no podemos estar seguros porque las SOSC no son satisfechas para ningún punto.

Click to edit Master title style

Métodos Numéricos

• Como pudiste observar de este ejemplo, el paso más difícil es resolver un sistema de ecuaciones no lineales para obtener los puntos candidatos.

• En vez de tomar gradientes de funciones, solvers automatizados de NLP usan varios métodos para transformar una NLP general en un problema de optimización más fácil.

Click to edit Master title style

Ejemplo de Excel

Resolvamos el ejemplo previo con Excel:

Minimizar f(x) = (x1 – 1)2 + (x2)2

Sujeta a: h(x) = (x1)2 + (x2)2 + x1 + x2 = 0

g(x) = x1 – (x2)2 ≤ 0

Click to edit Master title style

Ejemplo de Excel

Introducimos la función objetivo y las ecuaciones de restricción en la hoja de cálculo:

Variables:x1 x20 0

Valor LímiteFunción Objetivo: =(A3-1) 2̂+B3 2̂

Restricción 1: =A3 2̂+B3 2̂+A3+B3 0Restricción 2: =A3-B3 2̂ 0

Click to edit Master title style

Ahora, abre la ventana de diálogo del solver en el menú Herramientas y especifica el valor de la función objetivo como la celda objetivo y elige la opción Min. Como está escrito, A3 y B3 son las celdas variables. Y las restricciones deben adicionarse – la restricción de igualdad y la restricción ≤.

Ejemplo de Excel

Click to edit Master title style

La ventana del solver debe verse como sigue:

Ejemplo de Excel

Click to edit Master title style

• Este es un modelo no lineal, así que a diferencia de los ejemplos en el último capítulo, no elegiremos "Adoptar Modelo Lineal" en el menú opciones

• También, x1 y x2 no son especificadas como positivas, así que no marcamos la casilla de "Asumir no Negativos"

• Si se desea, la tolerancia puede ser disminuida hasta 0.1%

Ejemplo de Excel

Click to edit Master title style

• Cuando resolvemos el problema, la hoja de cálculo no cambia porque nuestro valor inicial de x1 = 0 y x2 = 0 es una solución óptima, como vimos cuando resolvimos el problema analíticamente.

Ejemplo de Excel

Click to edit Master title style

Sin embargo, si elegimos valores iniciales de -1 para x1 y x2 as, obtenemos la siguiente solución:

Ejemplo de Excel

Click to edit Master title style

Conclusiones

• Entonces, al variar los valores iniciales, podemos obtener los dos puntos candidatos que obtuvimos previamente

• Sin embargo, el solver NLP nos dice que ambos son puntos mínimos locales

Click to edit Master title style

Referencias

El material de este capítulo ha sido tomado de:

• Optimization of Chemical Processes 2nd Ed.; Edgar, Thomas; David Himmelblau; & Leon Lasdon.