As a PhD student in CS, I want to chime in and say this isn’t as easy a problem to solve as you might think. There is a huge fundamental difference between the game of chess, where computers can routinely beat or tie the world’s best players, and poker. The main difference is chess is a game of perfect knowledge and has no statistical aspects while poker is a game of imperfect knowledge and has significant statistical aspects.
A game of perfect knowledge is one where all opponents have all information; in chess, both opponents can see every piece on the board, know all the moves each piece can make, etc. In poker, this is clearly not the case because only a single player knows his/her hold cards.
It is because of this perfect knowledge and lack of any chance that allows chess to be “solved” because the state-space of potential moves can be traversed intelligently with certain heuristics and a lot of brute force.
As far as poker, all a computer can really do is calculate odds and determine patterns. But really, how hard are the odds in poker? There are certain rules of thumb for calculating odds. For instance, a pocket pair against two higher cards is generally about 50% chance to win. Does knowing its actually 47% or 51% or whatever instead of 50% going to give you any real edge? Further, unless you’ve pinned your oppenent on those two cards, does knowing those odds really help at all? I’ve watched a number of poker tournaments on TV, and several times, I’ve seen some of the pros state their odds in an all-in within a percentage point or two (count up outs, divide by cards left).
As far as detecting patterns, this is something humans are especially good at that we haven’t quite figured out how to do well with computers. Sure, a computer can detect a pattern where a certain player bets certain amounts he’s likely bluffing… but a REALLY good player will change up his play and use that tendency to try to double-bluff someone.
For the sake of argument, let’s assume we’ve created a sophisticated enough system that can detect betting patterns, given enough hands, we still haven’t dealt with the statistical nature of poker. Precisely because of this, even the best players in the world can’t possibly win or even go deep in a majority of the tournaments they enter. Were we to enter this computer, I’d predict poor results against the pros for two reasons. First, they’d deliberately try to establish a pattern, wait for it to pick it up, then deliberately go against it to try to trick it. Second, the computer would have no extra information when determining bluffs or strength of opponents hands other than betting patterns while humans can observe behavior, language, and other reads on top of their observations of betting patterns. In my opinion, that extra information is equally as useful, if not more so, than knowledge of odds and betting patterns.