NashOpt - A Python Library for Computing Generalized Nash Equilibria

📅 2025-12-29
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This paper addresses noncooperative games with shared constraints and real-valued decision variables, introducing NashOpt—the first open-source Python library for unified generalized Nash equilibrium (GNE) computation. Methodologically: for nonlinear GNEs, it formulates a differentiable nonlinear least-squares problem leveraging JAX’s automatic differentiation; for linear-quadratic GNEs, it proposes a novel mixed-integer linear programming (MILP) reformulation enabling efficient multi-equilibrium enumeration and global optimality certification; extensions further support differentiable inverse GNE and Stackelberg game design. Contributions include: (i) the first unified modeling and solution framework for both nonlinear and linear-quadratic GNEs; (ii) end-to-end differentiable game design capabilities; and (iii) empirical validation on game-theoretic control problems—including linear-quadratic regulator (LQR) and model predictive control (MPC) settings. The implementation is publicly available as open-source software.

Technology Category

Application Category

📝 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
Problem

Research questions and friction points this paper is trying to address.

Computes generalized Nash equilibria in noncooperative games with shared constraints
Solves nonlinear games via nonlinear least-squares and linear-quadratic games as mixed-integer programs
Supports inverse-game and Stackelberg game-design problems for control applications
Innovation

Methods, ideas, or system contributions that make the work stand out.

Uses joint KKT conditions for nonlinear and linear-quadratic games
Solves nonlinear games via JAX-based least-squares formulations
Reformulates linear-quadratic GNEs as mixed-integer linear programs
🔎 Similar Papers
No similar papers found.