What the computer chess community needs to decide

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

Moderators: hgm, Rebel, chrisw

User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Ideas for the future

Post by Don »

mjlef wrote:There is a growing community of programmers that like the idea of public sources they can modify and improve. But I do not think we want to see a bunch of nearly identical programs competing against each other. As Don states, since tournaments cannot have a large number of rounds, multiple entries of nearly identical programs greatly increases the chance that one of the nearly identical programs will win. So, how do we deal with the open source issue?

I propose each program must reveal the code base used in their program (either original, or based on program X). if more than one program based on X enters the tournament, a pre-tournament must be held with a few games between each of the programs based on X. Only the winner of this pre-tournament would be allowed to compete in the final tournament. Also, derivatives would have to follow the GPL or other licence conditions, of course, which might disallow this.

This does not deal with the issue of clones who hide the origin. And it would probably annoy the original authors if their program gets surpassed by a derivative. If this is the set rule, it might make people think twice before releasing code. But it does have the nice feature of increasing the likelihood that the strongest derivatives will play, and seems like a fair way to proceed.

Mark
The way I feel about it is that it's ok to work on some common code base, even fun. However, you should then be considered part of a larger team.

Each potential author needs to make the decision - does he want to write his own original program and take full credit for how weak or how strong it is, or does he want to work on somebody else's program and be part of a much larger team effort?

Another way to go is to start with the strongest open source code in order to move immediately to the front of the line and start working from there, while representing this as your own original program with closed sources.
User avatar
hgm
Posts: 27854
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: What the computer chess community needs to decide

Post by hgm »

Gian-Carlo Pascutto wrote:Uh, yes. Well, about 2 I'm pretty sure. I didn't try 3 or 4 yet. Also depends on what you call a "major hit in strength" of course. Note that I don't need to finish 1 and 2: I just need to have the weaker engine strong enough that it can pick some points or half's of most of the other programs, and then play a massive blunder when it's playing me. That's enough to noticeably boost my chances for the end victory with the stronger engine.
This is cheating of a different and independent nature. It can also be done between programs that have separate authors. ("You take the title this year, then it will be myturn next year.") IIRC there already have been accusations like that at past WCCC.
User avatar
hgm
Posts: 27854
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: What the computer chess community needs to decide

Post by hgm »

Don wrote:This isn't about whether you stand a good chance, it's about increasing your chances period. If there were 100 entries and I had the weakest program, my chances are slim. But if I had the 5 weakest programs my chances have enormously increased - although they still remain slim.
I am just not worried if you can increase your chances from 1% to 1.01%. To 5% (If they were approximately equal) would be serious, and even then it might not be worth the trouble. Increasing it from 20% to 30% would be, though.

But I did not want to suggest that different tunings of the same engine should be allowed. (Although in practice it would be difficult to prevent if one was a closed-source clone of the other, enterered by a different person. Especially in on-line events.) My criterion would be that there was no common code. So now you have anengine that is so good that it stands 20% chance to win the title. And to increase your chances to 30% you would have to do 4 complete re-writes, sufficiently mistuned to pass the similarity test (which willcertainly be applied to engines coming from the same author). Do you think it would still be could strategy then? Or would your chances have been improved more if you would have spent all your time onimproving your strongest version, rather than creating phoney rewrites?
Why are you putting all those constraints on this? Why do they have to pass any tests? The argument is that we don't care about authorship. I want to enter 3 program with 3 different books for instance to see which book does best - and they are clearly 3 different entities. Or perhaps I want to try 3 different versions with slightly different mobility values for the bishop.
Exactly because I do not care about authorship they have to pass the same tests as engines from different authors. And I would not want to have nearly identical engines participate.

Merely having a different book does not make it a different program. There would still be shared code.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: What the computer chess community needs to decide

Post by Don »

hgm wrote:
Don wrote:This isn't about whether you stand a good chance, it's about increasing your chances period. If there were 100 entries and I had the weakest program, my chances are slim. But if I had the 5 weakest programs my chances have enormously increased - although they still remain slim.
I am just not worried if you can increase your chances from 1% to 1.01%. To 5% (If they were approximately equal) would be serious, and even then it might not be worth the trouble. Increasing it from 20% to 30% would be, though.

But I did not want to suggest that different tunings of the same engine should be allowed. (Although in practice it would be difficult to prevent if one was a closed-source clone of the other, enterered by a different person. Especially in on-line events.) My criterion would be that there was no common code. So now you have anengine that is so good that it stands 20% chance to win the title. And to increase your chances to 30% you would have to do 4 complete re-writes, sufficiently mistuned to pass the similarity test (which willcertainly be applied to engines coming from the same author). Do you think it would still be could strategy then? Or would your chances have been improved more if you would have spent all your time onimproving your strongest version, rather than creating phoney rewrites?
Why are you putting all those constraints on this? Why do they have to pass any tests? The argument is that we don't care about authorship. I want to enter 3 program with 3 different books for instance to see which book does best - and they are clearly 3 different entities. Or perhaps I want to try 3 different versions with slightly different mobility values for the bishop.
Exactly because I do not care about authorship they have to pass the same tests as engines from different authors. And I would not want to have nearly identical engines participate.

Merely having a different book does not make it a different program. There would still be shared code.
Well then, you must be agreeing with me!

By the way, about odds. Most humans do not make fine distinctions in odds and it hurts them or even kills them. For example many people engage in dangerous behavior when a modification is much safer. The difference in "much safer" and their present behavior may only be to double their chances of not being killed each time they do it and the odds of that happening in either case if very slim. However, by engaging in this behavior every day, their life expectancy drops dramatically. Things that come to mind is "reckless driving", "smoking cigarettes", "doing drugs", "not washing your hands before eating", etc. None of these things has much of an impact if considered in isolation, but we should not consider them in isolation. If something you can do doubles your chances of winning a tournament, you should do it even if your chances are still small. I don't gamble or buy lottery tickets, but if you were given one for free, or two, wouldn't you rather have two? They say your chances of getting hit by lightning is higher than your chances of winning on one lottery ticket, but still 2 tickets doubles your chances.

In similar fashion, if I can do something that adds 1 ELO to the strength of my program, I do it. 1 ELO is very unlikely to make a difference in a tournament, but after I gain 1 ELO I will try to gain another one, and then another one, etc.




But even the dangerous behavior is not likely to kill them if they do it only once.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What the computer chess community needs to decide

Post by bob »

paulo wrote:
SzG wrote:
paulo wrote:Today only a complete asshole would start coding a new engine from scratch, i.e., ignoring all the (best) available ideias and resources.
The two are not the same. You can start from scratch using all the available ideas together with yours. And you can start from a complete code and put in your ideas.
Nope. It's exactly the same thing as long as you agree the existing code you are basing is the best. Furthermore I strongly believe any experienced software developer agrees with this.
Here is one that does not. Copying source is not "software development" by the way, it is "software plagiarism". HUGE difference...
h1a8
Posts: 512
Joined: Fri Jun 04, 2010 7:23 am

Re: What the computer chess community needs to decide

Post by h1a8 »

hgm wrote:
h1a8 wrote:There are no current active authors who wrote engines without studying others. To believe so is asinine. If you think you are right prove me wrong (impossible to do).
It is your statement that is asinine. I had never studied the source of another engine in my life, when I wrote my engines. Not even TSCP. (Except for the WinBoard protocol driver, because it was a faster way to learn WB protocol than reading the official protocol specs. But I don't consider a protocol driver part of the 'engine'.)

So you are taking about things you have no knowledge of, and for which it is obvious to everyone you cannot possibly have any knowledge of. Have you interviewed even a single engine author before coming to this silly conclusion? If you say it is "impossible to prove", that only means you are not prepared to accept anything as proof, and just want to withdraw into your own solipsistic World that you declared to be reality, no matter what the people that know say. After all, they could all be lying, right? They must be lying if the contradict you...
No offense but I don't believe you Sir. How would you know about Alpha Beta then unless you invented it.
Either you started to build a chess engine WITHOUT having seen another source (or piece of source) or you later viewed another source and used the ideas to improve your engine. Although I believe more in the former I most certainly believe at least one happened though.

Which engine did you write by the way?
LucenaTheLucid
Posts: 197
Joined: Mon Jul 13, 2009 2:16 am

Re: What the computer chess community needs to decide

Post by LucenaTheLucid »

h1a8
Posts: 512
Joined: Fri Jun 04, 2010 7:23 am

Re: What the computer chess community needs to decide

Post by h1a8 »

LucenaTheLucid wrote:Several I think:

http://home.hccnet.nl/h.g.muller/chess.html
Oh well he shouldn't have responded. In my original post I said NO CURRENT author (engines that are still being developed TODAY).
User avatar
Peter Skinner
Posts: 1763
Joined: Sun Feb 26, 2006 1:49 pm
Location: Edmonton, Alberta, Canada
Full name: Peter Skinner

Re: What the computer chess community needs to decide

Post by Peter Skinner »

This is how things break down for me:

1. It seems that Rybka started out being an original program. In CCT6, it played about as well as I would expect GNUChess to fair.

2. Fruit came out and Fabian released his code to the World.

3. Rybka misses CCT 7, and shortly after emerges as the strongest program on the planet. Many people including myself called it a Fruit clone at that time, and we were scolded for it. Just as we are now when we say Houdini is nothing more than RobboLitto with some tweaks. (If you really believe that Robert Houdart started from scratch and coded 100% of Houdini himself, then I have a bridge to sell you.)

4. All the bitching and moaning over the past 5 yrs was really pointless as it seems that Rybka (beta) was in fact a clone/derivative of Fruit. Since that time Vas has went on to win nearly every tournament he has entered and made some good money from his program.

5. It is not known today if any or just how much is remaining from the Rybka 1.0 beta that is believed to be an improved Fruit. Until it is proven that Vas really has an original program, he shouldn't be allowed to participate in competitive tournaments without the permission of Fabian.

6. Under no circumstances will the Ippolit family of engines _ever_ participate in the CCT events. It is clear to me they are a reversed engineered product, and are less than 1% original.

7. I really have nothing against people testing it in their rating lists. Being that I already have a base rating for Fruit and Rybka, I believe you are just wasting your time. Then again, my time is worth more than the air I breathe, so I don't waste it.

8. I have nothing against Vas personally. After 5 yrs of talking to him via email, he has always been very polite and accommodating. He has freely given me every single version of Rybka that I have asked for. Thus why I never complain about this or that bug or the failed release of a patch. You never look a gift horse in the mouth. He has also done this knowing that I considered Rybka a Fruit clone.

9. It is quite apparent that the "newer" members here are the "I could give a crap, just give me the strongest possible engine" crowd, and the older members are the "respect for authors" crowd. I am obviously in the latter category.

For now, I am taking the wait and see approach before deciding anything further. Evidence with eventually have to be produced and a ruling will be handed down. Once that is done, this conversation will probably take a dramatic turn.
I was kicked out of Chapters because I moved all the Bibles to the fiction section.
SuneF
Posts: 127
Joined: Thu Sep 17, 2009 11:19 am

Re: What the computer chess community needs to decide

Post by SuneF »

Don wrote: I think there are 2 major issues that we should consider separately, even though there may be some degree of overlap. One of them is purely legal (what you can legally get away with) and the other is ethical.

[snip]
I think THAT is what we need to decide. We all have our various viewpoints on this which I think should be respected, but I think this is really at the heart of the matter and what we SHOULD be talking about but rarely do.
Don, I think agreement on the ethics is going to be difficult due to peoples different agendas. It looks like there are basicly 4 groups who are arguing from different perspectives and with different goals in mind. I'd divide them like this:

One group consideres chess programming to be a science.
This group is usually in favor of open source and, given proper credit, derivatives.
Just make the engines as strong as possible no hold bars.
Push the frontier of the "science" in a "let's all cooperate as one big happy family" kind of mentality.

There is also a group who sees it as a business.
They want to make money and protect their investment.
They consider copying and reverse engineering to be industrial espionage.
Yet at the same time they usually have no problems copying a bit themselves as long as they feel it is within the law/don't get caught.
Code reuse, especially from open source engines is okay, it's not really espionage and it's the clever thing to do from a development efficiency point of view. Rewriting from scratch seems pointless and idiotic to them.

Then there is the group who mainly consideres it to be a sport or competition.
They feel that rules and ethics should be applied which go beyond the law.
The noble goal is to make the competition fair and fun for all.
Copying and deriving is considered cheating and unfair, doping is just not allowed.
They believe that having secrets is part of the fun and excitement, it tends to create a certain aura of mystique around each engine.

Then there is.. shall we call it the troll group.
People who just tend to make trouble and contribute with nothing original or interesting. Their exact agenda is unclear, perhaps they are bored and in need of attention.

I guess there are all sorts of combinations too, but usually one aspects tends to dominate.
Now we can argue all night and day, which we have, but a competition guy is likely not going to agree with the ethics of a science guy.