NashOpt -- A Python Library for Computing Generalized Nash Equilibria
By: Alberto Bemporad
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
Similar Papers
Quadratic Programming Approach for Nash Equilibrium Computation in Multiplayer Imperfect-Information Games
CS and Game Theory
Finds best moves in complex games.
Generalized Nash Equilibrium Solutions in Dynamic Games With Shared Constraints
Robotics
Finds better game strategies when players share rules.
A Parallelizable Approach for Characterizing NE in Zero-Sum Games After a Linear Number of Iterations of Gradient Descent
CS and Game Theory
Solves tough math puzzles faster than before.