Wednesday, July 26, 2006

Downloadable Hand Orderings

By popular demand, here are the generated hand orderings as described in this blog entry :

Saturday, July 15, 2006

Towards a Meaningful Ordering of Hands

Overview

Many poker books include chapters with hand rankings, and many software tools (including some at propokertools.com) support specifying the top N% of hands. Almost immediately the question arises - how do we create a meaningful ordering of hands?

One possibility is to use human judgement in creating hand rankings. This has worked fairly well in strategy books on hold'em, partly because the game is reasonably well understood, and partly because there are only a small number of distinct hold'em hands (169 to be exact). For omaha, it is not practical to list all the hands in a chart, as there are 16,432 distinct hands. Some authors have come up with point systems for evaluating omaha hand strength, and others have given general guidelines.

A second possibility is to race each possible hand against a set of random hands (say, two or three). Up until recently, propokertools.com used this approach. It is very easy to generate an ordering this way with less than a hundred lines of computer code, and the result will have no human biases. Upon inspection, however, the results leave something to be desired. This is not surprising, as random hands are rarely played in practice.

A third possibility is described by Billings, Davidson, Schaeffer and Szafron in "The challenge of poker" (a paper in "Artificial Intelligence"). At propokertools.com, we use hand orderings inspired by their approach. We created an evolutionary computer simulation, whereby the set of "good hands" is gradually refined, and hands are ranked against other "good hands".

The Evolution Program

To generate the ordering for each game:

Perform the following computation a total of ten times:
For each possible hand h:
Do the following many times (where "many" doubles each iteration):
  • Deal the hand h, and add one chip to the pot

  • Deal one random hand b, and add one chip to the pot (to simulate a "blind" hand)

  • Deal eight random hands. For each "good" hand (defined later), add one chip to the pot (to simulate a player calling). For all the rest, fold the hand

  • Deal a board, and award the pot to the winner(s)
We define a "good" hand as one which, on average, wins more than one chip from the pot. Put another way, a "good" hand is one that does better than break-even. For the first iteration, all hands are considered "good" hands. As the simulation is run, the set of good hands shrinks, and by the seventh iteration or so it becomes fairly stable.

Some Interesting Results

Top 15 hands by game
  • Hold'em : AA, KK, QQ, JJ, AKs, TT, AKo, AQs, 99, AJs

  • Omaha hi (all double suited): AAJJ, AATT, AAQQ, AAJT, AA55, AAKK, AA44, AA66, AA99, AA77

  • Omaha hi/lo: AxAy2x3y, AxAy2x4y, AxAy2x5y, AxAy2x2y, AxAy3x4y, AxAy2z3x, AxAy2x6y, AxAy2x3z, AxAy3x5y, AxAy2z4x
Speaking subjectively, these results look pretty good to me. For hold'em, I might put AQo ahead of AJs. For omaha, the numerical results are very close - this is not surprising given the relatively large set of hands possible. A small bit of random variation could easily have moved some hands up or down a few spots.

Percentage of "good" hands by game after the last iteration
  • Hold'em: 13% of hands are "good" (last "good" hand is KJo)

  • Omaha hi: 15% of hands are "good" (last "good" hand is QxQyJz3x)

  • Omaha hi/lo: 15.5% of hands are "good" (last "good" hand is AxJxTx4x)

Profitability of "best" hand by game
  • Hold'em: AA rates 2.046

  • Omaha hi: AAJJ double suited rates 1.568

  • Omaha hi/lo: AA23 double suited rates 1.571

Limitations of this Approach

As with any approach based on all hands going to river, caution must be used when interpreting the results. Furthermore, as our method uses random results, the generated orderings will be different each time our evolution program is run. In the future we will be performing experiments to see how much variation there is from run to run. We also plan on running the evolution program for games with less than 10 players to see what differences arise.