Poker-AI.org
http://poker-ai.org/phpbb/

Efficient Best Response Multi Street Code
http://poker-ai.org/phpbb/viewtopic.php?f=24&t=2818
Page 1 of 1

Author:  HontoNiBaka [ Tue Oct 07, 2014 3:54 am ]
Post subject:  Efficient Best Response Multi Street Code

I want to implement a Best Response calculation to test my CFR Bot.

I have already once implemented code for one Street, based ony Amax' code and I added my own isomorphism code, but it is not generalizable to a full Hold'em game.

Now I plan to implement it for the full game, using the Isomorphism Algorithm from the Poker Papers section and the Fast BR algorithm from the University of Alberta, but I am really not sure how to do it efficiently.

The problem really are the isomorphisms. My idea so far is to simply iterate over all starting hands, all flops, all turns and rivers and to create a separate data structure, that will keep track over if an isomorphic hand has already been processed. If an isomorphic hand has already been processed, I simply return the value of that isomorphic hand and at the end I normalize everything.

But this still seems fairly inefficient, as I still have to compute the index for each startinghand/flop/turn/river combination. Is there a way to know beforehand, if I even need to check a combination?

I thought about not iterating over the actual cards, but to iterate over the indexes in the table instead and to recreate a canonic hand from the index, but I can't wrap head around how to traverse the public game tree that way.

In the accelerated BR paper it says : There are 1755 canonical flops

So there seems to be a method to acquire canonical boards and only iterate over those, but the isomorphism algorithm seems to only be able to recognize canonical hands, not canonical boards.

Any suggestions, or (pseudo) code are very welcome. Thanks.

Author:  HontoNiBaka [ Tue Oct 07, 2014 5:49 am ]
Post subject:  Re: Efficient Best Response Multi Street Code

Ok, after somer research and trial and error I have figured one thing out. You can really just give the isomorphism algorithm 3 cards and it will give you the canonical flops. That way I can also get all canonical turns, but I am still wondering, how to go from the flop to the turn efficiently.

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/