pympcc¶
A Python solver for Mathematical Programs with Complementarity Constraints (MPCC), built on IPOPT via cyipopt.
Problem form¶
Getting started
User guide
Examples
Theory primer
Reference
Why pympcc¶
Thirteen reformulation strategies — six canonical (direct, Scholtes, smoothing, Lin-Fukushima, augmented Lagrangian, slack lifting) plus seven NCP-function variants (smooth-min, Chen-Chen-Kanzow, Kanzow-Schwartz, Chen-Mangasarian, Billups, Veelken-Ulbrich pow / sin); pick one with the selection guide.
Certified stationarity — TNLP refinement extracts MPCC-clean multipliers and classifies S- / W- / C-stationarity.
Diagnostics — MPCC-LICQ / MPCC-MFCQ check, B-stationarity certification, MPCC-SOSC, multi-merit cross-check.
Differentiable —
pympcc.solve_jaxregisters the solve asjax.custom_vjpfor end-to-end gradients through the converged optimum.Bilevel-ready —
pympcc.bilevel.from_lower_levelcompiles bilevel programs to MPCCs by emitting lower-level KKT.