QPALM
A proximal augmented Lagrangian method for QPs.
|
Problem data scaling during setup. More...
Go to the source code of this file.
Functions | |
void | scale_data (QPALMWorkspace *work) |
Scale problem matrices. More... | |
Problem data scaling during setup.
This file includes the routine that is called during setup to scale the problem data, and initial guesses if the problem is warm-started. Scaling the problem is useful to prevent large changes in the active set and to guard against ill-conditioning in the objective function.
void scale_data | ( | QPALMWorkspace * | work | ) |
Scale problem matrices.
Ruiz scaling [4] is applied to the constraint matrix A. This means that the rows and columns of A are scaled elementwise by the square root of their infinity norm, and this for a number of work->settings->scaling iterations. The resulting scaling can be written as , where
and
are the row and column scaling diagonal matrices respectively. The upper and lower bounds are also scaled with
, thus
. The primal variables are transformed using
, resulting in
. Therefore, also the cost matrix Q and vector q have to be scaled with
,
and
. Finally the objective function is scaled with a scalar
, thus
, where
. The dual variables in the scaled problem become
. The diagonals of
and
are stored and used in the remainder of the problem.
work | Workspace |