Trecerea în revistă a metodelor de gradient în probleme de optimizare matematică. metode de gradient

metode de gradient

Metodele de optimizare neconstrânsă cu gradient utilizează numai derivatele prime ale funcției obiectiv și sunt metode de aproximare liniară la fiecare pas, i.e. funcția obiectiv la fiecare pas este înlocuită cu un hiperplan tangent la graficul său în punctul curent.

La k-a etapă a metodelor de gradient, trecerea de la punctul Xk la punctul Xk+1 este descrisă prin relația:

unde k este dimensiunea pasului, k este un vector în direcția Xk+1-Xk.

Cele mai abrupte metode de coborâre

Pentru prima dată, o astfel de metodă a fost luată în considerare și aplicată de O. Cauchy în secolul al XVIII-lea. Ideea sa este simplă: gradientul funcției obiectiv f(X) în orice punct este un vector în direcția celei mai mari creșteri a valorii funcției. Prin urmare, antigradientul va fi îndreptat spre cea mai mare scădere a funcției și este direcția celei mai abrupte coborâri. Antigradientul (și gradientul) este ortogonal cu suprafața de nivel f(X) în punctul X. Dacă în (1.2) introducem direcția

atunci aceasta va fi direcția de coborâre cea mai abruptă în punctul Xk.

Obținem formula de tranziție de la Xk la Xk+1:

Anti-gradientul dă doar direcția de coborâre, nu dimensiunea pasului. În general, un pas nu dă un punct minim, așa că procedura de coborâre trebuie aplicată de mai multe ori. La punctul minim, toate componentele gradientului sunt egale cu zero.

Toate metodele de gradient folosesc ideea de mai sus și diferă unele de altele în detalii tehnice: calculul derivatelor printr-o formulă analitică sau aproximarea cu diferențe finite; dimensiunea pasului poate fi constantă, se poate modifica după unele reguli sau poate fi selectată după aplicarea metodelor de optimizare unidimensională în direcția antigradientului etc. etc.

Nu ne vom opri în detaliu, pentru că. metoda cea mai abruptă de coborâre nu este în general recomandată ca o procedură serioasă de optimizare.

Unul dintre dezavantajele acestei metode este că converge către orice punct staționar, inclusiv punctul șa, care nu poate fi o soluție.

Dar cel mai important lucru este convergența foarte lentă a celei mai abrupte coborâri în cazul general. Ideea este că coborârea este „cea mai rapidă” în sens local. Dacă hiperspațiul de căutare este puternic alungit („gârpă”), atunci antigradientul este îndreptat aproape ortogonal spre fundul „gârpă”, adică. cea mai bună direcție pentru a ajunge la minim. În acest sens, o traducere directă a termenului englezesc „steepest descent”, i.e. coborârea pe panta cea mai abruptă este mai în concordanță cu starea de fapt decât termenul „cel mai rapid” adoptat în literatura de specialitate în limba rusă. O cale de ieșire în această situație este utilizarea informațiilor oferite de derivatele a doua parțiale. O altă cale de ieșire este schimbarea scalelor variabilelor.

gradient derivat de aproximare liniară

Metoda gradientului conjugat Fletcher-Reeves

Metoda gradientului conjugat construiește o secvență de direcții de căutare care sunt combinații liniare dintre direcția de coborâre cea mai abruptă curentă și direcțiile de căutare anterioare, de exemplu.

iar coeficienţii sunt aleşi astfel încât să se conjugă direcţiile de căutare. A dovedit că

și acesta este un rezultat foarte valoros care vă permite să construiți un algoritm de optimizare rapid și eficient.

Algoritmul Fletcher-Reeves

1. În X0 se calculează.

2. La pasul k, folosind o căutare unidimensională în direcție, se găsește minimul lui f(X), care determină punctul Xk+1.

  • 3. Calculați f(Xk+1) și.
  • 4. Direcția este determinată din raportul:
  • 5. După (n+1)-a iterație (adică cu k=n), se efectuează o repornire: se presupune X0=Xn+1 și se realizează trecerea la pasul 1.
  • 6. Algoritmul se oprește când

unde este o constantă arbitrară.

Avantajul algoritmului Fletcher-Reeves este că nu necesită inversarea matricei și economisește memoria computerului, deoarece nu are nevoie de matricele folosite în metodele newtoniene, dar în același timp este aproape la fel de eficient ca algoritmii cvasi-newtonieni. pentru că direcțiile de căutare sunt conjugate reciproc, atunci funcția pătratică va fi minimizată în cel mult n pași. În cazul general, se folosește o repornire, care vă permite să obțineți rezultatul.

Algoritmul Fletcher-Reeves este sensibil la acuratețea unei căutări unidimensionale, astfel încât orice erori de rotunjire care pot apărea trebuie corectate atunci când îl utilizați. De asemenea, algoritmul poate eșua în situațiile în care Hessianul devine prost condiționat. Algoritmul nu are nicio garanție de convergență întotdeauna și peste tot, deși practica arată că algoritmul dă aproape întotdeauna un rezultat.

metode newtoniene

Direcția de căutare corespunzătoare coborârii celei mai abrupte este asociată cu o aproximare liniară a funcției obiectiv. Metodele care utilizează derivate secunde au apărut dintr-o aproximare pătratică a funcției obiectiv, adică atunci când se extinde funcția într-o serie Taylor, termenii de ordinul trei și de ordinul superior sunt eliminați.

unde este matricea hessiană.

Minimul laturii drepte (dacă există) este atins în același loc cu minimul formei pătratice. Să scriem o formulă pentru a determina direcția căutării:

Minimul este atins la

Un algoritm de optimizare în care direcția de căutare este determinată din această relație se numește metoda lui Newton, iar direcția este direcția lui Newton.

În problemele de găsire a minimului unei funcții pătratice arbitrare cu o matrice pozitivă de derivate secunde, metoda lui Newton oferă o soluție într-o singură iterație, indiferent de alegerea punctului de plecare.

Clasificarea metodelor newtoniene

De fapt, metoda lui Newton constă într-o singură aplicare a direcției newtoniene pentru a optimiza funcția pătratică. Dacă funcția nu este pătratică, atunci următoarea teoremă este adevărată.

Teorema 1.4. Dacă matricea Hessiană a unei funcții generale neliniare f în punctul minim X* este pozitiv-definită, punctul de plecare este ales suficient de aproape de X*, iar lungimile treptelor sunt alese corect, atunci metoda lui Newton converge către X* cu viteza pătratică.

Metoda lui Newton este considerată a fi cea de referință și toate procedurile de optimizare dezvoltate sunt comparate cu aceasta. Cu toate acestea, metoda lui Newton funcționează numai cu o matrice Hessiană pozitiv-definită și bine condiționată (determinantul său trebuie să fie substanțial mai mare decât zero, mai precis, raportul dintre cele mai mari și mai mici valori proprii ar trebui să fie aproape de unu). Pentru a elimina acest neajuns, se folosesc metode newtoniene modificate, folosind direcțiile newtoniene pe cât posibil și abaterea de la acestea doar atunci când este necesar.

Principiul general al modificărilor metodei lui Newton este următorul: la fiecare iterație, se construiește mai întâi o matrice pozitiv-definită „în legătură” cu și apoi se calculează prin formula

Deoarece este definit pozitiv, atunci - va fi în mod necesar direcția de coborâre. Procedura de construcție este organizată astfel încât să coincidă cu matricea hessiană dacă este definită pozitivă. Aceste proceduri sunt construite pe baza unor extinderi de matrice.

Un alt grup de metode, care sunt aproape la fel de rapide ca metoda Newton, se bazează pe aproximarea matricei Hessian folosind diferențe finite, deoarece nu este necesar să se utilizeze valorile exacte ale derivatelor pentru optimizare. Aceste metode sunt utile atunci când calculul analitic al derivatelor este dificil sau pur și simplu imposibil. Astfel de metode se numesc metode Newton discrete.

Cheia eficacității metodelor de tip newtonian este luarea în considerare a informațiilor despre curbura funcției care este minimizată, care este conținută în matricea Hessiană și face posibilă construirea modelelor pătratice exacte la nivel local ale funcției obiectiv. Dar este posibil să colectați și să acumulați informații despre curbura unei funcții pe baza observării schimbării gradientului în timpul iterațiilor de coborâre.

Metodele corespunzătoare bazate pe posibilitatea de a aproxima curbura unei funcții neliniare fără formarea explicită a matricei sale hessiene se numesc metode cvasi-newtoniene.

Rețineți că atunci când se construiește o procedură de optimizare de tip newtonian (inclusiv cea cvasi-newtoniană), este necesar să se țină cont de posibilitatea apariției unui punct de șa. În acest caz, vectorul celei mai bune direcții de căutare va fi întotdeauna direcționat către punctul de șa, în loc să se îndepărteze de acesta în direcția „jos”.

Metoda Newton-Raphson

Această metodă constă în utilizarea repetată a direcției newtoniene la optimizarea funcțiilor care nu sunt pătratice.

Formula iterativă de bază pentru optimizarea multivariată

se foloseşte în această metodă la alegerea direcţiei de optimizare din relaţie

Lungimea reală a pasului este ascunsă în direcția newtoniană nenormalizată.

Deoarece această metodă nu necesită valoarea funcției obiectiv în punctul curent, uneori este numită metoda de optimizare indirectă sau analitică. Capacitatea lui de a determina minimul unei funcții pătratice într-un singur calcul pare extrem de atractivă la prima vedere. Cu toate acestea, acest „calcul unic” este costisitor. În primul rând, este necesar să se calculeze n derivate parțiale de ordinul întâi și n(n+1)/2 - din al doilea. În plus, matricea Hessiană trebuie inversată. Acest lucru necesită deja aproximativ n3 operații de calcul. Cu același cost, metodele de direcție conjugată sau metodele de gradient conjugat pot dura aproximativ n pași, adică. obține aproape același rezultat. Astfel, iterația metodei Newton-Raphson nu oferă avantaje în cazul unei funcții pătratice.

Dacă funcția nu este pătratică, atunci

  • - direcția inițială deja, în general, nu indică punctul minim efectiv, ceea ce înseamnă că iterațiile trebuie repetate în mod repetat;
  • - un pas de unitate de lungime poate duce la un punct cu o valoare mai slabă a funcţiei obiectiv, iar căutarea poate da direcţia greşită dacă, de exemplu, Hessianul nu este definit pozitiv;
  • - Hessianul poate deveni prost condiționat, făcând imposibilă inversarea lui, i.e. determinarea direcției pentru următoarea iterație.

Strategia în sine nu distinge care punct staționar (minim, maxim, punct de șa) se apropie de căutare, iar calculul valorilor funcției obiectiv, prin care ar fi posibil să urmăriți dacă funcția este în creștere, nu se face. Deci, totul depinde de care punct staționar din zona de atracție este punctul de pornire al căutării. Strategia Newton-Raphson este rareori folosită singură, fără modificări de un fel sau altul.

metode Pearson

Pearson a propus mai multe metode de aproximare a Hessianului invers fără a calcula în mod explicit derivatele secunde, i.e. prin observarea schimbărilor în direcţia antigradientului. În acest caz, se obțin direcții conjugate. Acești algoritmi diferă doar în detalii. Iată cele care sunt cele mai utilizate în domeniile aplicate.

Algoritmul lui Pearson #2.

În acest algoritm, Hessianul invers este aproximat de matricea Hk calculată la fiecare pas prin formula

O matrice simetrică arbitrară pozitiv-definită este aleasă ca matrice inițială H0.

Acest algoritm Pearson duce adesea la situații în care matricea Hk devine prost condiționată, și anume, începe să oscileze, oscilând între definit pozitiv și definit nepozitiv, în timp ce determinantul matricei este aproape de zero. Pentru a evita această situație, este necesar să resetați matricea la fiecare n pași, echivalând-o cu H0.

Algoritmul lui Pearson #3.

În acest algoritm, matricea Hk+1 este determinată din formulă

Hk+1 = Hk +

Calea de coborâre generată de algoritm este similară cu comportamentul algoritmului Davidon-Fletcher-Powell, dar pașii sunt puțin mai scurti. Pearson a propus și o variantă a acestui algoritm cu o reordonare ciclică a matricei.

Algoritm proiectiv Newton-Raphson

Pearson a propus ideea unui algoritm în care matricea este calculată din relație

H0=R0, unde matricea R0 este aceeași cu matricele inițiale din algoritmii anteriori.

Când k este un multiplu al numărului de variabile independente n, matricea Hk este înlocuită cu matricea Rk+1 calculată ca sumă

Valoarea Hk(f(Xk+1) - f(Xk)) este proiecția vectorului de creștere a gradientului (f(Xk+1)-f(Xk)), ortogonală cu toți vectorii de creștere a gradientului din pașii anteriori. După fiecare n pași, Rk este o aproximare a inversului Hessian H-1(Xk), deci în esență se efectuează o căutare Newton (aproximativ).

Metoda Davidon-Fletcher-Powell

Această metodă are alte denumiri – metoda metrică variabilă, metoda cvasi-Newton, deoarece el folosește ambele abordări.

Metoda Davidon-Fletcher-Powell (DFP) se bazează pe utilizarea direcțiilor newtoniene, dar nu necesită calculul inversului Hessian la fiecare pas.

Direcția de căutare la pasul k este direcția

unde Hi este o matrice simetrică pozitiv-definită care este actualizată la fiecare pas și, în limită, devine egală cu Hessianul invers. Matricea de identitate este de obicei aleasă ca matrice inițială H. Procedura DFT iterativă poate fi reprezentată după cum urmează:

  • 1. La pasul k, există un punct Xk și o matrice pozitiv-definită Hk.
  • 2. Selectați ca nouă direcție de căutare

3. Căutarea unidimensională (de obicei prin interpolare cubică) de-a lungul direcției determină k minimizarea funcției.

4. Baza.

5. Baza.

6. Determinat de și. Dacă Vk sau sunt suficient de mici, procedura se încheie.

  • 7. Setați Uk = f(Xk+1) - f(Xk).
  • 8. Matricea Hk este actualizată conform formulei

9. Măriți k cu unu și reveniți la pasul 2.

Metoda este eficientă în practică dacă eroarea de calcul a gradientului este mică și matricea Hk nu devine prost condiționată.

Matricea Ak asigură convergența lui Hk la G-1, matricea Bk asigură definiția pozitivă a lui Hk+1 în toate etapele și exclude H0 în limită.

În cazul unei funcţii pătratice

acestea. algoritmul DFP folosește direcții conjugate.

Astfel, metoda DFT folosește atât ideile abordării newtoniene, cât și proprietățile direcțiilor conjugate, iar la minimizarea funcției pătratice, converge în cel mult n iterații. Dacă funcția optimizată are o formă apropiată de o funcție pătratică, atunci metoda DFP este eficientă datorită unei bune aproximări a lui G-1 (metoda lui Newton). Dacă funcția obiectiv are o formă generală, atunci metoda DFP este eficientă datorită utilizării direcțiilor conjugate.

Metode de optimizare a gradientului

Problemele de optimizare cu relații neliniare sau greu de calculat care determină criteriul și constrângerile de optimizare fac obiectul programării neliniare. De regulă, soluțiile la problemele de programare neliniară pot fi găsite numai prin metode numerice folosind tehnologia computerizată. Dintre acestea, cele mai frecvent utilizate sunt metodele gradient (metode de relaxare, gradient, cea mai abruptă coborâre și ascensiune), metodele de căutare deterministă non-gradient (metode de scanare, simplex etc.) și metodele de căutare aleatoare. Toate aceste metode sunt utilizate în determinarea numerică a optimilor și sunt acoperite pe larg în literatura de specialitate.

În cazul general, valoarea criteriului de optimizare R poate fi văzută ca o funcție R(x b xx..., x n), definite în spațiu n-dimensional. Deoarece nu există o reprezentare grafică vizuală a unui spațiu n-dimensional, vom folosi cazul unui spațiu bidimensional.

În cazul în care un R(l x 2) continuu in regiune D, apoi în jurul punctului optim M°(xi°, x z°) este posibil să se deseneze o linie închisă în acest plan, de-a lungul căreia valoarea R= const. Există multe astfel de linii, numite linii de niveluri egale, care pot fi trase în jurul punctului optim (în funcție de pas

Dintre metodele utilizate pentru rezolvarea problemelor de programare neliniară, un loc semnificativ îl ocupă metodele de găsire a soluțiilor bazate pe analiza derivatei în raport cu direcția funcției care se optimizează. Dacă în fiecare punct al spațiului o funcție scalară a mai multor variabile ia valori bine definite, atunci în acest caz avem de-a face cu un câmp scalar (câmp de temperatură, câmp de presiune, câmp de densitate etc.). Câmpul vectorial (câmpul de forțe, viteze etc.) este definit într-un mod similar. Izoterme, izobare, izocrone etc. - toate acestea sunt linii (suprafețe) de niveluri egale, valori egale ale unei funcții (temperatura, presiune, volum etc.). Deoarece valoarea funcției se modifică de la un punct la altul în spațiu, devine necesar să se determine viteza de schimbare a funcției în spațiu, adică derivata în direcție.

Conceptul de gradient este utilizat pe scară largă în calculele de inginerie pentru a găsi extremele funcțiilor neliniare. Metodele gradientului sunt metode numerice de tipul de căutare. Ele sunt universale și mai ales eficiente în cazurile de căutare a extremelor de funcții neliniare cu restricții, precum și atunci când funcția analitică este complet necunoscută. Esența acestor metode este de a determina valorile variabilelor care furnizează extremul funcției obiectiv prin deplasarea de-a lungul gradientului (când se caută max) sau în sens invers (min). Diverse metode de gradient diferă unele de altele în modul în care este determinată mișcarea către optim. Concluzia este că dacă liniile sunt niveluri egale R(xu x i) caracterizaţi grafic dependenţa R(x\jc?), atunci căutarea punctului optim poate fi efectuată în diferite moduri. De exemplu, desenați o grilă pe un plan x\, xr cu indicarea valorilor R la nodurile grilei (Fig. 2.13).

Apoi puteți alege dintre valorile nodale ale extremei. Această cale nu este rațională, este asociată cu un număr mare de calcule, iar precizia este scăzută, deoarece depinde de pas, iar optimul poate fi situat între noduri.

Metode numerice

Modelele matematice conțin relații întocmite pe baza unei analize teoretice a proceselor studiate sau obținute în urma experimentelor de prelucrare (tabele de date, grafice). În orice caz, modelul matematic descrie doar aproximativ procesul real. Prin urmare, problema acurateții, adecvarea modelului este cea mai importantă. Necesitatea aproximărilor apare chiar în soluția ecuațiilor. Până de curând, modelele care conțineau ecuații diferențiale parțiale sau neliniare nu puteau fi rezolvate analitic. Același lucru este valabil și pentru numeroase clase de integrale necontractibile. Cu toate acestea, dezvoltarea metodelor de analiză numerică a făcut posibilă extinderea considerabilă a limitelor posibilităților de analiză a modelelor matematice, în special prin utilizarea computerelor.

Metodele numerice sunt folosite pentru aproximarea funcțiilor, pentru a rezolva ecuații diferențiale și sistemele acestora, pentru a integra și diferenția, pentru a calcula expresii numerice.

Funcția poate fi definită analitic, tabel, grafic. La efectuarea cercetărilor, o problemă comună este aproximarea unei funcții printr-o expresie analitică care satisface condițiile enunțate. Aceasta realizează patru sarcini:

Selectarea punctelor nodale, efectuarea de experimente la anumite valori (niveluri) ale variabilelor independente (dacă pasul de modificare a factorului este ales incorect, fie vom „sări” o trăsătură caracteristică a procesului studiat, fie vom prelungi procedura și creșterea complexității găsirii tiparelor);

Alegerea funcțiilor de aproximare sub formă de polinoame, formule empirice, în funcție de conținutul unei anumite probleme (trebuie să ne străduim la simplificarea maximă a funcțiilor de aproximare);

Selectarea și utilizarea criteriilor de bunăstare a potrivirii, pe baza cărora se regăsesc parametrii funcțiilor de aproximare;

Îndeplinirea cerințelor unei precizii date la alegerea unei funcții de aproximare.

În problemele de aproximare a funcțiilor prin polinoame se folosesc trei clase

Combinație liniară de funcții de putere (seria Taylor, polinoame Lagrange, Newton etc.);

Combinație de funcții cos nx, w ei(seria Fourier);

Polinom format din funcții exp(-anunț).

La găsirea funcției de aproximare se folosesc diverse criterii de acord cu datele experimentale.

La optimizarea prin metoda gradientului, se caută optimul obiectului studiat în direcția celei mai rapide creșteri (scăderi) a variabilei de ieșire, adică. în direcția gradientului. Dar înainte de a face un pas în direcția gradientului, trebuie să îl calculați. Gradientul poate fi calculat fie din modelul disponibil

polinom de gradient dinamic de simulare

unde este derivata parțială în raport cu factorul i;

i, j, k - vectori unitari în direcția axelor de coordonate ale spațiului factorilor, sau în funcție de rezultatele n mișcări de încercare în direcția axelor de coordonate.

Dacă modelul matematic al procesului statistic are forma unui polinom liniar, ai cărui coeficienți de regresie b i sunt derivate parțiale ale expansiunii funcției y = f(X) într-o serie Taylor în puteri ale lui x i , atunci optimul este căutat în direcția gradientului cu un anumit pas h i:

pkfv n (Ch) \u003d și 1 p 1 + și 2 p 2 + ... + și t p t

Direcția este corectată după fiecare pas.

Metoda gradientului, împreună cu numeroasele sale modificări, este o metodă comună și eficientă pentru găsirea optimului obiectelor studiate. Luați în considerare una dintre modificările metodei gradientului - metoda ascensiunii abrupte.

Metoda ascensiunii abrupte, sau altfel metoda Box-Wilson, combină avantajele a trei metode - metoda Gauss-Seidel, metoda gradientului și metoda experimentelor factoriale complete (sau fracționale), ca mijloc de obținere a unui model matematic liniar . Sarcina metodei de ascensiune abruptă este de a efectua pas în direcția celei mai rapide creșteri (sau scăderi) a variabilei de ieșire, adică de-a lungul gradului y (X). Spre deosebire de metoda gradientului, direcția este corectată nu după fiecare pas următor, ci atunci când un extremum parțial al funcției obiectiv este atins la un punct într-o direcție dată, așa cum se face în metoda Gauss-Seidel. În punctul unui extremum parțial, se stabilește un nou experiment factorial, se determină un model matematic și se efectuează din nou o ascensiune abruptă. În procesul de deplasare către optim prin această metodă, se efectuează în mod regulat o analiză statistică a rezultatelor căutării intermediare. Căutarea se încheie atunci când efectele pătratice din ecuația de regresie devin semnificative. Aceasta înseamnă că a fost atinsă regiunea optimă.

Să descriem principiul utilizării metodelor gradient folosind exemplul unei funcții a două variabile

sub rezerva a doua conditii suplimentare:

Acest principiu (fără modificare) poate fi aplicat oricărui număr de variabile, precum și condiții suplimentare. Se consideră planul x 1 , x 2 (Fig. 1). Conform formulei (8), fiecărui punct îi corespunde o anumită valoare a lui F. În Fig.1, liniile F = const aparținând acestui plan sunt reprezentate prin curbe închise care înconjoară punctul M * , unde F este minim. Fie că în momentul inițial valorile x 1 și x 2 corespund punctului M 0 . Ciclul de calcul începe cu o serie de pași de probă. Mai întâi, x 1 primește un mic increment; în acest moment, valoarea lui x 2 este neschimbată. Apoi se determină creșterea rezultată a valorii lui F, care poate fi considerată proporțională cu valoarea derivatei parțiale

(dacă valoarea este întotdeauna aceeași).

Definiția derivatelor parțiale (10) și (11) înseamnă că se găsește un vector cu coordonate și, care se numește gradientul lui F și se notează după cum urmează:

Se știe că direcția acestui vector coincide cu direcția celei mai abrupte creșteri a valorii lui F. Direcția opusă acesteia este „cea mai abruptă coborâre”, cu alte cuvinte, cea mai abruptă scădere a valorii lui F.

După găsirea componentelor gradientului, mișcările de probă se opresc și etapele de lucru sunt efectuate în direcția opusă direcției gradientului, iar dimensiunea pasului este cu atât mai mare, cu atât valoarea absolută a vectorului grad F este mai mare. condițiile sunt realizate dacă valorile etapelor de lucru și sunt proporționale cu valorile obținute anterior ale derivatelor parțiale:

unde b este o constantă pozitivă.

După fiecare pas de lucru, se estimează incrementul lui F. Dacă se dovedește a fi negativ, atunci mișcarea este în direcția corectă și trebuie să vă deplasați în aceeași direcție M 0 M 1 mai departe. Dacă în punctul M 1 rezultatul măsurării arată că, atunci mișcările de lucru se opresc și începe o nouă serie de mișcări de probă. În acest caz, gradientul gradF este determinat într-un nou punct M 1 , apoi mișcarea de lucru continuă pe noua direcție găsită de coborâre cea mai abruptă, adică de-a lungul liniei M 1 M 2 etc. Această metodă se numește metoda cea mai abruptă de coborâre/cea mai abruptă ascensiune.

Când sistemul este aproape de un minim, ceea ce este indicat de o valoare mică a cantității

există o trecere la o metodă de căutare mai „prudentă”, așa-numita metodă de gradient. Diferă de cea mai abruptă metodă de coborâre prin faptul că, după determinarea gradului de gradient, se face un singur pas de lucru, apoi o serie de mișcări de probă reîncepe la un nou punct. Această metodă de căutare oferă o stabilire mai precisă a minimului în comparație cu cea mai abruptă metodă de coborâre, în timp ce aceasta din urmă vă permite să vă apropiați rapid de minim. Dacă în timpul căutării punctul M ajunge la limita zonei admisibile și cel puțin una dintre valorile M 1 , M 2 își schimbă semnul, metoda se schimbă și punctul M începe să se deplaseze de-a lungul limitei zonei.

Eficacitatea metodei de urcare abruptă depinde de alegerea scalei variabilelor și de tipul suprafeței de răspuns. Suprafața cu contururi sferice asigură o contracție rapidă la optim.

Dezavantajele metodei de urcare abruptă includ:

1. Limitarea extrapolării. Deplasându-ne de-a lungul gradientului, ne bazăm pe extrapolarea derivatelor parțiale ale funcției obiectiv în raport cu variabilele corespunzătoare. Cu toate acestea, forma suprafeței de răspuns se poate modifica și este necesar să se schimbe direcția căutării. Cu alte cuvinte, mișcarea în avion nu poate fi continuă.

2. Dificultate în găsirea optimului global. Metoda este aplicabilă pentru găsirea numai a optimelor locale.

Vectorul gradient este îndreptat către cea mai rapidă creștere a funcției la un punct dat. Vectorul opus gradientului -grad(/(x)), se numește anti-gradient și este direcționat în direcția celei mai rapide scăderi a funcției. În punctul minim, gradientul funcției este zero. Metodele de ordinul întâi, numite și metode gradient, se bazează pe proprietățile gradientului. Dacă nu există informații suplimentare, atunci de la punctul de pornire x (0 > este mai bine să mergeți la punctul x (1) , situat în direcția antigradientului - cea mai rapidă scădere a funcției. Alegerea antigradientului -grad ( /(x (^)) la punctul x (la obţinem un proces iterativ al formei

În formă de coordonate, acest proces este scris după cum urmează:

Ca criteriu pentru oprirea procesului iterativ, se poate folosi fie condiția (10.2), fie îndeplinirea condiției pentru micșorarea gradientului.

Este posibil și un criteriu combinat, constând în îndeplinirea simultană a condițiilor indicate.

Metodele de gradient diferă unele de altele prin modul în care este aleasă dimensiunea pasului. AÎn metoda pasului constant, este aleasă o valoare a pasului constant pentru toate iterațiile. Un pas destul de mic a^ asigură că funcția scade, adică îndeplinirea inegalităţii

Cu toate acestea, acest lucru poate duce la necesitatea de a efectua un număr suficient de mare de iterații pentru a ajunge la punctul minim. Pe de altă parte, un pas prea mare poate determina creșterea funcției sau poate duce la fluctuații în jurul punctului minim. Sunt necesare informații suplimentare pentru a selecta dimensiunea pasului, astfel încât metodele cu pas constant sunt rareori utilizate în practică.

Mai fiabile și mai economice (din punct de vedere al numărului de iterații) sunt metodele gradient cu pas variabil, când, în funcție de aproximarea obținută, dimensiunea pasului se modifică într-un fel. Ca exemplu de astfel de metodă, luați în considerare cea mai abruptă metodă de coborâre. În această metodă, la fiecare iterație, valoarea pasului n* este selectată din condiția minimului funcției /(x) în direcția de coborâre, adică.

Această condiție înseamnă că mișcarea de-a lungul antigradientului are loc atâta timp cât valoarea funcției f(x) scade. Prin urmare, la fiecare iterație, este necesar să se rezolve problema minimizării unidimensionale în raport cu π a funcției φ(λ) =/(x(/r) - - agrad^x^))). Algoritmul celei mai abrupte metode de coborâre este următorul.

  • 1. Să stabilim coordonatele punctului inițial x^°, precizia soluției aproximative r. Setăm k = 0.
  • 2. În punctul x (/z) calculăm valoarea gradientului grad(/(x (^)).
  • 3. Determinați dimensiunea pasului a^ prin minimizarea unidimensională în raport cu i a funcției cp(i).
  • 4. Definim o noua aproximare a punctului minim x (* +1 > conform formulei (10.4).
  • 5. Verificați condițiile pentru oprirea procesului iterativ. Dacă sunt mulțumiți, atunci calculele se opresc. Altfel, punem kk+ 1 și treceți la pasul 2.

În metoda de coborâre cea mai abruptă, direcția de mișcare din punctul x (*) atinge linia de nivel în punctul x (* +1) . Traiectoria de coborâre este în zig-zag, iar legăturile în zig-zag adiacente sunt ortogonale între ele. Într-adevăr, un pas a^ se alege prin minimizare A funcții ( A). Stare necesară

minim al funcției - = 0. Calcularea derivatei

funcție complexă, obținem condiția de ortogonalitate pentru vectorii direcției de coborâre în puncte învecinate:

Problema minimizării funcției φ(n) poate fi redusă la problema calculării rădăcinii unei funcții a unei variabile g(a) =

Metodele gradientului converg la un minim la rata unei progresii geometrice pentru funcții convexe netede. Astfel de funcții au cele mai mari și mai mici valori proprii ale matricei derivatelor secunde (matrice Hesse)

diferă puțin unul de celălalt, adică matricea H(x) este bine conditionata. Cu toate acestea, în practică, funcțiile minimizate au adesea matrici prost condiționate de derivate secunde. Valorile unor astfel de funcții de-a lungul unor direcții se schimbă mult mai repede decât în ​​alte direcții. Rata de convergență a metodelor de gradient depinde, de asemenea, în mod semnificativ de acuratețea calculelor de gradient. Pierderea preciziei, care apare de obicei în vecinătatea punctelor minime, poate rupe în general convergența procesului de coborâre a gradientului. Prin urmare, metodele gradient sunt adesea folosite în combinație cu alte metode mai eficiente în stadiul inițial de rezolvare a unei probleme. În acest caz, punctul x(0) este departe de punctul minim, iar pașii în direcția antigradientului fac posibilă obținerea unei scăderi semnificative a funcției.

Nu există restricții în problema de optimizare neconstrânsă.

Reamintim că gradientul unei funcții multidimensionale este un vector care este exprimat analitic prin suma geometrică a derivatelor parțiale

Gradientul funcției scalare F(X) la un moment dat este îndreptată spre cea mai rapidă creștere a funcției și este ortogonală cu linia de nivel (suprafețe de valoare constantă F(X), trecând printr-un punct X k). Vectorul opus gradientului  antigradient  este îndreptat în direcția celei mai rapide scăderi a funcției F(X). La punctul extrem grad F(X)= 0.

În metodele cu gradient, mișcarea unui punct la căutarea minimului funcției obiectiv este descrisă de formula iterativă

Unde k  parametrul pas activat k a-a iterație de-a lungul antigradientului. Pentru metodele de alpinism (căutați maximul), trebuie să vă deplasați de-a lungul gradientului.

Diferite variante ale metodelor de gradient diferă între ele în ceea ce privește alegerea parametrului pasului, precum și luarea în considerare a direcției de mișcare în pasul precedent. Luați în considerare următoarele opțiuni pentru metodele de gradient: cu un pas constant, cu un parametru de pas variabil (diviziunea pasului), metoda de coborâre cea mai abruptă și metoda gradientului conjugat.

Metodă cu un parametru de pas constant.În această metodă, parametrul pasului este constant la fiecare iterație. Apare întrebarea: cum să alegeți practic valoarea parametrului pasului? Un parametru de pas suficient de mic poate duce la un număr inacceptabil de mare de iterații necesare pentru a atinge punctul minim. Pe de altă parte, un parametru de pas care este prea mare poate duce la depășirea punctului minim și la un proces de calcul oscilant în jurul acestui punct. Aceste circumstanțe sunt dezavantaje ale metodei. Deoarece este imposibil să ghicim în avans valoarea acceptabilă a parametrului pasului k, atunci devine necesară utilizarea metodei gradientului cu un parametru de pas variabil.

Pe măsură ce se apropie de optim, vectorul gradient scade în magnitudine, tinde spre zero, deci, când k = lungimea pasului const scade treptat. Aproape de optim, lungimea vectorului gradient tinde spre zero. Lungimea vectorului sau norma în n spatiul euclidian -dimensional este determinat de formula

, Unde n- numărul de variabile.

Opțiuni pentru oprirea căutării optimului:


Din punct de vedere practic, este mai convenabil să folosiți al treilea criteriu de oprire (deoarece valorile parametrilor de proiectare sunt de interes), totuși, pentru a determina proximitatea punctului extrem, trebuie să vă concentrați pe al doilea. criteriu. Mai multe criterii pot fi utilizate pentru a opri procesul de calcul.

Luați în considerare un exemplu. Găsiți minimul funcției obiectiv F(X) = (X 1  2) 2 + (X 2  4) 2 . Soluția exactă a problemei X*= (2,0;4,0). Expresii pentru derivate parțiale

,
.

Alegeți un pas k = 0,1. Să căutăm din punctul de plecare X 1 = . Soluția este prezentată sub forma unui tabel.

Metoda gradient cu împărțirea parametrilor pas.În acest caz, în timpul procesului de optimizare, parametrul de pas  k scade dacă, după pasul următor, funcția obiectiv crește (la căutarea unui minim). În acest caz, lungimea pasului este adesea împărțită (împărțită) la jumătate, iar pasul se repetă de la punctul anterior. Aceasta oferă o abordare mai precisă a punctului extremum.

Cea mai abruptă metodă de coborâre. Metodele cu etape variabile sunt mai economice din punct de vedere al numărului de iterații. Dacă lungimea optimă a pasului  k de-a lungul direcției antigradientului este o soluție la o problemă de minimizare unidimensională, atunci această metodă se numește metoda cea mai abruptă de coborâre. În această metodă, la fiecare iterație, se rezolvă problema minimizării unidimensionale:

F(X k+1 )=F(X k k S k )=min F( k ), S k = F(X);

k >0

.

În această metodă, mișcarea în direcția antigradientului continuă până la atingerea minimului funcției obiectiv (până când valoarea funcției obiectiv scade). Folosind un exemplu, să luăm în considerare modul în care funcția obiectiv poate fi scrisă analitic la fiecare pas, în funcție de parametrul necunoscut

Exemplu. min F(X 1 , X 2 ) = 2X 1 2 + 4X 2 3 3. Apoi F(X)= [ 4X 1 ; 12X 2 2 ]. Lasă punctul X k = , prin urmare F(X)= [ 8; 12], F(X k S k ) =

2(2  8) 2 + 4(1  12) 3  3. Este necesar să se găsească  care să livreze minimul acestei funcții.

Cel mai abrupt algoritm de coborâre (pentru găsirea minimului)

pas inițial. Fie  constanta de oprire. Selectați punctul de pornire X 1 , a pune k = 1 și treceți la pasul principal.

Pas de bază. În cazul în care un || gradF(X)||< , apoi încheiați căutarea, altfel determinați F(X k ) si gaseste k  rezolvarea optimă a problemei de minimizare F(X k k S k ) la k 0. A pune X k +1 = X k k S k, atribui k =

k + 1 și repetați pasul principal.

Pentru a găsi minimul unei funcții a unei variabile în metoda cea mai abruptă de coborâre, puteți utiliza metode de optimizare unimodală. Dintr-un grup mare de metode, luați în considerare metoda dihotomiei (bisectia) și secțiunea de aur. Esența metodelor de optimizare unimodală este de a restrânge intervalul de incertitudine al locației extremului.

Metoda dihotomiei (bisectia)Pasul inițial. Alegeți constanta de distincție  și lungimea finală a intervalului de incertitudine l. Valoarea lui  ar trebui să fie cât mai mică posibil, totuși, permițând distingerea valorilor funcției F() și F() . Lăsa [ A 1 , b 1 ]  interval iniţial de incertitudine. A pune k =

Etapa principală constă dintr-un număr finit de iterații de același tip.

k-a iterație.

Pasul 1.În cazul în care un b k A k l, apoi calculul se termină. Soluţie X * = (A k + b k )/2. In caz contrar

,
.

Pasul 2În cazul în care un F( k ) < F( k ), a pune A k +1 = A k ; b k +1 = k. In caz contrar A k +1 = kși b k +1 = b k. Atribui k = k + 1 și treceți la pasul 1.

Metoda secțiunii de aur. O metodă mai eficientă decât metoda dihotomiei. Vă permite să obțineți o valoare dată a intervalului de incertitudine în mai puține iterații și necesită mai puține calcule ale funcției obiectiv. În această metodă, noul punct de împărțire al intervalului de incertitudine este calculat o dată. Noul punct este plasat la distanță

 = 0,618034 de la sfârşitul intervalului.

Algoritmul raportului de aur

Pasul inițial. Alegeți o lungime finită acceptabilă a intervalului de incertitudine l > 0. Lăsa [ A 1 , b 1 ]  interval iniţial de incertitudine. A pune 1 = A 1 +(1 )(b 1 A 1 ) și 1 = A 1 + (b 1 A 1 ) , Unde = 0,618 . calculati F( 1 ) și F( 1 ) , a pune k = 1 și treceți la pasul principal.

Pasul 1.În cazul în care un b k A k l, apoi calculele se termină X * = (A k + b k )/ 2. În caz contrar, dacă F( k ) > F( k ) , apoi treceți la pasul 2; dacă F( k ) F( k ) , treceți la pasul 3.

Pasul 2 A pune A k +1 = k , b k +1 = b k , k +1 = k , k +1 = A k +1 + (b k +1 A k +1 ). calculati F( k +1 ), treceți la pasul 4.

Pasul 3 A pune A k +1 = A k , b k +1 = k , k +1 = k , k +1 = A k +1 + (1 )(b k +1 A k +1 ). calculati F( k +1 ).

Pasul 4 Atribui k = k + 1, treceți la pasul 1.

La prima iterație sunt necesare două evaluări ale funcției, la toate iterațiile ulterioare, doar una.

Metoda gradientului conjugat (Fletcher-Reeves).În această metodă, alegerea direcției de mișcare pe k+ 1 pas ia in considerare schimbarea directiei pe k Etapa. Vectorul direcției de coborâre este o combinație liniară a direcției anti-gradient și a direcției anterioare de căutare. În acest caz, la minimizarea funcțiilor de râpă (cu jgheaburi lungi înguste), căutarea nu este perpendiculară pe râpă, ci de-a lungul acesteia, ceea ce vă permite să ajungeți rapid la minim. Când se caută un extremum folosind metoda gradientului conjugat, coordonatele punctului sunt calculate prin expresie X k +1 = X k V k +1 , Unde V k +1 este un vector calculat prin următoarea expresie:

.

Prima iterație se bazează de obicei V = 0 și se efectuează căutarea anti-gradient, ca în metoda de coborâre cu cea mai abruptă. Apoi direcția de mișcare se abate de la direcția antigradientului cu atât mai mult, cu atât lungimea vectorului gradientului s-a schimbat mai semnificativ la ultima iterație. După n pașii de corectare a funcționării algoritmului fac pasul obișnuit de-a lungul antigradientului.

Algoritmul metodei gradientului conjugat

Pasul 1. Introduceți punctul de pornire X 0 , precizie , dimensiune n.

Pasul 2 A pune k = 1.

Pasul 3 Pune vector V k = 0.

Pasul 4 calculati grad F(X k ).

Pasul 5 Calculați Vector V k +1.

Pasul 6 Efectuați căutarea vectorială 1D V k +1.

Pasul 7În cazul în care un k < n, a pune k = k + 1 și treceți la pasul 4, altfel treceți la pasul 8.

Pasul 8 Dacă lungimea vectorului V mai mic decât , terminați căutarea, în caz contrar treceți la pasul 2.

Metoda direcției conjugate este una dintre cele mai eficiente în rezolvarea problemelor de minimizare. Metoda împreună cu căutarea unidimensională este adesea folosită în practică în CAD. Cu toate acestea, trebuie remarcat faptul că este sensibil la erorile care apar în timpul procesului de calcul.

Dezavantajele metodelor de gradient

    În problemele cu un număr mare de variabile, este dificil sau imposibil să se obțină derivate sub formă de funcții analitice.

    Atunci când se calculează derivate folosind scheme de diferențe, eroarea rezultată, în special în vecinătatea unui extremum, limitează posibilitățile unei astfel de aproximări.

CATEGORII

ARTICOLE POPULARE

2022 "kingad.ru" - examinarea cu ultrasunete a organelor umane