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

05-10-2017 , 04:27 PM
When trying to generate an aggregation report on the root node of a preflop small save, I'm getting an error message saying "index was outside the bounds of the array". Any idea what the problem is?
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-10-2017 , 05:51 PM
How can I create a subtree from a preflop solution to investigate different flops (that weren't in the original preflop solution). When I do "Create subtree configuration" I get "This feature only works if there is a known basic configuration of the tree."

Edit: I should note I'm using one of the PioCloud samples (.cfr file). Do I have to have the actual file used to create the original tree for this to work? It seems like the solver should be able to just take the ranges, pot size, stacks and available lines from a given node and create a tree from it.

Last edited by Ingenol; 05-10-2017 at 06:00 PM.
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-10-2017 , 10:49 PM
Quote:
Originally Posted by punter11235
Yes, it's compiled to use 128 threads as of now.



There are two types of aggregation reports:

1)simple aggregation report where you aggregate EVs/EQs/general frequencies on a simple tree (across all turns or rivers)

2)aggregation report across multiple files (so you aggregate say cbet frequency across many flops using the saves you create by script for that).

The simple report is described here:
https://www.youtube.com/watch?v=VhG_YsEvfwU (point 7, see the video description)

The multifile report is described here:
https://www.youtube.com/watch?v=5Ozjfnatwms (point 5)

You need saves created by a script first to run it, how to run a script is described here:
https://www.youtube.com/watch?v=VhG_YsEvfwU (point 6)



Scripts are used to create and solve trees (for example a config on many boards). You don't need a tree that is already solved for that, you need a config (see the link above). There is only one way to generate a script in our GUI that is clicking "generate tree" button.



I think the videos above do just that. Let me know if you need more help.
Btw, many things done in aggregation reports are done by runout EV comparison feature (hotness). You can find it under Analysis in the top menu (or press ctrl + H to bring it up). Just go to some turn card and try it, you will see EVs/EQs/overall strategies on all possible cards in this runout, like here:
https://gyazo.com/e045b358cfb6cbc1b3ace7380ec57142

I realize it would be useful to have a written tutorial. Unfortunately we think it's not a very practical decision to have one. Creating it takes a lot of time and then maintaining it takes even more time. That means there would be less features (as every interface change or a new thing would require re-writing corresponding part of the tutorial) and/or the software would be more expensive. There is a reason the trend these days is that most software doesn't come with written detailed tutorial - the cost is just too much.
okay,

I solved a flop spot, and was wondering about other flops.

I was thinking that the aggregation report would give me the excel spreadsheet for various flops, which I could then compare EV and EQR with.

So I thought i needed to run an aggregation report across multiple files which I needed to generate first with a script.

I started a script , with your help, and it did the full 180+ flops. The black box finishes and says you can close the box, and find the report in whatever file.

I think the next thing to do is to run an aggregation report on multiple files?

I press the multiple file aggregation report button

In one box on left it says:

Perform analysis over 5 files in C:\Users\steve\Downloads\whichful@outlook.com (4).
Please note that it only makes sense if all trees are identical except for the board.
C:\Users\steve\Downloads\whichful@outlook.com (4)\Bet entire range OOP EP v CO KT4r.cfr
C:\Users\steve\Downloads\whichful@outlook.com (4)\Btn v BB 553r.cfr
C:\Users\steve\Downloads\whichful@outlook.com (4)\BTN v BB 553tt before node lock.cfr
C:\Users\steve\Downloads\whichful@outlook.com (4)\Check entire range OOP EP v CO KT4r.cfr
C:\Users\steve\Downloads\whichful@outlook.com (4)\EP PFR v CO with forced Cbet.cfr
Warning: Found more than one potential script file in the saves directory
Potentially a script file: C:\Users\steve\Downloads\whichful@outlook.com (4)\Bet entire range OOP EP v CO KT4r.cfr.txt
Potentially a script file: C:\Users\steve\Downloads\whichful@outlook.com (4)\Btn v BB 553r.cfr.txt
Potentially a script file: C:\Users\steve\Downloads\whichful@outlook.com (4)\BTN v BB 553tt before node lock.cfr.txt
Potentially a script file: C:\Users\steve\Downloads\whichful@outlook.com (4)\Check entire range OOP EP v CO KT4r.cfr.txt
Potentially a script file: C:\Users\steve\Downloads\whichful@outlook.com (4)\EP PFR v CO with forced Cbet.cfr.txt
Potentially a script file: C:\Users\steve\Downloads\whichful@outlook.com (4)\files.txt
Potentially a script file: C:\Users\steve\Downloads\whichful@outlook.com (4)\pokersites.txt
Potentially a script file: C:\Users\steve\Downloads\whichful@outlook.com (4)\version.txt

the next box is empty excpet for a message about not finding ranges.

So I assume I am in the wrong spot?


Can you please tell me if what I am doing is the right idea? If so, after running the 184 flop subset (which may not be saved correctly, but I do find the whole group in Saves.) can I actually compare the flops?

thanks

which
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-11-2017 , 03:26 AM
Hi there!
Is it posible to use an SSD M.2 disk instead of RAM memory as virtual memory for Pio Solver trees? If so... How? Is it possible to use both? Which difference will be?
Because is so much cheaper...
Thank u!
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-11-2017 , 04:18 AM
So piosolver tends to prefer checking back say QQ for example on a 34K 2tone flop at a higher frequency when we don't have a bdfd than it does when we do hold a bdfd. Ik piosolver doesn't take into account the value of protection so I'm wondering how this should be applied in practice? Should we always do as pio says (assuming we're playing against close-to-optimal opponents), or should we 'take it with a grain of salt'? I've went from prefering to x back with bdfd to checking back more often without bdfd but I'm starting to consider the possibility that this may be -ev? what are your thoughts?
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-11-2017 , 04:25 AM
Is there any way to compress full saved trees to reduce the space they are taken in disc?
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-11-2017 , 11:38 AM
ran the steps as suggested on pg 26. (thanks Roachru for a great tutorial)

it stopped at 45 out of 237 with an error message:

Key could not be found in dictionary

So i attempted a smaller script

14 random flops or so

everything seems to be working well, I run the script, finish, open the file, get to the root, then go to run multiple aggregation report

it shows a screen, which I ok, and then it again gives me same error at same exact spot 45/237?

https://ibb.co/hbjy6Q

did i screw up again?

which

Last edited by which; 05-11-2017 at 12:06 PM.
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-11-2017 , 01:13 PM
Quote:
I go ahead and run and EVERYTIME I come back and load one of the new trees, the ranges and bet sizes have changed to different parameters?
It looks like you have more than one script file in the folder and PioViewer is unable to determine which script contains the config you want. Create separate empty folders for trees with a given config (the script will be automatically saved there as well) and the problem is going to disappear.
It's not much a problem either, only the config loaded to the graphical interface is different, the trees themselves are ok as you have notice.

Quote:
I'm running scripts for large number of flops in a variety of scenarios. I can't have too many (where too many is roughly 5+) sizes on each street as my computer doesn't have enough memory and if it did it would still take a long time. Is it possible to solve each flop with only 1 or 2 turn and river sizes, then lock the flop strategies and solve again with multiple turn sizes, and repeat for the river? And then save the whole thing as one tree. Would this even be faster? Flop solutions wouldn't be perfect but they'd be pretty close to accurate. The idea behind this being that having multiple turn and river sizes doesn't impact the flop EV that much so I thought that the proces I described could save some time. I could be wrong though
Trees with many sizes are humongous. Using 3-4 sizes at most spots is already more than we thought is reasaonable. The solver handles those trees somehow but it take a long time. That is expected.

You can follow the process you described for specific turn and river and that is in fact quite a good idea. There is a feature which lets you cut a config at a chosen place and create a new subtree to make the task easier. The feature is described here:

https://www.youtube.com/watch?v=1PEmsGaGLvk (point 2)
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-11-2017 , 01:21 PM
Quote:
Is this a normal behaviour, accuracy number going up instead of going down?
http://imgur.com/a/v1YTe

I experience this problem a lot, as i reach to 0.6bb/100 usually.
Yes, especially with the prefllop solver which sacrifices a lot of accuracy to use less memory. You shouldn't expect to get accuracy much better than 2bb/100 for those trees (most of the exploitability is postflop anyway because of reduced accuracy) although the solver is often able to go to 1bb/100 or even less.
Quote:
When trying to generate an aggregation report on the root node of a preflop small save, I'm getting an error message saying "index was outside the bounds of the array". Any idea what the problem is?
Please try downloading the newest version of the viewer (and substituting it in your Pio folder). It should be fixed there:

https://www.dropbox.com/s/6p13pzi7j3...iewer.exe?dl=0

Running aggregation report in the root in the preflop tree doesnt make much sense though (there isn't anything to aggregate) so maybe some other features to show EVs/EQs/Strategies would be more suitable there.


Quote:
How can I create a subtree from a preflop solution to investigate different flops (that weren't in the original preflop solution). When I do "Create subtree configuration" I get "This feature only works if there is a known basic configuration of the tree."
That's on the list of things to fix. For now you have to copy the ranges manually (preferably copy them to the range selector and save) and then create a new flop tree yourself using those ranges as starting ones.

Quote:
I press the multiple file aggregation report button

In one box on left it says:
It looks like you have a lot of random files and scripts in the folder. This won't work as the viewer has no to know which trees and are included and what config was used to create them. Create fresh empty folders for every script and save in it. It will work then if you follow the steps in the FAQ video (load one of the tree, choose a line to run the aggregation report with, etc.)

Quote:
Is it posible to use an SSD M.2 disk instead of RAM memory as virtual memory for Pio Solver trees? If so... How? Is it possible to use both? Which difference will be?
Because is so much cheaper...
It's way cheaper but also like 2 orders of magnitude slower. It wouldn't work.
You can try it by ignoring memory check (search for ignore_mem_check in this thread on last 2-3 pages, I can't link right now) but it's highly recommended not to do that
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-11-2017 , 01:26 PM
Quote:
So piosolver tends to prefer checking back say QQ for example on a 34K 2tone flop at a higher frequency when we don't have a bdfd than it does when we do hold a bdfd. Ik piosolver doesn't take into account the value of protection so I'm wondering how this should be applied in practice? Should we always do as pio says (assuming we're playing against close-to-optimal opponents), or should we 'take it with a grain of salt'? I've went from prefering to x back with bdfd to checking back more often without bdfd but I'm starting to consider the possibility that this may be -ev? what are your thoughts?
Pio takes into account protection and everything else (they directly manifest themselves in EV of play which is used to adjust strategies). Pio doesn't treat streets separately, it always goes down the whole tree so all the nuances on turn/river play have influence on he flop strategy. If Pio doesn't like betting a certain combo there is a reason for it although that reason may be hard to discover or intuitively make sense of from the human perspective.

Quote:
Is there any way to compress full saved trees to reduce the space they are taken in disc?
We have small and micro saves for that. There is no way to make full saves smaller at the moment.

Quote:
everything seems to be working well, I run the script, finish, open the file, get to the root, then go to run multiple aggregation report

it shows a screen, which I ok, and then it again gives me same error at same exact spot 45/237?

https://ibb.co/hbjy6Q
It again seems like you have a mix of various configs, scripts and saves from different configs in the same folder and the aggregation building tool is confused. There should be only 2 things in the folder:

-the script used to create saves (.txt file)
-the saves themselves (the .cfr files)

I am sorry for delays and a bit hastily written answers. I don't have access to my main machine right now. Everything is going to be back to normal tomorrow. I appreciate everyone's patience
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-11-2017 , 01:29 PM
Is there (or will there be) a text interface command to create a subtree?

It's a lot of work to programatically recurse through the full tree and then map the branches to new lines in the subtree (since the bet amounts change depending on what node becomes the new root).
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-11-2017 , 10:35 PM
I found some surprising behavior: create subtree with a turn card selected uses ranges before the card was dealt, meaning there are impossible hands that contain the turn card in a player's range on the parameters tab. This is resolved when you actually select "build tree", but I think the parameters should prepopulate with the ranges at the selected subtree node (in this case it is a split node) so that there isn't an apparent contradiction. Is there a reason it does it this way?

Last edited by Ingenol; 05-11-2017 at 10:41 PM.
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-12-2017 , 04:29 AM
Quote:
Is there (or will there be) a text interface command to create a subtree?
Probably not, at least not in the near future.

Quote:
It's a lot of work to programatically recurse through the full tree and then map the branches to new lines in the subtree (since the bet amounts change depending on what node becomes the new root).
There will be "show_all_lines" command which will make it easier (no need to recurse).

Quote:
I found some surprising behavior: create subtree with a turn card selected uses ranges before the card was dealt, meaning there are impossible hands that contain the turn card in a player's range on the parameters tab.
No reason, we didn't think it's important. The solver discards the hands which are dead anyway and you may want to change the turn card later to try another runout. We just didn't think it's important to be honest.
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-12-2017 , 10:17 AM
Awesome, "show_all_lines" sounds great!

Is there any way to have the save path for a script be relative to the script? Using a relative path ends up relative to the solver exe, and calling the solver with a different working directory errors out ("pftables.dat is missing"). The error seems totally reasonable, but it would be cool if relative paths in scripts were relative to the script file, at least optionally.
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-12-2017 , 12:26 PM
Quote:
Using a relative path ends up relative to the solver exe, and calling the solver with a different working directory errors out ("pftables.dat is missing"). The error seems totally reasonable, but it would be cool if relative paths in scripts were relative to the script file, at least optionally.
We use standard libraries for opening files so you would need to find a way to do that in Windows. Most programming languages have a way to open a process and set "cwd" (current working directory). Anyway, the simplest way is to just copy pftables.dat file to the place you have your current working directory set to so the solver can find it there
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-12-2017 , 01:13 PM
I am a bit confused by the all-in option. I have deselected it and set a 200% pot limit yet PIO overshoves on the river. Am I missing something? screenshots of the setup and the R spot below




PioSOLVER - postflop equilibrium solver for Holdem Quote
05-12-2017 , 07:06 PM
Quote:
Originally Posted by punter11235
It looks like you have more than one script file in the folder and PioViewer is unable to determine which script contains the config you want. Create separate empty folders for trees with a given config (the script will be automatically saved there as well) and the problem is going to disappear.
It's not much a problem either, only the config loaded to the graphical interface is different, the trees themselves are ok as you have notice.
Ah right, I get it. Just happy that there is an explanation. I kept deleting my trees and re-running thinking I messed up till I eventually realised that the tree itself was fine but parameters were incorrect. Pretty frustrating but we will live and learn. Ty sir.
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-12-2017 , 09:58 PM
Would be nice to have a feature inside script generation to generate random flops under certain constraints. For example being able to generate random flops with cards under T. Or to generate flops with two broadways and a rag. It would be very useful when you want to create specific scenarios
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-13-2017 , 09:02 AM
hey, can I somewhere buy "solved" hands by PIo? ty
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-13-2017 , 12:59 PM
Quote:
I am a bit confused by the all-in option. I have deselected it and set a 200% pot limit yet PIO overshoves on the river. Am I missing something? screenshots of the setup and the R spot below
Your screenshots don't work. I recommend sending us a config (you can do it by clicking big "copy to clipboard" button and then copying it to pastebin.com and linking here).

Quote:
I kept deleting my trees and re-running thinking I messed up till I eventually realised that the tree itself was fine but parameters were incorrect. Pretty frustrating but we will live and learn. Ty sir.
There are good reasons for the design where configs and the saves themselves are separated. The viewer needs to find the config. Usually when you make a simple save the config file is saved along with it. In case of scripts the viewer looks for the config in the script file. That's why there should be a separate folder for very script and saves resulting from it.
Another advantage is that if you are forced to terminate a script for whatever reason you can re-run it later and it will skip over already done trees (as long as they are still in the original folder).

Quote:
Would be nice to have a feature inside script generation to generate random flops under certain constraints. For example being able to generate random flops with cards under T. Or to generate flops with two broadways and a rag. It would be very useful when you want to create specific scenarios
While this is not possible at the moment you can paste any flop subset into scrpt generation window. This means that if you have a programmer friend they should be able to write a simple generator for you.

Quote:
hey, can I somewhere buy "solved" hands by PIo? ty
We don't provide such service ourselves but our friend runs PioCloud service, here:
http://piocloud.******.com/

Feel free to ask on our Skype group as well. Some people have a lot of postflop saves laying around
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-13-2017 , 05:03 PM
I like the option to copy a strategy to excel, but is there a way to for multiple flops at the same time? Like, if I run a script and I want to do some analysis of the strategies across multiple boards in excel, is there a way to do this without going into each file and copying it manually? Maybe it's something I can put in the script so it automatically does this for every board it solve

Another very similar question. Is it possible to copy the strategy to excel for every point in the game tree at once?

If both them answers are yes is it possible to do them both at the same time.
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-13-2017 , 10:19 PM
Occasionally when I do aggregation analysis, I get an error :

ERROR: load_tree couldn't open
(Path), the file doesn't exists or isn't a valid save

In fact the file does exist, and I can open it just fine. Any idea what's causing this? If you have no idea I can send the files.
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-14-2017 , 07:40 AM
Quote:
I like the option to copy a strategy to excel, but is there a way to for multiple flops at the same time?
You can run a multiple file aggregation report:
https://www.youtube.com/watch?v=5Ozjfnatwms (question number 5)

but that will show you strategies/evs/eqs in one chosen spot (although an all flops separately as well as aggregated ones).

Quote:
Is it possible to copy the strategy to excel for every point in the game tree at once?
It isn't. A typical flop tree has hundred of thousands and often millions decision points. That Excel file would be way bigger than full saves which are already humongous.

Quote:
ERROR: load_tree couldn't open
(Path), the file doesn't exists or isn't a valid save

In fact the file does exist, and I can open it just fine. Any idea what's causing this? If you have no idea I can send the files.
Things to check:

1)are you running the newest version of the viewer (1.9.2.5)?
If not you can get it from here:
https://www.dropbox.com/s/6p13pzi7j3...iewer.exe?dl=0

2)Do you have any strange characters in the path (anything not in a Latin alphabet may cause problems as well as very long paths and names)

One thing to try is to copy the saves to some simple folder like C:\MyPioTest and attempting to run the report there.
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-14-2017 , 08:57 AM
I get you can't use pio solver while playing. But can you play while a script is running and pio solver is closed?
PioSOLVER - postflop equilibrium solver for Holdem Quote
05-14-2017 , 09:04 AM
Quote:
Originally Posted by punter11235
Things to check:

1)are you running the newest version of the viewer (1.9.2.5)?
If not you can get it from here:
https://www.dropbox.com/s/6p13pzi7j3...iewer.exe?dl=0

2)Do you have any strange characters in the path (anything not in a Latin alphabet may cause problems as well as very long paths and names)

One thing to try is to copy the saves to some simple folder like C:\MyPioTest and attempting to run the report there.
I'm running 1.9.2.0, but the problem has occurred before as well so doubt that's issue. I changed the path but still same problem.
PioSOLVER - postflop equilibrium solver for Holdem Quote

      
m