Sunteți pe pagina 1din 6

6.

14 METODA DAVIDON FLETCHER POWELL


Metoda iterativ a lui Davidon Fletcher Powell (DFP) p o a t e f i
descris n felul urmator:
1. Se fixeaz un punct iniial X1 i o matrice simetric [B1] de
dimensiuni n n cu numere pozitiv definite pentru a aproxima
inversa matricei Hessian a lui f . De obicei, matricea B se
ia ca fiind matricea elementar [I]. Se seteaz numarul de
iteraii i=1.
2. Se seteaz gradientul funciei, fi , l a Xi , iar:
Si = [Bi ]fi
(6.128)
3. Se gsete pasul optim n direcia
i lui Si , iar:

Xi+1 = Xi + iSi (6.129)


4. Se testeaz noul punct obinut Xi+1 pentru optimizare. Daca Xi+1 e optim, se iese
din instruciune. Dac nu, se revine la pasul 5.
5. Se actualizeaz matricea [Bi ] folosind ecuaia (6.119) pentru:
[Bi+1] = [Bi ] + [Mi ] + [Ni ] (6.130)

Unde:
where

[Mi ] = Si i (6.131)
i STT
S
i gi
([Bi ]gi )([Bi ]gi )T
[Ni ] = (6.132)
gT [Bi ]gi
gi = f (Xi+1) f (Xi ) = fi+1 fi (6.133)

6. Se seteaz noua iteraie la i= i+1 i se trece din nou la pasul 2.


Not: M a t r i c e a [Bi+1],i d a t a d e e c u a i a (6.130) r m n e p o z i t i v i
d e f i n i t e d o a r d a c exist. Sunt mai multe rezolvri n acest caz. O
posibilitate ar fi s se introduce o valoare mai buna pentru prin utilizarea a mai
multor numere n cadrul minimizrii unidimensionale. Cu toate acestea, acest fapt ar
implica un efort i mai mare. O alt posibilitate este s se specific un numr maxim
de numere n cadrul minimizrii unidimensionale i s se treac peste actualizarea
matricei respective dac nu a fost gsit n aceste numere.
6.14 Davidon Fletcher Powell Method 355

Exemplul 6.13 Artai c metoda DFP este o conjugat a metodei gradientului.

SOLUIE Considerm funcia

f (X) = 12 XT[A]X + B TX + C (E1)


pentru care avem gradientul:
f = [A]X + B (E2)

Ecuaiile (6.133) i (E2) devin:


gi = fi+1 fi = [A](Xi+1 Xi ) (E3)

Deoarece
Xi+1 = Xi + iSi (E4)

Ecuaia (E3)
devine
gi = i[A]Si (E5)

sau
1
[A]Si = gi (E6)
i
Multiplicnd relaia (E6) cu [Bi+1] ne d
1
[Bi+1][A]Si = ([Bi ] + [Mi ] + [Ni ])gi (E7)
i
Ecuaiile (6.131) i (E5) dau
Si i
[Mi ]gi = i = iSi (E8)
STST g
Ecuaia (6.132) poate fi scris astfel: ii
gi

[Ni ]gi = ([Bi ]gi )(gT[Bi = [Bi ]gi (E9)


]T gi )
i

giT [Bi ]gi


Deoarece [Bi ] este simetric.
1
[Bi+1][A]Si = ([Bi ]gi + i Si [Bi ]gi ) = Si (E10)
i
356 Nonlinear Programming II: Unconstrained Optimization Techniques

Valoarea STi+1 [A]Si poate fi scris ca:


ST T
i+1 [A]S i = ([B i+1 i+1 [A]Si
]f )
T [B ][A]S = f T Si = 0
= f i+1 (E11)
i+1 i i+1

fiindc i este pasul de minimizare n direcia Si . Ecuaia (E11) demonstreaz faptul c


direciile succesive generate prin DFP i de aici putem trage concluzia c metoda
DFP este o conjugata a metodei gradientului.

Example 6.14
the starting point. Use cubic interpolation method for one-dimensional minimization.

SOLUTIE Deoarece aceast metod necesit gradientul lui f , gsim c:


r l r 2
f /x 1 400x1(x1 x 2) 2(1 x1)
f = =
f /x2 200(x21 x2)

Prima Iteraie
Lum
1 1
1 0
[B ] =
1
0 1
f2 f 4806 and f = 3609. Therefore,
At X1 = 2 , f1 = f (X1) = 1
1200
r l
4806
S = [B ]f =
1 1 1
1200
Normaliznd, obinem:
r l r l
1 0.970
S1 = 4806
[(4806)2 + 1200 = 0.244

(1200)2]1/2
Pentru a afla
i , minimizm

f (X1 + 1S1) = f (2 + 0.9701, 2 + 0.2441)

= 100(6 4.1241 + 0.9382)12 + (3 0.971)2 (E1)


(E1) devine

df
2
d = 200(6 4.1241 + 0.938 )(1.8761 4.124) 1.94(3 0.971)
1
1
Cum soluia ecuaiei df/d1 = 0 nu poate fi obinut ntr-o metod simpl, folosim
metoda interpolorii cubice pentru a l afla pe i..
6.14 Davidon Fletcher Powell Method 357

Metoda interpolrii cubice


Pas 1: Ct timp direcia S1 e normalizat, se trece la pasul 2.
Pas 2: Pentru a stabili limite minime i maxime p e n t r u p a s u l optim , trebuie
s gsim dou puncte A i B unde1puntea df/d1 are semne diferite. Lum
A = 0 si alegem un pas iniial t0 = 0.25 pentru a gsi B. L a m o m e n t u l
1 = A =0:
fA = f (1 I= A = 0) = 3609
df
f
I = 4956.64
A = d
1

La 1 = t0 = 0.25: I
I
1 =A=0

f = 2535.62
df
= 3680.82
d1
Cum df/d1 e n e g a t i v , a c c e l e r m p r o c e s u l d e c u t a r e
l u n d 1 = 4t0 = 1.00.
La 1 = 1.00:
f = 795.98
df
= 1269.18
d1
Cum df/d1 este nc negativ, lum 1 = 2.00.
La 1 = 2.00:
f = 227.32
df
= 113.953
d1
La 1 = 2.50:
f = 241.51
df
= 174.684 > 0
d1
Pentru c df/d1 e negativ la 1 = 2.0 i pozitiv la 1 = 2.5, lum A =
2.0 (n loc de 0 pentru convergene mai rapide) i B = 2.5. Deci,
A = 2.0, fA = 227.32, f A = 113.95
B = 2.5, fB = 241.51, f = 174.68
B
Pasul 3: Pentru a gsi pasul optim 1 folosind ecuaia (5.54), obinem
3(227.32 241.51)
Z= 113.95 + 174.68 = 24.41
2.5 2.0
Q = [(24.41)2 + (113.95)(174.68)]1/2 = 143.2
358 Nonlinear Programming II: Unconstrained Optimization Techniques

Deci,
113.95 24.41 + 143.2
i = 2.0 + (2.5 2.0)
113.95 + 174.68 48.82
= 2.2
Pas 4: Pentru a verifica dac e apropiat de , testm valuarea lui df/d1 .
1 1
dfI
= 0.818
II
De asemenea, d1 I
1
f (1 = 1) = 216.1
A doua potrivire: Lum A = pentru c df/d1 e negativ la i B = 2.5.
1 1

A = 2.2, fA = 216.10, f A = 0.818


B = 2.5, fB = 241.51, f B = 174.68
Prin aceste valori aflm c:
3(216.1 241.51)
Z= 2.818 + 174.68 = 80.238
2.5 2.2
Q = [(80.238)2 + (0.818)(174.68)]1/2 = 81.1
0.818 80.238 + 81.1
1 = 2.2 + 0.818 + 174.68 160.476 (2.5 2.2) = 2.201

Pentru a testa convergena, evalum df/d la . Since


1 df/d| 1 =1 = 0.211, it can
be assumed to be sufficientl close to zero and hence we take = 2.201. This
1 1
gives
r r
2 + 0.970 1 0.135
X2 = X1 + 1S1 = =
2 + 0.2441 1.463
Testm X2 for convergence: To test whether the D-F-P method has converged,
we compute the gradient of f at X2:
r r
f /x 1 78.29
f2 = =
f /x 2 296.24
X2
As the components of this vector are not close to zero, X2 is not optimum and hence
the procedure has to be continued until the optimum point is found.

S-ar putea să vă placă și