Well Alex as far as I can remember someone here decompiled both Rybka 1 and Fruit and found only a very small amount of code duplicated in both and that was not enough to claim Rybka is a clone. You should read a lot more history in this site.
Bill
Bill Rogers wrote:Well Alex as far as I can remember someone here decompiled both Rybka 1 and Fruit and found only a very small amount of code duplicated in both and that was not enough to claim Rybka is a clone. You should read a lot more history in this site.
Bill
Would you be so kind to show me what you are talking about?
Why did he decompile Fruit? The sources are available.
If you decompile the same engines, compiled with different compilers, you get different decompiled code.
The first link doesn't work. The other two show what could be at best an indirect evidence of a similarity between the two engines. However, I am sure that you agree with me that, based on this only evidence, is too premature to say that "It is proven that Rybka 1 is based on Fruit."
Therefore I am looking for other types of evidence. For example, an article showing a significatively large portion of disassembled Rybka code that a compile of fruit could generate, would be perfect. Do you happen to have it?
Alexander Schmidt wrote:
arturo100 wrote:I understand this point. Now would you mind to point out a link or an article where this allegation has been described in detail?
It's hard to find, it's allocated in parts all over the chess forums.
Bill Rogers wrote:Well Alex as far as I can remember someone here decompiled both Rybka 1 and Fruit and found only a very small amount of code duplicated in both and that was not enough to claim Rybka is a clone. You should read a lot more history in this site.
Bill
Then that "someone" is either unable to decompile or unable to read decompiled code.
OTOH, the guy who by decompilation deciphered the node count obfuscation of Rybka1 proved at source code level that Rybka1 was basically Fruit21.
If you chose not to look at his lengthy evidence, blame yourself.
Rybka's piece square tables are generated from the same code as Fruit's (same KnightRank, etc. constants, but different KnightRankOpening weights)
Rybka's pawn evaluation is virtually identical to Fruit's (different weights again, candidate pawns and backward pawns have a very slightly different formulation)
Rybka's passed pawn evaluation is virtually identical to Fruit's (same bonuses using the quad array {0...,26,77,154,256}, only difference is weights and free_passer split into 3 separate bonuses and based on rank)
Rybka's piece evaluation is virtually identical to Fruit's (different weights only)
Rybka's king shelter evaluation is virtually identical to Fruit's (different weights again, king square generalized to C1, E1, or G1 to store in the pawn table, and a slightly different formula for shelter_file()/storm_file())
Rybka's king safety evaluation is virtually identical to Fruit's (different weights for KingAttackWeight, KingAttackUnit)
Rybka's "pattern" evaluation is virtually identical to Fruit's (different weights, TrappedBishop is not halved for A6/H6).
I have confirmed all of this from reverse engineering Rybka 1, though anyone can see for themselves by looking at *****. Rybka's entire evaluation is basically an optimized and tuned bitboard translation of Fruit's, with Fruit's material evaluation replaced by the infamous lookup table. EVERY single evaluation term in Rybka 1, except for the material imbalance table, appears in Fruit. If everyone wants to consider that "original", then computer chess is really dead.
And this is only the evaluation. There are many more similarities...
Not exactly what you are looking for, maybe someone else has a better link...
arturo100 wrote:The first link doesn't work. The other two show what could be at best an indirect evidence of a similarity between the two engines. However, I am sure that you agree with me that, based on this only evidence, is too premature to say that "It is proven that Rybka 1 is based on Fruit."
Therefore I am looking for other types of evidence. For example, an article showing a significatively large portion of disassembled Rybka code that a compile of fruit could generate, would be perfect. Do you happen to have it?
Alexander Schmidt wrote:
arturo100 wrote:I understand this point. Now would you mind to point out a link or an article where this allegation has been described in detail?
It's hard to find, it's allocated in parts all over the chess forums.
#include <stdio.h>
int main(void)
{
char answer;
printf("Is Rybka the strongest chess engine? Enter y or n: ");
scanf("%c",&answer);
printf("", answer,"\n");
if (answer == 'y')
ruleOne();
else
ruleTwo();
return 0;
}
ruleOne()
{
printf("Rybka is the strongest chess engine.\n");
}
ruleTwo()
{
printf("Rybka is not the strongest chess engine.\n");
ruleThree();
}
ruleThree()
{
printf("Any chess engine stronger than Rybka, must per force be a clone of Rybka.\n");
ruleFour();
}
ruleFour()
{
printf("Any clone of Rybka, is Rybka.\n");
ruleOne();
}
#include <stdio.h>
int main(void)
{
char answer;
printf("Is Rybka the strongest chess engine? Enter y or n: ");
scanf("%c",&answer);
printf("", answer,"\n");
if (answer == 'y')
ruleOne();
else
ruleTwo();
return 0;
}
ruleOne()
{
printf("Rybka is the strongest chess engine.\n");
}
ruleTwo()
{
printf("Rybka is not the strongest chess engine.\n");
ruleThree();
}
ruleThree()
{
printf("Any chess engine stronger than Rybka, must per force be a clone of Rybka.\n");
ruleFour();
}
ruleFour()
{
printf("Any clone of Rybka, is Rybka.\n");
ruleOne();
}