How does improve a chess engine?

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Patatov

How does improve a chess engine?

Post by Patatov »

I'm always amazed when a new version of a known engine come out and that there's a significant strength increase (ZapChess, Chess Tiger etc...).
Of course I can check the readme to see what has been done but I'm not a programmer and I still don't know how the programmers improve their engines? Are they just trying code changes and evaluating the strength impact against other engines or on specific positions?
99% of the programmers are average players so how do they add a few more elo points to their program? How do they know where to change something on the code?
User avatar
Andres Valverde
Posts: 557
Joined: Sun Feb 18, 2007 11:07 pm
Location: Almeria. SPAIN

Re: How does improve a chess engine?

Post by Andres Valverde »

Patatov wrote:I'm always amazed when a new version of a known engine come out and that there's a significant strength increase (ZapChess, Chess Tiger etc...).
Of course I can check the readme to see what has been done but I'm not a programmer and I still don't know how the programmers improve their engines? Are they just trying code changes and evaluating the strength impact against other engines or on specific positions?
99% of the programmers are average players so how do they add a few more elo points to their program? How do they know where to change something on the code?
Hi Andre,

Chess knowledge is a great help for engine programmers, there are lot of them with a high level e.g. Vasik, Vincent (Diep).. Their chess player intuition give them a clue about changes needed to improve. They can discard changes very soon if they realize that they are not good enough. So they get TIME, but still have to test.

But there are another group of good programmers who are not even "average" chess player and have developed strong programs. They usually do the trial and error loop method: Little change on search/eval/estructure/books and tests. Tests are run against a large number or opponents and the greater number of games possible. That needs hundreds or thousands of CPU hours.

I'm myself a quite better chess player than programmer. Usually i watch games /EPD solving before deciding to run a larger test. Then I select a group of engines in the range of mine (+-100 ELO), usually 20, and run as many games as possible (in my own computer or sending to fellow testers). This is time consuming and at 95% of cases I got nothing.... but i guess there is not a better way.

Hope it helps you...
Saludos, Andres