Update 24th April: Maria Gini will be serving as the arbiter for the 2009 competition. Due to the fact that the chair of the 2009 competition, John Hawkin, will also be competing, Professor Gini will be in charge of resolving any disputes that may arise.

Below the rules for 2009 are posted. So far there has not been as much discussion on the forums about the rules as there was in previous years, and thus it is important that teams that intend to enter the competition this year have a look at the changes that have been made since last year.

The 2009 Competition

This year we will have the following competitions:
  • Two heads-up limit competitions
  • Two heads-up no limit competitions (Changed from 2008)
  • Two 3-player ring limit competitions (Changed from 2008)

This has changed from 2008 in two ways. First of all, there will now be two competitions in each division, a bankroll competition and an "equilibrium" competition. The run-off rules for the equilibrium competitions have been modified to be more consistent. This will be explained in more detail below.

The second major difference from last year is that the multiplayer competition has been changed from a six player competition to a 3 player competition. There are a number of issues which motivated this change, such as:

  • It is difficult to evaluate a six player competition and obtain significant results
  • It is not clear what should be done if less than six bots enter (luckily there were exactly six last year)
  • Many of the biggest challenges of multiplayer poker are present in the 3 player game, but it is a much smaller more managable domain to tackle
The question of how the multiplayer competition should evolve in the coming years is an open one, and should be discussed as much as possible in the lead up to next year's competition. A team may submit up to two bots for each competition. The rule in the past has been that if two bots are submitted that they must represent different technologies, in that there is some fundamental difference in the way they work. This will continue to be the case.

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
Please Note:

By submitting a bot, competitors agree to have their bots available in a benchmark server. Only teams that compete in 2009 will have access to this server.

Competition Objective

There are many reasons for researching artificial intelligence in the context of poker. Two such reasons are:
  • 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 main 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, in years past the details of each hand have been made completely public.

Update March 25th: Whether or not we should continue to release the hand histories of the matches was discussed on the forums, and the consensus was that we should, at least for this year. Thus the hand histories (including cards, betting sequences, etc) will be made public immediately following the presentation of results.

Also note that a benchmark server will be available after the competition. The bots will be made available to test against (for teams who competed in 2009), but will not be available to download. This will help competitors try alternative techniques to find out how they would have done.

Qualifying Rounds

If the number of competitors in a given competition exceeds ten, then there may be a qualifying round if necessary due to lack of computing resources. 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 3 players with the 3 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.

Heads-up Duplicate Matches

The heads-up competitions will consist fundamentally of duplicate matches. A duplicate match consists of an ordinary heads-up match of 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 variance of the outcome.

NEW: Generalization of Duplicate Matches to Multiplayer

We will generalize the duplicate format for the 3 player matches. If we consider that there are 3 possible seats that each bot can sit in, and 2 different relative orderings of the other 2 bots given the position of one bot, then there are six total possible configurations of 3 players at a given table. If we choose to play N hands per match then the following system will assure all players rotate through all possible seats and relative orderings:

  • Seat the players in some ordering, say bot 1 is the small blind, bot 2 the big blind and bot 3 the button
  • Play N/6 hands using standard poker rules: after every hand the button and blinds rotate one seat to the left
  • Reset the memory of the bots
  • Rotate the seating of the players to the left, so in our example bot 1 is now on the button, bot 2 is SB, bot 3 is BB
  • Play N/6 hands again, dealing the same cards as before to the same seats as before (bot 1's first hand is now bot 3's first hand from round 1)
  • Reset the bots again
  • Rotate once more
  • Play the same N/6 hands again
  • Reseat the players in the other relative ordering - bot 1 SB, bot 3 BB, bot 2 button
  • Repeat the above process of dealing out the same N/6 hands to the same seats, reseting the memories and rotating the bots between rounds

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. In the limit competitions the bankrolls will be sufficiently large to ensure against bankruptcy. The number of matches played in the multiplayer competition for each grouping of players may be quite small, depending on the number of entrants and the availablility of computing resources.

Hardware/Software Setup

The code for the server and a detailed description of the protocol are available here.

Update March 25th: The competition will be run on Linux. Each process will be allowed 30 GB of uncompressed disk space and 4 GB RAM.

Please note that it is possible that multiple programs will be running on the same computer. It is up to the individual users to make sure that their directories are secure. Furthermore, activity on the machine will be monitored and any activities that are against the spirit of the competition will be dealt with harshly.

Update February 26th: Competitors will not be required to provide their source code. If there is some concern about cheating, then the arbiter may request to see a competitor's code, but this would only be in an extreme circumstance, and the exact procedure in such a situation is yet to be determined.

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 6001 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.

Winner Determination for 2 Player Competitions (Limit and No Limit)

NEW: Both the heads-up limit and no limit competitions will have two winner determination methods this year - an instant run-off based on bankroll format and a total bankroll format. This has changed from 2008 when no limit was judged using only instant run-off bankroll, and there were two limit competitions - total bankroll and instant run-off based on "wins".

NEW: In both the limit and no limit categories each match will consist of 3000 hands. Last year the limit matches were 5000 hands long and the no limit matches were 1000 hands long. In order to be fair to opponent modeling approaches in both limit and no limit the number of hands in each competition has been standarized at 3000.

All pairs of bots will play a series of matches against each other. Here we will describe in detail how the winner of each division will be determined.

Winner Determination Based on Instant Run-off Bankroll (Known as the Equilibrium Competition)

To isolate the bots that most closely approximate an equilibrium, 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 3, 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

Winner Determination Based on Total Bankroll (Known as the Bankroll Competition)

In the bankroll competition, we are trying to isolate which bots are capable of maximally exploiting other bots submitted to the competition.

In previous year's competitions, measures were taken to prevent malicious bots from affecting the results via chip dumping or other such techniques. This year we are taking the optimistic view that no such entries will be submitted. (If an entry is suspected of violating the spirit of the competition, that entry will be subject to disqualification, as determined solely by the Arbiter.) Thus, the winner determination rule for this competition will be based on total number of chips won against all competitors. The same matches are used to determine the winner of the instant-run off and total bankroll formats, the results are simply calculated differently.

Winner Determination for 3 Player Competitions

NEW: As was mentioned above, this year the multiplayer competition will be changed from a six player competition to a 3 player competition. The 3 player competitons will be judged using the similar formats to the two player competitions: an instant run-off based on bankroll format and a total bankroll format.

In both 3 player competitions all entrants will play at least one match against every possible combination of opponents. This means there will be m choose 3 matches, where m is the number of entrants. Unless there is an abundance of computing resources available there will be only one match per configuration. This is to give the maximum number of hands possible in between each memory reset (as described in the duplicate section above) for opponent modeling purposes. Likely this will still result in less hands in between each memory reset than in the two player competitions.

Winner Determination Based on Instant Run-off Bankroll With 3 Players

We generalize the two player instant run-off bankroll winner determination rule as follows:

  1. Initialize the set of remaining bots S to be all bots.
  2. Play all possible m choose 3 matches between bots in S, where m is the size of 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 contains only 3 bots
  5. Play a match between the last 3 bots, and compute the total bankrolls of each bot
  6. The last 3 bots come first, second and third based on their total bankroll from this match

Winner Determination Based on Bankroll with 3 Players

As with the 2 player format, the 3 player bankroll competition will be decided by the total number of chips each competitor wins against all other competitors. The same matches are used to determine the winner of this format and the instant run-off format.

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 flop (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.

Rules for a Hand (Limit Ring Game)

The rules for each hand of the limit multiplayer competition are standard. In particular, there will be a button, a small blind, and a big blind. The action starts to the left of the big blind pre-flop, and it starts to the left of the button on all other betting rounds. There will be a maximum of 4 bets per round, even if it is heads-up.

Rules For a Hand (No Limit)

NEW: This year the stack sizes in the heads up competition will be reduced to 200 big blinds. In years past 500 big blinds was used mainly to render jam fold strategies less effective and force competitors to solve the full game. Stack sizes of 200 big blinds reduce the game to a more managable size, are more consistent with what is actually played amoung humans, and are still deep enough that jam fold strategies are highly exploitable (though competitors are welcome to use them).

We will consider a variant of no-limit we call Doyle's Game: in this variant the stack sizes of both players are reset after every hand, and the score is kept separately. This is akin to both players buying in for 200 big blinds every hand, cashing in their chips at the end of the hand, and buying in for 200 big blinds again the next hand.

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:

  • We will play "1-2" no limit with stacks of 200 big blinds, meaning that the small blind is 1 chip, the big blinds is 2 chips and both players start each hand with 400 chips.
  • Reverse blinds implies that the second player (the dealer) puts in the small blind, and the first player puts in the big blind (2 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 400. 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 400 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.
  • When both players are all-in, a full roll-out of the remaining cards will take place. This is done in order to decrease variance. (This will actually be implemented as a post-processing step so that the protocol will not have to be modified. The bots should be aware of this.)

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 IJCAI 2009.

Schedule

This is the tenative schedule of how the competition will run.
  • May 1st, 2009 - deadline for expression of interest: all external software needed should be specified before here as well. Late registrants will be accepted only if resources permit.
  • May 28th - June 11th, 2009 - the teams have access to the servers the competition is run on
  • June 11th, 2009, 11:59 PM PST - the bots must be submitted - no further changes are allowed
  • July 9th, 2009 - the preliminary results are announced
  • July 11th, 2009 - the results become final and will be announced at IJCAI.

IJCAI Display

As in previous years, there will be some type of display. Likely this will be similar to years past - Bots will be available for humans to play, posters can be presented from competitors, etc. The will likely be a formal presentation of the results along with associated technologies. Information about this will be posted as it is determined.

Arbitration

If collusion or abuse of the network is detected, the Chair (John Hawkin) will present the issue to the arbiter of the competition (to be determined). In such cases, the arbitor's decision will be final. 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 Mar 31, 2009, 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.