/Bluffasaurus

Primary LanguageC#MIT LicenseMIT

Bluffasaurus Poker Bot


Poker Specific Algorithms

EHS (Effective Hand Strength)


The algorithm is a numerical approach to quantify the strength of a poker hand where its result expresses the strength of a particular hand in percentile (i.e. ranging from 0 to 1), compared to all other possible hands. The underlying assumption is that an Effective Hand Strength (EHS) is composed of the current Hand Strength (HS) and its potential to improve or deteriorate (PPOT and NPOT):

EHS = HS \times (1 - NPOT) + (1-HS) \times PPOT

where:

  • EHS is the Effective Hand Strength
  • HS is the current Hand Strength (i.e. not taking into account potential to improve or deteriorate, depending on upcoming table cards
  • NPOT is the Negative POTential (i.e. the probability that our current hand, if the strongest, deteriorates and becomes a losing hand)
  • PPOT is the Positive POTential (i.e. the probability that our current hand, if losing, improves and becomes the winning hand

Go to top ^
More about the algorithm

Monte Carlo


Using the EHS algorithm, all possible remaining card sequences are considered. For this reason, this process can be time consuming, given the large number of possible sequences of cards. For example, the number of remaining cards is as follows:

  • Flop: 47! / (47-3)!


* Turn: 46! / (46-2)!

This would take a lot of time to calculate. The solution for this problem is to use Monte Carlo Method. The Monte Carlo Method considers a small random subset of card sequences. This means, that the calculation is much faster. The only problem with this technique is that the obtained result is an approximation. However, our experience showed that the error is very small, making this a very reliable solution.

Go to top ^
More about the algorithm
More information of the usage within the Bot's logic you can find in the Turn section


Strategy

Pre-Flop

  • Hand evaluation: using EHS percentage ( More information )
  • Betting: Based on
    • hand evalutaion
    • position on the table (i.e if the bot is on small or big blind)
    • amount to call (converted in f(blind ) )
Raise Check / Call
ƒ(blind) ƒ(blind, moneyToCall, leftMoney)
Popular strategy within the pre-flop is
to bet from 3x to 4x the SB.
Bluffasaurus Poker Bot is reising
in the range 6x up to 20x.
Playing 75%-85% of the cards
depending on the position on the table.

Go to top ^


Flop

  • Hand evaluation:
Time Limit: 0.1 s Time Limit 0.05s
Using EHS + Monte Carlo with ~ 2000 combinations using the chart of the (absolute) frequency of each hand.
( The chart )

When using the chart, the AI checks for:

  • Pair * Is the pair on the table * If not, does the bot holds the highest possible pair for the flop or is it higher than TT
Raise Check / Call
ƒ(blind, pot) ƒ(blind, moneyToCall, leftMoney)
Reising in the range 8x up to 30x the SB. -
Go to top ^

Turn / River

  • Hand evaluation:
Turn River
EHS + Monte Carlo EHS
EHS: ~ 45 K combinations
Monte Carlo: selecting ~ 2 K
EHS: ~990 combinations

Go to top ^