# Second Order Cone Linear Complementarity Problem (SOCLCP)¶

## Problem statement¶

Given

• a symmetric positive semi definite matrix $${M} \in {{\mathrm{I\!R}}}^{n \times n}$$

• a vector $${q} \in {{\mathrm{I\!R}}}^n$$

• a vector of coefficients $$\mu \in{{\mathrm{I\!R}}}^{n_c}$$

the second order cone linear complementarity problem (SOCLCP) is to find two vectors $$u\in{{\mathrm{I\!R}}}^n$$ , and $$r\in {{\mathrm{I\!R}}}^n$$ , denoted by $$\mathrm{SOCCLP}(M,q,\mu)$$ such that

$\begin{split}\begin{eqnarray*} \begin{cases} u = M r + q \\ \ C^\star_{\mu} \ni {u} \perp r \in C_{\mu} \end{cases} \end{eqnarray*}\end{split}$

and the set $$C^{\alpha,\star}_{\mu^\alpha}$$ is its dual.

The set C is the second order cone given by

$\begin{eqnarray} C_{\mu} = \{ r \} = \prod_{\alpha =1}^{n_c} C^\alpha_{\mu} \end{eqnarray}$

with

$\begin{eqnarray} C^\alpha_{\mu} = \{ r \mid \|[r_1, \ldots, r_{n^\alpha}]\| \leq \mu^\alpha * r_0 \} \subset {\mathrm{I\!R}}^{n^\alpha} \end{eqnarray}$

## Implementation in numerics¶

Structure to define the problem: SecondOrderConeLinearComplementarityProblem.

The generic driver for all SOCLCP problems is soclcp_driver().

Solvers list SOCLCP_SOLVER

## SOCLCP available solvers¶

### Gauss-Seidel (SICONOS_SOCLCP_NSGS)¶

PSOR (Gauss-Seidel with overrelaxation) solver.

driver: soclcp_nsgs()

parameters:

• iparam[SICONOS_IPARAM_MAX_ITER] = 1000;

• iparam[SICONOS_IPARAM_ERROR_EVALUATION] : error computation method,

• SICONOS_ERROR_FULL_EVALUATION Complete error computation with v computation (Default)

• SICONOS_ERROR_LIGHT_EVALUATION for Light error computation with incremental values on r verification of absolute error at the end

• SICONOS_ERROR_LIGHT_EVALUATION_NO_UPDATE for light error computation, without update for v

• iparam[SICONOS_IPARAM_SOCLCP_NSGS_WITH_RELAXATION] = 0;

• iparam[SICONOS_IPARAM_SOCLCP_NSGS_WITH_RELAXATION] : method uses overrelaxation

• iparam[SICONOS_IPARAM_NSGS_SHUFFLE] : if 1, shuffle the contact indices in the loop

• dparam[SICONOS_DPARAM_TOL] = 1e-4;

• dparam[SICONOS_DPARAM_SOCLCP_NSGS_RELAXATION] = 1., relaxation parameter value

internal solver: SICONOS_SOCLCP_ProjectionOnConeWithLocalIteration.

### VI, fixed-point (SICONOS_SOCLCP_VI_FPP)¶

VI formulation and fixed point projection.

driver: soclcp_VI_FixedPointProjection()

parameters: same as SICONO_VI_FPP, see VI Available solvers.

### VI, Extra-gradient (SICONOS_SOCLCP_VI_EG)¶

driver: soclcp_VI_ExtraGradient()

parameters: same as SICONO_VI_EG, see VI Available solvers.

### VI, Extra-gradient (SICONOS_SOCLCP_VI_EG)¶

driver: soclcp_VI_ExtraGradient()

parameters: same as SICONO_VI_EG, see VI Available solvers.

### Projections¶

Used as internal solver for SICONOS_SOCLCP_NSGS.

ids: SICONOS_SOCLCP_ProjectionOnConeWithLocalIteration, SICONOS_SOCLCP_ProjectionOnCone,

SICONOS_SOCLCP_ProjectionOnConeWithRegularization.

drivers:

• soclcp_projectionOnCone_solve() for ProjectionOnCone and ProjectionOnConeWithRegularization,

• soclcp_projectionOnConeWithLocalIteration() for ProjectionOnConeWithLocalIteration.

parameters:

• iparam[SICONOS_IPARAM_SOCLCP_PROJECTION_CONE_INDEX] (set by soclcp_nsgs)

• dparam[SICONOS_DPARAM_SOCLCP_PROJECTION_RHO] = 0.