QPALM 1.1.3b1
Proximal Augmented Lagrangian method for Quadratic Programs
Loading...
Searching...
No Matches
Macros | Functions
nonconvex.c File Reference

Detailed Description

Routines to deal with nonconvex QPs.

Author
Ben Hermans

The functions in this file serve to set up QPALM for a nonconvex QP. The main routine in this file computes the minimum eigenvalue of a square matrix, based on lobpcg [3]. Furthermore, some setting updates are performed. In addition, the spectrum of a matrix can be upper bounded using Gershgorin's circle theorem, which is used in the gamma_boost routine in iteration.c.

Definition in file nonconvex.c.

#include "nonconvex.h"
#include "types.h"
#include "constants.h"
#include "global_opts.h"
#include "lin_alg.h"
#include "util.h"
#include <math.h>
+ Include dependency graph for nonconvex.c:

Go to the source code of this file.

Macros

#define LOBPCG_TOL   1e-5
 Tolerance on the infinity norm of the residual in lobpcg.
 
#define M_PI   3.14159265358979323846
 
#define RREF_TOL   1e-8
 

Functions

void set_settings_nonconvex (QPALMWorkspace *work, solver_common *c)
 Set the proximal parameters for nonconvex QPs.
 
c_float gershgorin_max (solver_sparse *M, c_float *center, c_float *radius)
 Calculate the Gershgorin upper bound for the eigenvalues of a symmetric matrix.
 

Macro Definition Documentation

◆ LOBPCG_TOL

#define LOBPCG_TOL   1e-5

Tolerance on the infinity norm of the residual in lobpcg.

Definition at line 22 of file nonconvex.c.

◆ M_PI

#define M_PI   3.14159265358979323846

Definition at line 25 of file nonconvex.c.

◆ RREF_TOL

#define RREF_TOL   1e-8

Definition at line 28 of file nonconvex.c.

Function Documentation

◆ gershgorin_max()

c_float gershgorin_max ( solver_sparse M,
c_float center,
c_float radius 
)

Calculate the Gershgorin upper bound for the eigenvalues of a symmetric matrix.

This routine uses the Gershgorin circle theorem to compute an upper bound on the eigenvalues of a matrix.

Note
M is assumed to be symmetric
Parameters
MMatrix
centerVector of size M->ncol to hold the values of the centers of the discs
radiusVector of size M->ncol to hold the values of the radii of the discs
Returns
Upper bound on the eigenvalues of M

Definition at line 353 of file nonconvex.c.

+ Here is the caller graph for this function:

◆ set_settings_nonconvex()

void set_settings_nonconvex ( QPALMWorkspace work,
solver_common c 
)

Set the proximal parameters for nonconvex QPs.

QPALM can deal with nonconvex QPs, by setting the initial and maximal proximal penalty small enough (smaller than \( \frac{1}{|\lambda_\textrm{min}|} \)). This ensures positive definiteness of \( Q + \frac{1}{\gamma}I \) during the iterations. The minimum eigenvalue is computed using lobpcg.

Parameters
workWorkspace
cLinear systems solver environment

Definition at line 331 of file nonconvex.c.