VariationalInequality_Solvers (functions)


siconos.numerics.checkTrivialCase_vi(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)fx, SolverOptions *options) → int[source]

Check for trivial solution in the variational inequality problem.

Parameters:
  • problem – VariationalInequality* the problem
  • x – global vector (n), in-out parameter
  • fx – global vector (n), in-out parameters
  • options – the pointer to the array of options to set
Returns:

info =0 if a trivial solution has been found, else = -1


siconos.numerics.variationalInequality_ExtraGradient(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)w, int *info, SolverOptions *options) → None[source]

Extra Gradient solver forvariational inequality problem based on the De Saxce Formulation.

Parameters:
  • problem – the variational inequality problem to solve
  • x – global vector (n), in-out parameter
  • w – global vector (n), in-out parameters
  • info – return 0 if the solution is found
  • options – the solver options : iparam[0] : Maximum iteration number iparam[1] : Choice of the line search 0 : Armijo rule with Khotbotov ratio (default) 1 : Armijo rule with Solodov.Tseng ratio iparam[2] : bool activate the update in the loop (0:false default choice) iparam[3] : use rho_k * tau * min(1.0,a2/(rho_k*a1)) to decrease rho; commented in the code
  • dparam[3] (rho parameter. If rho >0, then self-adaptive (Armijo like)) –
  • If rho <0, then constant rho parameter (rho <-- -rho) Adaptive step- (procedure.) –
  • parameters (size) –
  • 3.0/2.0; tauinv dparam[6] = 0.9; L dparam[7] = 0.3; Lmin (=) –

siconos.numerics.variationalInequality_ExtraGradient_setDefaultSolverOptions(SolverOptions *options) → int[source]

set the default solver parameters and perform memory allocation for EG

Parameters:options – the pointer to the array of options to set

siconos.numerics.variationalInequality_FixedPointProjection(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)w, int *info, SolverOptions *options) → None[source]

Fixed Point Projection solver for variational inequality problem based on the De Saxce Formulation.

Parameters:
  • problem – the variational inequality problem to solve
  • x – global vector (n), in-out parameter
  • w – global vector (n), in-out parameters
  • info – return 0 if the solution is found
  • options – the solver options : iparam[0] : Maximum iteration number iparam[1] : Choice of the line search 0 : Armijo rule with Khotbotov ratio (default) 1 : Armijo rule with Solodov.Tseng ratio 2 : Armijo rule with Han.Sun ratio iparam[2] : bool activate the update in the loop (0:false default choice) iparam[3] : use rho_k * tau * min(1.0,a2/(rho_k*a1)) to decrease rho; commented in the code dparam[3] : rho parameter. If rho >0, then self-adaptive (Armijo like) procedure. If rho <0, then constant rho parameter (rho <– -rho) Adaptive step-size parameters: dparam[4] = 2/3.0; tau dparam[5] = 3.0/2.0; tauinv dparam[6] = 0.9; L dparam[7] = 0.3; Lmin

siconos.numerics.variationalInequality_FixedPointProjection_setDefaultSolverOptions(SolverOptions *options) → int[source]

set the default solver parameters and perform memory allocation for EG

Parameters:options – the pointer to the array of options to set

siconos.numerics.variationalInequality_HyperplaneProjection(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)w, int *info, SolverOptions *options) → None[source]

Hyperplane Projection solver for variational inequality problem based on the De Saxce Formulation.

Parameters:
  • problem – the variational inequality problem to solve
  • x – global vector (n), in-out parameter
  • w – global vector (n), in-out parameters
  • info – return 0 if the solution is found
  • options – the solver options : iparam[0] : Maximum iteration number dparam[3] : rho >0

siconos.numerics.variationalInequality_HyperplaneProjection_setDefaultSolverOptions(SolverOptions *options) → int[source]

set the default solver parameters and perform memory allocation for EG

Parameters:options – the pointer to the array of options to set

siconos.numerics.variationalInequality_box_newton_QiLSA(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)F, int *info, SolverOptions *options) → None[source]

VI Solver based on a merit function minimization with a line-search type algorithm.

Parameters:
  • problem – the variational inequality problem to solve
  • x – as input, the initial guess; as output the solution if the algorithm is successful
  • F – value of the function
  • info – 0 if a solution is found
  • options – the solver options

siconos.numerics.variationalInequality_common_setDefaultSolverOptions(SolverOptions *options, int solverId) → int[source]

set the default solver parameters and perform memory allocation for a VI solver

Parameters:
  • options – the SolverOptions to set
  • solverId – the id of the solver

siconos.numerics.variationalInequality_setDefaultSolverOptions(SolverOptions *options, int solverId) → int[source]

set the default solver parameters and perform memory allocation for VariationalInequality

Parameters:
  • options – the pointer to the options to set
  • solverId – the identifier of the solver

siconos.numerics.vi_box_AVI_LSA(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)F, int *info, SolverOptions *options) → None[source]

VI Solver based on the Newton-Josephy method globalized with a line-search type algorithm using the Qi merit function.

Parameters:
  • problem – the variational inequality problem to solve
  • x – as input, the initial guess; as output the solution if the algorithm is successful
  • F – value of the function
  • info – 0 if a solution is found
  • options – the solver options

siconos.numerics.vi_box_AVI_extra_SolverOptions(SolverOptions *options) → None[source]

Extra SolverOptions settings.

Parameters:options – the struct to modify

siconos.numerics.vi_box_AVI_free_solverData(SolverOptions *options) → None[source]

free the specific solverData

Parameters:options – the struct to modify

siconos.numerics.vi_box_path(VariationalInequality *problem, array_like (np.float64, 1D)z, array_like (np.float64, 1D)F, int *info, SolverOptions *options) → None[source]

Solver for box constrainted VI using PATH.

Parameters:
  • problem – the variational inequality problem to solve
  • z – as input, the initial guess; as output the solution if the algorithm is successful
  • F – value of the function
  • info – 0 if a solution is found
  • options – the solver options

siconos.numerics.vi_get_set(None *problem) → None *[source]

Get the set from the VariationalInequality.

Parameters:problem – the VI