I'm starting this thread so that I can refer to it when people ask me what I'm doing over in my blog.
I've given up playing much poker since July to work on a software idea that I had. The key points are:
1) Although HU poker must have a GTO solution, the same cannot be said about multiplayer games. I wrote an article about this:
http://www.modernpokereducation.com/preview/bonus_maths_5.pdf
2) If two players get HU to the flop, from that point onwards the game is two player and zero sum, and therefore must have a GTO solution. Specifically, for a given board and given ranges on the flop, we have a two player zero sum game that must have a GTO solution.
3) I have read the literature on solving games like this, and implemented the current method of choice, Monte Carlo Counter Factual Regret minimisation (MCCFR) in MATLAB, with a mex file to some C++ that does the main calculation. The bet sizes are restricted to a finite number of possible fractions of the pot at each decision point. I have implemented my own lossless bucketing algorithm. This algorithm is guaranteed to converge to the exact solution, with no loss of information.
EDIT: Actual, some information is lost.
I have just started making solutions available, along with some software to investigate it, at
Be sure to tick 'Create a Desktop Shortcut' during installation, because there seems to be an issue with running it from the command line.
EDIT: Latest version of the interface is smaller, to fit on a laptop screen.
-------------------------------------------
At the moment I'm working my way through the 10 example hands at the end of Applications of No Limit Holdem, currently computing a GTO solution to Hand 2. I'm not yet sure exactly how many iterations I need to get a good solution but, even though there's some indication that a couple of thousand is OK, I'm doing 10K sweeps through the game tree to be sure, which takes about 3 days on my PC. This software is not a quick fix.
My main objectives over the next month or so are:
1) Improve the efficiency of my data storage so that I can compute solutions on larger game trees (more bet sizes, wider ranges).
2) Read the literature on NLHE to work out how to sample the tree efficiently with a wider range of bet sizes. (Average Strategy Sampling looks interesting)
3) Improve the efficiency of the code as far as possible.
Note that my qualifications to do this are (i) I'm a mathematician, (ii) I love poker, but sadly NEITHER (iii) I'm an expert at computational game theory NOR (iv) I am a good poker player. Please bear this in mind when interrogating me!
EDIT: Significant progress since I first posted this. See later posts.