Free Web Hosting by Netfirms
Web Hosting by Netfirms | Free Domain Names by Netfirms


THE DISTRIBUTED CHESS PROJECT

Creating Chess-Playing Artificial Neural Networks with Distributed Evolutionary Algorithms


Download | Client Doc | The Project | Results & Stats | Links | Feedback | The Press | Bugs | Home


Overview

This is a distributed computing project in the field of artificial intelligence. The goal is the creation of chess-playing artificial neural networks using distributed evolutionary algorithms for the training of the networks. The training is performed using a program to be installed on the computers of project participants. A server provides data specifying computational tasks and accepts the results once a client is finished. Then a new task will be assigned.

"How can I help?" you ask. It's simple, run the client or - provided you have a web site of your own - link to this site, because

The client, by the way, comes with an attractive screen saver that displays historical chess games. Included are the games from Bobby Fischer's book 'My 60 Memorable Games'. Finally, in order to fulfill certain legal obligations, I have to state the obvious fact that The Distributed Chess Project is not responsible for the content on any of the external web sites it links to.


Latest News

04/26/03
Almost three month without update and just one complaint. That's pretty amazing considering that there are still plenty of clients out there trying to find better neural nets.

Now, here is the state of the project as I see it: While I do think that the results are remarkable, I don't see how they can ever pass the 'So-what-test' as far as actual applications in computer chess are concerned. Even in case that there is a configuration that allows to push the performance up to 50% for any given problem set, all one could hope for is an application for improving move ordering in a traditional tree search algorithm. And guess what? There already exists a patent for this kind of neural network application.

Taking all this into account, my interest in the project has suffered a steady decline during the past couple of month. Therefore I won't develop the program any further - there, I've said it - but I won't quit without thanking everybody who has participated and supported the effort. Anyway, the server will stay on-line for the time being and there will be updates of the results tables as long as results keep coming in. Who knows, maybe we are in for a surprise ...

Finally I'd like to promote my new site. It will be about 3D-simulations of dynamic systems. There is nothing on it yet, but I'm going to post a demo shortly.

02/01/2003
Well, I guess it is about time for an update, even though there isn't much new to report at this time. I havn't made any significant progress on the stuff I announced the last time. This is due to the fact that I'm quite busy with unrelated stuff to the extent that I had to reduce the time spent on the project. Anyway, here are the latest
results.

01/11/2003
A year after its start, the project has attracted more than 500 registered participants (see the latest
results for confirmation). This is not in the league of some of the better known DC projects, but pretty respectable none the less. Pascal Gounet mailed me scans of an article in the magazine Science et Vie that mentions the project.

There is an automatic client update available. I have made a change to the task status report: It now shows the generation during which the best candidate neural network has been discovered.
Moreover, the mutation probability is not a constant anymore, but rather a function of the population diversity. When diversity is low, the mutation rate will increase and vice versa. The effect of this measure is that the diversity will stay in the range of 50% instead of dropping to below 10%. We'll see whether this will produce better results.

One more thing, from now on I'm going to update the website on a more irregular basis than before. So check back frequently for further updates.

12/27/2002 (expected date for the next update: 01/10/2003)
The best
results for the 150 QqRrNnBb-problems so far are approximately in the same range as those for the endgame problems, i.e. up to 25%. In comparison to the expected perfomance for guessing the best moves, which is about 2.5%, this is pretty impressive by itself. After all, the best neural network results are better by a factor of 10.

Since the project is about to celebrate its first birthday early next year, it is appropriate to summarize what has been achieved so far. What, if anything, do the results show? Well, they show that with a likelihood significantly higher than pure chance, it is possible to come up with the best move in an arbitrary chess position just by processing the pattern presented by the position without using any of the classical search algorithms. On the downside, the performance is not good enough to be of practical use in computer chess, yet. In comparison to the Fritzes and Juniors there is just no contest. However, I can think of several promising approaches to improve on the present performance. Two of them are

Either one might make the resulting networks more effective. Since both approaches involve considerable modifications to the client, the implementation is going to take some time. So, let the client run for the time being, you just might stumble on a winner.

Have a happy new year!

12/21/2002 (expected date for the next update: when the first results for the new QqRrNnBb-problems come in)
Check out the latest
results. As expected, the test performance for the RrPp-endgames doesn't get much higher than 20%. Moreover, one can see plenty of evidence for overfitting, which is the case for those networks that perform much better during training than on the test set.

Today I have uploaded a new set of problems belonging to the other end of the spectrum, so to speak. The selection condition was the presence of both queens and at least one rook, one knight and one bishop for both colors, thus the name QqRrNnBb. The probability to find the best moves by chance is just 2.5% on average, so I'm really curious, how the networks will fare on this set. 50 of 200 problems are designated for training, the rest for testing the trained networks. The size of the file is about 1MB, so please be patient when the client downloads.

Since this is the last update for at least one week, I'd like to take this opportunity to wish all of you a merry Christmas and thank you for participating in the project.

12/14/2002 (expected date for the next update: when the first results for the new RrPp-endgames set come in)
The latest
results for the randomly selected endgame problems clearly indicate that the neural nets do in fact learn some chess. The best ones have a significantly higher success rate than one would expect by simply guessing the moves for the presented problems. However, the results aren't good enough to improve on what even the weaker conventional chess programs can do.
When you compare the new
result tables with the archive, you'll probably notice slight shifts in the rankings due to changes in the column corresponding training performance. The reason is a bug I discovered and fixed in the Perl scripts which build the results tables. Sorry about that.

I have just uploaded the promised problem set consisting of 239 RrPp-endgames. 50 problems will be used for training, the rest for the test of the trained networks. Frankly, I expect similar results to those with the first endgames set.
In order to explore as many different types of neural networks as possible, you should take the opportunity and vary the network parameters - i.e. weights range, number of nodes per hidden layer, number of hidden layers, and slope of nonlinearity - at the beginning of each new task .

After the server has collected a number of results for the new set, I'll let you work with another tactically oriented problem set. I'd like to see how representative the results with the first tactical problem set really are.

Apparently there has been an article about the project in the french magazine Science et Vie. I wasn't able to locate it on the web, but I'd like very much to get hold of it. Therefore I'll appreciate very much if somebody sends me a copy by fax. Send me a mail and I'll give you the number.

11/30/2002 (expected date for the next update: 12/14/2002)
I've spent the last couple of weeks experimenting with various training and test problem sets selected from the 9000+ problems that are available
here. It seems that the composition of the problem sets is rather important for the success of the genetic algorithm. If the sets are too large and thus contain to many different features, the neural nets are literally confused during training. Figuratively speaking, they just don't know on which feature to focus, and more often than not they focus on those features which are present in the training set, but, by chance, are not present in the test set. Therefore, before training the networks one must construct something I'd like to call generalizable problem sets, i.e. sets that contain not too many different features. Since it is not known a priori what those features are and whether they are contained in any given position, this is a non-trivial task. Nevertheless, the results obtained with the tactically oriented problem set clearly indicate that it is feasible.

The solution approach I propose is an additional genetic algorithm that is sort of wrapped around the genetic algorithm that the client performs now. The task of this outer genetic algorithm, will be to come up with what one might call a neural discriminator or neural problem classifier that is capable of constructing generalizable problems sets. The sole objective of the outer algorithm will be to minimize the difference between training and test performances of the inner genetic algorithm used for training the problem solving networks. Note, that in order to evaluate a single individual from the population of problem discriminators just for a single time, one has to run a complete inner genetic algorithm on the problems produced by the disriminator that is to be evaluated. Therefore, either the number of generations or the population size for the inner algorithm must be reduced significantly in order to keep the overall computation time in check.

So, what I am going to do next is to implement the two cascaded genetic algorithms. To keep your clients busy until then, I am going to upload an additional problem file containing a number of RrPp-endgames. Let's see how far we can go with those rather specialized endgame problems using just the single genetic algorithm. And now, before I forget, here are the latest results you obtained with the tactical and endgame problems.

11/16/2002 (expected date for the next update: 11/30/2002)
This information is not so new anymore, but on 11/07/2002 there has been another 24 hour maintenace related down time of the server. According to prohosting.com, they are changing data centers. I don't think it was the last down time, either, because there are certain problems accessing the server via ftp.

As some of you probably have noticed by now, I have uploaded a new problem set containing endgames only. This was possible due to the support provided by Lieven Clarisse from Belgium, who prepared a FEN-file containing more than 3000 endgame positions. He also verified the solutions and suggested to train specialized neural nets.
While the old problem set focuses on middlegame tactics, the new one consists of endgame positions only. The first results for the endgame problems are very much inferior to those for the middlegame problems. Currently I'm trying to figure out, just what might be the reason for this drop in performance. Any suggestions from your side would be very much appreciated. One further consequence of the poor preliminary results in the endgame department is that the development of tournament play among the neural nets has been suspended, at least temporarily. I just don't think there is much of a point in letting the networks play against each other or chess programs at this stage. If it isn't possible to train them to near perfection on a limited set of positions, how can one expect them to perform consistently on a competitive level over the course of a whole game?

But why don't you have a look for yourself. The new results as well as some interpretations can be found right here.

11/02/2002 (expected date for the next update: 11/16/2002)
Well, what do you know, my wish from 10/19/2002 actually came true. The project was mentioned on
Slashdot. Even though it wasn't on the front page, the project got a noticeable boost out of it. This can also be seen on the results page: with respect to computation time, we are almost through the 1000 days barrier. Still no better neural net then the one we already know for some time, though.

It appears that my provider has solved a rather annoying problem. In the past, the HTML-code of my pages frequently got messed up when the server inserted the code for the banner that appears at the top of each page. Up to now, this hasn't happened again after the last maintenance down time.

10/28/2002 (expected date for the next update: 11/02/2002)
Due to maintenance measures taken by my service provider, the project server has been down for about 24 hours. Version 2.2 of the client is available for
download. It fixes a couple of additional Windows XP related bugs which I have discovered recently.

10/19/2002 (expected date for the next update: 11/02/2002)
As one can see in the latest
results table, the number of participants as well as the contributed computation time is increasing nicely. No improvement in the performance department, though. But don't worry, considering the time it took to get from 76% to 78%, that is to be expected. This is the very reason why only a distributed approach has a chance for success.

The project does have quite a number of steady contributors and regular visitors. But when I look at the overall stats, I notice that we could use some fresh publicity, since the number of new visitors is decreasing steadily. Therefore it will be much appreciated, if you - the steady participants - go ahead and promote the project on the web, e.g. write about it in news groups and so on. To get it mentioned on Slashdot or some similarly popular news site would be optimal, of course.

10/05/2002 (expected date for the next update: 10/19/2002)
Besides the updated
results table, there is nothing substantially new to report. During the last two weeks, the project has acquired 31 new registered participants. Eight additional participants have delivered candidate neural networks for the first time and the total contributed computing time has grown by 118 days.

09/21/2002 (expected date for the next update: 10/05/2002)
Now we have two candidates with 78% performance on the test set (see the latest
results). I'm really curious how far it will go given enough time.

Meanwhile I'm pretty busy coding v3.0. As I've already mentioned elsewhere, v3.0 will have tournaments among neural nets at the core of the genetic algorithm. Starting with v3.0 it will also be possible for you to download individual neural nets from the server and integrate them into your population at the beginning of a new task. The goal here is the implementation of some peer-to-peer functionality such that the clients can actively exchange parts of their respective populations, thus realizing the vision of a truly distributed genetic algorithm.

Also on the agenda is the implementation of an interface between our neural nets and Tim Mann's WinBoard.

09/10/2002 (expected date for the next update: 09/21/2002)
This is just to announce a bug fix. There was a problem with the installer and Windows XP that prevented auto-start of the client. So all XP-users who wondered why the Chess Saver client didn't start automatically whenever their computer was turned on ought to
download and install the fixed version. As far as I know, non-XP operating systems are not affected.
On second thought, you might not want to download again. If that is the case, you can fix the fault yourself using a registry editor (e.g. regedit):
First you have to locate and open the key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run.
The value for the entry Chess Saver must be changed from "<Your_installation_folder>\ChessSaver.ex" to "<Your_installation_folder>\ChessSaver.exe".

09/07/2002 (expected date for the next update: 09/21/2002)
No improvement on the test performance (see the latest
results). I have incorporated the source code of Bob Hyatt's Crafty 18.15 into Chess Saver. Seems to be working, too. Crafty 18.12 has obtained a rating of 2613 on the SSDF list. So now there is a way to terminate a game between two neural nets by employing Crafty as an objective referee. Scroll down to 08/12/2002 in case you wonder why that might be necessary. Anyway, this progress means that a major obstacle on the way to version 3.0 with tournaments among the populations has been removed.

08/29/2002 (expected date for the next update: 09/07/2002)
This update is one day early, because we have an improvement to 78%! Well, it seems patience pays. Check the latest
results, where I have established an archive of previous result pages in order to give you an opportunity to see the development of the project.

08/26/2002 (expected date for the next update: 08/30/2002)
Finally, the proxy issue has been resolved. Thanks again, Peter. Anybody who ever had problems connecting to the project server via a proxy server should
download and install the update.

08/20/2002 (expected date for the next update: 08/30/2002)
Nothing really new today except the nice fact that the project is close to one full year of contributed computing time (see the latest
results). I'm still struggling with the proxy problem.

08/12/2002 (expected date for the next update: 08/20/2002)
While I was on vacation, two participants have encountered problems when trying to submit results via a proxy server that requires authentication. The problems seems to be that sometimes Windows is able to find out the proxy server name and the port number on its own and sometimes it is not. I will fix this problem as quickly as possible.

There is still no improvement on the maximum test performance. But it is still early in the ball game, so let the client run (see the latest results). Implementing chess tournaments among the population is trickier than I thought. The major problem concerns those games that will run on and on without mate or a trivial draw. And I believe there will be plenty of them. Remember, these are stupid artificial neural nets playing. Since you don't want those games to run forever, they have to be terminated eventually. The question is then, how to evaluate a given position objectively. That means for instance to detect that the resulting position is even and the game is therefore a draw after a certain number of moves has been exceeded. Since I am not a chess programmer, I would greatly appreciate any ideas.

07/20/2002 (expected date for the next update: 08/12/2002)
The good news is that there are more and more active participants returning candidate networks. The total contributed computing time is also accumulating rather nicely. In so far the distributed chess project is a success, already. Thanks a lot, people! On the other hand one cannot avoid to notice that still nobody has been able to come up with a neural net that does better than 76% on the test problems (see the latest
results).
Well, I guess it's time to take the next step, anyway. That means I will start to implement tournament play into the genetic algorithm to get a bit closer to the real thing.

07/14/2002 (expected date for the next update: 07/21/2002)
Nothing new from the test performance front. I have changed the
results table somewhat. Besides the test performance, it now shows the corresponding training performance as well.

07/08/2002 (expected date for the next update: 07/16/2002)
Well, the scripts are in place and the next
results update is available. As far as the best test performance is concerned, we are still stuck at 76%, however.

07/02/2002 (expected date for the next update: 07/09/2002)
The first actual results are released today. At the time of this writing 230 people have downloaded the Chess Saver 2.0; 72 client installations have completed the initial task; 16 participants have delivered neural nets with a certain amount of chess-playing ability. For details have a look at the
results. The next update will have to wait until I have some scripts in place that automate analyzing the feedback from the clients.

Finally, I'd like to ask everybody again: Please report any unusual program behaviour, crashes, whatever. Without this cooperation from your side I don't have a chance to fix the problems.

06/23/2002 (expected date for the next update: 06/30/2002)
As of today the long awaited version 2.0 of the Chess Saver distributed computing client is available for
download. It runs on the Windows platform (Windows 95, 98, NT, 2000). On Windows XP it has not been tested, but I don't expect any problems.

For the first time, the new version implements a genetic algorithm to train multi-layer-perceptron neural networks on sets of chess positions with known best continuations (e.g. endgame studies, mate in n moves, white to move and win, ...). See the project for a comprehensive description of content, methods, and goals.

The main new features of Chess Saver 2.0 are ...

The last feature is what sets this project apart from other distributed computing efforts on the web: Users can actively participate by shaping the search for chess-playing neural nets. On the other hand, if somebody is not inclined to do so, she may just install the client and forget all about it.

For details on the handling of the client, have a look at the documentation.

The first task right after installation is just a very quick one to check the data transmission. After that you will get data for the first real task.

Last but not least, a plea for assistance: I have tested the software extensively and removed more bugs in the process then I care to count. By now the client is running absolutely stable on my machines. Nevertheless, I am sure that there will be bugs which I did not discover. If you encounter one of them, please don't just swear at me and uninstall Chess Saver, rather let me know about it with a detailed description of the symptoms and circumstances so I have a chance to take care of the problem.


Feedback

Please direct questions, suggestions as well as reports of broken links and bugs to Ralf Seliger.


Copyright (c) 2002-2003 by Ralf Seliger. All rights reserved.

This page has been requested GOWEB Counter by INLINE times.