Two Plus Two Publishing LLC Two Plus Two Publishing LLC
 

Go Back   Two Plus Two Poker Forums > >

Notices

Programming Discussions about computer programming

Reply
 
Thread Tools Display Modes
Old 06-11-2017, 01:07 PM   #1
mediacalc
enthusiast
 
Join Date: Jul 2016
Posts: 89
Card abstraction / Buckets

Are there any card abstractions/bucketing methods precomputed online that can take a hand on the flop, turn and river and spit out an "equivalence" group that categorises them into a bucket/category.

(Almost like a lookup table for implementing in code)

Such that AJ on K73r is roughly equivalent to AQ on K72r to shrink the game tree.

Or that JTs should be put together with QJs on certain boards.

From some of the reading I've done, the HU Limit bots used 169 buckets for preflop into 9000 buckets for flop, 9000 for turn and 9000 for river. These buckets apparently used some mixture of E(HS^2) split further by E(HS) (multi-dimensional) along with "earth mover's distance".

I'm not too sure what the exacts of that are but something of that magnitude would be great but I'll settle for any real way of classifying hands for now.

Thank you!
mediacalc is offline   Reply With Quote
Old 06-11-2017, 02:43 PM   #2
RustyBrooks
Carpal \'Tunnel
 
RustyBrooks's Avatar
 
Join Date: Feb 2006
Location: Austin, TX
Posts: 22,797
Re: Card abstraction / Buckets

I'm pretty sure this is what Pokerstove did, and it's the reason it was so much faster than anything else for a long time. The source code is available on github and he wrote some short articles about it

https://github.com/andrewprock/pokerstove
RustyBrooks is offline   Reply With Quote
Old 06-11-2017, 02:55 PM   #3
mediacalc
enthusiast
 
Join Date: Jul 2016
Posts: 89
Re: Card abstraction / Buckets

Quote:
Originally Posted by RustyBrooks View Post
I'm pretty sure this is what Pokerstove did, and it's the reason it was so much faster than anything else for a long time. The source code is available on github and he wrote some short articles about it

https://github.com/andrewprock/pokerstove
What part of pokerstove would use game tree minimisation like that? Enumerating range vs range? I thought pokerstove was more known for their highly optimised evaluations hitting ~100MH/s,

From a quick search, I found nothing about abstraction or buckets in their repo. If you could point out the relevant files, that would be great
mediacalc is offline   Reply With Quote
Old 06-11-2017, 03:15 PM   #4
leavesofliberty
Pooh-Bah
 
leavesofliberty's Avatar
 
Join Date: Jul 2010
Location: Without the powers of Deep Blue
Posts: 5,001
Re: Card abstraction / Buckets

I also thought PokerStove was exhaustive.
leavesofliberty is online now   Reply With Quote
Old 06-11-2017, 07:11 PM   #5
RustyBrooks
Carpal \'Tunnel
 
RustyBrooks's Avatar
 
Join Date: Feb 2006
Location: Austin, TX
Posts: 22,797
Re: Card abstraction / Buckets

Pokerstove has an exhaustive mode, but it also has a mode that divides situations into equivalency classes. It's possible that's not in the public repo - but I remember him writing a paper about it years ago, which I can not find now.
RustyBrooks is offline   Reply With Quote
Old 06-12-2017, 12:05 AM   #6
gaming_mouse
Carpal \'Tunnel
 
gaming_mouse's Avatar
 
Join Date: Oct 2004
Location: taking notes on u (see profile)
Posts: 13,693
Re: Card abstraction / Buckets

Quote:
Originally Posted by RustyBrooks View Post
Pokerstove has an exhaustive mode, but it also has a mode that divides situations into equivalency classes. It's possible that's not in the public repo - but I remember him writing a paper about it years ago, which I can not find now.
Rusty,

I *think* you're confusing pokerstove's use of suit symmetries with the bucketing used in CFR solvers. the latter is a rough estimate, the former is just a lossless computational trick. i believe the only inexactness in pokerstove results were from montecarlo.
gaming_mouse is offline   Reply With Quote
Old 06-12-2017, 12:28 AM   #7
leavesofliberty
Pooh-Bah
 
leavesofliberty's Avatar
 
Join Date: Jul 2010
Location: Without the powers of Deep Blue
Posts: 5,001
Re: Card abstraction / Buckets

Quote:
Originally Posted by gaming_mouse View Post
Rusty,

I *think* you're confusing pokerstove's use of suit symmetries with the bucketing used in CFR solvers. the latter is a rough estimate, the former is just a lossless computational trick. i believe the only inexactness in pokerstove results were from montecarlo.
Barry Greenstein is the first I know of to mention the use of suit symmetries trick to speed-up computation with his small article on a chunk of C++ code to compute hand strength.
leavesofliberty is online now   Reply With Quote
Old 06-12-2017, 11:30 AM   #8
RustyBrooks
Carpal \'Tunnel
 
RustyBrooks's Avatar
 
Join Date: Feb 2006
Location: Austin, TX
Posts: 22,797
Re: Card abstraction / Buckets

Well, I can't find the article on his site with the wayback machine, so either I imagined it or I'm thinking of someone else. Probably at least 10 years ago.
RustyBrooks is offline   Reply With Quote
Old 06-14-2017, 12:42 AM   #9
200zoomgrinder
journeyman
 
Join Date: Jan 2014
Posts: 363
Re: Card abstraction / Buckets

It looks like you are on the right track with the literature but I am not aware of any publicly available code. I think that unless you are coding a PLO or 3handed+ solver you don't need any lossy abstractions...only lossless isomorphic calculation as mentioned (and possibly memory compression if you are really trying to do large trees/preflop solving)

If you really need it I believe the last state of the art that I can remember reading was K-Nearest Neighbors clustering using Earth Mover's Distance as the distance metric.
200zoomgrinder is offline   Reply With Quote
Old 06-14-2017, 10:19 AM   #10
mediacalc
enthusiast
 
Join Date: Jul 2016
Posts: 89
Re: Card abstraction / Buckets

Quote:
Originally Posted by 200zoomgrinder View Post
It looks like you are on the right track with the literature but I am not aware of any publicly available code. I think that unless you are coding a PLO or 3handed+ solver you don't need any lossy abstractions...only lossless isomorphic calculation as mentioned (and possibly memory compression if you are really trying to do large trees/preflop solving)

If you really need it I believe the last state of the art that I can remember reading was K-Nearest Neighbors clustering using Earth Mover's Distance as the distance metric.
Yep that's the one I've moved on to now. Trying to make sense of it all.

Also, I was thinking, do I really need all of this compression and abstraction if I don't store anything? All of these bots needed it because they faced an opponent in real time, whereas for my use case it would be enough for me to plug in a range/hand vs range/hand on a board, wait 10s, and have it spit out the optimal line.

But it would be cool if it was all precomputed
mediacalc is offline   Reply With Quote
Old 06-14-2017, 12:55 PM   #11
200zoomgrinder
journeyman
 
Join Date: Jan 2014
Posts: 363
Re: Card abstraction / Buckets

Quote:
Originally Posted by mediacalc View Post
Also, I was thinking, do I really need all of this compression and abstraction if I don't store anything? All of these bots needed it because they faced an opponent in real time, whereas for my use case it would be enough for me to plug in a range/hand vs range/hand on a board, wait 10s, and have it spit out the optimal line.
They are trying to reduce memory in order to fit the game tree into memory, not to make calcs instantaneous. I believe most of the research, except for the very newest (Libratus, etc) precalc everything and then just look it up for the most part (pretty big simplification, since there are some calcs in there, but for the most part that is correct) So yeah, if you are solving large trees (as I mentioned, PLO, 3handed+, large preflop NL trees) you will need to reduce memory usage somehow. If you are solving postflop NL with a reasonable number of actions you probably won't need it.
200zoomgrinder is offline   Reply With Quote
Old 06-15-2017, 05:09 PM   #12
mediacalc
enthusiast
 
Join Date: Jul 2016
Posts: 89
Re: Card abstraction / Buckets

Quote:
Originally Posted by 200zoomgrinder View Post
They are trying to reduce memory in order to fit the game tree into memory, not to make calcs instantaneous. I believe most of the research, except for the very newest (Libratus, etc) precalc everything and then just look it up for the most part (pretty big simplification, since there are some calcs in there, but for the most part that is correct) So yeah, if you are solving large trees (as I mentioned, PLO, 3handed+, large preflop NL trees) you will need to reduce memory usage somehow. If you are solving postflop NL with a reasonable number of actions you probably won't need it.
I thought the whole point of abstraction was not having to simulate every single possible combination or am I misunderstanding? Not sure which part of all that reduces memory in the form of the tree being walked. So AK on A73r plays the same as AQ on A73r so group those hands and play them the same. So we just cut down on simulating the AQ etc.

I'm mostly targeting postflop NL ("HU") where it won't be HU ranges but it will be capped to two players. And the actions are capped to one reraise only, no donk bets and only 4 different bet sizes 1/3 1/3 2/3 1/1. I think it's doable
mediacalc is offline   Reply With Quote

Reply
      

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Forum Jump


All times are GMT -4. The time now is 10:02 PM.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimisation provided by DragonByte SEO v2.0.33 (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.
Copyright ę 2008-2010, Two Plus Two Interactive
 
 
Poker Players - Streaming Live Online