Acme Poker Lab
November 12, 2010 9:03 AM   Subscribe

Acme Poker Lab
The mathematics of no limit hold em poker.
posted by rakish_yet_centered (3 comments total)

I like what you're trying to do, but after reading your "How It Works" post, I fear you might be producing mostly useless statistics. Your bots seem to be entirely weak-loose players, i.e. calling stations. I know that you have different play styles coded in, but if I'm reading it correctly, all of your players will call $200 on a hand where, with no bet in front, they would only have raised $100. This is a wacky play-style that can only really be classified as weak-loose regardless of what their hand criteria are. There ARE players like this, but you'll basically never find yourself playing against a full table of them.

Also, the fact that every post-flop is heads-up makes a WAY bigger difference than you think. It's going to give a huge advantage to your strong "Immediate Valuation" hands, while discounting greatly the reverse implied odds weaknesses of those same hands.

The way that this skews the data is directly visible in the A9o analysis:

I can totally see how, given the playstyle of the bots you have coded, limping A9o under the gun is a good move. But in almost any real life situation that would be the absolute worst thing you could do. A9o UTG is actually a very easy hand to play, especially in tournaments. It is an automatic fold if you have an M of more than 10 and it becomes an all-in somewhere between M=4 and M=10 depending on how tight/loose the table is. Anything trickier (like calling or raising small) is a losing strategy in the long run against almost any realistic group of players.

Of course, there are as many poker opinions as there are poker players, but A9o UTG is one of those situations so cut-and-dry that basically all good players will tell you the same thing: "shove or fold."
posted by 256 at 1:42 PM on November 16, 2010

Excellent comment, thank you.

Regarding calling stations. I needed to create a range of bets that each bot would play so a reasonable number of bots would see the flop. If each bot would raise twice what they would call, no one would ever see the flop. My way, when player one wants to raise 2BB, he will see the flop if another bot will call 2BB, call 4BB, call all, raise 1BB, raise 2BB or raise 4BB. I understand your point, but I think live poker plays the same way. If players weren't willing to call more than they raise, seeing flops would be rare because the table would never agree on a pre-flop bet size. That said, I do play too much freeroll internet, so I see a lot of both weak-loose and strong-loose play.

I buried a chart you probably didn't see that relates to this issue, it shows how often the bots get to the flop, it's at the bottom of the 8-8 post. The percentages aren't as hoped, especially the green line. It's something I'll work on for the next set. I'm not that far away from being done with this set, I see little reason to chart 4-4 if I did 5-5 and 2-2, or any hand not playable.

Regarding each flop being heads up: you misunderstood me.

The A-9n charts. One thing that I have wrong is the left scale, it should be 1 or 2 BB lower than it is, but how I look at it, I'm comparing A-9n to other hands, I doubt I'd ever get realistic numbers, but I think the skewed numbers are comparable. I like to use the 12.5 M because in the turbo game I play each day, in my average hand my M is 16.5. So UTG, these are the raw scores for how the 21 hands I have charted play (the charts are per BB, so they are divided by 80):
  • K-K Raise1BB 406
  • 10-10 Raise1BB 242
  • A-Ks Raise1BB 188
  • A-Kn Raise 1BB 113
  • Q-Js Call 1BB 106
  • 8-8 Raise1BB 97
  • A-Js Call 1BB 95
  • A-9s Call 1BB 75
  • K-Js Call 1BB 62
  • K-Qn Call 1BB 55
  • K-9s Call 1BB 55
  • A-7s Call1BB 21
  • Q-9s Call 1BB 19
  • A-5s Call 1BB 11
  • A-9n Call 1BB 2
  • K-6s Call 1BB -9
  • 5-5 Raise2BB -20
  • K-2s Call 1BB -23
  • Q-6s Raise1BB -29
  • A-3s Call 1BB -41
  • 7-5s Call 1BB -50
  • 2-2 Call 1BB -70
  • 7-2n Raise1BB -84
There are, of course, too many Call 1BB as the favorable bet size in this list, and that does reflect the opponent bots

So I partially agree with you on A-9n at 12.5 UTG, it's a fold. I would never ever push (well maybe at M=1), because most of the hands that call me would dominate, what are these good players hoping someone calls them with, K-8n?

Regarding useless charts: maybe..., my current view is that getting better in poker involves better bet sizing not better hand valuation, but my current view changes each time I'm dealt 2 cards.
posted by rakish_yet_centered at 11:01 PM on November 16, 2010

Oh, freerolls. That makes all the difference. You'll sometimes hear experienced players (even good players) saying that freerolls are unbeatable. Of course, that's a load of crap. Freerolls have the worst players so, obviously, they're the easiest to beat. But what these people are getting at is that freerolls are unbeatable using good general poker strategy.

And therein lies the problem with freerolls. Unless your time is worth absolutely nothing to you, you can't win enough for it to be worth it (if you put Daniel Negreanu in a 45-man freeroll, I doubt he would win more than ~10% of the time). And, because the strategy required to do well at freerolls is so radically different from the strategy required to do well at real money games, they are also essentially useless for learning to play. (If you just like playing freerolls and your goal is to get good at freerolls, that's an entirely different thing. But even if you get amazing at playing freerolls, you won't be any better (and perhaps worse) at playing real money games).

I say this as someone who used to play a lot of freerolls. I wish I had just skipped it and deposited. You can learn so much more at the 5¢/10¢ table (or even the 1¢/2¢ table). The one thing that freerolls are good for is as a sort of mental exercise on adjusting your play, once you've gotten decent at real money games. Here's a simple algorithm that would probably do quite well in freerolls:


TT-AA, AK: If there are no raises ahead of me preflop, raise 10BB. If there is a raise ahead of me preflop, go all in. If there is an all in ahead of me, call with QQ-AA, fold everything else. If I see the flop, go all in if AK hits or if there is no overcard to my pair.

22-99: Limp or call anything that is less than both 1/10 of my stack and 1/10 of the raiser's stack. If I see a flop, go all in if I make a set, fold to any bet otherwise.

everything else: Fold preflop.


Diligently follow the "Loose Table" column on the jcm Pushbot chart.


As you can imagine, this wouldn't be a very good strategy at the WSOP (though it might still perform okay in $1 online tournaments). The point is that, even if you get your bots and program configured perfectly for freerolls then the charts you produce are only going to tell people how to win at freerolls.

Of course, if you are in this more for the love of making the program than for the purpose of getting better at poker, this doesn't really matter. And it is a worthy endeavour. Once you get the freeroll bots working, you can put them on ice and start building another set of bots to model real money play. And in that case, freerolls are the place to start, because never will you find an easier to model player group.

I just worry that you are taking your program output as giving you generalizable information about good poker strategy. I isn't, and it can't. As it stands now, I don't think it's even giving you good advice about freeroll strategy.


Regarding calling stations:

One of the most fundamental rules of good poker strategy is "It takes a stronger hand to call than to raise." This may seem counterintuitive, but it's really pretty simple. If you call, you can only win by having the better hand. If you raise, you can win by having the better hand or by your opponents folding. This is called fold equity. Being the raiser preflop also sets you up for a continuation bet on the flop. More fold equity.

If I have AJo in late position at a cash table and everyone folds to me, I'm very happy to raise 3bb. On the other hand, I would fold without regret to even a 1BB raise ahead of me.

The reason that people who raise more than they call make money is because of people who call. (Obviously, this isn't true in high stakes poker, where it can be assumed that all players are good. But studying HSP is almost as bad for learning general strategy as is studying freerolls.)


Regarding A9o:

A9o is a great hand for shoving UTG once your M gets down to about 5 or so. Hands against which you are a coin-flip or better and which are likely to call include: 22-88, A2-A8, KQ, KJ. And the great thing about shoving a small stack is that it's okay if hands that are better than you call. Say you have an M of 3 and get one caller. The blinds now represent 20% of the total pot. That's an extra 20% equity. You're thrilled in this situation to get your money in on a 45/55 in your opponent's favour. And of course, there's fold equity to think about. If your opponents fold around 2/3 of the time, then it makes sense to shove with an M of 3 UTG even if you have no cards. Study that pushbot chart I linked above.


Wow, sorry for all that text. I hope it wasn't too off-topic...
posted by 256 at 6:38 AM on November 17, 2010

« Older #mathowielove...   |   Drawing while working.... Newer »

You are not currently logged in. Log in or create a new account to post comments.