You are on page 1of 7

Mobility Centred Evaluation in Chess Artificial

Intelligence for 64-bit Architectures


Paul Roche

October 15, 2009

1
Contents
1 Problem Description 3
1.1 Aims . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Requirements Specification 4
2.1 Move Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Project Plan 5
3.1 Project Phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Deliverables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 Resources 5
4.1 Opponents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 UCI Compatible Graphical User Interfaces . . . . . . . . . . . . . 6
4.3 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

5 Agreement 6
5.1 Student’s Signature . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2 Supervisor’s Signature . . . . . . . . . . . . . . . . . . . . . . . . 6

6 Bibliography 6

2
1 Problem Description
Chess artificial intelligence engines have been a major area of research for many
years. A standard chess engine can be thought of as a system comprised of
three main components, move generation, search and evaluation, with the board
representation providing a common repository. The combinatorial explosion in
the branching factor of the game tree makes it impossible to analyse many
chess positions completely, instead we rely on estimations to score the potential
of each move.
A common chess engine implementation uses a mini-max game tree to explore all
possible moves from the given position, further optimised by pruning sections
of the game tree that obviously require no further investigation. The leaves
of the tree are scored using a static evaluation heuristic which offers points to
material balance and other factors of the developers choice. Artificial intelligence
researcher Eric Baum makes the following observation:

Using material balance alone, with deep search, is already enough to


play pretty good chess, but programmers generally add a few more
terms. [1]

Whilst it is clear that we could simply check the material balance at a given
search depth, this seems to go against everything taught to a novice player.
One of the key aspects to playing a successful game of chess is the consideration
of mobility and spatial advantage, as stated by the international chess master
Jeremy Silman:

Game’s are often won by simply taking space and restricting the
opponent’s options. You don’t have to attack like a wild man to
score a point. [2]

Despite the huge benefits of positional play, many chess engines do not take
mobility and spatial advantage into proper consideration. Crafty, a leading chess
engine developed by Robert Hyatt rewards a massive advantage in both mobility
and space less than two points; instead, offering large rewards to tactical plays
such as two rooks on the opponents pawn rank. Whilst having two rooks on
your opponents pawn rank is highly desirable, it is not generally considered
more important than positional play.
With the growing popularity of 64-bit architectures it is becoming increasingly
important to find ways to unlock their true potential. Traditionally chess engines
have used the obvious board representation of a 64 slot array to store the state
of the board; however, 64-bit architectures afford a slightly smarter approach in
the form of a 64-bit integer with each bit acting as a flag for a particular piece
or condition on each square of the chess board.

1.1 Aims
Design and implement a chess artificial intelligence engine using mobility as
a primary evaluation heuristic. Optimise the engine to utilize the processing

3
power of 64-bit architectures. Investigate the playing style of the engine in an
effort to document and improve the mobility centred heuristic.

1.2 Objectives
• Research the current 64-bit chess engine implementations.
• Research the importance and use of mobility in positional chess games.
• Implement a working 64-bit optimized chess engine with a mobility centred
heuristic evaluation.
• Test the chess engine against both human experts and other chess engines
and document the results.
• Use the test results to fine tune the mobility evaluation heuristic.
• Research and implement further engine optimisations.

2 Requirements Specification
2.1 Move Generation
1. The move generator must be compatible with the Perft test developed by
Robert Hyatt.
2. The move generator must be tested to seven ply deep in no less than eight
board positions. Ply refers to a single move made by black or white.
3. The move generator should be capable of generating seven ply deep from
the standard initial chess board position in no more than 3 minutes.

2.2 Evaluation
1. The evaluation heuristic must reward more points to material balance and
mobility than any other aspect of the board.
2. The evaluation heuristic must be tested on no less than eight board posi-
tions using Robert Hyatt’s symmetry sanity test.

2.3 User Interface


1. The software must allow the user to input their chosen move.
2. The software must output the current state of the chess board after every
move.
3. The software must output the engine’s chosen move.
4. The software should work with the Universal Chess Interface (UCI) pro-
tocol to enable alternative GUI compatibility.

4
3 Project Plan
3.1 Project Phases
The project will be split into seven phases where each builds upon the product
delivered by the last. Once phase five is complete the risk of not having an
end product by the deadline drops to zero, by this rationale, it is of utmost
importance that phases one through five are fully complete before continuing.

Phase 1 Research current chess artificial intelligence software and knowledge.


Phase 2 Create an architectural design for the chess engine.
Phase 3 Design, implement and test a working move generator.
Phase 4 Design, implement and test a working search and evaluation function.
Phase 5 Test and document the chess engine.
Phase 6 Fine tune and test the evaluation heuristic.
Phase 7 Research, implement and test further chess engine features and opti-
misations.

3.2 Deliverables
Deliverable Deadline
Project Plan 20 October 2009
Literature Survey 14 December 2009
Progress Report 15 February 2010
Poster Presentation 22 March 2010
Dissertation 7 May 2010

4 Resources
4.1 Opponents
A range of both human and computer opponents are a necessity to fully test
and explore the potential of the proposed software. Whilst it is clear that most
of the preliminary testing will be against artificial opponents, both against older
copies of itself and the engines of other authors, it is imperative that human
opponents are used in the later stages. Testing the proposed system against
artificial opponents is both cheap and practical when attempting to gain an
understanding of the changes in strength of the engine; however, only a human
opponent can provide proper feedback in regard to the specific strengths and
weaknesses of the engine.
Human opponents would ideally need to be assessed to determine their expe-
rience and skill level in order to analyse the findings accurately, this is not a
trivial exercise due to the nature of competition making this a subject for further
thought.

5
4.2 UCI Compatible Graphical User Interfaces
The universal chess interface protocol is widely used to provide a common inter-
face by which chess engines can communicate with the GUIs written by other
authors. It should be noted that while a graphical interface is highly desirable,
it will not be made a priority until phase seven of the development process.

4.3 Hardware
The primary testing platform for the proposed software will be a 64-bit machine.

5 Agreement
5.1 Student’s Signature

5.2 Supervisor’s Signature

6 Bibliography

References
[1] Baum, Eric, What is Thought?, Cambridge, MA: MIT Press, 2004, pp 187-
197.
[2] Silman, Jeremy. The Amateur’s Mind: Turning Chess Misconceptions into
Chess Mastery. 2nd ed., Los Angeles, CA: Siles Press, 1999, pp 61-106.

6
7