Skip to content

JuliaGameTheoreticPlanning/MCPTrajectoryGameSolver.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCPTrajectoryGameSolver

CI codecov License

This package provides a thin wrapper around the ParametricMCPs.jl package to solve trajectory games from TrajectoryGamesBase.jl.

By exploiting the implicit function theorem, game solutions can be differentiated with respect to the game parameters. This sensitivity information can be used to fit a game-theoretic model to observed behavior as we explore in our work Learning to Play Trajectory Games Against Opponents with Unknown Objectives.

Quickstart

Installation is as simple as running:

]add MCPTrajectoryGameSolver

This package uses PATH solver (via PATHSolver.jl) under the hood. Larger-sized problems require to have a license key. By courtesy of Steven Dirkse, Michael Ferris, and Tudd Munson, temporary license keys are available free of charge. For more details about the license key, please consult PATHSolver.jl (License section). Note that, when no license is loaded, PATH does not report an informative error and instead may just report a wrong result. Thus, make sure that the license is loaded correctly before using the solver.

For a full example of how to use this package, please consult the demo in test/Demo.jl:

Start julia --project from the repository root and run the following commands:

using TestEnv, Revise # install globally with `] add TestEnv, Revise` if you don't have this
TestEnv.activate()
Revise.includet("test/Demo.jl")
Demo.demo_model_predictive_game_play() # example of receding-horizon interaction
Demo.demo_inverse_game() # example of fitting game parameters via differentiation of the game solver

Citation

The original solver implementation and experiment code used in our research Learning to Play Trajectory Games Against Opponents with Unknown Objectives can be found here. This repository provides a more optimized implementation of the differentiable game solver. We kindly ask you to cite our paper if you use either of the implementations in your research. Thanks!

@ARTICLE{liu2022learning,
  author={Liu, Xinjie and Peters, Lasse and Alonso-Mora, Javier},
  journal={IEEE Robotics and Automation Letters}, 
  title={Learning to Play Trajectory Games Against Opponents With Unknown Objectives}, 
  year={2023},
  volume={8},
  number={7},
  pages={4139-4146},
  doi={10.1109/LRA.2023.3280809}}