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.65k stars 294 forks source link

About limited IP/OOP ranges #147

Closed eonia89 closed 1 year ago

eonia89 commented 1 year ago

While I was playing with the colab version, I simply put small IP/OOP ranges as below: ip_range = "AA,KK,QQ,JJ,TT,99:0.75" #@param {type:"string"} oop_range = "QQ:0.5" #@param {type:"string"}

Then I tried to re-run all but it doesn't seem to be converging. Am I using it in an unintended way, or is that just a bug?

Btw, the reason why I am doing this is because I would like to see if the solver can work out with a specific hand against the villain's hand range.

Thanks.

bupticybee commented 1 year ago

While I was playing with the colab version, I simply put small IP/OOP ranges as below: ip_range = "AA,KK,QQ,JJ,TT,99:0.75" #@param {type:"string"} oop_range = "QQ:0.5" #@param {type:"string"}

Then I tried to re-run all but it doesn't seem to be converging. Am I using it in an unintended way, or is that just a bug?

Btw, the reason why I am doing this is because I would like to see if the solver can work out with a specific hand against the villain's hand range.

Thanks.

It is possible, to be able to run most cases faster, I relaxed some converge constrain (by modifing cfr algorithm). I also discovered in some rare cases when the algorithm won't converge. But in most cases it won't happen.

maosatgithub commented 1 year ago

This is a very special case, as OOP only has a single hand in his range. As the solvers assumption is, that the opponents know their opponents ranges, he IPP player can play optimal here, as there is zero uncertainty about. Likely for that reason, on the default board of Q(J2s) the "exploitability" of player 0 is reported to be Not-a-Number (likely because being infinite), and the total expoloitablilty is thus also NaN, and cannot converge. The reason is, that the OOP knows he is ahead with the set of Queens, so he cannot be bluffed, and the only viable play of the IPP is to fold everything to a significant bet. And the OOP should bet, in order not to be outdrawn.

BTW, I tried this with the gui version, and while it does not converge (regarding the used exploitability metric), it comes up with a correct strategies. It converges somewhat e.g. on J-high and lower boards. likely because then the IPP is able to bluff, and the OOP can optimize his play against this bluffing.

So I'd say the issue is not with small hand ranges in general --- the issue is instead with hand ranges on boards that leave zero uncertainty about who is currently ahead.