lifrordi / DeepStack-Leduc

Example implementation of the DeepStack algorithm for no-limit Leduc poker
https://www.deepstack.ai/
891 stars 211 forks source link

Bad result for kuhn poker-ish game #9

Closed bobbiesbob closed 6 years ago

bobbiesbob commented 6 years ago

1) Modify game_settings.lua so there's 1 suit and 4 ranks. 2) Modify test_lookahead.lua so board is Kh instead of Ks 3) Modify test_lookahead.lua to use get_uniform_range for both player_range and opponent_range 4) Replace line 22 of test_lookahead.lua with below code:

local results = resolving:resolve_first_node(current_node, player_range, opponent_range)
print(results.strategy)
print(results.root_cfvs)

5) run test_lookahead.lua, you will see the strategy is to check with every hand which is fine (The strategy for Kh is initialized to 0.333 for every action and stays that way since it's an invalid hand). However, the counterfactual value of holding Ah is 66.66. Shouldn't the cfv be at least 100 since Ah is the nuts and the pot = 200?

I'm guessing the solver doesn't account for card removal and so it will win 100 2/3 of the time and tie 1/3 of the time, giving EV of 66.66?

lifrordi commented 6 years ago

You can't just modify a game this way. Terminal equity computation (that is, the values in a terminal node) is implemented for Kuhn only. Furthermore, the chance action handling is also for Kuhn only.