Mixed (Non Linear) Complementarity problem (MCP)

Problem Statement:

Given a sufficiently smooth function \({F} \colon {{\mathrm{I\!R}}}^{n+m} \to {{\mathrm{I\!R}}}^{n+m} ` , the Mixed Complementarity problem (MCP) is to find two vectors :math:`(z,w \in {{\mathrm{I\!R}}}^{n+m})\) such that:

\[\begin{split}\begin{align*} w &= \begin{pmatrix}w_e\\w_i\end{pmatrix} = F(z) \\ w_e &=0 \\ 0 &\le w_i \perp z_i \ge 0, \end{align*}\end{split}\]

where “i” (resp. “e”) stands for inequalities (resp. equalities). The vector \(z\) is splitted like \(w\) :

\[\begin{split}\begin{equation*}z =\begin{pmatrix}z_e\\z_i\end{pmatrix}.\end{equation*}\end{split}\]

The vectors \(z_i,w_i\) are of size sizeEqualities , the vectors \(z_e,w_e\) are of size sizeInequalities and \(F\) is a non linear function that must be user-defined.

A Mixed Complementarity problem (MCP) is a NCP “augmented” with equality constraints.

Available solvers ::

  • mcp_FB() , nonsmooth Newton method based on Fisher-Burmeister function.

semi-smooth Newton/Fisher-Burmeister solver.:

a nonsmooth Newton method based based on the Fischer-Bursmeister convex function

function: mcp_FischerBurmeister()


  • iparam[0] (in): maximum number of iterations allowed
  • iparam[1] (out): number of iterations processed
  • dparam[0] (in): tolerance
  • dparam[1] (out): resulting error