Code for reproducing results in the paper "Mutation-Driven Follow the Regularized Leader for Last-Iterate Convergence in Zero-Sum Games".
In this study, we consider a variant of the Follow the Regularized Leader (FTRL) dynamics in two-player zero-sum games. FTRL is guaranteed to converge to a Nash equilibrium when time-averaging the strategies, while a lot of variants suffer from the issue of limit cycling behavior, i.e., lack the last-iterate convergence guarantee. To this end, we propose mutant FTRL (M-FTRL), an algorithm that introduces mutation for the perturbation of action probabilities. We then investigate the continuous-time dynamics of M-FTRL and provide the strong convergence guarantees toward stationary points that approximate Nash equilibria under full-information feedback. Furthermore, our simulation demonstrates that M-FTRL can enjoy faster convergence rates than FTRL and optimistic FTRL under full-information feedback and surprisingly exhibits clear convergence under bandit feedback.
This code is written in Python 3. To install the required dependencies, execute the following command:
$ pip install -r requirements.txt
Build the container:
$ docker build -t mutant-ftrl .
After build finished, run the container:
$ docker run -it mutant-ftrl
In order to investigate the performance of M-FTRL in biased Rock-Paper-Scissors under full-information feedback, execute the following command:
$ python run_experiment.py
In this experiment, the following options can be specified:
--game
: Name of a matrix game. The default value isbiased_rps
.--num_trials
: Number of trials to run experiments. The default value is1
.--T
: Number of iterations. The default value is10000
.--feedback
: Type of feedback given to players. The default value isfull
.--seed
: Random seed. The default value is0
.--random_init_strategy
: Whether to generate the initial strategy uniformly at random. The default value isFalse
.
To evaluate M-FTRL via an experiment in biased Rock-Paper-Scissors under bandit feedback, execute the following command:
$ python run_experiment.py --feedback=bandit
If you use our code in your work, please cite our paper:
@InProceedings{abe22mftrl,
title = {Mutation-driven follow the regularized leader for last-iterate convergence in zero-sum games},
author = {Abe, Kenshi and Sakamoto, Mitsuki and Iwasaki, Atsushi},
booktitle = {Proceedings of the Thirty-Eighth Conference on Uncertainty in Artificial Intelligence},
pages = {1--10},
year = {2022},
volume = {180}
}