Poker-AI.org Poker AI and Botting Discussion Forum 2021-08-21T17:16:46+00:00 http://poker-ai.org/phpbb/feed.php?f=24&t=3331 2021-08-21T17:16:46+00:00 2021-08-21T17:16:46+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=3331&p=8797#p8797 <![CDATA[Re: Omaha HS2 and Bucketing]]> HontoNiBaka wrote:

So far I came up with 3 ideas:
1. Instead of storing the HS as a float I can use unsigned chars, it won't be as accurate but it will be much smapper. The logic is to assign an 8 bit char between 0 and 255 to a HS value between 0.0 and 1.0, so 0 = 0.0, 255 = 1.0, 122 = 0.5 etc.
2. I could write my own isomorphism algorithm, this could be more space efficient than K. Waugh's implementation because I could collapse hands that don't make flushes. However this is a pretty hard thing to do and I don't know how much space I would really save, especially since this would be my first time writing an algorithm like that.
3. Instead of using HS on the river, I can use some sort of absolute hand strength. For example 10 buckets for straights, 10 buckets for flushes etc. I think this will not be as effective as using HS2, but it would be much easier to compute, since I have to evaluate the hands anyway during the CFRM training.


monker does #2:

Omaha postflop
Omaha is too large to solve completely even when starting from the flop. MonkerSolver therefore reduces the game size by making the following concessions:

Before the river, only suits which has the potential to become flushes are considered. For example, these two hands are merged, even though they influence the opponents range slightly differently:

A♠K♠J♠5♠ 6♣5♣2♣7♣
A♠K♥J♥5♦ 6♣5♣2♣7♣
On the river, only suits with 3 or more cards on the board are considered. For example, consider these hands:

A♠K♠A♦K♦ 6♠5♠2♥7♥T♥
A♣K♣A♦K♦ 6♠5♠2♥7♥T♥
The above two hands are merged into the same bucket. They are however not strategically equivalent, since we are more likely to be up against a missed flush draw with the latter hand.

Statistics: Posted by llllllllll — Sat Aug 21, 2021 5:16 pm


]]>
2020-04-21T09:50:52+00:00 2020-04-21T09:50:52+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=3331&p=8440#p8440 <![CDATA[Re: Omaha HS2 and Bucketing]]> Statistics: Posted by nefton — Tue Apr 21, 2020 9:50 am


]]>
2020-04-19T23:44:56+00:00 2020-04-19T23:44:56+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=3331&p=8439#p8439 <![CDATA[Re: Omaha HS2 and Bucketing]]>
Now I am facing another challenge: I want to write a parser that accepts pro poker tools syntax for omaha hands and returns a range of hands. Anyone tried to do something like that? Is any code available, c++ if possible?

Edit: I have found this Python library:
https://github.com/tredfern0/pptparser

Has anyone used it? My plan is probably to translate it to c++.

Statistics: Posted by HontoNiBaka — Sun Apr 19, 2020 11:44 pm


]]>
2020-04-05T13:42:59+00:00 2020-04-05T13:42:59+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=3331&p=8415#p8415 <![CDATA[Re: Omaha HS2 and Bucketing]]> 1. Instead of storing the HS as a float I can use unsigned chars, it won't be as accurate but it will be much smapper. The logic is to assign an 8 bit char between 0 and 255 to a HS value between 0.0 and 1.0, so 0 = 0.0, 255 = 1.0, 122 = 0.5 etc.
2. I could write my own isomorphism algorithm, this could be more space efficient than K. Waugh's implementation because I could collapse hands that don't make flushes. However this is a pretty hard thing to do and I don't know how much space I would really save, especially since this would be my first time writing an algorithm like that.
3. Instead of using HS on the river, I can use some sort of absolute hand strength. For example 10 buckets for straights, 10 buckets for flushes etc. I think this will not be as effective as using HS2, but it would be much easier to compute, since I have to evaluate the hands anyway during the CFRM training.

Statistics: Posted by HontoNiBaka — Sun Apr 05, 2020 1:42 pm


]]>
2020-04-04T21:19:53+00:00 2020-04-04T21:19:53+00:00 http://poker-ai.org/phpbb/viewtopic.php?t=3331&p=8414#p8414 <![CDATA[Omaha HS2 and Bucketing]]> Kevin Waugh's implementation gives me 19,569,128,722 river indexes for
Code:
   hand_indexer_t indexer;
   const uint8_t cards_per_round[2] = { 4, 5 };
   hand_indexer_init(2, cards_per_round, &indexer);

HS2 tables would take around 80GB as 4 byte floats and I would never be able to cluster so many points into buckets.
It must be possible somehow, because Monker Solver does support PLO.
Even if I cluster the boards first, I will still need the HS2. Am I still missing something or are those tables just that big? Anyone tried creating a PLO solution?

Statistics: Posted by HontoNiBaka — Sat Apr 04, 2020 9:19 pm


]]>