Algoritmul Frank-Wulff [1] este un algoritm iterativ de optimizare de ordinul întâi pentru optimizarea convexă cu constrângeri . Algoritmul este cunoscut și ca metoda gradientului condiționat [2] , metoda gradientului redus și algoritmul combinației convexe . Metoda a fost propusă inițial de Marguerite Frank și Philip Wolf în 1956 [3] . La fiecare iterație, algoritmul Frank-Wulff ia în considerare o aproximare liniară a funcției obiectiv și se deplasează în direcția minimizării acestei funcții liniare (pe același set de soluții fezabile).
Să presupunem că este o mulțime compactă convexă într-un spațiu vectorial și este o funcție convexă , diferențiabilă cu valoare reală a lui . Algoritmul Frank-Wulff rezolvă problema de optimizare
Minimizați furnizat .În timp ce metodele concurente, cum ar fi coborârea gradientului pentru optimizarea constrânsă, necesită proiectarea fiecărei iterații într-un set de valori permise, algoritmul Frank-Wulf trebuie doar să rezolve o problemă de programare liniară pe același set la fiecare iterație, astfel încât soluția rămâne întotdeauna în setul de soluţii fezabile.
Convergența algoritmului Frank-Wulf este în general subliniară - eroarea funcției obiectiv față de valoarea optimă este după k iterații, cu condiția ca gradientul să fie continuu Lipschitz într-o anumită normă. Aceeași convergență poate fi arătată dacă subproblemele sunt rezolvate doar aproximativ [4] .
Iterațiile algoritmului pot fi întotdeauna reprezentate ca o combinație convexă nedensă de puncte extreme ale setului de soluții fezabile, ceea ce a ajutat la popularitatea algoritmului pentru problemele rare de optimizare greedy în învățarea automată și procesarea semnalului [5] , ca precum și pentru găsirea fluxurilor minime de cost în rețelele de transport [6] .
Dacă setul de soluții fezabile este dat de o mulțime de inegalități liniare, atunci subproblema rezolvată la fiecare iterație devine o problemă de programare liniară .
Deși rata de convergență din cel mai rău caz pentru cazul general nu poate fi îmbunătățită, se pot obține rate de convergență mai mari pentru probleme speciale, cum ar fi problemele strict convexe [7] .
Deoarece funcția este convexă , pentru oricare două puncte avem:
Acest lucru este valabil și pentru soluția optimă (necunoscută) . Adică . Cea mai bună limită inferioară luând în considerare un punct este dată de formulă
Această ultimă problemă este rezolvată la fiecare iterație a algoritmului Frank-Wulff, astfel încât soluția subproblemei de găsire a direcției la a-a iterație poate fi utilizată pentru a determina limite inferioare crescătoare la fiecare iterație prin atribuirea și
Asemenea limite inferioare ale valorii optime necunoscute sunt foarte importante în practică, deoarece pot fi utilizate ca criteriu pentru oprirea algoritmului și oferă un indicator eficient al calității aproximării la fiecare iterație, de când întotdeauna .
S-a demonstrat că decalajul de dualitate , care este diferența dintre și limita inferioară , scade în aceeași rată, i.e.
de optimizare | Metode|
---|---|
Unidimensional |
|
Comanda zero | |
Prima comanda | |
a doua comanda | |
Stochastic | |
Metode de programare liniară | |
Metode de programare neliniară |