File: avi.rst

package info (click to toggle)
siconos 4.3.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 82,496 kB
  • sloc: cpp: 159,693; ansic: 108,665; fortran: 33,248; python: 20,709; xml: 1,244; sh: 385; makefile: 226
file content (72 lines) | stat: -rw-r--r-- 2,010 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
.. index::
   single: Affine Variational Inequalities (AVI)
   
.. contents::

.. _avi_problem:

Affine Variational Inequalities (AVI)
*************************************

Problem statement
=================

The Affine Variational Inequality (AVI) is defined by

Given :math:`q\in\mathbb{R}^n` , :math:`M\in\mathbb{R}^{n\times n}` and a set :math:`K\in\mathbb{R}^n` , find :math:`z\in\mathbb{R}^n` such that:

.. math::

    \begin{equation*}(Mz+q)^T(y -z) \geq 0,\quad \text{ for all } y \in K,\end{equation*}

or equivalently,

.. math::

    \begin{equation*}-(Mz + q) \in \mathcal{N}_K(z)\end{equation*}

where :math:`\mathcal{N}_K` is the normal cone to :math:`K` at :math:`z` .

The AVI is a special case of a Variational Inequality (VI), where the function :math:`F` is affine. For VI solvers, see :ref:`vi_problem`.

From more details on theory and analysis of AVI (and VI in general), we refer to :cite:`Facchinei.2003`

Implementation in numerics
==========================

Structure to define the problem: :class:`AffineVariationalInequalities`.

The generic driver for all VI is :func:`avi_driver()`.

solvers list  :enum:`AVI_SOLVER`

.. _avi_solvers:

AVI Available solvers
=====================

Cao Ferris (:enumerator:`SICONOS_AVI_CAOFERRIS`)
------------------------------------------------

Direct solver for AVI based on pivoting method principle for degenerate problem. Choice of pivot variable is performed via lexicographic ordering

driver: :func:`avi_caoferris()`

parameters:

* iparam[SICONOS_IPARAM_MAX_ITER] = 10000
* dparam[SICONOS_DPARAM_TOL] = 1e-12

Pathvi (:enumerator:`SICONOS_AVI_PATHAVI`)
------------------------------------------

Direct solver for VI based on pivoting method principle for degenerate problem.

Ref: "A structure-preserving Pivotal Method for Affine Variational Inequalities" Y. Kim, O. Huber, M.C. Ferris, Math Prog B (2017).

driver: :func:`avi_pathvi()`

parameters:

* iparam[SICONOS_IPARAM_MAX_ITER] = 10000
* dparam[SICONOS_DPARAM_TOL] = 1e-12