Description
Hey! I'd love to get involved, any specific things that you'd be interested in contributions for? (Ideally that don't require too strong of a background in Rust or advanced math!)
If not, one thing I could take a stab at is implementing "randomized psuedo-harmonic action translation", which was used by Pluribus in some cases preflop instead of Real Time Search (1). Plus which also appears to be referenced in a TODO line in recall.rs here?
(TLDR I just wrote a C++ implementation of it for another project and it turned out to be pretty simple, so was thinking it'd be a good starting point for me!)
_
(1): From the Pluribus supplementary materials https://www.science.org/doi/suppl/10.1126/science.aay2400/suppl_file/aay2400-brown-sm.pdf:
On the first betting round, real-time search is used if an opponent chooses a raise size that is more than $100 off from any raise size in the blueprint action abstraction and there are no more than four players remaining in the hand. Otherwise, Pluribus uses the randomized pseudo-harmonic action translation algorithm (which empirically has the lowest exploitability of all known action translation algorithms) to map the raise to a nearby size and proceeds to play according to the blueprint strategy as if that mapped raise size had been chosen (39). Real-time search is always used to determine the strategy on the second, third, and fourth betting rounds.