$100,000 Poker Bot Tournament
Costa Galanis writes "The LA Times is reporting that a poker tournament will be held where engineers will be able to pit their automatic poker-playing programs against each other in a tournament similar to the upcoming World Series of Poker main event, with a 100,000 dollar cash prize for the winning program. The article mentions how the recent rise in popularity of poker has encouraged many to try and create the poker equivalent of chess' Big Blue, the chess playing computer program that defeated the world's top chess player in a widely publicized event, and also talks about how many engineers also are trying to make bots that are good enough to play and beat human players for money in online casinos."
Any poker player will tell you bluffing is where it's at. Without bluffing you play the odds and it just becomes a simple game of chance. The bluffing algorithms are were the interesting work will be.
Perhaps the winning program could be reconfigured to create business plans?
There are no karma whores, only moderation johns
In poker, the cards are shuffled after every round.
The challenge in poker is learning how your opponent plays and knowing when they're bluffing, along with not giving away too much yourself, and being able to bluff well. Chess might take more mathmatical and/or logic skills, but Poker takes a lot more skill when it comes to intangibles and the subtle differences in your opponents' skills. This makes for a much much tougher programming challenge.
If bot A simply bets what it should based on the chance of the cards it is holding, another smarter bot (bot B) will do the same thing [b]and[/b] figure out what bot Ais doing, which will give bot B a big advantage, and over time, a win.
My sig is blank, I typed this by hand.
Clearly you don't understand Texas Hold-'em. There is no card counting required, beyond to 6 (two in your hand, 4 on the table). Any player who is so bad that he can't read the board isn't going to be a challenge to anybody decent.
Since decks are made out of 52 cards, and you get two of them, it gets very easily to calculate probabilities for a human (mostly involves multiplying by 2).
Finally, making the probabalistic move every time will not do as well, because if you do that you would absolutely never bluff. A bot to be good in the long run must bluff, otherwise it is far too predictable and you can gain too much information from its bets and raises.
To give a quick example: If there's 100$ in the pot, and the bot bets 10$, I need to believe I'll win 1/11 times in order to justify my call. If I know that the bot never bluffs and only bets there when he's best, I can fold every time and save 10$. If the bot bluffs 1/11 times though, I suddenly have an actually complicated decision. And note if I fold those complicated decisions every time I lose more money, because he is betting more hands and I am folding each time he bets.
So no, straight up probabilities simply won't cut it.
(For more information, see Sklansky's Theory of Poker.)
Don't let the posters who say "just enumerate all possibilities" fool you.
The hardest part of playing poker is "reading" your opponents' hands -- learning how they tend to play, and inferring what cards they are likely to hold, whether they are bluffing or slow-playing, etc.
It may be easy to read a poker bot's style of play, but reading good human players is extremely difficult. So even if a certain bot crushes the competition in this tournament, it may not do so well against humans.
As someone else pointed out, the main key to how successful bots will become in poker is the algorithms that conclude if a hand is "bet worthy". Obviously probability is easy for a bot to calculate; my high school students calculate card hand odds in my statistics class for homework. You can go even further by calculating rudimentary risk-reward odds to determine if the potential cash payoff for this current pot, combined with the probability you have for making your hand, combined with the probability the flop gives your opponents better hands than your own, etc.
The key, clearly, is the way your program "behaves" in response to opponent betting. You could code a program that only plays based on the probability of achieving a winning hand in a statistical sense. (IE, if my pocket has a 75% chance of becoming a hand that will beat 65% of all possible hands, then play it regardless) That wouldn't obviously play that well, since the bot won't consider opponent betting. However, if your bot regards opponent betting, it will easily become susceptible to power bluffing if the algorithm doesn't guard against it. (Hence, you have routines like poorly written cell phone games where you just have to come out of the blocks betting like mad and you'll 90% of the time bluff the bot out of the hand)
I wouldn't be surprised if some of the more ingenious bots would be a medley of pure probability, observed opponent behavior (for trend matching with a fixed opponent), and a database of "real life" situations. If I were to design a bot for poker, and had the resources, I'd be sorely tempted to first host an online poker website and take a ton of samples from actual, online play. You have the advantage (right now, at least) of being able to record everyone's exact hands (at every stage of the hand) as well as everyone's betting. You could distill that into a form of database where you could try and match a bot's hand to a pre-existing condition case, and determine, along with your other ranking criteria, what a human player once did with that same hand, and whether that player won or not.
Londovir I could see bots taking over after awhile, but it's going to take some time...and even then, it should be entertaining to watch programmers trying to tweak their bot to beat another bot, sometimes without even knowing they are going up against another bot.
Londovir
Counting cards is a completely useless skill in poker. In real life, the deck is thoroughly shuffled between each hand. Online casinos generate a deck before each hand which is completely randomized.
Out of your list, the only true advantage a bot would have over a pro is the ability to play at the same level for an infinite amount of time. Humans become tired or can go on "tilt" after a streak of unlucky cards and begin to play badly.
I wonder if this will encourage programmers to actually intentionally obfuscate their code.
Case in point, one thing that some people think is worth doing in the first few rounds of poker is to intentionally lose or call as many hands as you can, just to determine your opponents' betting methods and/or tells. Could something similar be done with programs? For instance, measuring the number of clock ticks that an opponent takes to analyze a given hand. If identical flops show up in subsequent rounds, and identical intervals lead to identical bets, is it possible that you've figured out how your opponent likes to bet? Furthermore, would it be worthwhile to throw in an empty do() while loop of random length in order to throw off such attempts? But how about betting patterns themselves?
This is one thing I've always thought was missing in creating AI. It's not so much about coming up with "perfect" AI because so long as it follows a set pattern, it'll never be perfect. If it's consistent, either you'll figure out how to beat it, or you'll give up in frustration because you know you can never beat it. But create multiple different AIs that follow basic tactics, and then mix them up, there's the challenge.
>>There is a valid point that Chess is a better game than Poker in society. I am speaking neutral not leaning toward Poker or Chess cause I hate them both anyways.
>>The game of Poker will never be open to all audiences. It is a game aimed at RICH adults, limiting the potential audience. I am not saying you and your college buddies can't get together and play free poker. But schools would never encourage the game like Chess. There is a real scientific aspect to Chess that Poker does not have.
Yeah, that explains why there are SO many chess tournaments held as fund raisers for churches, non-profits and school activities compared to poker tournaments (rolls eyes). Chess is aimed at the richest of the rich -- the people who can afford the tutors to make it to an elite level. I can go buy Super System vols 1 and 2 for $60 and be ahead of the game in poker.
Let me rephrase this -- i'm a good poker player and an average chess player -- I don't study chess at all but I know the strategy enough to beat the tar out of someone who doesn't really play. If you sat me down heads up against, lets say Chris Ferguson, in 100 matches of texas hold 'em, I win 20. Even though he's one of the top players in the world. I sit down across from Kasparov + co. in 100 chess matches I don't have a prayer of even drawing one game.
So which game do you think is more likely to draw an audience? Sorry, I'd write more but I can't wait to catch ESPN's presentation of the world series of chess.....
sig--we don't need no goddamn sig
The game of Poker will never be open to all audiences. It is a game aimed at RICH adults, limiting the potential audience
Huh? It's not like the only games have $10,000 buyins.
There is a real scientific aspect to Chess that Poker does not have.
Absolutely wrong. Poker is a textbook example of game theory, and because of imperfect information, it's arguably more strategically complex than chess. In chess, "all" you have to do is look ahead N moves and pick the best one. Sure, it gets complicated because you need to have a good way of evaluating positions and pruning moves that you know are bad, but at the core it's just a static decision tree. In poker you have to consider what your opponent has, what he thinks you have, what he thinks you think he has, etc, etc.
Poker is strictly about winning money.
Poker is about winning chips. Those chips are often converted to money, but don't have to be.
How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
> Poker is just getting random cards and betting on them
No, poker is mostly about figuring out what your opponent is thinking, without letting him know what you're thinking, while he's busy trying to figure out what you're thinking, without showing you what he's thinking. The cards are just the medium, the subject you're both thinking various things about.
Now, poker could *devolve* into what you describe if all (or all but one) of the players were bots. But as played between humans, it's not like that at all. Why do you think a lot of quite heavy-duty math geeks suck at it?
Cut that out, or I will ship you to Norilsk in a box.
If I remember correctly, the person I referenced worked for the state gaming commission and his partner was a gaming regulator. Anyways, as a person in that position he had access to the algorithm that the systems used at that time. Of course, I am not saying that as a person outside of the online casino would have access to such information, but much like the rest of the business world, insider information is how some people make money. Other than a NDA and a conscience, there isn't much to stop the programmer from leaking code to a third party for $$$. The casino doesn't really lose since they take a rake of the pot anyways. The point is, unless the casino is using a lava lamp to generate their random numbers, there is a mathematical algorithm behind the random numbers used for the cards, and algorithms can be subject to prediction, although it may not actually be easily done with modern hardware.
Most of the posters are missing the whole essence of poker. Poker is a non-cooperative multiway game of incomplete information. The whole point of the game is to create a mixing strategy(which bluffing is a part of) that gives you positive expectation over your opponents mixing strategy. A good mixing stratgey leaks little information about your hand, while at the same time adapts to exploit information leakage from your opponents. There is a question of whether there exists an optimal strategy for multiway poker(there is one for headsup), where your strategy needs not adapt to your opponents and any deviation by your opponent from the optimal strategy creates negative EV. I conject there isn't since it seems intuitively there is a different equilibrium for tight, passive game compare with loose aggressive games. Or in other words, a group of 3 players or more themselves can move the equilibrium point.
Blah Blah Tacos
They have no realistic way to police how the affiliates promote their program
They could spider the blog spam and block any affiliate links they find. It wouldn't be very difficult to do this.
Of course, all this effort would accomplish is to reduce the number of links to their web site, thus making it fall in ranks in the search engines. Somehow, I don't see these sites as ethical businesses who would voluntarily lower their Google rank because their conscience demanded it.
By the way, if this is so impossible, why is nobody spamming Amazon.com affiliate links? (Note: I said "spamming," not "linking in legitimate comments.")
Oops I shouldn't have posted as HTML... Let's try
"EVERTHING about poker can be analysed mathematically" again, but with paragraph breaks.
Sorry. It was my first post.
That's right.
Most people think that bluffing, slow playing etc. are beyond mathematics, but actually they're part of the strategy of games of incomplete information.
In order to play any game where you can profit by your opponent's misreading of your hand, you have to bluff and slow-play (act as if your hand is worse than it is) some percentage of the time otherwise your actions give away too much information.
Any good strategy for Poker doesn't specify that you should have a given action in a given situation, but rather specifies that in a given situation you should have a given probability distribution of actions so as to maximize the trade off between taking advantage of probabilities and the advantage of not being readable.
Beyond this there are two kinds of strategies:
1. Strategies that involve trying to figure out your opponent's method of play (ie. guess the algorithm) and take advantage of it's weaknesses.
This is called a maximal strategy. Obvious finding a maximal strategy is a very very hard problem.
2. Finding best strategy that doesn't depend on your opponent's strategy. This is called an "optimal" strategy. It has the following properties:
a) It's an equilibrium in that there is no strategy that beats it on average.
b) It's the best strategy that you can use while still telling your opponent exactly what your own strategy is.
c) As I said in the intro it's the best strategy that doesn't take the opponent's strategy into account.
Note that Chess programs and the like try to find optimal strategies not maximal strategies - which I think makes them a bit boring. A good chess player can take advantage of my weaknesses as a chess player and humiliate me much faster and more completely than a chess program that assumes that I may make a brilliant move at any second, despite all past experience!
Anyway there are programs out there that find optimal strategies for games like poker. Texas hold um is a bit large a game to analyze that way but no doubt there will be programs that find optimal strategies for hold em or at least almost optimal ones.
But opponent modeling and maximal strategies are more interesting...
Beyond that there's a whole level to table stakes poker (is that what it's called?) that makes it hard to analyze. The fact that the range of bets you can make is so large is hard to analyze...
Also I think the math that's been used breaks down for more than two players at a table.
Beyond that there's analysis of the flow of money around the table over multiple hands. For instance it's better to lose to a loose player than to a tight player because you're more likely to get your money back from a loose player (this may not matter for tournament rules where you play till only one contestant is left).
I agree it'd be not-hard to code a bot that made 1BB/100 by playing tight. But unless you sit this thing down at 50/100 or higher you're not making much money from it. You'd need a small army of such bots, and as parent says this would be hard to hide. The alternative would be a bot that could make 5+ BB/100 at, say 5/10 and 10/20 tables .. I suspect this would be a very advanced machine. But it is theoretically possible.
Remember that one reason Big Blue beat Kasparov is that the human's previous games were all available for analysis by the computer. It had been *programmed to *beat *Kasparov.
A computer making serious cash against an ever-changing field of unknown quantities in a casino would require actual intelligence. The strategic environment is MUCH more dynamic in poker.
My turnips listen for the soft cry of your love
What stops two bots from playing in the same game? The two bots can communicate, and increase their collective chances of winning by quite a large percentage. Heck, with skilled players you don't even need the bot. Just two folks with a telephone would work.
This is why I'd never play in an online tourney. That and I suck at cards.
See my journal for slashdot ID's by year. Mine created in 2005. http://slashdot.org/journal/289875/slashdot-ids-by-year
Best. Post. Ever.
Though #5 should be "Never count your money when you're sitting at the table, because there will be time enough for counting when the dealing's done."
The world moves for love. It kneels before it in awe.
Yes, the house wins every time. However that's very different from saying that the odds are that every player will lose in the long run (as in roulette, slot machines, etc.), which is the conclusion that many would draw from reading that oversimplified statement. The house may take 10%, but if I'm skilled enough to make 20% from my opponents, I'm still up even after the house takes its rake. That's what makes poker a game of skill that intelligent people can win at, rather than just a random game of chance in which you'll lose more money the longer you play.