Rolf

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

Moderators: hgm, Rebel, chrisw

kgburcham
Posts: 2016
Joined: Sun Feb 17, 2008 4:19 pm

Rolf

Post by kgburcham »

Rolf, your posts make me think that you have not read Vas words about what he used from Fruit code.
Maybe if you take time to read this interview, it will help your struggles.

It also seems you were offended by the strength of the USA Deep Blue Program beating your world champion. You keep refering to USA IBM when making a point.
Also it seems you are negative about Bob----there must be something in the past that causes you to veer off of your subjects and start focusing on Dr. Hyatt.
kgburcham

"I went through the Fruit 2.1 source code forwards and backwards and took many things."
Vas



(This is rolf quoting Vas)
"Vas said honestly that his source is different to anything in Fruit. In fact totally original".


The text below says the opposite of rolfs quote.

Interview
Quotes from an uciengines.de Interview with Vasik Rajlich, December 20, 2005 [23], a new age in Computerchess? Two questions by Alexander Schmidt:

20. Alexander Schmidt:
The increase in playing strength of the latest chess engines is unbelieveable. We have since some time with Fruit 2.1 by Fabien Letouzey a very strong open source engine. Do you see a relation between the published sources of such a strong engine and the increase of strength in computer chess in general? How much influence do the ideas of Fruit have on the future of computerchess?

Vasik Rajlich:
Yes, the publication of Fruit 2.1 was huge. Look at how many engines took a massive jump in its wake: Rybka, Hiarcs, Fritz, Zappa, Spike, List, and so on. I went through the Fruit 2.1 source code forwards and backwards and took many things.

It is a bit of a pity that Rybka won't make the same contribution to the computer chess community, but at the moment I must also think about protecting my secrets. It's the eternal struggle for a computer chess programmer.

21. Alexander Schmidt:
We had our first contact when I had questions about a similarity to Fruit in the search, others found similarities in the evaluation. Some people where a little bit suspicious that Rybka could be a clone of the open source engine. In the meantime it is clear that Rybka is no clone but you used ideas of Fruit (I guess all other serious engine programmers had a look at Fruit too). How strong would Rybka actually be if the Fruit code would have never been published?

Vasik Rajlich:
It's a good question. I don't want to get too specific about which ideas from Fruit I think are really useful, but they fall into two categories:

1) Very specific tricks, mostly related to search.
2) Philosophy of the engine (and in particular of the search).

Fruit could really hardly be more useful along both of these dimensions. Fabien is a very good engineer, and also has a very clear and simple conception of how his search should behave.

Anyway, if I really had to give a number - my wild guess is that Rybka would be 20 rating points weaker had Fruit not appeared.

https://chessprogramming.wikispaces.com/Vasik+Rajlich



Dan Corbit:
First some history and my opinions pasted to it:
The chess engine Rybka came onto the scene with version 1.0 and it was a stunning world beater.
Sometime later, some enterprising souls did some reverse engineering of Rybka and came to the conclusion that it had striking similarities to fruit.
Here are some links to the analysis:
{analysis links removed}

The inescapable conclusion is that Rybka 1.0 is heavily influenced by Fruit.
That brings up the question: "Is wrongdoing involved on the part of Vas?"
To examine this question, we must first examine the license of fruit:
Fruit is GPL, version 2.
Therefore, if code from Fruit is used, subsequent programs are also GPL V2. Rybka 1.0 is not GPL, V2 and so we may have suspicions raised that wrongdoing has occurred.
On the other hand, it is not wrong to read an algorithm, understand it, and write your own. This will not violate the GPL, since algorithms do not have copyright protection (that requires a patent). Let us also not forget that strong chess players are known to have prodigious memories.

So we are down to this:
Did Vas copy GPL code and modify it, or did he learn from it by studying it carefully and writing his own version. In my opinion it is not possible to know the answer to this question. I think it is possible to harbor doubts and probably many people do harbor some doubts about it. However, we cannot know which path Vas took. We do certainly have this statement from Vas himself:
"Special Thanks

I hesitate to include this section because I know I'll forget people who have been helpful in this project, but (with advance apologies to the omitted) here goes:

Robert Hyatt - For Crafty. There is nothing like an open source program for passing knowledge to the next generation.
Fabien Letouzey - For Fruit, which shattered a number of computer chess myths, demonstrated several interesting ideas, and made even the densest of us aware of fail-low pruning.
{additional details snipped by dcorbit}"

Stage 2:
Yuri Osipov reverse engineers Rybka (probably using tools like IdaPro) and makes a frankenstein of Rybka and Fruit (and a tiny fragment of Beowulf!) called Strelka. This binary is far smaller than Rybka, but seems to be just about as strong. We are not left wondering if the new methods inside of Strelka are highly similar to the ones in Rybka, because Vas himself says so.

Whether Yuri has done something wrong in this regard is also not clear to me. The documents that came with Rybka 1.0 clearly stated:
"Contents & License

In this package, you will find the Rybka 1.0 Beta chess engine (dated Dec 4, 2005), as well as the Turk opening book by Djordje Vidanovic. Both versions of these components are free and can be used and transmitted without restriction."

Because the license says 'used without restriction' it is entirely possible that Yuri has not broken any laws in connection with his reverse engineering. (Moral views as to right and wrong are another matter and are personal preferences of each person).

Stage 3:
Some time after the release of Rybka 3, we have a new project called IPPOLIT. The only evidence that I have that IPPOLIT is derived from Rybka 3 is circumstantial and hearsay evidence. I have had email conversations with Vas that convinced me that it has been derived from Rybka. We can examine the source and it appears (very strongly) to be a product of reverse engineering. We also notice that this product of unknown authors is remarkably strong like Rybka.

So, my opinions:
1. Vas may or may not have done something legally wrong in connection with the fruit code. Whether or not you think he has done something morally wrong is another issue entirely and I also do not know the answer to this question.
2. In the reverse engineering of Rybka 1.0 Yuri also may or may not have done something wrong. I am not sure about it either way. Considering the license agreement it seems to me that legally he probably did not break the law (but I am not a lawyer or legal expert so I can be wrong about it).
3. In the reverse engineering of Rybka 3 to create IPPOLIT (and other offshoots) we have not any definite proof of wrongdoing, but I am convinced fairly well myself (and only an opinion of mine) that IPPOLIT is *probably* reverse engineered from Rybka 3.

So, because of my opinion on the *probable* source of IPPOLIT, I do not think that this site should be used as a hub for trading IPPOLIT source. The reason is that it is "of *questionable* legal status and would therefore be a violation of the charter.

Now, that having been said, any dimwit with 5 minutes of free time and google handy can collect all they would ever like to know about (possibly) illegal Rybka clones.

And now for a confession --> I am an information whore of the worst kind.

Not only have I examined the IPPOLIT sources, but I have also looked not only at Rybka's innards using a debugger (the DAY that I bought it) but also the innards of every professional and amateur chess engine without source code ON THE PLANET. Now, I would never take what I learn and use it to produce a competing product or in any other way intentionally harm the authors of the originals. But I have an almost perverse "want to know" drive that eggs me into this sort of thing. So (in some sense) my hands are also dirty.
Be that as it may, I still side with the "no warez or suspected warez links in CCC" stand.


Zach
COMMAND INTERPRETER:
--The UCI 'go' parser is virtually identical (as shown by Rick Fadden), including the time control code

SEARCH:
--Does not use fractional extensions
--In the root function, for initializing the search, the order of steps is:
Generate legal moves
Setjmp
Limit depth if num_moves == 1 to 4
Increment hash age
Reset killers
Reset history
Look up hash move
Score and sort moves
--Use identical easy move logic: if (depth == 1 && best_score > second_best + 150) easy=true;
--both use flags in the root function bad_1 and bad_2

EVAL:
--Piece square tables are of the form [12][64][2], where the last entry is game stage

TRANS:
--Stores both a minimum and maximum bound in the hash table, and depths for both
--Stores only 32 bits of the hash key
--Stores a quantity called "move depth"
--For the replacement scheme, a value is calculated that is trans_age[entry] - depth, where trans_age contains the difference of the current date and the entry's date mod DateSize (4 in Rybka, 16 in Fruit). This is multiplied by 256. In Rybka, the table has the values already multiplied by 256, and in Fruit, it is multiplied on the fly.
--Both use a bucket system with 4 entries

BOARD REPRESENTATION:
--Uses an "undo_t" to store moves that it made, which are only kept on the system stack, not in regular memory.
--Only game history stored is a stack of hashkeys
--The index of this game history is stored as an int, not a pointer
--Two values, "opening" and "endgame" are stored in the board, containing sums of piece square tables
--The masks for hashing castling status are WK=1, WQ=2, BK=4, BQ=8
--For hashing of castling status, the hashkey is updated by CastleHash[oldflags ^ newflags], rather than the more natural CastleHash[oldflags] ^ CastleHash[newflags]
--Both have separate make_null and undo_null functions
kgburcham
Posts: 2016
Joined: Sun Feb 17, 2008 4:19 pm

Rolf, another question for you

Post by kgburcham »

Vas said the Fruit code raised Rybka elo about 20 points.


Rolf,
What does the GPL say about 20 elo points of code being used from Fruit?
Do you have to have permission from the author?
Do you have to admit what you have used?
Can you use the code without the authors permission and then sell your program internationally?

Rolf how does the GPL define all this?

Rolf please do not reference George Bush, IBM, The Beatles, or Dr. Hyatt.

Please stay focused on GPL questions.

kgburcham
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: Rolf, another question for you

Post by Rolf »

kgburcham wrote:Vas said the Fruit code raised Rybka elo about 20 points.


Rolf,
What does the GPL say about 20 elo points of code being used from Fruit?
I can only hope that we have members who understand why the whole style cant work. Of course Vas didnt say or mean that he took code from Fruit and that piece of code had raised Rybka's strength up with 20 Elo points. That is what some here want to falsely imply. But such a false implication and false logic isnt open to free will or opinion or voting. Just because it's scientifically spoken nonsense. Although I wouldnt oppose a little attachment on the new Rybka engines which says Original codes! GPL copying forbidden.
-Popper and Lakatos are good but I'm stuck on Leibowitz
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: Rolf, another question for you

Post by Rolf »

SzG wrote:
Rolf wrote: Vas didnt say or mean that he took code from Fruit and that piece of code had raised Rybka's strength up with 20 Elo points.
Indeed not. He said:

"I went through the Fruit 2.1 source code forwards and backwards and took many things.
Anyway, if I really had to give a number - my wild guess is that Rybka would be 20 rating points weaker had Fruit not appeared."

Which means he took many things and these many things added up to a 20 Elo strength increase. Huge, isn't it?
So for you it's clear what things means? Are you clairvoyant?
When Vas assured that his whole code is original by himself then he cant have meant that things means code! It's absolutely clear and leaves no room for speculations. Of course the "term" things is unspecific. But you dont want to twist Vas his own words in the overall context?
Sometimes such a twist reveils the intentions of interpreters, no? That's my interest as psychologist. To understand how people reveil their hidden intentions.
-Popper and Lakatos are good but I'm stuck on Leibowitz
Spock

Re: Rolf, another question for you

Post by Spock »

SzG wrote:
Rolf wrote: Vas didnt say or mean that he took code from Fruit and that piece of code had raised Rybka's strength up with 20 Elo points.
Indeed not. He said:

"I went through the Fruit 2.1 source code forwards and backwards and took many things.
Anyway, if I really had to give a number - my wild guess is that Rybka would be 20 rating points weaker had Fruit not appeared."

Which means he took many things and these many things added up to a 20 Elo strength increase. Huge, isn't it?
And as Vas made clear later on, he took merely the ideas, not the code itself. It is easy to take things too literally ratehr than in the context of the entire interview. Vas has confirmed again on the Rybka forum that Rybka is 100% original source code. Giving people idea and enabling them to learn is exactly what open source is all about
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: Rolf, another question for you

Post by Rolf »

Spock wrote: And as Vas made clear later on, he took merely the ideas, not the code itself. It is easy to take things too literally ratehr than in the context of the entire interview. Vas has confirmed again on the Rybka forum that Rybka is 100% original source code. Giving people idea and enabling them to learn is exactly what open source is all about
If we look how many have now attested Vas of NOT being guilty of anything wrong then it's clear that the 4 mousquetiers against Vas are now a minority. It speaks for CCC that this was possible and it also speaks in favor of Bob that he put the level of this forum above jis own convictions in the actual case. For all it speaks for this forum that the debates could develop without any sort of diffamations.
-Popper and Lakatos are good but I'm stuck on Leibowitz
Spock

Re: Rolf, another question for you

Post by Spock »

Rolf wrote:[

If we look how many have now attested Vas of NOT being guilty of anything wrong then it's clear that the 4 mousquetiers against Vas are now a minority. It speaks for CCC that this was possible and it also speaks in favor of Bob that he put the level of this forum above jis own convictions in the actual case. For all it speaks for this forum that the debates could develop without any sort of diffamations.
It is ridiculous the amount of dirt being thrown at Vas, it makes me embarrassed to be part of this community. Deeply embarrassed. Still his commercial competitors are probably loving it, and even fuelling the fire perhaps. No doubt they will be delighted if he eventually says enough is enough and retires from chess programming as a reult of all this crap, and we never see another Rybka ever again.
Milos
Posts: 4190
Joined: Wed Nov 25, 2009 1:47 am

Re: Rolf, another question for you

Post by Milos »

Spock wrote:It is ridiculous the amount of dirt being thrown at Vas, it makes me embarrassed to be part of this community. Deeply embarrassed. Still his commercial competitors are probably loving it, and even fuelling the fire perhaps. No doubt they will be delighted if he eventually says enough is enough and retires from chess programming as a reult of all this crap, and we never see another Rybka ever again.
I'm really amazed be the amount of naivety by the grown up man on this forum. Vas is a professional. He has chosen chess programming as his main source of income. He's not on the scene to benefit the chess or reflect morality and ethics. He's there to earn money. And you don't walk away from your income source just because some ppl are asking you uncomfortable questions and raising problematic issues.
On the other hand, Vas might be a computer chess genius (mostly in the eyes of his beloved fanboys), but he is obviously very bad in PR, which is also not surprising.
User avatar
Graham Banks
Posts: 41454
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Rolf, another question for you

Post by Graham Banks »

Milos wrote: On the other hand, Vas might be a computer chess genius (mostly in the eyes of his beloved fanboys),
Those who are posting against Vas seem to love calling those who disagree "fanboys". Perhaps we could coin an identity for you lot.
Last edited by Graham Banks on Thu Dec 03, 2009 7:04 pm, edited 1 time in total.
gbanksnz at gmail.com
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: Rolf, another question for you

Post by Rolf »

SzG wrote: I have never said he had taken code. I only say that by taking many things (let's call them ideas) I would expect more than a 20 Elo boost. In fact if I had a 2200 Elo engine and I had taken only one useful idea from Fruit, I'd expect that single idea resulting in a 50-100 Elo boost on average. And I'd expect taking "many" ideas (again, not code) to result in a boost of several hundred Elos. What did Vasik spoil that implementing those many ideas have resulted only in a mediocre strength increase? Would you believe that has happened to a programming genius who has added further 580 Elos (above the claimed 20) using his own devices? Give me a break.
Gabor, thanks for the elaboration. Let me quite honestly tell you that your reasoning is above my head because I have no experience with programming. I could mainly reflect this from a general perspective. Let me argue as if I were believing Vas 100% and I have no reason for the contrary. If I do believe him I understand that he must have discovered many tricks himself or from other people besides Fruit. So if he was 150 higher in the beginning say 130 were his own performance 20 were Fruit ideas. Dont forget Crafty and the others. So perhaps only 80 points on his merits. Doesnt it sound honest to you?

Overall for the four years I must admit that I suppose that Vas is so much superior over all other competitors that we cant imagine what of the pool he's when implementing to have some fun. Tht's wh he's a genius for me.

The whole clone stuff is in truth not a danger for him because look at this: although a clone is very good too on basic hardware that doesnt bother Vas because for the tournaments Rybka "runs" on the back of Moby Dick! That's the burner! The whale is called "Cluster".

While the cloners a) not yet have managed to fake a passport and b) are not seriously tested and c) they have no motivation to begin a serious competeting because of their unsafe future. Or would you invest sweat and blood only to lose everything you might have owned in the past?

Gabor I were the congenial collegue for you as a tester. Also because of my mathematical test experience but honestly if I had to test with Bullet games, tears came into my eyes.

All the best for your own hobby. Rolf
-Popper and Lakatos are good but I'm stuck on Leibowitz