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)#

VI formulation and extra-gradient solver.

driver: soclcp_VI_ExtraGradient()

parameters: same as SICONO_VI_EG, see VI Available solvers.

VI, Extra-gradient (SICONOS_SOCLCP_VI_EG)#

VI formulation and extra-gradient solver.

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.