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.