Eccone uno pulito dall'ottimizzazione: l'algoritmo ADMM (Alternating Direction Method of Multipliers).
Data una funzione oggettiva disaccoppiata e convessa di due variabili (le variabili stesse potrebbero essere vettori) e un vincolo lineare che accoppia le due variabili:
minf1(x1)+f2(x2)
s.t.A1x1+A2x2=b
La funzione Lagrangiana aumentata per questo problema di ottimizzazione sarebbe quindi
Lρ(x1,x2,λ)=f1(x1)+f2(x2)+λT(A1x1+A2x2−b)+ρ2||A1x1+A2x2−b||22
L'algoritmo ADMM funziona approssimativamente eseguendo una divisione "Gauss-Seidel" sulla funzione Lagrangiana aumentata per questo problema di ottimizzazione minimizzando prima rispetto a (mentre rimangono riparato), quindi minimizzando rispetto a (mentre rimangono fissi), quindi aggiornando . Questo ciclo prosegue fino al raggiungimento di un criterio di arresto.Lρ(x1,x2,λ)x1x2,λLρ(x1,x2,λ)x2x1,λλ
(Nota: alcuni ricercatori come Eckstein scartano la vista di divisione di Gauss-Siedel a favore degli operatori prossimali, ad esempio vedi http://rutcor.rutgers.edu/pub/rrr/reports2012/32_2012.pdf )
Per problemi convessi, questo algoritmo ha dimostrato di convergere, per due serie di variabili. Questo non è il caso di tre variabili. Ad esempio, il problema di ottimizzazione
minf1(x1)+f2(x2)+f3(x3)
s.t.A1x1+A2x2+A3x3=b
Anche se tutte le sono convesse, l'approccio simil-ADMM (minimizzando il Lagrangian aumentato rispetto a ciascuna variabile , quindi aggiornando la doppia variabile ) NON è garantito per convergere, come è stato mostrato in questo documento.fxiλ
https://web.stanford.edu/~yyye/ADMM-final.pdf