![]() |
SuperSCS
1.3.2
|
This is the most trivial choice where \(d_k = -Rx_k\), but typically does not lead to high performance.
Directions are computed according to the following procedure:
In Anderson's acceleration, we update a cache of past values of vectors \(y_i\) and \(s_i\).
We need to solve a linear system whose LHS matrix is \(l\times m\), where \(m\) is the memory length. We do so using the SVD decomposition.
The direction is computed by
\begin{eqnarray*} d_k = -Rx_k - (S_k-Y_k)t_k, \end{eqnarray*}
where \(t_k\) is a solution of the linear system \(Y_kt_k = Rx_k\), or, if the system does not have a solution, a solution of the corresponding least-squares problem (solved using SVD).
Matrices \(Y_k\) and \(S_k\) are buffers of past vectors \(y_k\) and \(s_k\) respectively, that is
\begin{eqnarray*} S_k = \begin{bmatrix} s_k & s_{k-1} & \cdots & s_{k-m+1} \end{bmatrix}\\ Y_k = \begin{bmatrix} y_k & y_{k-1} & \cdots & y_{k-m+1} \end{bmatrix} \end{eqnarray*}
Lastly, \(R\) is the fixed point operator.
Full Broyden method (for experimental purposes only, not recommended unless the problem is of very low dimension).