It could be argued that the best players of games are those who have
the best strategies. This is not true for games of pure chance, such as
snakes and ladders, but it is for games of skill, such as chess and
poker, which is why my children beat me at the former and almost never
at the latter (although I often cheat so usually win regardless of
required skill level). In this project, we will explore the codification
of strategies that can be used in games and how optimal strategies can
be learned.
For simplicity, we will start on one-player games such as classic
solitaire or Yahtzee) moving to more complex variants and games. We
might be able to attempt simple computer games if we can find ways of
controlling the game environment. We will also look at games with two
players, such as chess and poker, and how strategies can be learned in
these games.
There are many examples of gaming strategies that have been developed
using statistical and machine learning techniques. For example, the game
of chess has been studied extensively, and there are many algorithms
that have been developed to play the game at a high level. Similarly,
poker has been studied using game theory and machine learning techniques
to develop strategies for playing the game. Here are some links to some
relevant examples:
Research angles
- How can we represent strategies in games? We could
explore the representation of strategies in games, including the use of
game trees and decision trees. We can look at simple games where
strategies are well known. We could also look at how these
representations can be used to evaluate the effectiveness of different
strategies.
- What machine learning techniques can be used to learn
strategies? We could explore the use of machine learning
techniques, such as reinforcement learning and deep learning, to learn
strategies in games. We could look at how these techniques can be used
to learn optimal strategies in games with different levels of
complexity.
- How can we evaluate the effectiveness of different
strategies? We could explore the use of statistical techniques
to evaluate the effectiveness of different strategies in games. We could
look at how these techniques can be used to compare the performance of
different strategies and to identify the best strategies for different
games.
- How can we use game theory to develop strategies?
We could explore the use of game theory to develop strategies in games.
We could look at how game theory can be used to model the interactions
between players and to develop optimal strategies for different
games.
- How do humans make decisions in games? By
considering decision and utility theory (and elements of psychology), we
could explore how humans make decisions in games. We could look at how
humans use heuristics and biases to make decisions in games and how
these can be used to develop strategies.
- Is it possible to play boardgames against a general-purpose
large-language model? We could explore the use of
large-language models to play boardgames. We could look at how these
models can be used to generate strategies and to evaluate the
effectiveness of different strategies in games. We could also explore
how we could create an AI model specifically for a physical
boardgame.
Prerequisites
- An interest in games (computer, dice, card or board) and
programming.
The following would be useful:
- Statistical computing using R or Python,
- Familiarity with Monte Carlo simulations.
Some references
- Kaelbling, L. P., Littman, M. L., & Moore, A. W. (1996).
Reinforcement learning: A survey. Journal of Artificial Intelligence
Research.
- Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I.,
Wierstra, D. and Riedmiller, M. (2013). Playing Atari with deep
reinforcement learning. arXiv preprint arXiv:1312.5602.
- Mocanu, D. (2023). Modeling and Analyzing Board Games through Markov
Decision Processes. University of Twente.