Aqui está um excelente da otimização: o algoritmo ADMM (Alternating Direction Method of Multipliers).
Dada uma função objetiva desacoplada e convexa de duas variáveis (as próprias variáveis poderiam ser vetores) e uma restrição linear acoplando as duas variáveis:
min f1 1( x1 1) + f2( x2)
s . t .UMA1 1x1 1+ A2x2= b
A função Lagrangiana Aumentada para esse problema de otimização seria então
euρ( x1 1, x2, λ ) = f1 1( x1 1) + f2( x2) + λT( A1 1x1 1+ A2x2- b ) + ρ2| | UMA1 1x1 1+ A2x2- b | |22
O algoritmo ADMM funciona basicamente executando uma divisão "Gauss-Seidel" na função Lagrangiana aumentada para esse problema de otimização, minimizando euρ( x1 1, x2, λ ) primeiro em relação a x1 1 (enquanto x2, λ permanecer fixo), minimizando euρ( x1 1, x2, λ ) em relação a x2 (enquanto x1 1, λ permanecer fixo) e, em seguida, atualizando λ. Este ciclo continua até que um critério de parada seja alcançado.
(Nota: alguns pesquisadores como Eckstein descartam a exibição de divisão de Gauss-Siedel em favor de operadores proximais, por exemplo, consulte http://rutcor.rutgers.edu/pub/rrr/reports2012/32_2012.pdf )
Para problemas convexos, foi comprovado que esse algoritmo converge - para dois conjuntos de variáveis. Este não é o caso de três variáveis. Por exemplo, o problema de otimização
min f1 1( x1 1) + f2( x2) + f3( x3)
s . t .UMA1 1x1 1+ A2x2+ A3x3= b
Mesmo que todo f são convexas, a abordagem do tipo ADMM (minimizando o Lagrangiano Aumentado em relação a cada variável xEu, atualizando a variável dupla λ) NÃO garante convergência, como foi mostrado neste documento.
https://web.stanford.edu/~yyye/ADMM-final.pdf