About me

I am a research scientist at Google DeepMind.

Previously, I was a post-doctoral researcher at the Maastricht University Games and AI Group, working with Mark Winands. During my PhD, I worked at University of Alberta with Michael Bowling on sampling algorithms for equilibrium computation and decision-making in games. You can read all about it in my thesis. Before my PhD, I did an undergrad and Master's at McGill University's School of Computer Science and Games Research @ McGill, under the supervision of Clark Verbrugge.

I am interested in general multiagent learning (and planning), computational game theory, reinforcement learning, and game-tree search.

If you would like to reach me, please contact me by email. My address is my first name, followed by a dot, followed by my last name, followed by an at symbol, followed by gmail, followed by a dot, followed by com.


CFR and MCCFR variants


This code contains simple examples of a number of CFR algorithms: vanilla CFR, chance-sampled CFR, outcome sampling MCCFR, external sampling MCCFR, public chance sampling, and pure CFR. It also includes an expectimax-based best response algorithm so that the exploitability of the average strategies can be obtained to measure the convergence rate of each algorithm.

The algorithms are applied to the game Bluff(1,1), also called Dudo, Perudo, and Liar's Dice.

Please read the README.txt contained in the archive before building or running the code. The code is written in C++, and has been tested using g++ on Linux, MacOS, and Windows.



hexIT is a set of Java classes for representing and displaying a hexagonal board. It has been used to implement hexagonal board games and for course assignments.


Journal Articles and Book Chapters

Conference Papers


Page last updated: May 21st, 2019
Design by Nicolas Fafchamps