For simultaneous updates we currently traverse the tree separately for each player to accumulate regrets.
However, we can actually just update both players' regrets AND match regrets in a single tree traversal.
|
for t in 1:N |
|
for i in 1:players(solver.game) |
|
CFR(solver, ih, i, t) |
|
end |
|
regret_match!(solver) |
|
cb() |
|
next!(prog) |
|
end |
For reference:
https://github.com/maichmueller/cfrainbow/blob/1d4ecefc87f1566770b5b358303c5eee1aa97227/src/cfrainbow/cfr/cfr_vanilla.py#L28-L57
For simultaneous updates we currently traverse the tree separately for each player to accumulate regrets.
However, we can actually just update both players' regrets AND match regrets in a single tree traversal.
CounterfactualRegret.jl/src/solvers/CFR.jl
Lines 174 to 181 in 6be7725
For reference:
https://github.com/maichmueller/cfrainbow/blob/1d4ecefc87f1566770b5b358303c5eee1aa97227/src/cfrainbow/cfr/cfr_vanilla.py#L28-L57