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.
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.
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.