# What's the difference between poker with public cards and without them?

Example: Texas Holdem poker vs Texas Holdem poker with the same rounds, just with no public cards dealt.

Would algorithms, like CFR, approximate the Nash equilibrium more easily? Could AI that does not look at public cards achieve similar performance in normal Texas Holdem as AI that looks at public state tree?

It depends a little on what you mean by "the same rounds, just with no public cards dealt."

If you mean that each player will just be dealt 2 cards, and no public cards exist, then really we're playing a sort of "high card" game. The best hand is just a pair of aces, CFR will solve this quickly, because the number of possible game states is extremely small compared to a full poker game (especially if we exploit the symmetry of suits, since flushes aren't possible).

If you mean that each player will be dealt 5 cards, with several rounds of betting as before, CFR will probably do less well. The state space will be larger, since there are more cards in play (10 instead of 9). Betting may become more complex, and more complex betting expands the state space enormously.

If you mean that the cards are dealt as before, but the program simply will not look at the cards, then you've kept the state space of the game the same size, but radically reduced the number of information sets. Playing against an opponent who can look at the cards on the table, your program would be at an enormous disadvantage. For instance, imagine the cards on the table are "3 3 8 8 5", and that you have a pair of 2's in your hand. You would want to play very differently from if the cards on the table were "2 2 10 4 7", but an AI without access to the table cards would have to act the same in both situations.

• Sorry for not being clear. 1st and 3rd part answered both questions. So if the information set space is so important, than isn't it better to create trees, where nodes would be different end-game combinations of different strengths (high card, pair, ...) than just all card combinations? In total there are 110 different end-game combinations with different strengths (ex: pair of 2 == pair of 2 with different type, so in total there would be 13 different strength pairs). Then in total it reduces information sets in limit texas holdem to 8.3*10^11, which is less than original 3.19*10^14. Oct 6, 2018 at 21:21
• @DomasA In case 1, things are pretty simple, but it still depends on how you break ties. If you allow wins by high-card, and break ties by highest second-card (rather than by suit), then you'd have around 2.5k distinct information sets. In case 3, we really need to preserve all of the information in a hand. There are some symmetries we can exploit, but differences like (10 2) of different suits vs (10 2) of the same suit matter, as does (K Q) vs. (K J). I think there are still about 2.5k information sets without observing the bets. Oct 6, 2018 at 22:56
• The bigger issue is that if you reduce the number of information sets by making the sets larger (like in case 3), then the program is definitely going to play poorly. Essentially you're learning to play a "low resolution" version of the game, and then trying to use the strategy you developed there to play the real game. Even if CFR minimizes exploitability in the low-res game, it's still going to be exploited heavily because its opponent has access to valuable extra information (i.e. what's on the table). Oct 6, 2018 at 22:59
• Sorry for bothering again, just had similar question. Since knowing the public cards is obviously an advantage and knowing opponents cards would be even better, Is it worth to model/predict opponents cards or because of stochasticity of players strategies it is not even worth trying? And would these predictions improve AI's performance against opponents or decrease learning time of training (in imperfect information games, like poker)? Oct 8, 2018 at 14:32
• @DomasA CFR implicitly models the other player's cards, because each element of a information set consists of one possible pair of cards in the opponent's hand (but, we have to act in the same way for all possible pairs, because we'll see the same inputs). Other methods might benefit from trying to explicitly model them. For example, maybe you'd like to build an algorithm that watches the backs of cards for a given deck. Since the cards might have slight defects, it might be able to build a more accurate model of which cards are in an opponent's hand, but you'll still have an information set. Oct 8, 2018 at 15:45