Table of Contents
Fetching ...

LCQPow -- A Solver for Linear Complementarity Quadratic Programs

Jonas Hall, Armin Nurkanovic, Florian Messerer, Moritz Diehl

TL;DR

LCQPow addresses the challenging class of linear complementarity quadratic programs (LCQPs) by delivering an open-source, C++ solver that combines a penalty reformulation with a penalty homotopy outer loop and a sequential convex programming inner loop. The method includes an analytical globalization step, dynamic penalty updates, initialization strategies, and gradient perturbation to enhance convergence to strongly stationary points, while supporting multiple QP backends such as qpOASES and OSQP. Convergence analysis provides local guarantees, including a one-step convergence result when active sets align with a strongly stationary point and a suitably large penalty parameter. Numerical experiments on benchmarks like MacMPEC LCQP, an initial-value OCP, and moving-masses problems demonstrate competitive performance in speed and robustness, highlighting practical impact for engineering, hybrid systems, and real-time optimization tasks. The work also contributes an accessible, extensible software package that enables researchers to tailor QP solving strategies and benchmarks for LCQP contexts.

Abstract

In this paper we introduce an open-source software package written in C++ for efficiently finding solutions to quadratic programming problems with linear complementarity constraints. These problems arise in a wide range of applications in engineering and economics, and they are challenging to solve due to their structural violation of standard constraint qualifications, and highly nonconvex, nonsmooth feasible sets. This work extends a previously presented algorithm based on a sequential convex programming approach applied to a standard penalty reformulation. We examine the behavior of local convergence and introduce new algorithmic features. Competitive performance profiles are presented in comparison to state-of-the-art solvers and solution variants in both existing and new benchmarks.

LCQPow -- A Solver for Linear Complementarity Quadratic Programs

TL;DR

LCQPow addresses the challenging class of linear complementarity quadratic programs (LCQPs) by delivering an open-source, C++ solver that combines a penalty reformulation with a penalty homotopy outer loop and a sequential convex programming inner loop. The method includes an analytical globalization step, dynamic penalty updates, initialization strategies, and gradient perturbation to enhance convergence to strongly stationary points, while supporting multiple QP backends such as qpOASES and OSQP. Convergence analysis provides local guarantees, including a one-step convergence result when active sets align with a strongly stationary point and a suitably large penalty parameter. Numerical experiments on benchmarks like MacMPEC LCQP, an initial-value OCP, and moving-masses problems demonstrate competitive performance in speed and robustness, highlighting practical impact for engineering, hybrid systems, and real-time optimization tasks. The work also contributes an accessible, extensible software package that enables researchers to tailor QP solving strategies and benchmarks for LCQP contexts.

Abstract

In this paper we introduce an open-source software package written in C++ for efficiently finding solutions to quadratic programming problems with linear complementarity constraints. These problems arise in a wide range of applications in engineering and economics, and they are challenging to solve due to their structural violation of standard constraint qualifications, and highly nonconvex, nonsmooth feasible sets. This work extends a previously presented algorithm based on a sequential convex programming approach applied to a standard penalty reformulation. We examine the behavior of local convergence and introduce new algorithmic features. Competitive performance profiles are presented in comparison to state-of-the-art solvers and solution variants in both existing and new benchmarks.
Paper Structure (24 sections, 4 theorems, 26 equations, 7 figures, 4 tables, 1 algorithm)

This paper contains 24 sections, 4 theorems, 26 equations, 7 figures, 4 tables, 1 algorithm.

Key Result

theorem 1

Let (min:LCQP:pen) satisfy licq at $x^\ast \in \mathbb{R}^n$. Then the following statements hold:

Figures (7)

  • Figure 1: This illustration of the toy problem (\ref{['min:warm:up']}) shows the feasible set $\Omega$ (solid) together with the two strongly stationary points located at $(1, 0)$ and $(0,1)$, and the spurious solution in the origin. The level lines (dashed) represent the objective function on the left, and the penalty function $x_1 \cdot x_2$ (see (\ref{['min:LCQP:pen']})) on the right.
  • Figure 2: The penalty reformulation of the LCQP (\ref{['min:warm:up']}) has a stable trajectory of saddle points (minimizers for $\rho < 2$) along the points $\bigl(2/(2 + \rho), 2/(2 + \rho)\bigr)$ marked with the black crosses. The red dot indicates the saddle point of the penalized objective of which the level lines are indicated.
  • Figure 3: Performance plot comparing various solution variants for the lcqp subset of MacMPEC leyffer2000MacMPEC.
  • Figure 4: Performance profile and objective function comparison for the Initial Value ocp. The vertical lines on the right indicate a change in the number of discretization intervals from $N=50$ (experiments 1 through 10) up to $N=100$ (experiments 101 through 110). For a fixed $N$, the initial guess for $x_0$ is varied from $-1.9$ (left most experiment) to $-0.9$ (right most experiment).
  • Figure 5: Setup of the masses and springs.
  • ...and 2 more figures

Theorems & Definitions (10)

  • definition thmcounterdefinition
  • theorem 1
  • remark thmcounterremark
  • remark thmcounterremark
  • lemma thmcounterlemma
  • proof
  • theorem 2
  • proof
  • theorem 3
  • proof