b-inary / desktop-postflop

[Development suspended] Advanced open-source Texas Hold'em GTO solver with optimized performance
GNU Affero General Public License v3.0
215 stars 52 forks source link

Wrong result in a toy game ? #27

Closed serjeq closed 9 months ago

serjeq commented 1 year ago

board 22233

oop : AA or QQ IP KK Why IP shove KK 25% of the time when check to ? Its should be pure check.

colindickson commented 1 year ago

what is your Tree Configuration like? i've got a standard one, and my result is 97.7% check back.

colindickson commented 1 year ago

image

serjeq commented 1 year ago

pot 100. Stacks 100 oop - AA - bet 100% QQ - bet *50% edited IP - call 50% But then if OOP check IP should check (win agains QQ and lose against AA anyway)

colindickson commented 1 year ago

what are your bet amounts configured to be in your Tree Configuration? here is what mine looks like,

image

serjeq commented 1 year ago

2023-07-07_21-39-57

colindickson commented 1 year ago

the way i see it is you've got your bets configured to be all-in or 0, since the effective stacks are the size of the pot and you've got 100% of the pot as the only bet sizing.

now as for why that translates into a 75% check / 25% bet? i can't really speak to that.

why do you believe this is 100% check back all the time? the OOP only ever checks QQ, never AA. so why would KK check back 100%?

serjeq commented 1 year ago

Its a classic toy. (Even another free solver do it right [TexasSolver]) Wizzard write a post about it too. https://blog.gtowizard.com/how-to-solve-toy-games/

colindickson commented 1 year ago

i'm not an expert by any means, but

"If we check, KK will always check behind. It doesn’t make sense for KK to bet as that would simply fold QQ and get called by AA. KK should simply check behind and win against QQ without risking anything. Therefore, AA should always bet!"

if AA is a 100% bet, then KK can do whatever he wants when checked to since he knows he is always ahead of the one and only hand left in villain's range, QQ, without risking anything. in fact, the KK response to a check in this configuration is completely uninteresting here, and i don't think you should spend too much time worrying about it.

b-inary commented 1 year ago

pot 100. Stacks 100 oop - AA - bet 100% QQ - bet *50% edited IP - call 50% But then if OOP check IP should check (win agains QQ and lose against AA anyway)

In this case, OOP should bet with 100% frequency when they have AA, so if OOP checks, the possibility of having AA is completely eliminated. The solver assumes that both OOP and IP know this; therefore, IP can actually take any strategy when facing OOP's check, because both players know that IP will always win.

colindickson commented 1 year ago

@serjeq i think it could be a somewhat interesting question to ask: why does IP's bet frequency (when checked to) increase as the river SPR gets lower even though, theoretically, IP's action is completely indifferent? what is the machine optimizing for in this case?

what i mean is:

(hint: check what's happening to OOP's QQ frequencies as the pot gets bigger than the effective stack)

b-inary commented 9 months ago

In most cases, there are multiple (or even infinite) Nash equilibria, and the solver can output any of them. So this is not a wrong result at all, and the solver is working completely correctly. I would close this issue.