Article

GTO SOLVERS – WELCOME TO THE FUTURE OF POKER

First and foremost, we’ve all heard about the notion ‘poker solver’, but if you’re not really familiar with one or what they do, you should come with us to the future! Let this chapter educate you on the simplest way to have a full-fledged coach aside you and guide you throughout your whole journey!

Imagine this, you are playing at a table and keep opening trying to steal and then some guy keeps 3-betting you a massive amount and you don’t really know what to do because you haven’t been faced with this situation ever before! Well lo and behold, just go into the solver, input your data and get the precise solution so your opponent can never pick on you and exploit you ever again!

You may wonder how it’s done that a piece of software can give you the absolute perfect solution to an incomplete information game.

In comes John Forbes Nash Jr., winner of the 1994 Nobel Memorial Prize in Economic Sciences and the 2005 Abel Prize. What this man did for game solving will probably never be forgotten and applied massively in the future even of problem solving. He proved that any game can be solved and set the grounds for Nash Equilibrium(named after himself), notion that you may have heard of from MTT, SNG etc.

In game theory, the Nash equilibrium is a concept that describes the perfect solution of a non-cooperative game involving two or more players in which each player is assumed to know the strategies of the other players. If each player has chosen a strategy and no player can benefit by changing strategies while the other players keep theirs unchanged, then the current set of strategy choices and the corresponding payoffs constitutes a Nash equilibrium. The Nash equilibrium is one of the foundational concepts in game theory.

This is what you call GTO in poker, or Game Theory Optimal. Having the best strategy against your opponent’s strategy that will be the best against yours. The applications of  this theory in poker are tremendous, and based on this scientifically proved theorem, poker solvers appeared.

What you have to understand out of all this is that if you can estimate an opponent’s preflop strategy(and that’s not crazy hard to do), a poker solver will give you the perfect strategy for every hand that is played +EV in every way possible for any bet size that you can think of. This strategy is not exploitable and there’s absolutely nothing that your opponent can do versus you, except for playing GTO himself. If he doesn’t, he’s going to be losing money. You are playing the perfect strategy vs him and it’s going to cost him a lot if he keeps playing unbalanced vs yourself.

Solvers don’t only do GTO. You can also improve your exploitative play versus different opponents’ strategies that you will input into the solver. You can custom your opponent’s strategy to the point so that you can get the absolute perfect strategy to exploit him and get the most money out of him. This means that you can get the perfect solution to every question that you’re ever going to have. What more can you really want?

For this chapter I am going to exemplify and use exclusively PioSolver Edge because I have been using it for a long time now and I do believe it’s the best and fastest on the market, also being the solver with the best performance out of the lot, that you can just run on any laptop or PC that can run Windows and has a limited amount of power. You see, the calculations required are immense and generally it would take IBM supercomputers or quantum computing to solve some of these, but with the required and applied optimizations, PioSolver has edged past beyond that need and is nowadays able to run on any dual-core and quad-core CPU and give you the correct result in minutes or even seconds, depending on the generality of the request.

PioSolver makes the whole tree available to browse. You can see exact strategy, EVs and ranges for every turn/river card and every betting sequence. Everything is easily accessible and possible to log which makes the results easy to verify and input into other tools.

It’s the most useful tool in poker at the moment and it’s super convenient to use, you can see strategies/EVs/equities/ranges as well as ranges for specific actions at any point without any delays and needless clicking, and you can jump between different turn/river cards with one keystroke and having the solution refreshing automatically and instantly.

Pio1

The software also has many analysis tools build in, from which my favorite has to be the Range Explorer.

The Range Explorer will not only be an explanation of the solution in detail, but it will also show you the range that you’re supposed to react(or not) with in a relative fashion and show you which hand ranks you hit with what cards and how many combos and what percentage of range you’re hitting that rank with, but also which ranks we’re supposed to raise/call/fold with and which we’re supposed to bet/raise/fold with when it’s checked to us.

This will give you loads of insights into thought processes and especially how you’re supposed to play some particular hands so that you can extrapolate from that and create your own solid postflop strategies versus the opponent that you meet at your limits, your tables.

We’ll also go extensively over that throughout this chapter.

Also, it’s so nice that you can make the setup as you wish so you can see if you did make any mistakes and then even if you did make those mistakes, what is the best way to recover some of the money after you made that mistake.

It’s also super easy to save your solutions and share with other players, let’s say if you’re both part of the same Skype study group and you’re both running PioSolver, then you’re going to be able to share your solutions and give out impressions on them very easily, this software lets you save your trees(solutions) very easily and just send them over and your friend can import them.

This is also a big thing, because there is also a preflop solver which will give you the best solutions ever for preflop ranges that exist. These trees, without particular flops(considering every flop possible) will be extremely large and very hard to compute without having at least 32-64gb of ram and a very strong multi-core CPU like an i9 or a Threadripper/Ryzen 7 . This, for the common PC is going to be pretty expensive to get, so there’s another solution that you can go for. There are virtual private servers or even real servers for monthly rent all over the Internet, and you can rent one for a modest cost and do all your solutions there, then just export them and import the trees onto your PC and just see them in PioViewer. This is easier than it sounds – you rent the server and it gives you an interface with which you can connect to your server and just like using your own desktop, you’re using the server, installing PioSolver and letting it solve your poker problems while you’re doing your own stuff on your own PC, you can even close the connection to the server and it will keep working for you while you’re out having a cold beverage with your friends.

Now, can also be taken to the next level with the scripting function that the software includes, where you can actually go into the PioSolver Console and write down everything that you need the program to solve, like for example you want the ranges that you input but want to know how to play them on a subset of flops, not only one flop. Tell PioSolver what you want with scripting and it will do the job while you’re away from the PC.

So now, let me teach you how to use PioSolver to exploit a defending BB that we have hands on in Holdem Manager 2.

This is BB’s calling range preflop, that I extrapolated in HM2, first of all by putting the opponent which I am studying as “Hero” on top left. After that, you have to apply filters so that your opponent will be in the BB and cold calling a preflop raise vs CO/BTN/SB.

You do this by applying in the main filter window first these checkboxes:

Now, we need to make him call the raise in the BB so then we’re going to apply one of the quick filters at the bottom right of the page. Remember to double click this filter to add it in the upper right column, otherwise it won’t work.

Eventually, your filters should look something like this. It’s very important to select all of them and add them to the top right column, otherwise you’re just going to be selecting them but not adding them truly as a filter and, in consequence, your hands won’t change.

    

The final product of our filters should select way less hands than the initial result.

Now, right in the middle of the screen, to the side of where it says last 250 hands, there is a button that will give you your opponent’s hole cards in a range graph, just like we showed above. The idea behind this range graph is to extrapolate your opponent’s calling range in the BB so that we can input this calling range into PioSolver afterwards and learn the best way to exploit it with our preflop opening range on any flop that we have questions on.

Now, don’t let yourself fooled by this range, your opponent 3-bets too, but you can definitely extrapolate his range from here. If you hover over any hand with your mouse, you’ll get the number of time that this opponent has called in the Big Blind with this hand. Now, remember that off-suit hands have more combos than suited, but there are still discrepancies between these numbers.

It says that he’s called 28 times with KQo. Then it’s pretty obvious that we need to move this hand inside our opponent’s calling range pretty much every time in the BB vs a steal.

Now, looking again at the same chart at a hand like K6s, this is what we find:

Our opponent has only called K6s in the BB 2 times vs steals. That’s super rare and almost never going to happen, so it’s negligible.

This means that we can extrapolate our opponent’s range to the hands that he calls more often to a weight of 100%, and then some hands that he calls occasionally like AK/QQ+ to 20-50% depending on the amount of times that he called with these hands. This will be pretty easy to realise in PioSolver because the range selector is very intuitive.

So let’s say that we’re opening from the BTN 3bb and then BB is going to be calling with his usual range. We’re going to input our opening range first, which is going to be In Position(IP) as per PioSolver. I tried selecting the default BTN opening range in the software, so it’s almost identical to my default opening range, so I’m going to use this one:

You will see some 0.3 or 0.5 around some hands. This is weight. This means that out of the total combos of A2o, for example, we’re opening only 0.5, or 50% of them. 0.3 will be 30% of times we’re going to be opening J4s.

I like the prospect of weighting because it makes you a lot less readable sometimes and balancing opening a few hands with folding them also will get you to fold less vs unknowns when they 3-bet, but the most important part here is that when you actually get to a showdown and you get to table Q2s, your image at the table will grow as being a very aggressive player and you’ll get called down more often.

Now for BB’s range, here’s the actual challenge:

I did my best to replicate BB’s calling range although it’s hard because it’s very inconsistent. Not having so many hands on your opponent, you’ll deal with this quite often, but the solution here is to try to approximate his range, you don’t have to get it down perfect but have a main idea on how to exploit 10% calling range, 15%, 20% etc. even 40%+ and even 5% which sometimes some nits will call and you will not know how to play this postflop.

Now, that we have input our opponent’s calling range, it’s time to get down to business. First of all we’ll select a flop that we feel we have trouble on and then we’ll select the betsizes and everything that we need to adhere for the decision tree to be built.

Let’s go first of all for AcQdTd. I always have trouble bluffing on this board and I’m wondering how much air I’m supposed to be betting on this board. I almost never bluff here so that would be very nice to know if I’m doing the right thing GTO-wise.

All the bets on the three streets will be 2/3 pot because that’s the size that I’d be betting for value and for protection on all three streets, but just to prove a point, we’re going to add two bet sizes for every street when we’re betting.

Pot size is going to be 65 on the flop because we’re opening 3bb and then BB calls so 6.5BB total with the SB fold. Remaining stacks are going to be 97BB but you can set them to whatever you want, of course.

I believe we’re almost done here, we’ve put the whole betting patterns and possible raises there, each raise will be half pot and then we build a tree where we can bet either 2/3 pot or half pot on every street. We need to estimate the size of the tree so that we can figure out if it will fit in RAM.

Looks pretty good.

Basically you’re going to need enough RAM in your PC to cover  for the tree, but that’s generally okay if you select only one bet size. If you select two bet sizes the tree will become considerably bigger, but you can just do them one by one. Look for only one bet size:

Nowadays most PC’s have at least 4GB of RAM, but I really recommend if you’re going to use PioSolver to it’s maximum potential to have at least 8GB in yours or even 16GB to make sure. Good RAM is inexpensive nowadays and upgrading is not the hassle it used to be, and it’s a good investment whatsoever for your PC.

Now, we’re just going to start the solver and get the solution to our problem.

You can really see here how fast it is, it will give solutions for 3GB trees in minutes or even seconds depending how fast your PC is.

OO wee. Well that looks really interesting, it’s saying that we should check back 70% of our range and bet 30% of it. So you understand this chart, the dark red we’re betting 43 which is 66% pot, 50% pot we’re only betting with 2% of our range which is pretty much irrelevant and confirms the fact that betting 50% pot on these super connected boards will not really get you far as you’re giving most of your opponent’s strong draws virtually pot odds to call, so a higher bet like 2/3 pot is preferred.

Now, the red and green is how many combos of that particular hand you’re supposed to bet(red) and how many combos you’re supposed to check back, and you see that AA is a bet and QQ for sure but JJ is almost always, for example, a check back here. I’d go even so far as to check back KK on this board but the solver says that betting vs this BB range is better so you’re probably getting a lot of value from his draws that it’s more profitable to bet. You see Axs is half bet half check back, and then you’re going to see a lot of flush draws that you’re betting, mostly all your draws. Look:

It says you’re mostly supposed to bet the 86dd which has a flush draw on the flop and then it prefers betting with the 8c6c. Why is this and not 8s6s? Because of the Ac on the flop, you’re blocking some of the backdoor flush draws that your opponent might get if you check back so betting this will get you more fold equity in the long run on the flop.

As you can clearly see, I put this into Range Explorer and we’re still supposed to be betting for balance 35 combos of air here which I’m clearly not doing until today because it just felt like I was getting called way too much on this board. Sure, if you want to play full exploit then you’re probably going to check, but for balance some backdoors and king highs (!!!) will be bet here.

This was amazing for me. Even the pocket KK, you’re supposed to bet more the KK that have a diamond in them because of your backdoors, first of all, and then the fact that you’re blocking a lot of your opponent’s draws. Hello, novelty! Now, let’s see after we’re checking back the flop also, we can select any turn whatsoever, it will be really fast to give a result.

Let’s take the 2c. It’s a brick but it brings down a lot of BDFD’s.

As you can see here, you’re betting on the turn J9cc and J9dd. The solver picked up on this and is now betting a lot more on the turn, by the way, 62% of your range. This is a big difference, but I guess after BB calls and checks the turn we have a lot more information about his range and can proceed to be betting again with a wider frequency because now he’s out of position and it’s a lot harder for him to be getting implied odds because he’s out of position and also he would have raised most of his super strong hands on the flop so we can exclude those.

Yep, we’re still betting 20 combos of air and 12 combos of K high on the turn. That’s insane only to even think of that, and think of the fact that with K high and all my air I was always checking back this flop and folding turn mostly unimproved.

So now I really want to figure out the best thing there is. The river bricks and we’re definitely getting there with a lot of missed draws. What is the frequency in which we’re going to be bluffing here? I really want to know that. So, the river is going to be the 7s. So we’re going to be placing here first of all what we’re betting and then what we’re checking back with. You’re going to see that all our top pairs and lower except for 3rd pair and lower are checking back which is sick actually! No value! 2p+ is betting and also some air combos which represent 11% of total betting range. Also, we’re betting with 3rd and lower pairs and turning them into bluffs with some blockers, of course. I like this a lot. Now, what are we  actually betting as a bluff and why is this special? First of all, the amount of pure air and hands that are never getting called by worse is 25% which is awesome.

These are the hands that we are occasionally going to be bluffing on the river with:

Why more J8ss and J8hh than the rest? Well, it’s pretty easy to figure out that if we’re not holding the Jd or the 8d then we’re not blocking missed flush draws that our opponent could have had and straight draws and we’re also blocking some of his top pairs like AJ etc. so this is why J8ss is one of the best hands to be doing this with. Max fold equity.

One of the best things that I learnt with PioSolver is to select the best hands in your range to bluff with and the reasons behind them. Like I said, learn how to use the software to get the results you want and then extrapolate the thought processes behind these solutions and use them for your own game.

Solving Preflop

Solving Preflop has been sought out for tens of years now, but nowhere has anyone been closer than PioSolver Edge. The thing is, it takes an absurd amount of RAM memory to do this calculation, because it’s just a lot broader than selecting two ranges and . Why not just do it on an SSD or Hard Disk then, you say? Because they are a lot slower. In fact, an SSD will have transfer speeds of around 500mb/s and a decent RAM these days in sequential input will have around 10000mb+ per second transfer speed.

Also, Ram is not only 20x to 25x faster in terms of data throughput, but also much lower latency. After a request the RAM data which arrives back to the CPU responds roughly 1000x sooner than from SSD. I don’t even think I need to open a subject on Hard Disks which are a lot slower than SSD’s.

This means that you can’t do these calculations on anything other than RAM efficiently, so if you’re going to do these preflop trees then more RAM is required, OR you can do something else. You don’t necessarily need to all the flops in existence, you can just do subsets of flops which contain general flops that you meet often enough and if you do this right you’ll get to classify actually most flops. There’s not much difference between A82r and A72r, so there’s no need to put them both in, the result will be the same. Get it? I do.

So, we’ve set a standard preset here for BTN vs BB, the IP range is the BTN open and then we’re trying to find out with what range BB should be reacting and how. There’s a 3bb raise in the tree and then BB can 3-bet to 100, call or fold, then BTN can 4-bet to 210 or call or fold and then BB can either shove, call the 4-bet or fold. Stacks are 100bb. Now, if we’d select every single flop the size of the tree would be unreal, but the programmers have thought about this and have done subsets of flops that are weighted and have been calculated to be very close to a full set of all the flops possible. There’s a whole folder of flop subsets ranging from 5 to 500 flops that you can select, for the sake of this book I am going to select 20 flops that are weighted perfectly. This is what I got, if I had selected 200 then I would have needed a lot more RAM that I obviously don’t have and no standard PC user will. There are solutions to this in the name of PioCloud which offers already built solutions for sale and also renting a private server from a company just to do the solutions and then you’re done and you get to keep them forever.

The minimum recommended RAM for this is 32GB, and I say that 64GB is optimal, but I’m doing fine with my 20GB as you can see.

Here’s how the strategy for BB as how GTO says he should react to BTN’s opening range, and then this is how BTN is going to react vs a 3-bet:

YEP. That much. Also, AA GALORE! What’s his shoving range?

Yep, we’re calling AA and slowplaying vs a 4-bet and I really think the fact that a solver can tell you this is amazing. Thank you very much!

Also, afterwards when you get to a flop from every possible situation preflop, you can select one of the 20 flops that the software worked on:

This is everything you’ve ever needed on preflop and postflop. Also, you can solve any amount of blinds. One more thing, when PC’s will have terabytes of RAM and stronger CPUs(many years from now), poker will be solved in any amount of blinds that you require and a lot of games with incomplete information will be completely solved to the point of non-exploitability. The trees can literally be endless and solve all your problems and answer all your questions.

Set it up for whatever you want to find out and then just let it slide. Your answers will be at the end of your wait.

Get it here now: http://piosolver.myshopify.com/

 

 

About Tudor Scriminti

Computer Science BSc Graduate, started playing poker online since 2007, professionally since 2012, won $50k playing micro-stakes with over 2.5 million hands experience, coach to over 500 happy students and loves to game on the side when has some free time!