Open Side Menu Go to the Top
Register
PioSOLVER - postflop equilibrium solver for Holdem PioSOLVER - postflop equilibrium solver for Holdem

08-16-2019 , 10:11 PM
Can anyone GTO gurus tell me which statement is true and which statement is not true?

A) In GTO you take the highest EV line with your range but some hands in your range may not be max EV individually

B) YOU TAKE THE HIGHEST EV LINE WITH EACH INDIVIDUAL HAND, ALWAYS, REGARDLESS OF WHAT THE BEST STRATEGY IS.

Which one is correct?
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-16-2019 , 11:34 PM
I posted this question on a few other forums and no one knew what I was taking about. I've been advised that this thread might be the place to ask.

How can we calculate a perfect counter (nemesis) strategy for a specific opponent assuming:

1. We know Villain's exact strategy, for every hand, in every spot.
2. Their strategy is fixed.
3. Using a finite game tree with fixed bet sizes.

This is a problem I've had on the back of my mind for months. Please help.

Here's where I'm at:
First map a game tree with all possible lines and runouts. From there I think I have to start at the end of each possible line (leaf node) and work backwards through the game tree, recalculating EV as I go. I can't figure out how a mixed strategy works into this, as choosing the highest EV strategy for each combo will probably not give mixed strategies. What am I missing?
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-16-2019 , 11:48 PM
Also, just out of curiosity, does Pio use CF Regret Minimization, or have you developed some kind of propriety algorithm to calculate Nash?
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-17-2019 , 11:21 AM
Hi, I'm new here and my english is not so good but I'll try to explain. What is the difference between using specific ranges for specific positions (lets say EP opens and MP CC):

https://imgur.com/Vk91Wvb
https://imgur.com/MowKL2s

and these large 2bpot-full given ranges:

https://imgur.com/b1Bo8lP
https://imgur.com/ZdWfozs

Same question for 3bet pots?

Is it better for me to study to import all specific ranges like MP vs EP, CO vs EP/MP, BTN vs EP/MP/CO... Or am I going in a wrong way?
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-17-2019 , 01:16 PM
Quote:
In your solver when it says something is mixed in frequency -that means the EV's are the same.
This would be true in perfect equilibrium. It's not true if the solution is not perfect (as EVs are calculated assuming the opponent plays the current solution). The better the solution is the closer EVs for mixed actions are.

Quote:
So if the EV's are the same - why are the frequencies not 50/50?
Why would it be 50/50 exactly? It may well be any other mixing. For example in a toy game where you have AA:1 and 22:1 vs KK:1 on 55554 river and you have half pot bet available (opponent can only bet or fold) you would you would bet AA 100% and 22 33%. The opponent would call 66%. Still both the bluff with 22 and the call with KK has the same EV as checking and folding respectively.

Quote:
Hello, Does it incorrectly display or am I not understanding something?
https://prnt.sc/otpzo1
If you are wondering why the square for 94s shows 75%-25% mixing even though only one 94s is really in the range then the answer is that the default weighting is per combo regardless of their current weight in range. As 9s4s 9h4h and 9c4c all check about 100% then even if 9d4d bets 100% the average is still 75-25. If you would like to weigh by current weight in range (so 9d4d which is more often present gets more weight) then you need to check "bars width proportional to weight" checkbox visible on your screenshot on the right side.

Quote:
Like if I have the solver installed on a desktop and a server, and I want them to be configured exactly the same, I can just copy the settings from one instance to another. That would be a very nice feature.
You can!
The simplest way is to just copy paste the whole Pio folder.
Alternatively you can copy specific folder/files:
-Ranges folder to have the same saved ranges
-Treebuilding folder to have the same tree configs
-pioviewer-.settings file to have the same settings in the viewer

You can also copy spefic ranges/treebuilding configs by going to those folders and choosing individual files.

Quote:
Also I'm normalizing a range to make it easier to read for a presentation and I was wondering if you could explain why the max freq isn't coming out to equaling 1 in my normalized range (screenshots below)? Shouldn't the max freq equal 1? Normalizing just means dividing all the frequencies in the range by the largest frequency in that range, right?
One of the hands should have weight of 1. Notice that this is for specific combo, not for the whole hand group so that's not visible on your screenshot.

Quote:
Can anyone GTO gurus tell me which statement is true and which statement is not true?
A) In GTO you take the highest EV line with your range but some hands in your range may not be max EV individually

B) YOU TAKE THE HIGHEST EV LINE WITH EACH INDIVIDUAL HAND, ALWAYS, REGARDLESS OF WHAT THE BEST STRATEGY IS.

Which one is correct?
B is correct. A is not correct. If it was possible to increase your EV then it wouldn't be equilibrium by definition. Notice that this is only true in perfect equilibrium (Nash distance 0). If the solution is not perfect then actions will have slightly different EV because that EV is calculated against current solution.

Quote:
How can we calculate a perfect counter (nemesis) strategy for a specific opponent assuming:
In Pio you can get this by calling set_mes IP (or OOP).

Quote:
First map a game tree with all possible lines and runouts. From there I think I have to start at the end of each possible line (leaf node) and work backwards through the game tree, recalculating EV as I go. I can't figure out how a mixed strategy works into this, as choosing the highest EV strategy for each combo will probably not give mixed strategies. What am I missing?
This is the gist of the algorithm. It's pretty simple implementation wise at least in comparison to calculating the equilibrium itself.
Quote:
Also, just out of curiosity, does Pio use CF Regret Minimization, or have you developed some kind of propriety algorithm to calculate Nash?
Pio uses a propriety algorithm. It's possible that in the future we will allow choosing a CFR based one instead. Our algorithm has following advantages over CFR based ones:

-it uses way less memory allowing for building bigger trees
-it's more stable, jumps around less
-it gets ballpark frequencies faster than CFR

and following disadvantages:
-it doesn't converge that well to exactly 0. Usually stalls around 0.05%-0.1% of the pot and is much slower below 0.25% already
-it converges much slower on very simple trees

As most of our customers care mainly about building bigger trees we are shipping Pio algorithm. We already have a very good regret based in dev and we may ship it in the future. It's up to 5x faster on simple trees, converges to 0 without problems on every tree but uses more than 2x memory and jumps around more before settling to the solution.

Quote:
Hi, I'm new here and my english is not so good but I'll try to explain. What is the difference between using specific ranges for specific positions (lets say EP opens and MP CC):

https://imgur.com/Vk91Wvb
https://imgur.com/MowKL2s

and these large 2bpot-full given ranges:

https://imgur.com/b1Bo8lP
https://imgur.com/ZdWfozs

Same question for 3bet pots?

Is it better for me to study to import all specific ranges like MP vs EP, CO vs EP/MP, BTN vs EP/MP/CO... Or am I going in a wrong way?
The built-in ranges are there just as examples. You should use ranges which are the closest to the ones people use in your game.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-17-2019 , 01:59 PM
Quote:
Originally Posted by punter11235

Pio uses a propriety algorithm. It's possible that in the future we will allow choosing a CFR based one instead.

...

We already have a very good regret based in dev and we may ship it in the future.
Can you tell me more about Pio's algorithm? Is it an improvement based on existing GTO approximation methods, or have you guys invented some completely new method? I'm not looking for trade secrets or anything, but I'm really curious about the science behind how Pio works.

Secondly, can more than one Nash Equilibrium exist in 2-player poker? Would all solvers essentially converge to the same strategy, or would they just settle at some localized minimum?

Lastly, when can we expect to see a 3 player version of this program?

Keep up the great work, Punter!
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-17-2019 , 03:45 PM
Quote:
Can you tell me more about Pio's algorithm? Is it an improvement based on existing GTO approximation methods, or have you guys invented some completely new method?
As far as I am aware it's new although idea behind is a bit similar to gradient descent. Please consider that Pio was almost release ready before Cepheus/CFR+ papers came out. There wasn't much to choose from among publicly available algorithms back then.

Quote:
Secondly, can more than one Nash Equilibrium exist in 2-player poker?
Yes, I think Kuba even posted some toy example on the river. If there exist more than one equilibrium though they will result in the same EV for both players as long as the game is zero sum (no rake or ICM).
In practice it seems all the solvers and various algorithms we tried converge to the same thing on trees resembling a real game.

Quote:
or would they just settle at some localized minimum?
As long as the game is 2 player and 0 sum it's guaranteed that they will not settle in local minimum. There just might be more than one solution resulting in the same EV for both players.

Quote:
Lastly, when can we expect to see a 3 player version of this program?
I made too many promises in the past and wasn't able to deliver due to various factors. There will be multiway Pio and it won't be for 3 players only (you will be able to choose from 2 to 9). That much I can say.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-17-2019 , 04:42 PM
heey, imagine that you want to pio check flop and bet turn 33%. How to fill in a flop bet? Type just "0" there or what to do?
And how to force PIO bet on turn 100%?
Thanks

Last edited by TK1991; 08-17-2019 at 04:48 PM.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-17-2019 , 05:20 PM
Quote:
Originally Posted by TK1991
heey, imagine that you want to pio check flop and bet turn 33%. How to fill in a flop bet? Type just "0" there or what to do?
And how to force PIO bet on turn 100%?
Thanks
If you don't want a player to bet the flop, then just leave it blank. You can force specific strategies using the node-lock feature under tools. Here's a demonstration video:
https://www.youtube.com/watch?v=a_OhaxBi7mY
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-17-2019 , 10:53 PM
I have a theoretical question, feel free to ignore if you do not know the answer:

At the beginning of simulation PIO by assigning each option in the profile equal frequency, is that correct?

Do you know if the choice of distribution matters when the final solution is calculated i.e is the simulation sensitive to that initial condition?

Also thanks punter for your response re my normalized range I posted. I looked at every cell in that 13x13 grid and didnt see one with a value of 1 so do you think means it didn't work properly?

Finally, two kinda wacky questions:

Do you have any data or anything published that shows your algorithm works to within a degree of certainty compared to the other available algorithms?

Are these algorithms currently (yours, CFRM, et al) adapted from other purposes or were they basically designed solely to compute nash equilibria?

Last edited by EggsMcBluffin; 08-17-2019 at 11:00 PM.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-18-2019 , 04:13 AM
Quote:
At the beginning of simulation PIO by assigning each option in the profile equal frequency, is that correct?
Well, right now it does have a very slight improvement over that by assigning 0% to folds with nuts on the river.

Quote:
Do you know if the choice of distribution matters when the final solution is calculated i.e is the simulation sensitive to that initial condition?
If there is no rake or ICM then it shouldn't matter (it may just take way longer to get to the solution if you start from something awkward for the solver). In Pio it may matter if you set strategies for some hands close to 0 as Pio works in a way that it never "comes back" from 0 (as getting there is not as easy normally it is confident the action is never chosen if it does become 0).

Quote:
Also thanks punter for your response re my normalized range I posted. I looked at every cell in that 13x13 grid and didnt see one with a value of 1 so do you think means it didn't work properly?
It sounds like it either didn't work properly or you missed it. If you still have the save we would like to take a look.

Quote:
Do you have any data or anything published that shows your algorithm works to within a degree of certainty compared to the other available algorithms?
Measuring the quality of the solution is easy as for that it's enough to calculate exploitability which is computationally trivial (at least in comparison to getting to the solution in the first place). This means you can try any kind of algorithm without proof of correctness and see how it does in practice. We used to solve a lot of trees using different algorithms (implemented by us and others) to compare solutions and it look more or less like the same thing but at the end of the day the way to measure it is to calculate exploitability and see.

Quote:
Are these algorithms currently (yours, CFRM, et al) adapted from other purposes or were they basically designed solely to compute nash equilibria?
While it's fashionable to claim those algorithms may have wide applications like self-driving cars, curing cancer or providing peace in the Middle East my view is that their applications is limited to solving for equilibrium at least until proven otherwise. There are common themes in those algorithms and other optimization algorithms but I am yet to see anything convincing about how CFR could be applied to different areas.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-18-2019 , 11:10 AM
What to do if I get this:

"Server error: ERROR: build_tree not enough memory; needed: 23293 MB; available: 1622 MB
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-18-2019 , 11:37 AM
Add ram. Or build smaller tree.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-18-2019 , 01:29 PM
I bought the Pro version yesterday and installed it on a contabo's server with the following configuration:
- 256 GB REG ECC RAM
- 2x Intel Xeon E5 2630v4 (10 x 2.20 GHz)

I've tried to run the "bench" command a few times and it always got between 8 to 9 seconds with nothing else running on the server, which looked very strange to me because in your FAQ pt.2 video you get the same result (9 or 10sec) on your personal computer which has a 2013 CPU.

I've then tried to solve a very small tree (299mb) to 0.25% accuracy on different flop textures and it takes around 4 mins on average, which seems way too slow to be normal.

Finally, to be completely sure I asked a friend of mine who uses the same exact server and configuration (but who has the Edge version) to run the same tree and it solves it 3 or 4 times faster.

Could you please help?
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-18-2019 , 08:04 PM
Piotr you mentioned that most of the time you leave the two ranges 100% for preflop sims. one example you used for setting was a steal from late position vs BB where you would set the range for late position steal and leave BB at 100%. In that case the solution would be to solve for the BB range.
My question is what are you solving for if you set both oop and ip ranges?
A little more clarification will help improve my understanding of defining preflop ranges in preflop sims. I am clear on the need for defining the two ranges post flop. It is my impression (I could be wrong) that simple post flop program doesn't define ranges when they do 6 max calculations. Thank you very much for your time.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-19-2019 , 03:39 AM
Quote:
What to do if I get this:

"Server error: ERROR: build_tree not enough memory; needed: 23293 MB; available: 1622 MB
It looks like you either have very little RAM installed (4GB) or other applications are taking most of it. 23GB tree is really big as well ,to solve such trees you need to have access to serious hardware.

Quote:
I've tried to run the "bench" command a few times and it always got between 8 to 9 seconds with nothing else running on the server, which looked very strange to me because in your FAQ pt.2 video you get the same result (9 or 10sec) on your personal computer which has a 2013 CPU.
The pro version works with max 16 threads so that's likely the reason. You will get better performance if you switch of hyperthreading or set affinity so it uses 16 cores (and not 8 cores with hyperhtreading which likely what is happening now).

Quote:
Piotr you mentioned that most of the time you leave the two ranges 100% for preflop sims. one example you used for setting was a steal from late position vs BB where you would set the range for late position steal and leave BB at 100%. In that case the solution would be to solve for the BB range.
For BB range as well as play of the stealer after the initial raise.

Quote:
My question is what are you solving for if you set both oop and ip ranges?
Some examples:
-steal vs 3bet from SB (you need ranges for that because it wasn't HU after SB 3bet as there was still BB to act)
-steal vs BB if you have specific read about defending range
Quote:
It is my impression (I could be wrong) that simple post flop program doesn't define ranges when they do 6 max calculations. Thank you very much for your time.
Pio is HU solver at the moment. To solve multiway you need either heavy abstractions or a gigantic machine. Right now we don't provide that functionality.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-19-2019 , 10:36 AM
Quote:
Originally Posted by tombos21
If you don't want a player to bet the flop, then just leave it blank. You can force specific strategies using the node-lock feature under tools. Here's a demonstration video:
https://www.youtube.com/watch?v=a_OhaxBi7mY
Idont have the option use node locking.
Is there some other option how to force pio cbet 100%??


https://pasteboard.co/Itqva00.jpg
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-19-2019 , 11:08 AM
heey guys
that does means the number in the ring in the picture? Average cbet EV of my rane? Or? thanks

https://imgur.com/E53hddb
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-19-2019 , 03:27 PM
It shows you the EV of your whole range in position.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-19-2019 , 04:10 PM
How are range values calculated? Are they simply weighted average of all hands within the range?
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-20-2019 , 11:26 AM
does exist an option how to force PIO bet on turn 100%?
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-21-2019 , 12:33 AM
I use PIO exclusively and haven't worked with other solvers--I hear mention occasionally that Monker can solve multiway spots. Given my rudimentary understanding of the situation, I feel somewhat confident that there's some "catch" here? What is it?

I'm assuming it involves either:

1. very low degree of accuracy with the solutions
2. high amount/magnitude of assumptions (so as to simplify the tree)

Can anyone shed some light on this?
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-21-2019 , 02:58 AM
Quote:
Originally Posted by angel zera
I use PIO exclusively and haven't worked with other solvers--I hear mention occasionally that Monker can solve multiway spots. Given my rudimentary understanding of the situation, I feel somewhat confident that there's some "catch" here? What is it?



I'm assuming it involves either:



1. very low degree of accuracy with the solutions

2. high amount/magnitude of assumptions (so as to simplify the tree)



Can anyone shed some light on this?


Might want to try asking here:

https://forumserver.twoplustwo.com/1...olver-1651569/
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-21-2019 , 12:15 PM
Quote:
Originally Posted by The Apex
Thanks for the link. I thought about posting it there at first. But it seemed a little rude to post in the thread for a solver--one that claims to solve multiway--asking for clarification as to why said software can't actually solve multiway

Mostly just curious for punter's take on it

Edit: to clarify, I'm not convinced it can't, either. But I just want some clarification as it's interesting to me that the 2 largest solvers differ with something as big as the ability to solve multiway spots

Last edited by angel zera; 08-21-2019 at 12:32 PM.
PioSOLVER - postflop equilibrium solver for Holdem Quote
08-21-2019 , 01:10 PM
Crossposted from Discord:

I just upgraded to PIO 1.10.23.0. Now when I run an aggregate report, I get this message:

Error: "You have selected an option to 'Process only flops from subset', but the selected file doesn't exist."


How do I fix this?
PioSOLVER - postflop equilibrium solver for Holdem Quote

      
m