Optimización de
Procesos
Tier I: Métodos Matemáticos de
Click to edit Master title style
Optimización
Sección 3:
Programación No Lineal
Introducción a la Programación No
Click to edit Master title style
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.
Introducción a la Programación No
Click to edit Master title style
Lineal
• 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.
Optimización Multivariable No
Click to edit Master title style
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
El Gradiente
Master title style
• Repaso del gradiente ():
Para una función “f ”, de variables x1, x2, …,
xn:
 f
f  
  x1
Ejemplo:
f
x2
f 

xn 

f  15 x1  2 ( x 2 )  3 x1 ( x 3 )
3

 f  15  3 ( x 3 )
2
6( x2 )
2
2
 6 x1 x 3

Click to edit
El Hessiano
Master title style
• El Hessiano (2) de f(x1, x2, …, xn) es:
 f 2

2
  x1
2
 f
2
 f   x x
 2 1
 2
 f
 x x
 n 1
f
2
 x1  x 2
f

2
2
x2

2
f
xnx2





 x1  x n

2
f

x2xn 



2
f

2 
xn 
f
2
ClickEjemplo
to edit Master
de Hessiano
title style
• Ejemplo (de antes):
f  15 x1  2 ( x 2 )  3 x1 ( x 3 )
3

 f  15  3 ( x 3 )
 0

2
 f 
0

  6 x 3
2
6( x2 )
0
12 x 2
0
2
2
 6 x1 x 3
 6 x3 

0

 6 x1 

Click
Optimización
to edit Master
No Restringida
title style
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
Positivo/Negativo
to edit MasterDefinitivo
title style
• 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)
Positivo/Negativo
Semi-definitivo
Click to edit Master
title style
• 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 Matriz
to edit Master
de Ejemplo
title style
Dada la matriz A:
 2

A  5

 1
4
7
1
5 

1

2 
Los eigenvalores de A son:
 1   3 . 702
2  2
 3  2 . 702
Esta matriz es un negativo definitivo
Ejemplo
Click tode
edit
NLP
Master
No Restringida
title style
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:
 2 x1  1  x 2 


 f   x1  2 x 2  x 3


  x 2  2 x 3  1 
Ejemplo
Click tode
edit
NLP
Master
No Restringida
title style
A continuación, igualamos el gradiente a
cero:
 2 x  1  x  0 
1
f  0

2

  
 x1  2 2  x 3  0

  
  x 2  2 x 3  1  0 
Entonces, tenemos un sistema de 3
ecuaciones y 3 incógnitas. Cuando
resolvemos, obtenemos:
 x    1
1
   
x  x2   1
   
 x 3    1
Ejemplo
Click tode
edit
NLP
Master
No Restringida
title style
Así tenemos solo un punto candidato para
verificar.
Encuentra el Hessiano:
 2

2
 f  1

 0
1
2
1
0 

1

2 
Ejemplo
Click tode
edit
NLP
Master
No Restringida
title style
Los eigenvalores de esta matriz son:
 1  3 . 414
 2  0 . 586
3  2
Todos los eigenvalores son > 0, entonces el
Hessiano es un positivo definitivo.
Entonces, el punto
mínimo
 x1    1 
   
x  x2   1
   
 x 3    1
es un
Ejemplo
Click tode
edit
NLP
Master
No Restringida
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.
ClickMétodo
to edit Master
de Solución
title style
• 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.
ClickMétodo
to edit Master
de Solución
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.
ClickMétodo
to edit Master
de Newton
title style
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:
x
k 1
 x 
k
'
k
''
k
f (x )
f (x )
donde k es la iteración actual.
La iteración se continua hasta que |xk+1 – xk|
< e donde e es la tolerancia especificada.
Diagrama del Método de
Click to edit Master title style
Newton
Tangente
de f (x) en
xk
f (x)
x*
xk+1
xk
x
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*.
Comentarios del Método de
Click to edit Master title style
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
ClickMétodo
to edit Regula-Falsi
Master title style
Este método requiere dos puntos, xa y xb
que que agrupan la solución a la ecuación
f (x) = 0.
f (x ) (x  x )
'
x  x 
c
b
b
b
a
f (x )  f (x )
'
b
'
a
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
Diagrama
to edit Master
Regula-Falsi
title style
f (x)
xa
xc
x*
x
x
b
El método Regula-Falsi aproxima la función
f (x) como una línea recta e interpola para
encontrar la raíz.
Comentarios del método
Click to edit Master title style
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
Optimización
to edit Master
Multivariable
title style
•
•
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:
k 1
k
k
k
x
 x a d
donde k es el número de iteración actual y ak
es un escalar positivo llamado tamaño de
paso.
ClickEl
to Tamaño
edit Master
de Paso
title style
• El tamaño de paso, ak, es calculado de la
siguiente manera:
• Queremos minimizar la función f(xk+1) = f(xk
+akdk) donde la única variable es ak
porque xk y dk son conocidas.
• Establecemos d f x  a d   0
y
k
k
k
da
k usando
k
resolvemos para a
un método de
solución de una sola variable como los
mostrados previamente.
Método de Descenso más
Click to edit Master title style
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:
 
 max 
k
d     f ( x ) for 

 
 min 
k
Entonces, x
k 1
  k
k
 x  a  f ( x )
 
k
Método de Descenso Más
Click to edit Master title style
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
x2
f(x) = 5
-f(xk)
f(x) = 20
f(xk)
xk
f(x) = 25
x1
Pasos del Método de Descenso
Click to edit Master title style
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:d k   f ( x k )
4. Calcula la siguiente x: x k 1  x k  a k d k
Usa un método de optimización de una
variable para determinar ak.
Pasos del Método de Descenso
Click to edit Master title style
Más Inclinado
5. Para determinar la convergencia, usa
alguna tolerancia dada e1 y evalúa:
f (x
k 1
)  f (x )  e 1
k
para convergencia
O, usa otra tolerancia e2 y evalúa:
 f (x )  e 2
k
para convergencia
Click to Convergencia
edit Master title style
• 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:
x 
x x 
T
( x1 )  ( x 2 )    ( x n )
2
2
2
Ejemplo del Método de
Click to edit Master title style
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
0 
Seleccionemos x 0   0 
 
 0 
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
 f ( x )  2 x1  (1  x 2 )
 x1  2 x 2  x 3
d   f ( x )   2 ( 0 )  1  0
0
0
  1
x  0
1
0
0
0   a   1
0
000
1    1
0
 x 2  2 x 3  1
0
 0  0  1
 1
 1
Ahora, necesitamos determinar a0
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
f ( x )  (a )  ( a )(1)  0  0  (a )  ( a )
1
0
2
0
0
2
0
 2 (a )  2 (a )
0
2
0
1
df ( x )
da
0
 4 (a )  2
0
A continuación, iguala a cero y resuelve:
4 (a )  2 
0
a 2
0
4
 1
2
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Entonces,
x  0
1
 0
0   a   1
0
0
0
 1
0  
 2
 1
 x  
 2
1
0
 1
1
 
2
0
0
1
 
2
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Toma el gradiente negativo para encontrar
la siguiente dirección de búsqueda:

d   f ( x )     1  1  0

1
1
 d  0
1
1
0
2
1
1
2
0

0  1  1

Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Actualiza la fórmula de iteración:
 1
x  
 2
2
 1
 
 2
0
a
1
1
   a  0
2
1
1
 
2
1
0
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Insertala en la función original y toma la
derivada para encontrar a1:
1 1
 1
1
1 2
1  1 
f ( x )      1  a  (a )  (a )    
4  2
2 4 2
1 2
1
 (a )  a  1
2
2
1


1
df ( x )
da
1
 2 (a )  1
1
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Ahora podemos igualar la derivada a cero y
resolver para a1:
2 (a )  1 
1
a  1
1
2
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Ahora, calcula x2:
 1
x  
 2
2
 1
 
 2
0
1
1
   a  0
2
0
1 
   0
2 
 1
 x  
 2
2


1
1
2
1
2

0

1
 
2
0
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
1

d   f ( x )     1  1 
2

2
1
2
 1
 d  
 2
2
Así,
 1
x  
 2
3

1
2
 1
2
   (a  1)
 2
1
2
0
2

2
0

 (a  1) 
2

1

 1  1
2

1
1
 
2
1
1
2 
   a  
2
 2
1
1
2
1
 
2
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Encuentra
a2:
f (x ) 
3
1
(a  1) 
2
2
2
3
df ( x )
da
2
 (a  1) 
2
3
(a  1) 
2
3
2
Iguala la derivada a cero y resuelve:
(a  1) 
2
3
2
 a
2
 1
2
2
1
4
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Calcula x3:
 1
x  
 2
3
 1
 
 2

1
1
2 
   a  
2
 2
1
2

1
2
1  1
   
2  4
 3
 x  
 4
3

1
2
0
0
3
 
4
1
 
2
1
 
4
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Encuentra la siguiente dirección de búsqueda:

d   f ( x )    0

3
 3
x  
 4
4
 3
 
 4
3

1
2

1
2
1
2
 
0   0
 
3
3 
   a  0
4

(a  1)
3
3
 
4

1
2

1
2

0


0

Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Encuentra a3f: ( x 4 )  1 (a 3  1) 2  3 (a 3 )  3
4
4
df ( x )
da
3

1
2
(a  1) 
3
2
a
9
8
3

5
4
0
2
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Entonces, x4 se convierte en:
 3
x  
 4
4

1
2
3
 
4
 3
 x  
 4
4


0

9
8

5
8
3
 
4

0

Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
La siguiente dirección de búsqueda:
5
d   f ( x )   
8
4
 3
x  
 4
5
4

9
8

3
4
5  5
 

8  8
3
5
4 
   a  
4
 8
5 4
 1
   (3  a )
2
 4
3 3
4
 ( a )
4 2
3
4
5
 
8
3
4
5
 
8

 (3  a ) 
4
2

1
5
4
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Encuentra a4:f ( x 5 )  73 (a 4 ) 2  43 a 4  51
32
5
df ( x )
da
4

73
32
a 
4
16
 a
4
43
32
 43
146
0
64
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Actualiza para x5:
 3
x  
 4
5

9
8
3
43
 
4  146
 1091
 x  
 1168
5

66
73
 5
 
 8
3
4
1091 

1168 
5
 
8
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Revisemos si el criterio de convergencia es
satisfecho
Evalúa ||f(x5)||:
 21
 f (x )  
 584
5
 f (x ) 
5
35
584
21 
584 
21 584   35 584   21 584 
2
2
2
 0 . 0786
Ejemplo del Método de
Click to edit Master title style
Descenso Más Inclinado
Entonces, ||f(x5)|| = 0.0786, que es muy
pequeña y lo suficientemente cercana a
cero para nuestro ejemplo
Nota que la respuesta de
 1091
x  
 1168

66
73
1091 

1168 
es muy cercana al valor de x   1  1  1
que obtuvimos analíticamente
*
Click
Funciones
to edit Master
Cuadráticas
title style
• 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: x
1
x2
 2

x3   1

 0
1
2
1
0   x1 
 
2
2
 1 x 2  2 (x 1 )  2x 1 x 2  2(x 2 )
 
2   x 3 
2
– 2x 2 x 3  2(x 3 )
Método del Gradiente
Click to edit Master title style
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
Pasos del Método del Gradiente
Click to edit Master title style
Conjugado
1. Elige un punto inicial x0 y calcula f(x0).
Deja d0 = -f(x0)
2. Calcula usando: x  x  a d
Encuentra a0 realizando optimización de
una variable en f(x0 +a0d0) usando los
métodos discutidos anteriormente.
(Observa la ilustración después del
algoritmo de explicación)
x1
1
0
0
0
Pasos del Método del Gradiente
Click to edit Master title style
Conjugado
3. Calcula f(x1) y f(x1). La nueva dirección
de búsqueda es calculada usando la
ecuación:
 f (x )   f (x )
T
d   f ( x )  d
1
1
0
1
1
 f (x )   f (x )
T
0
0
Esto puede ser generalizado para la
iteración kth:
T
k 1
d
k 1
  f ( x
k 1
)d
k
 f (x
)   f (x
k 1
 f (x )   f (x )
T
k
k
)
Pasos del Método del Gradiente
Click to edit Master title style
Conjugado
4. Usa cualquiera de los dos métodos
discutidos antes para determinar la
tolerancia:
f (x
k 1
)  f (x )  e 1
k
O,
 f (x )  e 2
k
Click
Número
to editde
Master
Iteraciones
title style
• 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.
Tamaño de Paso para Funciones
Click to edit Master title style
Cuadráticas
• Al optimizar el tamaño de paso, podemos
aproximar la función a optimizar de la
siguiente manera:
f (x  ad )  f (x )   f (x ) ad 
k
k
k
T
k
k
(a d )   f ( x )  (a d )
2
1
k
T
2
k
• Para una función cuadrática, esta no es
una aproximación – es exacta
k
Tamaño de Paso para Funciones
Click to edit Master title style
Cuadráticas
Tomamos la derivada de la función con
respecto a a e igualamos a cero:
df ( x  a d )
k
k
da
  f ( x )  d  (d )   f ( x )  a d  0
T
k
k
k
T
2
k
La solución a esta ecuación es:
 f (x )  d
T
a
k , opt

k
k
(d )   f ( x )  d
k
T
2
k
k
k
Tamaño de Paso para Funciones
Click to edit Master title style
Cuadráticas
• Entonces, para el problema de optimizar
una función cuadrática
 f (x )  d
T
a
k , opt

k
k
(d )   f ( x )  d
k
T
2
k
k
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.
Método Multivariable de
Click to edit Master title style
Newton
Podemos aproximar el gradiente de f a un
punto x0 usando:
 f (x)   f (x )   f (x )  (x  x )
0
2
0
0
Podemos hacer el lado derecho de la
ecuación igual a cero y rearreglar para
obtener:
1

x  x   f (x )
0
2
0

  f (x )
0
Método Multivariable de
Click to edit Master title style
Newton
Podemos generalizar esta ecuación para
dar una expresión iterativa del Método de
Newton:
x
k 1

 x   f (x )
k
2
k

1
  f (x )
donde k es el número de iteración
k
Click
Pasosto
del
edit
Método
Master
detitle
Newton
style
1. Elige un punto inicial, x0
2. Calcula f(xk) y 2f(xk)
3. Calcula la siguiente x usando la
ecuación
1
k 1
k
2
k
k
x
 x   f (x )   f (x )


4. Usa cualquiera de los criterios de
convergencia discutidos anteriormente
para determinar la convergencia. Si no
ha convergido, regresa al paso 2.
Comentarios del Método de
Click to edit Master title style
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
Ejemplo
Click to del
editMétodo
Master de
title
Newton
style
Como ejemplo, usaremos el mismo
problema que antes:
Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2
– x2x3 + (x3)2 + x3
 f ( x )  2 x1  x 2  1
 x1  2 x 2  x 3
 x 2  2 x 3  1
Ejemplo
Click to del
editMétodo
Master de
title
Newton
style
El Hessiano es:
 2

2
 f (x)   1

 0
1
2
1
0 

1

2 
Y necesitaremos el inverso del Hessiano:

2
f (x)

1
 2

 1

 0
1
2
1
0 

1

2 
1
3
 4
 1
2

1
 4
1
2
1
1
2
1 
4
1 
2

3
4 
Ejemplo
Click to del
editMétodo
Master de
title
Newton
style
Entonces, elige
0 
 
0
x  0
 
 0 
Calcula el gradiente para la 1a iteración:
 f ( x )  0  0  1
0
000
  f ( x )  1
0
0
 0  0  1
1
Ejemplo
Click to del
editMétodo
Master de
title
Newton
style
Así, la nueva x es:
x  x    f ( x ) 
1
0
2
3
0   4
 
 0  1
   2
 0   1
 4
0
1
1
2
1
1
2
  1
 
1
 x  1
 
  1
 f (x )
0
1 
4  1
1   0 
2  
3   1 
4 
Ejemplo
Click to del
editMétodo
Master de
title
Newton
style
Ahora calcula el nuevo gradiente:
 f ( x )   2  1  1 1  2  1 1  2  1  0
1
0
0
Puesto que el gradiente es cero, el método
ha convergido
Click
Comentarios
to edit Master
del Ejemplo
title style
• 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.
Optimización Restringida No
Click to edit Master title style
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.
NLP con Restricciones de
Click to edit Master title style
Igualdad
• Primero, trataremos problemas que solo
contienen restricciones de igualdad:
Minimiza f(x)
Sujeta a: hi(x) = bi
x = [x1 x2 … xn]
i = 1, 2, …, m
Click to edit
Ilustración
Master title style
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
Gráfica
to editde
Master
Ilustración
title style
f (x)
Región
Factible
El gradiente de f apunta
en la dirección de
incremento de f
f(x) = 1
 0 . 707 
*
x 

0
.
707


f(x) = 0
f(x) = -1.414
ClickMás
to edit
sobre
Master
la Gráfica
title style
• 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
Más Master
Detallestitle style
x2
Plano
Tangente
Región
Factible
f (x )
1
1 
1
x   
0 
f (x )
*
h(x )
1
f(x) = 1
h(x )
*
 0 . 707 
*
x 

0
.
707


f(x) = 0
f(x) = -1.414
x1
Click to Conclusiones
edit Master title style
• 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
Condiciones Necesarias de Primer
Click to edit Master title style
Orden
Entonces, para que un punto sea un mínimo
(o un máximo), debe satisfacer la siguiente
ecuación:
 f (x )     h(x )  0
*
*
*
Esta ecuación significa que f(x*) y h(x*)
deben estar exactamente en direcciones
opuestas en un punto mínimo o máximo
Click
La to
función
edit Master
Lagrangiano
title style
Para ayudar al usar este hecho,
introducimos la Función Lagrangiano, L(x,):
L (x,  )  f (x)    h(x)
Repaso: La notación x f(x,y) significa el
gradiente de f con respecto a x.
Entonces,
 x L (x,  )   x f (x)     x h(x)
Condiciones Necesarias de Primer
Click to edit Master title style
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
 x L ( x ,  ) x * ,  *   0
y h ( x )  0 para asegurar la factibilidad.
*
Condiciones Necesarias de Primer
Click to edit Master title style
Orden (FONC)
• 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 L  0 & L  0
x
λ
Click to
Usando
edit Master
las FONC
title style
Usando las FONC para el ejemplo previo,
L (x,  )  f (x)    h(x)

 x1  x 2     x1    x 2   1
2
2
Y la primera ecuación FONC es:
 L

 x1   0 

 x L (x,  ) 
 
L
 0 
  x 2 

Click Ejemplo
to edit Master
de FONC
title style
L
Esto se vuelve:
 x1
L
&
x2
 1  2  x1  0
 1  2 x2  0
La ecuación de factibilidad es:
 x1 
o,
L

2
 x2   1  0
2
  x1    x 2   1  0
2
2
Click Ejemplo
to edit Master
de FONC
title style
Entonces, tenemos tres ecuaciones y tres
incógnitas.
Cuando se resuelven simultáneamente,
obtenemos
x1  x 2   0 . 707
&
   0 . 707
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.
Click
Observaciones
to edit Master
de title
FONC
style
• 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
Limitaciones
to edit Master
de FONC
title style
• 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.
Condiciones Necesarias de Segundo
Click to editOrden
Master title style
(Second Order Necessary Conditions, SONC)
Para
 x L (x,  )
2
donde
 x L (x,  )   f (x)     h(x)
2
2
2
  h1

x 

*
J h (x )  y    
y  0
  hm


 x  ( x * )
y para cualquier y
donde
Si x*es un mínimo local, entonces
y   L (x ,  )  y  0
T
2
x
*
Condiciones Suficientes de
Click toSegundo
edit Master
title style
Orden
(Second Order Sufficient Conditions, SOSC)
y   x L (x ,  )  y  0
T
2
*
• 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
J h ( x)  y  0
El Vector
Click to edit
Masterytitle style
x3
h( x)  0
x2
x
x1
*
h(x)
Plano Tangente
(todos los vectores
y posibles)
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
Problemas
to editde
Master
Maximización
title style
• 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:
T
2
*
y


L
(
x
,)y  0
SONC:
x
SOSC:
y   x L (x ,  )  y  0
T
2
*
Click
Necesario
to edit Master
y Suficiente
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.
Click toProcedimiento
edit Master title style
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
Problemas con Restricciones de
Click to edit Master title style
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*:
g j (x )  0
*
Para todo j en el grupo I(x*)
Lagrangianos para Problemas con
Click
to
edit
Master
title
style
Restricciones de Igualdad y Desigualdad
El Lagrangiano está escrito:
p
m
L (x, λ , μ )  f (x) 

i 1
i
hi ( x ) 
m
j
 g j (x)
j 1
Usamos ’s para las igualdades y m’s para
las desigualdades.
FONC para Restricciones de
Click to edit Master title style
Igualdad y Desigualdad
Para el Lagrangiano general, las FONC se
vuelven
p
m
 L ( x *, λ *, μ *)   f ( x *)    i  hi ( x *)   m j   g j ( x *)  0
*
*
i 1
j 1
y la condición de soltura complementaria:
m j  0 , m j  g j ( x )   0 ,
*
*
*
j  1,  p
SONC para Restricciones de
Click to edit Master title style
Igualdad y Desigualdad
Las SONC (para un problema de
minimización) son:
y   L (x ,  , m )  y  0
T
2
x
*
*
*
donde J ( x )  y  0 como antes.
*
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*.
SOSC para Restricciones de
Click to edit Master title style
Igualdad y Desigualdad
• Las SOSC para un problema de
minimización con restricciones de
igualdad y desigualdad son:
y   L (x ,  , m )  y  0
T
2
x
*
*
*
Ejemplo de Lagrangiano
Click to edit Master title style
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:

 m  x
L ( x ,  , m )  ( x1  1)   x 2      x1    x 2   x1  x 2
2
2
2
1
 x2 
2
2


Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
• Las condiciones necesarias de primer orden:
L
 x1
L
x2
L

 2  x1  1   2    x1    m  0
 2 x2  2    x2    2  m  x2  0
  x1    x 2   x1  x 2  0
2

2

m  x1   x 2   0
2
Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
Resolviendo las 4 ecuaciones FONC,
obtenemos 2 soluciones:
1)
y
x
(1 )
 0 . 2056 



0
.
4534


  0 . 45
0 
 
0 
 0
2)
x
(2)
& m  0 . 9537
&
m  2
Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
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):
 
J x
1 
 2 x1  1

 1
2 x 2  1

2 x2 
x
(1 )
1 . 411

 1
0 . 0932 

 0 . 9068 
Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
La única solución a la ecuación:
0
es: y  
0
0

0
J (x
(1 )
)y  0
Y el Hessiano del Lagrangiano es:
2  2
 L
 0
2
x


2  2  2 m 
0
x
(1 )
 2 .9

 0


0 . 993 
0
Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
Entonces, la ecuación SONC es:
0

0
0   2 .9

0  0
 0

0 . 993   0
0
0  0

0  0
0
0
0
Esta desigualdad es verdadera, entonces la
SONC es satisfecha para x(1) y aún es un
punto candidato.
Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
La ecuación SOSC es: y   L ( x ,  , m )  y  0
T
2
x
*
*
*
Y solo calculamos el lado izquierdo de la
ecuación para ser la matriz cero. Entonces,
en nuestro caso para x2:
y  L
T
2
x
x
(1 )
0
y  
0
0
0
0
Así, las SOSC no son satisfechas.
Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
Para la segunda solución:
Nuevamente, tanto h(x) como g(x) son
activos en este punto. Entonces, el
Jacobiano es:

J x
(2)

 2 x1  1

 1
2 x 2  1

2 x2 
x
(2)
1

 1
1

0
Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
La única solución a la ecuación:
0
es: y  
0
0

0
J (x
(2)
)y  0
Y el Hessiano del Lagrangiano es:
2  2
 L
 0
2
x


2  2  2 m 
0
x
(2)
2

0
0 

 2
Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
Entonces, la ecuación SONC es:
0

0
0 2

0 0
0  0

 2  0
0  0

0  0
0
0
0
Esta desigualdad es verdadera, entonces la
SONC es satisfecha por x(2) y aún es un
punto candidato
Ejemplo de Lagrangiano
Click to edit Master title style
Generalizado
La ecuación SOSC es: y   L ( x ,  , m )  y  0
T
2
x
*
*
*
Y solo calculamos el lado izquierdo de la
ecuación para ser la matriz cero. Entonces,
en nuestro caso para x2:
y  L
T
2
x
x
(2)
0
y  
0
0
0
0
Así, las SOSC no son satisfechas.
Click
Conclusiones
to edit Master
del Ejemplo
title style
• 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.
ClickMétodos
to edit Master
Numéricos
title style
• 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
Ejemplo
edit Master
de Excel
title style
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
Ejemplo
edit Master
de Excel
title style
Introducimos la función objetivo y las
ecuaciones de restricción en la hoja de
cálculo:
Variables:
x1
0
x2
0
Función Objetivo:
Valor
=(A3-1)^2+B3^2
Restricción 1:
Restricción 2:
=A3^2+B3^2+A3+B3
=A3-B3^2
Límite
0
0
Click to
Ejemplo
edit Master
de Excel
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 ≤.
Click to
Ejemplo
edit Master
de Excel
title style
La ventana del solver debe verse como
sigue:
Click to
Ejemplo
edit Master
de Excel
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%
Click to
Ejemplo
edit Master
de Excel
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.
Click to
Ejemplo
edit Master
de Excel
title style
Sin embargo, si elegimos valores iniciales de -1
para x1 y x2 as, obtenemos la siguiente
solución:
Click to Conclusiones
edit Master title style
• 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
Referencias
Master title style
El material de este capítulo ha sido
tomado de:
• Optimization of Chemical Processes 2nd
Ed.; Edgar, Thomas; David Himmelblau; &
Leon Lasdon.
Descargar

Nonlinear Programming