Constraint-based algorithm of chess

Design team member: Marko Dodig

Supervisor: Prof. Catherine M. Burns

Background

Chess is one of the oldest and most popular board games. Computer development in last twenty years has created a new generation of chess players - computer chess engines. Current chess algorithms adopt slight modifications of the brute force approach, choosing an optimum solution by looking at almost every combination of moves in order to select and examine only a subset of all the available moves. Human chess players, on the other hand, select only several moves that are viewed as promising, and work only on further evaluation of those moves.

Even though computer chess engines can perform larger number of different moves' evaluations, the best human chess players however still rival the best computer chess engines. There is a belief, therefore, that a progress can be made in combining the efficiency and the computational ability of the machines with the understanding of strategy fundamentals characteristic only to humans.

Project description

Chess games are analyzed for two important reasons - to understand why players made the moves they made, and how particular moves determine the outcome of a game. These are extremely important in improving the quality level at which the game of chess is played, since particular chess situations repeat themselves in different games. Without the board analysis, computers wouldn't be able to evaluate the quality of each board configuration, and to determine the best next move.

Chess analysis is always performed through the analysis of a single board position. This analysis indicates the following components that characterize a particular chess board position:

The number of pieces remaining for each player
This involves a simple count of pieces each player has left on the board.

The quality of pieces remaining for each player
This characteristic represents an assessment of the offensive potential that the pieces remaining on the board have. It essentially involves counting how many lines of power each piece has.

The quality of the position for each player
This is an overall evaluation of the offensive potential of the pieces and the actual placement of the pieces for each player. This is the most important characteristic of the chess board position because it determines who has a better potential chance of winning.

A set of 'good moves' player at move can make
This characteristic is evaluated through finding all the moves that would result in an improvement in the quality of the position for the player at move.

The 'best move' player at move can make
This involves finding the move that would result in the best improvement in the quality of the position for the player at move.

Within this project we will try to identify why humans are still able to rival computer moves' selections. It is this human player's ability to identify best moves that we will try to incorporate into an existing chess algorithm in order to improve its performance. This newly created chess algorithm will then be evaluated against its original algorithm through a series of chess games in order to determine whether an improvement has been made.

Design methodology

In order to identify what addition needs to be made to the computer chess algorithms to bring them closer to utilizing basic humans' chess strategies, the following design steps are to be followed:

  • Examination of the chess game (i.e. the rules of chess),

  • Examination of the human playing characteristics,

  • Examination of the current chess algorithms,

  • Comparison of the human and computer chess algorithms,

  • nd identification of the major differences,

  • Identification of the feasible improvements drawn from the major advantage humans have over computers in chess play,

  • Implementation of one the 'major' improvements into already existing chess algorithm - in case there are 'several 'major' improvements, the most promising improvement will be selected through the use of the evaluation matrix, and

  • New algorithm's testing and evaluation

Through the first part of the project it has been determined that humans are superior to computer chess algorithms in selecting the small set of 'good moves', which are the moves actually worth investigating to greater extents. It is this human algorithm characteristic that will be implemented in a computer chess algorithm, and then further tested and analyzed.