Monday, 17 December 2007

How much knowledge do you need?

Every couple of years or so I try and write a new computer chess program. Previous programs include Vchess (featured here in the past) and Fencer. Currently I am working on a program called Pangu, which combines the ideas I've developed in with my previous programs, with better programming ideas I've seen in Fruit etc
One thing most chess programmers do is to test their programs against a test suite of positions. Some of these suites are tactical positions (eg 1001 Brilliant Ways to Checkmate), while some are a combination of tactics and positional play. The most famous of these is the Bratko-Kopec Test, which was developed in the early 80's and was designed to measure the strength of human and computer players.
The Bratko-Kopec test contains 24 positions half of which are tactical, and half of which are based around understanding pawn levers. Two such positions are shown on the right.
Now at the time I ran the first test my program was pretty good at searching. but had very little chess knowledge. In fact all it knew was the value of pieces, and that certain squares were good for certain pieces. It new nothing about pawn structures, open files, king safety etc
Even with this lack of knowledge it did surprisingly well. It scored 16/24 (at 2 seconds per position), solving 9 of the tactical positions and 7 of the "lever" positions. Of the the diagrammed positions it failed to solve the first one (1.d5!) but it found 1. ... f5 in the second.
So I wonder about the following. Can the ability to calculate 5 or 6 moves deep (perfectly) replace the need for any deep knowledge of the game? And are there human players who already do this?


DeNovoMeme said...

"... ability to calculate 5 or 6 moves deep (perfectly) replace the need for any deep knowledge of the game?" - SP

LOL cut it out. You know as well as everyone reading that many endgame postions require a series of proceedures that are X moves long, need to be strung together to seel the inevitable checkmate. Thus 6 moves deep (12 nodes) simpley is not enough.

However, the complexity of *positions" per se is not remarkably different and pretty low. What is complex is the *process outcomes" after a dozen moves. The outcomes are effectively chaotic. The trick is to guide the chaos toward a strange attractor - being your win. How a non-blundering player guides their game to a win is what gives that player the quality we call strength.

The quest I think you are asking - or should be - is, what rules (code) do you use to guide the game toward a win. IMAO, those rules are the generalised rules of stratergy. Maximise your space and your piece activity, and control of squares around the enemy king.

Anonymous said...

The Bratko-Kopec test is available on line at