Open Side Menu Go to the Top
Register
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? How to calculate optimal calling range heads-up versus player moving all-in preflop every hand?

06-18-2018 , 08:43 AM
In one of Sklansky's works, he described a specific scenario where blinds were 100/200, stacks were 10,000 (so M = 33.33) and the opponent would move all-in every hand. He suggested that the player doing so had a 39% chance to win even with optimal play by the other player on the first and subsequent hands.

I would love to be able to recreate that experiment myself in a general case (i.e. calculate the optimal calling point as a function of stack sizes and SB-or-BB position) so as to start estimating the value of opponent error.

Has this been done already? Can anyone give me a start in the right direction?

Thanks!
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-18-2018 , 09:49 AM
I'm assuming this is a heads up BvB situation, in which the SB jams a total of 10,000 with ATC so the BB has pot odds of 10,200:9800, which means the BB needs to win 9800/20000 = 49% of the time, to break even if he calls.

The range of hands that has >49% equity vs ATC is 22+,A2s+,K2s+,Q2s+,J4s+,T7s+,97s+,A2o+,K2o+,Q4o+,J 7o+,T8o+ (about 53% calling frequency)

Crunching the equites of ATC vs the profitable calling range...

----*******Equity*****Win*****Tie
SB ATC --*42.53%**41.00%***1.53%*{ random }
BB call --**57.47%**55.94%***1.53%*{ 22+, A2s+, K2s+, Q2s+, J4s+, T7s+, 97s+, A2o+, K2o+, Q4o+, J7o+, T8o+ }

The shover has equity of 42.5% of the pot even when he gets called.

If I've done my maths correctly, the total EV of the shover's strategy is minus 601 chips. (He wins 300 47% of the time when the BB folds, but he loses an average of 1400 on the 53% of times that he gets called.)
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-18-2018 , 11:24 AM
Oh, sorry for not being clear, I meant he has (apparently) a 39% chance of winning the heads-up showdown (as in a tourney final, etc.)

So if the villain will call any hand with 51% equity on the first hand, the hero would in fact have a 49% chance of winning the showdown on the first hand, which is higher than the estimated 39%.

So yeah there's some equilibrium at play.. if he calls too loose OR too tight it goes up from that P(win) that he gets with optimal play. And of course, the calling requirements change by hand.

I'm so sure it's doable and I bet if I started with a smaller problem (say, 100-200 blinds and stacks of 600) it could be calculated exactly, and then build on top from there. But I don't want to go down a wild goose chase.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-18-2018 , 12:16 PM
If you know your opponent is going all-in blind every hand, i don't think it is optimal to use pot-odds on one hand to determine your optimal calling range.

That's the point of this scenario. You can wait until you pick up a much better hand and have him crushed.

Waiting entails a bunch of folding which allows opponent to pick up the blinds and slowly increase his chip stack. So the optimal strategy reflects a balance between these two objectives.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-18-2018 , 12:25 PM
Right, and if Sklansky's calculations were correct, if you have a 61% chance to win with optimal play then it stands to reason your first hand calling range is anything that's 61%+ against a random hand, so:

66+, A7s/A9o+, KTs/KJo+ would be worth a call on the first hand.

It stands to reason as well that the calling range loosens as your stack gets smaller and your range gets tighter should you win and take a lead.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-18-2018 , 06:49 PM
Quote:
Originally Posted by Moose
So if the villain will call any hand with 51% equity on the first hand, the hero would in fact have a 49% chance of winning the showdown on the first hand, which is higher than the estimated 39%.
Not true. If villain only calls with hands that have 51% equity vs ATC, that means the worst hand he calls with will win 51% of the time. His entire calling range will actually win more often, since it will also contain hands like AA/KK that win much more often than 51%.
Quote:
Originally Posted by Moose
Right, and if Sklansky's calculations were correct, if you have a 61% chance to win with optimal play then it stands to reason your first hand calling range is anything that's 61%+ against a random hand, so:
66+, A7s/A9o+, KTs/KJo+ would be worth a call on the first hand.
Equilab (which might be wrong) tells me the range that has 61%+ equity vs ATC is slightly different: 66+,A8s+,KTs+,ATo+,KQo

Against that range, ATC only wins 32.45% of the time at showdown.

I don't know how Sklansky came up with 39%, but a calling range of 22+,A2s+,K5s+,Q8s+,J9s+,A2o+,K7o+,Q9o+,JTo is one that would mean that ATC will lose 61% of the time, and win 39%.

If this game is two unemotional bots playing and they never alter their strategies, then I think pot odds and equity are the only things that matter. Bots don't "fold and wait for a better spot", like humans do. The BB just calls with anything that makes money as a call, doesn't he? With these pot odds, I think the bottom of his calling range is J4s or Q4o or T8o, as these all have close to 49% equity vs ATC. Maybe there is some benefit to folding a few times and waiting for a bigger edge, but I'm not sure how one would go about deciding on it.

P.S. I'm not sure if I've read the book in which the situation as described in the top post is mentioned, but doesn't it just serve to say that "Even if you have a sub-optimal strategy of jamming any two cards, you're still not in bad shape even if villain calls 'correctly'"? i.e. You can jam with junk and you'll still win pretty often, so going all in blind isn't the worst strategy in the world... especially if you lack skill.

Last edited by ArtyMcFly; 06-18-2018 at 06:57 PM.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-19-2018 , 04:42 AM
Quote:
Originally Posted by ArtyMcFly
If this game is two unemotional bots playing and they never alter their strategies, then I think pot odds and equity are the only things that matter. Bots don't "fold and wait for a better spot", like humans do. The BB just calls with anything that makes money as a call, doesn't he?
If the bot wants to maximize its winning probability then playing exclusively by chip odds is wrong. That would assume that the bot's winning probability is proportional to stacks sizes, which isn't right when the other player just blindly shoves every hand.

This isn't hard to solve programmatically, idk how you would go about solving this accurately by hand though.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-19-2018 , 08:25 AM
For starting stacks of 50bb/50bb i get the following:

Win% for always-shoving player when starting as SB: 36.97867%
Win% for always-shoving player when starting as BB: 36.78622%

At starting stacks, the other player shoves/calls with a range of:
9.8%, 66+ A9s+ ATo+ KJs+

The always-shover is roughly 36.9% to win overall - slightly different than the % provided in the OP. I might have messed up somewhere though, this was just quickly thrown together.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-21-2018 , 08:41 AM
I wonder how our strategy changes if we know that the villain will leave the table once they double up.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-21-2018 , 09:52 AM
Yeah, that's what was calculated. Both players start with 50bb and the game ends as soon as one player loses those initial 50bbs.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-21-2018 , 10:28 AM
Quote:
Originally Posted by plexiq
For starting stacks of 50bb/50bb i get the following:

Win% for always-shoving player when starting as SB: 36.97867%
Win% for always-shoving player when starting as BB: 36.78622%

At starting stacks, the other player shoves/calls with a range of:
9.8%, 66+ A9s+ ATo+ KJs+

The always-shover is roughly 36.9% to win overall - slightly different than the % provided in the OP. I might have messed up somewhere though, this was just quickly thrown together.
The fact that you got very close is a good sign though. How did your strategy adjust as the player folded and their stack size got smaller. It stands to reason that their range would definitely vary as they started the hand with 1 to 99% of the chips.

David Sklansky needs to weigh in here
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-21-2018 , 10:59 AM
You can find the full strategy sets below:
SB Strategy and Win%
BB Strategy and Win%

I ran the script for various starting stack sizes from 0.5-200bb. You can find the various results here, along with a table of winning percentages by starting stacks.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-21-2018 , 03:05 PM
Quote:
Originally Posted by plexiq
You can find the full strategy sets below:
SB Strategy and Win%
BB Strategy and Win%

I ran the script for various starting stack sizes from 0.5-200bb. You can find the various results here, along with a table of winning percentages by starting stacks.
This is absolutely amazing. Dare I ask how you did it, or does a magician not reveal their secrets? I'd direly love to reproduce this on my own end and/or build my own engine for it.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-22-2018 , 03:54 AM
This is fairly easy to program, but also pretty useless for solving the game manually. So no idea if the stuff below is helpful at all.

Anyway, we basically only look at the non-shoving player's perspective, the always-shover is not terribly interesting obviously.
  1. First enumerate all tournament states of the game, ie all the possible chip/seat configurations at the start of a hand. (That's roughly 400 states for the 50bb game: [SB, 0.5bb-99.5bb] and [BB, 0.5bb-99.5bb].)
  2. Assign some approximate value to each state. As a start we can use chipEV. So we estimate that, at the beginning of the hand in state [SB, 20bb], the SB will win the "tournament" 20% of the time. These 20% are the approximate value of this tournament state. (These estimates only get us started, they will be updated later.)
  3. Based on these initial estimates, calculate the best response strategy for the player in each of these states. This gives you the transition frequencies between the states, ie you now know what percentage of the time you go from state [SB, 20bb] to state [BB, 19.5bb], ie how often SB folds, when assuming the approximate state values.
  4. We now consider the strategies from 3) as fixed and calculate the updated value of the tournament states when these strategies are played. (Basically, solve a set of simple linear equations created from the transition frequencies.)
  5. Once we have these new state values we update our approximation in 2) to the new values obtained in 4) and repeat the process until convergence.

You can find the details here: Computing Equilibria in Multiplayer Stochastic Games of Imperfect Information

I just slightly adopted the PI-FP algorithm from page 6, the FP (Fictitious Play) part is unnecessary when only one player is allowed to change strategies anyway.

Last edited by plexiq; 06-22-2018 at 04:01 AM.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-23-2018 , 11:59 AM
Quote:
Originally Posted by plexiq
This is fairly easy to program, but also pretty useless for solving the game manually. So no idea if the stuff below is helpful at all.

Anyway, we basically only look at the non-shoving player's perspective, the always-shover is not terribly interesting obviously.
  1. First enumerate all tournament states of the game, ie all the possible chip/seat configurations at the start of a hand. (That's roughly 400 states for the 50bb game: [SB, 0.5bb-99.5bb] and [BB, 0.5bb-99.5bb].)
  2. Assign some approximate value to each state. As a start we can use chipEV. So we estimate that, at the beginning of the hand in state [SB, 20bb], the SB will win the "tournament" 20% of the time. These 20% are the approximate value of this tournament state. (These estimates only get us started, they will be updated later.)
  3. Based on these initial estimates, calculate the best response strategy for the player in each of these states. This gives you the transition frequencies between the states, ie you now know what percentage of the time you go from state [SB, 20bb] to state [BB, 19.5bb], ie how often SB folds, when assuming the approximate state values.
  4. We now consider the strategies from 3) as fixed and calculate the updated value of the tournament states when these strategies are played. (Basically, solve a set of simple linear equations created from the transition frequencies.)
  5. Once we have these new state values we update our approximation in 2) to the new values obtained in 4) and repeat the process until convergence.

You can find the details here: Computing Equilibria in Multiplayer Stochastic Games of Imperfect Information

I just slightly adopted the PI-FP algorithm from page 6, the FP (Fictitious Play) part is unnecessary when only one player is allowed to change strategies anyway.
This is absolutely what I needed. Thank you so much

A question about this process: does the quality of the initial guess matter? Like if you seeded the initial array with random numbers, would it converge accurately? Would it converge at all?
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-23-2018 , 01:22 PM
Quote:
Originally Posted by Moose
A question about this process: does the quality of the initial guess matter? Like if you seeded the initial array with random numbers, would it converge accurately? Would it converge at all?
In this specific game it doesn't matter, it may just converge slightly slower.

If your estimates are remotely reasonable it typically does not matter, eg. you want to at least make sure that the sum of player payoffs in every state is correct. You can run into issues if that's not the case, but it also depends how you implement step 4.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote
06-24-2018 , 06:57 PM
Quote:
Originally Posted by plexiq
For starting stacks of 50bb/50bb i get the following:

Win% for always-shoving player when starting as SB: 36.97867%
Win% for always-shoving player when starting as BB: 36.78622%

At starting stacks, the other player shoves/calls with a range of:
9.8%, 66+ A9s+ ATo+ KJs+

The always-shover is roughly 36.9% to win overall - slightly different than the % provided in the OP. I might have messed up somewhere though, this was just quickly thrown together.
For being quickly thrown together, I find this to be quite amazing.

I'm further pleased that the explanation of the method used was easy to follow.
How to calculate optimal calling range heads-up versus player moving all-in preflop every hand? Quote

      
m