The Mathematics of Chess (Combinatorial Game Theory)

Chess is a game of perfect information with no randomness, no hidden cards, and a finite board. By the standards of game theory it should be solvable — and in principle it is. The mathematics of chess sits inside combinatorial game theory: a branch dedicated to perfect-information sequential games. The catch is the size. Chess’s game tree contains more positions than there are atoms in the observable universe, which is why we can prove the game has an optimal strategy without ever being able to compute it.
Key takeaways
- Chess is a finite, perfect-information, zero-sum game with no chance elements — the kind game theory loves.
- Zermelo’s theorem (1913) proves chess has a determined outcome under perfect play, but doesn’t tell us what it is.
- Shannon’s number — roughly 10^120 — is the estimated game tree complexity of chess.
- The 50-move rule and the three-fold repetition rule are what make chess finite at all.
- Endgames with 7 or fewer pieces are fully solved (Lomonosov tablebases); 8-piece endgames are not.
The game-theoretic classification
Game theory classifies chess as a two-player, finite, perfect-information, zero-sum, sequential game. Each of those properties matters:
- Two-player: only White and Black act.
- Finite: the 50-move rule and three-fold repetition rule cap the total number of positions reachable in any single game.
- Perfect information: both players see the full board at every move. No hidden state, no shuffled deck.
- Zero-sum: White’s win is Black’s loss; a draw is a tie.
- Sequential: players alternate moves rather than committing simultaneously.
These five properties put chess in the same class as checkers, Connect Four, Nim, and Go. Game theory has strong results for this class — strongest of all is Zermelo’s theorem.
Zermelo’s theorem
Ernst Zermelo proved in 1913 that any finite two-player game of perfect information has a determined outcome under perfect play. One player can force a win, or one can force a draw, or the result is a draw with both sides playing optimally. There is no fourth case.
For chess, the theorem says one of three statements is true: White can force a win against any Black defense; Black can force a win against any White attack; the game is a forced draw with best play on both sides. Most chess theorists believe the answer is the third (a forced draw), but it has not been proven and may never be.
Shannon’s number
Claude Shannon estimated in 1950 that the chess game tree contains roughly 10^120 nodes. This estimate — known as Shannon’s number — is a lower bound on the complexity of solving chess by brute force. For comparison:
- Atoms in the observable universe: about 10^80.
- Microseconds since the Big Bang: about 10^24.
- Possible bridge hands: about 10^28.
- Chess game tree (Shannon’s number): about 10^120.
The number is so large that no conceivable computer could enumerate it. Even a perfect computer working at quantum speed limits couldn’t search the tree in the lifetime of the universe. Chess is mathematically determined and computationally untouchable in the same breath.
Game tree complexity vs. state space complexity
Two different numbers describe chess. State-space complexity counts distinct positions the board can reach (roughly 10^46 for chess). Game-tree complexity counts distinct sequences of moves that can produce a game (Shannon’s 10^120). The game tree is much larger because the same position can be reached through many different move orders, and each path is a separate node in the tree.
Most solving approaches care about the state space (you only need to evaluate each unique position once). Even at 10^46, the state space is far beyond enumeration. Tablebases handle small endgame positions because the state space of, say, 7-piece endings is in the trillions — large but storable.
Tablebases: chess solved at the endgame
An endgame tablebase is a database of every legal position with a given small number of pieces, each annotated with the perfect outcome. Tablebases up to 7 pieces (the Lomonosov tablebases, released 2012-2018) are complete — every 7-piece position has been computed to game-theoretic perfection.
The 7-piece tablebases revealed surprising results. Some positions require over 500 moves to convert from a winning advantage to checkmate. The 50-move rule (which forces a draw if no pawn moves or captures occur for 50 moves) breaks several long-winning positions back into draws. The community has discussed whether the 50-move rule should be extended for known long wins, but no rule change has been adopted.
Going from 7-piece to 8-piece tablebases would require computing storage in the petabyte range. It hasn’t been done yet, but is in principle achievable as compute and storage costs fall.
The branching factor
The average branching factor in chess (number of legal moves available at a typical position) is around 35. The average game length is around 40 moves (each side). That gives 35^80 ≈ 10^123 — close to Shannon’s estimate, with refinements for early-game and endgame variations producing the 10^120 figure.
The branching factor is what makes chess engines so impressive. Modern engines (Stockfish, AlphaZero, Leela) don’t search the full tree — they prune aggressively using evaluation functions and selective search. Stockfish on a normal computer evaluates millions of positions per second and reaches search depths of 30+ ply (15 full moves) in tournament time controls.
Chess engines and perfection
The strongest engines play above the level of any human and beat each other only in narrow tactical margins. The Computer Chess Rating Lists (CCRL) put top engines well above 3500 Elo, several hundred Elo points above the strongest human grandmaster.
But none of this is mathematical perfection. The engines search deep, evaluate well, and prune intelligently — but they still don’t know whether chess is a forced draw or a forced win. They play empirically, not deductively. The Zermelo theorem is still unfulfilled.
Solving chess: where the math stands
Checkers was solved in 2007 by the Chinook project. The result: a draw with perfect play on both sides. Solving checkers required nearly two decades of work on a state space far smaller than chess’s.
Solving chess is not on any reasonable timeline. The state space is 10^46. Even storing one bit per position would require 10^46 bits — vastly more storage than exists in the universe. Solving chess by brute force is not a hard problem; it’s an impossible one given known physics.
What might be possible: a proof of the game’s outcome by inductive argument that doesn’t require enumerating every position. No such proof exists yet. The mathematical chess community considers it deeply unlikely but not strictly impossible.
Why the 50-move and threefold repetition rules matter mathematically
Without rules that force a game to end, chess would not be finite. Two kings could shuffle around an empty board forever. The 50-move rule (50 moves without a pawn move or capture forces a draw claim) and threefold repetition rule (the same position occurring three times allows a draw claim) are the mathematical guarantees that any chess game ends.
Without them, Zermelo’s theorem wouldn’t apply because the game would be infinite in some paths. The rules look procedural; they’re actually foundational.
The connection to combinatorial game theory
Combinatorial game theory studies games like chess, Nim, Hackenbush, and Go using algebraic structures called surreal numbers. Chess as a whole is too complex for direct CGT analysis, but specific endgame configurations and constructed positions can be analyzed using CGT tools. The field’s most famous result is John Conway’s “On Numbers and Games” (1976), which establishes the framework that lets CGT specialists assign exact game-theoretic values to positions in simpler games and approximate values in chess endings.
For broader context on chess’s history and the engine era, see the game complexity Wikipedia article, and our games like chess list for related strategy games.
Frequently asked questions
Is chess solved?
No. Endgames with 7 or fewer pieces are fully solved via tablebases. The full game has not been solved and cannot be solved by brute force given the size of the game tree (Shannon’s number, roughly 10^120). A proof by induction is conceivable but not in any reasonable timeline.
What is Shannon’s number?
An estimate of the chess game-tree complexity — about 10^120 possible game continuations. Claude Shannon proposed it in 1950 as a lower bound on the difficulty of brute-force chess solving. It exceeds the number of atoms in the observable universe by 40 orders of magnitude.
What does Zermelo’s theorem say about chess?
The 1913 theorem proves that chess, as a finite zero-sum game of perfect information, has a determined outcome under perfect play. Either White can force a win, Black can force a win, or the game is a forced draw. The theorem doesn’t tell us which case applies, only that one of them does.
Why isn’t chess a draw by perfect play according to engines?
Engines don’t play perfect chess — they play deeply searched, heuristically pruned chess. Top engines reach draws against each other in roughly 95% of games at long time controls, which is consistent with chess probably being a forced draw but doesn’t prove it.
How big is the chess game tree?
Shannon’s estimate is 10^120 nodes. State-space complexity (distinct positions) is around 10^46. Both are unimaginably large, but the state-space figure is the one that matters for tablebase-style enumeration approaches.
The bottom line
The mathematics of chess sits between certainty and impossibility. We know the game has a determined outcome under perfect play. We can’t compute that outcome and likely never will. Tablebases solve the endgame; engines play the middle game heuristically; the full game is mathematical territory unmapped and probably unmappable. For a perfect-information game with a much smaller state space, the Chrome Dino game at the top of this page has exactly one decision per cactus — jump or don’t.








