Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Optimizacion Sin Restricciones (Modo de Compatibilidad) (Reparado)
Optimizacion Sin Restricciones (Modo de Compatibilidad) (Reparado)
Facultad de Ingeniería
División de Estudios para Graduados
Programa: Computación Aplicada
Asignatura:
Optimización para Ingenieros
D f(p) = f(p)T
fx
fx
,
f
x
,
,
f
x
x1 x
2 n
x
-5
-10
-2 1.5
dirección ortogonal a las curvas de 1
-0.5
-1
-1.5
-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Optimización Sin Restricciones
min
f(x d
) i
1
donde d es la dirección de descenso
• FN = FN -1 + FN -2 donde F0 = F1 = 1
l2 1
R 1 R R2 R10
l1 R
xl xu
11
45
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
xuxl
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
1x
l
5 1
xu
xl
Segunda
2 Iteración l2
• En la búsqueda unidimensional 4
6
5
3
3. Calcule f(x(k+1))
ˆ
x
f
xfx
a
c
b
x
*x
* x
2
fx
2
fxf
a
x
b
c donde x = x(a) - x(b)
Ajuste Cúbico
f
'xuu1
x
x
xx
k 2
k
1 k k k
1
f
'x
kf
'x
k
12
u
2
donde,
f
x fx
uf
' xf
' x3 k
1 k
1 k1 k
x
k1 xk
2
u u
f'
x
2
1
k
1f'
xk 1
2
Método del Gradiente
f'xk
x 1xk
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
kfx
kd
f''
xk x
dH
T
kd
f
'
x
f
x
x
f
2
x
xx
f
'
'
x
f
x
x
2
f
x
2
x
f
xx
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
fxk d k
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) ,
• 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
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
f
a
x
fx
i
1
f
x1
x
i1 T
x
x
i
1
H
fx
x
i
1
2
Direcciones de búsqueda calculada por los métodos de descenso más rápido y de Newton
Método de Newton
1.5
El gradiente en un punto cualquiera es,
f = {6x, 2y}
1
0.5
-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
x
ix
i
1
H
1
ff
xi
x
IH
i1f f
1
• 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