SlideShare una empresa de Scribd logo
1/63
Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros Industriales
Grado en Ingeniería en Tecnologías Industriales-3º
Matemáticas de Especialidad–Ingeniería Eléctrica
Optimización
Programación no lineal sin condiciones
José Luis de la Fuente O’Connor
jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_minimi_sincond.pdf
2/63
La OPTIMIZACIÓN es un lenguaje y forma de expresar en
términos matemáticos un gran número de problemas complejos
de la vida cotidiana y cómo se pueden resolver de forma práctica
mediante los algoritmos numéricos adecuados
L’optimisation est une discipline combinant plusieurs domaines de compétences : les mathématiques décisionelles, les statistiques
et l’informatique. Cette méthode scietifique a pour but de maximiser ou de minimiser un objectif. En pratique l’optimisation est
souvent utilisée por augmenter la rentabilité ou diminuer les coûts.
An act, process, or methodology of making something (as a design, system, or decision) as fully perfect, functional, or effective as
possible; specifically: the mathematical procedures (as finding the maximum of a function) involved in this.
La optimización se estudia en dos grandes partes:
 Optimización sin condiciones.
minimizar f W Rn
! R
 Optimización con condiciones
minimizar
x2Rn
f .x/
sujeta a ci.x/ D0; i 2 E;
cj .x/ 0; j 2 I:
3/63
¿Cómo se lleva a cabo un proyecto de optimización?
4/63
Índice
 El problema sin condiciones
 Condiciones de mínimo
 Métodos de dirección de descenso
 Método del gradiente o de la máxima pendiente
 Método de Newton
 Métodos de Newton amortiguado y de Región de Confianza
 Método de los gradientes conjugados
 Métodos cuasi Newton
5/63
El problema sin condiciones
 Dar solución a
minimizar f W Rn
! R
La función f se supone continua en algún conjunto abierto de Rn
y con
derivadas parciales continuas hasta segundo orden en ese abierto.
6/63
 Ejemplos Si x
es una constante, la función f .x/ D .x x
/2
tiene un
único punto donde alcanza el mínimo: en el valor de x
.
Example 1.1. In this example we consider functions of one variable. The function
f(x) = (x − x∗
)
2
has one, unique minimizer, x∗
, see Figure 1.1.
Figure 1.1: y = (x − x∗
)2
.
One minimizer.
x
y
x*
In many objectiv
and several local
can find the glob
global optimizati
The methods de
function. When
whether it is a g
not even be sure
 La función f .x/ D 2 cos.x x
/ tiene mínimos locales en x D x
C 2a.
of
we
n
1. INTRODUCTION 2
The function f(x) = −2 cos(x − x∗
) has infinitely many minimizers: x =
x∗
+ 2pπ , where p is an integer; see Figure 1.2.
x
y
Figure 1.2: y = −2 cos(x − x∗
). Many minimizers.
The function f(x) = 0.015(x − x∗
)2
− 2 cos(x − x∗
) has a unique global
minimizer, x∗
. Besides that, it also has several socalled local minimizers, each
giving the minimal function value inside a certain region, see Figure 1.3.
x
y
x*
Figure 1.3: y = 0.015(x − x∗
)2
− 2 cos(x − x∗
).
 f .x/ D 0;015.x x
/2
tiene un único mínimo global, x
, y muchos locales.
of
we
n
1. INTRODUCTION 2
The function f(x) = −2 cos(x − x∗
) has infinitely many minimizers: x =
x∗
+ 2pπ , where p is an integer; see Figure 1.2.
x
y
Figure 1.2: y = −2 cos(x − x∗
). Many minimizers.
The function f(x) = 0.015(x − x∗
)2
− 2 cos(x − x∗
) has a unique global
minimizer, x∗
. Besides that, it also has several socalled local minimizers, each
giving the minimal function value inside a certain region, see Figure 1.3.
x
y
x*
Figure 1.3: y = 0.015(x − x∗
)2
− 2 cos(x − x∗
).
7/63
Condiciones de mínimo
 La meta de cualquier método de optimización es encontrar el mínimo global de
la función, si existe, o un mínimo local.
Definición Una función f W Rn
! R se dice convexa si
f .˛x1 C ˇx2/  ˛f .x1/ C ˇf .x2/
para todo x1; x2 2 Rn
y todo ˛; ˇ 2 R, con ˛ C ˇ D 1, ˛  0, ˇ  0.
7.4 Convex and Concave Functions 193
y = f(x)
x
convex
(a)
y
8/63
Teorema Condiciones de convexidad de primer orden Una función f W Rn
! R
derivable —es decir, su gradiente, rf .x/, existe para todo x 2 Rn
— es convexa si para
todo x; y 2Rn
se cumple que
f .y/  f .x/ C rf .x/T
.y x/.
3.1 Basic properties and examples 69
(x, f (x))
f (y)
f (x) + ∇f (x)T
(y − x)
Figure 3.2 If f is convex and differentiable, then f(x)+∇f(x)T
(y−x) ≤ f(y)
for all x, y ∈ dom f.
is given by
˜
IC (x) =

0 x ∈ C
∞ x 6∈ C.
The convex function ˜
IC is called the indicator function of the set C.
We can play several notational tricks with the indicator function ˜
IC . For example
the problem of minimizing a function f (defined on all of Rn
, say) on the set C is the
same as minimizing the function f + ˜
IC over all of Rn
. Indeed, the function f + ˜
IC
is (by our convention) f restricted to the set C.
In a similar way we can extend a concave function by defining it to be −∞
outside its domain.
Teorema Condiciones de convexidad de segundo orden Una función f W Rn
! R que
tiene derivadas parciales de segundo orden —es decir, existe su matriz Hessiana, r2
f .x/,
para todo x 2 Rn
—, es convexa si para todo x 2 Rn
¤ 0 se cumple que xT
r2
f .x/x  0,
es decir, la Hessiana es semidefinida positiva.
 Ejemplo la función f W R2
! R, f .x; y/ D x2
=y, y  0
72 3 Convex functions
x
y
f
(x,
y
)
−2
0
2
0
1
2
0
1
2
Figure 3.3 Graph of f(x, y) = x2
/y.
9/63
Teorema Condiciones necesarias de mínimo local de primer orden Si x
es un mínimo
local de f W Rn
! R, se cumple que
rf .x
/ D 0:
 Un punto x en el que rf .x/ D 0 se denomina punto estacionario de f .x/.
Teorema Condiciones suficientes de mínimo local de segundo orden Si x
es un punto
estacionario y r2
f .x
/ es definida positiva, x
es un mínimo local.
 IMPORTANTE Cualquier mínimo local de una función convexa es un mínimo
global.
10/63
 Se pueden dar distintos casos de mínimos (locales o globales).
s
the variation of the f-value along the line, this “looks like” a local minimum,
whereas there exists another line through xs, “indicating” a local maximizer.
a) minimum b) maximum c) saddle point
Figure 1.5: With a 2-dimensional x we see surfaces
z = f(x) near a stationary point.
1. El primero es un mínimo (local o global) y r2
f .x
/ es definida positiva.
2. El segundo es un máximo y r2
f .x
/ es definida negativa.
3. El tercero, un punto de silla: se da cuando r2
f .x
/ es semidefinida
positiva, semidefinida negativa o indefinida.
 Si r2
f .x
/ D 0 se necesita más información de derivadas parciales de tercer
orden para determinar los mínimos locales.
0
5
10
15
20
25
0
10
20
30
−10
−5
0
5
10
11/63
Obtención de la solución
Métodos de dirección de descenso
 Siguen un procedimiento iterativo que hace descender el valor de la función,
f .xkC1/  f .xk/ ; en sucesivos puntos k de ese proceso mediante el cálculo
de unas direcciones de descenso en las que moverse con este objetivo.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
13/81
Métodos de dirección de descenso
4 Siguen un procedimiento iterativo que hace descender la función,
f .xkC1/  f .xk/ ; en sucesivos puntos k del proceso mediante
el cálculo de una dirección de descenso en la que moverse con este
objetivo.
x(k)
p(k)
αkp(k)
x(k+1)
xk
˛pk
pk
x +1
4 Se diferencian unos de otros en la forma de calcular p.
k
Esquema algorítmico general:
Dados Un x WD x0 y una tol. Hacer found WD false
while (not found) and (k  kmax)
Calcular dirección de descenso p
if (p no existe) or (tol)
found WD true
else
Calcular ˛: amplitud del paso en p
x WD x C ˛p
end
k WD k C 1
end
12/63
Amplitud de paso (linesearch)
 Supongamos de momento ya calculada la dirección de descenso p en un punto
del proceso; un asunto esencial en ese punto es ¿cuánto moverse a lo largo de
esa dirección? ¿Qué paso dar?
 Para calcular ese paso, hay que minimizar en ˛ la función f .x C ˛p/, es decir
minimizar
˛
'.˛/ D f .x C ˛p/:
 Esta minimización puede hacerse estrictamente, o de una forma aproximada,
esperándose en este caso un coste menor en número de operaciones y tiempo.
 Si se opta por la inexacta, o truncada, hay que garantizar con un indicador que
f .x C ˛p/  f .x/;
es decir que la función decrezca suficientemente a lo largo de p.
13/63
 Hay que evitar pasos muy largos, como en la parte izquierda de la figura con la
función x2
, donde, las direcciones pk D . 1/kC1
y los pasos ˛k D 2 C 3=2kC1
producen el efecto indicado, desde x0 D 2.
ng a Step Length αk
nges in finding a good αk are both in avoiding that
ngth is too long,
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
e function f(x) = x2 and the iterates xk+1 = xk + αkpk generated
t directions pk = (−1)k+1 and steps αk = 2+3/2k+1 from x0 = 2)
or too short,
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
(the objective function f(x) = x2 and the iterates xk+1 = xk + αkpk generated by
directions pk = −1 and steps αk = 1/2k+1 from x0 = 2).
 También muy cortos, como las direcciones pk D 1 en x2
y los pasos
˛k D 1=2kC1
, partiendo también de x0 D 2, que producen lo que se ve.
14/63
 Del desarrollo de Taylor de la función a minimizar se tiene que
'.˛/ D f .x C ˛p/ C ˛pT
rf .x C ˛p/ C O.˛2
/
y de él que, en ˛ D 0, '0
.0/ D pT
rf .x/.
 La figura que sigue muestra una posible evolución de '.˛/. La expresión de
'0
.0/ es la recta A : tangente a f .x C ˛p/ en ˛ D 0. La recta D es '.0/.
108
(a)
α1
f ( )
xk
A C
B
( )
α2
α
f ( )
xk
θ
f .x/
˛1 ˛2 ˛
f .xC /
˛p
D
 El descenso implica simultáneamente que '.˛/  '.0/ y que '.˛/  '0
.0/.
15/63
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
22/78
108
(a)
α1
f ( )
xk
A C
B
( )
α2
α
(b)
α1
f ( )
xk
C B
f ( )
xk+1
α2 α
α0
α *
θ
αL
Figure 4.14. (a) The Goldstein tests. (b) Goldstein tests satisfied.
estimate ᾰ0 can be determined by using interpolation. On the other hand, if
Eq. (4.56) is violated, α0  α1 as depicted in Fig. 4.15b, and since α0 is likely
to be in the range αL  α0  α∗, ᾰ0 can be determined by using extrapolation.
If the value of f(xk +αdk) and its derivative with respect to α are known for
α = αL and α = α0, then for α0  α2 a good estimate for ᾰ0 can be deduced
f .x/
˛1 ˛2 ˛
f .xC /
˛p
D
 La recta B es la ecuación
f .x C ˛p/ D f .x/ C %˛rf .x/T
p; 0  %  1
2
;
cuya pendiente en la zona sombreada puede variar entre 0 y 1
2
˛rf .x/T
p.
Representa una fracción, %, (de 0 a 1
2
) de la reducción que promete la
aproximación de Taylor de primer orden en x.
 La recta C es f .x C ˛p/ D f .x/ C .1 %/˛rf .x/T
p cuya pendiente abarca
la zona sombreada desde rf .x/T
p a 1
2
˛rf .x/T
p.
16/63
 Los criterios de Armijo y Goldstein de descenso suficiente dicen que el
˛ 2 .0; 1/ que se escoja debe ser tal que, para 0  %  1
2
   1, por
ejemplo % D 0;0001 y  D 0;9,
f .x C ˛p/  f .x/ C %˛rf .x/T
p Armijo
y
f .x C ˛p/  f .x/ C ˛rf .x/T
p Goldstein
 Otro criterio es el de Wolfe, con dos condiciones también. La primera es igual a
la de Armijo, la segunda
rf .x C ˛p/T
p  rf .x/T
p:
También denominada de curvatura. Indica que la pendiente de la función debe
ser menor en el nuevo punto.
17/63
 El procedimiento numérico inexacto más extendido para calcular la amplitud de
paso ˛ se conoce como backtracking.
 Comienza con un paso completo, ˛ D 1, y lo va reduciendo mediante un factor
constante, ˇ  ˛, ˇ 2 .0; 1/, hasta que se cumplan los criterios de Armijo y
Goldstein, o uno de los dos: preferentemente el de Armijo.
 Funciona sólo si f .x C ˛p/0
˛D0 D rf .x/T
p  0 (dirección de descenso).
18/63
Método de la dirección del gradiente o de la máxima
pendiente
 Consideremos el desarrollo en serie de Taylor de f .x/ hasta primer orden:
f .x C p/ D f .x/ C rf .x/T
p C O kpk2

:
 La dirección p en x es una dirección de descenso si
rf .x/T
p  0:
 El descenso relativo de la función en p es
f .x/ f .x C p/
kpk
D
rf .x/T
p
kpk
D krf .x/k cos 
donde  es el ángulo que forman p y rf .x/.
19/63
 El descenso cualitativo será máximo cuando  D : donde cos./ D 1:
cuando la dirección de descenso es
p D rf .x/
denominada de máxima pendiente.
3 Line search methods
Iteration: xk+1 = xk + αkpk, where αk is the step length (how far to move along pk), αk  0; pk
is the search direction.
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
1
1.5
2
2.5
3
xk
pk
Descent direction: pT
k ∇fk = kpkk k∇fkk cos θk  0 (angle  π
2
with −∇fk). Guarantees that f
can be reduced along pk (for a sufficiently smooth step):
f(xk + αpk) = f(xk) + αpT
k ∇fk + O(α2
) (Taylor’s th.)
 f(xk) for all sufficiently small α  0
• The steepest descent direction, i.e., the direction along which f decreases most rapidly, is fig. 2.5
fig. 2.6
pk = −∇fk. Pf.: for any p, α: f(xk + αp) = f(xk) + αpT
∇fk + O(α2
) so the rate of
change in f along p at xk is pT
∇fk (the directional derivative) = kpk k∇fkk cos θ. Then
minp pT
∇fk s.t. kpk = 1 is achieved when cos θ = −1, i.e., p = −∇fk/ k∇fkk.
This direction is ⊥ to the contours of f. Pf.: take x + p on the same contour line as x. Then, by Taylor’s th.:
f(x + p) = f(x) + pT
∇f(x) +
1
2
pT
∇2
f(x + ǫp)p, ǫ ∈ (0, 1) ⇒ cos ∠(p, ∇f(x)) = −
1
2
pT ∇2f(x + ǫp)p
kpk k∇f(x)k
−
−
−
−
−
→
kpk→0
0
but kpk → 0 along the contour line means p/ kpk is parallel to its tangent at x.
• The Newton direction is pk = −∇2
f−1
k ∇fk. This corresponds to assuming f is locally
quadratic and jumping directly to its minimum. Pf.: by Taylor’s th.:
f(xk + p) ≈ fk + pT
∇fk +
1
2
pT
∇2
fkp = mk(p)
which is minimized (take derivatives wrt p) by the Newton direction if ∇2
fk is pd. (✐ what
happens if assuming f is locally linear (order 1)?)
In a line search the Newton direction has a natural step length of 1.
• For most algorithms, pk = −B−1
k ∇fk where Bk is symmetric nonsingular:
6
 Algoritmo de máxima pendiente.
Dados Un x WD x0 y una tol. Hacer found WD false
while (not found) and (k  kmax)
Calcular dirección de descenso p D g D rf .x/
if (p no existe) or (tol)
found WD true
else
Calcular amplitud de paso ˛ con backtracking
x WD x C ˛p
end
k WD k C 1
end
20/63
 La convergencia es lineal.
 Ejemplo Resolvamos minimizar
x2R2
ex1C3x2 0;1
Cex1 3x2 0;1
C e x1 0;1
.
function [x,f] = Maxima_pendiente_unc(fun,x0)
% Método de la máxima pendiente
rho = 0.1; beta = 0.5; % Parámetros y partida
f1=0; maxit = 100; x = x0;
for i=1:maxit % Proceso iterativo
[f,g] = fun(x);
if abs(f-f1)  1e-10, break, end
p = -g; alpha = 1;
for k=1:10 % Amplitud de paso con backtracking
xnew = x+alpha*p; fxnew = fun(xnew);
if fxnew  f+alpha*rho*g’*p
break
else alpha = alpha*beta;
end
end
x = x + alpha*p; f1=f;
fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8en’,i,x,f,alpha);
end
end
function [f g]= objfun_min1(x)
A = [1 3; 1 -3; -1 0]; b = -0.1*[1; 1; 1];
f = sum(exp(A*x+b)); if nargout2, return, end
g = A’*exp(A*x+b);
end
21/63
 Su ejecución obtiene:
 [x f]=Maxima_pendiente_unc(@objfun_min1,[-1;1])
1 -1.26517900e+000 -2.50497831e-001 9.16207023e+000 6.25000000e-002
2 -6.29000734e-001 6.51924176e-002 3.86828053e+000 2.50000000e-001
3 -4.50514899e-001 -7.72284882e-002 2.68052760e+000 2.50000000e-001
4 -4.21089848e-001 2.38719166e-002 2.60419641e+000 1.25000000e-001
5 -3.97610304e-001 -8.05335008e-003 2.56942254e+000 1.25000000e-001
6 -3.65030711e-001 1.39821003e-002 2.56295544e+000 2.50000000e-001
7 -3.59263955e-001 -5.78404615e-003 2.56080796e+000 1.25000000e-001
8 -3.55227870e-001 2.43800662e-003 2.55966300e+000 1.25000000e-001
9 -3.52463501e-001 -1.04150522e-003 2.55939647e+000 1.25000000e-001
10 -3.48696568e-001 1.93956544e-003 2.55931730e+000 2.50000000e-001
11 -3.48020112e-001 -8.46703041e-004 2.55929408e+000 1.25000000e-001
12 -3.47557873e-001 3.70439501e-004 2.55927350e+000 1.25000000e-001
13 -3.47243091e-001 -1.62316050e-004 2.55926873e+000 1.25000000e-001
14 -3.47028931e-001 7.11957301e-005 2.55926742e+000 1.25000000e-001
15 -3.46737604e-001 -1.33695923e-004 2.55926699e+000 2.50000000e-001
16 -3.46685147e-001 5.87394995e-005 2.55926683e+000 1.25000000e-001
17 -3.46649462e-001 -2.58117184e-005 2.55926673e+000 1.25000000e-001
18 -3.46625190e-001 1.13436901e-005 2.55926671e+000 1.25000000e-001
19 -3.46592176e-001 -2.13150939e-005 2.55926670e+000 2.50000000e-001
20 -3.46586231e-001 9.36927894e-006 2.55926670e+000 1.25000000e-001
21 -3.46582187e-001 -4.11844758e-006 2.55926670e+000 1.25000000e-001
22 -3.46579437e-001 1.81036718e-006 2.55926670e+000 1.25000000e-001
23 -3.46577566e-001 -7.95799575e-007 2.55926670e+000 1.25000000e-001
x =
-0.346577566436640
-0.000000795799575
f =
2.559266696682093
22/63
 Gráficas del comportamiento del proceso iterativo.
0 5 10 15 20 25
10
−15
10
−10
10
−5
10
0
10
5
inexacta: backtracking
line search exacta: bisecc.
k
error
El cálculo de la amplitud se hace mediante backtracking y exactamente, éste
por el método de la bisección.
23/63
 Utilizando la rutina fminunc de Matlab, se tendría lo que sigue.
» x0=[-1;1];
» options = optimset(’Display’,’iter’,’GradObj’,’on’,’LargeScale’,’off’);
» [x,fval,exitflag,output] = fminunc(@objfun_min1,x0,options)
First-order
Iteration Func-count f(x) Step-size optimality
0 1 9.16207 20
1 2 3.57914 0.0499801 2.5
2 3 3.31537 1 2.11
3 4 2.60267 1 0.548
4 5 2.56573 1 0.349
5 6 2.55954 1 0.0613
6 7 2.55928 1 0.011
7 8 2.55927 1 0.000144
8 9 2.55927 1 1.88e-007
Optimization terminated: relative infinity-norm of gradient less than options.
TolFun.
x =
-0.3466
-0.0000
fval =
2.5593
exitflag =
1
output =
iterations: 8
funcCount: 9
stepsize: 1
firstorderopt: 1.8773e-007
algorithm: ’medium-scale: Quasi-Newton line search’
message: [1x85 char]
 La función objetivo y su gradiente están en
function [f g]= objfun_min1(x)
% f(x) = sum(exp(A*x+b))
A = [1 3; 1 -3; -1 0]; b = -0.1*[1;1;1];
f = sum(exp(A*x+b));
g = A’*exp(A*x+b);
end
24/63
Método de Newton
 Consideremos el desarrollo de Taylor de f .x/ hasta segundo orden de derivadas:
f .x C p/ D f .x/ C rf .x/T
p C
1
2
pT
r2
f .x/ p C O kpk3

;
donde g D rf .x/ es el vector gradiente y la matriz
H D r2
f .x/ D
2
6
6
6
6
4
@2
f .x/
@2x1
@2
f .x/
@x1@x2
   @2
f .x/
@x1@xn
@2
f .x/
@x2@x1
@2
f .x/
@2x2
   @2
f .x/
@x2@xn
:
:
:
:
:
: ::: :
:
:
@2
f .x/
@xn@x1
@2
f .x/
@xn@x2
   @2
f .x/
@2xn
3
7
7
7
7
5
,
la Hessiana.
 La idea:
Newton’’s Method
!
Newton’’s Method
!
Newton’’s Method
!
Newton’’s Method
25/63
 La condición necesaria de óptimo de ese desarrollo, rf .x
/ D 0, conduce a la
ecuación
rf .x/ C r2
f .x/p D g C H p D 0.
Sistema lineal cuya solución es la dirección de Newton hacia el óptimo.
 Si la matriz H D r2
f .x/ es definida positiva (xT
H x  0 para cualquier
x ¤ 0), la dirección de Newton es una dirección de descenso pues
0  pT
H p D pT
g;
cumpliéndose así que pT
g  0, como dedujimos.
26/63
 Algoritmo de Newton para minimizar f .x/ y script de Matlab:
Dados Un x WD x0 y una tol. Hacer found WD false
while (not found) and (k  kmax)
Calcular dirección de descenso; resolver H p D g
if (p no existe) or (tol)
found WD true
else
Calcular la amplitud de paso ˛ con backtracking
x WD x C ˛p
end
k WD k C 1
end
function [x,f] = Newton_unc_1(fun,x)
% Método de Newton
rho = 0.1; beta = 0.5; % Parámetros de line search
maxit = 100;
for i=1:maxit % Proceso interativo
[f,g,H] = fun(x);
p = -Hg;
if abs(p’*g)  1e-8, break, end
alpha = 1;
for k=1:50 % Cálculo inexacto amplitud de paso
xnew = x+alpha*p;
fxnew = fun(xnew);
if fxnew  f+alpha*rho*g’*p, break
else alpha=alpha*beta;
end
end
x = x + alpha*p;
fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8en’,i,x,f,alpha);
end
end
function [f g H] = objfun_min2(x)
A = [1 3; 1 -3; -1 0]; b = -0.1*[1; 1; 1];
f = sum(exp(A*x+b)); if nargout2, return, end
g = A’*exp(A*x+b); H = A’*diag(exp(A*x+b))*A;
end
27/63
 Para resolver otra vez minimizar
x2R2
ex1C3x2 0;1
C ex1 3x2 0;1
C e x1 0;1
.
 [x f]=Newton_unc(@objfun_min2,[-1;1])
1 -5.23625188e-002 3.53998022e-001 9.16207023e+000 1.00000000e+000
2 -1.05634526e-001 1.05820897e-001 3.73378771e+000 1.00000000e+000
3 -3.18485379e-001 2.52139713e-002 2.71665315e+000 1.00000000e+000
4 -3.45138214e-001 7.18724132e-004 2.56404324e+000 1.00000000e+000
5 -3.46572427e-001 1.03191597e-006 2.55927231e+000 1.00000000e+000
x =
-0.346572427027644
0.000001031915967
f =
2.559266696666079
La convergencia del método y el
error vs iteración son estos:
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
10
−15
10
−10
10
−5
10
0
10
5
k
error
 Si la Hessiana es definida positiva, la convergencia del método de Newton es
cuadrática. Funciona especialmente bien en las proximidades del óptimo o un
punto estacionario.
28/63
Combinación de máxima pendiente y Newton
 La dirección de Newton es siempre de descenso si la matriz Hessiana es definida
positiva.
 Un algoritmo híbrido de máxima pendiente y Newton, para puntos de arranque
lejanos donde no se de esa condición de la Hessiana, podría mejorar las
prestaciones del método de Newton.
if H .x/ es definida positiva
p D pN
else
p D pmp
end
x WD x C ˛p
29/63
 En Matlab:
function [x f i] = Newton_mp(fun,x)
% Método híbrido Newton-máxima pendiente
global h
rho = 0.1; beta = 0.5; % Parámetros de line search
maxit = 100; h=sqrt(eps);
for i=1:maxit % Proceso iterativo
[f g H] = fun(x);
[R npd] = chol(H); % Cholesky comprueba si H es definida positiva
if ~npd
p = -R(R’g); % Dirección de Newton_mp
else
p = -g; % Dirección de máxima pendiente
end
if abs(p’*g)1e-8, break, end
alpha = 1;
for k=1:10 % Backtracking de amplitud de paso
xnew = x+alpha*p;
fxnew = fun(xnew);
if fxnew  f+alpha*rho*g’*p, break
else alpha=alpha*beta;
end
end
x = x + alpha*p;
fprintf(’%3.0f %13.5e %13.5e %13.5e %13.5e %2.0fn’,i,x,f,alpha,npd);
end
end
function [f g H] = objfun_min3(x)
% Función de Rosenbrock: 100(x2-x1^2)^2+(1-x1)^2
global h
f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2; if nargout2, return, end
g = [-200*(x(2)-x(1)^2)*2*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)];
if nargout3, return, end
x1=[x(1)+h;x(2)]; [f1 g1]=objfun_min3(x1);
H(1:2,1)=(g1-g)/h;
x1=[x(1);x(2)+h]; [f1 g1]=objfun_min3(x1);
H(1:2,2)=(g1-g)/h;
end
30/63
 Si lo utilizamos para resolver la complicada función de Rosenbrock
minimizar
x2R2
100 x2 x2
1
2
C .1 x1/2
:
−0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
x
1
x
2
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
4
4 4
4
4
4
4
4
5
5
5
5
5
5 5
5
10
10
10
10
10
10
10
15
15
15
15
15
15
15
Figure 5: Contour plot of Rosenbrock’s banana function.
where K is the cone of 6 × 6 PSD matrices. Following the terminology introduced in
[7, 8], the above matrix is referred to as the moment, or measure matrix associated with
the LMI relaxation. Because the above moment matrix contains relaxations of monomials
of degree up to 2+2=4, it is referred to as the second-degree moment matrix. The above
upper-left 3x3 submatrix contains relaxations of monomials of degree up to 1+1=2, so it
is referred to as the first-degree moment matrix.
Now replacing the monomials in the criterion by their relaxed variables, the first LMI
relaxation of Rosenbrock’s banana function minimization reads
max −1 + 2y10 − y20 − 100y02 + 200y21 − 100y40
 
function [f g H] = objfun_min3(x)
% Función de Rosenbrock: 100(x2-x1^2)^2+(1-x1)^2
global h
f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2; if nargout2, return, end
g = [-200*(x(2)-x(1)^2)*2*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)];
if nargout3, return, end
x1=[x(1)+h;x(2)]; [f1 g1]=objfun_min3(x1);
H(1:2,1)=(g1-g)/h;
x1=[x(1);x(2)+h]; [f1 g1]=objfun_min3(x1);
H(1:2,2)=(g1-g)/h;
end
31/63
 Partiendo de un punto alejado se obtiene esto.
 [x f k] = Newton_mp(@objfun_min3,[0;15])
1 1.56250e-002 -8.43750e+000 2.25010e+004 7.81250e-003 1
2 1.62080e-002 2.62358e-004 7.12052e+003 1.00000e+000 0
3 2.62139e-001 8.23454e-003 9.67847e-001 2.50000e-001 0
4 3.18480e-001 9.82550e-002 9.10251e-001 1.00000e+000 0
5 5.26915e-001 2.32607e-001 4.65478e-001 5.00000e-001 0
6 5.74193e-001 3.27462e-001 4.26601e-001 1.00000e+000 0
7 7.21323e-001 4.97541e-001 1.81811e-001 5.00000e-001 0
8 7.71508e-001 5.92706e-001 1.29485e-001 1.00000e+000 0
9 8.47484e-001 7.11197e-001 5.28430e-002 5.00000e-001 0
10 9.10865e-001 8.25658e-001 2.82056e-002 1.00000e+000 0
11 9.60290e-001 9.19713e-001 9.55884e-003 1.00000e+000 0
12 9.86967e-001 9.73391e-001 2.17363e-003 1.00000e+000 0
13 9.98376e-001 9.96624e-001 2.20516e-004 1.00000e+000 0
14 9.99959e-001 9.99915e-001 4.33199e-006 1.00000e+000 0
x =
0.999958778201435
0.999915052848790
f =
2.326866095161381e-009
k =
15
32/63
Métodos de Newton Amortiguado y de
Región de Confianza
 Supongamos que un modelo M.p/ representa bien1
el comportamiento de la
función f que queremos minimizar en el entorno de un punto, es decir,
f .x C p/ ' M.p/
def
D f .x/ C pT
c C
1
2
pT
Bp;
donde c 2 Rn
y la matriz B 2 Rnn
es simétrica.
 La idea es utilizar esos modelos para calcular direcciones de descenso que se
puedan modular a voluntad, y con amplitudes de paso D 1.
Estudiaremos dos variantes.
1
Tal modelo puede ser perfectamente el desarrollo en serie de Taylor hasta segundas derivadas, o una apro-
ximación adecuada.
33/63
 La primera se conoce como Newton amortiguado. Calcula en cada punto del
proceso iterativo un paso
pNa
def
D mK
ın
p

M.p/ C
1
2
pT
p

;
donde  es un parámetro de amortiguación que, aplicado como se indica,
penaliza pasos amplios.
 La segunda, la región de confianza,
prc
def
D mK
ın
kpk  
M.p/;
pues se restringe el modelo a una región donde se confía que plasme bien las
características del problema.
34/63
 Si la función decrece convenientemente en cualquiera de estas direcciones, se
hace x C p como el nuevo punto del procedimiento y se adapta  o .
 Si no decrece lo suficiente, y no se ha llegado al óptimo, se modifica  o  para
que en la próxima iteración el avance hacia el óptimo mejore.
a small reduction in f , even if the optimal steplength is used. The trust-region meth
steps to the minimizer of mk within the dotted circle (shown), yielding a more significa
reduction in f and better progress toward the solution.
In this chapter, we will assume that the model function mk that is used at ea
iterate xk is quadratic. Moreover, mk is based on the Taylor-series expansion of f arou
k
contours of
contours of f
Trust region step
Trust region
m
Line search direction
Región de confianza
Paso de Newton
Contornos del modelo M.p/
Contornos de f .x/
Paso de región de
confianza
35/63
 La calidad del modelo elegido se evalúa mediante la ganancia
% D
f .x/ f .x C p/
M.0/ M.p/
;
es decir, la relación entre lo que decrece la función desde x y lo que preveía el
modelo que lo haría.
 Con el modelo región de confianza, si %  1
4
, la ganancia es pequeña y se
deberían reducir los pasos, por ejemplo a la mitad, mientras que si %  3
4
se
podrían aumentar.
if %  0;25
 WD =2
elseif %  0;75
 WD mK
ax f; 3  kpkg
end
Los factores 2 y 3 de esta estrategia no deben hacer oscilar la región .
36/63
 Si con el modelo Newton amortiguado % es pequeño, se debería aumentar el
parámetro de amortiguación, , aumentando así la penalización por dar pasos
grandes. Un % grande, por el contrario, indicará que M.p/ es una buena
aproximación de f .x C p/ y se puede reducir .
if %  0;25
 WD   2
elseif %  0;75
 WD =3
end
 Otra estrategia para  es:
if %  0
 WD   mK
ax
˚1
3
; 1 .2% 1/3
else
 WD   2
end
37/63
Newton amortiguado. Cálculo de la dirección
 Se calcula determinando
.p/ D mK
ın
p

M.p/ C
1
2
pT
p

:
 La condición necesaria de mínimo, r .p/ D 0, hace que la dirección pNa sea
la solución de
0
.h/ D M0
.h/ C p D 0:
lo que es equivalente, de acuerdo con la definición de M.p/ a
.B C I/ pNa D c:
Si  es suficientemente grande, la matriz simétrica B C I es definida
positiva, por lo que pNa es un mínimo del modelo M.p/.
38/63
 En Newton amortiguado B D H y c D g, y el sistema es
.H C I/ pNa D g W
8
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ

ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
:
Si  es suficientemente grande,
pNa 
1

g;
por lo que la dirección es próxima a la de
máxima pendiente.
Si  es pequeño, la dirección es casi la de
Newton.
39/63
 Algoritmo de Newton amortiguado para minimizar f .x/ y en Matlab::
Dados Un x WD x0 y tol. Hacer  D 1;  D 2 y found WD f
while (not found) and (k  kmax)
Resolver dirección de descenso .H C I/ p D g
if (p no existe) or (tol)
found WD true
else
Calcular % D .f .x/ f .x C p// = .M.0/ M.p//
if %  0
 WD   mK
ax
˚1
3 ; 1 .2% 1/3
x WD x C p
else
 WD   2
end
end
k WD k C 1
end
function [x f k] = Newton_amortiguado(fun,x)
% Método de Newton amortiguado con paso completo
global h
k=0; kmax=500; eps1=1e-9; eps2=1e-12; n=length(x); h=eps1;
[f g H] = fun(x); ng = norm(g,inf); mu = 1; found = ng=eps1;
while ~found
posdef = 0;
while ~posdef
[R p] = chol(H+mu*eye(n)); % Se comprueba si H es def. positiva
if p, mu=2*mu; else posdef = 1; end
end
p = -R(R’g); nh = norm(p); % Cálculo de paso
if norm(g,inf)eps1 || nh = eps2*(eps2 + norm(x)), found=2; % Óptimo
else % Modificar región de confianza
xnew = x + p; dL = -p’*g-p’*(H*p)/2;
[fn gn Hn] = fun(xnew); df = f-fn; r=df/dL;
if r0
x = xnew; f = fn; g = gn; H = Hn;
ng = norm(g,inf);
mu = mu*max(1/3,1-(2*r-1)^3);
else
mu = mu*2;
end
k = k + 1;
if ng = eps1, found = 1; elseif k  kmax, found = 3; end
fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8en’,k,x,f,mu);
end
end
end
40/63
 Resolvamos con este algoritmo
minimizar
x2R2
0;5x2
1.x2
1=6 C 1/ C x2 arctan.x2/ 0;5 ln.x2
2 C 1/
 [x f k] =Newton_amortiguado(@fun5_2,[2;2])
2 1.22222222e+000 1.07737607e+000 1.43392805e+000 3.33333333e-001
3 5.74640142e-001 4.41028668e-002 1.75164488e-001 1.11111111e-001
4 1.32066691e-001 4.36656594e-003 8.75568971e-003 3.70370370e-002
5 6.09495146e-003 1.55898129e-004 1.85864837e-005 1.23456790e-002
6 7.44750479e-005 1.90119424e-006 2.77507370e-009 4.11522634e-003
7 3.05225879e-007 7.79177968e-009 4.66421303e-014 1.37174211e-003
8 4.18117642e-010 1.06736708e-011 8.75251085e-020 4.57247371e-004
x =
1.0e-009 *
0.418117641894218
0.010673670797581
f =
8.752510847988606e-020
k =
8
function [f g H]=fun5_2(x)
f=0.5*x(1)^2*(x(1)^2/6+1)+x(2)*atan(x(2))-0.5*log(x(2)^2+1);
g=[x(1)^3/3+x(1); atan(x(2))];
H(1,1)=x(1)^2+1;
H(1,2)=0;
H(2,1)=0;
H(2,2)=1/(1+x(2)^2);
end
41/63
Región de confianza. Cálculo de la dirección
Teorema El vector p
es la solución de
prc
def
D mK
ın
kpk
M.p/
def
D f .x/ C gT
p C
1
2
pT
Bp
si y sólo si p
es factible y existe un escalar   0 tal que se cumple que
1. .B C I/p
D g,
2. . kp
k/ D 0 y
3. .B C I/ es semidefinida positiva.
B es la matriz Hessiana, r2
f .x/, o una aproximación.
 Este es un problema de optimización con condiciones. La variable  es el
multiplicador de Lagrange de la condición que impone la región de confianza.
42/63
 La segunda condición, de complementariedad, establece que  D 0 o
kp
k D .
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
49/80
λ is allowed to take a positive value. Note from (4.8a) that
λp∗
 −Bp∗
− g  −∇m(p∗
).
m
1
contours of
*3
p
∆
∆
∆
2
3
p *2
p
*1
Figure 4.2 Solution of trust-region subproblem for different radii 1
, 2
, 3
.
Contornos del modelo M.p/
ndica que cuando p
está estrictamente dentro de la región de
onfianza (como es el caso en la figura de  D 1
), se debe
umplir que  D 0 y por tanto que Bp
D g, siendo B
emidefinida positiva.
Indica que cuando p está estrictamen-
te dentro de la región de confianza (co-
mo es el caso en la figura de  D 1),
se debe cumplir que  D 0 y por tanto
que Bp D g, siendo B semidefinida
positiva.
 Cuando  D 2
y  D 3
, se tiene que kp
k D  y  será  0.
 De la primera condición se deduce que p
D Bp
g D rM.p
/. Es
decir, cuando   0, la solución p
es colineal con el negativo del gradiente de
M (máxima pendiente) y perpendicular a sus perfiles de contorno, como en la
figura.
43/63
 Las soluciones de los subproblemas M.p/ no tienen por qué ser exactas. Existen
varias formas de aproximarlas:
Punto de Cauchy: Mínimo a lo largo de p D g, acotada a 
Dogleg (pata de perro): si B es definida positiva
Minimización en un subespacio de dimensión 2: Si B es indefinida
Steihaug: Si B es simétrica
Otras: : :
44/63
Punto de Cauchy
 La dirección es la solución del modelo Mk.p/ de máxima pendiente:
pc
k D k
k
kgkk
gk;
donde
k D
8

:
1 si gT
k Bgk  0
mK
ın

kgkk3
.kgT
k Bkgk/
; 1

si gT
k Bgk  0:
k
first. In summary, we have
pC
k  −τk
k
gk
gk, (4.11)
where
τk 

1 if gT
k Bk gk ≤ 0;
min

gk3
/(k gT
k Bk gk), 1

otherwise.
(4.12)
Figure 4.3 illustrates the Cauchy point for a subproblem in which Bk is positive
definite. In this example, pC
k lies strictly inside the trust region.
The Cauchy step pC
k is inexpensive to calculate—no matrix factorizations are
required—and is of crucial importance in deciding if an approximate solution of the
trust-region subproblem is acceptable. Specifically, a trust-region method will be globally
—
k
C
mk
gk
Trust region
contours of
p
Contornos del modelo Mk.p/
Región de confianza
gk
pc
k
45/63
DogLeg
 Hemos visto que si la matriz B del modelo M.p/ es definida positiva, el mínimo
de éste hace pB
D B 1
g. Es decir, cuando   kpB
k, p
./ D pB
.
 Si  es pequeña con respecto al paso pB
, la condición kpk   hace que el
término cuadrático del modelo M.p/ tenga poco efecto en su solución.
En este caso, se puede aproximar p
./  
g
kgk
:
 Para otros valores la solución p
./ sigue una trayectoria curvilínea:
H A P T E R 4 . T R U S T - R E G I O N M E T H O D S
)
∆
pB full step
( )
—
g)
pU
—
g
Trust region
p
Optimal trajectory
dogleg path
unconstrained min along
(
(
Trayectoria óptima de p./
Región de confianza
g
pB
(paso completo)
pU
: mínimo en la dirección g
dirección DogLeg
El método DogLeg reemplaza la trayectoria curvilínea
por dos segmentos de recta. El primero hasta el míni-
mo de M.p/ en la dirección de máxima pendiente
pU
D
gT g
gT Bg
g:
46/63
 El segundo desde pU
hasta pB
. En conjunto a esta trayectoria se le denomina
Q
p./, con  2 Œ0; 2, donde Q
p./ D

pU 0    1
pU C . 1/ pB pU

1    2:
 La intersección de esta trayectoria con la región de confianza es el punto que se
busca; concretamente el  que resuelve la ecuación
pU
C . 1/ pB
pU
 2
D 2
:

Algoritmo de minimización de una función median-
te el método de región de confianza DogLeg con
modelo de Newton.
Dados Un x WD x0 y tol. Hacer  D 1 y found WD false
while (not found) and (k  kmax)
Resolver H pN
D g
if pN
 , x WD x C pN
else pmp
D .gT
g=gT
H g/g
if pmp
 , x WD x C pc
else
Calcular dir. DogLeg e intersección 
x WD x C pmp
C .pN
pmp
/
end
end
Calcular % D .f .x/ f .x C p// = .M.0/ M.p//
if %  0;25,  WD =2
elseif %  0;75,  WD mK
axf  2; maxg
end
k WD k C 1, if found, exit
end
47/63
 Un código de Matlab:
function [xc fc] = Dogleg_UBC_yo(fun,x0)
% dogleg.m -- Método de Región de Confianza con modelo Newton
eps1=100*sqrt(eps); eps2=sqrt(eps); Kmax=200; Delta=0.5; Dmax=100;
xstring = ’’;
for jj=1:length(x0)
xstring = [xstring,’x_k(’,int2str(jj),’) ’];
end
fprintf([’n k %s f(x_k) Delta |dx|/Del ro ’,...
’ e_1 e_2n’],xstring);
xc = x0; [fc gc Hc] = fun(xc);
disp([’ 0’, sprintf(’ %12.4e’,[xc’,fc]),sprintf(’ %10.2e’,Delta)]);
for k=1:Kmax % Modelo Newton: -(gc’*pN + 0.5*pN’*Hc*pN);
pN = - Hcgc; % Dirección de Newton
pNlen = (pN’*pN)^0.5; gHg = gc’*Hc*gc;
if pNlen = Delta % Punto Newton dentro región
xt = xc + pN;
else % Fuera: encontrar el mínimo mediante máxima
% pendiente del Model Newton
pSD = -(gc’*gc)/gHg*gc;
pSDlen = (pSD’*pSD)^0.5;
if pSDlen=Delta % Newton y mp fuera región: usa punto Cauchy
xt = xc - Delta*gc/(gc’*gc)^0.5;
else % mp dentro región y Newton fuera: usa DogLeg
% en límite región de linea uniéndolos
pN_pSD = pN-pSD;
a = pN_pSD’*pN_pSD; b = 2*pN_pSD’*pSD; c = pSD’*pSD - Delta^2;
t = (-b+(b^2-4*a*c)^0.5)/2/a;
xt = xc + pSD + t*pN_pSD;
end
end
[fn gn Hn] = fun(xt); % Nuevo punto obtenido en Reg. Con.
dx = xt - xc; df = fn - fc;
redfun = -df; % Reducción obtenida en función
repred = -gc’*dx-0.5*dx’*Hc*dx; % Reducción predicha modelo Newton
rho = redfun/repred; % Ganancia
e1 = max(abs(pN’)./max([abs(xc’);eps2*ones(size(xc’))]));
e2 = max((abs(gn).*abs(xt))/ max([abs(fn),eps2]));
if rho0 % Buena ganancia; aceptar punto
xn=xt; xc=xt; fc=fn; gc=gn; Hc=Hn;
if rho0.25, Delta = 0.25*norm(dx); end
if rho0.75  norm(dx,2)((1-eps)*Delta),
Delta = min([2*Delta;Dmax]);
end
disp([sprintf(’%3d’,k), sprintf(’ %12.4e’,[xn’,fn]),...
sprintf(’ %10.2e’,Delta),sprintf(’ %6.4f’,norm(dx)/Delta),...
sprintf(’ %7.3f’,rho),sprintf(’ %8.1e’,e1),...
sprintf(’ %8.1e’,e2)]);
if e1eps1 || e2eps2, break, end
else
xn = xc; % Reducción de función mala; seguir igual
end
end
disp([’Óptimo: x’’ =’,sprintf(’ %22.16e’,xc),’.’]);
disp([’Función: f(x) =’,sprintf(’ %22.16e’,fc),’.’]);
end
48/63
 Resolvamos con este procedimiento
minimizar
x2R2
0;5x2
1.x2
1=6 C 1/ C x2 arctan.x2/ 0;5 ln.x2
2 C 1/
 [x f]=Dogleg_UBC_yo(@fun5_2,[2;2]);
k x_k(1) x_k(2) f(x_k) Delta |dx|/Del ro e_1 e_2
0 2.0000e+000 2.0000e+000 4.7429e+000 5.00e-001
1 1.5135e+000 1.8846e+000 2.8658e+000 1.00e+000 0.5000 1.040 2.8e+000 1.4e+000
2 5.8687e-001 1.5086e+000 1.0754e+000 2.00e+000 0.5000 1.233 2.6e+000 1.4e+000
3 -4.1104e-001 -2.2464e-001 1.1188e-001 4.00e+000 0.5000 0.781 2.1e+000 1.6e+000
4 -3.9606e-002 7.4824e-003 8.1253e-004 4.00e+000 0.1095 1.045 1.0e+000 1.9e+000
5 -4.1354e-005 -2.7927e-007 8.5513e-010 4.00e+000 0.0101 1.001 1.0e+000 1.1e-001
6 -4.7149e-014 1.4505e-020 1.1115e-027 4.00e+000 0.0000 1.000 1.0e+000 1.5e-019
Óptimo: x’ = -4.7148815071357958e-014 1.4505439221729893e-020.
Función: f(x) = 1.1115053813167661e-027.
49/63
Método de los gradientes conjugados
 La idea es extender a problemas no lineales generales el método que vimos para
minimizar funciones cuadráticas2
.
 Fue propuesto por los profesores británicos R. Fletcher y C. Reeves en 1964.
Roger Fletcher, Reino Unido, 1939-.
 La dirección de descenso de este método es
p D rf .x/ C ˇppr
La nueva dirección p y la previa, ppr, han de ser conjugadas con respecto a la
matriz Hessiana.
2
Y resolver así sistemas de ecuaciones lineales.
50/63
 El parámetro ˇ se determina de tal manera que minimice una forma cuadrática
de la matriz Hessiana pues suficientemente cerca del óptimo las funciones
continuas se aproximan muy bien a formas cuadráticas.
Newton’’s Method
!
Newton’’s Method
!
Newton’’s Method
!
Newton’’s Method
 La primera fórmula para ˇ fue sugerida por Fletcher y Reeves:
ˇ D
rf .x/T
rf .x/
rf .xpr/T rf .xpr/
.
 La de Polak y Ribière, posteriormente, en 1971:
ˇ D
rf .x/ rf .xpr/
T
rf .x/
rf .xpr/T rf .xpr/
. Elijah Polak, Polonia,
1931-.
51/63
 Algoritmo de los gradientes conjugados para minimizar f .x/:
Dados La función f .x/, un punto de partida x0 y una tolerancia.
Calcular ppr D rf .x0/
Repetir Mientras la aproximación a la solución  tolerancia:
1. Calcular dir. de descenso: p D rf .x/ C ˇppr ,
con ˇ D
rf .x/T rf .x/
rf .xpr /T rf .xpr /
o ˇ D
rf .x/ rf .xpr /
T
rf .x/
rf .xpr /T rf .xpr /
.
2. Calcular la amplitud de paso, ˛, en esa dirección.
3. Calcular el nuevo punto x WD x C ˛p.
 Ninguna de las dos fórmulas de ˇ requiere calcular la matriz Hessiana.
 Si la función a minimizar es cuadrática las dos fórmulas estudiadas coinciden.
52/63
 Calculemos para probar estos métodos el mínimo de la función de Rosenbrock:
minimizar
x2R2
100 x2 x2
1
2
C .1 x1/2
:
−0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
x
1
x
2
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
4
4 4
4
4
4
4
4
5
5
5
5
5
5 5
5
10
10
10
10
10
10
10
15
15
15
15
15
15
15
Figure 5: Contour plot of Rosenbrock’s banana function.
where K is the cone of 6 × 6 PSD matrices. Following the terminology introduced in
[7, 8], the above matrix is referred to as the moment, or measure matrix associated with
the LMI relaxation. Because the above moment matrix contains relaxations of monomials
of degree up to 2+2=4, it is referred to as the second-degree moment matrix. The above
upper-left 3x3 submatrix contains relaxations of monomials of degree up to 1+1=2, so it
is referred to as the first-degree moment matrix.
Now replacing the monomials in the criterion by their relaxed variables, the first LMI
53/63
 Utilicemos para ello este programa en Matlab.
function [x f] = Grad_Conjugados_unc(fun,x,par)
% Método de los gradientes conjugados para minimizar f(x)
rho = 0.01; beta = 0.1; % Parámetros de line search
maxit = 1000;
[f g]= fun(x); ppr=-g; gpr=g; pbeta=0; % Comienzo con máx. pendiente
for i=1:maxit % Proceso iterativo
if i1
[f g] = fun(x);
if par==1, pbeta=(g’*g)/(gpr’*gpr); % Fletcher-Reeves
else pbeta=((g-gpr)’*g)/(gpr’*gpr); % Polak-Ribière
end
end
p = -g+pbeta*ppr;
if (norm(g,inf)  1e-6), break, end % Condición de mínimo
alpha = 1;
for k=1:10 % Backtracking amplitud de paso
xnew = x+alpha*p; fxnew = fun(xnew);
if fxnew = f + alpha*rho*g’*p
break
else alpha = alpha*beta;
end
end
x = x + alpha*p; ppr=p; gpr=g;
fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8en’,i,x,f,alpha);
end
end
function [f g] = objfun_min3(x) % Rosenbrock
f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2;
if nargout2, return, end
g = [-200*(x(2)-x(1)^2)*2*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)];
end
54/63
 Se parte del punto x D Œ 1;2 1. El óptimo es x
D Œ1 1. La función y el
camino hacia el óptimo son los de la figura.
4.5. Convergence Properties 36
−1.5 1.5
−0.5
2
x1
x2
300
100
30
10
3
1
0.3
Figure 4.2: Contours of Rosenbrock’s function.
The function has one minimizer x∗
= [1, 1]
(marked by a + in the figure) with
f(x∗
) = 0, and there is a “valley” with sloping bottom following the parabola
x2 = x2
1. Most optimization algorithms will try to follow this valley. Thus,
a considerable amount of iteration steps is needed, if we take x0 in the 2nd
quadrant.
Below we give the number of iteration steps and evaluations of f(x) and f 0
(x)
when applying Algorithm 4.6 on this function. In all cases we use the starting
point x0 = [ −1.2, 1 ]
, and stopping criteria given by ε1 = 10−8
, ε2 = 10−12
in (4.7). In case of exact line search we use τ = 10−6
, ε = 10−6
in (2.29),
while we take β = 10−1
, % = 10−2
in Algorithm 2.27 for soft line search.
Method Line search # it. steps # fct. evals
Fletcher–Reeves exact 118 1429
37 4. CONJUGATE GRADIENT METHODS
−1.2 1
1
x1
x2
0 10 20 30 40 50
1e−15
1e−10
1e−5
1
f
||f’||
Figure 4.3: Polak–Ribière method with soft line search
applied to Rosenbrock’s function.
Top: iterates xk. Bottom: f(xk) and kf 0
(xk)k∞.
4.6. Implementation
 Con la tolerancia y los parámetros dados, la convergencia es esta.
Método Número iteraciones
Polak–Ribière 103
Fletcher–Reeves 514
55/63
 Probemos:
» [x f] = Grad_Conjugados_unc(@objfun_min3,[-1.2;1],1)
1 -9.84400000e-001 1.08800000e+000 2.42000000e+001 1.00000000e-003
2 -1.01771362e+000 1.06810987e+000 5.35291158e+000 1.00000000e-003
.
.
513 1.00000141e+000 1.00000283e+000 2.00451765e-012 1.00000000e-004
x =
1.000001414780674
1.000002834445620
f =
2.003988012156511e-012
» [x f] = Grad_Conjugados_unc(@objfun_min3,[-1.2;1],2)
1 -9.84400000e-001 1.08800000e+000 2.42000000e+001 1.00000000e-003
2 -9.84399999e-001 1.08800000e+000 5.35291158e+000 1.00000000e-010
.
.
102 1.00000121e+000 1.00000243e+000 1.47631065e-012 1.00000000e-003
x =
1.000001212679899
1.000002430217752
f =
1.472951080761591e-012
56/63
Métodos cuasi Newton
 Son algoritmos basados en el método de Newton que calculan una aproximación
de la matriz hessiana, o variantes de ella, mediante fórmulas de recurrencia.
 Si la fórmula de la dirección de descenso de Newton es
p D r2
f .x/
 1
rf .x/
se utiliza
p D H rf .x/;
donde H es una aproximación de la matriz inversa de la hessiana.
57/63
 Las fórmulas más comunes de H son:
DFP De Davidon, Fletcher y Powell:
HkC1 D Hk
HkykyT
k Hk
yT
k Hkyk
C
sksT
k
yT
k sk
:
rations for optimization
n 1959 and 1970.
go
Argonne National Lab.
91, first issue of SIOPT )
d Maths, Haverford Coll
e
e
1
n methods
U. of Leeds
paper
Quasi-Newton iterations for optimization
The field was launched between 1959 and 1970.
William Davidon 1927-
1954 PhD in Physics, U. Chicago
1959: “variable metric” report at Argonne National Lab.
(It was finally published in 1991, first issue of SIOPT )
1961-1991: Prof. of Physics and Maths, Haverford Coll
Michael Powell 1936-
1959-1976 Harwell A.E.R.E.
1976- DAMTP, U. of Cambridge
1976- DAMTP, U. of Cambridge
1983 FRS
Charles Broyden 1933-2011
1955-1965: English Electric
1965: “good” and “bad” Broyden methods
1967-1986 U. of Essex
1990-2003 U. of Bologna
Roger Fletcher 1939-
1969-1973 Harwell A.E.R.E…. U. of Leeds
1963: Davidon-Fletcher-Powell paper
1971-2005 U. of Dundee
2003 FRS
William Davidon, Roger Fletcher y
Michael Powell.
BFGS Formulada por Broyden, Fletcher, Goldfarb y Shanno:
HkC1 DHk C

1 C
yT
k Hkyk
yT
k sk

sksT
k
yT
k sk
skyT
k Hk C HkyksT
k

yT
k sk
;
Charles Broyden, Roger Fletcher,
Donald Goldfarb y David Shanno.
donde yk D rf .xkC1/ rf .xk/ y sk D xkC1 xk D ˛kpk:
58/63
 Algoritmo para minimizar f .x/.
Dados f .x/, un x0, una tolerancia y H0
Repetir Mientras no se satisfaga la tolerancia de solución:
1. Determinar la dirección de descenso:
Obtener pk D Hkrf .xk/
2. Calcular la amplitud de paso, ˛k, en esa dirección
3. Calcular el nuevo punto xkC1 WD xk C ˛kpk y HkC1
 En Matlab:
function [x,i,f,nfeval] = quasi_newton_1(fun,x,metodo)
% Método cuasi Newton
rho = 0.01; beta = 0.1; % Parámetros de line search
[f,g] = fun(x); H=eye(length(x)); eps1=1e-5; eps2=1e-8;
maxit = 1000; nfeval = 1;
for i=1:maxit
xp = x; gp = g;
p = -H*g; nh = norm(p); % Nueva dirección: cuasi Newton
if norm(g,inf)eps1 || nh = eps2*(eps2 + norm(x)), break, end
alpha = 1;
for k=1:10 % Backtracking amplitud de paso
xnew = x+alpha*p;
fxnew = fun(xnew); nfeval = nfeval+1;
if fxnew  f+alpha*rho*g’*p, break
else alpha=alpha*beta;
end
end
x = x + alpha*p; s = x - xp; ns = norm(s);
[f,g] = fun(x);
y = g - gp; ys = y’*s; nfeval = nfeval+1;
if ys  sqrt(eps)*ns*norm(y) % Recalcular H
v = H*y; yv = y’*v;
if metodo == 1, H=H - (v/yv)*v’ + (s/ys)*s’; % DFP
else H = H + (1+yv/ys)*(s*s’)/ys - (s*v’+v*s’)/ys; % BFGS
end
end
end
end
59/63
 Para obtener la solución habría que hacer algo parecido a lo que sigue.
 [x i f nf]=quasi_newton_1(@objfun_min3,[-1.2;1],1)
x =
0.999986600819581
0.999973154300098
i =
247
f =
1.797638376605058e-010
nf =
506
 [x i f nf]=quasi_newton_1(@objfun_min3,[-1.2;1],2)
x =
0.999999873170081
0.999999758419957
i =
40
f =
3.067793488101831e-014
nf =
88
 La función objetivo y su gradiente están en objfun_min3, ya utilizada.
60/63
 La sesión con el guión de Matlab fminunc sería la siguiente.
 options = optimset(’Display’,’iter’,’GradObj’,’on’,’LargeScale’,’off’...
,’HessUpdate’,’bfgs’);
 x0=[-1.2;1];
 [x,fval,exitflag,output] = fminunc(@objfun_min3,x0,options)
First-order
Iteration Func-count f(x) Step-size optimality
0 1 24.2 216
1 3 4.28049 0.000861873 15.2
2 4 4.12869 1 3
3 5 4.12069 1 1.5
4 6 4.1173 1 1.62
5 7 4.08429 1 5.72
6 8 4.02491 1 10.4
7 9 3.9034 1 17.4
8 10 3.7588 1 20.1
9 11 3.41694 1 19.9
10 12 2.88624 1 11.9
11 13 2.4428 1 9.78
12 14 1.93707 1 3.01
13 17 1.64357 0.141994 5.54
14 18 1.52561 1 7.57
15 19 1.17013 1 4.53
16 20 0.940886 1 3.17
17 21 0.719844 1 5.15
18 22 0.409164 1 5.73
19 25 0.259747 0.0842377 5.01
First-order
Iteration Func-count f(x) Step-size optimality
20 26 0.238901 1 1.06
21 27 0.2102 1 1.22
22 29 0.18249 0.584225 3.33
23 30 0.15856 1 2.91
24 31 0.0893558 1 0.756
25 33 0.0726393 0.438248 3.18
26 34 0.0413887 1 2.3
27 35 0.0221877 1 0.491
28 37 0.0126281 0.405833 1.98
29 38 0.00703352 1 1.35
30 39 0.00203299 1 0.194
31 41 0.00109124 0.5 0.874
32 42 8.941e-005 1 0.14
33 43 7.16329e-006 1 0.0804
34 44 4.44047e-007 1 0.0222
35 45 1.49386e-008 1 0.00263
36 46 9.03834e-013 1 1.65e-005
Local minimum found.
Optimization completed because the size of the gradient is less than
the default value of the function tolerance.
stopping criteria details
x =
0.999999124019815
0.999998284985335
fval =
9.038341201889023e-013
exitflag =
1
output =
iterations: 36
funcCount: 46
stepsize: 1
firstorderopt: 1.652992217925215e-005
algorithm: ’medium-scale: Quasi-Newton line search’
message: [1x438 char]
61/63
 Recapitulemos resolviendo este problema de optimización con varios métodos
minimizar
x2R2
0;5x2
1.x2
1=6 C 1/ C x2 arctan.x2/ 0;5 ln.x2
2 C 1/;
 Con Newton:
 [x f]=Newton_unc(@fun5_2,[2;2])
1 1.53333333e+000 -7.67871794e-001 4.74291181e+000 5.00000000e-001
2 7.17182434e-001 2.73081655e-001 1.90728360e+000 1.00000000e+000
3 1.62394466e-001 -1.33801795e-002 3.16058360e-001 1.00000000e+000
4 2.78174708e-003 1.59690475e-006 1.33334500e-002 1.00000000e+000
5 1.43502115e-008 -2.71495235e-018 3.86906467e-006 1.00000000e+000
x =
1.0e-007 *
0.143502114982597
-0.000000000027150
f =
1.029642850223918e-016
 Máxima pendiente:
 [x f]=Maxima_pendiente_unc(@fun5_2,[2;2])
1 -3.33333333e-001 1.44642564e+000 4.74291181e+000 5.00000000e-001
2 1.23456790e-002 4.80532665e-001 8.89243872e-001 1.00000000e+000
3 -6.27225474e-007 3.25798596e-002 1.11454631e-001 1.00000000e+000
4 8.22680750e-020 1.15199317e-005 5.30629777e-004 1.00000000e+000
5 0.00000000e+000 5.09598738e-016 6.63544598e-011 1.00000000e+000
x =
1.0e-015 *
0
0.509598737990710
f =
2.596908737617245e-031
62/63
 Con cuasi Newton:
 [x i f nf]=quasi_newton_1(@fun5_2,[2;2],2)
x =
1.0e-005 *
-0.466633393077767
0.043763046313533
i =
10
f =
1.098304435204189e-011
nf =
20

Con el método de los
gradientes conjugados:
 [x f] = Grad_Conjugados_unc(@fun5_2,[2;2],2)
1 1.53333333e+000 1.88928513e+000 4.74291181e+000 1.00000000e-001
2 -1.24817638e-001 1.06078252e+000 2.92446293e+000 1.00000000e+000
3 -2.60972425e-002 2.32534554e-001 4.95278202e-001 1.00000000e+000
4 -1.98278513e-002 1.70462426e-001 2.71382019e-002 1.00000000e+000
5 -1.20583962e-003 1.35873959e-002 1.46557482e-002 1.00000000e+000
6 -1.37365260e-003 1.15727268e-002 9.30328488e-005 1.00000000e+000
7 2.08186271e-005 2.50443071e-004 6.79059687e-005 1.00000000e+000
8 -2.88173500e-005 2.33979887e-004 3.15775731e-008 1.00000000e+000
9 1.90328536e-006 6.31282977e-007 2.77885134e-008 1.00000000e+000
10 -4.91063765e-008 3.73003496e-007 2.01048075e-012 1.00000000e+000
x =
1.0e-006 *
-0.049106376456762
0.373003496268343
f =
7.072634268876572e-014
63/63
 Con el método de región de confianza DogLeg con modelo de Newton:
 [x f] = Dogleg_UBC_yo(@fun5_2,[2;2])
k x_k(1) x_k(2) f(x_k) Delta |dx|/Del ro e_1 e_2
0 2.0000e+000 2.0000e+000 4.7429e+000 5.00e-001
1 1.5135e+000 1.8846e+000 2.8658e+000 1.00e+000 0.5000 1.040 2.8e+000 1.4e+000
2 5.8687e-001 1.5086e+000 1.0754e+000 2.00e+000 0.5000 1.233 2.6e+000 1.4e+000
3 -4.1104e-001 -2.2464e-001 1.1188e-001 4.00e+000 0.5000 0.781 2.1e+000 1.6e+000
4 -3.9606e-002 7.4824e-003 8.1253e-004 4.00e+000 0.1095 1.045 1.0e+000 1.9e+000
5 -4.1354e-005 -2.7927e-007 8.5513e-010 4.00e+000 0.0101 1.001 1.0e+000 1.1e-001
6 -4.7149e-014 1.4505e-020 1.1115e-027 4.00e+000 0.0000 1.000 1.0e+000 1.5e-019
Óptimo: x’ = -4.7148815071357958e-014 1.4505439221729893e-020.
Función: f(x) = 1.1115053813167661e-027.
x =
1.0e-013 *
-0.4715
0.0000
f =
1.1115e-027
 Con el método de Newton amortiguado:
 [x f] = Newton_amortiguado(@fun5_2,[2;2])
1 1.22222222e+000 1.07737607e+000 1.43392805e+000 3.33333333e-001
2 5.74640142e-001 4.41028668e-002 1.75164488e-001 1.11111111e-001
3 1.32066691e-001 4.36656594e-003 8.75568971e-003 3.70370370e-002
4 6.09495146e-003 1.55898129e-004 1.85864837e-005 1.23456790e-002
5 7.44750479e-005 1.90119424e-006 2.77507370e-009 4.11522634e-003
6 3.05225879e-007 7.79177968e-009 4.66421303e-014 1.37174211e-003
7 4.18117642e-010 1.06736708e-011 8.75251085e-020 4.57247371e-004
x =
1.0e-009 *
0.4181
0.0107
f =
8.7525e-020

Más contenido relacionado

PPT
Optimización sin restricciones
PPTX
380531571-funcion-objetivo.pptx
PPTX
SEMANA 5. PPtx.pptx. concavidades y optimización
PDF
io-tema4-16.pdf
PPTX
Metodos de Optimizacion
PDF
Aplicaciondelasderivadas.pdf
PDF
Optimizacion Univariada
PDF
Aplicaciones de la derivada taller grupal
Optimización sin restricciones
380531571-funcion-objetivo.pptx
SEMANA 5. PPtx.pptx. concavidades y optimización
io-tema4-16.pdf
Metodos de Optimizacion
Aplicaciondelasderivadas.pdf
Optimizacion Univariada
Aplicaciones de la derivada taller grupal

Similar a Optimización Programación no lineal sin condiciones.pdf (20)

PDF
Cacoango lara-maigua-maisincho-taller#2 parcial 2-igeo-3258
PDF
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
PPTX
Métodos de optimizacion
PDF
Metodos de optimizacion
PDF
Matematica final3
DOCX
Trabajo maria romero
PDF
Clase 10 - Matemáticas.pdf un estudio de matemáticas
PDF
Clase 10 - Matemáticas.pdf matemáticas..
PDF
Trabajo maria romero
PDF
Aplicaciones de la derivada
PDF
Mat1102 optimizacion
PPT
Optimizacion
DOCX
Forma indeterminada
PDF
Ejercicios detallados del obj 5 mat ii 178 179-
PDF
Aplicaciones de las Derivadas 1.pdf
PDF
184696310-Optimizacion-en-Ingenieria-Quimica-UDEC.pdf
PDF
C 29 aplicaciones derivadas
PDF
Aplicaciones derivadas
PPTX
Devivadas
PPTX
S14_s28+-+Criterioooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo...
Cacoango lara-maigua-maisincho-taller#2 parcial 2-igeo-3258
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
Métodos de optimizacion
Metodos de optimizacion
Matematica final3
Trabajo maria romero
Clase 10 - Matemáticas.pdf un estudio de matemáticas
Clase 10 - Matemáticas.pdf matemáticas..
Trabajo maria romero
Aplicaciones de la derivada
Mat1102 optimizacion
Optimizacion
Forma indeterminada
Ejercicios detallados del obj 5 mat ii 178 179-
Aplicaciones de las Derivadas 1.pdf
184696310-Optimizacion-en-Ingenieria-Quimica-UDEC.pdf
C 29 aplicaciones derivadas
Aplicaciones derivadas
Devivadas
S14_s28+-+Criterioooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo...
Publicidad

Más de AdrianoGuzman (7)

PDF
Funciones de interpolación y aproximación.pdf
PDF
Cálculo de valores propios, vectores propios y valores singulares.pdf
PDF
Optimización Lineal Introducción a la Programación Lineal.pdf
PDF
Sistemas lineales de grandes dimensiones Matrices dispersas.pdf
PDF
CATALOGO-GENERAL-MOMENT-PUERTAS-CASTALLA.pdf
PDF
Catálogo Puertas Majujes. Diversidad de diseños
PDF
Cambiador de tap sin carga.pdf
Funciones de interpolación y aproximación.pdf
Cálculo de valores propios, vectores propios y valores singulares.pdf
Optimización Lineal Introducción a la Programación Lineal.pdf
Sistemas lineales de grandes dimensiones Matrices dispersas.pdf
CATALOGO-GENERAL-MOMENT-PUERTAS-CASTALLA.pdf
Catálogo Puertas Majujes. Diversidad de diseños
Cambiador de tap sin carga.pdf
Publicidad

Último (20)

PDF
MAPAMENTALLa tendencia pedagógica basada en competencias hacia una.pdf
PDF
Registro de Limpieza y Desinfección.pdf1
PDF
2425_s9_1_Bitacora_para_la_reflexion.pdf
PDF
REPORTE DE VICTIMAS POR HOMICIDIO DOLOSO IRAPUATO JULIO 2025
PDF
INFORME ESPECIAL BICENTENARIO DE BOLIVIA.pdf
PPTX
Introducción al analisis de datos con Power bi
PPTX
lareformaprevisional-091013175510-phpapp01.pptx
PPTX
Copia de Plantilla VSL Method Como crear videos ee 7 minutos hipnoticods.pptx
PPTX
Embarazo en adolescentes ksjsjjdkxkxkxkxxj
PDF
lavado de manos_20250805_212935_0000.pdf
PDF
Riesgos en Negociaciones_comercio exterior.pdf
PDF
Unidad Nº 1 Introduccion a Estadísticas
PDF
MORFOLOGIA (ASPECTO FORMACION DE PALABRAS).pdf
PDF
NORMA_1887_LEY_27269_Modificada_por_LEY_27310.pdf
PDF
Pobreza porcentual en el mundo y sistemas socioeconómicos (1945-2030).pdf
PPTX
Abdomen HosAESREBBweubeehkrhkqhrkhehrjktil.pptx
PPTX
Presentacion Capacitacion RC y RG (5).pptx
DOCX
DUA 2025 para maestros especiales del área de español
PPTX
DOROTHEA E OREM EXPO.pptx de una teoridta importante
PDF
Presentacion Gestion de Recursos DIA 1.pdf
MAPAMENTALLa tendencia pedagógica basada en competencias hacia una.pdf
Registro de Limpieza y Desinfección.pdf1
2425_s9_1_Bitacora_para_la_reflexion.pdf
REPORTE DE VICTIMAS POR HOMICIDIO DOLOSO IRAPUATO JULIO 2025
INFORME ESPECIAL BICENTENARIO DE BOLIVIA.pdf
Introducción al analisis de datos con Power bi
lareformaprevisional-091013175510-phpapp01.pptx
Copia de Plantilla VSL Method Como crear videos ee 7 minutos hipnoticods.pptx
Embarazo en adolescentes ksjsjjdkxkxkxkxxj
lavado de manos_20250805_212935_0000.pdf
Riesgos en Negociaciones_comercio exterior.pdf
Unidad Nº 1 Introduccion a Estadísticas
MORFOLOGIA (ASPECTO FORMACION DE PALABRAS).pdf
NORMA_1887_LEY_27269_Modificada_por_LEY_27310.pdf
Pobreza porcentual en el mundo y sistemas socioeconómicos (1945-2030).pdf
Abdomen HosAESREBBweubeehkrhkqhrkhehrjktil.pptx
Presentacion Capacitacion RC y RG (5).pptx
DUA 2025 para maestros especiales del área de español
DOROTHEA E OREM EXPO.pptx de una teoridta importante
Presentacion Gestion de Recursos DIA 1.pdf

Optimización Programación no lineal sin condiciones.pdf

  • 1. 1/63 Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros Industriales Grado en Ingeniería en Tecnologías Industriales-3º Matemáticas de Especialidad–Ingeniería Eléctrica Optimización Programación no lineal sin condiciones José Luis de la Fuente O’Connor jldelafuente@etsii.upm.es joseluis.delafuente@upm.es Clase_minimi_sincond.pdf
  • 2. 2/63 La OPTIMIZACIÓN es un lenguaje y forma de expresar en términos matemáticos un gran número de problemas complejos de la vida cotidiana y cómo se pueden resolver de forma práctica mediante los algoritmos numéricos adecuados L’optimisation est une discipline combinant plusieurs domaines de compétences : les mathématiques décisionelles, les statistiques et l’informatique. Cette méthode scietifique a pour but de maximiser ou de minimiser un objectif. En pratique l’optimisation est souvent utilisée por augmenter la rentabilité ou diminuer les coûts. An act, process, or methodology of making something (as a design, system, or decision) as fully perfect, functional, or effective as possible; specifically: the mathematical procedures (as finding the maximum of a function) involved in this. La optimización se estudia en dos grandes partes: Optimización sin condiciones. minimizar f W Rn ! R Optimización con condiciones minimizar x2Rn f .x/ sujeta a ci.x/ D0; i 2 E; cj .x/ 0; j 2 I:
  • 3. 3/63 ¿Cómo se lleva a cabo un proyecto de optimización?
  • 4. 4/63 Índice El problema sin condiciones Condiciones de mínimo Métodos de dirección de descenso Método del gradiente o de la máxima pendiente Método de Newton Métodos de Newton amortiguado y de Región de Confianza Método de los gradientes conjugados Métodos cuasi Newton
  • 5. 5/63 El problema sin condiciones Dar solución a minimizar f W Rn ! R La función f se supone continua en algún conjunto abierto de Rn y con derivadas parciales continuas hasta segundo orden en ese abierto.
  • 6. 6/63 Ejemplos Si x es una constante, la función f .x/ D .x x /2 tiene un único punto donde alcanza el mínimo: en el valor de x . Example 1.1. In this example we consider functions of one variable. The function f(x) = (x − x∗ ) 2 has one, unique minimizer, x∗ , see Figure 1.1. Figure 1.1: y = (x − x∗ )2 . One minimizer. x y x* In many objectiv and several local can find the glob global optimizati The methods de function. When whether it is a g not even be sure La función f .x/ D 2 cos.x x / tiene mínimos locales en x D x C 2a. of we n 1. INTRODUCTION 2 The function f(x) = −2 cos(x − x∗ ) has infinitely many minimizers: x = x∗ + 2pπ , where p is an integer; see Figure 1.2. x y Figure 1.2: y = −2 cos(x − x∗ ). Many minimizers. The function f(x) = 0.015(x − x∗ )2 − 2 cos(x − x∗ ) has a unique global minimizer, x∗ . Besides that, it also has several socalled local minimizers, each giving the minimal function value inside a certain region, see Figure 1.3. x y x* Figure 1.3: y = 0.015(x − x∗ )2 − 2 cos(x − x∗ ). f .x/ D 0;015.x x /2 tiene un único mínimo global, x , y muchos locales. of we n 1. INTRODUCTION 2 The function f(x) = −2 cos(x − x∗ ) has infinitely many minimizers: x = x∗ + 2pπ , where p is an integer; see Figure 1.2. x y Figure 1.2: y = −2 cos(x − x∗ ). Many minimizers. The function f(x) = 0.015(x − x∗ )2 − 2 cos(x − x∗ ) has a unique global minimizer, x∗ . Besides that, it also has several socalled local minimizers, each giving the minimal function value inside a certain region, see Figure 1.3. x y x* Figure 1.3: y = 0.015(x − x∗ )2 − 2 cos(x − x∗ ).
  • 7. 7/63 Condiciones de mínimo La meta de cualquier método de optimización es encontrar el mínimo global de la función, si existe, o un mínimo local. Definición Una función f W Rn ! R se dice convexa si f .˛x1 C ˇx2/ ˛f .x1/ C ˇf .x2/ para todo x1; x2 2 Rn y todo ˛; ˇ 2 R, con ˛ C ˇ D 1, ˛ 0, ˇ 0. 7.4 Convex and Concave Functions 193 y = f(x) x convex (a) y
  • 8. 8/63 Teorema Condiciones de convexidad de primer orden Una función f W Rn ! R derivable —es decir, su gradiente, rf .x/, existe para todo x 2 Rn — es convexa si para todo x; y 2Rn se cumple que f .y/ f .x/ C rf .x/T .y x/. 3.1 Basic properties and examples 69 (x, f (x)) f (y) f (x) + ∇f (x)T (y − x) Figure 3.2 If f is convex and differentiable, then f(x)+∇f(x)T (y−x) ≤ f(y) for all x, y ∈ dom f. is given by ˜ IC (x) = 0 x ∈ C ∞ x 6∈ C. The convex function ˜ IC is called the indicator function of the set C. We can play several notational tricks with the indicator function ˜ IC . For example the problem of minimizing a function f (defined on all of Rn , say) on the set C is the same as minimizing the function f + ˜ IC over all of Rn . Indeed, the function f + ˜ IC is (by our convention) f restricted to the set C. In a similar way we can extend a concave function by defining it to be −∞ outside its domain. Teorema Condiciones de convexidad de segundo orden Una función f W Rn ! R que tiene derivadas parciales de segundo orden —es decir, existe su matriz Hessiana, r2 f .x/, para todo x 2 Rn —, es convexa si para todo x 2 Rn ¤ 0 se cumple que xT r2 f .x/x 0, es decir, la Hessiana es semidefinida positiva. Ejemplo la función f W R2 ! R, f .x; y/ D x2 =y, y 0 72 3 Convex functions x y f (x, y ) −2 0 2 0 1 2 0 1 2 Figure 3.3 Graph of f(x, y) = x2 /y.
  • 9. 9/63 Teorema Condiciones necesarias de mínimo local de primer orden Si x es un mínimo local de f W Rn ! R, se cumple que rf .x / D 0: Un punto x en el que rf .x/ D 0 se denomina punto estacionario de f .x/. Teorema Condiciones suficientes de mínimo local de segundo orden Si x es un punto estacionario y r2 f .x / es definida positiva, x es un mínimo local. IMPORTANTE Cualquier mínimo local de una función convexa es un mínimo global.
  • 10. 10/63 Se pueden dar distintos casos de mínimos (locales o globales). s the variation of the f-value along the line, this “looks like” a local minimum, whereas there exists another line through xs, “indicating” a local maximizer. a) minimum b) maximum c) saddle point Figure 1.5: With a 2-dimensional x we see surfaces z = f(x) near a stationary point. 1. El primero es un mínimo (local o global) y r2 f .x / es definida positiva. 2. El segundo es un máximo y r2 f .x / es definida negativa. 3. El tercero, un punto de silla: se da cuando r2 f .x / es semidefinida positiva, semidefinida negativa o indefinida. Si r2 f .x / D 0 se necesita más información de derivadas parciales de tercer orden para determinar los mínimos locales. 0 5 10 15 20 25 0 10 20 30 −10 −5 0 5 10
  • 11. 11/63 Obtención de la solución Métodos de dirección de descenso Siguen un procedimiento iterativo que hace descender el valor de la función, f .xkC1/ f .xk/ ; en sucesivos puntos k de ese proceso mediante el cálculo de unas direcciones de descenso en las que moverse con este objetivo. h i j d e f g a b c 10 8 7 9 4 6 5 1 2 3 13/81 Métodos de dirección de descenso 4 Siguen un procedimiento iterativo que hace descender la función, f .xkC1/ f .xk/ ; en sucesivos puntos k del proceso mediante el cálculo de una dirección de descenso en la que moverse con este objetivo. x(k) p(k) αkp(k) x(k+1) xk ˛pk pk x +1 4 Se diferencian unos de otros en la forma de calcular p. k Esquema algorítmico general: Dados Un x WD x0 y una tol. Hacer found WD false while (not found) and (k kmax) Calcular dirección de descenso p if (p no existe) or (tol) found WD true else Calcular ˛: amplitud del paso en p x WD x C ˛p end k WD k C 1 end
  • 12. 12/63 Amplitud de paso (linesearch) Supongamos de momento ya calculada la dirección de descenso p en un punto del proceso; un asunto esencial en ese punto es ¿cuánto moverse a lo largo de esa dirección? ¿Qué paso dar? Para calcular ese paso, hay que minimizar en ˛ la función f .x C ˛p/, es decir minimizar ˛ '.˛/ D f .x C ˛p/: Esta minimización puede hacerse estrictamente, o de una forma aproximada, esperándose en este caso un coste menor en número de operaciones y tiempo. Si se opta por la inexacta, o truncada, hay que garantizar con un indicador que f .x C ˛p/ f .x/; es decir que la función decrezca suficientemente a lo largo de p.
  • 13. 13/63 Hay que evitar pasos muy largos, como en la parte izquierda de la figura con la función x2 , donde, las direcciones pk D . 1/kC1 y los pasos ˛k D 2 C 3=2kC1 producen el efecto indicado, desde x0 D 2. ng a Step Length αk nges in finding a good αk are both in avoiding that ngth is too long, −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 0 0.5 1 1.5 2 2.5 3 e function f(x) = x2 and the iterates xk+1 = xk + αkpk generated t directions pk = (−1)k+1 and steps αk = 2+3/2k+1 from x0 = 2) or too short, −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 0 0.5 1 1.5 2 2.5 3 (the objective function f(x) = x2 and the iterates xk+1 = xk + αkpk generated by directions pk = −1 and steps αk = 1/2k+1 from x0 = 2). También muy cortos, como las direcciones pk D 1 en x2 y los pasos ˛k D 1=2kC1 , partiendo también de x0 D 2, que producen lo que se ve.
  • 14. 14/63 Del desarrollo de Taylor de la función a minimizar se tiene que '.˛/ D f .x C ˛p/ C ˛pT rf .x C ˛p/ C O.˛2 / y de él que, en ˛ D 0, '0 .0/ D pT rf .x/. La figura que sigue muestra una posible evolución de '.˛/. La expresión de '0 .0/ es la recta A : tangente a f .x C ˛p/ en ˛ D 0. La recta D es '.0/. 108 (a) α1 f ( ) xk A C B ( ) α2 α f ( ) xk θ f .x/ ˛1 ˛2 ˛ f .xC / ˛p D El descenso implica simultáneamente que '.˛/ '.0/ y que '.˛/ '0 .0/.
  • 15. 15/63 h i j d e f g a b c 10 8 7 9 4 6 5 1 2 3 22/78 108 (a) α1 f ( ) xk A C B ( ) α2 α (b) α1 f ( ) xk C B f ( ) xk+1 α2 α α0 α * θ αL Figure 4.14. (a) The Goldstein tests. (b) Goldstein tests satisfied. estimate ᾰ0 can be determined by using interpolation. On the other hand, if Eq. (4.56) is violated, α0 α1 as depicted in Fig. 4.15b, and since α0 is likely to be in the range αL α0 α∗, ᾰ0 can be determined by using extrapolation. If the value of f(xk +αdk) and its derivative with respect to α are known for α = αL and α = α0, then for α0 α2 a good estimate for ᾰ0 can be deduced f .x/ ˛1 ˛2 ˛ f .xC / ˛p D La recta B es la ecuación f .x C ˛p/ D f .x/ C %˛rf .x/T p; 0 % 1 2 ; cuya pendiente en la zona sombreada puede variar entre 0 y 1 2 ˛rf .x/T p. Representa una fracción, %, (de 0 a 1 2 ) de la reducción que promete la aproximación de Taylor de primer orden en x. La recta C es f .x C ˛p/ D f .x/ C .1 %/˛rf .x/T p cuya pendiente abarca la zona sombreada desde rf .x/T p a 1 2 ˛rf .x/T p.
  • 16. 16/63 Los criterios de Armijo y Goldstein de descenso suficiente dicen que el ˛ 2 .0; 1/ que se escoja debe ser tal que, para 0 % 1 2 1, por ejemplo % D 0;0001 y D 0;9, f .x C ˛p/ f .x/ C %˛rf .x/T p Armijo y f .x C ˛p/ f .x/ C ˛rf .x/T p Goldstein Otro criterio es el de Wolfe, con dos condiciones también. La primera es igual a la de Armijo, la segunda rf .x C ˛p/T p rf .x/T p: También denominada de curvatura. Indica que la pendiente de la función debe ser menor en el nuevo punto.
  • 17. 17/63 El procedimiento numérico inexacto más extendido para calcular la amplitud de paso ˛ se conoce como backtracking. Comienza con un paso completo, ˛ D 1, y lo va reduciendo mediante un factor constante, ˇ ˛, ˇ 2 .0; 1/, hasta que se cumplan los criterios de Armijo y Goldstein, o uno de los dos: preferentemente el de Armijo. Funciona sólo si f .x C ˛p/0 ˛D0 D rf .x/T p 0 (dirección de descenso).
  • 18. 18/63 Método de la dirección del gradiente o de la máxima pendiente Consideremos el desarrollo en serie de Taylor de f .x/ hasta primer orden: f .x C p/ D f .x/ C rf .x/T p C O kpk2 : La dirección p en x es una dirección de descenso si rf .x/T p 0: El descenso relativo de la función en p es f .x/ f .x C p/ kpk D rf .x/T p kpk D krf .x/k cos donde es el ángulo que forman p y rf .x/.
  • 19. 19/63 El descenso cualitativo será máximo cuando D : donde cos./ D 1: cuando la dirección de descenso es p D rf .x/ denominada de máxima pendiente. 3 Line search methods Iteration: xk+1 = xk + αkpk, where αk is the step length (how far to move along pk), αk 0; pk is the search direction. −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 1 1.5 2 2.5 3 xk pk Descent direction: pT k ∇fk = kpkk k∇fkk cos θk 0 (angle π 2 with −∇fk). Guarantees that f can be reduced along pk (for a sufficiently smooth step): f(xk + αpk) = f(xk) + αpT k ∇fk + O(α2 ) (Taylor’s th.) f(xk) for all sufficiently small α 0 • The steepest descent direction, i.e., the direction along which f decreases most rapidly, is fig. 2.5 fig. 2.6 pk = −∇fk. Pf.: for any p, α: f(xk + αp) = f(xk) + αpT ∇fk + O(α2 ) so the rate of change in f along p at xk is pT ∇fk (the directional derivative) = kpk k∇fkk cos θ. Then minp pT ∇fk s.t. kpk = 1 is achieved when cos θ = −1, i.e., p = −∇fk/ k∇fkk. This direction is ⊥ to the contours of f. Pf.: take x + p on the same contour line as x. Then, by Taylor’s th.: f(x + p) = f(x) + pT ∇f(x) + 1 2 pT ∇2 f(x + ǫp)p, ǫ ∈ (0, 1) ⇒ cos ∠(p, ∇f(x)) = − 1 2 pT ∇2f(x + ǫp)p kpk k∇f(x)k − − − − − → kpk→0 0 but kpk → 0 along the contour line means p/ kpk is parallel to its tangent at x. • The Newton direction is pk = −∇2 f−1 k ∇fk. This corresponds to assuming f is locally quadratic and jumping directly to its minimum. Pf.: by Taylor’s th.: f(xk + p) ≈ fk + pT ∇fk + 1 2 pT ∇2 fkp = mk(p) which is minimized (take derivatives wrt p) by the Newton direction if ∇2 fk is pd. (✐ what happens if assuming f is locally linear (order 1)?) In a line search the Newton direction has a natural step length of 1. • For most algorithms, pk = −B−1 k ∇fk where Bk is symmetric nonsingular: 6 Algoritmo de máxima pendiente. Dados Un x WD x0 y una tol. Hacer found WD false while (not found) and (k kmax) Calcular dirección de descenso p D g D rf .x/ if (p no existe) or (tol) found WD true else Calcular amplitud de paso ˛ con backtracking x WD x C ˛p end k WD k C 1 end
  • 20. 20/63 La convergencia es lineal. Ejemplo Resolvamos minimizar x2R2 ex1C3x2 0;1 Cex1 3x2 0;1 C e x1 0;1 . function [x,f] = Maxima_pendiente_unc(fun,x0) % Método de la máxima pendiente rho = 0.1; beta = 0.5; % Parámetros y partida f1=0; maxit = 100; x = x0; for i=1:maxit % Proceso iterativo [f,g] = fun(x); if abs(f-f1) 1e-10, break, end p = -g; alpha = 1; for k=1:10 % Amplitud de paso con backtracking xnew = x+alpha*p; fxnew = fun(xnew); if fxnew f+alpha*rho*g’*p break else alpha = alpha*beta; end end x = x + alpha*p; f1=f; fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8en’,i,x,f,alpha); end end function [f g]= objfun_min1(x) A = [1 3; 1 -3; -1 0]; b = -0.1*[1; 1; 1]; f = sum(exp(A*x+b)); if nargout2, return, end g = A’*exp(A*x+b); end
  • 21. 21/63 Su ejecución obtiene: [x f]=Maxima_pendiente_unc(@objfun_min1,[-1;1]) 1 -1.26517900e+000 -2.50497831e-001 9.16207023e+000 6.25000000e-002 2 -6.29000734e-001 6.51924176e-002 3.86828053e+000 2.50000000e-001 3 -4.50514899e-001 -7.72284882e-002 2.68052760e+000 2.50000000e-001 4 -4.21089848e-001 2.38719166e-002 2.60419641e+000 1.25000000e-001 5 -3.97610304e-001 -8.05335008e-003 2.56942254e+000 1.25000000e-001 6 -3.65030711e-001 1.39821003e-002 2.56295544e+000 2.50000000e-001 7 -3.59263955e-001 -5.78404615e-003 2.56080796e+000 1.25000000e-001 8 -3.55227870e-001 2.43800662e-003 2.55966300e+000 1.25000000e-001 9 -3.52463501e-001 -1.04150522e-003 2.55939647e+000 1.25000000e-001 10 -3.48696568e-001 1.93956544e-003 2.55931730e+000 2.50000000e-001 11 -3.48020112e-001 -8.46703041e-004 2.55929408e+000 1.25000000e-001 12 -3.47557873e-001 3.70439501e-004 2.55927350e+000 1.25000000e-001 13 -3.47243091e-001 -1.62316050e-004 2.55926873e+000 1.25000000e-001 14 -3.47028931e-001 7.11957301e-005 2.55926742e+000 1.25000000e-001 15 -3.46737604e-001 -1.33695923e-004 2.55926699e+000 2.50000000e-001 16 -3.46685147e-001 5.87394995e-005 2.55926683e+000 1.25000000e-001 17 -3.46649462e-001 -2.58117184e-005 2.55926673e+000 1.25000000e-001 18 -3.46625190e-001 1.13436901e-005 2.55926671e+000 1.25000000e-001 19 -3.46592176e-001 -2.13150939e-005 2.55926670e+000 2.50000000e-001 20 -3.46586231e-001 9.36927894e-006 2.55926670e+000 1.25000000e-001 21 -3.46582187e-001 -4.11844758e-006 2.55926670e+000 1.25000000e-001 22 -3.46579437e-001 1.81036718e-006 2.55926670e+000 1.25000000e-001 23 -3.46577566e-001 -7.95799575e-007 2.55926670e+000 1.25000000e-001 x = -0.346577566436640 -0.000000795799575 f = 2.559266696682093
  • 22. 22/63 Gráficas del comportamiento del proceso iterativo. 0 5 10 15 20 25 10 −15 10 −10 10 −5 10 0 10 5 inexacta: backtracking line search exacta: bisecc. k error El cálculo de la amplitud se hace mediante backtracking y exactamente, éste por el método de la bisección.
  • 23. 23/63 Utilizando la rutina fminunc de Matlab, se tendría lo que sigue. » x0=[-1;1]; » options = optimset(’Display’,’iter’,’GradObj’,’on’,’LargeScale’,’off’); » [x,fval,exitflag,output] = fminunc(@objfun_min1,x0,options) First-order Iteration Func-count f(x) Step-size optimality 0 1 9.16207 20 1 2 3.57914 0.0499801 2.5 2 3 3.31537 1 2.11 3 4 2.60267 1 0.548 4 5 2.56573 1 0.349 5 6 2.55954 1 0.0613 6 7 2.55928 1 0.011 7 8 2.55927 1 0.000144 8 9 2.55927 1 1.88e-007 Optimization terminated: relative infinity-norm of gradient less than options. TolFun. x = -0.3466 -0.0000 fval = 2.5593 exitflag = 1 output = iterations: 8 funcCount: 9 stepsize: 1 firstorderopt: 1.8773e-007 algorithm: ’medium-scale: Quasi-Newton line search’ message: [1x85 char] La función objetivo y su gradiente están en function [f g]= objfun_min1(x) % f(x) = sum(exp(A*x+b)) A = [1 3; 1 -3; -1 0]; b = -0.1*[1;1;1]; f = sum(exp(A*x+b)); g = A’*exp(A*x+b); end
  • 24. 24/63 Método de Newton Consideremos el desarrollo de Taylor de f .x/ hasta segundo orden de derivadas: f .x C p/ D f .x/ C rf .x/T p C 1 2 pT r2 f .x/ p C O kpk3 ; donde g D rf .x/ es el vector gradiente y la matriz H D r2 f .x/ D 2 6 6 6 6 4 @2 f .x/ @2x1 @2 f .x/ @x1@x2 @2 f .x/ @x1@xn @2 f .x/ @x2@x1 @2 f .x/ @2x2 @2 f .x/ @x2@xn : : : : : : ::: : : : @2 f .x/ @xn@x1 @2 f .x/ @xn@x2 @2 f .x/ @2xn 3 7 7 7 7 5 , la Hessiana. La idea: Newton’’s Method ! Newton’’s Method ! Newton’’s Method ! Newton’’s Method
  • 25. 25/63 La condición necesaria de óptimo de ese desarrollo, rf .x / D 0, conduce a la ecuación rf .x/ C r2 f .x/p D g C H p D 0. Sistema lineal cuya solución es la dirección de Newton hacia el óptimo. Si la matriz H D r2 f .x/ es definida positiva (xT H x 0 para cualquier x ¤ 0), la dirección de Newton es una dirección de descenso pues 0 pT H p D pT g; cumpliéndose así que pT g 0, como dedujimos.
  • 26. 26/63 Algoritmo de Newton para minimizar f .x/ y script de Matlab: Dados Un x WD x0 y una tol. Hacer found WD false while (not found) and (k kmax) Calcular dirección de descenso; resolver H p D g if (p no existe) or (tol) found WD true else Calcular la amplitud de paso ˛ con backtracking x WD x C ˛p end k WD k C 1 end function [x,f] = Newton_unc_1(fun,x) % Método de Newton rho = 0.1; beta = 0.5; % Parámetros de line search maxit = 100; for i=1:maxit % Proceso interativo [f,g,H] = fun(x); p = -Hg; if abs(p’*g) 1e-8, break, end alpha = 1; for k=1:50 % Cálculo inexacto amplitud de paso xnew = x+alpha*p; fxnew = fun(xnew); if fxnew f+alpha*rho*g’*p, break else alpha=alpha*beta; end end x = x + alpha*p; fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8en’,i,x,f,alpha); end end function [f g H] = objfun_min2(x) A = [1 3; 1 -3; -1 0]; b = -0.1*[1; 1; 1]; f = sum(exp(A*x+b)); if nargout2, return, end g = A’*exp(A*x+b); H = A’*diag(exp(A*x+b))*A; end
  • 27. 27/63 Para resolver otra vez minimizar x2R2 ex1C3x2 0;1 C ex1 3x2 0;1 C e x1 0;1 . [x f]=Newton_unc(@objfun_min2,[-1;1]) 1 -5.23625188e-002 3.53998022e-001 9.16207023e+000 1.00000000e+000 2 -1.05634526e-001 1.05820897e-001 3.73378771e+000 1.00000000e+000 3 -3.18485379e-001 2.52139713e-002 2.71665315e+000 1.00000000e+000 4 -3.45138214e-001 7.18724132e-004 2.56404324e+000 1.00000000e+000 5 -3.46572427e-001 1.03191597e-006 2.55927231e+000 1.00000000e+000 x = -0.346572427027644 0.000001031915967 f = 2.559266696666079 La convergencia del método y el error vs iteración son estos: 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 10 −15 10 −10 10 −5 10 0 10 5 k error Si la Hessiana es definida positiva, la convergencia del método de Newton es cuadrática. Funciona especialmente bien en las proximidades del óptimo o un punto estacionario.
  • 28. 28/63 Combinación de máxima pendiente y Newton La dirección de Newton es siempre de descenso si la matriz Hessiana es definida positiva. Un algoritmo híbrido de máxima pendiente y Newton, para puntos de arranque lejanos donde no se de esa condición de la Hessiana, podría mejorar las prestaciones del método de Newton. if H .x/ es definida positiva p D pN else p D pmp end x WD x C ˛p
  • 29. 29/63 En Matlab: function [x f i] = Newton_mp(fun,x) % Método híbrido Newton-máxima pendiente global h rho = 0.1; beta = 0.5; % Parámetros de line search maxit = 100; h=sqrt(eps); for i=1:maxit % Proceso iterativo [f g H] = fun(x); [R npd] = chol(H); % Cholesky comprueba si H es definida positiva if ~npd p = -R(R’g); % Dirección de Newton_mp else p = -g; % Dirección de máxima pendiente end if abs(p’*g)1e-8, break, end alpha = 1; for k=1:10 % Backtracking de amplitud de paso xnew = x+alpha*p; fxnew = fun(xnew); if fxnew f+alpha*rho*g’*p, break else alpha=alpha*beta; end end x = x + alpha*p; fprintf(’%3.0f %13.5e %13.5e %13.5e %13.5e %2.0fn’,i,x,f,alpha,npd); end end function [f g H] = objfun_min3(x) % Función de Rosenbrock: 100(x2-x1^2)^2+(1-x1)^2 global h f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2; if nargout2, return, end g = [-200*(x(2)-x(1)^2)*2*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)]; if nargout3, return, end x1=[x(1)+h;x(2)]; [f1 g1]=objfun_min3(x1); H(1:2,1)=(g1-g)/h; x1=[x(1);x(2)+h]; [f1 g1]=objfun_min3(x1); H(1:2,2)=(g1-g)/h; end
  • 30. 30/63 Si lo utilizamos para resolver la complicada función de Rosenbrock minimizar x2R2 100 x2 x2 1 2 C .1 x1/2 : −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5 x 1 x 2 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 10 10 10 10 10 10 10 15 15 15 15 15 15 15 Figure 5: Contour plot of Rosenbrock’s banana function. where K is the cone of 6 × 6 PSD matrices. Following the terminology introduced in [7, 8], the above matrix is referred to as the moment, or measure matrix associated with the LMI relaxation. Because the above moment matrix contains relaxations of monomials of degree up to 2+2=4, it is referred to as the second-degree moment matrix. The above upper-left 3x3 submatrix contains relaxations of monomials of degree up to 1+1=2, so it is referred to as the first-degree moment matrix. Now replacing the monomials in the criterion by their relaxed variables, the first LMI relaxation of Rosenbrock’s banana function minimization reads max −1 + 2y10 − y20 − 100y02 + 200y21 − 100y40   function [f g H] = objfun_min3(x) % Función de Rosenbrock: 100(x2-x1^2)^2+(1-x1)^2 global h f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2; if nargout2, return, end g = [-200*(x(2)-x(1)^2)*2*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)]; if nargout3, return, end x1=[x(1)+h;x(2)]; [f1 g1]=objfun_min3(x1); H(1:2,1)=(g1-g)/h; x1=[x(1);x(2)+h]; [f1 g1]=objfun_min3(x1); H(1:2,2)=(g1-g)/h; end
  • 31. 31/63 Partiendo de un punto alejado se obtiene esto. [x f k] = Newton_mp(@objfun_min3,[0;15]) 1 1.56250e-002 -8.43750e+000 2.25010e+004 7.81250e-003 1 2 1.62080e-002 2.62358e-004 7.12052e+003 1.00000e+000 0 3 2.62139e-001 8.23454e-003 9.67847e-001 2.50000e-001 0 4 3.18480e-001 9.82550e-002 9.10251e-001 1.00000e+000 0 5 5.26915e-001 2.32607e-001 4.65478e-001 5.00000e-001 0 6 5.74193e-001 3.27462e-001 4.26601e-001 1.00000e+000 0 7 7.21323e-001 4.97541e-001 1.81811e-001 5.00000e-001 0 8 7.71508e-001 5.92706e-001 1.29485e-001 1.00000e+000 0 9 8.47484e-001 7.11197e-001 5.28430e-002 5.00000e-001 0 10 9.10865e-001 8.25658e-001 2.82056e-002 1.00000e+000 0 11 9.60290e-001 9.19713e-001 9.55884e-003 1.00000e+000 0 12 9.86967e-001 9.73391e-001 2.17363e-003 1.00000e+000 0 13 9.98376e-001 9.96624e-001 2.20516e-004 1.00000e+000 0 14 9.99959e-001 9.99915e-001 4.33199e-006 1.00000e+000 0 x = 0.999958778201435 0.999915052848790 f = 2.326866095161381e-009 k = 15
  • 32. 32/63 Métodos de Newton Amortiguado y de Región de Confianza Supongamos que un modelo M.p/ representa bien1 el comportamiento de la función f que queremos minimizar en el entorno de un punto, es decir, f .x C p/ ' M.p/ def D f .x/ C pT c C 1 2 pT Bp; donde c 2 Rn y la matriz B 2 Rnn es simétrica. La idea es utilizar esos modelos para calcular direcciones de descenso que se puedan modular a voluntad, y con amplitudes de paso D 1. Estudiaremos dos variantes. 1 Tal modelo puede ser perfectamente el desarrollo en serie de Taylor hasta segundas derivadas, o una apro- ximación adecuada.
  • 33. 33/63 La primera se conoce como Newton amortiguado. Calcula en cada punto del proceso iterativo un paso pNa def D mK ın p M.p/ C 1 2 pT p ; donde es un parámetro de amortiguación que, aplicado como se indica, penaliza pasos amplios. La segunda, la región de confianza, prc def D mK ın kpk  M.p/; pues se restringe el modelo a una región donde se confía que plasme bien las características del problema.
  • 34. 34/63 Si la función decrece convenientemente en cualquiera de estas direcciones, se hace x C p como el nuevo punto del procedimiento y se adapta o . Si no decrece lo suficiente, y no se ha llegado al óptimo, se modifica o  para que en la próxima iteración el avance hacia el óptimo mejore. a small reduction in f , even if the optimal steplength is used. The trust-region meth steps to the minimizer of mk within the dotted circle (shown), yielding a more significa reduction in f and better progress toward the solution. In this chapter, we will assume that the model function mk that is used at ea iterate xk is quadratic. Moreover, mk is based on the Taylor-series expansion of f arou k contours of contours of f Trust region step Trust region m Line search direction Región de confianza Paso de Newton Contornos del modelo M.p/ Contornos de f .x/ Paso de región de confianza
  • 35. 35/63 La calidad del modelo elegido se evalúa mediante la ganancia % D f .x/ f .x C p/ M.0/ M.p/ ; es decir, la relación entre lo que decrece la función desde x y lo que preveía el modelo que lo haría. Con el modelo región de confianza, si % 1 4 , la ganancia es pequeña y se deberían reducir los pasos, por ejemplo a la mitad, mientras que si % 3 4 se podrían aumentar. if % 0;25  WD =2 elseif % 0;75  WD mK ax f; 3 kpkg end Los factores 2 y 3 de esta estrategia no deben hacer oscilar la región .
  • 36. 36/63 Si con el modelo Newton amortiguado % es pequeño, se debería aumentar el parámetro de amortiguación, , aumentando así la penalización por dar pasos grandes. Un % grande, por el contrario, indicará que M.p/ es una buena aproximación de f .x C p/ y se puede reducir . if % 0;25 WD 2 elseif % 0;75 WD =3 end Otra estrategia para es: if % 0 WD mK ax ˚1 3 ; 1 .2% 1/3 else WD 2 end
  • 37. 37/63 Newton amortiguado. Cálculo de la dirección Se calcula determinando .p/ D mK ın p M.p/ C 1 2 pT p : La condición necesaria de mínimo, r .p/ D 0, hace que la dirección pNa sea la solución de 0 .h/ D M0 .h/ C p D 0: lo que es equivalente, de acuerdo con la definición de M.p/ a .B C I/ pNa D c: Si es suficientemente grande, la matriz simétrica B C I es definida positiva, por lo que pNa es un mínimo del modelo M.p/.
  • 38. 38/63 En Newton amortiguado B D H y c D g, y el sistema es .H C I/ pNa D g W 8 ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ : Si es suficientemente grande, pNa 1 g; por lo que la dirección es próxima a la de máxima pendiente. Si es pequeño, la dirección es casi la de Newton.
  • 39. 39/63 Algoritmo de Newton amortiguado para minimizar f .x/ y en Matlab:: Dados Un x WD x0 y tol. Hacer D 1; D 2 y found WD f while (not found) and (k kmax) Resolver dirección de descenso .H C I/ p D g if (p no existe) or (tol) found WD true else Calcular % D .f .x/ f .x C p// = .M.0/ M.p// if % 0 WD mK ax ˚1 3 ; 1 .2% 1/3 x WD x C p else WD 2 end end k WD k C 1 end function [x f k] = Newton_amortiguado(fun,x) % Método de Newton amortiguado con paso completo global h k=0; kmax=500; eps1=1e-9; eps2=1e-12; n=length(x); h=eps1; [f g H] = fun(x); ng = norm(g,inf); mu = 1; found = ng=eps1; while ~found posdef = 0; while ~posdef [R p] = chol(H+mu*eye(n)); % Se comprueba si H es def. positiva if p, mu=2*mu; else posdef = 1; end end p = -R(R’g); nh = norm(p); % Cálculo de paso if norm(g,inf)eps1 || nh = eps2*(eps2 + norm(x)), found=2; % Óptimo else % Modificar región de confianza xnew = x + p; dL = -p’*g-p’*(H*p)/2; [fn gn Hn] = fun(xnew); df = f-fn; r=df/dL; if r0 x = xnew; f = fn; g = gn; H = Hn; ng = norm(g,inf); mu = mu*max(1/3,1-(2*r-1)^3); else mu = mu*2; end k = k + 1; if ng = eps1, found = 1; elseif k kmax, found = 3; end fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8en’,k,x,f,mu); end end end
  • 40. 40/63 Resolvamos con este algoritmo minimizar x2R2 0;5x2 1.x2 1=6 C 1/ C x2 arctan.x2/ 0;5 ln.x2 2 C 1/ [x f k] =Newton_amortiguado(@fun5_2,[2;2]) 2 1.22222222e+000 1.07737607e+000 1.43392805e+000 3.33333333e-001 3 5.74640142e-001 4.41028668e-002 1.75164488e-001 1.11111111e-001 4 1.32066691e-001 4.36656594e-003 8.75568971e-003 3.70370370e-002 5 6.09495146e-003 1.55898129e-004 1.85864837e-005 1.23456790e-002 6 7.44750479e-005 1.90119424e-006 2.77507370e-009 4.11522634e-003 7 3.05225879e-007 7.79177968e-009 4.66421303e-014 1.37174211e-003 8 4.18117642e-010 1.06736708e-011 8.75251085e-020 4.57247371e-004 x = 1.0e-009 * 0.418117641894218 0.010673670797581 f = 8.752510847988606e-020 k = 8 function [f g H]=fun5_2(x) f=0.5*x(1)^2*(x(1)^2/6+1)+x(2)*atan(x(2))-0.5*log(x(2)^2+1); g=[x(1)^3/3+x(1); atan(x(2))]; H(1,1)=x(1)^2+1; H(1,2)=0; H(2,1)=0; H(2,2)=1/(1+x(2)^2); end
  • 41. 41/63 Región de confianza. Cálculo de la dirección Teorema El vector p es la solución de prc def D mK ın kpk M.p/ def D f .x/ C gT p C 1 2 pT Bp si y sólo si p es factible y existe un escalar 0 tal que se cumple que 1. .B C I/p D g, 2. . kp k/ D 0 y 3. .B C I/ es semidefinida positiva. B es la matriz Hessiana, r2 f .x/, o una aproximación. Este es un problema de optimización con condiciones. La variable es el multiplicador de Lagrange de la condición que impone la región de confianza.
  • 42. 42/63 La segunda condición, de complementariedad, establece que D 0 o kp k D . h i j d e f g a b c 10 8 7 9 4 6 5 1 2 3 49/80 λ is allowed to take a positive value. Note from (4.8a) that λp∗ −Bp∗ − g −∇m(p∗ ). m 1 contours of *3 p ∆ ∆ ∆ 2 3 p *2 p *1 Figure 4.2 Solution of trust-region subproblem for different radii 1 , 2 , 3 . Contornos del modelo M.p/ ndica que cuando p está estrictamente dentro de la región de onfianza (como es el caso en la figura de  D 1 ), se debe umplir que D 0 y por tanto que Bp D g, siendo B emidefinida positiva. Indica que cuando p está estrictamen- te dentro de la región de confianza (co- mo es el caso en la figura de  D 1), se debe cumplir que D 0 y por tanto que Bp D g, siendo B semidefinida positiva. Cuando  D 2 y  D 3 , se tiene que kp k D  y será 0. De la primera condición se deduce que p D Bp g D rM.p /. Es decir, cuando 0, la solución p es colineal con el negativo del gradiente de M (máxima pendiente) y perpendicular a sus perfiles de contorno, como en la figura.
  • 43. 43/63 Las soluciones de los subproblemas M.p/ no tienen por qué ser exactas. Existen varias formas de aproximarlas: Punto de Cauchy: Mínimo a lo largo de p D g, acotada a  Dogleg (pata de perro): si B es definida positiva Minimización en un subespacio de dimensión 2: Si B es indefinida Steihaug: Si B es simétrica Otras: : :
  • 44. 44/63 Punto de Cauchy La dirección es la solución del modelo Mk.p/ de máxima pendiente: pc k D k k kgkk gk; donde k D 8 : 1 si gT k Bgk 0 mK ın kgkk3 .kgT k Bkgk/ ; 1 si gT k Bgk 0: k first. In summary, we have pC k −τk k gk gk, (4.11) where τk 1 if gT k Bk gk ≤ 0; min gk3 /(k gT k Bk gk), 1 otherwise. (4.12) Figure 4.3 illustrates the Cauchy point for a subproblem in which Bk is positive definite. In this example, pC k lies strictly inside the trust region. The Cauchy step pC k is inexpensive to calculate—no matrix factorizations are required—and is of crucial importance in deciding if an approximate solution of the trust-region subproblem is acceptable. Specifically, a trust-region method will be globally — k C mk gk Trust region contours of p Contornos del modelo Mk.p/ Región de confianza gk pc k
  • 45. 45/63 DogLeg Hemos visto que si la matriz B del modelo M.p/ es definida positiva, el mínimo de éste hace pB D B 1 g. Es decir, cuando  kpB k, p ./ D pB . Si  es pequeña con respecto al paso pB , la condición kpk  hace que el término cuadrático del modelo M.p/ tenga poco efecto en su solución. En este caso, se puede aproximar p ./  g kgk : Para otros valores la solución p ./ sigue una trayectoria curvilínea: H A P T E R 4 . T R U S T - R E G I O N M E T H O D S ) ∆ pB full step ( ) — g) pU — g Trust region p Optimal trajectory dogleg path unconstrained min along ( ( Trayectoria óptima de p./ Región de confianza g pB (paso completo) pU : mínimo en la dirección g dirección DogLeg El método DogLeg reemplaza la trayectoria curvilínea por dos segmentos de recta. El primero hasta el míni- mo de M.p/ en la dirección de máxima pendiente pU D gT g gT Bg g:
  • 46. 46/63 El segundo desde pU hasta pB . En conjunto a esta trayectoria se le denomina Q p./, con 2 Œ0; 2, donde Q p./ D pU 0 1 pU C . 1/ pB pU 1 2: La intersección de esta trayectoria con la región de confianza es el punto que se busca; concretamente el que resuelve la ecuación pU C . 1/ pB pU 2 D 2 : Algoritmo de minimización de una función median- te el método de región de confianza DogLeg con modelo de Newton. Dados Un x WD x0 y tol. Hacer  D 1 y found WD false while (not found) and (k kmax) Resolver H pN D g if pN , x WD x C pN else pmp D .gT g=gT H g/g if pmp , x WD x C pc else Calcular dir. DogLeg e intersección x WD x C pmp C .pN pmp / end end Calcular % D .f .x/ f .x C p// = .M.0/ M.p// if % 0;25,  WD =2 elseif % 0;75,  WD mK axf 2; maxg end k WD k C 1, if found, exit end
  • 47. 47/63 Un código de Matlab: function [xc fc] = Dogleg_UBC_yo(fun,x0) % dogleg.m -- Método de Región de Confianza con modelo Newton eps1=100*sqrt(eps); eps2=sqrt(eps); Kmax=200; Delta=0.5; Dmax=100; xstring = ’’; for jj=1:length(x0) xstring = [xstring,’x_k(’,int2str(jj),’) ’]; end fprintf([’n k %s f(x_k) Delta |dx|/Del ro ’,... ’ e_1 e_2n’],xstring); xc = x0; [fc gc Hc] = fun(xc); disp([’ 0’, sprintf(’ %12.4e’,[xc’,fc]),sprintf(’ %10.2e’,Delta)]); for k=1:Kmax % Modelo Newton: -(gc’*pN + 0.5*pN’*Hc*pN); pN = - Hcgc; % Dirección de Newton pNlen = (pN’*pN)^0.5; gHg = gc’*Hc*gc; if pNlen = Delta % Punto Newton dentro región xt = xc + pN; else % Fuera: encontrar el mínimo mediante máxima % pendiente del Model Newton pSD = -(gc’*gc)/gHg*gc; pSDlen = (pSD’*pSD)^0.5; if pSDlen=Delta % Newton y mp fuera región: usa punto Cauchy xt = xc - Delta*gc/(gc’*gc)^0.5; else % mp dentro región y Newton fuera: usa DogLeg % en límite región de linea uniéndolos pN_pSD = pN-pSD; a = pN_pSD’*pN_pSD; b = 2*pN_pSD’*pSD; c = pSD’*pSD - Delta^2; t = (-b+(b^2-4*a*c)^0.5)/2/a; xt = xc + pSD + t*pN_pSD; end end [fn gn Hn] = fun(xt); % Nuevo punto obtenido en Reg. Con. dx = xt - xc; df = fn - fc; redfun = -df; % Reducción obtenida en función repred = -gc’*dx-0.5*dx’*Hc*dx; % Reducción predicha modelo Newton rho = redfun/repred; % Ganancia e1 = max(abs(pN’)./max([abs(xc’);eps2*ones(size(xc’))])); e2 = max((abs(gn).*abs(xt))/ max([abs(fn),eps2])); if rho0 % Buena ganancia; aceptar punto xn=xt; xc=xt; fc=fn; gc=gn; Hc=Hn; if rho0.25, Delta = 0.25*norm(dx); end if rho0.75 norm(dx,2)((1-eps)*Delta), Delta = min([2*Delta;Dmax]); end disp([sprintf(’%3d’,k), sprintf(’ %12.4e’,[xn’,fn]),... sprintf(’ %10.2e’,Delta),sprintf(’ %6.4f’,norm(dx)/Delta),... sprintf(’ %7.3f’,rho),sprintf(’ %8.1e’,e1),... sprintf(’ %8.1e’,e2)]); if e1eps1 || e2eps2, break, end else xn = xc; % Reducción de función mala; seguir igual end end disp([’Óptimo: x’’ =’,sprintf(’ %22.16e’,xc),’.’]); disp([’Función: f(x) =’,sprintf(’ %22.16e’,fc),’.’]); end
  • 48. 48/63 Resolvamos con este procedimiento minimizar x2R2 0;5x2 1.x2 1=6 C 1/ C x2 arctan.x2/ 0;5 ln.x2 2 C 1/ [x f]=Dogleg_UBC_yo(@fun5_2,[2;2]); k x_k(1) x_k(2) f(x_k) Delta |dx|/Del ro e_1 e_2 0 2.0000e+000 2.0000e+000 4.7429e+000 5.00e-001 1 1.5135e+000 1.8846e+000 2.8658e+000 1.00e+000 0.5000 1.040 2.8e+000 1.4e+000 2 5.8687e-001 1.5086e+000 1.0754e+000 2.00e+000 0.5000 1.233 2.6e+000 1.4e+000 3 -4.1104e-001 -2.2464e-001 1.1188e-001 4.00e+000 0.5000 0.781 2.1e+000 1.6e+000 4 -3.9606e-002 7.4824e-003 8.1253e-004 4.00e+000 0.1095 1.045 1.0e+000 1.9e+000 5 -4.1354e-005 -2.7927e-007 8.5513e-010 4.00e+000 0.0101 1.001 1.0e+000 1.1e-001 6 -4.7149e-014 1.4505e-020 1.1115e-027 4.00e+000 0.0000 1.000 1.0e+000 1.5e-019 Óptimo: x’ = -4.7148815071357958e-014 1.4505439221729893e-020. Función: f(x) = 1.1115053813167661e-027.
  • 49. 49/63 Método de los gradientes conjugados La idea es extender a problemas no lineales generales el método que vimos para minimizar funciones cuadráticas2 . Fue propuesto por los profesores británicos R. Fletcher y C. Reeves en 1964. Roger Fletcher, Reino Unido, 1939-. La dirección de descenso de este método es p D rf .x/ C ˇppr La nueva dirección p y la previa, ppr, han de ser conjugadas con respecto a la matriz Hessiana. 2 Y resolver así sistemas de ecuaciones lineales.
  • 50. 50/63 El parámetro ˇ se determina de tal manera que minimice una forma cuadrática de la matriz Hessiana pues suficientemente cerca del óptimo las funciones continuas se aproximan muy bien a formas cuadráticas. Newton’’s Method ! Newton’’s Method ! Newton’’s Method ! Newton’’s Method La primera fórmula para ˇ fue sugerida por Fletcher y Reeves: ˇ D rf .x/T rf .x/ rf .xpr/T rf .xpr/ . La de Polak y Ribière, posteriormente, en 1971: ˇ D rf .x/ rf .xpr/ T rf .x/ rf .xpr/T rf .xpr/ . Elijah Polak, Polonia, 1931-.
  • 51. 51/63 Algoritmo de los gradientes conjugados para minimizar f .x/: Dados La función f .x/, un punto de partida x0 y una tolerancia. Calcular ppr D rf .x0/ Repetir Mientras la aproximación a la solución tolerancia: 1. Calcular dir. de descenso: p D rf .x/ C ˇppr , con ˇ D rf .x/T rf .x/ rf .xpr /T rf .xpr / o ˇ D rf .x/ rf .xpr / T rf .x/ rf .xpr /T rf .xpr / . 2. Calcular la amplitud de paso, ˛, en esa dirección. 3. Calcular el nuevo punto x WD x C ˛p. Ninguna de las dos fórmulas de ˇ requiere calcular la matriz Hessiana. Si la función a minimizar es cuadrática las dos fórmulas estudiadas coinciden.
  • 52. 52/63 Calculemos para probar estos métodos el mínimo de la función de Rosenbrock: minimizar x2R2 100 x2 x2 1 2 C .1 x1/2 : −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5 x 1 x 2 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 10 10 10 10 10 10 10 15 15 15 15 15 15 15 Figure 5: Contour plot of Rosenbrock’s banana function. where K is the cone of 6 × 6 PSD matrices. Following the terminology introduced in [7, 8], the above matrix is referred to as the moment, or measure matrix associated with the LMI relaxation. Because the above moment matrix contains relaxations of monomials of degree up to 2+2=4, it is referred to as the second-degree moment matrix. The above upper-left 3x3 submatrix contains relaxations of monomials of degree up to 1+1=2, so it is referred to as the first-degree moment matrix. Now replacing the monomials in the criterion by their relaxed variables, the first LMI
  • 53. 53/63 Utilicemos para ello este programa en Matlab. function [x f] = Grad_Conjugados_unc(fun,x,par) % Método de los gradientes conjugados para minimizar f(x) rho = 0.01; beta = 0.1; % Parámetros de line search maxit = 1000; [f g]= fun(x); ppr=-g; gpr=g; pbeta=0; % Comienzo con máx. pendiente for i=1:maxit % Proceso iterativo if i1 [f g] = fun(x); if par==1, pbeta=(g’*g)/(gpr’*gpr); % Fletcher-Reeves else pbeta=((g-gpr)’*g)/(gpr’*gpr); % Polak-Ribière end end p = -g+pbeta*ppr; if (norm(g,inf) 1e-6), break, end % Condición de mínimo alpha = 1; for k=1:10 % Backtracking amplitud de paso xnew = x+alpha*p; fxnew = fun(xnew); if fxnew = f + alpha*rho*g’*p break else alpha = alpha*beta; end end x = x + alpha*p; ppr=p; gpr=g; fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8en’,i,x,f,alpha); end end function [f g] = objfun_min3(x) % Rosenbrock f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2; if nargout2, return, end g = [-200*(x(2)-x(1)^2)*2*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)]; end
  • 54. 54/63 Se parte del punto x D Œ 1;2 1. El óptimo es x D Œ1 1. La función y el camino hacia el óptimo son los de la figura. 4.5. Convergence Properties 36 −1.5 1.5 −0.5 2 x1 x2 300 100 30 10 3 1 0.3 Figure 4.2: Contours of Rosenbrock’s function. The function has one minimizer x∗ = [1, 1] (marked by a + in the figure) with f(x∗ ) = 0, and there is a “valley” with sloping bottom following the parabola x2 = x2 1. Most optimization algorithms will try to follow this valley. Thus, a considerable amount of iteration steps is needed, if we take x0 in the 2nd quadrant. Below we give the number of iteration steps and evaluations of f(x) and f 0 (x) when applying Algorithm 4.6 on this function. In all cases we use the starting point x0 = [ −1.2, 1 ] , and stopping criteria given by ε1 = 10−8 , ε2 = 10−12 in (4.7). In case of exact line search we use τ = 10−6 , ε = 10−6 in (2.29), while we take β = 10−1 , % = 10−2 in Algorithm 2.27 for soft line search. Method Line search # it. steps # fct. evals Fletcher–Reeves exact 118 1429 37 4. CONJUGATE GRADIENT METHODS −1.2 1 1 x1 x2 0 10 20 30 40 50 1e−15 1e−10 1e−5 1 f ||f’|| Figure 4.3: Polak–Ribière method with soft line search applied to Rosenbrock’s function. Top: iterates xk. Bottom: f(xk) and kf 0 (xk)k∞. 4.6. Implementation Con la tolerancia y los parámetros dados, la convergencia es esta. Método Número iteraciones Polak–Ribière 103 Fletcher–Reeves 514
  • 55. 55/63 Probemos: » [x f] = Grad_Conjugados_unc(@objfun_min3,[-1.2;1],1) 1 -9.84400000e-001 1.08800000e+000 2.42000000e+001 1.00000000e-003 2 -1.01771362e+000 1.06810987e+000 5.35291158e+000 1.00000000e-003 . . 513 1.00000141e+000 1.00000283e+000 2.00451765e-012 1.00000000e-004 x = 1.000001414780674 1.000002834445620 f = 2.003988012156511e-012 » [x f] = Grad_Conjugados_unc(@objfun_min3,[-1.2;1],2) 1 -9.84400000e-001 1.08800000e+000 2.42000000e+001 1.00000000e-003 2 -9.84399999e-001 1.08800000e+000 5.35291158e+000 1.00000000e-010 . . 102 1.00000121e+000 1.00000243e+000 1.47631065e-012 1.00000000e-003 x = 1.000001212679899 1.000002430217752 f = 1.472951080761591e-012
  • 56. 56/63 Métodos cuasi Newton Son algoritmos basados en el método de Newton que calculan una aproximación de la matriz hessiana, o variantes de ella, mediante fórmulas de recurrencia. Si la fórmula de la dirección de descenso de Newton es p D r2 f .x/ 1 rf .x/ se utiliza p D H rf .x/; donde H es una aproximación de la matriz inversa de la hessiana.
  • 57. 57/63 Las fórmulas más comunes de H son: DFP De Davidon, Fletcher y Powell: HkC1 D Hk HkykyT k Hk yT k Hkyk C sksT k yT k sk : rations for optimization n 1959 and 1970. go Argonne National Lab. 91, first issue of SIOPT ) d Maths, Haverford Coll e e 1 n methods U. of Leeds paper Quasi-Newton iterations for optimization The field was launched between 1959 and 1970. William Davidon 1927- 1954 PhD in Physics, U. Chicago 1959: “variable metric” report at Argonne National Lab. (It was finally published in 1991, first issue of SIOPT ) 1961-1991: Prof. of Physics and Maths, Haverford Coll Michael Powell 1936- 1959-1976 Harwell A.E.R.E. 1976- DAMTP, U. of Cambridge 1976- DAMTP, U. of Cambridge 1983 FRS Charles Broyden 1933-2011 1955-1965: English Electric 1965: “good” and “bad” Broyden methods 1967-1986 U. of Essex 1990-2003 U. of Bologna Roger Fletcher 1939- 1969-1973 Harwell A.E.R.E…. U. of Leeds 1963: Davidon-Fletcher-Powell paper 1971-2005 U. of Dundee 2003 FRS William Davidon, Roger Fletcher y Michael Powell. BFGS Formulada por Broyden, Fletcher, Goldfarb y Shanno: HkC1 DHk C 1 C yT k Hkyk yT k sk sksT k yT k sk skyT k Hk C HkyksT k yT k sk ; Charles Broyden, Roger Fletcher, Donald Goldfarb y David Shanno. donde yk D rf .xkC1/ rf .xk/ y sk D xkC1 xk D ˛kpk:
  • 58. 58/63 Algoritmo para minimizar f .x/. Dados f .x/, un x0, una tolerancia y H0 Repetir Mientras no se satisfaga la tolerancia de solución: 1. Determinar la dirección de descenso: Obtener pk D Hkrf .xk/ 2. Calcular la amplitud de paso, ˛k, en esa dirección 3. Calcular el nuevo punto xkC1 WD xk C ˛kpk y HkC1 En Matlab: function [x,i,f,nfeval] = quasi_newton_1(fun,x,metodo) % Método cuasi Newton rho = 0.01; beta = 0.1; % Parámetros de line search [f,g] = fun(x); H=eye(length(x)); eps1=1e-5; eps2=1e-8; maxit = 1000; nfeval = 1; for i=1:maxit xp = x; gp = g; p = -H*g; nh = norm(p); % Nueva dirección: cuasi Newton if norm(g,inf)eps1 || nh = eps2*(eps2 + norm(x)), break, end alpha = 1; for k=1:10 % Backtracking amplitud de paso xnew = x+alpha*p; fxnew = fun(xnew); nfeval = nfeval+1; if fxnew f+alpha*rho*g’*p, break else alpha=alpha*beta; end end x = x + alpha*p; s = x - xp; ns = norm(s); [f,g] = fun(x); y = g - gp; ys = y’*s; nfeval = nfeval+1; if ys sqrt(eps)*ns*norm(y) % Recalcular H v = H*y; yv = y’*v; if metodo == 1, H=H - (v/yv)*v’ + (s/ys)*s’; % DFP else H = H + (1+yv/ys)*(s*s’)/ys - (s*v’+v*s’)/ys; % BFGS end end end end
  • 59. 59/63 Para obtener la solución habría que hacer algo parecido a lo que sigue. [x i f nf]=quasi_newton_1(@objfun_min3,[-1.2;1],1) x = 0.999986600819581 0.999973154300098 i = 247 f = 1.797638376605058e-010 nf = 506 [x i f nf]=quasi_newton_1(@objfun_min3,[-1.2;1],2) x = 0.999999873170081 0.999999758419957 i = 40 f = 3.067793488101831e-014 nf = 88 La función objetivo y su gradiente están en objfun_min3, ya utilizada.
  • 60. 60/63 La sesión con el guión de Matlab fminunc sería la siguiente. options = optimset(’Display’,’iter’,’GradObj’,’on’,’LargeScale’,’off’... ,’HessUpdate’,’bfgs’); x0=[-1.2;1]; [x,fval,exitflag,output] = fminunc(@objfun_min3,x0,options) First-order Iteration Func-count f(x) Step-size optimality 0 1 24.2 216 1 3 4.28049 0.000861873 15.2 2 4 4.12869 1 3 3 5 4.12069 1 1.5 4 6 4.1173 1 1.62 5 7 4.08429 1 5.72 6 8 4.02491 1 10.4 7 9 3.9034 1 17.4 8 10 3.7588 1 20.1 9 11 3.41694 1 19.9 10 12 2.88624 1 11.9 11 13 2.4428 1 9.78 12 14 1.93707 1 3.01 13 17 1.64357 0.141994 5.54 14 18 1.52561 1 7.57 15 19 1.17013 1 4.53 16 20 0.940886 1 3.17 17 21 0.719844 1 5.15 18 22 0.409164 1 5.73 19 25 0.259747 0.0842377 5.01 First-order Iteration Func-count f(x) Step-size optimality 20 26 0.238901 1 1.06 21 27 0.2102 1 1.22 22 29 0.18249 0.584225 3.33 23 30 0.15856 1 2.91 24 31 0.0893558 1 0.756 25 33 0.0726393 0.438248 3.18 26 34 0.0413887 1 2.3 27 35 0.0221877 1 0.491 28 37 0.0126281 0.405833 1.98 29 38 0.00703352 1 1.35 30 39 0.00203299 1 0.194 31 41 0.00109124 0.5 0.874 32 42 8.941e-005 1 0.14 33 43 7.16329e-006 1 0.0804 34 44 4.44047e-007 1 0.0222 35 45 1.49386e-008 1 0.00263 36 46 9.03834e-013 1 1.65e-005 Local minimum found. Optimization completed because the size of the gradient is less than the default value of the function tolerance. stopping criteria details x = 0.999999124019815 0.999998284985335 fval = 9.038341201889023e-013 exitflag = 1 output = iterations: 36 funcCount: 46 stepsize: 1 firstorderopt: 1.652992217925215e-005 algorithm: ’medium-scale: Quasi-Newton line search’ message: [1x438 char]
  • 61. 61/63 Recapitulemos resolviendo este problema de optimización con varios métodos minimizar x2R2 0;5x2 1.x2 1=6 C 1/ C x2 arctan.x2/ 0;5 ln.x2 2 C 1/; Con Newton: [x f]=Newton_unc(@fun5_2,[2;2]) 1 1.53333333e+000 -7.67871794e-001 4.74291181e+000 5.00000000e-001 2 7.17182434e-001 2.73081655e-001 1.90728360e+000 1.00000000e+000 3 1.62394466e-001 -1.33801795e-002 3.16058360e-001 1.00000000e+000 4 2.78174708e-003 1.59690475e-006 1.33334500e-002 1.00000000e+000 5 1.43502115e-008 -2.71495235e-018 3.86906467e-006 1.00000000e+000 x = 1.0e-007 * 0.143502114982597 -0.000000000027150 f = 1.029642850223918e-016 Máxima pendiente: [x f]=Maxima_pendiente_unc(@fun5_2,[2;2]) 1 -3.33333333e-001 1.44642564e+000 4.74291181e+000 5.00000000e-001 2 1.23456790e-002 4.80532665e-001 8.89243872e-001 1.00000000e+000 3 -6.27225474e-007 3.25798596e-002 1.11454631e-001 1.00000000e+000 4 8.22680750e-020 1.15199317e-005 5.30629777e-004 1.00000000e+000 5 0.00000000e+000 5.09598738e-016 6.63544598e-011 1.00000000e+000 x = 1.0e-015 * 0 0.509598737990710 f = 2.596908737617245e-031
  • 62. 62/63 Con cuasi Newton: [x i f nf]=quasi_newton_1(@fun5_2,[2;2],2) x = 1.0e-005 * -0.466633393077767 0.043763046313533 i = 10 f = 1.098304435204189e-011 nf = 20 Con el método de los gradientes conjugados: [x f] = Grad_Conjugados_unc(@fun5_2,[2;2],2) 1 1.53333333e+000 1.88928513e+000 4.74291181e+000 1.00000000e-001 2 -1.24817638e-001 1.06078252e+000 2.92446293e+000 1.00000000e+000 3 -2.60972425e-002 2.32534554e-001 4.95278202e-001 1.00000000e+000 4 -1.98278513e-002 1.70462426e-001 2.71382019e-002 1.00000000e+000 5 -1.20583962e-003 1.35873959e-002 1.46557482e-002 1.00000000e+000 6 -1.37365260e-003 1.15727268e-002 9.30328488e-005 1.00000000e+000 7 2.08186271e-005 2.50443071e-004 6.79059687e-005 1.00000000e+000 8 -2.88173500e-005 2.33979887e-004 3.15775731e-008 1.00000000e+000 9 1.90328536e-006 6.31282977e-007 2.77885134e-008 1.00000000e+000 10 -4.91063765e-008 3.73003496e-007 2.01048075e-012 1.00000000e+000 x = 1.0e-006 * -0.049106376456762 0.373003496268343 f = 7.072634268876572e-014
  • 63. 63/63 Con el método de región de confianza DogLeg con modelo de Newton: [x f] = Dogleg_UBC_yo(@fun5_2,[2;2]) k x_k(1) x_k(2) f(x_k) Delta |dx|/Del ro e_1 e_2 0 2.0000e+000 2.0000e+000 4.7429e+000 5.00e-001 1 1.5135e+000 1.8846e+000 2.8658e+000 1.00e+000 0.5000 1.040 2.8e+000 1.4e+000 2 5.8687e-001 1.5086e+000 1.0754e+000 2.00e+000 0.5000 1.233 2.6e+000 1.4e+000 3 -4.1104e-001 -2.2464e-001 1.1188e-001 4.00e+000 0.5000 0.781 2.1e+000 1.6e+000 4 -3.9606e-002 7.4824e-003 8.1253e-004 4.00e+000 0.1095 1.045 1.0e+000 1.9e+000 5 -4.1354e-005 -2.7927e-007 8.5513e-010 4.00e+000 0.0101 1.001 1.0e+000 1.1e-001 6 -4.7149e-014 1.4505e-020 1.1115e-027 4.00e+000 0.0000 1.000 1.0e+000 1.5e-019 Óptimo: x’ = -4.7148815071357958e-014 1.4505439221729893e-020. Función: f(x) = 1.1115053813167661e-027. x = 1.0e-013 * -0.4715 0.0000 f = 1.1115e-027 Con el método de Newton amortiguado: [x f] = Newton_amortiguado(@fun5_2,[2;2]) 1 1.22222222e+000 1.07737607e+000 1.43392805e+000 3.33333333e-001 2 5.74640142e-001 4.41028668e-002 1.75164488e-001 1.11111111e-001 3 1.32066691e-001 4.36656594e-003 8.75568971e-003 3.70370370e-002 4 6.09495146e-003 1.55898129e-004 1.85864837e-005 1.23456790e-002 5 7.44750479e-005 1.90119424e-006 2.77507370e-009 4.11522634e-003 6 3.05225879e-007 7.79177968e-009 4.66421303e-014 1.37174211e-003 7 4.18117642e-010 1.06736708e-011 8.75251085e-020 4.57247371e-004 x = 1.0e-009 * 0.4181 0.0107 f = 8.7525e-020