PioSOLVER 3.12 - 6-Plus Hold'em, smaller saves and a new menu
PioSOLVER 3.12 is out. It adds 6-Plus Hold'em, solves rarely reached lines properly, halves the size of saves without rivers or turns and reorganizes the PioViewer menu, along with a long list of smaller improvements and fixes.
What's new
- 6-Plus Hold'em (short deck)
- Faster river and turn resolving
- Rarely reached lines solved properly
- Saves without rivers or turns half the size, up to about 35x smaller than before the 3.10 compression, and a way to convert your old ones
- Up to 16 actions per decision
- Accurate memory estimates
- Reorganized main menu
- Layout improvements
- GTO Trainer improvements
- Correct EQ/EV for the non-acting player in aggregation reports
- Solver fixes
6-Plus Hold'em (short deck)
PioSOLVER can now solve 6-Plus Hold'em. It comes as a separate short-deck version of the solver, under the same licence.
There are a few versions of the hand rankings in use, and PioSOLVER uses the one where:
- a flush beats a full house
- three of a kind beats a straight
If you'd like to solve a different version, contact us at [email protected].
Faster river and turn resolving
A save without rivers doesn't store the river strategies. When you open a river, PioSOLVER re-solves it right then, and a save without turns does the same for turns. Waiting for these re-solves is most of the waiting when you browse such saves, and 3.12 makes them much faster.
River solves and river re-solves now use all your cores instead of one. A river solve with a target accuracy also stops as soon as it reaches it. 3.11 checked the target only at a progress report, at most twice a second, so a river spot that needed a fraction of a second kept solving for the rest of that half second: often 1300-2500 iterations where 100-200 were enough.
Opening a turn of a save without turns is quicker too, because the turn is rebuilt and re-solved on all cores. The more cores your machine has, the bigger the difference.
Rarely reached lines solved properly
When one player never or almost never takes an action, the solve says little about how the other player should play after it, so the other player's strategy there can be exploited by making that action. 3.12 re-solves such lines as a whole when you browse them, so that taking them doesn't pay for any hand.
A whole line is re-solved at once: all the rivers below the turn, or for an action never taken on the flop or turn, everything below it. That takes seconds rather than a fraction of a second, so some spots open more slowly than in 3.11, but the other rivers of that line are then instant. When a re-solve takes more than half a second, a progress window shows the elapsed time, so the viewer doesn't look frozen. A new configuration option turns this re-solving on or off.
The new Re-solving small saves page in the user manual explains in detail how rivers and turns are re-solved, how rarely reached lines are handled, how long it takes and which settings change it.
Saves without rivers or turns half the size
Saves without rivers or turns are now about half the size of 3.11's (2.1-2.3x smaller on our test trees), with the same browsing precision. Together with the compression added in 3.10, saves without rivers are now about 20-35x smaller than before 3.10, and saves without turns about 8-16x. Full saves keep the old format.
To shrink the saves you already have, File → Convert saves converts a whole folder of save files to the new format, running one solver process per file.
Up to 16 actions per decision
A decision node can now have up to 16 actions instead of 10, so you can give a player more bet sizes in a single spot.
Accurate memory estimates
The memory estimate now matches what the tree really uses. 3.11 could misjudge some trees by a factor of 2-3 (trees without isomorphism, for example), so a tree it accepted could end up swapping. The memory check now keeps only a small margin: 100 MB plus the solver's own working memory. If you want to build a tree anyway, ignore_mem_check on skips the check.
Reorganized main menu
The main menu is now organized by task: File, Favorites, View, Navigate, Tree, Solver, Analysis, Trainer, Settings and Help. The Tools menu is gone and its items have moved into the new menus. Rarely used items are in a Legacy submenu inside each menu. Labels are shorter, and the longer explanations are now tooltips.
If you prefer the old menu, Settings → Menu layout → Classic switches back. Your shortcuts and favorites work in both layouts, and the classic layout is not going away.
The settings window got a similar cleanup: Browser layout is at the top of the Appearance tab, the Data presentation tabs are merged into one, and a new Legacy tab holds the Old Style, Range Explorer window and GTO Trainer V2 settings.
Layout improvements
The browser layout now adapts to your screen. It switches between a large and a small layout as you resize the window, and keeps the tab you had selected. This is the default for new users and for anyone using the default layouts.
A browser layout can now be split over more than one main window tab. The small layout uses two: the grid, strategy, buttons and zoom on the first, and the graph and the Range Explorer side by side on the second.
PioViewer also works better on small and high-DPI screens: the minimum window sizes are lower, the Node Locking layout is more compact, and windows that would open larger than the screen are shrunk to fit. Splitter positions now stay where you put them, across layout switches and restarts.
GTO Trainer
Hands started from a later node, with Play from current node or Train specific situation, now record the line that led there, so the hand reads as if it was played from the start. The forced actions don't count as your decisions: you can't undo into them, and they don't affect your mistake totals or feedback.
When a random turn or river makes the rest of the action line impossible, the trainer now re-deals instead of failing with "Can't satisfy game start conditions".
The trainer's play vs. current solution modes are now also available in the free version.
Aggregation reports
Equity and EV for the non-acting player are now correct. Each player's hands are classified and filtered on that player's own data. Before, for example, the non-acting player's equity in "EQ 75%+" was calculated over the acting player's strong hands.
Changing how bet sizes are shown in the aggregation viewer's settings now relabels the open report immediately, and keeps your filters, sorting and expanded tree.
Solver fixes
- Isomorphic hands play identical strategies again, for example AhKh and AdKd on KsQsTs. Tiny rounding differences could grow until such hands played different strategies, on some monotone and trips boards entirely different ones.
- An action the solver dropped to 0% can come back if it later becomes profitable. Before, it stayed at 0% for the rest of the solve. The same goes for a strategy you set by hand on a node that isn't locked.
solve_all_splitsworks again. It had been broken for a long time and made trees worse instead of better.- In the flops of preflop trees, the nuts no longer partly fold at some river spots facing a bet.
- A flop that one player never reaches in a preflop tree no longer spoils the whole solve.
- A number of smaller fixes to re-solving, saving and loading, locks and scripting.
Others
- Saves from the new PioCloud solver open in this version
- The load error dialog shows the solver's own message
- The terminal has autocomplete and argument hints for the new commands
- Create subtree configuration is now a submenu: set the config in the Tree Building page, copy it to the clipboard or open it in a new PioViewer instance
- New command-line switch
--tree-config <path>loads a tree building config into the Tree Building page - Python tree building supports preflop configs with a flop subset
- Fixed a bug with detaching an HRC model from a tree
- You are asked to run the benchmark only once, on your first Build Tree, not at every start
- Node locking with no selection criterion checked works as if both were checked
- Hand history generation no longer produces "IP range is empty" errors or biased hands
- Process affinity works on machines with more than 31 CPU threads
- Copy all text works again in the About window and in message boxes from background tasks
- Updated translations, and more texts can be translated