Still waiting on Ed

General discussion about computer chess...
User avatar
Chris Whittington
Posts: 437
Joined: Wed Jun 09, 2010 6:25 pm

Re: Still waiting on Ed

Post by Chris Whittington » Wed Jul 06, 2011 4:49 pm

Sean Evans wrote:
Rebel wrote:There is nothing wrong Sean taking idea's from freeware source code.
Ed, I agree with you, taking an idea, such as "MinMax" is okay. If you plagiarize it is not okay. You stated the following:
Rebel wrote:I downloaded the latest Crafty (version 23.4) and the search exactly behaves as the Ippo's, Robo's, Fire's etc. quite contrary to previous versions.


If Crafty's eval behaves "exactly" like Rybka/Ippo* then you are implying plagiarism.

Cordially,

Sean
I would say he has taken a lot of things from a lot of places and put them together in his own creative way. What's wrong with that?

User avatar
Sean Evans
Posts: 173
Joined: Fri Jun 11, 2010 1:21 am
Real Name: Sean Evans

Re: Still waiting on Ed

Post by Sean Evans » Wed Jul 06, 2011 4:59 pm

Chris Whittington wrote:
Sean Evans wrote:
Rebel wrote:There is nothing wrong Sean taking idea's from freeware source code.
Ed, I agree with you, taking an idea, such as "MinMax" is okay. If you plagiarize it is not okay. You stated the following:
Rebel wrote:I downloaded the latest Crafty (version 23.4) and the search exactly behaves as the Ippo's, Robo's, Fire's etc. quite contrary to previous versions.


If Crafty's eval behaves "exactly" like Rybka/Ippo* then you are implying plagiarism.

Cordially,

Sean
I would say he has taken a lot of things from a lot of places and put them together in his own creative way. What's wrong with that?
First statement: "taken a lot of things from a lot of places"

Depends on what was taken and from where

Second statement: "put them together in his own creative way"

Turning an idea into code is not plagiarism, copying and pasting code as Vas did is plagiarism.

Third statement: "What's wrong with that?"

Depends on the quantification of the first and second statements. The ramifications could range anywhere from "great work" to "banned from the WCCC for life".

Cordially,

Sean

User avatar
Chris Whittington
Posts: 437
Joined: Wed Jun 09, 2010 6:25 pm

Re: Still waiting on Ed

Post by Chris Whittington » Wed Jul 06, 2011 5:04 pm

Sean Evans wrote:
Chris Whittington wrote:
Sean Evans wrote:
Rebel wrote:There is nothing wrong Sean taking idea's from freeware source code.
Ed, I agree with you, taking an idea, such as "MinMax" is okay. If you plagiarize it is not okay. You stated the following:
Rebel wrote:I downloaded the latest Crafty (version 23.4) and the search exactly behaves as the Ippo's, Robo's, Fire's etc. quite contrary to previous versions.


If Crafty's eval behaves "exactly" like Rybka/Ippo* then you are implying plagiarism.

Cordially,

Sean
I would say he has taken a lot of things from a lot of places and put them together in his own creative way. What's wrong with that?
First statement: "taken a lot of things from a lot of places"

Depends on what was taken and from where

Second statement: "put them together in his own creative way"

Turning an idea into code is not plagiarism, copying and pasting code as Vas did is plagiarism.

Third statement: "What's wrong with that?"

Depends on the quantification of the first and second statements. The ramifications could range anywhere from "great work" to "banned from the WCCC for life".

Cordially,

Sean
Oh, I thought Hyatt had taken lots of ideas from lots of places and put them together creatively. Why should he be banned for that?

oudheusa
Posts: 20
Joined: Tue Jun 15, 2010 9:08 am

Re: Still waiting on Ed

Post by oudheusa » Wed Jul 06, 2011 7:09 pm

BB+ wrote:
The Dutch seem to keep me busy, as I see elsewhere that Zappa is now also hearsayed to be Fruit-ish (except the king safety)...
The pleasure is ours ;-) But thanks for taking a look at this. I can not judge the technical proof, but you seem to be one of the unbiased persons in this discussion.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Still waiting on Ed

Post by hyatt » Wed Jul 06, 2011 7:20 pm

Rebel wrote:This is going to be long I am afraid....

I downloaded the latest Crafty (version 23.4) and the search exactly behaves as the Ippo's, Robo's, Fire's etc. quite contrary to previous versions.

And you said it yourself, just yesterday in CCC, the relevant quote in question:
S. Taylor wrote: So the ippo or robbo (in official events, till now) would be rybka itself, wouldn't it?
Bob Hyatt wrote: Unproven, but suspected, so probably yes. Of course, there is the same idea for Fruit/Rybka.:)
So you took contaminated ideas you suspected they were the origin of the hacked Rybka and used them in Crafty.
I have asked, _repeatedly_ for specifics about such "contaminated ideas that I took." I asked for specific examples, and it would be even better to verify that the supposedly "copied ideas" are not in Crafty versions that pre-date the release of ip/robo*. To date, you have provided nothing, except for this same vague accusations.

Please tell me where the search "behaves exactly as ..." quite contrary to previous versions. Here is a challenge for you, since you want to put yourself on a spot. Compare the search in version 23.4, to the search in version 22.4, which is a couple of years old. You will have to work around the "collapse" where I got rid of SearchRoot(), Search(), etc. and Quiesce(), QuiesceChecks() and ended up with a single search, and a single quiesce. But once you do that, tell me _exactly_ what changes are in search.

Ball is in your court...



And you know what?

It does not matter.

It's not the issue.

The hacker is hacked and his secrets are in the open for everybody to see. I can even see the irony of that. Use it by all means. The whole thing has been so ugly let's make the best of it. Programmers can profit. It's good for the progress of computer chess.

What I very much dislike is the moral side and by that I mean you. The verdict on Vas is right. And the penalties are harsh. While every other programmer involved is silent and show some empathy for the total abasement in public among his colleagues, his fans, his co-workers, his consumers and on top of that in the mainstream media. It's a punishment for life. That kind of shame. It's enough.

But not for you. You will not rest to trample Vas until you have squeezed the last drop of blood from his vessels while in the meantime using parts of his stolen legacy. I don't know what is more ugly.

After all this whole issue is about moral and ethics.
It is also about making ridiculous false accusations. As you have done...

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Still waiting on Ed

Post by hyatt » Wed Jul 06, 2011 7:25 pm

BB+ wrote:
I downloaded the latest Crafty (version 23.4) and the search exactly behaves as the Ippo's, Robo's, Fire's etc. quite contrary to previous versions.
Perhaps I am anserine (gooselike) to take this seriously, but I will look at relevant search.c files and get back to you (probably Friday) with an opinion. The latest Crafty version prior to Fruit 2.1 is 19.19 I think, but as you say IPPOLIT, it seems that 22.9 should suffice. Maybe 22.1, as that version pre-dates Rybka 3 (there's a "strange" 10-month gap from 22.1 in Jan 2008 to 22.2 in Nov 2008, and R3 was Aug 2008).

The Dutch seem to keep me busy, as I see elsewhere that Zappa is now also hearsayed to be Fruit-ish (except the king safety)...
I believe that "strange gap" was our cluster-testing where we tuned every eval term independently. Then, I believe, 22.3 is also a little delayed as I think that is where we tuned the search parameters with cluster testing, removed some extensions, tuned the futility pruning margins, etc... Don't quote me on that latter however, as it could have been done over a couple of versions.

There is one issue that will make this more complex, in that somewhere around 23.4, the duplicate functions in search and quiesce were eliminated, so that there is no SearchRoot() or QuiesceChecks() and such. But that is all that was done to the 23.4 search. As debugging showed, it was "enough". :)

And if this "fruitish" stuff continues much longer, the secretariat is going to have one less member. This could turn out to be a full-time job...

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Still waiting on Ed

Post by hyatt » Wed Jul 06, 2011 7:29 pm

SInce Mark is going to look at this. I will also produce a "pseudo-code" search for Crafty and robo? ippo? I know I have the source for one of them where I tried them on the cluster, hopefully.

I'll try to keep it simple and just put 'em side by side" as to who does what, in what order, and how, but in something a bit shorter than hundreds of lines of code.

It might have to turn into a narrative, in thinking about it, if they are too different, which I know they are. But...

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Still waiting on Ed

Post by hyatt » Wed Jul 06, 2011 7:30 pm

BTW, I am going to bill someone for a new bullshit detector. This thread has already burned mine out.

Subtle nonsense. "Hyatt copied". "what is wrong with that?" Leading to "what is wrong about Vas copying?"

Cute. Really cute. Doesn't pass the bullshit test, however...

User avatar
Rebel
Posts: 515
Joined: Wed Jun 09, 2010 7:45 pm
Real Name: Ed Schroder

Re: Still waiting on Ed

Post by Rebel » Thu Jul 07, 2011 10:07 am

hyatt wrote:I have asked, _repeatedly_ for specifics about such "contaminated ideas that I took." I asked for specific examples, and it would be even better to verify that the supposedly "copied ideas" are not in Crafty versions that pre-date the release of ip/robo*. To date, you have provided nothing, except for this same vague accusations.

Please tell me where the search "behaves exactly as ..." quite contrary to previous versions. Here is a challenge for you, since you want to put yourself on a spot. Compare the search in version 23.4, to the search in version 22.4, which is a couple of years old. You will have to work around the "collapse" where I got rid of SearchRoot(), Search(), etc. and Quiesce(), QuiesceChecks() and ended up with a single search, and a single quiesce. But once you do that, tell me _exactly_ what changes are in search.
Ball is in your court...
The lower branch factor.

It's origin: Rybka. The base and origin of the success and the 3-5 years domination of Rybka.

We are both programmers and around too long, let's not fool each other.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Still waiting on Ed

Post by BB+ » Thu Jul 07, 2011 6:12 pm

Here is my initial comparison of Crafty 22.1 search.c to that in Crafty 23.4.

There are a few irrelevant differences in declared variables. Both then peek at the clock, depending on the node count. A repetition check is made. A hash probe is made, with 22.1 having more flags (EXACT/LOWER/UPPER and AVOID_NULL_MOVE) than 23.4 (HIT/MISS/AVOID). An EGTBProbe is done.

Then null move is considered. Both use null_depth as 3 throughout. The 22.1 version has a PLY define to allow fractional increments. The arithmetic differs slightly (1-beta in 22.1 versus -beta+1 in 23.4). The 22.1 version uses mate threats as a "feedback" item from null move, while 23.4 seems not to do so.

Both then do IID, where it seems 23.4 has an SMP difference. So far, so irrelevant, IMO.

The main loop over moves then commences. The 22.1 version has SearchControl() for extensions/reductions, while 23.4 does it inline. One difference is that 22.1 extend mate threats and one-replies. Both extend moves that give check, but the 23.4 version has an SwapO function to determine whether it is "safe". Both then do some LMR, the conditions being quite similar, involving REMAINING_MOVES phase, not extended (or: not in check and doesn't give check), moving piece is not a passed pawn, move is not a capture/promotion, depth is not too close to horizon. The number of moves_searched can affect the size of the LMR reduction in the 23.4 version.

Except for that last sentence, I haven't seen anything of interest yet. Next is the futility, which is more of interest (my guess is this is what Ed is talking about), and after that there is some routine stuff about re-searching, SearchParallel in one version, etc. So I'll focus on the futility.

In the 22.1 version, the futility/razoring is from Heinz essentially: if depth is less than 3 and Material is worse than (1+bishop_value)/2 from the scout value, drop to qsearch; and if depth is 3 or 4 and Material is worse than (1+queen_value)/2 from scout value, reduce by a ply.

In the 23.4 version, this has been replaced by sharper "forward pruning":

Code: Select all

if (ply > 1 && depth < pruning_depth && moves_searched && // pruning_depth is 5
              MaterialSTM(wtm) + pruning_margin[depth] <= alpha) {   
            tree->moves_pruned++;
            continue;
          }
So the use of moves_searched in LMR reductions and replacing Heinz futility/razoring via sharper pruning are the main differences I see. The next step (maybe I will address it in a later post) would be to try to determine if the specifics of either could be said to derive from other engines. My impression is that the "idea" of the latter is quite old (back to the days when moves had to be pruned to reach even 2 or 3 ply). The notes say the values were derived from cluster tested, with the pruning_margin array as {0, 120, 120, 310, 310, 400, 400, 500} (note that only the first few values matter, due to pruning_depth). Note that Crafty compares alpha to Material, while others seem to compare to some sort of evaluation.

The Crafty main.c notes that 22.2 implemented "extended futility", while 23.1 talks about the new method (calling razoring redundant with LMR).

Post Reply