Longer Article

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

Moderators: hgm, Rebel, chrisw

User avatar
Michael Diosi
Posts: 672
Joined: Mon Jun 22, 2009 1:37 pm

Re: Degeaba...:)))

Post by Michael Diosi »

Hi,


No more interviews or updates on the Arena page till they learn to cite ask for permission and cite the entire interview.

This is why you and them are all still waiting for the plumber over there...

http://www.youtube.com/watch?v=mN3z3eSVG7A


Michael
http://www.playwitharena
Albert Silver
Posts: 3019
Joined: Wed Mar 08, 2006 9:57 pm
Location: Rio de Janeiro, Brazil

Re: Longer Article

Post by Albert Silver »

acozzie wrote:So I was convinced by Mark to put my name on the letter even though I have little to do with computer chess any more. After some thinking (and some browsing the forums, where people are making absolutely ridiculous claims) I decided I was going to have to write a little better explanation. It seems that computer chess has once again figured out how to waste my time.

www.acoz.net/zappa/rybka-cloning

The key points: why Rybka has been so dominant for so long, why copying an engine is totally different than reading source code, and why we almost certainly would never have heard the name Rajlich if he hadn't copied Fruit wholesale, which is why the guy talking about the confederacy of dunces should take a good look in the mirror (after all, if we are judging people entirely by the ELO of their engine, then his worth is 0).

I don't plan on replying to this since I've said just about everything I want to say in the article. I very much doubt I will convince the Rybka supporters of anything, but hopefully it will make a few things more clear to the rest of us (there is a great quote by Lichtenberg about this).

cheers,

Anthony
It is an interesting article, but there are a number of very strange comments in it, the first of which is probably already in your post, "It seems that computer chess has once again figured out how to waste my time." It is sad that you feel this way about computer chess as a whole, but in light of another even more remarkable comment "I think as a field it is almost solved at this point", I suppose it is less surprising.

I would ask you how exactly you define a field as 'solved' though, since frankly, it sounds a lot like the claims by Lasker and Capablanca 70-80 years ago on chess being near solved. Prior to the appearance of Rybka, when Shredder 8 was at the head of the pecking order, engines had been progressing at a rate of 30-40 Elo a year at most for several years, and had you made this claim then, it would have seemed much easier to believe. Yet, in single-CPU engines, tracing back to Shredder 8, the CEGT has it listed as 2730 Elo, and 5 years later, Houdini 1.5 is rated 3241 on the same list, over FIVE HUNDRED ELO more. Same hardware, and single-CPU engines BTW. I guess we have very different definitions of what 'solved' is.

Other odd comments (to my eyes) are: "I'm guessing here, but I don't think he really understood that and instead considered other engine authors incompetent morons, which also explains why he was willing to tell me his procedure in Mexico."

You obviously don't think he is very intelligent if you think that the only reason he explained his methodology was that he did not understand what he was doing ("I don't think he really understood that"), and thus explained it to you out of ignorance on the secret to his own success. I suppose you have a basis for believing he "considered other engine authors incompetent morons." that goes beyond your guess.

I presume that when you wrote "Rybka was and continues to be the only program that obfuscates its output of nodes per second and depth. This is usually only done by clones who have something to hide,", you meant the only commercial program. Still, I cannot fathom what special advantage a clone could gain that separates it from a non-clone. The obvious gain is that it can mislead about how deep it is actually reaching, but this is not particular to clones, so it presumes that if he had shown the true depth, it would prove it was a clone?? If that is what you meant, then might I ask: how?

BTW, you mentioned the "release of Strelka (which is so obviously similar to Fruit that it is amazing Vasik was able to dodge those accusations)". The reason he was able to dodge the accusations is that Osipov, the author, has been absolutely adamant that it is 80% Fruit and 20% Rybka. He said this then, and reiterated it this year even.
"Tactics are the bricks and sticks that make up a game, but positional play is the architectural blueprint."
tomgdrums
Posts: 736
Joined: Wed Dec 02, 2009 9:48 am

Re: Degeaba...:)))

Post by tomgdrums »

Michael Diosi wrote:Hi,


No more interviews or updates on the Arena page till they learn to cite ask for permission and cite the entire interview.

This is why you and them are all still waiting for the plumber over there...

http://www.youtube.com/watch?v=mN3z3eSVG7A


Michael
http://www.playwitharena
You are funny.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Longer Article

Post by bob »

There are two well-documented reasons for obfuscating output.

(1) hide a new idea. If you display PVs that are far longer than other programs, then you are doing something interesting with extensions. If your depth is much higher, you are doing something interesting with pruning. If the scores are significantly different, then your evaluation has new ideas that need to be figured out. In short, a program's output reveals everything about the internals, if one spends enough time. By obfuscating the output, truncating the PVs, reporting false depths and node counts, you make it much harder to expose the new ideas. (probably not impossible) but much harder.

(2) hide a program's origins. Many have copied Crafty directly, without changing anything. It's output is pretty recognizable, and as you do things like "help" it becomes glaringly obvious where it came from. If you change all the output so that it is formatted differently, it is harder to detect the fact that the program is just a modified version of Crafty.

Noting particularly wrong with (1). Protecting trade secrets is common. There is a lot wrong with (2) however.

No one obfuscates "just because" however. There is always a reason...
Albert Silver
Posts: 3019
Joined: Wed Mar 08, 2006 9:57 pm
Location: Rio de Janeiro, Brazil

Re: Longer Article

Post by Albert Silver »

bob wrote:There are two well-documented reasons for obfuscating output.

(1) hide a new idea. If you display PVs that are far longer than other programs, then you are doing something interesting with extensions. If your depth is much higher, you are doing something interesting with pruning. If the scores are significantly different, then your evaluation has new ideas that need to be figured out. In short, a program's output reveals everything about the internals, if one spends enough time. By obfuscating the output, truncating the PVs, reporting false depths and node counts, you make it much harder to expose the new ideas. (probably not impossible) but much harder.

(2) hide a program's origins. Many have copied Crafty directly, without changing anything. It's output is pretty recognizable, and as you do things like "help" it becomes glaringly obvious where it came from. If you change all the output so that it is formatted differently, it is harder to detect the fact that the program is just a modified version of Crafty.

Noting particularly wrong with (1). Protecting trade secrets is common. There is a lot wrong with (2) however.

No one obfuscates "just because" however. There is always a reason...
Sure, except that Cozzie didnt say obfuscate the general output, he said obfuscate the ply-depth, which is accepted as being 3 plies more than what is actually displayed. So if I make a clone of Crafty, you will catch me because of the announced ply-depth?

You know, I have no issue calling the IPPOs a restructured (and modified) Rybka 3, because of the PVs, not because of the depth, which for me would be worthless.

The reason I can see him covering up the ply-depth is so that you do not realize it is really outsearching your engine to death, and trick you into thinking you lacked knowledge or other. Lying about the depth to cover its origins seems... pointless. The ply-depths of engines vary so much.
"Tactics are the bricks and sticks that make up a game, but positional play is the architectural blueprint."
jdart
Posts: 4367
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Longer Article

Post by jdart »

> It is now becoming clear that 90% of Rybka 1.0's evaluation is a direct translation of Fruit

That is possible, but I do think Larry Kaufman subsequently put a lot of work into the eval - and what is the point of all that tuning work, if you are not changing the eval?

> AFAIK
> disassembly is legal, while direct code theft is not.

Disassembly of commercial programs is commonly disallowed by license agreements. Use of the information may also be restricted by patents. If the information does not fall into either category I believe program internals would be considered a trade secret which does not have any special protections. But I'm not a lawyer.
bhlangonijr
Posts: 482
Joined: Thu Oct 16, 2008 4:23 am
Location: Milky Way

Re: Longer Article

Post by bhlangonijr »

Albert Silver wrote:
acozzie wrote:So I was convinced by Mark to put my name on the letter even though I have little to do with computer chess any more. After some thinking (and some browsing the forums, where people are making absolutely ridiculous claims) I decided I was going to have to write a little better explanation. It seems that computer chess has once again figured out how to waste my time.

www.acoz.net/zappa/rybka-cloning

The key points: why Rybka has been so dominant for so long, why copying an engine is totally different than reading source code, and why we almost certainly would never have heard the name Rajlich if he hadn't copied Fruit wholesale, which is why the guy talking about the confederacy of dunces should take a good look in the mirror (after all, if we are judging people entirely by the ELO of their engine, then his worth is 0).

I don't plan on replying to this since I've said just about everything I want to say in the article. I very much doubt I will convince the Rybka supporters of anything, but hopefully it will make a few things more clear to the rest of us (there is a great quote by Lichtenberg about this).

cheers,

Anthony
It is an interesting article, but there are a number of very strange comments in it, the first of which is probably already in your post, "It seems that computer chess has once again figured out how to waste my time." It is sad that you feel this way about computer chess as a whole, but in light of another even more remarkable comment "I think as a field it is almost solved at this point", I suppose it is less surprising.
Besides the fact it is another "important" voice against Vas & Cia, this article adds zero to the Fruit-Rybka case, IMO.

Cozzie's posts and web pages have usually a cute & funny tone, maybe to make the impression he is a very young and cool guy. Although this one sounds more like megalomaniac: "It seems that computer chess has once again figured out how to waste my time.". It goes like "Don't bother me with this computer chess underworld. I am too good for this." :)
I find that odd because it seems Cozzie's notable achievements was thanks to computer chess & Zappa.
I would ask you how exactly you define a field as 'solved' though, since frankly, it sounds a lot like the claims by Lasker and Capablanca 70-80 years ago on chess being near solved. Prior to the appearance of Rybka, when Shredder 8 was at the head of the pecking order, engines had been progressing at a rate of 30-40 Elo a year at most for several years, and had you made this claim then, it would have seemed much easier to believe. Yet, in single-CPU engines, tracing back to Shredder 8, the CEGT has it listed as 2730 Elo, and 5 years later, Houdini 1.5 is rated 3241 on the same list, over FIVE HUNDRED ELO more. Same hardware, and single-CPU engines BTW. I guess we have very different definitions of what 'solved' is.

Other odd comments (to my eyes) are: "I'm guessing here, but I don't think he really understood that and instead considered other engine authors incompetent morons, which also explains why he was willing to tell me his procedure in Mexico."

You obviously don't think he is very intelligent if you think that the only reason he explained his methodology was that he did not understand what he was doing ("I don't think he really understood that"), and thus explained it to you out of ignorance on the secret to his own success. I suppose you have a basis for believing he "considered other engine authors incompetent morons." that goes beyond your guess.

I presume that when you wrote "Rybka was and continues to be the only program that obfuscates its output of nodes per second and depth. This is usually only done by clones who have something to hide,", you meant the only commercial program. Still, I cannot fathom what special advantage a clone could gain that separates it from a non-clone. The obvious gain is that it can mislead about how deep it is actually reaching, but this is not particular to clones, so it presumes that if he had shown the true depth, it would prove it was a clone?? If that is what you meant, then might I ask: how?
Bob has already addressed that. Easy one. Do you really expect there is any good intent by someone obfuscating depth and nps info? :)
BTW, you mentioned the "release of Strelka (which is so obviously similar to Fruit that it is amazing Vasik was able to dodge those accusations)". The reason he was able to dodge the accusations is that Osipov, the author, has been absolutely adamant that it is 80% Fruit and 20% Rybka. He said this then, and reiterated it this year even.
Albert Silver
Posts: 3019
Joined: Wed Mar 08, 2006 9:57 pm
Location: Rio de Janeiro, Brazil

Re: Longer Article

Post by Albert Silver »

bhlangonijr wrote:
Albert Silver wrote: I presume that when you wrote "Rybka was and continues to be the only program that obfuscates its output of nodes per second and depth. This is usually only done by clones who have something to hide,", you meant the only commercial program. Still, I cannot fathom what special advantage a clone could gain that separates it from a non-clone. The obvious gain is that it can mislead about how deep it is actually reaching, but this is not particular to clones, so it presumes that if he had shown the true depth, it would prove it was a clone?? If that is what you meant, then might I ask: how?
Bob has already addressed that. Easy one. Do you really expect there is any good intent by someone obfuscating depth and nps info? :)
The point isn't that it was done in innocence, the point is that Cozzie implied that the purpose was to hide the fact it was a clone ("only done by clones"). To be honest, I never heard of a clone lying about the ply-depth, and I cannot begin to imagine how the ply-depth might be considered revealing about a program's origins.

If we modify Rybka 1.0 and add 3 to its ply-depth, what does that show you about its origins? The answer is: Nothing.
"Tactics are the bricks and sticks that make up a game, but positional play is the architectural blueprint."
bhlangonijr
Posts: 482
Joined: Thu Oct 16, 2008 4:23 am
Location: Milky Way

Re: Longer Article

Post by bhlangonijr »

Albert Silver wrote: The point isn't that it was done in innocence, the point is that Cozzie implied that the purpose was to hide the fact it was a clone ("only done by clones"). To be honest, I never heard of a clone lying about the ply-depth, and I cannot begin to imagine how the ply-depth might be considered revealing about a program's origins.

If we modify Rybka 1.0 and add 3 to its ply-depth, what does that show you about its origins? The answer is: Nothing.
It doesn't prove anything by itself. The first thing you want to do when verifying whether a program A is derived from program B is compare the output of both programs using some test positions. If A's output is obfuscated (depth/nps/score) it is more difficult to link A with B by only observing it. Simple.

You never heard about clones obfuscating its output? You don't need to go far. It seems earlier versions of Houdini (Not sure about 1.5) obfuscates the score multiplying it by a factor of ~0.5.

Obviously you are not going to fool an expert by doing this, but it "helps" a bit. :)

Some links about Houdini obfuscating outputs:
http://talkchess.com/forum/viewtopic.ph ... t&start=60
http://www.talkchess.com/forum/viewtopi ... =&start=40

Regards,
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Longer Article

Post by bob »

Albert Silver wrote:
bob wrote:There are two well-documented reasons for obfuscating output.

(1) hide a new idea. If you display PVs that are far longer than other programs, then you are doing something interesting with extensions. If your depth is much higher, you are doing something interesting with pruning. If the scores are significantly different, then your evaluation has new ideas that need to be figured out. In short, a program's output reveals everything about the internals, if one spends enough time. By obfuscating the output, truncating the PVs, reporting false depths and node counts, you make it much harder to expose the new ideas. (probably not impossible) but much harder.

(2) hide a program's origins. Many have copied Crafty directly, without changing anything. It's output is pretty recognizable, and as you do things like "help" it becomes glaringly obvious where it came from. If you change all the output so that it is formatted differently, it is harder to detect the fact that the program is just a modified version of Crafty.

Noting particularly wrong with (1). Protecting trade secrets is common. There is a lot wrong with (2) however.

No one obfuscates "just because" however. There is always a reason...
Sure, except that Cozzie didnt say obfuscate the general output, he said obfuscate the ply-depth, which is accepted as being 3 plies more than what is actually displayed. So if I make a clone of Crafty, you will catch me because of the announced ply-depth?
The point for clone/derivative discussions is the more similar the output, the more likely it is for someone to notice, and then start asking questions, as in the initial Strelka/Rybka/Fruit discussion. If program B searches 3 plies less deeply than program A, on the same hardware, and reports far lower NPS, then it is less likely that a casual user would even think about a clone/derivative issue.




You know, I have no issue calling the IPPOs a restructured (and modified) Rybka 3, because of the PVs, not because of the depth, which for me would be worthless.
I don't disagree. But the more two programs match, the more likely it is that a casual user will notice.

The reason I can see him covering up the ply-depth is so that you do not realize it is really outsearching your engine to death, and trick you into thinking you lacked knowledge or other. Lying about the depth to cover its origins seems... pointless. The ply-depths of engines vary so much.
As I said in point 1, hiding internal details is the other possible explanation. Hiding secrets. Hiding origin. Hiding something for sure...