More fuel for the cloning argumentation fire

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

More fuel for the cloning argumentation fire

Post by sje »

More fuel for the cloning argumentation fire:

As I've mentioned earlier, I'm re-writing Symbolic's C++ core to use a different thread model that's simpler, more flexible, and immune to mysterious once-a-week deadlock problems. I had hoped to get this going for CCT 11, but it looks like rather more development time will be needed.

In any case, what I have completed is a portable multithreaded mate finder that efficiently uses all the cores on a machine. It can be trivially extended to run on multiple networked machines with each machine running the program in server mode. This is not a big deal by itself; others could write the same program. But what if I configure a regular chess engine of my own to connect to my distributed mate finder during an event? That would be okay as I've written everything myself, just like I wrote my own tablebase generator and its accessing code (just like my own book with its accessing code).

But what if I make the distributed make finder public as I did with my tablebase sources? Could others use the mate finder subsystem like they can use my tablebase subsystem without impunity? Having a distributed mate finder could really boost an engine's performance by doing specialized calculations that, when successful, could grant an instant victory by supplying unarguably certain results.

There is a slippery slope here.
User avatar
Matthias Gemuh
Posts: 3245
Joined: Thu Mar 09, 2006 9:10 am

Re: More fuel for the cloning argumentation fire

Post by Matthias Gemuh »

In other words, what if my engine plays chess by passing the board position to freeware Rybka before each move, and receiving back a best move suggestion.

Matthias.
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: More fuel for the cloning argumentation fire

Post by Tord Romstad »

sje wrote:But what if I make the distributed make finder public as I did with my tablebase sources? Could others use the mate finder subsystem like they can use my tablebase subsystem without impunity?
Obviously not, in my opinion. But then, I also don't think anybody else should be allowed to use your tablebase subsystem.

Tord
Dann Corbit
Posts: 12541
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: More fuel for the cloning argumentation fire

Post by Dann Corbit »

That's really strange.

Tablebase subsystems don't make engines play stronger, only prettier (if use is done right -- they can also make engines play commical chess like throwing away queens because they see a tablebase win afterwards).

Now, as far as entering contests -- I think anyone who runs a contest should be allowed to make any rules they choose. For instance, if you have read a single line of code from someone else's program or read a single article on chess programming -- you're not allowed to enter! That's their right.

But if the Rybka author today made the source code of Rybka 3.0 public domain then anyone should be able to use it with impunity because that is what society has decided about that kind of license.

I use free tools all the time in my work. I talked our company into using PostgreSQL and now we use it all the time. We don't pay a dime for it either (in fact, some of the code in PostgreSQL was written by Larry McGhaw and myself -- it was used to enhance the Windows port of PostgreSQL). We use GCC and sourceforge projects with appropriate license. I am currently trying to talk our company into becoming experts with :
http://sourceforge.net/projects/stxxl/
and I am also advocating the use of Boost.

I do understand that people who have spent 6 months developing their own tablebase system might be a bit miffed at someone who tacks one on in 15 minutes that was written by someone else and then competing in a contest.

But Crafty uses someone else's tablebase files, as do (quite frankly) most other strong engines.

Is the development of the C++ standard library also something that should be used without developing your own versions of each of these routines? After all, the comprise several orders of magnitude more work than something as simple as a tablebase.

Not allowed to use someone else's tablebase system?

I'm shocked.
Gian-Carlo Pascutto
Posts: 1243
Joined: Sat Dec 13, 2008 7:00 pm

Re: More fuel for the cloning argumentation fire

Post by Gian-Carlo Pascutto »

You're confusing the global advancement of software by any legal means with the programming contest that is making chess engines.

For the chess engines programming contests, it makes sense to have all essential chess playing code by the author itself. Nobody is making such assertions about library code that does NOT have anything to do with chess.

Outside of these competitions, you're free to make and play with your own Fruit clones.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: More fuel for the cloning argumentation fire

Post by sje »

Dann Corbit wrote:Not allowed to use someone else's tablebase system? I'm shocked.
While I disagree with Tord on this point, he is certainly being consistent.

I think that most people would agree that using a third party tablebase subsystem is permissible if the subsystem author allows such use and the use is publicly disclosed.

But most would say that using my distributed mate finder subsystem in an event should be forbidden. (Well, I guess it would be okay for me to use it.) But why? The mate finder can be considered as a limited tablebase generator that produces a very small amount of tablebase information on an as-needed basis.

The issue of allowing the use portable distributed mate finder will become more important as my system (or someone else' system) becomes available. Inappropriate use will be very hard to detect and so we can expect the ethically challenged to illicitly connect a mate finder server without announcement.
Uri Blass
Posts: 10297
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: More fuel for the cloning argumentation fire

Post by Uri Blass »

Dann Corbit wrote:That's really strange.

Tablebase subsystems don't make engines play stronger, only prettier (if use is done right -- they can also make engines play commical chess like throwing away queens because they see a tablebase win afterwards).
I disagree and I think that it may be dependent on the engine.
I think that correct use of tablebases help engines to play stronger(maybe only by 10 elo points or 5 elo points).

Did people test all engines with tablebases and without tablebases?

I do not know about special tests of movei with tablebases and without tablebases(I did not test it) so I do not know if tablebases help movei to play stronger or not.

Uri
User avatar
Dr.Wael Deeb
Posts: 9773
Joined: Wed Mar 08, 2006 8:44 pm
Location: Amman,Jordan

Re: More fuel for the cloning argumentation fire

Post by Dr.Wael Deeb »

Uri Blass wrote:
Dann Corbit wrote:That's really strange.

Tablebase subsystems don't make engines play stronger, only prettier (if use is done right -- they can also make engines play commical chess like throwing away queens because they see a tablebase win afterwards).
I disagree and I think that it may be dependent on the engine.
I think that correct use of tablebases help engines to play stronger(maybe only by 10 elo points or 5 elo points).

Did people test all engines with tablebases and without tablebases?

I do not know about special tests of movei with tablebases and without tablebases(I did not test it) so I do not know if tablebases help movei to play stronger or not.

Uri
I test engines with tablebases....I don't see a reason to disable them....
Dr.D
_No one can hit as hard as life.But it ain’t about how hard you can hit.It’s about how hard you can get hit and keep moving forward.How much you can take and keep moving forward….
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: More fuel for the cloning argumentation fire

Post by michiguel »

Uri Blass wrote:
Dann Corbit wrote:That's really strange.

Tablebase subsystems don't make engines play stronger, only prettier (if use is done right -- they can also make engines play commical chess like throwing away queens because they see a tablebase win afterwards).
I disagree and I think that it may be dependent on the engine.
I think that correct use of tablebases help engines to play stronger(maybe only by 10 elo points or 5 elo points).

Did people test all engines with tablebases and without tablebases?
I will, at one point, test my own EGTBs (GTB, Gaviota table bases :-)). Looking at Gaviota playing with TBs sounds like it is way much stronger when few pieces are left. I have the feeling that one of the problems could be that in situation when it is fighting for a draw, it gets scared of lines that should be played anyway. However, there is a scary ghost at the end of the tunnel (a hit on the TB). If the opponent has TBs, it is fine (both see the same ogre), but if the opponent do not have TBs, maybe TBs should be ignored in disadvantageous positions. Maybe TBs help to secure wins, but it may help to lose quickly some others, for knowing too much.

Overall, I feel that TBs are helping Gaviota, but I do not have numbers to prove it, yet.

Miguel
Edit: It helps in testing because it moves immediately, cutting down some time.

I do not know about special tests of movei with tablebases and without tablebases(I did not test it) so I do not know if tablebases help movei to play stronger or not.

Uri
Dann Corbit
Posts: 12541
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: More fuel for the cloning argumentation fire

Post by Dann Corbit »

Gian-Carlo Pascutto wrote:You're confusing the global advancement of software by any legal means with the programming contest that is making chess engines.

For the chess engines programming contests, it makes sense to have all essential chess playing code by the author itself. Nobody is making such assertions about library code that does NOT have anything to do with chess.

Outside of these competitions, you're free to make and play with your own Fruit clones.
Now, I don't think that I have such confusion. I do agree that contest holders are allowed to set up any conditions that they like. And authors are also free to pick and choose the contests that I like.

But I see nothing wrong with proper use of freely available software, in accordance with whatever license it has associated.

So (for instance) if it is GPL, then all projects using that software become GPL. If it is Berkeley, then all projects using the software must advertize it. If it is public domain, then they can simply use it. All of this has nothing to do with competitions. For competitions, people can do whatever they choose (allow what they want, deny what they want, etc.).

As far as the Fruit, Glaurung, etc. code bases that are springing up -- I actually think they are a very good idea if done properly (IOW, proper attributions, following the license, etc.).

I also think that {for instance} Tord should look at what other people do with his code and borrow back any good ideas they have from it [if he wants to, of course].

For me (for instance) if I were to write a tablebase file and attach it to a chess engine and enter than engine in a contest, I would not be annoyed if someone else just bolted one on. The reward for me would be in successfully writing the tablebase. That someone else just used one is (in my view) *their loss* because they did not get the enjoyment of building one.

If I were to write my own book file and someone else just used (for instance) Ed's neat bookfile system -- again, I see no problem with it.

As for those holding contests -- they can certainly set the conditions that they choose.

I would never presume to tell someone not to use {for instance} Ed's book file or Eugene's tablebase file. But I would also suggest that they would have more fun if they made their own. And if someone said "You can't play in my contest because you didn't write that!" I would say 'You have nothing to cry about because he gets to make whatever rules that he likes.'

So I see the two concepts as completely disconnected