Chess engine Aristarch
Further reading
Aristarch banner

The name "Aristarch"

2280 years ago in Alexandria. Aristarch of Samos discovered the heliocentric system, the sun and the stars are fixed, the earth revolves around the sun. Ironically, fifteen centuries later, people were still arguing whether or not the earth is flat.

Copernicus fully used Aristarch’s theory in his work. Aristarch basically knew what Copernicus and Galilei "discovered", but he lived more than 1800 years earlier. Historians have been given too little attention to Aristarch.

Archimedes, who was his pupil, wrote to King Gelon:

"You King Gelon are aware the 'universe' is the name given by most astronomers to the sphere the centre of which is the centre of the earth, while its radius is equal to the straight line between the centre of the sun and the centre of the earth. This is the common account as you have heard from astronomers.

But Aristarch has brought out a book consisting of certain hypotheses, wherein it appears, as a consequence of the assumptions made, that the universe is many times greater than the 'universe' just mentioned. His hypotheses are that the fixed stars and the sun remain unmoved, that the earth revolves about the sun on the circumference of a circle, the sun lying in the middle of the orbit, and that the sphere of fixed stars, situated about the same centre as the sun, is so great that the circle in which he supposes the earth to revolve bears such a proportion to the distance of the fixed stars as the centre of the sphere bears to its surface."

Known books of Aristarch:

  • "On the sizes and distances of the sun and moon."

  • "On vision, light and colors."

No, sorry, I can’t provide any amazon links :-) Here’s a copy of a document of Aristarch:

aristarchos

Testing Aristarch

Testing is a somewhat complicated topic, also mentioned in the section "Ratings lists". To find out if a new revision of Aristarch is better than my reference version, I play 144 games under the following conditions:

  • time control 3+3

  • hardware: AMD XP 2400 @ 2.0 GHz

  • hash: 64 MB

  • opening books: none, but 24 predefined starting positions

  • opponents: Shredder 8, Fritz 8, Deep Junior 7, List 5.14, Ruffian 2.1.0, Delfi 4.4

This testing method is still unreliable as 144 games are not enough to find out small improvements or disimprovements. But it is necessary to find a compromise between testing time and development cycle.

Sometimes I send an engine to external testers, but unfortunately this does not help much, because I can only compare these results to exactly the same test conditions, which are normally not available or out-dated. Especially helpful are testers who have defined testing conditions and are able to play lots of games.

An important point is that testing in practical games is not the only way to determin playing strength:

  • Speed tests. If the code changes do not change the engine’s behaviour, but only improve calculation speed, this is an obvious improvement. The faster an engine is, the better it plays. Any chess engine must be designed to fulfill this requirement, because an engine that does not become stronger on faster hardware is not desirable.

  • Intuition. I would not exchange intuition for 30 testing work stations.

  • Test positions. Can be used to check certain positions by hand and find new evaluation algorithms if the engine cannot handle the position. Unfortunately there is only little correlation between test positions and practical tournaments, so a set of test positions cannot be used to optimize an engine. I tried so and achieved great results in common test position sets, but Aristarch simply became weaker.

Regarding openings

Openings have a big influence on an engine’s tournament performance. The problem is, I never made an optimized Aristarch-book because I am mainly interested in developing a chess engine, not a chess database (if anyone has experience in opening books and likes to design an Aristarch book, he is welcome).

When comparing with other engines, I want to exclude any influence of opening books, therefore I use predefined starting positions as described in the section Testing Aristarch. Hence, Aristarch’s books are probably not very good and are delivered only to make Aristarch work with free interfaces like WinBoard. With commercial interfaces you can use external books, but I never tested if the Aristarch books perform better or worse than these books.

The Aristarch books white.boo and black.boo are generated automatically by Aristarch itself. They consist of a large collection of lines where Aristarch won games. This learning can be turned on via the corresponding UCI option or the command line option "-g".

In every case the file aristarch.boo should be present, as it contains detailed opening knowledge which is used whenever the lines in white.boo and black.boo end. The large book aristarch.boo is not in the main archive, but can be downloaded in the Downloads-section.

Regarding table bases

Table bases became popular through the work of Eugene Nalimov, who calculated all possible positions with 5 pieces or less on the board (king + king + 3 other pieces). For each of the legal positions he wrote into a data base if it was won, lost or drawn.

Unfortunately, the resulting amount of data is enormous. For 5 pieces you need about 7000 MB of disk space (download here). To store all chess positions (up to 32 pieces) one would need a data base that can hold about as much positions as there are atoms in the known universe, hence such a memory bank is unlikely to be ever constructed. In addition, there is not enough time to calculate all these positions.

Installation

You can install Nalimov’s table bases which will slightly improve Aristarch’s play in late end games. Be sure to install a complete set of tablebases (7000 MB for the 5-stone, or 30 MB for the 4-stone), as an incomplete one can easily decrease Aristarch’s playing strength drastically (worse than using no table bases at all). You can use the tool Wilhelm to check if you have complete tablebases or which are missing.

About perfect chess knowledge

Table bases provide perfect knowledge for late end games. If one had table bases not only for 5 pieces, but for all chess positions, one would have the perfect playing chess engine. True or not true?

The decision about what is the best move is also dependent on the opponent. Probably the beginning position in chess is a draw, so the only way to win is to make moves that make it difficult for the opponent to find the move that stays in a draw. (You can only win if your opponent makes a mistake.) Therefore with perfect chess knowledge, you could of course always draw, but not necessarily win against good players (because the engine does not put the opponent under pressure and plays aimless).

This is already important in end games, for example the engine must not exchange its queen in a drawn KQ-KR but strive for positions that are difficult to handle for the opponent. Also, it is a known problem in the checkers program "Chinook".

So, perfect chess knowledge does not solve the problem to make "active" moves that put the opponent under pressure. To win makes it necessary to know and take advantage of the specific weaknesses of the opponent. The current problem of chess programs is that they only have a general strategy, but do not know who their opponents are and cannot adapt to them (Deep Blue was adapted manually to Kasparov).

Hence, my personal opinion is that a human world champion who gets the possibility to study a computer opponent thoroughly, will not lose against it in the foreseeable future (provided that the developers do not change the engine between the games). A chess engine is nothing more than a static, unchangable rule which is applied to a given chess position. The human mind can learn and adapt.

Is there an alternative to table bases?

Today’s chess engines work by searching through all possible lines in a given position. One could think that it may be possible to find a rule that simply tells which move is the correct one, without having to search in the dark. Unfortunately, this cannot be true for two reasons:

  • Apparently there is no such (perfect) rule for most 3- or 4-men-positions (else Nalimov would not have work), so it is very unlikely that there is such a rule for 32-men.

  • As far as I know it is possible to prove that there is no such rule, using the mathematical theory of complexity.