bupticybee / TexasSolver

🚀 A very efficient Texas Holdem GTO solver :spades::hearts::clubs::diamonds:
https://bupticybee.github.io/texassolver_page
GNU Affero General Public License v3.0
1.69k stars 301 forks source link

[Bug] Incorrect game tree #83

Open ad-dev-on opened 2 years ago

ad-dev-on commented 2 years ago

Hi,

using the same bet/raise parameters (from 3betpotFAST) in texassolver and POsolver, results in different tree structure and therefore different strategies. Texassolver misses reraising(to 575) after a bet and a raise, and goes all-in.

SolverTree TexasTree 3betpotFASTSolver.txt TexasSolverConfig3betFast.txt

bupticybee commented 2 years ago

I think this issue explains a lot of arguments about tree construction algorithms. So there are some issue with the tree construction algorithm.

With the sample file that you give, now I'm confident to fix this issue.

Please wait for the next release, if everything goes well, it will be fix then.

SynAckFin commented 2 years ago

The effective stack is 1000 and if OOP raises to 575 then they will be committing 665 of their chips to the pot (575 + 90). This is 0.665 of their stack (0.67 to 2 places) and the allin threshold is set to 0.67. This could simply be a rounding issue.

SynAckFin commented 2 years ago

I've looked further at this and the issue appears to be the effective stack setting. The effective stack is set here: https://github.com/bupticybee/TexasSolver/blob/master/src/tools/Rule.cpp#L11 this->initial_effective_stack = stack - oop_commit; As a result the allin threshold in TexasSolver is 0.67 of 910 whereas in Piosolver it is 0.67 of 1000. This should probably be changed.