Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Let's go out on a limb

Author: Don Dailey

Date: 20:47:12 01/13/99

Go up one level in this thread


On January 13, 1999 at 17:44:16, Fernando Villegas wrote:

>On January 13, 1999 at 14:43:53, Don Dailey wrote:
>
>>On January 13, 1999 at 05:17:22, Will Singleton wrote:
>>
>>>On January 12, 1999 at 17:04:10, KarinsDad wrote:
>>>
>>>>>Don, let me know when your individually created chess program canconsistently
>>>>beat Deep Thought and I'll take back my words.
>>>
>>>Hmm, last time I checked, I didn't see anything about hardware design in the
>>>CilkChess description.  Has Don started burning proms?
>>>
>>>Couple of more points:  a theoretical discussion is more interesting when the
>>>idea under discussion has some probability of occurring.  For example, what will
>>>happen if a chess set is discovered on another planet?  While this has very
>>>little chance of happening, it has a greater chance than does this Microsoft
>>>chess business.
>>>
>>>However, the question of team vs individual, leaving Microsoft out of it, is
>>>pretty relevant for chess programming.  Progress will almost always occur at a
>>>faster rate when more than one person is working on a project, for several
>>>reasons.  For chess *engine* programming, the benefit probably tops out at two
>>>people.  Numerous examples abound from the literature.
>>>
>>>Don, haven't you always had a collaborator or two on your projects?  CilkChess,
>>>Socrates and Tech?  Didn't you benefit from some of these colleagues?
>>>
>>>Will
>>
>>Absolutely.  We have a guy working on the evaluation who is a master
>>and will do a better job than I could by myself.  We have also had a
>>number of people finding speedups in the code that I missed.  We have
>>3 gui interfaces and have a couple guys experimenting with Temporal
>>Difference Learning.  Aske Plaat has also contributed by improving
>>our implementation of mtd(f).
>>
>>There is also another team of people who built the Cilk language.
>>Cilk was actually built around the chess program, not the other
>>way around so I would have to include the whole cilk development
>>team too.
>>
>>Most of these team members are not chess experts, but will go on
>>to be among the best in the world at whatever they do.  But the
>>bottleneck of the team is me.  I get to spend very little time on
>>Cilkchess and most of this time ends up being to organize these guys
>>which is the best use of the time I have.
>>
>>But Cilkchess is a poor example since I am not a good example of a
>>"complete chess programmer."   I taught myself programming, was
>>never better than a 1900 player in chess and just absorbed as
>>many ideas as I could from others and tried to be logical and
>>rational.  A more complete chess programmer, would benefit less
>>than I would from having a team of experts at his disposal
>>because he would have less knowledge gaps (or expertise gaps) to
>>overcome.
>
>
>
>Wait, wait, wait... this is a double edge reasonning. The higher an expertise,
>the best he can grasp new ideas, nuances, etc. True: ABC will not be useful for
>him, but why we must suppose that ALWAYS these other guys will just thinks about
>the ABC?
>Fernando
>
>
>>
>>It would be interesting for me to know how big the core teams of
>>the top programs are.  I'll bet that most of them have limited
>>consultations other than a gui guy and some of them do their own
>>gui's too.  It seems that many teams also have someone doing the
>>book which I'll admit can be a big help.
>>
>>
>>- Don

I don't understand what you are asking.  What do you mean by ABC?

My core idea is that the more complete the expert, the less he
will need help from others to do the thing he is best at.  This
seems like an obvious principle to me.

If I had the very best book builder in the world I would never
ask him to only write part of my chess book,  I would want him
to write the whole thing!   If the chess programmer himself was
the best chess book builder too,  then you just wouldn't get a
whole lot of benefit from getting a less competent book builder
involved would you?  I'm better, but you go ahead and do it he
would say.  The final product wouldn't be better just because
it had a greater number of people working on it would it?

And that is all I'm really saying.  As complex as a chess program
is, it's really a tiny project in the whole universe of possible
programming projects.  Compared to an OS like Windows, it would
have to be considered even trivial.  I think it's possible for a
single person to master the art of writing a chess program and
I think some chess programmers are complete in this sense.  You
could provide them with a lot of extra help, but it would be
like me trying to advise Kasparov on which move he should play,
it's not likely I could contribute very much.

I'll say this again.  If I could hire a team of the top guys
in computer chess and motivate them to cooperate on the killer
chess program, I'm not sure at all that anything really great
would come out of it.  Probably a very good program would come
out, probably not much better if any than the best of the bunch.
And I really believe this.  Most of the decisions about what to
do are based on the individual philosophies of each programmer.
For instance, Fritz and Rebel are not very much alike.  Is this
good or bad from the cooperative point of view?   You might
argue that it's good because of the diversity but if they were to
cooperate, who decides which data structure you would use?
Perhaps the data structure Franz uses lends itself to speed and
the data structure Ed uses makes it easier to program more
knowledge?  If you choose either one,  not only do you defeat
the philosophy of the other, but what have you gained?  If you
choose Ed's data structure then in what way did this cooperation
produce something better than what Ed already had?  And why did
you choose Ed's,  maybe Franz was the better starting point?

It's naive to think you will just pick and choose the best of
both programs.  This sounds great on paper, but doesn't work
in practice.  The first hurdle is the difficult problem of
deciding which program does each thing better.  This may only
occasionally be obvious.  But even more of a problem is the
fact that many ideas are just not compatible with other ideas.
Ed probably does a lot of stuff that just wouldn't work for
Franz.  Or Franz just does it differently.  Null move comes
to mind for instance, Ed doesn't do this, Franz does it heavily.
But since Ed does something else completely different he probably
has a whole bag of tricks designed to work specifically with
this.   I can't even begin to explain to you how difficult such
a project would be especially for such dissimilar programs.
Now if the two programs were more similar, then you might get
less conflict of ideas, but then what do you have to gain if
the programmers don't have anything new to give each other?

And this is part of the reason I was so adamant when I said
a chess program is a unique work of art.  You can't just plug
in elements of one program, mix and match and come up with
a Frankenstein program that is any good.  It will be a poor
Frankenstein, nothing really quite works the way it should.

Please don't think I believe that cooperation cannot be a benefit
or that you cannot possibly gain from having a team.  Maybe a
more accurate way to express my belief is to say that you are
unlikely to benefit very much from having anything more than
a complete team.  And when I say complete I mean it may very
well be composed on one or two members, whatever it takes to
have all the important "know-how" covered.

- Don




This page took 0 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.