optimización de procesos - polymtl.ca · todos los eigenvalores de la matriz son positivos (>...
TRANSCRIPT
Optimización deProcesos
Click to edit Master title styleTier I: Métodos Matemáticos de
Optimización
Sección 3:Programación No Lineal
Click to edit Master title styleIntroducció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 styleOptimizació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 styleEl Gradiente
• Repaso del gradiente (∇):Para una función “f ”, de variables x1, x2, …,
xn:
⎥⎦
⎤⎢⎣
⎡∂∂
∂∂
∂∂
=∇nx
fxf
xff K
21
Ejemplo: 231
321 )(3)(215 xxxxf −+=
[ ]312
22
3 6)(6)(315 xxxxf −−=∇
Click to edit Master title styleEl 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
xf
xxf
xxf
xxf
xf
xxf
xxf
xxf
xf
f
L
MOMM
K
K
Click to edit Master title styleEjemplo de Hessiano
• Ejemplo (de antes):2
313
21 )(3)(215 xxxxf −+=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−
−=∇
13
2
32
6060120600
xxx
xf
[ ]312
22
3 6)(6)(315 xxxxf −−=∇
Click to edit Master title styleOptimizació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 stylePositivo/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 stylePositivo/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 styleMatriz de Ejemplo
Dada la matriz A:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−−−=211175
542A
Los eigenvalores de A son:22 −=λ702.31 −=λ 702.23 =λ
Esta matriz es un negativo definitivo
Click to edit Master title styleEjemplo 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 122 1
x xf x x x
x x
+ −⎡ ⎤⎢ ⎥∇ = − + −⎢ ⎥⎢ ⎥− + +⎣ ⎦
Click to edit Master title style
A continuación, igualamos el gradiente a cero:
0=∇f⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
++−−+−−+
000
12212
32
321
21
xxxx
xx⇒
Entonces, tenemos un sistema de 3 ecuaciones y 3 incógnitas. Cuando resolvemos, obtenemos:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
=⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
111
3
2
1
xxx
x
Ejemplo de NLP No Restringida
Click to edit Master title style
Así tenemos solo un punto candidato para verificar.
Encuentra el Hessiano:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
−=∇
210121
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 ⎥
⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
=⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
111
3
2
1
xxx
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 styleMé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 resuletosnumé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 styleMé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
xfxfxx −=+
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 styleDiagrama 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 styleComentarios 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 styleMé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
xfxfxxxfxx
−−⋅
−=
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 styleDiagrama 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 styleComentarios 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 styleOptimizació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 styleEl 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.
( ) 0d
d=
+k
kkkfαα dx
Click to edit Master title styleMé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⎭⎬⎫
⎩⎨⎧
minmax
Entonces, )(1 kkkk f xxx ∇⎭⎬⎫
⎩⎨⎧−+
=+ α
Click to edit Master title styleMé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) = 5f(x) = 20
f(x) = 25
xk
∇f(xk)
-∇f(xk)
Click to edit Master title stylePasos 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 convergenciaO, 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 styleConvergencia
• 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 +++=⋅= Lxxx
Click to edit Master title styleEjemplo del Método de
Descenso Más InclinadoResolvamos 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
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
000
0x
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)( 00
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
[ ] ⎥⎦⎤
⎢⎣⎡ −−+=
210
21000
⎥⎦⎤
⎢⎣⎡ −−=∴
210
211x
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
⎥⎦⎤
⎢⎣⎡ +−++++−−=−∇= 110
210
21011)( 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
[ ]010210
21 12 −⋅+⎥⎦
⎤⎢⎣⎡ −−= αx
⎥⎦⎤
⎢⎣⎡ −−−=
21
21 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)( 11
1
−= ααd
df x
( )21
41
21)()(1
21
41)( 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:
[ ]010210
21 12 −⋅+⎥⎦
⎤⎢⎣⎡ −−= αx
⎥⎦⎤
⎢⎣⎡ −+⎥⎦
⎤⎢⎣⎡ −−= 0
210
210
21
⎥⎦⎤
⎢⎣⎡ −−−=∴
21
21
212x
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
Así,
⎥⎦⎤
⎢⎣⎡ +−+−++−−=−∇= 11
21
211
21
2111)( 22 xd f
⎥⎦⎤
⎢⎣⎡ −−=∴
210
212d
⎥⎦⎤
⎢⎣⎡ −−⋅+⎥⎦
⎤⎢⎣⎡ −−−=
210
21
21
21
21 23 αx
⎥⎦⎤
⎢⎣⎡ +−−+−= )1(
21
21)1(
21 22 αα
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
23)1()( 2
2
3
−+= ααd
df x
41)1(
23)1(
21)( 2223 ++−+= ααxf
Iguala la derivada a cero y resuelve:
212 =α
23)1( 2 =+α ⇒
Encuentra α2:
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
Calcula x3:
⎥⎦⎤
⎢⎣⎡ −−⋅+⎥⎦
⎤⎢⎣⎡ −−−=
210
21
21
21
21 23 αx
⎥⎦⎤
⎢⎣⎡ −−+⎥⎦
⎤⎢⎣⎡ −−−=
410
41
21
21
21
⎥⎦⎤
⎢⎣⎡ −−−=∴
43
21
433x
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
⎥⎦⎤
⎢⎣⎡ −=⎥⎦
⎤⎢⎣⎡−=−∇= 0
2100
210)( 33 xd f
⎥⎦⎤
⎢⎣⎡ −⋅+⎥⎦
⎤⎢⎣⎡ −−−= 0
210
43
21
43 34 αx
⎥⎦⎤
⎢⎣⎡ −+−−=
43)1(
21
43 3α
Encuentra la siguiente dirección de búsqueda:
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
089)1(
21)( 3
3
4
=−+= ααd
df x
23)(
23)1(
41)( 3234 −−+= ααxfEncuentra α3:
453 =⇒α
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
Entonces, x4 se convierte en:
⎥⎦⎤
⎢⎣⎡ −+⎥⎦
⎤⎢⎣⎡ −−−= 0
850
43
21
434x
⎥⎦⎤
⎢⎣⎡ −−−=∴
43
89
434x
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
⎥⎦⎤
⎢⎣⎡ −−=⎥⎦
⎤⎢⎣⎡ −−=−∇=
85
43
85
85
43
85)( 44 xd f
⎥⎦⎤
⎢⎣⎡ −−⋅+⎥⎦
⎤⎢⎣⎡ −−−=
85
43
85
43
89
43 45 αx
⎥⎦⎤
⎢⎣⎡ +−−−+−= )
253(
41)
23(
43)
253(
41 444 ααα
La siguiente dirección de búsqueda:
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
03243
1673)( 4
4
5
=−= ααd
df x
6451
3243)(
3273)( 4245 −−= ααxf
146434 =α⇒
Encuentra α4:
Ejemplo del Método de Descenso Más Inclinado
Click to edit Master title style
Actualiza para x5:
⎥⎦⎤
⎢⎣⎡ −−⋅+⎥⎦
⎤⎢⎣⎡ −−−=
85
43
85
14643
43
89
435x
⎥⎦⎤
⎢⎣⎡ −−−=∴
11681091
7366
116810915x
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)||:
⎥⎦⎤
⎢⎣⎡=∇
58421
58435
58421)( 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
⎥⎦⎤
⎢⎣⎡ −−−=
11681091
7366
11681091x
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 styleFunciones 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 )(x2210121
0122
2212
1
3
2
1
321 +−=⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
−
xxx
xxx
)2(x x2x– 2332 +
Click to edit Master title styleMé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 stylePasos del Método del Gradiente
Conjugado1. 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
xxxxdxd
fffff T
T
∇⋅∇∇⋅∇
+−∇=
Esto puede ser generalizado para la iteración kth:
)()()()()(
1111
kkT
kkTkkk
fffff
xxxxdxd
∇⋅∇∇⋅∇
+−∇=++
++
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 styleNú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 styleTamañ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:
)()()()()()( 221 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 =⋅∇⋅+⋅∇=+ kkTkkkT
kk
ffd
df dxddxdx ααα
La solución a esta ecuación es:
kkTk
kkToptk
ff
dxddx⋅∇⋅
⋅∇−=
)()()(
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
ff
dxddx⋅∇⋅
⋅∇−=
)()()(
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 styleMé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 stylePasos 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 styleComentarios 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 styleEjemplo 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:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
−=∇
210121
012)(2 xf
Y necesitaremos el inverso del Hessiano:
[ ]⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
−=∇
−
−
43
21
41
2112
14
12
14
3
210121
012)(
1
12 xf
Ejemplo del Método de Newton
Click to edit Master title style
Entonces, elige⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
000
0x
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
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
=∴111
1x
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 styleComentarios 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 styleOptimizació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 styleNLP 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 styleIlustració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 styleGráfica de Ilustración
f(x) = 1
f(x) = 0
f(x) = -1.414
Región Factible
⎥⎦
⎤⎢⎣
⎡=
707.0707.0*x
)(xf∇
El gradiente de f apunta en la dirección de incremento de f
Click to edit Master title styleMá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 styleMás Detalles
f(x) = 1
f(x) = 0
f(x) = -1.414
Región Factible
⎥⎦
⎤⎢⎣
⎡=
707.0707.0*x
)( *xh∇
)( *xf∇
⎥⎦
⎤⎢⎣
⎡=
011x
)( 1xf∇
Plano Tangente
)( 1xh∇x1
x2
Click to edit Master title styleConclusiones
• 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 styleCondiciones Necesarias de Primer
OrdenEntonces, 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 styleLa 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 styleUsando las FONC
Usando las FONC para el ejemplo previo,
)()(),( xxx hfL ⋅+= λλ( ) ( )( )12
22
121 −+⋅++= xxxx λ
⎥⎦
⎤⎢⎣
⎡=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
∂∂
∂∂
=∇00
),(2
1
xL
xL
Lx λx
Y la primera ecuación FONC es:
Click to edit Master title styleEjemplo de FONC
Esto se vuelve:
&
021 11
=+=∂∂ xxL λ
021 22
=+=∂∂ xxL λ
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.0m=λ
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 styleObservaciones 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 styleLimitaciones 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 styleCondiciones Necesarias de Segundo
Orden (Second Order Necessary Conditions, SONC)
Para donde
y para cualquier ydonde
)()(),( 222 xxx hfLx ∇⋅+∇=∇ λλ),(2 λxLx∇
0y
x
xyxJ
x
=⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
∂∂
∂∂
=⋅
)(
1
*
*
)(m
hh
h
M
Si x*es un mínimo local, entonces0),( *2 ≥⋅∇⋅ yxy λLx
T
Click to edit Master title styleCondiciones 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 styleEl 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 styleProblemas 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 styleProcedimiento
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 styleProblemas con Restricciones de
DesigualdadConsideraremos problemas como:Minimiza f(x)Sujeta a: hi(x) = 0 i = 1, …, m
y gj(x) ≤ 0 j = 1, …, pUna 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 styleLagrangianos para Problemas con
Restricciones de Igualdad y Desigualdad
El 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 styleFONC para Restricciones de
Igualdad y DesigualdadPara 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 K,1=
Click to edit Master title styleSONC para Restricciones de
Igualdad y DesigualdadLas 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 styleSOSC 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 styleEjemplo de Lagrangiano
Generalizado• Resuelve el problema:Minimizar f(x) = (x1 – 1)2 + (x2)2
Sujeta a: h(x) = (x1)2 + (x2)2 + x1 + x2 = 0g(x) = x1 – (x2)2 ≤ 0
El Lagrangiano para este problema es:
( ) ( ) ( ){ }2122
12
22
1 2)1(),,( xxxxxxL +++⋅++−= λμλx
( ){ }221 xx −⋅+ μ
Click to edit Master title style
• Las condiciones necesarias de primer orden:
( ) 0212 111
=++⋅⋅+−=∂∂ μλλ xxxL
0222 2222
=⋅⋅−+⋅⋅+=∂∂ xxxxL μλλ
( ) ( ) 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.0=μ45.0=λ &
y ⎥⎦
⎤⎢⎣
⎡=
00)2(x 2−=μ0=λ &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.010932.0411.1
211212
)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: ⎥⎦
⎤⎢⎣
⎡=
0000
y
Y el Hessiano del Lagrangiano es:
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡−+
+=∇
993.0009.2
2220022
)1(
2
x
x μλλ
L
Ejemplo de Lagrangiano Generalizado
Click to edit Master title style
Entonces, la ecuación SONC es:
0≥⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡⋅⎥⎦
⎤⎢⎣
⎡⋅⎥⎦
⎤⎢⎣
⎡0000
0000
993.0009.2
0000
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 >⎥
⎦
⎤⎢⎣
⎡=⋅∇⋅
0000
)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:
( ) ⎥⎦
⎤⎢⎣
⎡−
=⎥⎦
⎤⎢⎣
⎡−
++=
0111
211212
)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: ⎥⎦
⎤⎢⎣
⎡=
0000
y
Y el Hessiano del Lagrangiano es:
⎥⎦
⎤⎢⎣
⎡−
=⎥⎦
⎤⎢⎣
⎡−+
+=∇
2002
2220022
)2(
2
x
x μλλ
L
Ejemplo de Lagrangiano Generalizado
Click to edit Master title style
Entonces, la ecuación SONC es:
0≥⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡⋅⎥⎦
⎤⎢⎣
⎡−
⋅⎥⎦
⎤⎢⎣
⎡0000
0000
2002
0000
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 >⎥
⎦
⎤⎢⎣
⎡=⋅∇⋅
0000
)2(
2LT
Así, las SOSC no son satisfechas.
Ejemplo de Lagrangiano Generalizado
Click to edit Master title styleConclusiones 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 styleMé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 styleEjemplo 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 = 0g(x) = x1 – (x2)2 ≤ 0
Click to edit Master title styleEjemplo 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 styleConclusiones
• 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 styleReferencias
El material de este capítulo ha sido tomado de:
• Optimization of Chemical Processes 2nd
Ed.; Edgar, Thomas; David Himmelblau; &Leon Lasdon.