NashOpt -- A Python Library for Computing Generalized Nash Equilibria
Abstract
NashOpt is an open-source Python library for computing and designing generalized Nash equilibria (GNEs) in noncooperative games with shared constraints and real-valued decision variables. The library exploits the joint Karush-Kuhn-Tucker (KKT) conditions of all players to handle both general nonlinear GNEs and linear-quadratic games, including their variational versions. Nonlinear games are solved via nonlinear least-squares formulations, relying on JAX for automatic differentiation. Linear-quadratic GNEs are reformulated as mixed-integer linear programs, enabling efficient computation of multiple equilibria. The framework also supports inverse-game and Stackelberg game-design problems. The capabilities of NashOpt are demonstrated through several examples, including noncooperative game-theoretic control problems of linear quadratic regulation and model predictive control. The library is available at https://github.com/bemporad/nashopt
Links & Resources
Authors
Cite This Paper
Bemporad, A. (2025). NashOpt -- A Python Library for Computing Generalized Nash Equilibria. arXiv preprint arXiv:2512.23636.
Alberto Bemporad. "NashOpt -- A Python Library for Computing Generalized Nash Equilibria." arXiv preprint arXiv:2512.23636 (2025).