|
Main
Date: 14 Apr 2007 12:47:54
From: Buller
Subject: genetic algorithms for chess
|
Is anyone aware of any interesting research on developing strong chess-playing engines using genetic algorithms? According to Wikipedia, this has been done for checkers, resulting in a fairly strong program (but not as strong as the best, Chinook). The internet mentions some efforts at doing so for chess, but I haven't heard of any huge achievement. GA are quite fascinating; the resulting problem solvers (for biological research, electronic design, financial kets analysis, etc.) often end up being something the human designer doesn't even understand, yet perform better than what the human would have produced. For chess, it seems like one could start with a bunch of random-playing algorithms (e.g., Stanley the Monkey in Chessmaster!), randomly mutate them, select for fitness (i.e., chess strength), repeat, ... After lots of generations maybe there'd be some that could beat today's best. Interesting possibility? DB
|
|
|
Date: 14 Apr 2007 16:18:18
From: David Richerby
Subject: Re: genetic algorithms for chess
|
Buller <[email protected] > wrote: > Is anyone aware of any interesting research on developing strong > chess-playing engines using genetic algorithms? According to > Wikipedia, this has been done for checkers, resulting in a fairly > strong program (but not as strong as the best, Chinook). [...] For > chess, it seems like one could start with a bunch of random-playing > algorithms (e.g., Stanley the Monkey in Chessmaster!), randomly > mutate them, select for fitness (i.e., chess strength), repeat, ... > After lots of generations maybe there'd be some that could beat > today's best. Interesting possibility? *shrug* I believe that people have already used this kind of technique for tuning evaluation functions. As for using it for the whole search, I'm not convinced. As you say, for checkers, it results in a weaker program than can be written by ordinary means, as one would expect from applying a general-purpose technique to a specific problem. Dave. -- David Richerby Gigantic Nuclear Radio (TM): it's www.chiark.greenend.org.uk/~davidr/ like a radio that's made of atoms but it's huge!
|
| |
Date: 15 Apr 2007 15:01:33
From: Ralf Callenberg
Subject: Re: genetic algorithms for chess
|
14.04.2007 17:18, David Richerby: > As you say, for checkers, it results > in a weaker program than can be written by ordinary means, as one > would expect from applying a general-purpose technique to a specific > problem. It's not sure, that this is indeed the reason for its weak play compared to Chinook. There are a lot of techniques to optimize the search which are not used by Blondie24. So, it might be interesting to take an existing, strong program and replace its evaluation function with such a neural network as in Blondie24 and optimize it in a similar way - and then see how it performs compared to the original program. Chinook was written by an expert author of chess programs, who knew barely anything about checkers when he started. He asked a checkers expert for support with the evaluation function, and after about two months of adapting the chess program to checkers they were clearly superior to any existing checkers program. I doubt that the evaluation function was so sophisticated. The search techniques used by the chess program made the real difference. Greetings, Ralf
|
| | |
Date: 15 Apr 2007 17:57:16
From: Guy Macon
Subject: Re: genetic algorithms for chess
|
R alf Callenberg wrote: >So, it might be interesting to take an existing, strong program >and replace its evaluation function with such a neural network >as in Blondie24 and optimize it in a similar way - and >then see how it performs compared to the original program. I see no reason why a neural network needs to be introduced -- unless of course you want to investigate neural networks as opposed to genetic algorithms. To investigate genetic algorithms, take an existing, strong program and make many copies with mutations of the evaluation functions, then let them play against each other with winners having more offspring. That will optimize the program for beating copies of itself with different evaluation functions. Then you do it all again against other chess programs, and finally do it all again against human players (perhaps on a web server).
|
| | | |
Date: 16 Apr 2007 01:44:49
From: Ralf Callenberg
Subject: Re: genetic algorithms for chess
|
15.04.2007 19:57, Guy Macon: > I see no reason why a neural network needs to be introduced > -- unless of course you want to investigate neural networks > as opposed to genetic algorithms. No, not opposed. They work together. Fogel used an evolutionary algorithm to optimize the weights of the neural network. To investigate genetic > algorithms, take an existing, strong program and make many > copies with mutations of the evaluation functions, then let > them play against each other with winners having more > offspring. Well, you have to parametrize somehow the evaluation function for this approach. A neural network offers a very generic way to do so. What parametrization would you suggest instead? Greetings, Ralf
|
| |
Date: 14 Apr 2007 19:24:48
From: Anders Thulin
Subject: Re: genetic algorithms for chess
|
David Richerby wrote: > whole search, I'm not convinced. As you say, for checkers, it results > in a weaker program than can be written by ordinary means, as one > would expect from applying a general-purpose technique to a specific > problem. But isn't the principle the same as Samuels used in his checkers program? That was a pretty good checkers-playing program for its time, if I recall... -- Anders Thulin ath*algonet.se http://www.algonet.se/~ath
|
| | |
Date: 15 Apr 2007 15:05:27
From: Ralf Callenberg
Subject: Re: genetic algorithms for chess
|
14.04.2007 21:24, Anders Thulin: > > But isn't the principle the same as Samuels used in his checkers program? I didn't find anything detailed about Samuel's program. In the texts I found is just mentioned, that his evaluation function is some ploynomial. But what are the constituents of this function is nowhere given. Were they very general or was already some knowledge about what is important in checkers introduced? Greetings, Ralf
|
| | | |
Date: 16 Apr 2007 08:03:58
From: Hello
Subject: Re: genetic algorithms for chess
|
"Ralf Callenberg" <[email protected] > wrote in message news:[email protected] > 14.04.2007 21:24, Anders Thulin: >> >> But isn't the principle the same as Samuels used in his checkers >> program? > > I didn't find anything detailed about Samuel's program. In the texts I Original 1959 paper: http://domino.research.ibm.com/tchjr/journalindex.nsf/0b9bc46ed06cbac1852565e6006fe1a0/39a870213169f45685256bfa00683d74?OpenDocument Followup 1967 paper: http://domino.research.ibm.com/tchjr/journalindex.nsf/0b9bc46ed06cbac1852565e6006fe1a0/6fb05411fd49d77b85256bfa00683fb6?OpenDocument 2000 reprint: http://domino.research.ibm.com/tchjr/journalindex.nsf/0b9bc46ed06cbac1852565e6006fe1a0/3d602ed510e01ee985256bfa0067fb65?OpenDocument > found is just mentioned, that his evaluation function is some ploynomial. > But what are the constituents of this function is nowhere given. Were they > very general or was already some knowledge about what is important in > checkers introduced? > > Greetings, > Ralf > ----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==---- http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups ----= East and West-Coast Server Farms - Total Privacy via Encryption =----
|
| | | |
Date: 15 Apr 2007 13:34:16
From: Anders Thulin
Subject: Re: genetic algorithms for chess
|
Ralf Callenberg wrote: > given. Were they very general or was already some knowledge about what > is important in checkers introduced? If I recall, it was a rather large bag of various things that could be important. Their actual importance (i.e. the weighting factors) were recomputed based on the losses of the program. -- Anders Thulin ath*algonet.se http://www.algonet.se/~ath
|
| | | | |
Date: 15 Apr 2007 16:06:55
From: Ralf Callenberg
Subject: Re: genetic algorithms for chess
|
15.04.2007 15:34, Anders Thulin: > If I recall, it was a rather large bag of various things that > could be important. Their actual importance (i.e. the weighting factors) > were recomputed based on the losses of the program. That's what I also assumed. But when this "bag of various things that could be important" already requires some knowledge about the game, it can hardly be called "general purpose technique". With an approach like Blondie24 you just have to know the rules of the game, no other game specific knowledge is required. This is still confined to a family of games, but you could create an engine for variants quite easy, as long as you can encode the rules in a conveniant way. Greetings, Ralf
|
|
Date: 14 Apr 2007 17:08:17
From: Ralf Callenberg
Subject: Re: genetic algorithms for chess
|
14.04.2007 14:47, Buller: > Is anyone aware of any interesting research on developing strong > chess-playing engines using genetic algorithms? You might try Google with the search "genetic algorithms chess". > According to Wikipedia, > this has been done for checkers, resulting in a fairly strong program (but > not as strong as the best, Chinook). The internet mentions some efforts at > doing so for chess, but I haven't heard of any huge achievement. GA are > quite fascinating; the resulting problem solvers (for biological research, > electronic design, financial kets analysis, etc.) often end up being > something the human designer doesn't even understand, yet perform better > than what the human would have produced. For chess, it seems like one could > start with a bunch of random-playing algorithms (e.g., Stanley the Monkey in > Chessmaster!), randomly mutate them, select for fitness (i.e., chess > strength), repeat, ... The basic problem here is to encode the algorithm so that the GA can operate on this encoding. This is far from easy. Take as an example the checkers playing program Blondie24 from David Fogel. They didn't let the whole algorithm evolve. What they did is, they took a standard minimax and parametrized the evaluation function in form of a neural network. This means a position is entered into a neural network which returns a value. The parameters of this neural network are then adapted using an evolutionary algorithm. (I think, this is a quite obvious approach, I myself have thought about something quite similar. Yet, the technical details are still not trivial, so I respect the work Fogel has done, and don't regard it as something minor) So, not the algorithm was created using a GA, but just a part of it (although a central one). The whole stuff todays chess programs use for enhancing the search (and which is very important for the strength of a program) is not covered by this approach. It might be, that this way an evaluation of the position can come out, which was not foreseen by other programmers. It is interesting and seems to be done for chess as well. But this is already a limited approach, as the static position is regarded for evaluation. There are hints, that Rybka uses a different approach for the evaluation, based on more dynamic aspects of the position. This could not have been detected by a technique similar to Blondie24. So this "Genetic algorithms find a playing algorithm without using prior knowledge of the game" goes too far and is not realistic at this moment. and also any hope such a program could be superior to existing solutions. What might be interesting: in all algorithms you have to weight different aspects, there are parameters in each algorithm. The parameters are usually determined by assumptions, heuristics or trial and error. Whenever parameters come into play, it is a good possibility to determine them using evolutionary algorithms, instead. So the GAs might enhance classical techniques in chess programming, that they are able to completely replace them seems not very likely. Greetings, Ralf
|
|