DyNECT stands for Dynamic Nash Equilibrium Control Toolbox - a Julia package for modeling and solving constrained dynamic Nash equilibrium control problems
A linear quadratic (LQ) game is a multi-agent control problem, where each decision maker influences the evolution of the shared linear dynamical system
and optimizes a quadratic performance metric
where
DyNECT helps you find the open-loop Nash equilibrium of the game, that is, the input sequences
DyNECT supports state constraints, local input constraints and shared input constraints of the kind
Many functionalities of DyNECT are based on reformulating the dynamic game into the affine variational inequality (AVI)
where
and
You can find more details on the problem formulation, and on the LQ game-to-VI conversion, as well as a performance comparison between some implemented solution algorithms, on our paper
- Collection of state-of-the-art iterative and explicit solvers for open-loop dynamic games
- Utility tools for streamlined implementation of game-theoretic MPC
- Automatic reformulation of LQ games as (multi-parametric) Variational Inequalities (VIs)
- Solution of coupled Riccati equations arising in unconstrained infinite-horizon games
- Integration with Monviso for access to multiple VI solution algorithms
- Integration with pDAQP for offline precomputation of state-to-solution map, enabling fast online control
- Unified solver access through the CommonSolve.jl interface
DyNECT depends on 'ParametricDAQP.jl' and 'Monviso.jl', which are not in the general registry. From the Julia REPL:
] add https://github.com/nicomignoni/Monviso.jl.git
] add https://github.com/darnstrom/ParametricDAQP.jl
] add https://github.com/bemilio/DyNECT.gitThe example in examples/solve_LQGame_as_VI.jl:
- Implements a basic LQ game
- Converts it into a multi-parametric VI
- Finds explicitely the explicit solution mapping for all initial states
- Given an initial state, converts the multi-parametric VI into a VI
- Solves the VI via several iterative algorithms
Additional examples can be found at this link.