Konjuguoto gradiento metodas trumpojo jungimo skaičiavimui. Konjuguoto gradiento metodai

Paslaugos paskirtis. Internetinis skaičiuotuvas, skirtas rasti funkcijos minimumą konjuguoto gradiento metodas(žr. pavyzdį). Fletcher-Reeves metodas Ir konjuguoto gradiento metodas- Tai skirtingi metodai, nors antrasis yra pirmojo variantas. Fletcheris ir Reevesas išplėtė ankstesnį metodą savavališkų funkcijų atveju. Pritaikius kvadratinėms funkcijoms, jis tampa lygiavertis konjuguoto gradiento metodui. Taip pat įgyvendinta Mil-Cantrell variantas.

f(x 1 ,x 2) =

Funkcijos minimumo nustatymo metodas Konjuguoto gradiento metodas Fletcher-Reeves metodas Mealy-Kentrell metodas Pollack-Ribière metodas Niutono metodas stačiausias nusileidimas
Pradedant nuo taško ( ; ). .
Tikslumas ξ = 1 2 3
js-skriptas

Sprendimas parengtas Word formatu.:

Funkcijų įvedimo taisyklės

Pavyzdžiui, x 1 2 +x 1 x 2, parašykite kaip x1^2+x1*x2 Formos paieškos kryptys, in didesniu mastu
atitinkančios sumažinamos funkcijos geometriją. Apibrėžimas . Vadinami du n-mačiai vektoriai x ir y konjuguotas matricos A (arba A konjugato) atžvilgiu, jei taškinis produktas

(x, Aу) = 0 . Čia A yra simetrinė teigiama apibrėžtoji matrica, kurios dydis yra n x n.

Konjuguoto gradiento metodo algoritmo schema
Nustatyti k=0.
Ш 1 Tegul x 0 yra pradžios taškas; ,
d0 = -g0; k=0.
.
Sh 2 Nustatykite x k +1 =x k +λ k d k, kur
,
Tada d k+1 =-g k+1 +β k d k ,
β k randamas iš sąlygos d k +1 Ad k =0 (konjugatas A matricos atžvilgiu).
Sh. 3 Įdėkite k=k+1 → Sh. .
Vienmatės paieškos stabdymo kiekviena kryptimi d k kriterijus parašytas taip: Vertybės

parenkami taip, kad kryptis d k būtų A konjuguota su visomis anksčiau sukonstruotomis kryptimis.

Fletcher-Reeves metodas Fletcher-Reeves metodo strategija< f(x k), k=0, 1, 2, ...
susideda iš taškų (x k ), k=0, 1, 2, ... sudarymo taip, kad f(x k +1)
Sekos (x k) taškai apskaičiuojami pagal taisyklę:
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)
Žingsnio dydis parenkamas iš funkcijos f(x) minimumo sąlygos virš t judėjimo kryptimi, t.y., sprendžiant vienmačio minimizavimo uždavinį:
f(x k -t k d k) → min (t k >0) Tuo atveju f(x)= (x, Hx) + (b, x) + ir kryptys d k, d k -1 bus H konjugatas, t.y. (d k , Hd k -1)=0
Be to, sekos taškuose (x k) funkcijų gradientai f(x) yra viena kitai statmenos, t.y. (▽f(x k +1), ▽f(x k))=0, k =0, 1, 2…
Sumažinant ne kvadratines funkcijas, Fletcher-Reeves metodas nėra baigtinis. Nekvadratinėms funkcijoms naudojama tokia Fletcher-Reeves metodo modifikacija (Polak-Ribière metodas), kai reikšmė b k -1 apskaičiuojama taip:

Čia I yra indeksų rinkinys: I = (0, n, 2n, 3n, ...), t. y. Polak-Ribière metodas apima greičiausios iteracijos naudojimą gradiento nusileidimas kas n žingsnių, x 0 pakeičiant x n +1.
Sekos(x k) konstrukcija baigiasi taške, kuriam |▽f(x k)|<ε.
Geometrinė konjuguoto gradiento metodo reikšmė yra tokia. Iš duoto pradžios taškas x 0 nusileidimas vykdomas kryptimi d 0 = ▽f(x 0) Taške x 1 nustatomas gradiento vektorius ▽f(x 1), kadangi x 1 yra mažiausias funkcijos taškas d kryptimi 0, tada ▽f(x 1) statmena vektoriui d 0 . Tada randamas vektorius d 1, H-konjugatas su d 0 . Toliau randamas funkcijos minimumas d 1 kryptimi ir t.t.

Fletcher-Reeves metodo algoritmas

Pradinis etapas.
Nustatyti x 0 , ε > 0.
Raskite funkcijos gradientą savavališkas taškas
k=0.
Pagrindinė scena
1 veiksmas. Apskaičiuokite ▽f(x k)
2 veiksmas. Patikrinkite, ar laikomasi stabdymo kriterijaus |▽f(x k)|< ε
a) jei kriterijus tenkinamas, skaičiavimas baigtas, x * =x k
b) jei kriterijus neatitinka, pereikite prie 3 veiksmo, jei k = 0, kitu atveju pereikite prie 4 veiksmo.
3 veiksmas. Nustatykite d 0 = ▽f(x 0)
4 veiksmas. Nustatykite arba ne kvadratinės funkcijos atveju
5 veiksmas. Nustatykite d k = ▽f(x k) + b k -1 ▽f(x k -1)
6 veiksmas. Apskaičiuokite žingsnio dydį t k pagal sąlygą f(x k - t k d k) → min (t k >0)
7 veiksmas. Apskaičiuokite x k+1 =x k -t k d k
8 veiksmas. Nustatykite k= k +1 ir pereikite prie 1 veiksmo.

Metodo konvergencija

1 teorema. Jei kvadratinė funkcija f(x) = (x, Hx) + (b, x) + a su neneigiama apibrėžtine matrica H pasiekia savo minimali vertė R n, tada Fletcher-Reeves metodas užtikrina, kad minimalus taškas būtų rastas ne daugiau kaip n žingsnių.
2 teorema. Tegul funkcija f(x) yra diferencijuota ir apribota iš apačios ties R m, o jos gradientas atitinka Lipšico sąlygą. Tada, kaip savavališką atskaitos tašką, turime Polac-Ribière metodą
2 teorema garantuoja sekos (x k ) konvergenciją į stacionarus taškas x * , kur ▽f(x *)=0. Todėl rastam taškui x * reikia papildomų tyrimų dėl jo klasifikavimo. Polak-Ribière metodas garantuoja sekos (x k ) konvergenciją iki minimalaus taško tik labai išgaubtoms funkcijoms.
Konvergencijos rodiklio įvertis buvo gautas tik stipriai išgaubtos funkcijos, šiuo atveju seka (x k) konverguoja į funkcijos f(x) mažiausią tašką greičiu: |x k+n – x*| ≤ C|x k – x*|, k = (0, n, 2, …)

Pavyzdys. Raskite funkcijos minimumą konjuguoto gradiento metodu: f(X) = 2x 1 2 +2x 2 2 +2x 1 x 2 +20x 1 +10x 2 +10.
Sprendimas. Kaip paieškos kryptį pasirinkite gradiento vektorių dabartiniame taške:

- t 0 - 0.1786
20
10
= + 0.0459 -t 1 - 0.4667
Kadangi Heseno matrica yra teigiama apibrėžtoji, funkcija f(X) griežtai išgaubtas ir todėl į stacionarus taškas pasiekia pasaulinis minimumas.

Ankstesnėje pastraipoje aptartas Niutono metodas ir kvazi-niutono metodai yra labai veiksmingi kaip priemonė sprendžiant nesuvaržytas minimizavimo problemas. Tačiau jie pristato gana aukštus reikalavimusį naudojamą kompiuterio atminties kiekį. Taip yra dėl to, kad pasirenkant paieškos kryptį reikia išspręsti sistemas tiesines lygtis, taip pat atsiradus poreikiui saugoti tokio tipo matricas Todėl didelėms naudoti šių metodų gali būti neįmanoma. Konjuguotos krypties metodai iš esmės yra išlaisvinti nuo šio trūkumo.

1. Konjuguotų krypties metodų samprata.

Apsvarstykite kvadratinės funkcijos sumažinimo problemą

su simetrine teigiama apibrėžtąja matrica A Prisiminkite, kad jos sprendimas reikalauja vieno Niutono metodo žingsnio ir ne daugiau kaip kvazi-Niutono metodo žingsnių Konjuguotos krypties metodai taip pat leidžia rasti funkcijos (10.33) mažiausią tašką nei žingsniai. Tai galima pasiekti naudojant specialų paieškos krypčių pasirinkimą.

Sakysime, kad nuliniai vektoriai yra tarpusavyje konjuguoti (matricos A atžvilgiu), jei visiems

Konjuguotų krypčių kvadratinės funkcijos mažinimo metodu (10.33) turime omenyje metodą

kuriose kryptys yra tarpusavyje susietos, ir žingsniai

gaunami kaip vienmačio minimizavimo problemų sprendimas:

10.4 teorema. Konjuguotų krypčių metodas leidžia rasti minimalų kvadratinės funkcijos tašką (10 33) ne daugiau kaip žingsniais.

Konjuguotų krypčių metodai skiriasi vienas nuo kito tuo, kaip konjuguojamos kryptys. Garsiausias iš jų yra konjuguoto gradiento metodas.

2. Konjuguoto gradiento metodas.

Taikant šį metodą, nurodymai sukuria taisyklę

Kadangi pirmasis šio metodo žingsnis sutampa su stačiausio nusileidimo metodo žingsniu. Galima parodyti (to nedarysime), kad kryptys (10.34) tikrai yra

konjugatas matricos A atžvilgiu. Be to, gradientai yra vienas kitą stačiakampiai.

10.5 pavyzdys. Naudokime konjuguoto gradiento metodą kvadratinei funkcijai sumažinti – iš 10.1 pavyzdžio. Parašykime forma kur

Paimkime pradinį aproksimaciją

1-as metodo žingsnis sutampa su pirmuoju stačiausio nusileidimo metodo žingsniu. Todėl (žr. 10.1 pavyzdį)

2 žingsnis. Paskaičiuokime

Kadangi sprendimas buvo rastas dviem etapais.

3. Konjuguoto gradiento metodas nekvadratinėms funkcijoms sumažinti.

Kad šis metodas būtų taikomas iki minimumo sumažinti savavališką sklandi funkcija koeficiento skaičiavimo formulė (10.35) paverčiama į formą

arba į vaizdą

Formulių (10 36), (10.37) pranašumas yra tas, kad jose nėra A matricos.

Funkcija sumažinama naudojant konjuguoto gradiento metodą pagal formules

Koeficientai apskaičiuojami naudojant vieną iš formulių (10,36), (10,37).

Pasikartojantis procesas čia jau nesibaigia baigtinis skaičiusžingsniai, o kryptys, paprastai kalbant, nėra susietos su kokia nors matrica.

Vienmatės minimizavimo uždaviniai (10.40) turi būti sprendžiami skaitiniu būdu. Taip pat pažymime, kad dažnai taikant konjuguoto gradiento metodą koeficientas nėra apskaičiuojamas naudojant (10.36), (10.37) formules, o daroma prielaida. lygus nuliui. Šiuo atveju kitas žingsnis iš tikrųjų atliekamas naudojant stačiausio nusileidimo metodą. Šis metodo „atnaujinimas“ leidžia sumažinti skaičiavimo klaidos įtaką.

Stipriai išgaubtai sklandžiai funkcijai kai kuriems papildomos sąlygos Konjuguoto gradiento metodas turi didelį supertiesinį konvergencijos greitį. Tuo pačiu metu jo darbo intensyvumas yra mažas ir yra panašus į stačiausio nusileidimo metodo sudėtingumą. Kaip rodo skaičiavimo praktika, jis yra šiek tiek prastesnis už kvazi-niutono metodus, tačiau kelia žymiai mažesnius reikalavimus naudojamai kompiuterio atminčiai. Tuo atveju, kai problema sumažinti funkciją su labai didelis skaičius kintamieji, konjuguoto gradiento metodas yra vienintelis tinkamas universalus metodas.

Skaičiavimo eksperimentai, skirti įvertinti lygiagrečios viršutinės relaksacijos metodo versijos efektyvumą, buvo atlikti įvade nurodytomis sąlygomis. Norint suformuoti simetrišką teigiamą apibrėžtąją matricą, submatricos elementai buvo generuojami intervale nuo 0 iki 1, submatricos elementų reikšmės gautos iš matricų ir simetrijos, o elementai ant matricos. pagrindinė įstrižainė (submatrica ) buvo sugeneruota diapazone nuo iki , kur yra matricos dydis.

Kaip sustabdymo kriterijų panaudojome tikslumo stabdymo kriterijų (7.51) su parametru a iteracijos parametras . Visuose eksperimentuose metodas surado reikiamo tikslumo sprendimą per 11 iteracijų. Kaip ir ankstesniuose eksperimentuose, mes nustatysime pagreitį, palyginti su paralelinė programa, veikia vienoje gijoje.

7.20 lentelė.
Eksperimento rezultatai (viršutinio atsipalaidavimo metodas) n 1 srautas
Lygiagretus algoritmas 2 srautai 4 srautai 6 upeliai
8 upeliai T 8 upeliai T 8 upeliai T 8 upeliai T
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


S

Ryžiai. 7.50.

Eksperimentai rodo gerą pagreitį (apie 4 ant 8 gijų).

Konjuguoto gradiento metodas Panagrinėkime tiesinių lygčių sistemą (7.49) su simetriška, teigiama apibrėžtine matrica, kurios dydis yra . pagrindu konjuguoto gradiento metodas yra kitas turtas

: tiesinių lygčių sistemos (7.49) sprendimas su simetriška teigiama apibrėžtąja matrica yra tolygu funkcijos sumažinimo uždaviniui išspręsti

Eina į nulį. Taigi sistemos (7.49) sprendimo galima ieškoti kaip besąlyginio minimizavimo uždavinio (7.56) sprendimo.

Nuoseklus algoritmas

Siekiant išspręsti minimizavimo problemą (7.56), organizuojamas toks iteracinis procesas.

Parengiamasis etapas () nustatomas pagal formules

Kur yra savavališkas pradinis aproksimacija; o koeficientas apskaičiuojamas kaip (

Pagrindiniai žingsniai

) nustatomi pagal formules

Čia yra th aproksimacijos neatitikimas, koeficientas randamas iš konjugacijos sąlygos

Kryptys ir ; yra funkcijos sumažinimo kryptimi problemos sprendimas Metodo skaičiavimo formulių analizė rodo, kad jos apima dvi matricos dauginimo iš vektoriaus operacijas, keturias skaliarinės sandaugos operacijas ir penkias operacijas su vektoriais. Tačiau kiekvienos iteracijos metu pakanka vieną kartą apskaičiuoti sandaugą ir tada naudoti saugomą rezultatą. Bendras kiekis

per vieną iteraciją atliktų operacijų skaičius yra

(7.58)

Operacijos. Galima parodyti, kad norint rasti tikslų tiesinių lygčių sistemos su teigiama apibrėžtąja simetriška matrica sprendimą, reikia atlikti ne daugiau kaip n iteracijų, todėl tikslaus sprendimo paieškos algoritmo sudėtingumas yra . Tačiau dėl apvalinimo klaidų šis procesas paprastai laikomas iteraciniu, procesas baigiasi, kai įvykdoma įprasta stabdymo sąlyga (7.51), arba kai įvykdoma likučio santykinės normos mažumo sąlyga.

Lygiagretaus skaičiavimo organizavimas

Kuriant lygiagrečią konjuguoto gradiento metodo versiją tiesinių lygčių sistemoms spręsti, visų pirma reikia atsižvelgti į tai, kad metodo iteracijos atliekamos nuosekliai, todėl tinkamiausias būdas yra lygiagretinti skaičiavimus. įdiegta iteracijų metu.

Nuosekliojo algoritmo analizė rodo, kad pagrindinės išlaidos th iteracijos metu susideda iš matricos padauginimo iš vektorių ir . Dėl to, organizuojant lygiagrečius skaičiavimus, gali būti naudojami gerai žinomi metodai lygiagretusis dauginimas matricos vienam vektoriui.

Papildomi mažesnio sudėtingumo skaičiavimai yra įvairios vektorinio apdorojimo operacijos (skaliarinė sandauga, sudėjimas ir atėmimas, daugyba iš skaliro). Žinoma, tokių skaičiavimų organizavimas turi atitikti pasirinktą lygiagrečiu būdu atliekantis matricos dauginimo iš vektoriaus operaciją.

Tolesnei gautų lygiagrečių skaičiavimų efektyvumo analizei parinksime lygiagretų matricos-vektoriaus daugybos algoritmą su juostiniu horizontaliu matricos padalijimu. Šiuo atveju operacijos su vektoriais, kurių skaičiavimas yra mažesnis, taip pat bus atliekamos kelių gijų režimu.

Skaičiavimo pastangos nuoseklus metodas konjuguoti gradientai nustatomi pagal ryšį (7.58). Nustatykime vykdymo laiką lygiagretus įgyvendinimas konjuguoto gradiento metodas. Lygiagrečios matricos dauginimo iš vektoriaus operacijos skaičiavimo sudėtingumas, kai naudojama horizontaliosios matricos skaidymo schema

Kur yra vektoriaus ilgis, gijų skaičius ir lygiagrečios atkarpos kūrimo ir uždarymo pridėtinė suma.

Visos kitos operacijos su vektoriais (taškų sandauga, sudėjimas, daugyba iš konstantos) gali būti atliekamos vienos gijos režimu, nes nėra lemiami bendram metodo sudėtingumui. Todėl bendras konjuguoto gradiento metodo lygiagrečios versijos skaičiavimo sudėtingumas gali būti įvertintas kaip

Kur yra metodo pakartojimų skaičius.

Skaičiavimo eksperimentų rezultatai

Įvade nurodytomis sąlygomis atlikti skaičiavimo eksperimentai, skirti įvertinti lygiagrečios konjuguoto gradiento metodo versijos efektyvumą sprendžiant tiesinių lygčių sistemas su simetriška teigiama apibrėžtąja matrica. Elementai pagrindinėje matricos įstrižainėje ) buvo sugeneruoti diapazone nuo iki , kur yra matricos dydis, likę elementai generuojami simetriškai intervale nuo 0 iki 1. Tikslumo stabdymo kriterijus (7.51) su parametru buvo naudojamas kaip stabdymo kriterijus

Skaičiavimo eksperimentų rezultatai pateikti 7.21 lentelėje (algoritmų veikimo laikas nurodytas sekundėmis).

Stačiausio nusileidimo būdas

Kai kiekvienoje iteracijoje naudojamas stačiausio nusileidimo metodas, žingsnio dydis A k parenkamas iš minimalios funkcijos sąlygos f(x) nusileidimo kryptimi, t.y.
f(x[k]-a k f"(x[k])) = f(x[k] -af"(x[k])) .

Ši sąlyga reiškia, kad judėjimas išilgai antigradiento vyksta tol, kol funkcijos reikšmė f(x) mažėja. SU matematinis taškasžiūrint kiekvienoje iteracijoje būtina išspręsti vienmačio minimizavimo problemą pagal A funkcijas
j a) = f(x[k]-af"(x[k])) .

Stačiausio nusileidimo metodo algoritmas yra toks.

1. Nustatykite pradžios taško koordinates X.

2. Taške X[k], k = 0, 1, 2, ... apskaičiuoja gradiento reikšmę f"(x[k]) .

3. Nustatomas žingsnio dydis a k, vienmatis sumažinimas per A funkcijos j a) = f(x[k]-af"(x[k])).

4. Nustatomos taško koordinatės X[k+ 1]:

X i [k+ 1]= x i [k]– A k f" i (X[k]), i = 1,..., p.

5. Patikrinamos sterilizacijos proceso sustabdymo sąlygos. Jei jie įvykdomi, skaičiavimai sustoja. Kitu atveju pereikite prie 1 veiksmo.

Nagrinėjamu metodu judėjimo kryptis iš taško X[k] paliečia lygio liniją taške x[k+ 1] (2.9 pav.). Nusileidimo trajektorija yra zigzaginė, o gretimos zigzaginės jungtys yra statmenos viena kitai. Tikrai, žingsnis a k pasirenkamas sumažinant pagal A funkcijos q a) = f(x[k] -af"(x[k])) . Būtina sąlyga minimali funkcija d j (a)/da = 0. Apskaičiavę išvestinę sudėtinga funkcija, gauname gretimų taškų nusileidimo krypčių vektorių ortogonalumo sąlygą:

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

Gradiento metodai susilieja iki minimumo su didelis greitis(greičiu geometrinė progresija) lygioms išgaubtoms funkcijoms. Tokios funkcijos turi didžiausią M ir mažiausiai m antrųjų išvestinių matricos savosios reikšmės (Heso matrica)

mažai skiriasi viena nuo kitos, t.y. matrica N(x) gerai kondicionuotas. Leiskite jums tai priminti savąsias reikšmes aš, i =1, …, Eksperimento rezultatai (viršutinio atsipalaidavimo metodas), matricos yra charakteristikų lygties šaknys

Tačiau praktiškai, kaip taisyklė, minimuojamos funkcijos turi blogai sąlygotas antrųjų išvestinių matricas (t/m<< 1). Tokių funkcijų reikšmės kai kuriomis kryptimis kinta daug greičiau (kartais keliomis eilėmis) nei kitomis kryptimis. Jų lygūs paviršiai paprasčiausiu atveju yra stipriai pailgi, o sudėtingesniais – išlinksta ir atrodo kaip daubos. Funkcijos su tokiomis savybėmis vadinamos griovys.Šių funkcijų antigradiento kryptis (žr. 2.10 pav.) ženkliai nukrypsta nuo krypties iki minimalaus taško, todėl sulėtėja konvergencijos greitis.

Eksperimentai rodo gerą pagreitį (apie 4 ant 8 gijų).

Aukščiau aptarti gradiento metodai randa minimalų funkcijos tašką bendruoju atveju tik begaliniu iteracijų skaičiumi. Konjuguoto gradiento metodas generuoja paieškos kryptis, kurios labiau atitinka sumažinamos funkcijos geometriją. Tai žymiai padidina jų konvergencijos greitį ir leidžia, pavyzdžiui, sumažinti kvadratinę funkciją

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

su simetrine teigiama apibrėžtine matrica N baigtiniu žingsnių skaičiumi p, lygus funkcijos kintamųjų skaičiui. Bet kuri sklandi funkcija, esanti šalia minimalaus taško, gali būti gerai aproksimuota kvadratine funkcija, todėl konjuguoto gradiento metodai sėkmingai naudojami siekiant sumažinti ne kvadratines funkcijas. Tokiu atveju jie nustoja būti baigtiniai ir pasikartojantys.

Pagal apibrėžimą, du Eksperimento rezultatai (viršutinio atsipalaidavimo metodas)- matmenų vektorius X Ir adresu paskambino Apibrėžimas . Vadinami du n-mačiai vektoriai x ir y matricos atžvilgiu H(arba H-konjugatas), jei skaliarinis sandauga (x, Na) = 0.Čia N - simetrinė teigiama apibrėžtoji dydžio matrica n X p.

Viena iš svarbiausių konjuguotų gradientų metodų problemų yra efektyvaus krypčių konstravimo problema. Fletcher-Reeves metodas išsprendžia šią problemą, kiekviename žingsnyje transformuodamas antigradientą -f(x[k]) kryptimi p[k], H-konjuguoti su anksčiau rastomis kryptimis r, r, ..., r[k-1]. Pirmiausia panagrinėkime šį metodą, susijusį su kvadratinės funkcijos sumažinimo problema.

Kryptys r[k] apskaičiuojamas naudojant formules:

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

p = -f"(x) .

b reikšmės k-1 parinkti taip, kad kryptys p[k], r[k-1] buvo H- konjugatas:

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

Dėl to kvadratinei funkcijai

pasikartojantis minimizavimo procesas turi formą

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

Kur r[k] - nusileidimo kryptis į k- m žingsnis; A k - žingsnio dydis. Pastaroji parenkama iš minimalios funkcijos sąlygos f(x) Autorius A judėjimo kryptimi, t. y. išsprendus vienmačio minimizavimo problemą:

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

Dėl kvadratinės funkcijos

Fletcher-Reeves konjuguoto gradiento metodo algoritmas yra toks.

1. Taške X apskaičiuotas p = -f"(x) .

2. Įjungta k- m žingsnis, naudojant aukščiau pateiktas formules, žingsnis nustatomas A k . ir laikotarpis X[k+ 1].

3. Skaičiuojamos reikšmės f(x[k+1]) Ir f"(x[k+1]) .

4. Jei f"(x) = 0, tada taškas X[k+1] yra mažiausias funkcijos taškas f(x). Priešingu atveju nustatoma nauja kryptis p[k+l] iš santykio

ir atliekamas perėjimas prie kitos iteracijos. Ši procedūra aptiks kvadratinės funkcijos minimumą ne daugiau kaip nžingsniai. Sumažinant ne kvadratines funkcijas, Fletcher-Reeves metodas tampa iteracinis iš baigtinio. Šiuo atveju po (p+ 1) 1-4 procedūrų kartojimas kartojamas cikliškai su pakeitimu Xįjungta X[n+1] , o skaičiavimai baigiasi, kur yra nurodytas skaičius. Šiuo atveju naudojamas toks metodo modifikavimas:

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

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

p= -f"( x);

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

Čia - daug indeksų: = (0, n, 2 p, atlyginimas,...), t. y. metodas atnaujinamas kaskart nžingsniai.

Konjuguoto gradiento metodo geometrinė reikšmė yra tokia (2.11 pav.). Nuo tam tikro pradžios taško X nusileidimas vykdomas kryptimi r = -f"(x). Taške X nustatomas gradiento vektorius f"(x). Kadangi X yra mažiausias funkcijos taškas kryptimi r, Tai f"(x) statmena vektoriui r. Tada randamas vektorius r , H- konjuguoti su r. Toliau randame funkcijos minimumą pagal kryptį r ir tt

Ryžiai. 2.11 .

Konjuguotos krypties metodai yra vieni efektyviausių sprendžiant mažinimo problemas. Tačiau reikia pažymėti, kad jie yra jautrūs skaičiavimo proceso metu atsirandančioms klaidoms. At didelis skaičius kintamieji, paklaida gali padidėti tiek, kad procesą teks kartoti net ir kvadratinei funkcijai, t.y. jai skirtas procesas ne visada tinka nžingsniai.

Gradiento metodai, pagrįsti tik gradiento skaičiavimu R(x), yra pirmosios eilės metodai, nes žingsnio intervale jie pakeičia netiesinę funkciją R(x) linijinis.

Antros eilės metodai, naudojantys ne tik pirmąjį, bet ir antrąjį išvestinius R(x) dabartiniame taške. Tačiau šie metodai turi savo neišsprendžiamų problemų – skaičiuojant antrąsias išvestines taške, be to, toli nuo optimalaus, antrųjų išvestinių matrica gali būti blogai kondicionuojama.

Konjuguoto gradiento metodas yra bandymas sujungti pirmos ir antros eilės metodų privalumus, pašalinant jų trūkumus. Įjungta pradiniai etapai(toli nuo optimalaus) metodas veikia kaip pirmos eilės metodas, o šalia optimalaus priartėja prie antros eilės metodų.

Pirmasis žingsnis yra panašus į pirmąjį stačiausio nusileidimo metodo žingsnį, antrasis ir sekantys žingsniai pasirenkami kiekvieną kartą ta kryptimi, kuri suformuota kaip tiesinis gradiento vektorių derinys tam tikrame taške ir ankstesnėje kryptyje.

Metodo algoritmą galima parašyti taip (vektorine forma):

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

x i+1 = x i – h .

Reikšmę α galima apytiksliai rasti iš išraiškos

Algoritmas veikia taip. Nuo pradinio taško X 0 ieško min R(x) gradiento kryptimi (naudojant stačiausio nusileidimo metodą), tada, pradedant nuo rasto taško ir toliau, paieškos kryptis min nustatoma pagal antrąją išraišką. Minimalio paieška kryptimi gali būti atliekama bet kokiu būdu: galite naudoti nuoseklųjį nuskaitymo metodą, nereguliuodami nuskaitymo žingsnio, kai pravažiuojate minimumą, todėl minimumo pasiekimo kryptimi tikslumas priklauso nuo žingsnio dydžio. h.

Dėl kvadratinės funkcijos R(x) sprendimą galima rasti nžingsniai (p– problemos dimensija). Kitoms funkcijoms paieška bus lėtesnė, o kai kuriais atvejais dėl to gali ir nepasiekti optimalaus stiprią įtaką skaičiavimo klaidų.

Viena iš galimų dvimatės funkcijos minimumo paieškos trajektorijų naudojant konjuguoto gradiento metodą parodyta Fig. 1.

Konjuguoto gradiento metodo algoritmas minimumui rasti.

Pradinis etapas. Gradiento metodo vykdymas.

Nustatykite pradinį aproksimaciją x 1 0 ,X 2 0 . Kriterijaus reikšmės nustatymas R(x 1 0 ,X 2 0). Nustatykite k = 0 ir pereikite prie pradinio etapo 1 veiksmo.

1 veiksmas. Ir
.

2 veiksmas. Jei gradiento modulis

3 veiksmas.

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

4 veiksmas. R(x 1k +1, X 2 k +1). Jeigu R(x 1k +1, X 2k +1)< R(x 1k, X 2 k), tada nustatykite k = k+1 ir pereikite prie 3 veiksmo. Jei R(x 1k +1, X 2 k +1) ≥ R(x 1k, X 2 k), tada eikite į pagrindinę sceną.

Pagrindinė scena.

1 veiksmas. Apskaičiuokite 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) . Pagal algoritmą, iš centrinės arba porinės imties, apskaičiuokite dalinių išvestinių verčių vertę Ir . Apskaičiuokite gradiento modulio reikšmę
.

2 veiksmas. Jei gradiento modulis
, tada sustabdykite skaičiavimą ir laikykite tašką (x 1 k, x 2 k) optimaliu tašku. Kitu atveju pereikite prie 3 veiksmo.

3 veiksmas. Apskaičiuokite koeficientą α pagal formulę:

4 veiksmas. Atlikite darbo žingsnį apskaičiuodami pagal formulę

x k+1 = x k – h .

5 veiksmas. Nustatykite kriterijaus reikšmę R(x 1k +1, X 2 k +1). Nustatykite k = k+1 ir pereikite prie 1 veiksmo.

Pavyzdys.

Palyginimui apsvarstykite ankstesnio pavyzdžio sprendimą. Pirmąjį žingsnį žengiame naudodami stačiausio nusileidimo metodą (5 lentelė).

5 lentelė

Geriausias taškas rastas. Šioje vietoje apskaičiuojame išvestines: dR/ dx 1 = –2.908; dR/ dx 2 =1 600; Apskaičiuojame koeficientą α, kuriame atsižvelgiama į gradiento įtaką ankstesniame taške: α = 3,31920 ∙ 3,3192/8,3104 2 =0,160. Mes atliekame darbo žingsnį pagal metodo algoritmą, gauname X 1 = 0,502, X 2 = 1.368. Tada viskas kartojama taip pat. Žemiau, lentelėje. 6 rodo esamas tolesnių veiksmų paieškos koordinates.

6 lentelė



Ar jums patiko straipsnis? Pasidalinkite su draugais!