Author: Artem Pyatakov
Date: 13:18:41 03/28/04
Hello CCC, I have not posted here in about 3 years, but it's nice to be posting again. My college years have flown by, and I am now using the amateur program I had written during the summer of my Freshman year as a basis for my Senior thesis. Where did the time go?!? I wanted to get your educated input on the topic I am covering in my thesis, before I actually get down to writing the actual text of it (I have spent some pretty large number of hours during the year working on the experimental results). Disclaimer: The ideas contained below are pretty self-critical of the field, but please do not take them personally, since I myself have written a chess program that has all the shortcomings I talk about. I am purposefully trying to be controversial here, so as to spur debate. Any input at all is very much appreciated. The thesis is titled "Improving Computer Chess through Machine Learning", and its main idea is to attack one aspect of an interesting gap I noticed between the field of A.I. and Computer Chess. Specifically, in my opinion, the field of computer chess has become obsessed with *tricks* (human-generated ideas that happened to work without a good theoretical justification and cannot be easily generalized to other games). Because these tricks work really really well, the field has strayed from research into A.I. techniques. At the same time, any AI work has to compare itself with chess engine filled with excellent human-generated tricks, so it seems to perform poorly. Some examples: *ordering captures first during move ordering *check extensions *futility pruning *evaluation function (trick-filled, but probably has to stay that way for a while) On the other hand, I think a lot of researchers have been overly ambitious and have tried to replace Alpha-Beta & tricks with a neural network or some totally different approach. I think that with the current state of AI tools, these efforts are bound to fail. In my thesis, I take the middle-road and keep the alpha-beta and general framework while at the same time trying to get rid of as many tricks in my original program as I can (while hopefully keeping it competitive). Given the very limited time, I have focused my efforts on move ordering tricks - such as the history heuristic, killer heuristic, SEE, etc. Most of these heuristics are designed to share information found in one part of the tree with the others, which I think is a great area to tackle, because it can lead to great improvements in search while at the same time not requiring precise answers. If there is more interest in this, I can share the details of the research I did in the area, but I didn't want this message to get too long. CCC, what do you think of this whole approach? Do you want more details? Any comments, questions, ideas? Any related research or work I have missed? To clarify, the Senior Thesis is a significant project but is not anywhere close to a Ph.D. dissertation, which is why I am not addressing question in excruciating detail or with great precision. Thanks guys, you are the best! Artem
This page took 0.04 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.