Its my first post here so, System.out.println("hello!");
didn't find any Kuhn poker cfr source code in forums, maybe I'm too lazy to use search, so I've build my own implementation. It's in java. It's a bit slow because I wanted to control all aspects of cfr for training purposes. Here is results:
Code:
Iterations: 50000000
P1 expected value: -0.055548106797223905
card history {pass/bet}
1 Profile: [0.79, 0.21] P1
1 b Profile: [1.00, 0.00] P2
1 p Profile: [0.67, 0.33] P2
1 pb Profile: [1.00, 0.00] P1
2 Profile: [1.00, 0.00] P1
2 b Profile: [0.67, 0.33] P2
2 p Profile: [1.00, 0.00] P2
2 pb Profile: [0.46, 0.54] P1
3 Profile: [0.37, 0.63] P1
3 b Profile: [0.00, 1.00] P2
3 p Profile: [0.00, 1.00] P2
3 pb Profile: [0.00, 1.00] P1
This eventually rose some questions. If any one can answer it'll be great, if not it's ok too.
1) for real even HU NL tourney game tree is too big, so It shall be divided as in imperfect recall. Even so its too big for my PCs. So it's _really_ worth trying cfr? cause it'll take months to compute. Maybe you can point out some better algorithms.
2) As in imperfect recall, for example, 1 game tree shall be calculated for preflop, X for flop, Y for turn, Z for river. Giving 1+X+Y+Z LUTs. there each LUT is a consequence of (opponent model, some previous actions, day on week, etc) Am I correct so far?
3) How does cfr implements opponent model?
ty for answers.
PS if any one want to cooperate on writing poker bot, feel free to PM me. I'm total beginner in this.