Вы находитесь на странице: 1из 19

Claude Shannon

1950 paper:
Programming a Computer to Play Chess
Why chess? Instead we could program a
computer to…

1) Design filters and equalizers


2) Design switching circuits
3) Dynamically route phone calls
4) Perform symbolic mathematics
5) Translate between languages
6) Make (simplified) military strategy
7) Orchestrate a melody
8) Make logical deductions
Shannon: “Chess is generally considered to
require ‘thinking’ for skilful play; a solution of this
problem will force us either to admit the possibility
of a mechanized thinking or to further restrict our
concept of ‘thinking’.”
Alan Turing

What is intelligence?
When will a computer be intelligent?
Turing Machine = Algorithm
Universal Turing Machine = Computer

Given enough time and memory, any


computer can run any algorithm. So all
that is left of computer science is building
a faster computer, right?
Game Algorithm #1: Tree
Chess game-tree complexity:

(25)80 = 2400 ≈ 10120


Game Algorithm #2: Dictionary

1) Generate all positions with pointers to successor positions


2) Mark terminal positions won/lost/drawn
3) Loop through positions, marking won if any successor position is lost,
and lost if all successor positions are won
4) If any positions were marked, goto 3
5) Mark all remaining positions drawn
Chess state-space complexity:

More than 64!/(32!8!226) ≈ 1043


Actually ≈ 1050
Game Algorithm #3: Tree + Evaluation
Shannon speculates:

Algorithm #3 is too slow


Improved evaluation not enough
Must not search worthless branches
Must extend critical branches
Kasparov vs. Deep Blue, 1997

47 years later…
How did Deep Blue do it?
Was it intelligence?
Algorithmic improvement
1) Alpha-beta pruning
2) Null-move pruning
3) Iterative deepening
4) Quiescence search
5) Improved evaluation function
6) Move-ordering heuristics
7) Etc.

Speed improvement
1) Computers sixteen million times faster
Arimaa: thwart brute force

Four steps per turn, perhaps all different pieces,


makes a huge branching factor of about 16,000
≈ 214
Assume one million positions per second

Chess five-move search:


(25)(10/2) = 225 = 34 million = 34 seconds

Arimaa five-move search:


(214)(10/2) = 280 ≈ 1024 ≈ 31 billion years > lifetime
of universe
Arimaa Challenge
• $10,000 for world-beating software
• Must run on ordinary computer
• Must beat three humans 2-of-3
• Prize expires in 2020
State of the Arimaa Challenge

1) Humans need a month of study to beat top


computers
2) Top humans nearly three classes above
top computers
3) Alpha-beta searchers still beat all other
software approaches
4) Experimentation with self-taught eval,
monte-carlo eval, monte-carlo search,
forward pruning, plan-based search
Will computers need to be intelligent to win the
Arimaa Challenge?