Application of Artificial Intelligence to Chess Playing

Download Report

Transcript Application of Artificial Intelligence to Chess Playing

Application of Artificial
Intelligence to Chess Playing
Jason Cook
Capstone Project
Outline



What this project is/isn't
Goals: Personal and Project
Relevant areas
 Decision


Requirements
Demonstration
 Interface


Trees, Bitboards, Evaluation Functions
and simple game play
Additional ideas/possible continuation
Validation
What it is/is not
Is:
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
Intelligence
- 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
speed
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
engine
Relevant Areas
Bitboards
– 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

Emprise
Evaluation Functions (cont.)

OSTRICH program literature
– “Head in the sand”

Predictability
– Theoretical weakness
– Behavior is affected by how much of the tree is
evaluated, etc.
Constraints

Runs on my personal desktop

Moves in less than one minute

Uses only free development tools
and information

Using C
(trees, bit-wise ops…)
Demonstration
Ideas for Further Work


Evolutionary reasoning for settings
GUI, WinBoard/XBoard compatibility, or
web interface

Beginning and/or endgame databases

Make the program “learn”
Validation


Works within project constraints and
meets high priority goals
Continual progress toward stronger AI
– Playing the engine against other engines
Conclusion



Only valid moves
Engine that balances power with
constraints
Elements of Intelligent Behavior
-
Can’t build the entire decision tree
-
Seek the best “visible” board
-
Tries to predict the human player’s moves
Questions?