Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming The Almighty Buck Entertainment Games IT Technology

$100,000 Poker Bot Tournament 356

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."
This discussion has been archived. No new comments can be posted.

$100,000 Poker Bot Tournament

Comments Filter:
  • Everyone knows that the house always wins in the end.
    • by bobbozzo ( 622815 ) on Sunday June 12, 2005 @09:32PM (#12798873)
      The only thing the house gets in poker is table fees or tournament fees.
    • The catch? All entries must be delivered in punch-card format.
    • mafia poker. what does the house get when there are two houses?

      I can see the commentary now:
      And program one, dubbed guido, pulls into the lead as program 4, dubbed vinnie, goes all in on a lousy full house.

      Madden esque voice: I still say that somehow they have found a way to pull binary cards from their sleeve's.

      Gruden esque voice: What they are doing is a standard bit swap in the packet back to the dealer server tricking it into thinking it didn't really know what it dealt to the player client in
    • by wmajik ( 688431 ) <wmajik AT yahoo DOT com> on Sunday June 12, 2005 @09:45PM (#12798975) Homepage Journal
      The "catch" is that unlike house games, the casino is only in the business of taking a percentage of the winnings in poker, known as the rake. In poker, since you are playing against your peers, if you are able to achieve a winning percentage greater than the house rake (commonly around 5-10%), then you are still a profitable poker player.

      In the poker world, the common standard for a profitable, solid player is to earn two big bets per hour, which covers both the casino rake and tip. In a $3/$6 texas hold'em limit game for example, the big bet is $6, which equals a $12/hr wage for a solid player. Online, where you not only do not have to pay a tip to the dealer, but also generally pay a lower rake and play about 150% more hands per hour than in a brick and mortar casino, it's very well possible to win nearly twice what you would by playing online.

      Thus, the only "catch" here is that by creating a successful poker bot that can play as well as a solid human, it may very well upheave the online poker industry as a whole. After all, if you could spawn near unlimited instances of an application that could pull in a meager $2/hr playing the $0.50/$1 low limit tables, that still means an insane amount of money. Whether or not it's legal.. that's another issue.
      • by Illserve ( 56215 ) on Monday June 13, 2005 @08:56AM (#12801669)
        The hard part in cashing in from poker bots online (which must exist somewhere, writing a statistically playing bot that just waits for nuts isn't that hard, and lousy players will fork over money to this thing) is evading detection.

        If you just simply spawn 1000 bots, as easy as that seems, you'll be detected easily, and your online assets siezed. At the very least you'd need 100 or more IP's, and probably some variance in reaction times, mouse movements, etc.

        that's the difficult part, because online casinos have alot of money to lose if players get spooked by the fear of bots. So they'll be trying *hard* to detect you.
        • 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
        • 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.
  • overlords (Score:2, Funny)

    by Jbcarpen ( 883850 )
    I for one welcome our new poker playing robot overlords...
  • Bluffing. (Score:4, Insightful)

    by glrotate ( 300695 ) on Sunday June 12, 2005 @09:32PM (#12798871) Homepage
    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.
    • Re:Bluffing. (Score:5, Interesting)

      by kraada ( 300650 ) on Sunday June 12, 2005 @09:44PM (#12798967)
      Granted, bluffing is definitely a good thing. That's why a really good poker bot absolutely must bluff. I presume these bots use game theoretical algorithms to decide when and how often to bluff.

      If two bots were identical and one bluffed 3% of the time (and didn't bluff away all of his chips), in the long run the bluffing bot should win. Because the non-bluffing bot will believe the bluffing bot has a hand those extra 3% of hands, and thus the bluffing bot will in the long run win more than half of the hands and do better in the long run.

      The interesting question is how often one should program the computer to bluff in what situations. . .
      • Re:Bluffing. (Score:2, Insightful)

        by Hosiah ( 849792 )
        Um, actually, bluffing wouldn't be that hard - the whole idea of bluffing is to be unpredictable. Meet mister random number generator!
        • Re:Bluffing. (Score:4, Informative)

          by Sancho ( 17056 ) on Monday June 13, 2005 @03:08AM (#12800564) Homepage
          The real key is bluffing and counter-bluffing, calling bluffs based on the statistics of the community cards, etc. Just randomly bluffing would be suicide against a bot who plays solely on the statistics, because you'd eventually end up dumping a load of money on a hand with no draws (other than a pair of whatever crap you have in your hand).

          No, there's a skill to bluffing. While a good poker player can bluff with 2-7 off suit, just randomly throwing money into the pot really isn't the way to go.
    • Any poker player will tell you bluffing is where it's at.

      And in case you are not playing online (a bit off-topic, I suppose), that is where your poker-face comes into play. Now for humans, a bit of Botox(tm) might help. But for bots, putting up a poker-face would be hard... without a face. Or would that make it easy? Will future bot programs include code for moving robotic face muscles? Will poker playing robots actually like playing poker, or will they hate their job? Will they drink beer and eat peanuts

      • by Fred_A ( 10934 )
        Well I had this great poker playing program, but it's cursor would blink whenever it drew a good hand.

        He still owes me a hard drive.
    • Re:Bluffing. (Score:5, Informative)

      by wmajik ( 688431 ) <wmajik AT yahoo DOT com> on Sunday June 12, 2005 @09:55PM (#12799050) Homepage Journal
      Parent is somewhat right. Bluffing can be an integral part of the game, depending on the format of the game being played, along with the limit played (amount of cash wagered).

      In a high stakes game or no-limit game, bluffing is very common, because every bet and action often involves a significant amount of money and little mistakes over the course of a session can end up costing large sums of money. Thus, bluffing becomes a viable weapon in these game formats because you can use your opponents' fear of making mistakes against him.

      However, in a small stakes game, bluffing is often close to impossible, as many players are simply put, unbluffable. With the current poker boom, the skill level of the average player has decreased considerably; often causing poorly skilled players to play hands in a very losing fashion, such as showing Ace high at the showdown. Against these type of players, a bluff is generally quite ineffective and a losing proposition, since the theory behind bluffing is to force your opponent to fold a better hand. Thus, when your opponent simply does not fold, the point becomes moot.

      As such, it would actually be easier to create a bot that plays low-stakes poker, as a non-bluff game involves simple math, decision trees and a bit of fuzzy logic. What it is not however, is a game of chance, as it is still a profitable game that has edges to be exploited.

      This has been a bit off topic, but I wanted to clear up the notion that poker comes down to chance, when there is very solid mathematical theory behind it.
      • The point of bluffing is to convince the other players that you ARE bluffing when you've actually got a good hand. Then you can milk them for all they've got. If you're bluffing a low hand, you should be prepared to lose. In fact, you should be expecting it.

        There's a 'rule' in texas hold'em: If the other players are playing loose, you play tight. If the other players are playing tight, you find another table. Some games really can't be bluffed.

        And I want to clear this up: an indivual game is still a
        • by spasmatik ( 550523 ) on Sunday June 12, 2005 @11:38PM (#12799757)
          Please come sit at my table. Your expert strategy would be a wonder to watch.
        • "The point of bluffing is to convince the other players that you ARE bluffing when you've actually got a good hand. Then you can milk them for all they've got. If you're bluffing a low hand, you should be prepared to lose. In fact, you should be expecting it."

          This is a ridiculous statement. You *might* be able to apply it to limit hold 'em, but certainly not no-limit games. The point of bluffing is to not only make it more difficult for your opponents to put you on a hand, but also (and more importantly
      • I wanted to clear up the notion that poker comes down to chance, when there is very solid mathematical theory behind it.

        The classic book [amazon.com] on this subject is by David Sklansky. Highly recommended.

      • Re:Bluffing. (Score:3, Interesting)

        by pnice ( 753704 )
        I've played online poker plenty of times and every time an "inexperienced" player stays in to see the river and wins with some obscure hand like three 2's (because the river was a two) the "professional" players always complain about them not playing "real poker" or telling them they are doing it wrong. The people staying in until the river and winning on the obscure hands do end up losing in the long run but to see self-proclaimed professionals tell them they are playing wrong because they lost a hand...d
    • Re:Bluffing. (Score:5, Interesting)

      by cpeikert ( 9457 ) <<ude.tim.mula> <ta> <trekiepc>> on Sunday June 12, 2005 @09:57PM (#12799066) Homepage
      Without bluffing you play the odds and it just becomes a simple game of chance

      Not true at all. To be a successful player, you must detect patterns in your opponents' play so you can infer whether you are likely to be ahead of them, and how to maximize the pot when you think you're going to win. This is very difficult for computers to do, even with sophisticated learning algorithms.

    • Interestingly enough, this was sometimes the case with chess and checkers with online play-for-money sites. People would download and run chess and checkers engines, and transcribe the moves to the online games. I'm sure this also happens on Yahoo alot... but a big part of the game was in tossing the occasional game or move to make someone think they were playing a person. Later you could take them for a bigger bet. A pirated copy of fritz could add a little bit of spending money to a persons budget.
    • Re:Bluffing. (Score:3, Interesting)

      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.

      Not (entirely) true. I have followed research in poker programs and I can tell you that programs that bluff play consistently worse than programs that don't. That is, if bluffing is interpreted as "rating your own hand as a lot better than it actually is, in the hope of getting your opponent to fold". The problem is that you are overbetting your hand when you bluff, and

  • Eliza (Score:3, Funny)

    by GreatRedShark ( 880833 ) on Sunday June 12, 2005 @09:32PM (#12798879)
    I'm going to submit a modded version of Eliza. It will win by confusing the other bots into submission! :) :P
    • Re:Eliza (Score:5, Funny)

      by Anonymous Coward on Sunday June 12, 2005 @09:36PM (#12798917)
      Please, tell me more about confusing the other bots into submission. How often do you confusing the other bots into submission?
  • Texus Holdum (Score:2, Interesting)

    by pdevor ( 603443 )
    A friend of mine at MIT already found a simple mathmatical algorithm for winning at Texus holdum in partypoker.com. I'm not sure if he's using it because I haven't talked to him in a long time, but apparently the people at the $10 tables suck enough that you can just play very conservatively without altering your style of play at all and win.
  • The bot... (Score:3, Funny)

    by EntropyMan ( 628831 ) on Sunday June 12, 2005 @09:33PM (#12798887)
    "Cause the bot always wins. You play long enough, never change the stakes, the bot takes you. Unless, when that perfect hand comes along, you bet big, and then you take the bot." - Danny Ocean
  • by Zeussy ( 868062 ) on Sunday June 12, 2005 @09:35PM (#12798896) Homepage
    Microsoft Poker on Windows 3.1. Just make a huge bet and all the computers Fold :P

    1. Let openents Place you their bets.
    2. Place a stupidly huge bet.
    3. They fold.
    4. Profit!
  • Deep Blue (Score:5, Informative)

    by Anonymous Coward on Sunday June 12, 2005 @09:35PM (#12798897)
    The chess machine is Deep Blue. It was created by IBM (AKA Big Blue).
  • Is it still accepting entries?
  • "The hard part is: What if I've got two 10s? What am I going to do?" As he scans poker books for strategy tips

    Well, clearly he's not much of an engineer either. Let your program simulate all possible situations, and figure out the best choices like that. You can determine the best strategies based on statistics, not conventional wisdom.

    • Re:Bot Training (Score:5, Interesting)

      by Anonymous Coward on Sunday June 12, 2005 @09:44PM (#12798971)
      Anyone who thinks the best poker stategies are dictated by statistics has no idea how to play poker. That won't make much of a poker playing strategy. The trick is representing stength and guessing what kind of hand your opponent has despite what they are representing.

      Against real players the primary way of determining this is through the unconscious betting patterns almost every player has. Bots with some AI could do well at this. Bots against other bots is potentially an even more difficult problem.

      What I fail to see is why anyone who had a well functioning bot would enter this kind of contest. There is far more money to be made without getting yourself the undue notoriety of this sort of success.

      • Re:Bot Training (Score:5, Interesting)

        by vslashg ( 209560 ) * on Sunday June 12, 2005 @10:30PM (#12799280)
        And likewise, any poker player who thinks poker is only about representing false strength and putting your opponent on a hand has no idea how to play poker. The real trick is a balanced approach. The best poker players are great at both reading hands and psychological warfare, but you had also better believe they know exactly what odds the pot is offering and whether finishing a draw is a positive or negative play.

        If you disagree, you're more than welcome to join our weekly game.
    • Let your program simulate all possible situations

      Hey, math whiz, any idea how big the set of all possible situations is?
  • Whilst its not actually explicitly against most online poker sites terms and conditions, I forsee this contributing to the problem of bot users on poker sites. As it is at the moment they are considered a problem amongst the low level players. Suppose a really good AI is invented. Whilst we wont know we are playing against a bot it will be making 100% correct decisions without the user having to do anything. Leave a few of them running over night and some people are going to get absolutely fleeced... by
    • If it takes down some of the poker sites (IN FLAMES!), I'm all for it.

      I, for one, as a blog and website operator am SICK AND FUCKING TIRED of comment/trackback/referral spam. Do they honestly think that by spamming my server logs I'm going to going to be interested in throwing my money at them? I seem to be missing something, but I'm guessing the people in charge of advertising and promotions for these sites aren't that far removed from Percy from The Green Mile.

      I'm sure many will agree with me: die poker
    • You are busted, Mr Case. The charges have to do with conspiracy to augument an artificial intelligence

    • by bcrowell ( 177657 ) on Sunday June 12, 2005 @10:31PM (#12799290) Homepage
      There was an article [kuro5hin.org] on this topic recently on kuro5hin, although it was focused more on human-human play, with the possibility of bots discussed as a possible reason why humans might think the game was rigged against them.

      It may be that current bots can beat some of the worse human players, but it's not clear how many of the human players are that bad, and it's not clear how good the companies that run the servers are at detecting bot behavior.

      One thing I'm still wondering about is human-human collusion. It's a big concern in breathe-the-same-air games between humans who don't know each other. Not sure about online poker, however -- do you get thrown in a table with randomly chosen players, none of whom you're likely to know? What about collusion between bots? E.g., you could be the only player at the table, not realizing you're playing against 6 bots, each of which knows what cards the others have.

    • Too late by over a year. We passed the majority are non-human players a while ago.

      Of course, the same applies to the stock markets now, erasing volitility as far as the eye can see.
  • by The Clockwork Troll ( 655321 ) on Sunday June 12, 2005 @09:37PM (#12798923) Journal
    At the end of an age marked by wealth-making products and services with style and no substance, is it that surprising that one of the most popular recreations has become seeing who can bullshit most deftly?

    Perhaps the winning program could be reconfigured to create business plans?

  • by nokilli ( 759129 ) on Sunday June 12, 2005 @09:38PM (#12798933)
    Whenever my poker bot goes "all in", my mudd bot somehow gets the idea that it's time to start slaying all of the other players.

    I think what is required here is clear and concise rules on what kind of weaponry the bots get to wield.

    Also, I don't think bots should get to wear sunglasses.
  • ...that in this tournament counting cards will be permitted?
  • by Capt'n Hector ( 650760 ) on Sunday June 12, 2005 @09:42PM (#12798955)
    Over the long run that is. A pokerbot:
    1. Has a perfect poker face,
    2. Can count cards,
    3. Can compute probability,
    4. Has no emotions, so it won't get stressed or tired,
    5. And will always make the right move probability-wise.
    • by kraada ( 300650 ) on Sunday June 12, 2005 @09:51PM (#12799029)
      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.)
      • You make a lot of good points, but more importantly (I think) it's very hard for a computer to get a good model of its opponent's playing style, to infer what cards the opponent is likely to have.

        All the statistical calculations in the world won't help you decide whether to call or fold, if you don't have any idea what cards your opponent has.
      • Even with bluffing, it's straight up probability. Given what you said, a poker bot will now have one parameter: it's "bluffing factor." This entire game is reduced to a calculus of variations problem.
        • Let's not forget the card counting. As long as you are testing poker bots, you're on a computer. That means that instead of simulating real decks (say a 10 deck shoe or something), you can simulate an infinite deck shoe (randint(52)). Can't count cards when there is an infinite deck.
          • OK, you have no idea what you are talking about. Every game of poker, whether played in real life or on computer, is played with a standard 52-card deck. Further, there is no sense in which "card counting" helps in Texas Hold'em.
            • I know that poker is played with a 52 card deck. What I meant is that these is no need to simulate 5 decks worth of cards, since the computer can radomly draw cards as if you had an infinite number of decks shuffled into one gigantic never ending pile.

              As for the card counting not helping comment, I agree, but I was just responding to a point made by the grandparent comment to my origional comment.

              • I know that poker is played with a 52 card deck. What I meant is that these is no need to simulate 5 decks worth of cards, since the computer can radomly draw cards as if you had an infinite number of decks shuffled into one gigantic never ending pile.

                You still seem confused. Every hand in poker is played with a single deck; there are no 5 decks of cards like in blackjack. Take 52 cards, shuffle, deal the hand, repeat. That's it.
        • by Anonymous Coward
          There's a $100,000 prize waiting for you. Build a bot and enter the tournament.
      • Um...what version of Texas Hold Em are you playing that's got 2 in your hand and 4 on the table?
      • Maybe not so much as card counting but maybe reverse engineering the random number generator algorithm. It's been a few years since Daniel Corriveau (look him up on google) got hold of the algorithm used to generate keno numbers at a casino and managed to predict the upcoming numbers based on the sequence of numbers already shown. Of course RNG's have come quite a ways since the rand() function of a few years ago, but a bot paying attention to the order of cards might actually be able to predict what cards
        • Online gaming sites do not use software random number generators (well maybe the stupid, soon-to-be-bankrupt ones do). They use hardware random number generators that use things like thermal noise to generate a sequence of bits. Good luck predicting that sequence.
    • 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.
  • a 100,000 dollar cash prize for the winning program

    What would a computer program do with $100,000? Build a cluster to run itself on?

  • by cpeikert ( 9457 ) <<ude.tim.mula> <ta> <trekiepc>> on Sunday June 12, 2005 @09:53PM (#12799038) Homepage
    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.
  • No limit? (Score:2, Interesting)

    by vikstar ( 615372 )
    I heard that no-limit is much harder for a computer than limit poker. A player must calculate percentages with limit poker, and bluffing is obviously limited, thereby reducing the "human intuition" aspect and increasing the simple number crunching aspect. If the AI poker tournament is no-limit it will make things very interesting.
  • by Londovir ( 705740 ) on Sunday June 12, 2005 @10:03PM (#12799103)
    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.

    • You deserve some insightful points right there. Alas, I don't have any.
    • About the only thing you left out is that most important lesson for the intermediate player, position: How many have acted, how many are left to act?
      Multiply a basic chance for a given pocket by a factor for position by a factor for prior player's actions... re-calc after flop and so forth... Wouldn't be too tough, except for assigning values to those factors...
  • "pit their automatic poker-playing programs against each other" Wouldn't this be BORING though? You wouldn't get to watch the game, merely see the results of it afterwards. Part of poker is the emotions and the experience. This would just be algorithms and would execute uninterstingly fast.
  • more information? (Score:2, Informative)

    by Deanalator ( 806515 )
    Does anyone know how to enter this contest? Is registration closed yet? Do they have a website? It all sounds very interesting, but the article itself provides no helpful links :-/
  • Hidden markov models (Score:5, Interesting)

    by G4from128k ( 686170 ) on Sunday June 12, 2005 @10:10PM (#12799155)
    One approach to this is to assume that the other players are markov processes with unknown internal states [mit.edu] (sorry for the PDF) . Gathering enough data (and probing the opponents with various betting strategies) helps estimate the internal patterns of the opponents. Humans are terrible at creating random patterns needed for perfect playing strategies. This approach can be used, for example, to create a hard-to-beat paper-rock-scissors game that quickly found the non-random patterns in human players.
  • Poker is Hard (Score:5, Informative)

    by w1z7ard ( 227376 ) on Sunday June 12, 2005 @10:11PM (#12799169) Homepage
    I did a little bit of work recently at UofA with the poker group.

    Poker is a hard problem. The game tree is huge for even heads up limit (~ 10^18 leaf nodes). Ring games (3-10 players) are intractable via any game theoretic methods. The only feasible possibilities are searching parts of the game tree through intelligent sampling methods, and perhaps abstracting the game down a bit.

    Work has focused on both solving abstracted versions of the game and exploiting opponent weaknesses. A publication concerning most recent methods involving bayesian best response will be available soon at the following link:

    http://www.cs.ualberta.ca/~finnegan/publications/p ublications.html [ualberta.ca]

    Just in case any one was wondering, calculating your raw chances of winning, dubbed "7 card roll out strength" is no problem at all once you harness the versatility of the gnu poker-eval library located on sourceforge.
    • Re:Poker is Hard (Score:3, Interesting)

      by cpeikert ( 9457 )
      Hey, you worked with the U Alberta group; cool. One question: how come they never put up the academic paper about vexbot? That seems to be the most interesting project from a theory point of view, and the most successful practically.

      About your sig: it is highly unlikely that any form of prime factorization is NP-complete. The reason is that the problem is contained in both NP and co-NP. So if it's NP-complete, then NP=co-NP, which nobody seriously believes is true and would be very surprising.
  • by wmajik ( 688431 ) <wmajik AT yahoo DOT com> on Sunday June 12, 2005 @10:15PM (#12799189) Homepage Journal
    There's been a lot of postings about this tournament being bunk due to a lot of misconceptions about the game of poker. As a successful poker player of quite a few years and also a geek, I do believe I have an informed opinion here when I say that A) poker is profitable B) poker bots can and have been created C) the effort to code a high level poker bot is incredibly, incredibly difficult.

    A team at the University of Alberta has been working on with a poker research group [ualberta.ca] that has been researching and coding poker bots for years. One look at their page should tell you that there is definitely some high level thinking and analysis required to develop a poker bot. More importantly, is that fact that they *have* delivered a bot called Poki Poker [poki-poker.com] that has an impressive record at beating human opponents in 1 vs 1 heads-up matches. Brian Alspach, Professor Emeritus of Mathematics and Statistics at Simon Fraser University has also contributed numerous publications [math.sfu.ca] to the field, giving credence to the fact that there is a genuine science behind creating an AI that can play good poker.

    So, before anyone else spouts off about poker being a game of chance or poker bots being mindless hundred line pieces of code, please do your research. A lot of people have worked very hard on this subject to simply have it dismissed as beneath them. Just ask yourself this: If you could create a poker bot so easily, one that could generate at the very least, a poker bot that made $2/hr playing the low limit games, what would stop you from launching thousands of these bots upon the online world? Because unlike a human, you can replicate a bot innumerable times, which in this case would be the equivalent of finding the goose that lays golden eggs. If you understand this, you may begin to understand why there is so much interest in the creation of poker bots..
    • 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 percenta
  • by aendeuryu ( 844048 ) on Sunday June 12, 2005 @10:18PM (#12799209)
    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.
  • by MagicDude ( 727944 ) on Sunday June 12, 2005 @10:25PM (#12799243)
    The Tournament will begin at 9:00 AM, and the grand prize will be presented at 9:03 AM.
  • ... a girl porker bot.

    This is going to be the best prom ever.

  • by isny ( 681711 ) on Sunday June 12, 2005 @11:06PM (#12799530) Homepage
    Here's a list of the things that a poker playing robot needs to know:
    1. When to hold 'em
    2. When to fold 'em
    3. When to walk away
    4. When to run
    5. Never count your money: When you're sitting at the table, there'll be time enough for counting, when the dealings done.
  • by Kjella ( 173770 ) on Monday June 13, 2005 @05:36AM (#12800953) Homepage
    A perfect strategy should be zero-sum game.

    Making the bet, the bot should make a probabilistic bet around the "value" of the cards. He can bet much higher (bluff) or lower (hoping someone else will bluff) than their real value. Likewise, when calling/raising a bet, a bet is considered the result of many possible sets of cards.

    To make an example:

    Two pairs ->
    $5 5%
    $10 25%
    $15 50%
    $20 15%
    $25 5%

    On the opposing side, $15 ->
    Nothing 5%
    One pair 20%
    Two pair 50%
    Three equal 20%
    Straight 5%

    He will bluff exactly so often as is optimal. Likewise, he will call a bluff exactly so often as is optimal.

    As an opponent:
    call more often -> too many non-bluffs
    call less often -> gets away with too many bluffs
    bluff more often -> called too much
    bluff too little -> fold too many hands

    Obviously, it is quite a bit more complex than that (bet given the cards, call/raise given multiple other bets) but that is the basic idea.

    Of course, this only finds the optimal strategy - i.e. one that will not lose. It is quite another thing to find a strategy to exploit opponents' sub-optimal strategy. One-on-one, it can't be beat. In a tournament (unless you play "to the bitter end" with only one bot standing, where the last round should be one-on-one) other strategies might be better for exploiting other bots and getting the most cash.

    Kjella

"Protozoa are small, and bacteria are small, but viruses are smaller than the both put together."

Working...