Relay or box-constrained AVI problems#
Problem statement#
Find \((z,w)\) such that:
where M is an ( \(n \times n\) )-matrix, q, z and w are n-dimensional vectors, K is the box defined by \(K=\{x\in\mathbb{R}^n\mid lb_i\leq x_i\leq ub_i,i=1,...,n\}\) and \(\mathcal{N}_K(z)\) is the normal cone to \(K\) at \(z\) .
Implementation in numerics#
Structure to define the problem: RelayProblem
.
The generic driver for all Relay problems is relay_driver()
.
Solvers list RELAY_SOLVER
Relay available solvers#
Direct solvers#
Enumerative solver (SICONOS_RELAY_ENUM
)#
The relay problem is reformulated as a LCP and solved with enum method, see LCP available solvers.
driver: relay_enum()
parameters: same as SICONOS_LCP_ENUM
.
Lemke solver (SICONOS_RELAY_LEMKE
)#
The relay problem is reformulated as a LCP and solved with Lemke’s method, see LCP available solvers.
driver: relay_lexicolemke()
parameters: same as SICONOS_LCP_ENUM
.
PATH (SICONOS_RELAY_PATH
)#
The relay problem is reformulated as a LCP and solved with the PATH solver
Works only if Siconos has been built with path support (if PathFerris or PathVI has been found, see Build and install )
driver: relay_path()
parameters : none.
AVI reformulation#
AVI, Cao/Ferris solver (SICONOS_RELAY_AVI_CAOFERRIS
)#
Based on an algorithm by Cao and Ferris for AVI with a polytopic set \(K\) .
driver: relay_avi_caoferris()
parameters: same as SICONOS_AVI_CAOFERRIS
, see AVI Available solvers.
There also exists a test version SICONOS_RELAY_AVI_CAOFERRIS_TEST
with
driver: relay_avi_caoferris_test()
parameters: same as SICONOS_AVI_CAOFERRIS
, see AVI Available solvers.
Iterative solvers#
Projected Gauss-Seidel (SICONOS_RELAY_PGS
)#
driver: relay_pgs()
parameters:
iparam[SICONOS_IPARAM_MAX_ITER] = 1000
dparam[SICONOS_DPARAM_TOL] = 1e-6