Post on 22-Jan-2016
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.