Metoda konjugiranega gradienta za izračun kratkega stika. Metode konjugiranega gradienta

Namen storitve. Spletni kalkulator, zasnovan za iskanje minimuma funkcije metoda konjugiranega gradienta(glej primer). Metoda Fletcher-Reeves in metoda konjugiranega gradienta- To različne metode, čeprav je drugi različica prvega. Fletcher in Reeves sta prejšnjo metodo razširila na primer poljubnih funkcij. Ko se uporabi za kvadratne funkcije, postane enakovredna metodi konjugiranega gradienta. Tudi izvedeno Mil-Cantrellova različica.

f(x 1,x 2) =

Metoda za iskanje minimuma funkcije Metoda konjugiranega gradienta Fletcher-Reevesova metoda Mealy-Kentrellova metoda Pollack-Ribièrejeva metoda Newtonova metoda najstrmejši spust
Začenši s točke ( ; ) . Natančnost ξ = .
Število ponovitev 1 2 3
Rešitev je sestavljena v Word formatu.

Pravila za vnos funkcij:

Na primer x 1 2 +x 1 x 2, zapišite kot x1^2+x1*x2

Ustvari navodila za iskanje, v v večji meri ki ustreza geometriji funkcije, ki jo minimiziramo.
Opredelitev . Imenujemo dva n-dimenzionalna vektorja x in y konjugiran glede na matriko A (ali A-konjugat), če skalarni produkt(x, Aу) = 0 . Tukaj je A simetrična pozitivno določena matrika velikosti n x n.

Shema algoritma metode konjugiranega gradienta

Nastavite k=0.
Š. 1 Naj bo x 0 izhodiščna točka; ,
d 0 =-g 0 ; k=0.
Sh. 2 Določite x k +1 =x k +λ k d k, kjer je
.
Potem je d k+1 =-g k+1 +β k d k,
,
β k dobimo iz pogoja d k +1 Ad k =0 (konjugirano glede na matriko A).
Sh. 3 Postavite k=k+1.
Kriterij za zaustavitev enodimenzionalnega iskanja vzdolž vsake smeri d k je zapisan kot: .
Vrednote so izbrane tako, da je smer d k A-konjugirana z vsemi predhodno zgrajenimi smermi.

Metoda Fletcher-Reeves

Strategija metode Fletcher-Reeves sestoji iz konstruiranja zaporedja točk (x k ), k=0, 1, 2, ... tako, da je f(x k +1)< f(x k), k=0, 1, 2, ...
Točke zaporedja (x k) se izračunajo po pravilu:
x k +1 =x k -t k d k , k = 0, 1, 2,…
d k = ▽f(x k) + b k -1 ▽f(x k -1)

Velikost koraka je izbrana iz pogoja minimuma funkcije f(x) nad t v smeri gibanja, to je kot rezultat reševanja enodimenzionalnega minimizacijskega problema:
f(x k -t k d k) → min (t k >0)
Kdaj kvadratna funkcija f(x)= (x, Hx) + (b, x) + in smeri d k, d k -1 bodo H-konjugirane, tj. (d k, Hd k -1)=0
Poleg tega na točkah zaporedja (x k) funkcijski gradienti f(x) sta medsebojno pravokotna, tj. (▽f(x k +1),▽f(x k))=0, k =0, 1, 2...
Pri minimiziranju nekvadratnih funkcij metoda Fletcher-Reeves ni končna. Za nekvadratne funkcije se uporablja naslednja modifikacija metode Fletcher-Reeves (metoda Polak-Ribière), ko se vrednost b k -1 izračuna na naslednji način:

Tukaj je I nabor indeksov: I = (0, n, 2n, 3n, ...), tj. metoda Polak-Ribière vključuje uporabo najhitrejše ponovitve gradientni spust vsakih n korakov, zamenjava x 0 z x n +1.
Konstrukcija zaporedja(x k) se konča na točki, za katero je |▽f(x k)|<ε.
Geometrični pomen metode konjugiranega gradienta je naslednji. Iz danega Izhodišče x 0 se izvaja v smeri d 0 = ▽f(x 0) V točki x 1 je določen gradientni vektor ▽f(x 1). 0, potem ▽f(x 1) pravokoten na vektor d 0 . Nato najdemo vektor d 1, H-konjugiran na d 0 . Nato najdemo minimum funkcije vzdolž smeri d 1 itd.

Algoritem metode Fletcher-Reeves

Prva stopnja.
Postavimo x 0, ε > 0.
Poiščite gradient funkcije v poljubna točka
k=0.
Glavni oder
Korak 1. Izračunajte ▽f(x k)
Korak 2. Preverite izpolnjevanje kriterija ustavljanja |▽f(x k)|< ε
a) če je kriterij izpolnjen, je izračun zaključen, x * =x k
b) če merilo ni izpolnjeno, pojdite na 3. korak, če je k=0, sicer pojdite na 4. korak.
Korak 3. Določite d 0 = ▽f(x 0)
Korak 4. Določite ali v primeru nekvadratne funkcije
Korak 5. Določite d k = ▽f(x k) + b k -1 ▽f(x k -1)
Korak 6. Izračunajte velikost koraka t k iz pogoja f(x k - t k d k) → min (t k >0)
Korak 7. Izračunajte x k+1 =x k -t k d k
Korak 8. Nastavite k= k +1 in pojdite na korak 1.

Konvergenca metode

Izrek 1. Če kvadratna funkcija f(x) = (x, Hx) + (b, x) + a z nenegativno določeno matriko H doseže svojo najmanjša vrednost na R n, potem Fletcher-Reevesova metoda zagotavlja, da se minimalna točka najde v največ n korakih.
Izrek 2. Naj bo funkcija f(x) diferenciabilna in omejena od spodaj na R m, njena gradient izpolnjuje Lipschitzev pogoj. Nato imamo za poljubno izhodišče za Polac-Ribièrovo metodo
Izrek 2 zagotavlja konvergenco zaporedja (x k ) v stacionarna točka x * , kjer je ▽f(x *)=0. Zato najdeno točko x * potrebuje dodatne raziskave za njeno razvrstitev. Polak-Ribièrejeva metoda zagotavlja konvergenco zaporedja (x k ) v točko minimuma samo za visoko konveksne funkcije.
Ocena stopnje konvergence je bila pridobljena samo za močno konveksne funkcije, v tem primeru zaporedje (x k) konvergira v točko minimuma funkcije f(x) s hitrostjo: |x k+n – x*| ≤ C|x k – x*|, k = (0, n, 2, …)

Primer. Poiščite minimum funkcije z metodo konjugiranega gradienta: f(X) = 2x 1 2 +2x 2 2 +2x 1 x 2 +20x 1 +10x 2 +10.
rešitev. Kot smer iskanja izberite vektor gradienta na trenutni točki:

- t 0 - 0.1786
20
10
= + 0.0459 - t 1 - 0.4667
Ker je Hessova matrika pozitivno določena, je funkcija f(X) strogo konveksno in torej v stacionarna točka doseže globalni minimum.

Newtonova metoda in kvazi-Newtonove metode, obravnavane v prejšnjem odstavku, so zelo učinkovite kot sredstvo za reševanje problemov neomejenega minimiziranja. Vendar pa predstavljajo precej visoke zahteve glede na količino uporabljenega računalniškega pomnilnika. To je posledica dejstva, da izbira smeri iskanja zahteva reševanje sistemov linearne enačbe, kot tudi z nastajajočo potrebo po shranjevanju matrik tipa Zato je za velike uporaba teh metod morda nemogoča. V veliki meri so metode konjugirane smeri osvobojene te pomanjkljivosti.

1. Koncept metod konjugirane smeri.

Razmislite o problemu minimiziranja kvadratne funkcije

s simetrično pozitivno določeno matriko A. Spomnimo se, da njena rešitev zahteva en korak Newtonove metode in ne več kot korake kvazi-Newtonove metode. Metode konjugirane smeri prav tako ne omogočajo, da najdete minimalno točko funkcije (10.33). kot koraki. To lahko dosežemo s posebnim izborom smeri iskanja.

Rekli bomo, da so neničelni vektorji medsebojno konjugirani (glede na matriko A), če za vse

Z metodo konjugiranih smeri za minimiziranje kvadratne funkcije (10.33) razumemo metodo

pri katerem so smeri medsebojno sprežene, in koraki

dobimo kot rešitev enodimenzionalnih problemov minimizacije:

Izrek 10.4. Metoda konjugiranih smeri vam omogoča, da najdete najmanjšo točko kvadratne funkcije (10 33) v največ korakih.

Metode konjugiranih smeri se med seboj razlikujejo po načinu konstruiranja konjugiranih smeri. Najbolj znana med njimi je metoda konjugiranega gradienta.

2. Metoda konjugiranega gradienta.

Pri tej metodi navodila sestavljajo pravilo

Ker prvi korak te metode sovpada s korakom metode najstrmejšega spusta. Lahko se pokaže (tega ne bomo storili), da so smeri (10.34) res

konjugiran glede na matriko A. Poleg tega se izkaže, da so gradienti medsebojno pravokotni.

Primer 10.5. Uporabimo metodo konjugiranega gradienta za minimiziranje kvadratne funkcije – iz primera 10.1. Zapišimo ga v obliki kje

Vzemimo začetni približek

1. korak metode sovpada s prvim korakom metode najstrmejšega spusta. Zato (glej primer 10.1)

2. korak. Izračunajmo

Ker se je rešitev izkazala v dveh korakih.

3. Metoda konjugiranega gradienta za minimiziranje nekvadratnih funkcij.

Da bi se ta metoda uporabila za zmanjšanje poljubnega gladko delovanje Formula (10.35) za izračun koeficienta se pretvori v obliko

ali na razgled

Prednost formul (10 36), (10.37) je, da ne vsebujejo eksplicitno matrike A.

Funkcijo minimiziramo z metodo konjugiranega gradienta v skladu s formulami

Koeficienti se izračunajo po eni od formul (10.36), (10.37).

Iterativni proces se tukaj ne konča več končno število koraki in smeri na splošno niso konjugirane glede na neko matriko.

Enodimenzionalne minimizacijske probleme (10.40) je treba rešiti numerično. Opažamo tudi, da pogosto pri metodi konjugiranega gradienta koeficient ni izračunan z uporabo formul (10.36), (10.37), ampak se predpostavlja enako nič. V tem primeru se naslednji korak dejansko izvede po metodi najstrmejšega spusta. Ta »posodobitev« metode nam omogoča zmanjšanje vpliva računske napake.

Za močno konveksno gladko funkcijo za nekatere dodatni pogoji Metoda konjugiranega gradienta ima visoko superlinearno konvergenčno stopnjo. Hkrati je njegova delovna intenzivnost nizka in je primerljiva s kompleksnostjo metode najstrmejšega spusta. Kot kaže računalniška praksa, je po učinkovitosti nekoliko slabša od kvazi-Newtonovih metod, vendar postavlja bistveno nižje zahteve za uporabljeni računalniški pomnilnik. V primeru, ko je problem minimiziranja funkcije z zelo veliko število spremenljivk se zdi metoda konjugiranega gradienta edina primerna univerzalna metoda.

Računalniške poskuse za oceno učinkovitosti vzporedne različice metode zgornje relaksacije smo izvedli pod pogoji, navedenimi v uvodu. Da bi oblikovali simetrično pozitivno določeno matriko, so bili elementi podmatrike generirani v območju od 0 do 1, vrednosti elementov podmatrike so bile pridobljene iz simetrije matrik in , elementi na glavna diagonala (podmatrika) je bila generirana v območju od do , kjer je velikost matrike.

Kot merilo ustavljanja smo uporabili kriterij ustavljanja za točnost (7.51) s parametrom a iteracijski parameter . V vseh poskusih je metoda v 11 ponovitvah našla rešitev z zahtevano natančnostjo. Kot pri prejšnjih poskusih bomo popravili pospešek v primerjavi z vzporedni program, ki teče v eni niti.

Tabela 7.20. Eksperimentalni rezultati (metoda zgornje relaksacije)
n 1 tok Vzporedni algoritem
2 tokova 4 tokovi 6 tokov 8 tokov
T S T S T S T S
2500 0,73 0,47 1,57 0,30 2,48 0,25 2,93 0,22 3,35
5000 3,25 2,11 1,54 1,22 2,67 0,98 3,30 0,80 4,08
7500 7,72 5,05 1,53 3,18 2,43 2,36 3,28 1,84 4,19
10000 14,60 9,77 1,50 5,94 2,46 4,52 3,23 3,56 4,10
12500 25,54 17,63 1,45 10,44 2,45 7,35 3,48 5,79 4,41
15000 38,64 26,36 1,47 15,32 2,52 10,84 3,56 8,50 4,54


riž.

7.50.

Poskusi kažejo dobro pospeševanje (približno 4 na 8 niti).

Metoda konjugiranega gradienta Razmislite o sistemu linearnih enačb (7.49) s simetrično, pozitivno določeno matriko velikosti . Osnova metoda konjugiranega gradienta je naslednja lastnina

: reševanje sistema linearnih enačb (7.49) s simetrično pozitivno določeno matriko je enakovredno reševanju problema minimiziranja funkcije

Gre na ničlo. Tako lahko rešitev sistema (7.49) iščemo kot rešitev problema brezpogojne minimizacije (7.56).

Zaporedni algoritem

Da bi rešili problem minimizacije (7.56), je organiziran naslednji iterativni proces.

Pripravljalni korak () je določen s formulami

Kjer je poljuben začetni približek; in koeficient se izračuna kot (

Osnovni koraki

) določajo formule

Tukaj je neskladje th približka, koeficient se ugotovi iz pogoja konjugacije

Navodila in ; je rešitev problema minimiziranja funkcije v smeri Analiza računskih formul metode pokaže, da vključujejo dve operaciji množenja matrike z vektorjem, štiri operacije skalarnega produkta in pet operacij na vektorjih. Vendar je pri vsaki ponovitvi dovolj, da zmnožek izračunamo enkrat in nato uporabimo shranjen rezultat. Skupaj

število operacij, izvedenih v eni ponovitvi, je

(7.58)

Operacije. Lahko se pokaže, da za iskanje natančne rešitve sistema linearnih enačb s pozitivno določeno simetrično matriko ni potrebno izvesti več kot n iteracij, zato je kompleksnost algoritma za iskanje natančne rešitve reda velikosti . Vendar zaradi napak pri zaokroževanju ta proces Običajno obravnavan kot iterativen, se proces konča, ko je izpolnjen običajen pogoj zaustavitve (7.51) ali ko je izpolnjen pogoj majhnosti relativne norme ostanka

Organizacija vzporednega računalništva

Pri razvoju vzporedne različice metode konjugiranega gradienta za reševanje sistemov linearnih enačb je treba najprej upoštevati, da se iteracije metode izvajajo zaporedno, zato je najprimernejši pristop paralelizacija izračunov. izvajajo med ponovitvami.

Analiza zaporednega algoritma kaže, da so glavni stroški pri th iteraciji sestavljeni iz množenja matrike z vektorji in . Posledično je mogoče uporabiti dobro znane metode za organiziranje vzporednih izračunov vzporedno množenje matrik na vektor.

Dodatni izračuni nižjega reda zahtevnosti so različne operacije vektorske obdelave (skalarni produkt, seštevanje in odštevanje, množenje s skalarjem). Organizacija takih izračunov seveda mora biti skladna z izbranim na vzporeden način izvajanje operacije množenja matrike z vektorjem.

Za nadaljnjo analizo učinkovitosti nastalih vzporednih izračunov bomo izbrali vzporedni algoritem množenja matrike-vektorja s pasovno horizontalno delitvijo matrike. V tem primeru se bodo operacije na vektorjih, ki so računsko manj intenzivne, izvajale tudi v večnitnem načinu.

Računalniška prizadevanja sekvenčna metoda konjugiranih gradientov določa relacija (7.58). Določimo čas izvedbe vzporedno izvajanje metoda konjugiranega gradienta. Računska kompleksnost vzporedne operacije množenja matrike z vektorjem pri uporabi tračne vodoravne matrične delitvene sheme je

Kje je dolžina vektorja, je število niti in je režijski strošek za ustvarjanje in zapiranje vzporednega odseka.

Vse druge operacije na vektorjih (točkovni produkt, seštevanje, množenje s konstanto) se lahko izvedejo v enonitnem načinu, ker niso odločilni za celotno kompleksnost metode. Zato lahko celotno računsko kompleksnost vzporedne različice metode konjugiranega gradienta ocenimo kot

Kje je število ponovitev metode.

Rezultati računalniških poskusov

Računalniške eksperimente za ovrednotenje učinkovitosti vzporedne različice metode konjugiranega gradienta za reševanje sistemov linearnih enačb s simetrično pozitivno določeno matriko smo izvedli pod pogoji, navedenimi v uvodu. Elementi na glavni diagonali matrike ) so bili generirani v območju od do , kjer je velikost matrike, ostali elementi pa so bili generirani simetrično v območju od 0 do 1. Zaustavitveni kriterij za točnost (7.51) s parametrom je bil uporabljen kot merilo za zaustavitev

Rezultati računalniških poskusov so podani v tabeli 7.21 (čas delovanja algoritmov je naveden v sekundah).

Metoda najstrmejšega spusta

Pri uporabi metode najstrmejšega spusta pri vsaki ponovitvi velikost koraka A k je izbran iz minimalnega pogoja funkcije f(x) v smeri sestopa, tj.
f(x[k]-a k f"(x[k])) = f(x[k] -af"(x[k])) .

Ta pogoj pomeni, da se gibanje vzdolž antigradienta dogaja, dokler je vrednost funkcije f(x) zmanjša. Z matematična točka pogled pri vsaki iteraciji je treba rešiti problem enodimenzionalne minimizacije glede na A funkcije
j (a) = f(x[k]-af"(x[k])) .

Algoritem metode najstrmejšega spusta je naslednji.

1. Nastavite koordinate začetne točke X.

2. Na točki X[k], k = 0, 1, 2, ... izračuna vrednost gradienta f"(x[k]) .

3. Velikost koraka je določena a k, z enodimenzionalno minimizacijo nad A funkcije j (a) = f(x[k]-af"(x[k])).

4. Določene so koordinate točke X[k+ 1]:

X jaz [k+ 1]= x jaz [k]- A k f" jaz (X[k]), i = 1,..., str.

5. Preverijo se pogoji za zaustavitev steracijskega procesa. Če so izpolnjeni, se izračuni ustavijo. V nasprotnem primeru pojdite na 1. korak.

Pri obravnavani metodi je smer gibanja od točke X[k] se v točki dotakne nivojske črte x[k+ 1] (slika 2.9). Pot spuščanja je cik-cak, s sosednjimi cik-cak povezavami pravokotnimi druga na drugo. Res, korak a k je izbran z minimiziranjem z A funkcije q (a) = f(x[k] -af"(x[k])) . Predpogoj minimalna funkcija d j (a)/da = 0. Po izračunu derivata kompleksna funkcija, dobimo pogoj za ortogonalnost vektorjev smeri spuščanja v sosednjih točkah:

d j (a)/da = -f"(x[k+ 1]f"(x[k]) = 0.

Gradientne metode konvergirajo na minimum z visoka hitrost(s hitrostjo geometrijsko napredovanje) za gladke konveksne funkcije. Takšne funkcije imajo največje M in najmanj m lastne vrednosti matrike drugih odvodov (Hessova matrika)

se med seboj malo razlikujejo, tj N(x) dobro kondicionirano. Naj to spomnimo lastne vrednosti jaz, jaz =1, …, n, so matrike korenine karakteristične enačbe

Vendar pa imajo v praksi funkcije, ki jih minimiziramo, praviloma slabo pogojene matrike drugih odvodov (t/m<< 1). Vrednosti takšnih funkcij v nekaterih smereh se spreminjajo veliko hitreje (včasih za več vrst velikosti) kot v drugih smereh. Njihove ravne ploskve so v najpreprostejšem primeru močno podolgovate, v zahtevnejših primerih pa se upognejo in izgledajo kot grape. Funkcije s takimi lastnostmi imenujemo gully. Smer antigradienta teh funkcij (glej sliko 2.10) bistveno odstopa od smeri do minimalne točke, kar vodi do upočasnitve hitrosti konvergence.

Poskusi kažejo dobro pospeševanje (približno 4 na 8 niti).

Zgoraj obravnavane gradientne metode najdejo minimalno točko funkcije v splošnem primeru samo v neskončnem številu ponovitev. Metoda konjugiranega gradienta ustvari smeri iskanja, ki so bolj skladna z geometrijo funkcije, ki jo minimiziramo. To bistveno poveča hitrost njihove konvergence in omogoča, na primer, minimiziranje kvadratne funkcije

f(x) = (x, Hx) + (b, x) + a

s simetrično pozitivno določeno matriko n v končnem številu korakov P, enako številu funkcijskih spremenljivk. Vsako gladko funkcijo v bližini točke minimuma je mogoče dobro aproksimirati s kvadratno funkcijo, zato se metode konjugiranega gradienta uspešno uporabljajo za minimiziranje nekvadratnih funkcij. V tem primeru prenehajo biti končni in postanejo iterativni.

Po definiciji dve n-dimenzionalni vektor X in pri klical konjugiran glede na matrico H(oz H-konjugat), če je skalarni produkt (x, No) = 0. Tukaj N - simetrična pozitivno določena matrika velikosti p X p.

Eden najpomembnejših problemov pri metodah konjugiranega gradienta je problem učinkovite konstrukcije smeri. Metoda Fletcher-Reeves rešuje to težavo s transformacijo antigradienta na vsakem koraku -f(x[k]) v smeri str[k], H-konjugiran s predhodno najdenimi smermi R, R, ..., R[k-1]. Najprej razmislimo o tej metodi v povezavi s problemom minimiziranja kvadratne funkcije.

Navodila R[k] se izračuna po formulah:

str[k] = -f"(x[k]) +b k-1 str[k-l], k>= 1;

str = -f"(x) .

b vrednosti k-1 so izbrani tako, da so smeri str[k], R[k-1] so bili H-konjugat:

(str[k], HP[k- 1])= 0.

Kot rezultat, za kvadratno funkcijo

iterativni postopek minimizacije ima obliko

x[k+l] =x[k]+a k str[k],

Kje R[k] - smer sestopa do k- m korak; A k - velikost koraka. Slednji je izbran iz minimalnega pogoja funkcije f(x) Avtor: A v smeri gibanja, tj. kot rezultat reševanja problema enodimenzionalne minimizacije:

f(x[k] + A k R[k]) = f(x[k] + ar [k]) .

Za kvadratno funkcijo

Algoritem metode konjugiranega gradienta Fletcher-Reeves je naslednji.

1. Na točki X izračunano str = -f"(x) .

2. Vklopljeno k- m korak, z uporabo zgornjih formul se določi korak A k . in pika X[k+ 1].

3. Vrednosti so izračunane f(x[k+1]) in f"(x[k+1]) .

4. Če f"(x) = 0, nato točka X[k+1] je najmanjša točka funkcije f(x). V nasprotnem primeru je določena nova smer str[k+l] iz relacije

in izvede se prehod na naslednjo ponovitev. Ta postopek bo našel minimum kvadratne funkcije v največ p koraki. Pri minimiziranju nekvadratnih funkcij Fletcher-Reevesova metoda iz končne postane iterativna. V tem primeru po (p+ 1) ponovitev postopka 1-4 se ciklično ponavlja z zamenjavo X na X[p+1] in izračuni se končajo pri, kjer je dano število. V tem primeru se uporablja naslednja modifikacija metode:

x[k+l] = x[k]+a k str[k],

str[k] = -f"(x[k])+ b k- 1 str[k-l], k>= 1;

str= -f"( x);

f(x[k] + a k str[k]) = f(x[k] +ap[k];

Tukaj jaz- veliko indeksov: jaz= (0, n, 2 p, plača, ...), tj. metoda se posodobi vsakih p koraki.

Geometrični pomen metode konjugiranega gradienta je naslednji (slika 2.11). Iz danega izhodišča X sestop izvedemo v smeri R = -f"(x). Na točki X vektor gradienta je določen f"(x). Zaradi X je najmanjša točka funkcije v smeri R, to f"(x) pravokoten na vektor R. Nato je vektor najden R , H-konjugiran na R. Nato poiščemo minimum funkcije vzdolž smeri R itd.

riž. 2.11 .

Metode konjugirane smeri so med najbolj učinkovitimi za reševanje problemov minimizacije. Vendar je treba upoštevati, da so občutljivi na napake, ki se pojavijo med postopkom štetja. pri veliko število spremenljivk, se lahko napaka toliko poveča, da bo treba postopek ponoviti tudi za kvadratno funkcijo, tj. postopek zanjo ne sodi vedno v p koraki.

Gradientne metode, ki temeljijo le na izračunu gradienta R(x), so metode prvega reda, saj na intervalu koraka nadomestijo nelinearno funkcijo R(x) linearni.

Učinkovitejše so lahko metode drugega reda, ki ne uporabljajo le prvega, ampak tudi druge derivate R(x) na trenutni točki. Vendar pa imajo te metode svoje težave, ki jih je težko rešiti - izračunavanje drugih odvodov v točki, poleg tega pa je matrika drugih odvodov daleč od optimalnega lahko slabo pogojena.

Metoda konjugiranega gradienta je poskus združitve prednosti metod prvega in drugega reda, hkrati pa odpraviti njihove pomanjkljivosti. Vklopljeno začetnih fazah(daleč od optimuma) se metoda obnaša kot metoda prvega reda, v bližini optimuma pa se približuje metodam drugega reda.

Prvi korak je podoben prvemu koraku metode najstrmejšega spusta, drugi in naslednji koraki se vsakič izberejo v smeri, ki je oblikovana kot linearna kombinacija gradientnih vektorjev v dani točki in prejšnji smeri.

Algoritem metode lahko zapišemo na naslednji način (v vektorski obliki):

x 1 = x 0 – h grad R(x 0),

x i+1 = x i – h .

Vrednost α lahko približno najdemo iz izraza

Algoritem deluje na naslednji način. Od izhodišča X 0 išče min R(x) v smeri gradienta (z uporabo metode najstrmejšega spusta), nato pa se od najdene točke dalje določi smer iskanja min z drugim izrazom. Iskanje minimuma v smeri je mogoče izvesti na kakršenkoli način: lahko uporabite metodo zaporednega skeniranja brez prilagajanja koraka skeniranja pri prehodu minimuma, tako da je natančnost doseganja minimuma v smeri odvisna od velikosti koraka h.

Za kvadratno funkcijo R(x) rešitev je mogoče najti v p koraki (P– dimenzija problema). Pri drugih funkcijah bo iskanje počasnejše in v nekaterih primerih morda sploh ne bo doseglo optimalnega rezultata zaradi močan vpliv računske napake.

Ena od možnih poti za iskanje minimuma dvodimenzionalne funkcije z uporabo metode konjugiranega gradienta je prikazana na sliki 1. 1.

Algoritem metode konjugiranega gradienta za iskanje minimuma.

Prva stopnja. Izvedba gradientne metode.

Nastavite začetni približek x 1 0 ,X 20. Določitev vrednosti kriterija R(x 1 0 ,X 20). Nastavite k = 0 in pojdite na 1. korak začetne stopnje.

Korak 1. in
.

2. korakČe modul gradienta

3. korak

x k+1 = x k h dipl R(x k)).

4. korak R(x 1 k +1 , X 2 k +1). če R(x 1 k +1 , X 2 k +1)< R(x 1k, X 2 k), nato nastavite k = k+1 in pojdite na korak 3. Če R(x 1 k +1 , X 2 k +1) ≥ R(x 1k, X 2 k), nato pojdite na glavni oder.

Glavni oder.

Korak 1. Izračunajte R(x 1 k + g, x 2 k), R(x 1 k – g, x 2 k), R(x 1 k , x 2 k + g), R(x 1 k , x 2 k) . V skladu z algoritmom iz centralnega ali parnega vzorca izračunamo vrednost parcialnih odvodov in . Izračunajte vrednost modula gradienta
.

2. korakČe modul gradienta
, nato ustavite izračun in upoštevajte točko (x 1 k, x 2 k) kot optimalno točko. V nasprotnem primeru pojdite na 3. korak.

3. korak Izračunajte koeficient α po formuli:

4. korak Izvedite delovni korak z izračunom po formuli

x k+1 = x k – h .

5. korak Določite vrednost kriterija R(x 1 k +1 , X 2 k +1). Nastavite k = k+1 in pojdite na 1. korak.

Primer.

Za primerjavo razmislite o rešitvi prejšnjega primera. Prvi korak naredimo po metodi najstrmejšega spusta (Tabela 5).

Tabela 5

Najboljša točka je najdena. Na tej točki izračunamo derivate: dR/ dx 1 = –2.908; dR/ dx 2 =1.600; Izračunamo koeficient α, ki upošteva vpliv gradienta v prejšnji točki: α = 3,31920 ∙ 3,3192/8,3104 2 =0,160. Naredimo delovni korak v skladu z algoritmom metode, dobimo X 1 = 0,502, X 2 = 1,368. Nato se vse ponovi na enak način. Spodaj v tabeli. 6 prikazuje trenutne iskalne koordinate za naslednje korake.

Tabela 6



Vam je bil članek všeč? Delite s prijatelji!