Mid-Project Deliverables:
Design Review - Preparation and Framing
Background and Context
Chess AIs generally start with a min-max search algorithm which looks a certain number of moves ahead and evaluates
the board to find the best move. The "best move" is defined as the move which has the least risk associated with it,
where risk is the outcome with the most loss. Loss is often measured by giving a value to each piece, which is then
added or subtracted when that piece is captured or lost. There are some other methods of evaluating boards which are
discussed below.
Alpha-beta pruning is a meathod for speeding up the min-max algorithm by ignoring branches of the seach tree
which are obviously worse than already checked branches.
Evolutionary algorithms can be used to optimize min-max search algorithms by adjusting the weights of each piece
to improve the AI's chances of winning. This was the focus of Michael and Dennis' project last year, showing that
this project direction is within the scope of a soft-des project.
Another machine learning approach is neural networks. These have taken two different approaches in the past.
The first option is using a neural network to evaluate board positions, and tell whether or not it's good for
the player. Computers working this way still use the classic min-max strategy, but are simply supposed to do their
calculations more quickly. The other option is using a network to directly predict what move is best, rather than
just evaluating what board positions are best. These networks are much more interesting, and much faster, but also
more complicated to impliment.
Key Questions
Is it better to make our own basic AI and work from there, or start with someome else's and focus on extensions?
What is an interesting "new" direction to take chess AIs (for example, evolutionary algorithms for peice weights,
neural networks for more informative board evaluations, other cool ideas)?
Agenda
Introduce problem:
-Talk about how computers play chess
-computers are effient but play in a boring and computationally intensive manner
-We want to use a new approach to play chess in a more interesting manner
Ideation for ways to computationally play chass:
-Get some ideas for potential approaches before we give any background on existing algorithms
Discuss existing algorithms:
-Explain min-max searches and alpha-beta pruning
-pieces are weighted and lost/captured pieces are used to value moves
Explain ideas for improvements:
-Evolutionary algorithms
-improve weighting for pieces in min-max searching by optimizing the weights with evolutionary algorithms
-Neural networks
-Use a database of past chess games to decide on a move based on analysis of board positions.