Pre-flop Player Model – Position and VPIP

Economics

Introduction

I have given a brief explanation of how to adjust VPIP for each position pre-flop, but when it came time to actually create the program, a troubling issue arose. I will summarize my thoughts on the problem, how to deal with it specifically, and how to express it in a program. It’s still a trial-and-error process and a bit frustrating, but I think it’s something that needs to be taken into consideration when working on NPC behavior algorithms, so let’s discuss it here.

Number of Players and VPIP

It is said that the VPIP under standard Texas Hold’em rules is around 20-25%, but this 20% figure is probably based on when there are 6 players participating. If there are two players in the game, a VPIP of 20% is clearly folding too much, and it is said that with two players you can participate in 60-70% of games. Thinking about it this way, we can surmise that the appropriate VPIP is linked to the probability of winning. In a two-player game, the probability of winning is 50%, while in a six-player game it is 16.67%, so we can think of this difference as being reflected in the appropriate VPIP level.

 If we think about it this way, when we express the number of participating players as \(\small n\), we might get something close to the appropriate VPIP level by calculating it as:

\[ \small \text{VPIP}(n) = \frac{120}{n}\%. \]

In reality, it is estimated that VPIP will be a little higher if the number of participants exceeds 6, so it may be better to adjust it using a formula like

\[ \small \text{VPIP}(n) = \frac{120}{n-0.5\times\max\{n-6,0\}}\%. \]

In this case, the VPIP corresponding to \(\small n\) is as follows:

2345678910
VPIP60%40%30%24%20%18.5%17.1%16%15%

 If we use the average VPIP when there are six players as a parameter for modeling player behavior and use that as a basis to calculate the VPIP for each number of players, we will be able to model player behavior for games with any number of players. This reference VPIP is referred to as baseline VPIP. For example, if the baseline VPIP were 25% instead of 20% (equivalent to replacing 120 with 150 in the VPIP calculation formula), the calculation would be as shown in:

2345678910
VPIP75%50%37.5%30%25%23.1%21.4%20%18.8%

 In addition, it can be assumed that the degree to which the participation rate is adjusted according to the number of participants will vary depending on the player’s skill level and preferences. A common mistake is to only play with a conservative range when there are only two players and fold too much. On the other hand, it may be the case that participation rates remain high despite the game having a large number of players. To reflect these player characteristics, we will introduce a parameter that controls how VPIP is adjusted based on the number of participants. We will call this table factor \(\small \tau\), and when its value is 1, the same correction as above will be made, when it is 0 no adjustment will be made, and when it is 0.5 half the adjustment will be made. That is, calculate it as:

\[ \small \text{VPIP}(n, \tau) = \text{VPIP}(6) + \tau(\text{VPIP}(n)-\text{VPIP}(6)). \]

For example, if the baseline VPIP is 25%, it can be calculated as:

τ n=2345678910
025%25%25%25%25%25%25%25%25%
0.2537.5%31.2%28.1%26.2%25%24.5%24.1%23.7%23.4%
0.550%37.5%31.2%27.5%25%24%23.2%22.5%21.9%
175%50%37.5%30%25%23.1%21.4%20%18.8%
1.2587.5%56.2%40.6%31.2%25%22.6%20.5%18.8%17.2%

If you set the baseline VPIP to a high value, it may exceed 100%, in which case you can round it down to 100% or set a cap on the table factor value. By specifying a baseline VPIP and table factor for each NPC, it will eliminate the need to specify betting strategies for each number of players at the table.

 In an actual game, if the number of players is fixed at six or nine, then these considerations would not be necessary, and another option would be to create an NPC for each number of people at the table. It may depend on the nature of the game whether the above simplification is good or whether it is a bit more tedious to increase the amount of NPC configuration data to deal with it. This type of approach seems likely to be necessary in games where the number of players changes dynamically, as the author originally had in mind.

VPIP by Position and Standard Table

I explained that the VPIP, which represents the player’s characteristics (loose or tight), and the adjustment based on the number of participants are adjusted using baseline VPIP and table factors. In reality, the same player will have a different VPIP depending on their position. Generally, BTN is the most advantageous position and will therefore have a high participation rate, while UTG and other positions that make early decisions pre-flop will tend to be played with a lower participation rate. Regarding the ratios related to this participation rate, let us define the following ratios as the standard table (these values are defined based on the author’s current sense, and may be replaced with values with more theoretical accuracy in the future).

n=2345678910
UTG0.5
EP10.550.6
EP20.60.650.7
MP0.650.70.750.8
LJ0.70.750.80.850.9
HJ0.750.80.850.90.951
CO0.850.90.90.9511.051.1
BTN1.21.31.41.551.651.751.851.9
SB1.250.9511.051.11.21.251.31.4
BB0.750.850.850.90.950.9511.051.1

 The VPIP calculated from the baseline VPIP and table factor multiplied by this standard table factor is the NPC’s VPIP for that position. Specifically, when the baseline VPIP is 20% and the table factor is \(\small \tau=1\), the VPIP for each position can be calculated as follows:

n=2345678910
UTG7.5%
EP18.8%9%
EP210.3%10.4%10.5%
MP12%12%12%12%
LJ14%13.8%13.7%13.6%13.5%
HJ18%16%15.7%15.4%15.2%15%
CO25.5%21.6%18%17.5%17.1%16.8%16.5%
BTN48%39%33.6%31%30.5%30%29.6%28.5%
SB75%38%30%25.2%22%22.1%21.4%20.8%21%
BB45%34%25.5%21.6%19%17.5%17.1%16.8%16.5%
Avg.60%40%30%24%20%18.5%17.1%16%15%

 As with the table factor \(\small \tau\), we can assume that the degree to which participation rates are adjusted according to position will vary depending on the player’s skill level and preferences. There are cases where the influence of position is not taken into consideration at all, or, conversely, is overly influenced by position. To reflect these player characteristics, we will introduce a parameter that controls the degree of VPIP adjustment by position. We will call this the position factor \(\small \pi\), and when its value is 1, the same correction will be made as in the standard table, when it is 0 no adjustment will be made, and when it is 0.5 half the adjustment will be made. In other words, when the table factor is \(\small \tau\) and the position factor is \(\small \pi\), the VPIP is calculated as:

\[ \small \text{VPIP}(n, \tau, \pi) = \text{VPIP}(n, \tau, 0) + \pi(\text{VPIP}(n, \tau, 1)- \text{VPIP}(n, \tau, 0)). \]

\(\small \text{VPIP}(n, \tau, 1)\) is the VPIP in the standard table, and \(\small \text{VPIP}(n, \tau, 0)\) represents the VPIP when position is not taken into account. \(\small \pi\) can also be set to negative values. By adjusting the VPIP in the opposite direction to the way it should be adjusted, it will be possible to represent players whose participation rate increases in OOP cases. If the value exceeds 100% or falls below 0%, you can round it up appropriately. If you round it up, the calculated average VPIP value for each position will not match the original average value, but this is not very important, so we will not worry about it.

Player Strategy Parameters

From the discussion so far, we can determine a player’s VPIP in various situations using:

  • Baseline VPIP \(\small \varphi\) (I did not define the symbol, but I will use \(\small \varphi\) below.)
  • Table Factor \(\small \tau\)
  • Position Factor \(\small \pi\).

In the post on the model of player preflop behavior, the VPIP was specified directly, but this needs to be modified so that a preflop strategy can be determined for each VPIP, which changes depending on these parameters.

 For example, if your strategy is:

  1. 3bet / 3bet on top 5% of preference rankings
  2. 2bets / 3bets on top 5-10% of preference rankings
  3. 2bets / 2bets on top 10-20% of preference rankings

and your VPIP is 20%, how should you adjust your VPIP to 10%? One way would be to align with

  1. 3bet / 3bet on top 5% of preference rankings
  2. 2bets / 3bets on top 5-10% of preference rankings

and discard strategies that do not meet VPIP. Another way would be to adjust the ratio, which would be to align with:

  1. 3bet / 3bet on top 2.5% of preference rankings
  2. 2bets / 3bets on top 2.5-5% of preference rankings
  3. 2bets / 2bets on top 5-10% of preference rankings

 In reality, both adjustment methods appear to be extreme, so it is assumed that the adjustments are made to fall somewhere in between. As a specific adjustment method, we define a strategic factor \(\small \sigma\) and calculate it as follows. The larger VPIP value in the range of each strategy is denoted as \(\small \varphi_1,\varphi_2,\cdots,\varphi_m\). Since the VPIP\(\small \varphi_m\) of the strategy with the highest VPIP is adjusted to \(\small \hat{\varphi}\), if the adjusted value is denoted as \(\small \hat{\varphi}_1,\hat{\varphi}_2,\cdots,\hat{\varphi}_m\), then it is \(\small \hat{\varphi}_m=\hat{\varphi}\). The VPIP of each strategy can be adjusted by calculating

\[ \small \hat{\varphi}_i = \varphi_i+\sigma\varphi_i \left(\frac{\hat{\varphi}}{\varphi_m}-1\right). \]

However, note that \(\small \hat{\varphi}_1 \leq\hat{\varphi}_2 \leq\cdots \leq\hat{\varphi}_m\) must be hold.

 I have created a tool that displays NPC hand ranges reflecting what has been learned so far, so I have included a link below. This allows us to define strategies for all hands, depending on the number of players and each position.

SB Limp In

Based on the discussion so far, some readers may feel that the VPIP of SB and BB is too low. In reality, even in a 10-player game, there is about a 30% probability that all players up to SB choose to fold (40% with 6 players), so if all players up to SB fold, the strategy will usually be different from the above choice. In this case, even if the SB does not have a particularly strong hand, the BB may have a weak hand, so a strategy of limping in for the time being is relatively effective. Specifically, if all players up to the SB fold, it is equivalent to a two-player game of Texas Hold’em, so the VPIP of the SB will be adjusted to around 60-80%. Therefore, the appropriate VPIP level during SB would be about 20 to 30% higher than the value in the model above. As for the BB, although it is not counted in the VPIP, the ratio of them calling the SB’s limping in and opening the flop is about 20-30%. The important thing is to incorporate limp-in by the SB as a special process (the BB can leave it as it is, since it will automatically call even if it has a folded hand).

 One way is to use the VPIP from a two-player game and add cards to your limp-in hand to match that level. However, if you bet 1bet/1bet, your reaction when the BB raises may not be appropriate, so it is better to set a range, including whether you will call or fold the BB’s raise. I’m just noting that this is something that needs to be taken into consideration when ultimately incorporating it into the game.

Application

The focus of the model in this paper was how to adjust VPIP depending on the number of participants and their positions. I would like to implement this in an actual game to see if it behaves like a real player, but since regular Texas Hold’em also involves play after the flop, I will wait until I have finished considering the post-flop behavior model before I can check its behavior. Instead, I would like to develop a game that allows players to choose between going all-in or folding pre-flop, and check whether the hand selection for each player and position is done appropriately. I’ll try to develop this game from next time onwards. If it works well, it might be useful for practicing push or hold in tournaments when you have a short stack.

Comments