Poker-AI.org

Poker AI and Botting Discussion Forum
It is currently Mon Nov 13, 2023 3:41 pm

All times are UTC




Post new topic Reply to topic  [ 9 posts ] 
Author Message
PostPosted: Mon Aug 05, 2013 10:02 am 
Offline
New Member

Joined: Mon Aug 05, 2013 9:30 am
Posts: 3
The bot puts each player on a pre-flop range depending on:
1) What people normally do in that position
2) That player's hand history
3) That player's behaviour during this session

Then after each street, the range is dependent on player action, so it simulates a sample of betting sequences. If a hand has been eliminated from the player's range in a previous street, that hand is not considered in this and future streets. For each case, calculates the final expectation at showdown for that range. Then bot simply takes the action with the highest expectation.

The core of this bot is three components:
1) Range vs range vs ... ... vs range win probability calculator (in practice 3 or 4 ranges is enough)
2) Player profile model, if this player acts in this way, what does it imply about his range of hands?
3) Learning, to sample the most useful betting sequences.

Is it too dangerous to eliminate a hand and to never consider it again? I got the idea from watching WSOP, where the pros never seem to doubt themselves.


Top
 Profile  
 
PostPosted: Mon Aug 12, 2013 8:22 pm 
Offline
Veteran Member

Joined: Mon Mar 04, 2013 9:40 pm
Posts: 269
Quote:
Is it too dangerous to eliminate a hand and to never consider it again? I got the idea from watching WSOP, where the pros never seem to doubt themselves.


Well that is the way I do it. Basically any hand that cannot be value bet are the hands you eliminate although you have to keep all the draws in his range..even the busted draws on the river otherwise your equity will be wrong. Getting the range correct preflop is obviously a big part of it. The real issue is villains can have identical stats but different ranges. Particularly the bluff part of the range which can vary widely.

Your not always going to be accurate and a hand you eliminated is his range he will show up with but that is poker.


Top
 Profile  
 
PostPosted: Sun Aug 18, 2013 1:24 pm 
Offline
Junior Member

Joined: Sun Mar 03, 2013 12:09 pm
Posts: 14
Hi,

Rather than narrowing a 'range' - where each hand is allowed or disallowed - I'd recommend having a probability distribution of all possible hands. The only hands with zero probability are those excluded by known cards. Some hands may have very small probability given the action - but not zero.

- PeppaPig


Top
 Profile  
 
PostPosted: Sun Aug 18, 2013 2:23 pm 
Offline
Veteran Member

Joined: Mon Mar 04, 2013 9:40 pm
Posts: 269
PeppaPig wrote:
Hi,

Rather than narrowing a 'range' - where each hand is allowed or disallowed - I'd recommend having a probability distribution of all possible hands. The only hands with zero probability are those excluded by known cards. Some hands may have very small probability given the action - but not zero.

- PeppaPig


Peppa,

Is this a "weighted range"? I remember you talking about this before but I was not sure how to implement it. Also..I have been experimenting with different hand rank systems. I switched to the PokerRoom.com HU card stats which seem to be a more realistic set then the pokerstove Top X% that I was using before. Have you messed with hand ranks at all?


Top
 Profile  
 
PostPosted: Sun Aug 18, 2013 3:29 pm 
Offline
Junior Member

Joined: Sun Mar 03, 2013 12:09 pm
Posts: 14
Hi,

I never used 'hand ranks' in the way you mean - ie I never used a list of hands to calculate a Top n% of hands and assumed an opponent must have a hand in that range.

The alternative is to work with a probability distribution - which is like an 'array of probabilities' for all the possible hands. e.g. there are 1326 possible hole card combination so an opponent starts with a 'natural distribution' - meaning that all hands are equally likely with probability 1/1326. Once you see your cards you can set some of those probabilities to zero (and redistribute over the other hands so the total is still 1).

Then when the opponent acts you can refine your probability distribution for them further - taking into account their stats etc. This is the complicated part - its the heart of the opponent model (subject for another thread) - but it is possible to construct a model that makes these adjustments in probabilities based on stats etc in a way that is better than the 'top n%' approach.

e.g. lets say you are in late position preflop and a very tight player in mid position pfr's (with say a super low pfr=0.8%). Before they act all possible hands are equally likely - but afterwards their probability of having aces or kings would be much higher - and their probability of having crap would be tiny.

However crucially, you wouldn't just say they definitely have aces or kings with 100% certainty (like you would with a 'hand rank' method). It might be that 90% of their distribution is in aces and kings - but you would always allow a small amount of probability on other hands.

You might get away with the 'top n% hands' approach for pure preflop decisions - where the effect is likely to be just being a bit conservative in your estimation of your equity - however if you carry forward your 'range' into post flop decisions it can lead to big mistakes. Too much certainty can be a dangerous thing.

Well that's what I think anyway :).

- PeppaPig


Top
 Profile  
 
PostPosted: Fri Aug 23, 2013 3:26 pm 
Offline
New Member

Joined: Mon Aug 05, 2013 9:30 am
Posts: 3
Thank you for the replies.

Shalako, is your bot currently profitable?

Pegga, if you never eliminate any hands from the opponents' ranges, how do you sample from the range? Is this fast enough to deal with ring games?

I'm taking this problem slowly one step at a time, so currently trying to make a fast multiple range vs range winning probability estimator. If each player can have 100 different hands, with 6 players, that's 10^12 possibilities. So must do range vs range, basically bucketing, but changing the boundaries at each street. Even then, it's still too slow, so must come up with some smart way of sampling representatively. The hardest thing about sampling I have encountered so far is the problem of dominance. E.G, you could say Ax, {KQ KJ, QJ, JT}, {small pair}, all have similar strength, so you only sample 1 of the 3 buckets, but actually Ax is very likely to be badly dominated.


Top
 Profile  
 
PostPosted: Sat Aug 24, 2013 2:48 am 
Offline
Veteran Member

Joined: Mon Mar 04, 2013 9:40 pm
Posts: 269
Quote:
Shalako, is your bot currently profitable?


My FL and NL Zoom bots are but I am still working on HUNL Cash which is getting close to being ready for real world testing. I am using nothing but expert system rules. Buckets and all that stuff is over my head. This has been one of the hardest bots to create by far. I have 8 months of work into it so far although I did take a big 3-4 month break.

Quote:
Pegga, if you never eliminate any hands from the opponents' ranges, how do you sample from the range? Is this fast enough to deal with ring games?


Eliminating hands from a likely range is not that difficult as I stated above. I think it took me two weeks of tweaking before it worked correctly although I am constantly improving it. I have no idea about sampling or whatnot so I had to use hand rankings and such to form a likely range based on his stats. For me what the hand rankings consist of is critical. Sometimes its way off but most of the time the villains hand was in the bots predicted range. I think its possible to get up to around 70% accuracy. This is why I think preflop is critical as getting the range accurate makes post flop much much easier imo. I personally cannot think of a better way to do it so I have to eliminate hands from a range based on his stats and his post flop actions. You can pretty much cut his range by a third on each street. How? because he is either betting for value or he is not..its that simple. He could be betting for thin value but those are hands you might be able to fold out.

Example. A guy raises 80% of buttons. You flat with KJs. Flop comes 5dJs7s. You check and he leads and you call for whatever reason instead of raising. The turn comes an Ah and he leads out again. Ok..so he is still betting with 100% of his range. So all he could be betting for value now is Ax+, flush draws, and a few gutters. All his Jx hands now are thin value, so is 7x and 5x, even KK and QQ. Every other pair (22-66) he could not bet the turn with as he would not get called by worse. So in essence he can only bet a very small portion of his range for value. The larger part of his range you have a very good chance of folding out with a 3x check raise. There is a huge amount of fold equity here. This is why floating with complete air is a key poker concept when you know his range to be weak.

But..the flip side is what Peppa is saying..should you ever eliminate a hand from a range? Its a very good question. Keep all hands in range but weight them according makes sense too. I think in a vacuum its probably correct. I am not really sure what the best method is but I am trying to have the bot think like a pro and they are very good at narrowing a villains range down...sometimes super human.

Quote:
I'm taking this problem slowly one step at a time, so currently trying to make a fast multiple range vs range winning probability estimator. If each player can have 100 different hands, with 6 players, that's 10^12 possibilities. So must do range vs range, basically bucketing, but changing the boundaries at each street.


Well post flop its not going to be as hard as you think. First of all if your playing preflop correctly your going to have very few multiway situations as you should be isolating as much as possible. This means when it is multiway the bot is going to have to have top pair+ or a good draw in order to win anyway so the math is not really going to make much difference. So your sitting on the BB out of position with middle pair overcard multiway. Calculating range vs range vs range is pointless. Fold.


Top
 Profile  
 
PostPosted: Fri Aug 30, 2013 3:08 pm 
Offline
Veteran Member

Joined: Wed Mar 20, 2013 1:43 am
Posts: 267
Weighing the hands is the correct way, but it also takes way more processing power.
It also gives a false sense of accuracy. If I say a hand is in his range in 1% of cases, while in reality its 10% of his range, thats a way bigger error than just falselly removing a 0.001% hand.

In the end in a rules based approach or opponent modelling, the strength of the model is the decisive factor.


Top
 Profile  
 
PostPosted: Fri Aug 30, 2013 4:17 pm 
Offline
Veteran Member

Joined: Mon Mar 04, 2013 9:40 pm
Posts: 269
HontoNiBaka wrote:
Weighing the hands is the correct way, but it also takes way more processing power.
It also gives a false sense of accuracy. If I say a hand is in his range in 1% of cases, while in reality its 10% of his range, thats a way bigger error than just falselly removing a 0.001% hand.

In the end in a rules based approach or opponent modelling, the strength of the model is the decisive factor.


yeah it is without a doubt the biggest factor and none of it is easy. I think generally that for each villain preflop call..whether it be a standard flat, 3B call or 4B call that some of the top value hands (like QQ+) should be included say 10-20% of the time. My bot will flat call those hands for post flop balance a certain % of the time so I should assume the villain does too in a standard model. Obviously it would be better to overestimate the likelihood.

Now the 3B bluffing and 4B bluffing range could really be wide and could compose of just about anything. I think a general solution would be include every likely hand in the range equally and narrow the range significantly on the flop. I think this would ensure that for the most part the hand would be carried over to the flop and not eliminated which is the problem with the bluffing range. Sure there are going to be hands that are not in the model but that is poker. You can adapt by using showdown information and add/remove hands from various ranges.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 9 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Group