Está en la página 1de 52

La Universidad del Zulia

Facultad de Ingeniería
División de Estudios para Graduados
Programa: Computación Aplicada

Asignatura:
Optimización para Ingenieros

1. Optimización sin restricciones


• Condiciones de primero y segundo orden para la existencia de extremos
• Búsqueda Lineal
• Métodos básicos de descenso para funciones de varias variables

Prof. Luis Zerpa, M.Sc.


Email: lzerpa@ica.luz.ve
Derivada direccional
• La derivada direccional permite tener información del
comportamiento de la función si sus variables se modifican
siguiendo el sentido indicado por el vector gradiente

• La Derivada direccional de f en p según el vector unitario 


[ D f(p) ] es el producto escalar del gradiente en p, por  :

D f(p) = f(p)T 

¿En qué sentido deberían desplazarse las variables de f, partiendo del


punto p, para que los valores de f crezcan más rápidamente?
Derivada direccional
• Como la rapidez está dada por : f(p)T 

• En esta expresión se suponen ya conocidos f y p; faltando conocer


“” que haga máximo el producto escalar

• Siendo f(p)T  = f(p).  Cos  = f(p).(1). Cos 

• Donde :  , es el ángulo formado por los vectores f(p) y 

 f(p)T , será máximo si y sólo si Cos  es máximo, ósea cuando


 = 0 y f(p) con  son colineales. Lo cual significa que el vector
unitario  debe tener el mismo sentido que el vector gradiente de f
en p
f p
significa que el vector gradiente de una función f en
 un punto p, f(p), de su dominio se orienta en el
f p sentido en el cual f crece mas rápidamente
Gradiente

• El gradiente de una función escalar de n variables f(x1, x2,…, xn,),


denotado por f, es el vector n-dimensional



fx





fx
,

f
x
,

,
f
x


 
x1 x
2 n
x

-5

-10

•El gradiente de una función en un -15

punto indica la dirección, a partir de -20


2

ese punto, en la que dicha función 0

crece más rápidamente y, además, la -2 -1.5 -1 -0.5 0 0.5 1 1.5


2
2

-2 1.5
dirección ortogonal a las curvas de 1

nivel de f (curvas en las que la función 0.5

tiene un valor constante) 0

-0.5

-1

-1.5

-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Optimización Sin Restricciones

Formulación del problema de optimización


• Cualquier problema de optimización, por complejo que sea, puede
expresarse en los siguientes términos

Encontrar un vector x tal que se minimice una función objetivo f(x)


Sujeto a restricciones de la forma:
gk x 0
k 1,...,
m

donde x es un vector de variables independientes

• La función objetivo puede tener un solo mínimo, en cuyo caso se


denomina unimodal, o varios mínimos locales o globales, en cuyo
caso se denomina multimodal
Clasificación de problemas de
optimización
• De acuerdo a la forma de f(x) y las restricciones:
– Programación Lineal: f(x) y las restricciones son lineales
– Programación No-lineal: f(x) es no-lineal y las restricciones pueden ser
no-lineales
• De acuerdo a la presencia o no de restricciones:
– Optimización no restringida: El problema de optimización no tiene
restricciones
– Optimización restringida: El problema de optimización tiene
restricciones
• Según su dimensionalidad:
– Optimización unidimensional: función objetivo de una variable
– Optimización multidimensional: función objetivo de varias variables
• Según el número de funciones objetivo:
– Optimización con un objetivo: Una sola función objetivo
– Optimización con múltiples objetivos: varias funciones objetivo
Clasificación de problemas de
optimización
• Existen varios métodos para resolver un problema de optimización

• Estos métodos pueden agruparse en dos grandes clases:

– Métodos de optimización basados en derivadas

– Métodos de optimización no basados en derivadas


Métodos de optimización basados en
derivadas
Métodos básicos de descenso
• Son técnicas básicas utilizadas en la solución iterativa de
problemas de minimización sin restricciones

• Ofrecen la forma más simple y directa de resolver estos problemas

• Ofrecen en términos prácticos una referencia con relación a la


dificultad de implementación y velocidad de convergencia

• En general, las técnicas avanzadas se comparan con estas técnicas


básicas
Estructura básica de los métodos básicos
de descenso
1. Se inicia en un punto, x0
2. Se determina la dirección de descenso mediante una regla fija
(Primera diferencia entre algoritmos)
3. Luego, se busca el mínimo en esa dirección (Búsqueda lineal)

• La forma general de los métodos básicos de descenso se puede


expresar como,
x1 x0 d
Búsqueda Lineal

• Las técnicas de búsqueda lineal son realmente procedimientos de


optimización para una sola variable, los cuales son realizados
repetidamente en problemas de varias variables

• La elección de una dirección de búsqueda tiene un alto costo


computacional, es por ello que los métodos de descenso basados
en gradiente sufren modificaciones con el objeto de minimizar o
reducir el número de cálculos de gradiente, Hessiano, e inversión
de matrices

• La modificación fundamental consiste en reducir el problema a uno


de optimización a lo largo de la dirección de descenso
Búsqueda Lineal

• Específicamente se debe resolver el sub-problema de


optimización:
– Encontrar , tal que

min 
f(x  d
) i
1

donde d es la dirección de descenso

• Hallado el  óptimo se inicia una nueva iteración de descenso


Búsqueda Lineal

• Este sub-problema es sensiblemente más sencillo que la


optimización general ya que es un problema de una dimensión con
una única variable, 

• La elección de un método adecuado de búsqueda lineal es de gran


importancia en un algoritmo de optimización

• La búsqueda lineal es responsable de un alto porcentaje del costo


de la evaluación de la función objetivo
Tipos de Métodos de Búsqueda Lineal

• Directos • Basados en intervalos


– Gradiente – Bisección
– Newton – Búsqueda de Fibonacci
– Quasi-Newton – Búsqueda Dorada
– Secante

• Interpolación Polinómica • Métodos Inexactos


– Cuadrática – Armijo
– Cúbica – Goldstein
– DSC (Davies, Swann y
Campey)
Búsqueda de Fibonacci

• Este método determina el mínimo valor de una función f sobre un


intervalo cerrado [c1, c2]

• Esta función puede estar definida en un dominio más amplio, pero


el método requiere que dicho intervalo de búsqueda sea definido

• Se asume que f es unimodal

• El mínimo es determinado (al menos aproximadamente) mediante la


evaluación en un cierto número de puntos

• Se pretende definir una estrategia de búsqueda que seleccione la


observación siguiente basada en los valores funcionales de las
observaciones anteriores
Búsqueda de Fibonacci
• Esto se define según el siguiente problema:
– Encontrar como seleccionar sucesivamente N observaciones, sin contar
con un conocimiento explícito de la función, de forma tal que podamos
encontrar la más pequeña región de incertidumbre posible en donde se
encuentre el mínimo

• Esta región de incertidumbre es determinada en cualquier caso por:


las observaciones (sus valores funcionales) y la suposición de que f
es unimodal.
• Luego que encontremos los valores funcionales en N puntos dentro
del intervalo cerrado [c1, c2]
c1  x1  …  xN-1  xN  c2
• La región de incertidumbre es el intervalo [xk-1, xk+1] donde xk es el
mínimo de los N puntos evaluados. En ese intervalo se encuentra el
mínimo
Búsqueda de Fibonacci

• La estrategia para seleccionar sucesivamente observaciones para


obtener la región de incertidumbre más pequeña se describe a
continuación:

• d1 = c2 – c1; es la amplitud inicial de la incertidumbre

• dk  es la amplitud de la región de incertidumbre luego de k


observaciones
F 1
• Si son realizadas N observaciones se tiene que dk 
 F 
Nk
d
1
 N 
• Donde Fk son los números de la secuencia Fibonacci generados por
la relación:

• FN = FN -1 + FN -2 donde F0 = F1 = 1

• Donde cada número después de los dos primeros representa la


suma de los dos precedentes
Búsqueda de Fibonacci

Procedimiento para la reducción de la sección de incertidumbre:


1. Especificar N, y calcular los números de la serie Fibonacci {F0, F1,…, FN}
FN 1
2. Calcular
FN
 FN1 
3. Colocar simétricamente desde los extremos del intervalo inicial a distancia 
 F d1
dos observaciones  N 

4. De acuerdo a donde se encuentre la muestra con menor valor funcional se


determina la región de incertidumbre, F 
d2 
F 
N
1
d1
 N

1. La tercera muestra es colocada simétricamente dentro de este nuevo intervalo con


respecto a la observación ya incluida en el intervalo, de forma tal que la amplitud de
la región de incertidumbre sea  FN2 
 d1
 FN 
Búsqueda de la Sección Dorada

• La primera condición específica l0  l1  l2


que la suma de las dos
sublongitudes l1 y l2 debe ser igual
l1 l 2
a la longitud original del intervalo 
l 0 l1
• La segunda indica que el cociente
o razón de las longitudes debe ser
igual
l1 l
2
l1 l2 l1

l2 1
R 1 R  R2 R10
l1 R
xl xu



11

45

1 
1

R  
0. Primera
61803 l0
2 2 Iteración
l 1 l2
La Razón Dorada
Segunda
Búsqueda de la Sección Dorada
1. Se comienza con los valores
extremos del intervalo xl, xu que
contienen el extremo local de f(x)
2. Dos puntos interiores de escogen
de acuerdo a
• x1 = xl + d 5
d
1
xuxl
2
• x2 = xu - d
xl x2 x1 xu
1. Se evalúa la función en los dos
puntos interiores Primera
l0
Iteración
• Si f(x1) < f(x2)  xl = x2; x2 = x1; l1 l2
xl x1 xu

x
1x
l 
5 1

xu
xl
Segunda
2 Iteración l2

• Si f(x2) < f(x1)  xu = x1; x1 = x2;



x 2 x u
5 1
xu xl
2
Ajuste Cuadrático (Método DSC, Davies,
Swann y Campey)
• El método DSC es un método de
búsqueda lineal por ajuste de
curvas (interpolación polinómica),
es recomendado para determinar 1
la región donde se encuentra el f(x) 2
mínimo en funciones de una sola
3
variable

• En la búsqueda unidimensional 4
6
5

DSC, se toman pasos cuya x 2x 4x 8x


dimensión se va incrementando
x(m-3) x(m-2) x(m-1) x(m+1) x(m)
sucesivamente hasta que el
mínimo es sobrepasado y luego
se realiza una interpolación
cuadrática
Ajuste Cuadrático (Método DSC, Davies,
Swann y Campey)
1. Se evalúa f(x) en el punto inicial x(0)
- Si f(x(0) + x)  f(x(0)), pase al paso 2
- Si f(x(0) + x) > f(x(0)), haga
x = x/2 y repita el paso 1 1

2. Calcule x(k+1) = x(k) + x f(x) 2

3
3. Calcule f(x(k+1))

4. Si f(x(k+1))  f(x(k)), duplique x 4


6
5

(x = 2x) y regrese al paso 2 con k = x 2x 4x 8x


k+1
x(m-3) x(m-2) x(m-1) x(m+1) x(m)
Si f(x(k+1)) > f(x(k)), denote x(k+1) como
x(m), x(k) como x(m-1), etc., se reduce x a
la mitad y se regresa al paso 2 y 3 para
un solo cálculo adicional
Ajuste Cuadrático (Método DSC, Davies,
Swann y Campey)
1. De los 4 valores igualmente
espaciados de x en el conjunto
{x(m+1), x(m), x(m-1), x(m-2)}, descarte
x(m) o x(m-2), el que esté más lejano 1
de la x de menor valor funcional. f(x) 2
Los tres valores restantes del
3
conjunto pueden ser denotados
como x(a), x(b), x(c), donde x(b) es
4 5
el punto central y 6
x(a) = x(b) - x y x(c) = x(b) + x x 2x 4x 8x

x(m-3) x(m-2) x(m-1) x(m+1) x(m)


2. Se realiza una interpolación
cuadrática para estimar x* (el
valor de la variable independiente
correspondiente al mínimo de f(x))

ˆ 

x
f
xfx
 

a 

c

 
b
x
*x
* x
2
fx 
2
fxf
a
x 
b 

c donde x = x(a) - x(b)
Ajuste Cúbico

• Dados xk-1 y xk junto a f(xk-1), f ’(xk-1), f(xk), y f ’(xk) es posible ajustar


una ecuación cúbica en los puntos

• El punto xk+1 (mínimo) puede ser determinado como el punto mínimo


relativo de esta ecuación cúbica

f 
'xuu1
x
x
xx 

k 2


k 
1 k k k
1

f
'x
kf
'x
k
12
u
2

donde,
f
x fx 
uf
' xf
' x3 k
1 k


1 k1 k
x
k1 xk

2
u u 
f'
x
2
1
k
1f'
xk 1
2
Método del Gradiente

• Supongamos que f(x) es una función de una variable a ser


minimizada y que f(x) y f ’(x) existen
xk+1 = xk – f ’(xk)
• Un factor de escalamiento es empleado para escalar el gradiente
xk+1 = xk – f ’(xk)  Método del gradiente modificado

•El valor de   (0,1], es decir, es un parámetro f’(x)


ajustable seleccionado por el usuario
•Es deseable que  decrezca a medida que
progresa la búsqueda, lo que hace que
tengamos dos parámetros por ajustar: 0 y la
f(x)
tasa de disminución de 
•Con el método de Newton tales parámetros son
calculados directamente en cada iteración
xk xk+1
Método de Newton

• Supongamos una función f de una variable a ser minimizada y


supongamos que en xk es posible evaluar f(xk), f ’(xk) y f ”(xk)
• Entonces es posible construir una función cuadrática a partir del
desarrollo de Taylor:


q
xf
xk
f
'x
k


x
x
k
1
f
'
'x
k

x
x
2
k
2
• Se puede estimar xk+1 determinando el punto donde la derivada de q
se hace cero

q
'x
k
1
f
'x
kf
'
'x
k
x
k
1
x
k0

f'xk
x 1xk
f(x)
f''x
k
k

xk xk+1
Método de Newton

Implementación
• Para la implementación de este método en una función de varias
variables es necesario calcular la primera y segunda derivada de la
función como derivadas direccionales, obteniendo un valor escalar,
de la siguiente manera,

f'x
kfx
kd
 
f''
xk x
dH
T
kd

donde d es el vector unitario de la dirección de descenso


Método Quasi-Newton

• Cuando no es posible evaluar analíticamente las primeras y


segundas derivadas, se pueden emplear métodos de diferencias
finitas para calcularlas:


f
'
x


f
x
x
f
2
x


xx
f
'
'
x

f
x




x
2

f
x
2
x


f
xx 
 
Búsqueda Lineal Inexacta
• En la práctica no se determina el mínimo de la búsqueda lineal en
forma exacta
• En este sentido, es deseable sacrificar precisión en la búsqueda
lineal con el propósito de favorecer el tiempo de computo general
• Recordemos que el mínimo en una búsqueda local no tiene porque
ser el mínimo de la función
• La imprecisión es generalmente introducida simplemente
terminando la búsqueda lineal antes de que converja
• La naturaleza exacta de la imprecisión depende de:
– La técnica de búsqueda empleada
– El criterio de parada
Búsqueda Lineal Inexacta
Criterios de terminación de la búsqueda lineal
• Prueba de porcentaje: Sea xk+1 = xk + d; este criterio determina 
para estar dentro de un porcentaje del verdadero valor
• Específicamente, se selecciona una constante c tal que 0 < c < 1
(típicamente c = 0.1) y el parámetro  en la búsqueda lineal es
determinado de forma tal que satisfaga | - *| ≤ c* donde * es el
verdadero valor de minimización
Búsqueda Lineal Inexacta
Regla de Armijo
• Primero garantiza que  no sea muy grande y luego que no sea
muy pequeño
 fxk d k

• La regla de Armijo es implementada al considerar la función


(0) +  ’(0) para 0 <  < 1
• Esta función está representada por la línea segmentada en la figura

Interv
a loaceptable 
Búsqueda Lineal Inexacta
Regla de Armijo
• Un valor de  se considera que no es muy grande si el valor de la
función cae debajo de la línea punteada; es decir, si
()  (0) +  ’(0) 
• Para asegurar que  no sea muy pequeño, se selecciona un valor
de  > 1, y se considera que  no es muy pequeño si
() > (0) +  ’(0)  ,

•Esto quiere decir que si  es aumentado por un 


factor , falla el criterio anterior que requería
que el valor de la función estuviera por debajo
de la línea punteada
•La región aceptable definida por la regla de
Armijo en la figura corresponde a un valor de  
Interv
a loaceptable
igual a 2
Búsqueda Lineal Inexacta
Regla de Armijo
• En la práctica, la regla de Armijo es utilizada para definir una técnica
de búsqueda lineal simplificada que no utiliza el ajuste de curvas
1. Se define un  arbitrario
2. Si se satisface ()  (0) +  ’(0)  ; el valor de  es aumentado
repetidas veces por  hasta que ya no se satisface esta desigualdad
y se selecciona el penúltimo 
3. Si () > (0) +  ’(0)  ; el  inicial se considera muy grande y se
divide repetidas veces por  hasta que se consiga un  apropiado
• Valores típicos:  = 2, y  = 0.2
Método del Descenso más Rápido

• Este método, denominado también método del gradiente, es una de


las técnicas más antiguas para minimizar una función definida en
un espacio multidimensional
• Su filosofía es muy sencilla: la dirección contraria a la del vector
gradiente en un punto es la dirección de más rápido decrecimiento
de la función en ese punto
• El procedimiento a seguir es el siguiente:
1. Se selecciona un punto inicial sobre la superficie y se determina el
gradiente en ese punto
2. Se determina un nuevo punto según la fórmula: x 1
i xi  fxi

donde  es un número positivo, dado por algún método de búsqueda


lineal

1. Se repite el paso 2 hasta que se encuentre un punto xi+1 tal que


f xi10
Método del Descenso más Rápido

• Ejemplo 1:

Evolución del método para un  = 0.25 Evolución del método para un  = 0.9

2 2

1.5 1.5

1 1

0.5 0.5

0 0

-0.5 -0.5

-1 -1

-1.5 -1.5

-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Método del Descenso más Rápido

• Ejemplo 2: Se desea minimizar la función


2 2
f(x
,y)
203
x 
y
Esta función es unimodal

El mínimo está ubicado en el punto (0,0)

Supongamos que se asume como punto


inicial, el punto (-1.7, 1.7)

El gradiente en un punto cualquiera es,


f = {6x, 2y}
Método del Descenso más Rápido

• Ejemplo 2: Se desea minimizar la función


2 2
f(x
,y)
203
x 
y

Las curvas de nivel de esta función son de 1.5

forma elíptica, y el cambio de la dirección 1

0.5
de búsqueda de una iteración a otra, se
0
observa en la trayectoria en forma de
-0.5
zigzag
-1

-1.5

-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Método de Newton

• En este caso, la dirección de búsqueda se determina utilizando la


segunda derivada de la función objetivo
• El método aproxima la función objetivo f en la vecindad de un
mínimo con una serie de Taylor truncada hasta el término de
segundo orden,


f
a
x

fx

i
1

f

x1 
x

i1 T

x
x
i
1
H
fx
x

i
1
2

• Dado que la aproximación fa es una función de segundo orden, ésta


es unimodal, y su mínimo es una buena aproximación del mínimo
de la función objetivo
• El mínimo de la función fa se determina haciendo fa´= 0 y calculando
el valor de xi que satisface la ecuación

f
H f
xi
x
i 
1 0
Método de Newton

• Si la inversa de Hf existe, se tiene que:



1
i
x x
i
1Hf 
f

• Que es el denominado método de Newton o de Newton-Raphson

Direcciones de búsqueda calculada por los métodos de descenso más rápido y de Newton
Método de Newton

• Ejemplo 3: Se desea minimizar la función


2 2
f(x
,y)
203
x 
y
utilizando el método de Newton
2

1.5
El gradiente en un punto cualquiera es,
f = {6x, 2y}
1

0.5

mientras que el Hessiano es la matriz 0

-0.5


1 0
 
60 1 6  -1

f
H H 
 
02 f 
0 1 -1.5

 2 -2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

La aproximación de esta función utilizando la serie de Taylor es exacta, debido a


que es una función cuadrática
Método de Newton
• En los casos en los que la función no es cuadrática, se hacen
aproximaciones sucesivas del mínimo utilizando la ecuación

x
ix
i
1
H
1
ff

• donde  es positivo, hasta que se encuentra un valor cercano al


extremo mínimo relativo, según una tolerancia especificada

• En cada punto en los que se evalúe la ecuación anterior, debe


ocurrir que el Hessiano sea una matriz positiva definida, para que la
dirección de búsqueda sea una dirección descendente

• En general, la condición de matriz positiva definida se cumple en la


vecindad del mínimo, pero no existe garantía que ocurra en puntos
lejanos al mismo
Método de Levenberg-Marquardt

• Está dado por la ecuación

xi
x
IH

i1f f

1

• donde  y  son positivos e I es la matriz identidad


• La idea es seleccionar  de manera que la matriz I - Hf sea positiva
definida
• La ecuación anterior se aproxima al método del descenso más
rápido si   , y al método de Newton   0
Estrategia de descenso

• En la práctica se utilizan estrategias de descenso que utilizan


varios métodos, de la siguiente manera:

1. Se inicia con el método de Newton, si no hay descenso (la matriz


Hessiano NO es definida positiva)
2. Se emplea el método de Levenberg-Marquardt con un  inicial, por
ejemplo k = 0.001, se realiza la factorización de Cholesky a la
matriz para verificar si es definida positiva. Si la factorización de
Cholesky falla (i.e. la matriz no es definida positiva) se incrementa
en una razón, k = k
3. Si no hay descenso después de varios intentos (por ejemplo 10),
se emplea el método del descenso más rápido
ANEXO
Descomposición de Cholesky

• La descomposición o factorización de Cholesky expresa una matriz


simétrica como el producto de una matriz triangular y su transpuesta

A = L∙LT  L: matriz triangular inferior

• No todas las matrices simétricas se pueden factorizar de esta forma

• Las matrices que tienen este tipo de factorización son las matrices
simétricas definidas positivas. Esto implica que todos los elementos
de la diagonal sean positivos y que los elementos fuera de la
diagonal no sean muy grandes
Seudo código para la descomposición de
Cholesky
for k = 1:n
for i = 1:k-1
sum = 0;
for j = 1:i-1
sum = sum + A(i,j)*A(k,j);
end
A(k,i) = (A(k,i) - sum)/A(i,i);
end
sum = 0;
for j = 1:k-1
sum = sum + A(k,j)^2;
end
A(k,k) = sqrt(A(k,k) - sum);
end

También podría gustarte