# Relay or box-constrained AVI problems¶

## Problem statement¶

Find $$(z,w)$$ such that:

$\begin{split}\begin{equation*} \left\lbrace \begin{array}{l} w = M z + q\\ -w \in \mathcal{N}_{K}(z)\\ \end{array}, \right. \end{equation*}\end{split}$

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.

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