To Jeroen and interested minds, re. Tiger node count

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

Moderator: Ras

User avatar
rhollay
Posts: 150
Joined: Wed Mar 08, 2006 8:26 pm

Re: To Jeroen and interested minds, re. Tiger node count

Post by rhollay »

mclane wrote:you should plan a second career as kabberettist.
I'm afraid, not.
But could be a good astrologer, yes. Speaks much but says nothing.
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: To Jeroen and interested minds, re. Tiger node count

Post by kranium »

David Dahlem wrote:
kranium wrote:
David Dahlem wrote:
bob wrote: (2) the rybka/fruit/strelka issue is an interesting question because of GPL issues. He pointed out something I had not considered previously, namely that strelka/fruit have lots of similarities, and then Vas claimed that strelka was so much like rybka 1 that he was claiming it as his own code. Once you digest both of those points, there could be an issue one might have to deal with at some point down the road. The GPL is a legal document that can't be waved away.
.
The Strelka source and the Fruit source has been made public, right? I was just wondering ... Has anyone done detailed comparison, and posted the results? What percentage of Strelka and Fruit are identical, or very similar.

Regards
Dave
Hi Dave,

yes, i have spent considerable time on it, but i'm loathe to post anything.

...i believe the subject is just too controversial, sensitive, and risky for all concerned at this point.

don't forget, Rybka, Vas, etc., are enormously popular and strongly supported, an icon of the community. anything negative may be construed as blasphemy. (look what just happened to CT). it's clear that there are extremely powerful business interests concerned. one must be very careful when it comes to powerful players, money, profits, prestige, etc. for ex: the vast majority of 'corporate' whistleblowers are ostracized from society, harassed, made to suffer, and fired. it seems that challenging these powerful entities is akin to suicide.

in addition, unfortunately..., i think at this moment it may be far to easy for anyone concerned to simply avow or disavow any specific piece of code. (and if it's Juri's word against Vas and his legal team??)

Please Rolf! go easy with your response!! :D
Hi Norman

My question was about the public sources of Strelka and Fruit. I didn't mention Rybka or Vas at all. And how can anyone disavow code that has been made public? :-)

Regards
Dave

Hi Dave,

Vas says that Strelka is his, i.e. identical to Rybka:, so if we're talking about Strelka, i guess (acccording to Vas) we're talking about Rybka:
http://rybkaforum.net/cgi-bin/rybkaforu ... 8#pid39198

Best regards Dave!
Norm
User avatar
David Dahlem
Posts: 900
Joined: Wed Mar 08, 2006 9:06 pm

Re: To Jeroen and interested minds, re. Tiger node count

Post by David Dahlem »

kranium wrote:
David Dahlem wrote:
kranium wrote:
David Dahlem wrote:
bob wrote: (2) the rybka/fruit/strelka issue is an interesting question because of GPL issues. He pointed out something I had not considered previously, namely that strelka/fruit have lots of similarities, and then Vas claimed that strelka was so much like rybka 1 that he was claiming it as his own code. Once you digest both of those points, there could be an issue one might have to deal with at some point down the road. The GPL is a legal document that can't be waved away.
.
The Strelka source and the Fruit source has been made public, right? I was just wondering ... Has anyone done detailed comparison, and posted the results? What percentage of Strelka and Fruit are identical, or very similar.

Regards
Dave
Hi Dave,

yes, i have spent considerable time on it, but i'm loathe to post anything.

...i believe the subject is just too controversial, sensitive, and risky for all concerned at this point.

don't forget, Rybka, Vas, etc., are enormously popular and strongly supported, an icon of the community. anything negative may be construed as blasphemy. (look what just happened to CT). it's clear that there are extremely powerful business interests concerned. one must be very careful when it comes to powerful players, money, profits, prestige, etc. for ex: the vast majority of 'corporate' whistleblowers are ostracized from society, harassed, made to suffer, and fired. it seems that challenging these powerful entities is akin to suicide.

in addition, unfortunately..., i think at this moment it may be far to easy for anyone concerned to simply avow or disavow any specific piece of code. (and if it's Juri's word against Vas and his legal team??)

Please Rolf! go easy with your response!! :D
Hi Norman

My question was about the public sources of Strelka and Fruit. I didn't mention Rybka or Vas at all. And how can anyone disavow code that has been made public? :-)

Regards
Dave

Hi Dave,

Vas says that Strelka is his, i.e. identical to Rybka:, so if we're talking about Strelka, i guess (acccording to Vas) we're talking about Rybka:
http://rybkaforum.net/cgi-bin/rybkaforu ... 8#pid39198

Best regards Dave!
Norm
Yes, i understand, and knew that before i posted my question. But what would be the problem with simply showing the similarities in the Fruit/Strelka code, without making any false claims? Would this violate the CCC charter, or cause any legal problems? I am sure it would further stir up this hornets nest. :-)

Regards
Dave
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: To Jeroen and interested minds, re. Tiger node count

Post by kranium »

David Dahlem wrote:
kranium wrote:
David Dahlem wrote:
kranium wrote:
David Dahlem wrote:
bob wrote: (2) the rybka/fruit/strelka issue is an interesting question because of GPL issues. He pointed out something I had not considered previously, namely that strelka/fruit have lots of similarities, and then Vas claimed that strelka was so much like rybka 1 that he was claiming it as his own code. Once you digest both of those points, there could be an issue one might have to deal with at some point down the road. The GPL is a legal document that can't be waved away.
.
The Strelka source and the Fruit source has been made public, right? I was just wondering ... Has anyone done detailed comparison, and posted the results? What percentage of Strelka and Fruit are identical, or very similar.

Regards
Dave
Hi Dave,

yes, i have spent considerable time on it, but i'm loathe to post anything.

...i believe the subject is just too controversial, sensitive, and risky for all concerned at this point.

don't forget, Rybka, Vas, etc., are enormously popular and strongly supported, an icon of the community. anything negative may be construed as blasphemy. (look what just happened to CT). it's clear that there are extremely powerful business interests concerned. one must be very careful when it comes to powerful players, money, profits, prestige, etc. for ex: the vast majority of 'corporate' whistleblowers are ostracized from society, harassed, made to suffer, and fired. it seems that challenging these powerful entities is akin to suicide.

in addition, unfortunately..., i think at this moment it may be far to easy for anyone concerned to simply avow or disavow any specific piece of code. (and if it's Juri's word against Vas and his legal team??)

Please Rolf! go easy with your response!! :D
Hi Norman

My question was about the public sources of Strelka and Fruit. I didn't mention Rybka or Vas at all. And how can anyone disavow code that has been made public? :-)

Regards
Dave

Hi Dave,

Vas says that Strelka is his, i.e. identical to Rybka:, so if we're talking about Strelka, i guess (acccording to Vas) we're talking about Rybka:
http://rybkaforum.net/cgi-bin/rybkaforu ... 8#pid39198

Best regards Dave!
Norm
Yes, i understand, and knew that before i posted my question. But what would be the problem with simply showing the similarities in the Fruit/Strelka code, without making any false claims? Would this violate the CCC charter, or cause any legal problems? I am sure it would further stir up this hornets nest. :-)

Regards
Dave
Dave-

i didn't answer your question:
and how can anyone disavow code that has been made public? :-)

if someone is powerful/influential enough to simply claim source code as his own, he likely has the power/influence to disavow it...
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: To Jeroen and interested minds, re. Tiger node count

Post by Rolf »

bob wrote: I don't follow the thread that leads from "reverse engineering" to "wrong". If you don't want someone to reverse engineer your idea, you patent the idea, then there is no issue. But often, in any discipline, simply knowing that something is possible leads to how it was done. If you don't know that something is possible, then you might not be willing to expend the resources to figure out how. That happens all the time and I am mystified as to how this is "wrong".
But this what is exsactly happening in our example. Vas once had a beta for free and some took this as sort of invitation to get the source code by r.eng. But apparently nobody was keen enough to publish Rybka stuff. So the following happened. Evil criminals IMO created a copy of Rybka 1 beta which was for free and called it Str___ and threatened to publish Str__ as open source. So here you hasve a clear mafia-like threat/ blackmail. To end all that Vas simply claimed that Str__ is his own program before the criminals could continue their blackmail. So that we have actually the following threat in a remake of the former mafia-like crime, Bob.

It is a Theron, in your eyes still a honorable programmer who announced that people have now compared Str___ (guess what!!) with Rybka and Fruit. And Theron wanted now to publish all the similarities in Rybka 1 beta, Fruit and Str___! Is this crazy in your eyes or is this a completely normal research the scene has done over all the pastr 30 years with all the new commercial programs, to finally reveil all their secrets? No?? How come that no?

Because, as you want to insinuate, the former commercial big ones didnt cheat but as Theron has written, Vas allegedly has obfuscated his output because he wanted to hide that he cheated with his code. And to make this a real scandal, you agreed with such idiotic allegations, isnt it? Didnt you agree?

Then in your last post to me you ask me why perhaps it's a fact that with these former leading commercial progs similar campaigns did NOT happen and you want to insinuate the same evil trick by insinuating that in computerchess there were no cheaters in the last 30 years, so that if now such a campaign happens it can only mean that really really promissed Rybka and Vas have done something wrong. That is what Bob is now signing?????? Give me break, Bob. What we have is a campaign supported by all these former successful commercial buddies who actually know that with Rybka their own successes are really meant in the past forever because if they cant get to the secrets to Rybka without crimes or cheats, then they will always remain second best and that doesnt please these former big ones. And because of the many connections, just like in the 'family' (Marlon Brando!), the organizers and officials also want to re-install the former rank order. So, if I were official in Pejing I would force Rybka to be dismantled , be ripped and reveiled or I would forbid Rybka to participate in all future championships. Exactly what happened with List in Graz. And then Fritz or Shredder or Junior will share number one again. And if they didnt die, the will live forever..........

Is this the scenario, Bob?
-Popper and Lakatos are good but I'm stuck on Leibowitz
adams161
Posts: 626
Joined: Sun May 13, 2007 9:55 pm
Location: Bay Area, CA USA
Full name: Mike Adams

Re: To Jeroen and interested minds, re. Tiger node count

Post by adams161 »

If i was watching a movie about world war two i would undertand its meaning at that time to mean someone who joined the nazis.

If i saw the use of the word collaborator or collaboration in any academic or scholary setting such as if the newspapper refered to the work of someone in a study and who collaborated with him i would instantly understand its more generic meaning.

In fact in english to use collaborator to refer to a nazi sympathizer is the much less common use of the term and it would only be thought of in that sense if the context otherwise pointed to the nazi erra.

Otherwise i heard collaborator and collaboration all the time in english and it always means to work with.

Mike
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: To Jeroen and interested minds, re. Tiger node count

Post by kranium »

Rolf,

isn't it possible that this has nothing to do with envy? isn't it possible that Bob, CT, etc., are simply concerned with fairness and truth?
User avatar
tiger
Posts: 819
Joined: Sat Mar 11, 2006 3:15 am
Location: Guadeloupe (french caribbean island)

Re: To Jeroen and interested minds, re. Tiger node count

Post by tiger »

Tony wrote:
Rolf wrote:
bob wrote: I'll state my view one more time. The node count obfuscation has _no_ justification, other than the simple fact that it is used to hide internal details. I don't have a problem with the "hiding". I do have a problem with knowingly producing bogus values. If you want to hide something, hide it. Don't disguise it. That's simple enough.

As far as the "clone issue" my only point was that by claiming strelka, those that use the argument to others of "you haven't seen the source for Rybka so you can't possibly conclude anything about it" are simply wrong. Because since Vas claimed Strelka as _his_ code, a clone of Rybka 1, then he has inadvertantly put "his" source code in a public light, where inspection is possible...

I have not drawn any conclusion about whether Rybka is a derivative of Fruit, gnuchess, or sasquatch. I only commented on the fact that strelka is there for anyone to look at, analyze, and draw conclusions that apply to Rybka 1 as well. I've implied nothing more, nothing less. The node counts are bogus, and intentionally so. As far as the clone issue, I have not looked at any of this and don't intend to.
Is Dann Corbit for you a nobody? He and two others have analysed the dirty copy. Result, read Corbit for yourself, nothing. That was almost 2 years ago. And now it's kosher if a Theron, who has practically left computerchess Tiger, he is reserved a stage here for such a smear campaign. You say he never insulted with bad wording or such. I say the whole campaign is it. Last time all was discussed, now the same procedure as every year. Not kosher IMO. Ok, I think my position has become clear enough. Technically I cant tell anything for obvious reasons.
And I disagreed back then. And most (almost all) programmers I have met during tournements agreed with me. But no comercial did so openly. And because they didn't, I was overshouted by all the "what do you care", "it plays well, so Vas is holy" and "you must be jalous" posters.

Now a commercial speaks up. And I remembered people about Vas claiming the Strelka code. ( The fact that Bob thinks Christophe wrote that, proves how the human brain works)


It is correct that you were the first one to remind us of this fact.

I did not even think about it when the thread started.

At the moment you reminded us of Vas' claim, I immediately remembered this week when I was reading the Strelka source code and did not believe it was Rybka, thinking instead that it was Fruit modified to play like Rybka. And then Vas came and confirmed it was Rybka. Wow!



// Christophe


I was right back then, and I am now.

The only chessprogrammers I met, that diagree with me stated "I actually don't care about chess tournements"

Tony
Uri Blass
Posts: 10889
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: To Jeroen and interested minds, re. Tiger node count

Post by Uri Blass »

tiger wrote:
Tony wrote:
Rolf wrote:
bob wrote: I'll state my view one more time. The node count obfuscation has _no_ justification, other than the simple fact that it is used to hide internal details. I don't have a problem with the "hiding". I do have a problem with knowingly producing bogus values. If you want to hide something, hide it. Don't disguise it. That's simple enough.

As far as the "clone issue" my only point was that by claiming strelka, those that use the argument to others of "you haven't seen the source for Rybka so you can't possibly conclude anything about it" are simply wrong. Because since Vas claimed Strelka as _his_ code, a clone of Rybka 1, then he has inadvertantly put "his" source code in a public light, where inspection is possible...

I have not drawn any conclusion about whether Rybka is a derivative of Fruit, gnuchess, or sasquatch. I only commented on the fact that strelka is there for anyone to look at, analyze, and draw conclusions that apply to Rybka 1 as well. I've implied nothing more, nothing less. The node counts are bogus, and intentionally so. As far as the clone issue, I have not looked at any of this and don't intend to.
Is Dann Corbit for you a nobody? He and two others have analysed the dirty copy. Result, read Corbit for yourself, nothing. That was almost 2 years ago. And now it's kosher if a Theron, who has practically left computerchess Tiger, he is reserved a stage here for such a smear campaign. You say he never insulted with bad wording or such. I say the whole campaign is it. Last time all was discussed, now the same procedure as every year. Not kosher IMO. Ok, I think my position has become clear enough. Technically I cant tell anything for obvious reasons.
And I disagreed back then. And most (almost all) programmers I have met during tournements agreed with me. But no comercial did so openly. And because they didn't, I was overshouted by all the "what do you care", "it plays well, so Vas is holy" and "you must be jalous" posters.

Now a commercial speaks up. And I remembered people about Vas claiming the Strelka code. ( The fact that Bob thinks Christophe wrote that, proves how the human brain works)


It is correct that you were the first one to remind us of this fact.

I did not even think about it when the thread started.

At the moment you reminded us of Vas' claim, I immediately remembered this week when I was reading the Strelka source code and did not believe it was Rybka, thinking instead that it was Fruit modified to play like Rybka. And then Vas came and confirmed it was Rybka. Wow!



// Christophe
Vas claims proves nothing.
Vas probably had no time to read every line of strelka.

I think that move generator is the basis of the chess program.
Before I had even alpha beta I had a move generator.

The move generator of strelka has nothing to do with fruit
and I assume that Vas saw that it is his code so the natural response is to say that it is his code.

I doubt if Vas had time to read every line of strelka and reading part of it was enough to identify that he read rybka's code so he said that strelka is his own code.

Uri
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: To Jeroen and interested minds, re. Tiger node count

Post by Zach Wegner »

Uri Blass wrote:Vas claims proves nothing.
Vas probably had no time to read every line of strelka.

I think that move generator is the basis of the chess program.
Before I had even alpha beta I had a move generator.

The move generator of strelka has nothing to do with fruit
and I assume that Vas saw that it is his code so the natural response is to say that it is his code.

I doubt if Vas had time to read every line of strelka and reading part of it was enough to identify that he read rybka's code so he said that strelka is his own code.

Uri
Vas said "vast sections of code", and even compared the evaluations. Rick Fadden compared Rybka to Strelka and said they are identical. I've been comparing Rybka with Strelka and Fruit and there are definite similarities. The move generator is nothing, Strelka and Fruit have many similarities. It will be a while before we have enough evidence, so I'll give you a little something to chew on.

Strelka:

Code: Select all

  true_nodes = 0;
  pos_info_entry = Pos_info;
  memset(list_root, 0, 256 * sizeof(struct list_t));
  if (evaluate(pos_info_entry)) {
    gen_evasions(list_root, ~(pos_info_entry->mob[1]));
  }
  else {
    gen_captures(list_root, Board->mp[White], Board->mp[Black]);
    for (i = 0; list_root[i].move != 0; i++);
    gen_quiet_moves(list_root + i, pos_info_entry->mob[1], -1, -1, -1);
    for (k = i; list_root[k].move != 0; k++) list_root[k].score = 0;
  }
  if (setjmp(jmp_buffer) != 0) return;
  num_moves = 0;
  for (i = 0; list_root[i].move != 0; i++) {
    move_do(list_root[i].move, undo);
    evaluate(pos_info_entry);
    legal = !ILLEGAL_POSITION;
    move_undo(list_root[i].move, undo);
    if (legal) { list_root[num_moves].move = list_root[i].move; num_moves++; }
  }
  list_root[num_moves].move = 0;

// Ñëåäóþùóþ ñòðîêó ìîæíî äîáàâëÿòü òîëüêî ïîñëå ãðàìîòíîãî íàïèñàíèÿ MultiPV,
// èíà÷å ìîæåò áûòü îøèáêà.
//  if (num_moves <= 1) { depth_is_limited = 1; depth_limit = 4; }

  trans_set_date((trans_date + 1) % DateSize);
  for (i = 0; i < 256; i++) {
    (Pos_info + i)->killer1 = 0;
    (Pos_info + i)->killer2 = 0;
  }
  memset(History, 0x100, 12 * 64 * sizeof(int));
  entry = trans_entry + (KEY_INDEX & trans_mask);
  for (i = 0; i < ClusterSize; i++, entry++) if (entry->lock == KEY_LOCK) trans_
move = entry->move;
  if (num_moves >= 2) {
    for (i = num_moves - 1; i >= 0; i--) {
      move = list_root[i].move;
      if (move == trans_move) score = 0x7FFFFFFF;
      else {
        from = MOVE_FROM(move);
        to   = MOVE_TO(move);
        piece   = Board->square[from];
        capture = Board->square[to];
        if (capture != 0) score = (capture * 16) - piece + 0x7FFFFEFF;
        else score = move_order(move);
      }
      for (k = i; score < list_root[k + 1].score; k++) {
        list_root[k].move  = list_root[k + 1].move;
        list_root[k].score = list_root[k + 1].score;
      }
      list_root[k].move  = move;
      list_root[k].score = score;
    }
  }
So the flow of code here is:
Generate legal moves (with the setjmp in the middle for some reason, possibly because of the optimizer)
Limit depth based if num_moves == 1 (this is commented out, but it is IN RYBKA, with the same depth_is_limited = true and depth_limit = 4)
Increment hash age
Reset killers
Reset history
Look up hash move
Score and sort moves

All of this is in Rybka, in the same order.

Now Fruit:

Code: Select all

   gen_legal_moves(SearchInput->list,SearchInput->board);

   if (LIST_SIZE(SearchInput->list) <= 1) {
      SearchInput->depth_is_limited = true;
      SearchInput->depth_limit = 4; // was 1
   }

   // SearchInfo

   if (setjmp(SearchInfo->buf) != 0) {
      ASSERT(SearchInfo->can_stop);
      ASSERT(SearchBest->move!=MoveNone);
      search_update_current();
      return;
   }

   // SearchRoot

   list_copy(SearchRoot->list,SearchInput->list);

   // SearchCurrent

   board_copy(SearchCurrent->board,SearchInput->board);
   my_timer_reset(SearchCurrent->timer);
   my_timer_start(SearchCurrent->timer);

   // init

   trans_inc_date(Trans);

   sort_init();
   search_full_init(SearchRoot->list,SearchCurrent->board);
Generate legal moves
Setjmp
Limit depth based if num_moves == 1, with depth_is_limited = true and depth_limit = 4)
Increment hash age
Reset killers
Reset history
Look up hash move
Score moves
Sort moves

The last five here are not shown directly, but are inside sort_init() and search_full_init() in the same order:

Code: Select all

  for (height = 0; height < HeightMax; height++) {
      for (i = 0; i < KillerNb; i++) Killer[height][i] = MoveNone;
   }

   // history

   for (i = 0; i < HistorySize; i++) History[i] = 0;

   for (i = 0; i < HistorySize; i++) {
      HistHit[i] = 1;
      HistTot[i] = 1;
   }
and

Code: Select all

   trans_move = MoveNone;
   if (UseTrans) trans_retrieve(Trans,board->key,&trans_move,&trans_min_depth,&t
rans_max_depth,&trans_min_value,&trans_max_value);

   note_moves(list,board,0,trans_move);
   list_sort(list)
Considering that sort_init() and search_full_init() would likely be inlined, it is reasonable to assume that they are separate functions in Rybka and not embedded directly into the search function, as they are in Strelka.

The only differences I can see are the placement of the setjmp, a different initialization of the history table, and that scoring/sorting moves is integrated together in Strelka.