Poker-AI.org Poker AI and Botting Discussion Forum 2019-07-26T21:26:50+00:00 http://poker-ai.org/phpbb/feed.php?f=24&t=3238 2019-07-26T21:26:50+00:00 2019-07-26T21:26:50+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=3238&p=8085#p8085 <![CDATA[Re: Fastest way to deal with allins in cfr?]]> optimizer wrote:

I use the O(n^2) approach, with computing on GPU. This can be optimised taking into account that often there is more than one showdown node in a tree, so it's possible to batch all evaluations together (this would be a matrix multiplication operation). The funny fact is that this works a little bit better even on the river (like 15% faster for the whole algorithm), because O(n) implementation is quite complex and the constant in the O(n) is big (this is of course depends on the GPU used). BTW the equity matrix can be very efficiently computed using GPU as well.


I’ll definitely have to try out calculating showdown utilities with the GPU. For allins, I realized that the tree I was using (SPR=1, 100% bet sizes) was going to have more allins than a more realistic tree (SPR=5-20), since every bet and call leads to an allin. In other words, I don’t think calculating allins is really a bottleneck worth optimizing.

Statistics: Posted by Fossana — Fri Jul 26, 2019 9:26 pm


]]>
2019-07-26T16:44:30+00:00 2019-07-26T16:44:30+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=3238&p=8084#p8084 <![CDATA[Re: Fastest way to deal with allins in cfr?]]> Statistics: Posted by optimizer — Fri Jul 26, 2019 4:44 pm


]]>
2019-07-26T04:23:56+00:00 2019-07-26T04:23:56+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=3238&p=8083#p8083 <![CDATA[Fastest way to deal with allins in cfr?]]>
You could store the equity of every hand in hero’s range vs every hand in villain’s range on the turn, and then just multiply these equities by villains reach probabilities on the turn, but this is O(n^2) whereas doing the showdown calculations requires 48 O(n) calculations.

Maybe you can bucket all runouts where flushes aren’t possible? The equities won’t be exact but they may be accurate enough for cfr.

I don’t think monte carlo would work since villain’s hands would need to be sampled based on reach probabilities, and getting a random element from an array of probabilities takes O(n) time, which can be brought down to O(1) if you create an alias table, but you’d have to do very few samples to get a large speed improvement and an alias table seems like too complicated of a solution.

Statistics: Posted by Fossana — Fri Jul 26, 2019 4:23 am


]]>