aikupoker / deeper-stacker

DeeperStacker: DeepHoldem Evil Brother
39 stars 3 forks source link

bet size, stack size, pot size && BB size #5

Closed light3317 closed 5 years ago

light3317 commented 5 years ago

How does the bot decide the amount to bet/call/raise? Is it pegged to BB size or pot size? When doing those calculation, does it care about opponent's stack size or its own stack size at all? If yes, in which aspect?

Will the bot be able to detect effective stack size by comparing its own stack size to pot size? For example when facing a pot size bet or all in bet, the bot's decision is to fold. However if the bot knows it only has 1/10 of pot size stack left, the effective calling size becomes much smaller. So would different stack sizes alter the bot's final decision?

herrefirh commented 5 years ago

So remember, these bots are not designed and released to make you money. Where should we send the check?) They are released mostly by academics or hobbyists who compete in the Annual Computer Poker Competition. This competition is standardized. 20,000 starting stacks. And it uses Doyle's convention which says after every hand, chips go back to 20,000. So will it be in situations where it doesn't have very many chips left and it has to decide to call? Certainly. Will it be in many situations where it's short stacked relative to other opponents? No.

So short answer is no it doesn't care about opponent's stack size. I don't know deepstack at all, but usually, they learn what they learn, within the constraints you place upon them, whatever they are. You can call that caring if you want, I don't. But if your implicit or follow up question is, will it play well short stacked against larger stacks in a blind situation that is substantially different than the one it's trained in? Well it might, I don't know, it's probably better than playing drunk, but it gets good at what you train it at. The rest is sort of, hope.

Are you interested in ACPC or making money? Because if you are interested in making money, your questions are going to get a lot harder and more in depth than this. Those are sort of easy relative to the natural follow ups you might have. If you are interested in ACPC, this bot is basically ready to go (I should caveat: I doubt it'll win as is, plus you're taking someone else's product. I mean it's functional under those parameters.)

aikupoker commented 5 years ago

Hi @light3317

If you want to have a scientific answer, I recommend you to check this video on YouTube:

https://www.youtube.com/watch?v=qndXrHcV1sM

By default, DeepStack has following parameters:

Bet sizing depends on this class:

https://github.com/aikupoker/deeper-stacker/blob/master/Source/Game/bet_sizing.lua#L26

And also how you configurate it: https://github.com/aikupoker/deeper-stacker/blob/master/Source/Settings/arguments.lua#L14

params.bet_sizing = {{1},{1},{1}}

If you have following values configured:

params.bet_sizing = {{1},{0.5, 1, 2},{1, 2}}

If there is no bets, the possible actions will be the first index: {1} If there is one bet, the possible actions will be the second index: {0.5, 1, 2} If there are two or more bets, the possible actions will be the third index: {1, 2}

These actions are related to pot size (and they can't not exceed min and max possible bets). And by default is a bit tricky, it is not exact a pot size.

Imagine that you start a Heads Up NL game:

Actual logic defines:

Imagine that you start other Heads Up NL game:

Doing the same maths, DeepHoldem can make following decisions: Fold, Call, Raise 300 chips and go all-in.

Imagine that you start a Heads Up NL game:

Taken in account that we have a raise and a call, "opponent bet" is last raise (300 chips). So, DeepHoldem can make following decisions: Fold, Call, Raise 900 chips (1.5bet pot) and go all-in.

light3317 commented 5 years ago

So remember, these bots are not designed and released to make you money. Where should we send the check?) They are released mostly by academics or hobbyists who compete in the Annual Computer Poker Competition. This competition is standardized. 20,000 starting stacks. And it uses Doyle's convention which says after every hand, chips go back to 20,000. So will it be in situations where it doesn't have very many chips left and it has to decide to call? Certainly. Will it be in many situations where it's short stacked relative to other opponents? No.

So short answer is no it doesn't care about opponent's stack size. I don't know deepstack at all, but usually, they learn what they learn, within the constraints you place upon them, whatever they are. You can call that caring if you want, I don't. But if your implicit or follow up question is, will it play well short stacked against larger stacks in a blind situation that is substantially different than the one it's trained in? Well it might, I don't know, it's probably better than playing drunk, but it gets good at what you train it at. The rest is sort of, hope.

Are you interested in ACPC or making money? Because if you are interested in making money, your questions are going to get a lot harder and more in depth than this. Those are sort of easy relative to the natural follow ups you might have. If you are interested in ACPC, this bot is basically ready to go (I should caveat: I doubt it'll win as is, plus you're taking someone else's product. I mean it's functional under those parameters.)

I was curious about the bot's logic.

light3317 commented 5 years ago

@aikupoker if I understand correctly the program does not care about previous actions but only consider current match state to make a decision? For example, when bot acts first on the turn with a pot of 2000, it does not care if the previous action goes check check preflop and bet call on the flop, or check raise preflop and check check on the flop?