Project Proposal by Martin Stacey


An Environment for Exploring and Demonstrating Game Theory

Software

Java or C++ or Smalltalk or another object oriented language with good GUI facilities

Covers

Interface development, object-oriented systems design, game theory

Skills Required

Programming, preferably some interest in artificial intelligence

Challenge

Conceptual ??? Technical ??? Programming ????

Brief Description

Game theory is a mathematical approach, invented by John von Neumann, to understanding how people/animals/groups/organisations interact with each other in situations where they can gain or lose by being nice or nasty to each other. The classic game theory scenario is Iterated Prisoner's Dilemma. Imagine you're a prisoner with the classic Prisoner's Dilemma: If you and your co-accused both deny everything (cooperate), you'll get fitted up with something minor and get one year. If you both accuse each other (defect), you'll both get five years. But if you deny everything and your partner accuses you, he'll get off scott free, and you'll get life. And vice versa. In Iterated Prisoner's Dilemma this situation is repeated: for instance if you both cooperate you get £3 each; if you both defect you get nothing; if one of you cooperates and the other defects the one who defects gets £5 and the other loses £2. What do you do? How will what you do affect what your partner does in the future? How will what your partner does affect what you do in the future? The maths for simple game theory scenarios such as Prisoner's Dilemma is nice and simple. Of course it can get complicated as you go on to more elaborate situations.

The aim of the project is to create a system in which the user can define game theory scenarios, such as Iterated Prisoner's Dilemma, and specify the rules by which particular agents act in the game, and then watch what happens.

The project will require the development of (1) a user interface for defining the rules of a game (2); a user interface for defining how a particular agent acts in the game; (3) a user interface for selecting particular agents to play a game and running the game; (4) some way of displaying what happens in the game; (5) some agents for playing one or more games. Your project should include some work on a well-thought-out environment for playing with game theory, some implemented agents to play one or more games, some work on graphic or other ways to display behaviour and/or the results of games, and some discussion of what your agents do when you run them in games. But you may choose to emphasise any one of these aspects at the expense of others.

Resources

There are plenty of textbooks on game theory, some promising a non-technical introduction; but a book I know and recommend highly (as a good read) is The Evolution of Co-operation, by Robert Axelrod (Penguin paperback), which explains how cooperative behaviour can emerge between individuals and groups even when they are in conflict and can't communicate, for instance soldiers in the trenches in the First World War. (However, Alexrod's particular views have been criticized especially by mathematical game theorists pointing out that he makes claims that don't fit the maths.)


Back to