Download Application of Artificial Intelligence to Chess Playing

yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Intelligence explosion wikipedia , lookup

Philosophy of artificial intelligence wikipedia , lookup

Artificial intelligence in video games wikipedia , lookup

Existential risk from artificial general intelligence wikipedia , lookup

Human–computer chess matches wikipedia , lookup

Computer chess wikipedia , lookup

History of artificial intelligence wikipedia , lookup

Computer Go wikipedia , lookup

Application of Artificial
Intelligence to Chess Playing
Jason Cook
Capstone Project
What this project is/isn't
Goals: Personal and Project
Relevant areas
 Decision
 Interface
Trees, Bitboards, Evaluation Functions
and simple game play
Additional ideas/possible continuation
What it is/is not
Chess engine
- Logic
Vehicle for investigating AI
Is not:
Full computer game
- GUI, saved games, teaching mode…
- Specialized hardware project e.g. Deep Blue
Personal Goals
Deepen my understanding of Artificial
- No employer/client context
Gain experience from a significant piece of
software engineering and coding, and
demonstrate my skills in those areas
Investigate optimizing the program for
High Priority Project Goals
No illegal moves
- Check user and computer moves
Engine never fails to produce a move
Continually improve the strength of the
Relevant Areas
– 64 bit unsigned integers
– Takes 12 to represent a chess board
– Bitwise operation speed advantage
Relevant Areas
Decision Trees
Plies, anytime algorithm, iterative deepening
Evaluation Functions
One score for each board in the Decision Tree
– Calculated independently
NegaMax and recursive descent
– Gets a single score back to the root
Credit for each of your pieces on the board,
negative for your opponent’s pieces
– Weightings per type of piece
Evaluation Functions (cont.)
OSTRICH program literature
– “Head in the sand”
– Theoretical weakness
– Behavior is affected by how much of the tree is
evaluated, etc.
Runs on my personal desktop
Moves in less than one minute
Uses only free development tools
and information
Using C
(trees, bit-wise ops…)
Ideas for Further Work
Evolutionary reasoning for settings
GUI, WinBoard/XBoard compatibility, or
web interface
Beginning and/or endgame databases
Make the program “learn”
Works within project constraints and
meets high priority goals
Continual progress toward stronger AI
– Playing the engine against other engines
Only valid moves
Engine that balances power with
Elements of Intelligent Behavior
Can’t build the entire decision tree
Seek the best “visible” board
Tries to predict the human player’s moves