views:

5817

answers:

22

Dear Stack Overflow community,

I was recently in a discussion with a non-coder person on the possibilities of chess computers. I'm not well versed in theory, but think I know enough.

I argued that there could not exist a deterministic Turing machine that always won or stalemated at chess. I think that, even if you search the entire space of all combinations of player1/2 moves, the single move that the computer decides upon at each step is based on a heuristic. Being based on a heuristic, it does not necessarily beat ALL of the moves that the opponent could do.

My friend thought, to the contrary, that a computer would always win or tie if it never made a "mistake" move (however do you define that?). However, being a programmer who has taken CS, I know that even your good choices - given a wise opponent - can force you to make "mistake" moves in the end. Even if you know everything, your next move is greedy in matching a heuristic.

Most chess computers try to match a possible end game to the game in progress, which is essentially a dynamic programming traceback. Again, the endgame in question is avoidable though. -- thanks, Allan

Edit: Hmm... looks like I ruffled some feathers here. That's good.

Thinking about it again, it seems like there is no theoretical problem with solving a finite game like chess. I would argue that chess is a bit more complicated than checkers in that a win is not necessarily by numerical exhaustion of pieces, but by a mate. My original assertion is probably wrong, but then again I think I've pointed out something that is not yet satisfactorily proven (formally).

I guess my thought experiment was that whenever a branch in the tree is taken, then the algorithm (or memorized paths) must find a path to a mate (without getting mated) for any possible branch on the opponent moves. After the discussion, I will buy that given more memory than we can possibly dream of, all these paths could be found.

+10  A: 

This is not a question about computers but only about the game of chess.

The question is, does there exist a fail-safe strategy for never losing the game? If such a strategy exists, then a computer which knows everything can always use it and it is not a heuristic anymore.

For example, the game tic-tac-toe normally is played based on heuristics. But, there exists a fail-safe strategy. Whatever the opponent moves, you always find a way to avoid losing the game, if you do it right from the start on.

So you would need to proof that such a strategy exists or not for chess as well. It is basically the same, just the space of possible moves is vastly bigger.

ypnos
So, who had the urge to downvote my answer? Is there anything wrong in it? Want to get yourself in front?
ypnos
@ypnos, I didn't down vote your answer at all. I just commented to say not to let random down-voters get you down. You've gained 30 rep and only lost 1. Also, +1 ;)
Simucal
Thank you for your comment!
ypnos
+4  A: 

Your end of the argument is supported by the way modern chess programs work now. They work that way because it's way too resource-intense to code a chess program to operate deterministically. They won't necessarily always work that way. It's possible that chess will someday be solved, and if that happens, it will likely be solved by a computer.

Bill the Lizard
+2  A: 

For the record, there are computers that can win or tie at checkers. I'm not sure if the same could be done for chess. The number of moves is a lot higher. Also, things change because pieces can move in any direction, not just forwards and backwards. I think although I'm not sure, that chess is deterministic, but that there are just way too many possible moves for a computer to currently determine all the moves in a reasonable amount of time.

Kibbee
It can be done, but can it be done on a computer we are likely to ever see?
BCS
Probably not in our lifetime. All of the really interesting research in the field is being done in the game Go. :)
Bill the Lizard
IIRC most 6 year olds can be any computer at Go.
BCS
It took 18 years to calculate the 500 Billion positions for perfect checkers. Cool stuff http://www.cs.ualberta.ca/~chinook/
@BCS: Not anymore. The best Go programs are beating dan (professional) level players now.
Bill the Lizard
WOW! Link? and with what kind of hardware?
BCS
@BCS: Here you go http://www.usgo.org/index.php?%23_id=4602
Bill the Lizard
Once Chess is solved, they'll have to work on Go. Go has simpler rules, but is a many orders of magnitude larger problem than chess.
lkessler
@Bill: The best Go programs can sometimes beat Dan players on 9x9 (recreational) boards. Computers are nowhere near beating them on the usual 19x19 boards - the [best a computer has ever done](http://en.wikipedia.org/wiki/Go_%28game%29#Software_players) against a professional is win with 9 handicap, the largest handicap typically given.
BlueRaja - Danny Pflughoeft
@BlueRaja: That was in 2008. I don't know what the current record is, but MoGo has beaten pros with 6 and 7 stones on a 19x19. http://ireport.cnn.com/docs/DOC-214010
Bill the Lizard
+3  A: 

I think you are dead on. Machines like Deep Blue and Deep Thought are programmed with a number of predefined games, and clever algorithms to parse the trees into the ends of those games. This is, of course, a dramatic oversimplification. There is always a chance to "beat" the computer along the course of a game. By this I mean making a move that forces the computer to make a move that is less than optimal (whatever that is). If the computer cannot find the best path before the time limit for the move, it might very well make a mistake by choosing one of the less-desirable paths.

There is another class of chess programs that uses real machine learning, or genetic programming / evolutionary algorithms. Some programs have been evolved and use neural networks, et al, to make decisions. In this type of case, I would imagine that the computer might make "mistakes", but still end up in a victory.

There is a fascinating book on this type of GP called Blondie24 that you might read. It is about checkers, but it could apply to chess.

Jason Jackson
That's how you beat today's computers at chess. Tomorrow's will be better. I do agree with you, though, that Blondie24 is fascinating.
Bill the Lizard
Voted back up. This post doesn't deserve a negative score.
Cybis
Unfortunately, the chess game problem is too large for machine learning to work. They could never get a learning chess program to even play novicely without blunders. Heuristics are better. But Brute Force was even better. The field of Machine learning only learned from its failure with chess.
lkessler
Chess programs don't make short term mistakes, and the best programs play better then world champions. I think the latest version of Rybka 64 bit is rated like 3200 ELO
windfinder
+5  A: 

Some games have, in fact, been solved. Tic-Tac-Toe is a very easy one for which to build an AI that will always win or tie. Recently, Connect 4 has been solved as well (and shown to be unfair to the second player, since a perfect play will cause him to lose).

Chess, however, has not been solved, and I don't think there's any proof that it is a fair game (i.e., whether the perfect play results in a draw). Speaking strictly from a theoretical perspective though, Chess has a finite number of possible piece configurations. Therefore, the search space is finite (albeit, incredibly large). Therefore, a deterministic Turing machine that could play perfectly does exist. Whether one could ever be built, however, is a different matter.

Cybis
+46  A: 

"I argued that there could not exist a deterministic Turing machine that always won or stalemated at chess."

You're not quite right. There can be such a machine. The issue is the hugeness of the state space that it would have to search. It's finite, it's just REALLY big.

That's why chess falls back on heuristics -- the state space is too huge (but finite). To even enumerate -- much less search for every perfect move along every course of every possible game -- would be a very, very big search problem.

Openings are scripted to get you to a mid-game that gives you a "strong" position. Not a known outcome. Even end games -- when there are fewer pieces -- are hard to enumerate to determine a best next move. Technically they're finite. But the number of alternatives is huge. Even a 2 rooks + king has something like 22 possible next moves. And if it takes 6 moves to mate, you're looking at 12,855,002,631,049,216 moves.

Do the math on opening moves. While there's only about 20 opening moves, there are something like 30 or so second moves, so by the third move we're looking at 360,000 alternative game states.

But chess games are (technically) finite. Huge, but finite. There's perfect information. There are defined start and end-states, There are no coin-tosses or dice rolls.

S.Lott
All endgames with 6 pieces or less have been enumerated and solved. See tablebase and bitbase here: http://en.wikipedia.org/wiki/Tablebase. For example, there's a KQNKRBN endgame where 517 moves are required to force a mate! But the total number of chess games is around (10^(10^50)).
RoadWarrior
Scripted to win is one thing. Exhaustively enumerated is a different thing. Either way, the information is perfect -- everything is known -- the game is deterministic by definition.
S.Lott
The weather is also theoretically deterministic - but this is another problem that we'll never "solve" because of the number of variables involved and its non-linearity.
RoadWarrior
@RoadWarrior: disagree. Random applies to weather. God rolls dice. Random doesn't apply to chess -- by definition. Chess has complete information. Weather has quantum effects -- it can't be complete.
S.Lott
What makes the weather difficult to forecast are the chaotic non-linear factors, not any quantum effects. Given enough computing power and knowledge, We could in theory create a "correct" weather forecast.
RoadWarrior
@RoadWarrior: In which case, the entire universe is (a) deterministic and (b) I have no free will, my answers are entirely determined by the history of the universe to date. Not sure I like that. I prefer random.
S.Lott
No, that doesn't follow. The reason that the weather could in theory be predicted for the near future is that quantum effects have a *very* low probability of affecting your forecast significantly on this timescale.
RoadWarrior
To make it more clear, the nn-linear chaotic effects are far more significant (for your forecast) than the quantum effects.
RoadWarrior
Let me make this clear. Chess has finite, known, limited rules. Weather doesn't even have "rules". The best you can do is theorize and model what you observe. Chess is by definition finite and complete. Weather is not finite except in the sense that the universe is "finite".
S.Lott
Computers today are better than people. The algorithms and processors now get them to search intelligently the most correct lines and slightly deeper than the best Grandmasters do. Their opening books and end games are near perfect and they "see" most traps easily.
lkessler
@lkessler: the question isn't "deeper" -- it's "perfect". Is there a perfect view of all possible future positions. There is for tic-tac-toe. Chess can theoretically have a complete and perfect view of all future positions; practically it's hard to do.
S.Lott
@S.Lott: Not sure now why I decided on my comment. I thought it was in response to another comment. At any rate, ignore my comment and instead see my answer to your question.
lkessler
@lkessler: (1) you can delete comments -- it's better than apologizing or explaining. (2) it's not my question.
S.Lott
@S.Lott:I'm not sure how 'Free Will' could sit on top of a Random Universe any better than on a Determined Universe[who is making the decisions?].If you haven't read 'Freedom Evolves' by Dan C.Dennet,I would recommend it-he coins the phrase 'evitability':he argues that an agent living in a deterministic Universe is still able to make decisions which affect it's future. I don't really get it,but it makes for an interesting read-he uses J Conway's Life to illustrate it.[also,if you haven't already:"Shadows of the Mind",R.Penrose-again I don't really get it :-) , but interesting]
monojohnny
@monjohnny: perhaps interesting, but irrelevant for chess and this question. Chess is finite. The metaphysical debate between determinism and free will doesn't apply to the fact that the chess game space is finite.
S.Lott
@S.Lott.You could be right,but I'm not sure this has been proved.I agree that there are a fixed number of 'states'-But there are sequences of moves which could keep the game going forever-a simplistic example would be for player A to move a knight back and forth between two positions-player B responding with an equivalent move:we can spot this easy-since the board-state would re-occur every 4 gens.Perhaps there are repeating patterns that take orders of magnitude longer to complete:if so the algorithm would have to know about them as well.Maybe infinite-repeating (or near repeating) patterns?
monojohnny
In addition, I don't mean that the algorithm/player would be cycling moves on purpose in an endless loop. I'm just postulating that if these cycles do exist, then the players could get caught in an infinite loop: unless they track all the moves in-game to date - which would require infinite memory. [the algorithm could not know that the patterns will continue to repeat - it cannot infer the player's next move].
monojohnny
I think what I'm trying to say: Chess is Finite in space, but possibly not in time....whoaooooaaa maaannn heavy....
monojohnny
@monojohnny: The rules forbid three repetitions of the same position. Chess is simply finite. It's large but finite.
S.Lott
Didn't realise that, but you are right about that rule.http://en.wikipedia.org/wiki/Threefold_repetition
monojohnny
@S.Lott: The more important rule here is the one stating that fifty moves without a pawn move or capture is a draw (and there's at least one exception to that, but it's still finite).
David Thornley
+17  A: 

It has been proven for the game of checkers that a program can always win or tie the game. That is that there is no choice of moves that one player can make that force the other into loosing.

The researchers spent almost two decades going through the 500 billion billion possible checkers positions, which is still an infinitesimally small fraction of the number of chess positions, by the way. The checkers effort included top players, who helped the research team program checkers rules of thumb into software that categorized moves as successful or unsuccessful. Then the researchers let the program run, on an average of 50 computers daily. Some days, the program ran on 200 machines. While the researchers monitored progress and tweaked the program accordingly. In fact, Chinook beat humans to win the checkers world championship back in 1994.

Yes, you can solve chess, no, you won't any time soon.

BCS
That's really cool. I didn't know Checkers was solved too.
Cybis
Kibbee got it in first :)
BCS
"[Y]ou won't an y time soon" is a bit of an understatement. Besides the limit of the expected duration of the universe, you've got a storage issue-- the number of states in Chess far exceeds the 500 billion billion of checkers; in fact, it exceeds the number of particles in the universe.
Michael Dorfman
RJFalconer
"[...]in fact, it exceeds the number of particles in the universe.". As long as it does not exceed the number of states of the particles in the universe, there is still hope ;-)
Carsten
When you start talking about numbers that large, you more or less ignore anything but the exponent, so when someone says chess has more states than there are particles in the universe, it's a reasonably safe bet that it's more by several orders of magnitude.
BCS
The number of particles in the universe is not known, but it must be huge... It includes photons, electrons, etc. The number of their possible states is even larger.A commonly stated lower bound on the number of atoms in the observable universe is 10^80. (10^80 - 1) as a base 10 number takes up exactly one MS-DOS command line. (10^80 - 1)^25 fits on a single screen.
fishlips
A: 

if you search the entire space of all combinations of player1/2 moves, the single move that the computer decides upon at each step is based on a heuristic.

There are two competing ideas there. One is that you search every possible move, and the other is that you decide based on a heuristic. A heuristic is a system for making a good guess. If you're searching through every possible move, then you're no longer guessing.

Joel Coehoorn
Actually, the quote is right. Programs look at all possible moves for both sides in the *current* position, and use heuristics to find a good move to drive the game in the direction of a favorable position for the computer.
Bill the Lizard
No, they don't look at all possible moves. They use a null-move heuristic to prune the treee.
windfinder
+2  A: 

From game theory, which is what this question is about, the answer is yes Chess can be played perfectly. The game space is known/predictable and yes if you had you grandchild's quantum computers you could probably eliminate all heuristics.

You could write a perfect tic-tac-toe machine now-a-days in any scripting language and it'd play perfectly in real-time.

Othello is another game that current computers can easily play perfectly, but the machine's memory and CPU will need a bit of help

Chess is theoretically possible but not practically possible (in 2008)

i-Go is tricky, it's space of possibilities falls beyond the amount of atoms in the universe, so it might take us some time to make a perfect i-Go machine.

Robert Gould
+2  A: 

Chess is an example of a matrix game, which by definition has an optimal outcome (think Nash equilibrium). If player 1 and 2 each take optimal moves, a certain outcome will ALWAYS be reached (whether it be a win-tie-loss is still unknown).

Jon Smock
A: 

It just might be solvable, but something bothers me: Even if the entire tree could be traversed, there is still no way to predict the opponent's next move. We must always base our next move on the state of the opponent, and make the "best" move available. Then, based on the next state we do it again. So, our optimal move might be optimal iff the opponent moves in a certain way. For some moves of the opponent our last move might have been sub-optimal.

I just fail to see how there could be a "perfect" move in every step.

For that to be the case, there must for every state [in the current game] be a path in the tree which leads to victory, regardless of the opponent's next move (as in tic-tac-toe), and I have a hard time figuring that.

E Dominique
The perfect move is decided by the 'minmax' strategy: It's the move that maximises your minimum possible score (given all possible moves the opponent could make). Or to put it another way, it assumes the opponent also plays perfectly.
Nick Johnson
This is an interesting point though. Could a situation arise where a response to the best possible move would put you at a disadvantage if your opponent does not take the best possible move? What implications does this have?
Nona Urbiz
I'm not mathematician and not a very good chess-player; I also assumed that in theory (should the entire game tree be known) that the answer to this is 'yes'. However , now that you mention this problem [the other player's choice], does this mean the system is potentially unpredictable? Are there mid-point in the game where the other player could force a disadvantage? Is this a bit like the fact that the Perceptron(Neural Net) can learn 'OR' and 'AND' but can never grasp 'XOR' ? Is Chess an example of 'Chaotic' system ? FWIW, IMHO I think the answer seems to be 'dunno' at this point.
monojohnny
@Nona By definition, that move would be the best move. There is no assumption.
piccolbo
+4  A: 

I'm coming to this thread very late, and that you've already realised some of the issues. But as an ex-master and an ex-professional chess programmer, I thought I could add a few useful facts and figures. There are several ways of measuring the complexity of chess:

  • The total number of chess games is approximately 10^(10^50). That number is unimaginably large.
  • The number of chess games of 40 moves or less is around 10^40. That's still an incredibly large number.
  • The number of possible chess positions is around 10^46.
  • The complete chess search tree (Shannon number) is around 10^123, based on an average branching factor of 35 and an average game length of 80.
  • For comparison, the number of atoms in the observable universe is commonly estimated to be around 10^80.
  • All endgames of 6 pieces or less have been collated and solved.

My conclusion: while chess is theoretically solvable, we will never have the money, the motivation, the computing power, or the storage to ever do it.

RoadWarrior
C'mon. You have to think of the problem differently. Don't think of the number of games, because transpositions and alpha-beta algorithms and such cut that back immensely. Think of board positions (10^60) or combinations of chess pieces (100 million). With Quantum Computing, it's trivial.
lkessler
Alpha-beta in this context (solving chess) would require a perfect evaluation function. So does board positions and piece combinations. We don't have a perfect evaluation function, so quantum computing doesn't help us.
RoadWarrior
Anytime that I think that something is "trivial", and I'm sure that no one's already done it, I'm also sure I've been wrong at least once.
Dean J
Good comment, one quibble: the game tree complexity, i.e., how big the search tree for chess is, is a better measure of the complexity of chess, which is the Shannon number, in the order of 10^120.
Charles Stewart
@RoadWarrior: How do you calculate the total number of games? I suppose you're ignoring cases of cycles? Also, have you got some general links to chess programming resources? I'm intrigued...
Carlos
@lkessler: Board positions don't tell the whole story. At least some history of the game is necessary for castling or en passant captures or draw due to lack of capture or pawn move, and the whole history for draw by repetition. Moreover, since it was a notable research result recently for a quantum computer to factor 15, I'd say nothing's trivial with quantum computing right now.
David Thornley
For comparison here, if you can generate all possible chess positions you can trivially brute-force any cipher with a 128-bit key, since 10^46 is about 2^152 or 2^153. There are excellent reasons to think this is impossible before the heat death of the Universe.
David Thornley
+4  A: 

As a chess programmer from the 1970's, I definitely have an opinion on this. What I wrote up about 10 years ago, still is basically true today:

"Unfinished Work and Challenges to Chess Programmers"

Back then, I thought we could solve Chess conventionally, if done properly.

Checkers was solved recently (Yay, University of Alberta, Canada!!!) but that was effectively done Brute Force. To do chess conventionally, you'll have to be smarter.

Unless, of course, Quantum Computing becomes a reality. If so, chess will be solved as easily as Tic-Tac-Toe.

In the early 1970's in Scientific American, there was a short parody that caught my attention. It was an announcement that the game of chess was solved by a Russian chess computer. It had determined that there is one perfect move for white that would ensure a win with perfect play by both sides, and that move is: 1. a4!

lkessler
+21  A: 

I know next to nothing about what's actually been discovered about chess. But as a mathematician, here's my reasoning:

First we must remember that White gets to go first and maybe this gives him an advantage; maybe it gives Black an advantage.

Now suppose that there is no perfect strategy for Black that lets him always win/stalemate. This implies that no matter what Black does, there is a strategy White can follow to win. Wait a minute - this means there is a perfect strategy for White!

This tells us that at least one of the two players does have a perfect strategy which lets that player always win or stalemate.

There are only three possibilities, then:

  • White can always win if he plays perfectly
  • Black can always win if he plays perfectly
  • One player can win or stalemate if he plays perfectly (and if both players play perfectly then they always stalemate)

But which of these is actually correct, we may never know.

The answer to the question is yes: there must be a perfect algorithm for chess, at least for one of the two players.

Artelius
+1, That is a really great way of explaining it. I can't believe I never thought of that!
Zifre
Why does black having no perfect strategy imply that white does have a perfect strategy? What about both players having no perfect strategy? If your implication was true, wouldn't it be true of every 2 player game, meaning every game has a perfect strategy?
john
@john: Because chess has perfect information and no random elements (unlike many, many other 2-player games), the only way it is possible for no perfect strategy for black to exist would be if white can force a win despite any attempt by black - in other words, if there is a perfect strategy for white.
Dave Sherohman
@Dave Sherohman: correct me if I'm wrong then, but if what you said is true isn't this topic as simple as "Perfect Information and No Randomness therefore Perfect Strategy exists"? If that's true, why so much discussion here?
john
@john: Pretty much. I posted this answer because the others didn't really give reasoning for why this were true.
Artelius
Actually this logic [doesn't always hold](http://stackoverflow.com/questions/297577/is-there-a-perfect-algorithm-for-chess/3302316#3302316), but is it true in this case.
BlueRaja - Danny Pflughoeft
A: 

Of course There's only 10 to the power of fifty possible combinations of pieces on the board. Having that in mind, to play to every compibation, you would need make under 10 to the power of fifty moves (including repetitions multiply that number by 3). So, there's less than ten to the power of one hundred moves in chess. Just pick those that lead to checkmate and you're good to go

Alex
A: 

I'm only 99.9% convinced by the claim that the size of the state space makes it impossible to hope for a solution.

Sure, 10^50 is an impossibly large number. Let's call the size of the state space n.

What's the bound on the number of moves in the longest possible game? Since all games end in a finite number of moves there exists such a bound, call it m.

Starting from the initial state, can't you enumerate all n moves in O(m) space? Sure, it takes O(n) time, but the arguments from the size of the universe don't directly address that. O(m) space might not even be very much. For O(m) space couldn't you also track, during this traversal, whether the continuation of any state along the path you are traversing leads to EitherMayWin, EitherMayForceDraw, WhiteMayWin, WhiteMayWinOrForceDraw, BlackMayWin, or BlackMayWinOrForceDraw? (There's a lattice depending on whose turn it is, annotate each state in the history of your traversal with the lattice meet.)

Unless I'm missing something, that's an O(n) time / O(m) space algorithm for determining which of the possible categories chess falls into. Wikipedia cites an estimate for the age of the universe at approximately 10^60th Planck times. Without getting into a cosmology argument, let's guess that there's about that much time left before the heat/cold/whatever death of the universe. That leaves us needing to evaluate one move every 10^10th Planck times, or every 10^-34 seconds. That's an impossibly short time (about 16 orders of magnitude shorter than the shortest times ever observed). Let's optimistically say that with a super-duper-good implementation running on top of the line present-or-forseen-non-quantum-P-is-a-proper-subset-of-NP technology we could hope to evaluate (take a single step forward, categorize the resulting state as an intermediate state or one of the three end states) states at a rate of 100 MHz (once every 10^-8 seconds). Since this algorithm is very parallelizable, this leaves us needing 10^26th such computers or about one for every atom in my body, together with the ability to collect their results.

I suppose there's always some sliver of hope for a brute-force solution. We might get lucky and, in exploring only one of white's possible opening moves, both choose one with much-lower-than-average fanout and one in which white always wins or wins-or-draws.

We could also hope to shrink the definition of chess somewhat and persuade everyone that it's still morally the same game. Do we really need to require positions to repeat 3 times before a draw? Do we really need to make the running-away party demonstrate the ability to escape for 50 moves? Does anyone even understand what the heck is up with the en passant rule? ;) More seriously, do we really need to force a player to move (as opposed to either drawing or losing) when his or her only move to escape check or a stalemate is an en passant capture? Could we limit the choice of pieces to which a pawn may be promoted if the desired non-queen promotion does not lead to an immediate check or checkmate?

I'm also uncertain about how much allowing each computer hash-based access to a large database of late game states and their possibly outcomes (which might be relatively feasible on existing hardware and with existing endgame databases) could help in pruning the search earlier. Obviously you can't memoize the entire function without O(n) storage, but you could pick a large integer and memoize that many endgames enumerating backwards from each possible (or even not easily provably impossible, I suppose) end state.

Doug McClean
+1  A: 

"Is there a perfect algorithm for chess?"

Yes there is. Maybe it's for White to always win. Maybe it's for Black to always win. Maybe it's for both to always tie at least. We don't know which, and we'll never know, but it certainly exist.

See also

polygenelubricants
A: 

I know this is a bit of a bump, but I have to put my 5 cents worth in here. It is possible for a computer, or a person for that matter, to end every single chess game that he/she/it participates in, in either a win or a stalemate.

To achieve this, however, you must know precisely every possible move and reaction and so forth, all the way through to each and every single possible game outcome, and to visualize this, or to make an easy way of analyising this information, think of it as a mind map that branches out constantly.

The center node would be the start of the game. Each branch out of each node would symbolize a move, each one different to its bretheren moves. Presenting it in this manor would take much resources, especially if you were doing this on paper. On a computer, this would take possibly hundreds of Terrabytes of data, as you would have very many repedative moves, unless you made the branches come back.

To memorize such data, however, would be implausable, if not impossible. To make a computer recognize the most optimal move to take out of the (at most) 8 instantly possible moves, would be possible, but not plausable... as that computer would need to be able to process all the branches past that move, all the way to a conclusion, count all conclusions that result in a win or a stalemate, then act on that number of wining conclusions against losing conclusions, and that would require RAM capable of processing data in the Terrabytes, or more! And with todays technology, a computer like that would require more than the bank balance of the 5 richest men and/or women in the world!

So after all that consideration, it could be done, however, no one person could do it. Such a task would require 30 of the brightest minds alive today, not only in chess, but in science and computer technology, and such a task could only be completed on a (lets put it entirely into basic perspective)... extremely ultimately hyper super-duper computer... which couldnt possibly exist for at least a century. It will be done! Just not in this lifetime.

Raptor Jesus
+1  A: 

The average $1000 desktop will be able to solve checkers in a mere 5 seconds by the year 2040 (5x10^20 calculations).

Even at this speed, it would still take 100 of these computers approximately 6.34 x 10^19 years to solve chess. Still not feasible. Not even close.

Around 2080, our average desktops will have approximately 10^45 calculations per second. A single computer will have the computational power to solve chess in about 27.7 hours. It will definitely be done by 2080 as long as computing power continues to grow as it has the past 30 years.

By 2090, enough computational power will exist on a $1000 desktop to solve chess in about 1 second...so by that date it will be completely trivial.

Given checkers was solved in 2007, and the computational power to solve it in 1 second will lag by about 33-35 years, we can probably roughly estimate chess will be solved somewhere between 2055-2057. Probably sooner since when more computational power is available (which will be the case in 45 years), more can be devoted to projects such as this. However, I would say 2050 at the earliest, and 2060 at the latest.

In 2060, it would take 100 average desktops 3.17 x 10^10 years to solve chess. Realize I am using a $1000 computer as my benchmark, whereas larger systems and supercomputers will probably be available as their price/performance ratio is also improving. Also, their order of magnitude of computational power increases at a faster pace. Consider a supercomputer now can perform 2.33 x 10^15 calculations per second, and a $1000 computer about 2 x 10^9. By comparison, 10 years ago the difference was 10^5 instead of 10^6. By 2060 the order of magnitude difference will probably be 10^12, and even this may increase faster than anticipated.

Much of this depends on whether or not we as human beings have the drive to solve chess, but the computational power will make it feasible around this time (as long as our pace continues).

On another note, the game of Tic-Tac-Toe, which is much, much simpler, has 2,653,002 possible calculations (with an open board). The computational power to solve Tic-Tac-Toe in roughly 2.5 (1 million calculations per second) seconds was achieved in 1990.

Moving backwards, in 1955, a computer had the power to solve Tic-Tac-Toe in about 1 month (1 calculation per second). Again, this is based on what $1000 would get you if you could package it into a computer (a $1000 desktop obviously did not exist in 1955), and this computer would have been devoted to solving Tic-Tac-Toe....which was just not the case in 1955. Computation was expensive and would not have been used for this purpose, although I don't believe there is any date where Tic-Tac-Toe was deemed "solved" by a computer, but I'm sure it lags behind the actual computational power.

Also, take into account $1000 in 45 years will be worth about 4 times less than it is now, so much more money can go into projects such as this while computational power will continue to get cheaper.

Frank
"Did you know that disco record sales were up 400% for the year ending 1976? If these trends continue... AAY!" -- Disco Stu
Jeremy Friesner
Moore's law - Computing power doubles every 18 months - is likely to fail around 2015. Or computer processor design will have to be radically different. So 2080 is not a realistic target.
Philip Smith
@Philip: Processor clock speeds of desktop computers have increased only slightly since 2003, and enhancements since then have mostly been increased cache and multiple cores. Since a 3 GHz processor has one clock cycle in the time it takes light to move 4 inches/10 cm, clock speed can't be expected to increase indefinitely. Moreover, parallelism is typically hard. Projecting exponential increase for fifty years when it started breaking down seven years ago doesn't seem like a safe bet.
David Thornley
@David - that is all true. But misses the point. If you half the size of the components on the chip, the electrons get twice as much done at the same clock speed. This is what fuels Moore's law.
Philip Smith
@Philip: The halving cannot of course go on forever. A silicon atom is about a quarter of a nanometer across, and chip fabrication is already down to tens of nanometers. Moreover, at quantum levels particles obey statistical rules, not absolute rules, so it's necessary to move around enough electrons at a time to invoke the law of large numbers. So far, Moore's law has been somewhere between a law and a self-fulfilling prophecy, but that's ending sometime fairly soon.
David Thornley
@David I believe that was my original point. 2015 is the expected date that photo lithography will no longer cope with the small sizes.
Philip Smith
A: 

I found this article by John MacQuarrie that references work by the "father of game theory" Ernst Friedrich Ferdinand Zermelo. It draws the following conclusion:

In chess either white can force a win, or black can force a win, or both sides can force at least a draw.

The logic seems sound to me.

Ben Gartner
+3  A: 

It actually is possible for both players to have winning strategies in infinite games with no well-ordering; however, chess is well-ordered. In fact, because of the 50-move rule, there is an upper-limit to the number of moves a game can have, and thus there are only finitely many possible games of chess (which can be enumerated to solve exactly.. theoretically, at least :)

BlueRaja - Danny Pflughoeft