🤖 AI Summary
This work addresses strongly monotone affine variational inequality (AVI) problems by proposing a hybrid method that integrates Douglas–Rachford operator splitting with an active-set-guided Newton-type correction. The approach overcomes the limitation of conventional first-order methods, which typically exhibit only asymptotic convergence, by dynamically estimating the active set during iteration and applying a Newton-like correction step. Leveraging matrix pre-factorization and warm-start strategies, the algorithm achieves exact convergence in a finite number of steps. A high-performance C implementation is provided, along with interfaces for Julia, MATLAB, and Python. Numerical experiments demonstrate that the solver outperforms the state-of-the-art PATH solver by two orders of magnitude on random AVI instances and surpasses the mixed-integer-based NashOpt by several orders of magnitude on game-theoretic MPC benchmarks.
📝 Abstract
We present \texttt{DR-DAQP}, an open-source solver for strongly monotone affine variational inequaliries that combines Douglas-Rachford operator splitting with an active-set acceleration strategy. The key idea is to estimate the active set along the iterations to attempt a Newton-type correction. This step yields the exact AVI solution when the active set is correctly estimated, thus overcoming the asymptotic convergence limitation inherent in first-order methods. Moreover, we exploit warm-starting and pre-factorization of relevant matrices to further accelerate evaluation of the algorithm iterations. We prove convergence and establish conditions under which the algorithm terminates in finite time with the exact solution. Numerical experiments on randomly generated AVIs show that \texttt{DR-DAQP} is up to two orders of magnitude faster than the state-of-the-art solver \texttt{PATH}. On a game-theoretic MPC benchmark, \texttt{DR-DAQP} achieves solve times several orders of magnitude below those of the mixed-integer solver \texttt{NashOpt}. A high-performing C implementation is available at \textt{https://github.com/darnstrom/daqp}, with easily-accessible interfaces to Julia, MATLAB, and Python.