This year, we were unsuccessful in obtaining an arbiter. Therefore, I (Martin Zinkevich) will both be competing and implementing this competition. Although I am clearly biased, I will try to mitigate that bias in three ways:

  • Have the implementation (which is not subject to interpretation) be the final say.
  • Discuss the rules this month (November) with competitors, to find any points of contention, and vote on any major points of disagreement.
  • Freeze the code on December 31st, to allow enough time for everyone to prepare a bot.

The discussion is now closed. A beta version of the code is available.

If you have comments or suggestions, please use the bulletin board in the rules section.

The 2007 Competition

In this year's competition, we will have two heads-up limit competitions and one heads-up no-limit competition. A team can submit either:
  • Only a no-limit bot
  • Only one limit bot for both limit competitions
  • A no-limit bot and one limit bot for both limit competitions
  • A no-limit bot and two limit bots, one for each competition

A bot should be a jar, tar, or zip file, which should have:

  • A startme.bat file (for Windows) or a startme.sh file (for Linux).
  • A README.txt file containing:
    • Team Name
    • University/Business Affiliation
    • Team Leader names and e-mails
    • Team Members names and e-mails
    • Location (City,Province/State,Country)
    • One/Two Paragraph Summary of Technique
    • References to relevant papers, if any
By submitting a bot, competitors agree to have their bots available in a benchmark server. There code will not be given to anyone but myself or members of the University of Alberta outside the poker group without the permission of the authors.

Competition Objective

There are two altruistic reasons for research in poker:
  • Poker is a game humans find interesting: at a basic level, artificial intelligence researchers stand to gain by considering those problems humans not only face but are fascinated by.
  • Poker brings many new and interesting problems that are not faced in checkers, chess, Go, or backgammon. It is not only random, there is hidden information. Handling the hidden information is a problem that is on the edge of artificial intelligence: for instance, in video games, often the bots cheat, i.e. they are given perfect information about the world. Understanding how AI can tackle this problem is the key to the next stage of AI, not only in video games, but in real-world scenarios, such as in business and the military.

Although we expect competitors to focus on winning, the focus of the competition is on developing a further understanding on how poker research can benefit artificial intelligence. In order to do this, we believe the competition should be as open as possible, so that the results reveal not only who won, but why they won. Therefore, we will do the following:

  • After focusing on the best ten bots or so (if that many are submitted), we will run a round robin competition. This allows us to see how each pair of bots performs with each other.
  • The details of each hand will be made completely public. We will try to make them available to anyone who wants to view them. This includes cards, betting sequences, et cetera.
  • A benchmark server will be available after the competition. The bots will be made available to test against, but the code will not be available to download. This will help for competitors to try alternative techniques to find out how they have done.

Qualifying Rounds

We do not expect the number of competitors in any competition to exceed ten. However, if the number of competitors exceeds ten, then there will be a qualifying round. The competitors will be randomly divided into sets of six, and if the number of players are not divisible by six, then the remaining competitors (if less than five) will be added to existing sets of six. If there are 6k+5, then the remaining five form their own set. In each set, a "mini-competition" will be run, where the three players with the three top bankrolls (or more in the case of ties) will proceed to the next level. This process of random sub-division and elimination will proceed until there are under ten competitors remaining.

Duplicate Matches

These two competitions will consist fundamentally of heads-up duplicate matches. A duplicate match consists of an ordinary heads-up match of a k hands between two players. The cards played are recorded (or the seed used to shuffle is saved) and then the players' memories are reset, they switch positions and play a second k hands. The purpose of the duplicate match is to reduce the randomness of the outcome.

Series of Duplicate Matches

In order to further reduce variance in the outcome, opponents will play a series of duplicate matches. After each duplicate match, the memory is reset. The bankrolls will be sufficiently large to ensure against bankruptcy.

Hardware/Software Setup

The code for the server and a detailed description of the protocol are available here. The competition will be run on a cluster of 16 3.4 GHz P4 machines running Windows XP Professional (or a yet-unspecified variant of Linux), with 1 GB RAM and 80 GB disk. It is sensible during the competition to level the computational playing field. The above specifications could be considered a high-end gaming platform. Players will submit their code to the arbiter, in a manner to be decided later. During each match, the following will occur:
  • The hard disk of a client machine will be reset to have the files provided by a competitor. Hereafter, these files will be considered the ``program''.
  • The program is started: no more than ten minutes can be spent for starting the program.
  • The server connects to both clients, and begins the match.
  • The total amount of time a player can take in one match is seven seconds times the number of hands. If the maximum time is exceeded, then the program automatically chooses to fold (even if it has the option to check). As an example, in an 1000 hand match, one could take 1 second/hand on the first 999 hands, and take 6007 seconds on the last hand.
  • The bots are not allowed to connect to the internet.
Once the competition has begun, there will be no more modifications to the programs. Two weeks before the competition begins, players may access these machines and test their bots.

Heads-Up Limit Poker

This year, as last year, there were many strong opinions upon how to decide who will win (the winner determination rule). This was a result of the existence two differing lines of research: the line of research in pre-computing an approximate Nash equilibria, and the line of research in on-line learning (i.e. learning during the competition). Although we have not seen different results due to the different winner determination rules suggested, it is important to acknowledge these two lines of research, at least in limit poker.

However, unlike last year, we will have all teams play in both limit competitions. If a team submits one bot, it will be in both competitions. Thus, the protocol, the timing rules, and the rules for a hand are identical.

A match will conist of 3000 hands. All pairs of bots in the Online Learning competition will play a series of matches against each other, and all pairs of bots in the Approximate Equilibrium Competition will play a series of matches against each other.

Rules for a Hand(Limit)

Before continuing, it should be noted that this is merely an outline of what the dynamics are. If there are any inconsistencies between these rules and the implementing code, the implementation takes precedence.

Each hand is a hand of reverse blinds 10/20 limit texas hold-em. There are no ascending blinds, i.e. the rules in each hand are identical to the last. Some details of this particular variant:
  • Reverse blinds implies that the second player (the dealer) puts in the small blind ($5), and the first player puts in the big blind ($10). Counterintuitively, this means that the second player has the first action on the preflop betting round (the first betting round). In later rounds, the first player bids first.
  • 10/20 refers to the small bet ($10) and the big bet ($20) sizes. The small bet is the size of a bet or raise during the preflop betting round and the postflop (second) betting round. The big bet is the size of a bet or raise during the turn (third) betting round and the river (fourth) betting round.
  • Limit refers to the fact that all bets are of a fixed size, and that there is a limit to how many raises can occur in a round of betting. In the preflop betting round, there can be a bet, a raise, and a re-raise. In later rounds, there can be a bet, a raise, a re-raise, and a second re-raise.
  • In this competition, there will be no mucking: all players will reveal their cards at every showdown. If a player folds, then their cards will not be revealed until after the match is over.
  • Any illegal action is interpreted as a call (NEW).

Winner Determination (Limit)

Winner determination will be done in two ways, to highlight the difference between approximate equilibrium bots and online learning bots. Where possible, matches will be used for both competitions.

Approximate Equilibrium Winner Determination

Each series is won or lost. If the total bankroll for bot A is higher than the total bankroll for bot B (during the matches they play against one another), bot A wins the series. If they are equal, it is a tie. Otherwise, bot B wins. The winner gets +1 point, the loser gets -1 point, and there are no points in the event of a tie.

We use an instant runoff technique. However, instead of using bankroll, we consider the points. The total points for a bot is the sum of the bot's score in all series it played with the remaining bots.

  1. Initialize the set of remaining bots S to be all bots.
  2. Consider all matches between bots in S, and compute the total points of each bot
  3. Define T to be the bots with the lowest total points. These will be ranked below the other remaining bots in S, and tie with each other. Remove T from S
  4. Repeat 2 and 3 until S is empty

Online Learning Winner Determination

In the online learning competition, we are trying to isolate which bots are capable of maximally exploiting other bots submitted to the competition. One natural solution to this problem would be to consider each bot's total bankroll. However, we do not do this, for two reasons:

  • Avoid collusion: "chip dumping" could be used by a pair of bots if we only considered total bankroll.
  • Focus on beating better bots: if a bot is really weak, then the results from that bot could skew the rest of the competition

However, considering total bankrolls among the best bots is a good way to evaluate learning techniques. Therefore, using bankroll instant run-off (see No-Limit Winner Determination) to isolate the four best bots, we then use the total bankroll among these to determine a winner.

Heads-Up No-Limit Competition

We will consider a variant of no-limit we call Doyle's Game: in this variant, the maximum amount to be put in the pot by a player in a hand is 1000 times the small blind. Like in limit, we assume that the stacks are deep enough to cover all legal bets. Each match will consist of 1000 hands.

Rules for a Hand(No-Limit)

Each hand is a hand of reverse blinds no-limit texas hold-em. There are no ascending blinds, i.e. the rules in each hand are identical to the last. Some details of this particular variant:
  • Reverse blinds implies that the second player (the dealer) puts in the small blind, and the first player puts in the big blind (two small blinds). Counterintuitively, this means that the second player has the first action on the preflop betting round (the first betting round). In later rounds, the first player bids first.
  • The maximum bet size is that which brings the total number of chips a player has put into the pot to 1000. The nominal minimum bet size is either 2 chips at the beginning of a round or the size of the most recent bet. If the nominal minimal bet is larger than the maximum bet, then the minimum bet is equal to the maximum bet. If someone has already put 1000 total chips in the pot, then you cannot raise. Raises must be of an integer number of chips.
  • There is no limit to the number of raises that can be made, outside of the number of chips.
  • In this competition, there will be no mucking: all players will reveal their cards at every showdown. If a player folds, then their cards will not be revealed until after the match is over.
  • Any illegal action is interpreted as a call if raise is illegal. If it is a raise for an illegal amount, it is interpreted as the closest possible raise amount.

Winner Determination (No-Limit)

May 1st Change: flipped with near-equilibrium WD rule, to agree with voting.

To isolate the bots that most closely approximate an equilibrium, this year we will use the reasoning that a bot that wins the competition should be able to beat the second place competitor in a heads-up match. Moreover, we will argue that the second place competitor should have a higher bankroll than the third place competitor when considering only matches between the top three, and so forth.

The instant run-off technique will guarantee this. It is implemented recursively:

  1. Initialize the set of remaining bots S to be all bots.
  2. Consider all matches between bots in S, and compute the total bankrolls of each bot
  3. Define T to be the bots with the lowest total bankroll. These will be ranked below the other remaining bots in S, and tie with each other. Remove T from S
  4. Repeat 2 and 3 until S is empty

Results

The results of all matches, including the details of every hand, will be recorded and published as soon and as widely as possible. The official announcement of the results will be at AAAI 2007.

Schedule

This is the tenative schedule of how the competition will run.
  • Dec 31st, 2006-server code completed, rules finished, protocols finalized
  • May 1st, 2007-deadline for expression of interest: all external software (such as CPLEX) needed should be specified before here as well.
  • June 1st-15th, 2007-the teams have access to the servers the competition is run on
  • June 15th, 2007, 11:59 PM MST - the bots must be submitted-no further changes are allowed (MST is GMT-6)
  • July 13th, 2007-the preliminary results are announced
  • July 19th, 2007-the results become final and are announced at AAAI.

AAAI Display

As with last year, there will be a AAAI display. Bots will be available for humans to play, posters can be presented from competitors (if there is sufficient space), and selected hands will be shown.

Arbitration

If collusion or abuse of the network is detected, the AAAI Program Chair will present the issue to the teams and they will vote upon either including or excluding the competitor and the matches in which they play. Abuse of the network is defined as any ethernet traffic that is not a communication of actions to the server. Collusion is cooperation between bots. After Jan 1, 2007, change of the code and the rules will only be done through unanimous consent of all registered competitors and the arbiter. In particular, an e-mail will be sent to all competitors and the arbiter, after which they have one week to veto the change (liberium veto). After one week, changes become final.

Cards

The teams will collaborate to generate cards. More about the cards can be found here.