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