Computer Chess Club Archives




Subject: Artificial Intelligence in Computer Chess

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
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!


This page took 0.11 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.