Not logged inRybka Chess Community Forum
Up Topic Rybka Support & Discussion / Rybka Discussion / In retrospect (locked)
1 27 8 9 10 11 Previous Next  
Parent - - By Uly (Gold) Date 2011-07-15 05:30

>NOT based on Rybka 3's idea. Nor from a RE of Rybka 3.


From my link:

I still think that most of ideas were gained through RE

It seems clear he means from RE of Rybka 3. It seem you have selective reading and erase from your memory information that disagrees with your beliefs.

>Yet this was the very basis for some to claim IppoLit was a clone of Rybka 3.


I had to call these engines some way, because the forum didn't allow mentioning them by name. I knew these engines were based on Rybka 3 (and here, it could just be ideas), so I started calling them clones, but soon enough I realized that the term wasn't exact, so I started using the term "derivative". Later, I found a better term, "controversial". I use the term loosely, since there's no legal way to define it, calling an engine "clone" doesn't mean anything, but as means of communication, calling them clones makes people know what I'm talking about, and that's the point of language.

> Are all these people wrong too, is it also in their minds & imaginations or is it just me?


Any people that isn't able to copy a chunk of Fruit code, and show the corresponding Rybka code that matches, is basing their opinion blindly on hearsay. Cases of "many people say Rybka is a clone of Fruit, it must be true!"
Parent - - By Prima (****) Date 2011-07-15 05:44 Edited 2011-07-15 05:47
It seems clear he means from RE of Rybka 3. It seem you have selective reading and erase from your memory information that disagrees with your beliefs.

Yes he clearly made the statement "I still think that most of ideas were gained through RE". But from which engine? Also notice he didn't mention a specific engine in reference to RE. This makes sense as he already stated he believes IppoLit is original.

So it appears my supposedly "selective reading and memory erasure" bias is geared towards cautiousness rather than err and put words into Richard Vida's mouth.

Any people that isn't able to copy a chunk of Fruit code, and show the corresponding Rybka code that matches, is basing their opinion blindly on hearsay. Cases of "many people say Rybka is a clone of Fruit, it must be true!

Isn't this the same hearsay people ran-off with when Vas claimed IppoLit is a Rybka 3 clone but to date failed to substantiate his accusations? The exception is, Rybka is proven to be a Fruit + Crafty clone. Nothing will change that nor take that away.
Parent - - By Uly (Gold) Date 2011-07-15 22:19

> Also notice he didn't mention a specific engine in reference to RE.


Please tell me the name of any other chess engine that was reverse engineered that is not Rybka.

>Isn't this the same hearsay people ran-off with when Vas claimed IppoLit is a Rybka 3 clone but to date failed to substantiate his accusations?


Let me get this straight, are you saying that "people thought that Ippolit was a clone of Rybka 3 blindly and based on hearsay, so it's right to do the same for Fruit-Rybka!" ?

>Rybka is proven to be a Fruit + Crafty clone.


When something is proven, proof can be shown. I haven't seen any proof, you have accepted that you haven't seen any proof, and the people that have supposedly found/seen proof, can't write it down, can't paste it into a post, can't link to it, and can't give specifics. It looks more and more like a hoax the more I think about it.

I always thought that they had found that Vas did illegal things involving Fruit to build Rybka, and used it as a pretext to get him out of the way in tournaments, but maybe it's just that they made it up to get him out of the way in tournaments.
Parent - - By tano-urayoan (****) Date 2011-07-15 22:57 Edited 2011-07-15 23:04

> Please tell me the name of any other chess engine that was reverse engineered that is not Rybka.


Houdini

> When something is proven, proof can be shown


I could show the proof of Fermat last theorem, would you understand it?
The same happens here, these are technical discussions which us the no-experts have no idea. I could try to read Dr. Watkins paper but I will not understand it. Maybe you have better understanding than me.

Using Banned signature "experts agree", well the experts that looked at the evidence were convinced, We could argue about conspiracy theories, that this people are against Rajlich because he is the main competitor, the sine qua non but We could also believe that they simply analyzed the evidence shown and made their conclusions based on it.

I concur with you people stating blindly Rybka cheated or used code from Fruit like a church credo. The fact is they do not understand the papers and when you asked for evidence they could provide none because they do not know what they are looking at.
So We have a 2 way dogma:  either We could believe "experts agreed" or Rajlich sect that all of this is a fabrication made to apart him from computer chess.
Parent - - By Uly (Gold) Date 2011-07-15 23:36

>> Please tell me the name of any other chess engine that was reverse engineered that is not Rybka.
> Houdini


When was Houdini reverse engineered? [that implies someone put Houdini through a decompiler to get Houdini's source code] I don't think someone has done it yet. Besides, back to context, I asked him about that, so that we find out to what reverse engineered code was Richard Vida referring to, and unless you'd claim that Ippolit was based on Reverse engineered code from Houdini (time travel?) Richard couldn't have been referring to it. Richard was referring to Rybka 3, he says Ippolit is original in the sense that code was not copied.

>I could show the proof of Fermat last theorem, would you understand it?


Do not assume that it won't be understood. Someone that is on he Rybka side that sees the proof can understand it, and "convert" everyone else. "I won't show it because you can't understand it" is not a good reason for withholding the proof, and I'm that sure if it was posted, people of the likes of turbojuice1122 or Banned for Life would understand it. In fact, we're having this discussion because they read the ICGA reports in their entirety, understood them, and found no proof of Fruit code in Rybka (besides UCI parser stuff that is irrelevant as the rules talk about "game playing" code).

The proof can't be posted if it doesn't exists, and it hasn't been posted.

By the way, the "Experts agree" part of Alan's signature is satirical, please check the source here for context: http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=334784
Parent - By Banned for Life (Gold) Date 2011-07-15 23:42
Ouch! Not my finest moment. :red: Christian is obviously a very sharp guy...
Parent - - By tano-urayoan (****) Date 2011-07-16 16:07

> [that implies someone put Houdini through a decompiler to get Houdini's source code] I don't think someone has done it yet.


Richard Vida did it, reference is a post by him in the technical subforum at CCC.

Well neither Turbo nor Alan are programmers but the point I was trying to make is you are right when you ask people to show proof they  could not show any because commoners do not understand the paper made by Dr. Watkins.

So either you agree with "experts" or as you stated believe all is a hoax. It is your call.
Parent - - By Uly (Gold) Date 2011-07-16 16:16

> Richard Vida did it


I see. Well, I'm glad he clarified it himself in his post below.

> So either you agree with "experts" or as you stated believe all is a hoax


But "experts" don't agree, see bob and zwegner, the former keeps claiming everywhere that Rybka has copied code from Fruit in it (but can't paste the code into a post), the latter says there's no hard evidence that proves there was any code copying*, so the argument from some people has suddenly shifted to "you can't prove there was code copying because you only have disassembled code, you can only prove that Rybka is a derivative of Fruit", which is not what bob has been saying.
Parent - - By tano-urayoan (****) Date 2011-07-16 16:31

> (but can't paste the code into a post)


Well he have said code will be not equal because of different board representation but they are equally semantically. But again if the whatever number of programmers found Rajlich infringed rule #2 We could either believe in them or as you say believe all of this is a witch hunt, persecution, Inquisition, hoax, etc.
Parent - - By Banned for Life (Gold) Date 2011-07-16 18:10
The investigators were Zach and Mark. The others are basing their conclusions either on the reports generated by these two, or on personal bias, or maybe even on the desire to be more successful in past and future tournaments. My personal belief is that if the verdict were written by Zach and Mark and not amplified by others, it could have been exactly the same with little or no controversy. The controversy is due to the over-the-top and clearly biased statements of Bob and others.
Parent - - By tomgdrums (****) Date 2011-07-16 18:17

> or maybe even on the desire to be more successful in past and future tournaments. My personal belief is that if the verdict were written by Zach and Mark and not amplified by others, it could have been exactly the same with little or no controversy. The controversy is due to the over-the-top and clearly biased statements of Bob and others.


And now the words "maybe" and "personal belief" creep into your posts.

Your defense of Vas has gotten shakier and shakier.

There is no need to even try to refute what you say.
Parent - - By Banned for Life (Gold) Date 2011-07-17 00:32
You should admit that you have no clue what you are talking about.
Parent - - By RFK (Gold) Date 2011-07-17 01:06 Edited 2011-07-17 01:10
What I don't get is that these guys are so "holier than thou"  and will accuse and condemn Vas for having used whatever of Fruit. When guys like Don Dailey make statements like the following to the Washington Times press-

"“The Rybka code base was without doubt derived directly from other people’s work and this was never revealed, so this is [a] case of taking credit for the work of others and it shows a lack of respect for the other major talents in computer chess as well as the ICGA and organizers of these events,” Don Dailey, a fellow computer chess programmer, wrote in one report.

In the same breath have no problem proclaiming that he looked into ippolit family and took from them. Which came, no doubt, from Rybka. But, Dailey can conveniently put the blinders on when it comes to that bit of controversy. What a bunch of bullshit.
Parent - - By tomgdrums (****) Date 2011-07-17 02:22

> What I don't get is that these guys are so "holier than thou"  and will accuse and condemn Vas for having used whatever of Fruit. When guys like Don Dailey make statements like the following to the Washington Times press-
>
>  "“The Rybka code base was without doubt derived directly from other people’s work and this was never revealed, so this is [a] case of taking credit for the work of others and it shows a lack of respect for the other major talents in computer chess as well as the ICGA and organizers of these events,” Don Dailey, a fellow computer chess programmer, wrote in one report.
>
> In the same breath have no problem proclaiming that he looked into ippolit family and took from them. Which came, no doubt, from Rybka. But, Dailey can conveniently put the blinders on when it comes to that bit of controversy. What a bunch of bullshit.


I actually called Don out about this very same thing at Talkchess and he reported me to the moderators for insinuating he was a hypocrite.
Parent - By RFK (Gold) Date 2011-07-19 23:51 Edited 2011-07-19 23:55
Just so you know that was not the first time he was put on the carpet for this issue.  Now he's fearful of losing customers.

http://talkchess.com/forum/viewtopic.php?topic_view=threads&p=310989&t=31162

But you have to love Dailey for his reply-

"I don't think you can avoid absorbing these idea even if you consciously try. The ideas will appear eventually in the open sources of programs like Crafty and Stockfish - one way or another. Unless you just shut your eyes and work in a bubble these ideas will migrate to all of us. This is not a political statement it's a reality of life."

I wonder what Hyatt would say to this. Now think about what Dailey is saying and apply it to Vas!
Parent - - By tomgdrums (****) Date 2011-07-17 02:23

> You should admit that you have no clue what you are talking about.


No can do.  Because unlike you I don't have to change my tune every post.  I actually do know what I am talking about.  You however change your arguments and thoughts from post to post in some vain hope to change the findings.
Parent - By Banned for Life (Gold) Date 2011-07-17 02:43
I actually do know what I am talking about.

If wishes were horses, we would all be over our heads in manure.
Parent - By Uly (Gold) Date 2011-07-17 01:13

> Well he have said code will be not equal because of different board representation but they are equally semantically.


Yeah.

Still, nobody can post Rybka and Fruit code that "matches semantically".
Parent - - By Prima (****) Date 2011-07-17 22:59
Please tell me the name of any other chess engine that was reverse engineered that is not Rybka.

I don't know a specific engine that was RE. But this does not mean a RE engine is or must be Rybka. This is why investigation is usually necessary.

Let me get this straight, are you saying that "people thought that Ippolit was a clone of Rybka 3 blindly and based on hearsay, so it's right to do the same for Fruit-Rybka!" ?

Correct. And I'm sure you witnessed the censoring that took place here in Rybka forum, the banning of players from PCC server because they used IppoLit & co. etc. Can you guess why all these took place? I'm sure it had something to do with a particular person stating to the effect that "Rybka 3 was hacked" or "IppoLit is a Rybka 3 clone."


When something is proven, proof can be shown. I haven't seen any proof, you have accepted that you haven't seen any proof, and the people that have supposedly found/seen proof, can't write it down, can't paste it into a post, can't link to it, and can't give specifics. It looks more and more like a hoax the more I think about it.


When did I state, directly or indirectly, that I have not seen any proof or accepted that I haven't seen any proof? I didn't state that. If you're familiar with c/c++ you can code comparison to see it.
Parent - - By Uly (Gold) Date 2011-07-18 19:51

>I don't know a specific engine that was RE. But this does not mean a RE engine is or must be Rybka.


From context, he couldn't have been talking about anything else. Learn to deduce.

>>Let me get this straight, are you saying that "people thought that Ippolit was a clone of Rybka 3 blindly and based on hearsay, so it's right to do the same for Fruit-Rybka!" ?


>Correct.


Wow. So, if something has been done wrong in the past, since there's a precedent, it's okay to do things wrong in the future. I'd rather do things right, though.

>that I have not seen any proof or accepted that I haven't seen any proof?


When you asked if only you were wrong, or if everyone supporting that "Vas is guilty of code copying" was also wrong.

>If you're familiar with c/c++ you can code comparison to see it.


So, you can do it but you don't want to. Now the claim has gone from "read the proof on the reports" to "compare the code yourself".
Parent - - By Prima (****) Date 2011-07-19 19:19
From context, he couldn't have been talking about anything else. Learn to deduce.

Except your method of deduction is based on assumption and speculation. Still to be proven though.

Wow. So, if something has been done wrong in the past, since there's a precedent, it's okay to do things wrong in the future. I'd rather do things right, though.

Everyone in their right mind wants things done justly. The exception here is the "wrong" you refer to, I'm guessing Strelka, was actually shown to be more similar to Fruit that to Rybka. None the less, it turns out the "holy, uncontaminated engine" happens to be a Fruit (and Crafty) clone.


When you asked if only you were wrong, or if everyone supporting that "Vas is guilty of code copying" was also wrong.


When I stated I haven't seen any proof, I was referring to "any proof" showing Ippo/Robbo to be a Rybka clone. Rybka has been shown to contain Fruit (Crafty) codes.

So, you can do it but you don't want to. Now the claim has gone from "read the proof on the reports" to "compare the code yourself".

Whether I used the words: read, compare, analyze etc.... all infer the same thing.
Fact: Rybka is Fruit clone or derivative or however one wants to word it, albeit unethical.
Parent - - By Uly (Gold) Date 2011-07-19 20:31 Edited 2011-07-19 20:34

> Except your method of deduction is based on assumption and speculation.


No, I based it on logic and reasoning, and it turned out to be right.

> None the less, it turns out the "holy, uncontaminated engine" happens to be a Fruit (and Crafty) clone.


Can you define "cloning" in a meaningful way? It could mean copying of ideas, or it could mean an engine that is identical to another, or it could mean an engine that is based in code from another engine, but in that case Crafty 23.3 is a clone of Crafty 19.9.

The term clone is unclear.

>When I stated I haven't seen any proof, I was referring to "any proof" showing Ippo/Robbo to be a Rybka clone. Rybka has been shown to contain Fruit (Crafty) codes.


No, you weren't, please check the post I'm referring to again here:

http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=351703

[Lower part of the post, where you ask if only you were wrong] You were talking about the Fruit-Rybka connection.

>Whether I used the words: read, compare, analyze etc.... all infer the same thing.
>Fact: Rybka is Fruit clone or derivative or however one wants to word it, albeit unethical.


Everyone on your side keeps saying that, yet nobody can show any snippet of copied code. We're running in circles, please, post a piece of Rybka code that [semantically] matches Fruit code, or accept that you haven't seen any.
Parent - - By Prima (****) Date 2011-07-19 21:57
No, I based it on logic and reasoning, and it turned out to be right.

OK, your logic may have been right on what Richard meant in regards to RE-ing but remember, Richard Vida was just giving his opinion on IppoLit being a RE (possibly) from Rybka 3. He also stated he has yet to fully investigate the connection  between the two engines.

But by the same post by Richard Vida, you ignored the "other" implications that Rybka 4 may have taken things from IppoLit - which by your standard of reasoning and logic would make Rybka 4 a clone of IppoLit. Again, I won't conclude that Rybka 4 is based on or taken "things" (things can be abitrary: code or ideas, or both) from IppoLit. I'll rather wait for final conclusion on that matter. Just my discretion.

When we (or I) talk about cloning, the assumption is the similarity between 2 different engines by the 2 different authors. And we're talking code for code, not ideas. Those can't be patented or copy-righted. Same reasoning can be concluded for 2 different versions by the same author, BUT and this is the crucial part most people miss, this means an updated (or new) version of an engine would contain codes from previous version. Do you know what this means? - In the case of Rybka, there's reason (by your analogy with Crafty) that there's traces of Fruit/Crafty codes present not only in Rybka 1.0 to 2.3.2a but also present in Rybka 3 & 4. Unless You or Vas can proof otherwise. This is where the current ban on all Rybka version stands. It's not personal.

With regards to comparison of Crafty/Fruit codes versus Rybka, I don't know what else to tell you. The evidence and comparison is published. Most see these similarity. It's not like I'm dodging or hiding this. It's just open for all to read and do some comparison. If you analyze them, you don't need codes to be pasted here.
Parent - - By Uly (Gold) Date 2011-07-19 23:56

> But by the same post by Richard Vida, you ignored the "other" implications that Rybka 4 may have taken things from IppoLit


I didn't ignore it, I just won't conclude that Rybka 4 is based on or taken "things" (things can be abitrary: code or ideas, or both) from IppoLit. I'll rather wait for final conclusion on that matter. Just my discretion.

What you chose to ignore was the part where Richard Vida said Rybka 3 and 4 are clean and unrelated to Fruit, from that I take they were banned unfairly.

>When we (or I) talk about cloning


Exactly, that's what cloning means to YOU, not everyone. Link me to any page on Google that supports your claim that "Clone=Code copying", and then we'll have a definition.

> With regards to comparison of Crafty/Fruit codes versus Rybka, I don't know what else to tell you.


Just accept that you haven't seen any Fruit code that semantically matches Rybka code.
Parent - - By Prima (****) Date 2011-07-20 01:02
What you chose to ignore was the part where Richard Vida said Rybka 3 and 4 are clean and unrelated to Fruit, from that I take they were banned unfairly.

Then Richards post may seem contradictory. Or else how would you explain the implication on Rybka 4 relative to IppoLit comment?

Exactly, that's what cloning means to YOU, not everyone. Link me to any page on Google that supports your claim that "Clone=Code copying", and then we'll have a definition.

Clone (or code copy) is not necessarily a bad thing, if done legally and proper credits and acknowledgment is explicitly given. Also code is usually accompanied with the binary. Example that comes to mind is Glauring-Stockfish. This is acceptable.

The other aspect of cloning (or copy code) is the refusal to acknowledge and give credits where due, and refuse to provide source with the binary. If an author decides to go commercial feigning originality but investigation later determined the engine is actually a GPL engine, then this is bad.

Both cases are clones. One is a legal clone because it complied properly. The other isn't. So when clones are discussed or defined, one must consider if there are "specific requirements" for cloning or code copying to be met. It's the failure to comply with the rules governing cloning or code-copying that make cloning (or the offending engine/author) look bad.

Just accept that you haven't seen any Fruit code that semantically matches Rybka code.

How can I accept this when this isn't the case? I saw it. It matched.
Parent - - By Uly (Gold) Date 2011-07-20 17:38

> Then Richards post may seem contradictory. Or else how would you explain the implication on Rybka 4 relative to IppoLit comment?


That Rybka 4 is related to Ippolit (in the sense that Vas may have taken a look and copied code or ideas from it) doesn't say anything about a relation with Fruit.

>How can I accept this when this isn't the case? I saw it. It matched.


But you can't reproduce it. Do I just have to trust you? Why wouldn't I trust the people that checked all the documents and didn't find any code that matched?

The difference is that the people that claims they saw matching code (i.e. you) can show it so everyone else can see it. But you can't do that.

If you can't do that, it's to be assumed that code doesn't exist.
Parent - - By Prima (****) Date 2011-07-21 02:35
That Rybka 4 is related to Ippolit (in the sense that Vas may have taken a look and copied code or ideas from it) doesn't say anything about a relation with Fruit.

Theoretically, the IppoLit and Rybka 4 doesn't state anything relative to the Rybka-Fruit. However if Rybka 4, in fact, "took somethings" from IppoLit, it does establish a pattern with Vas/Rybka. But only if....

In the case of code comparison, I can't ask you to trust me. However, most people have also seen the evidence and made decisions for themselves. At this point, code comparison and evidence et.al don't demand reproducibility. It's all done.

On a different topic, according to Houdini author, H2.0 should implement some sort of Hash/Learn function. 'Look forward to it.
Parent - - By Uly (Gold) Date 2011-07-21 16:28

> according to Houdini author, H2.0 should implement some sort of Hash/Learn function. 'Look forward to it.


Do you use Hash/Learn function of Rybka 4? I think it's not worth the hassle and that Robert is taking the wrong approach to learning. Hopefully a future version of Houdini will do it right.
Parent - - By SR (****) Date 2011-07-21 18:18
Commercially having a "learn" option might be a good idea and if people can exchange learning settings and play around with learning settings for different openings and endgames etc. it will keep the engine fans busy! Whether it actually result in stronger engines is another issue.
Parent - - By Uly (Gold) Date 2011-07-21 23:17

> Commercially having a "learn" option might be a good idea


It is a great idea! And the reason I'm still using Rybka 3 Persistent Hash to this day. There is nothing more useful than adding "learning" to the engine. After you use an engine with learning, you can't shake the feeling that you're wasting your time when analyzing with an engine that doesn't have learning, since as  soon as you unload the engine it'll have forgotten what you analyzed, while an engine with learning will continue the analysis and will use it to speed up all related positions.

In my dreams all engines would get learning, it's what saves the most time, and I think it's the future of chess analysis as you don't need to store your analysis in an [e.g.] IDEA tree because the engine is storing it by itself, and unlike the IDEA Tree, the engine can use what it stored to improve analysis.

That said, what is going to be implemented for Houdini is NOT learning, in fact, someone that never unloads Houdini isn't going to notice any change relative to having Preserve Analysis ON for Rybka 4, and will notice slowdown after analyzing thousands of positions because fewer and fewer space is going to remain available in the hash.

What is going to be implemented is "Preserve Analysis", which is great, but "Save/Load" hash is not "Learning".

I can't wait for Critter with Learning to go public, Richard Vida is having the best implementation of the feature and my hope is that after it's released other programmers see how it's done and follow suit.
Parent - - By ernest (****) Date 2011-07-23 15:44

> while an engine with learning ...will use it to speed up all related positions.


Well, thats precisely why learning is just a fantasy: "all related positions" is just a drop in the sea of the positions you may want to analyse in the future...   :cool:
Parent - - By Uly (Gold) Date 2011-07-23 21:58

> Well, thats precisely why learning is just a fantasy


If it's a fantasy, how is it possible that Shredder, Rybka 3 Persistent hash (and soon Critter) are doing it?

PS - They ARE doing it.
Parent - - By ernest (****) Date 2011-07-24 15:58
I'm only saying that it is of very limited use...
Parent - - By Uly (Gold) Date 2011-07-24 19:27
If you think that, you probably have little experience using the feature.

As I said above:

It's like Aquarium Trees but: The engine saves the analysis by itself and it's able to use the contents to make all related analysis more effective.

Or are you saying Aquarium (IDEA) trees have very limited use? Last time I checked all the cool kids were using it. And IDEA is just a hack to help engines that don't have learning (...which is 99.9% of them.)
Parent - - By Eelco de Groot (***) Date 2011-07-25 01:02

> And IDEA is just a hack to help engines that don't have learning (...which is 99.9% of them.)


Well, Tord Romstad's Glaurung already had position learning up to five years ago, but if I remember this correctly, this was a feature Tord found was misunderstood by the people using Glaurung so he found it necessary to remove it altogether :cry: However the great thing about open source is that the code still exists :cool: This is from the read.me of one of the last versions I believe to have this indispensable feature, Glaurung 060612, from exactly five years ago now:


* "Position learning" (on or off, the default is off).  When this
  setting is enabled, Glaurung will remember the positions it has
  searched in the past, and make use of the search results when it
  encounters the same positions again.  This data is saved to disk (in
  the file named "learn.bin"), and is used again even if you exit and
  restart the program.  Position learning probably doesn't have any
  impact on playing strength, but it can be useful when using the
  program for interactive analysis.


I really am planning on reviving this one day if I can simply adapt Tord's code again, as I promised,  but Richard Vida being the real programmer here probably will make a much better and his version and will probably be ready before I start :red: Please keep us updated on how it works Uly? Of course, this old code from Tord should be adaptable to your "Open Chess" Stockfish as well...

I was kinda hoping Richard will make his Pascal version of Critter that I believe he maintains, open source one day... as I started in Algol 60 myself in the days of programs on punchcards when in High School, and later learned Turbo Pascal, Pascal is much dearer to me than C, especially Object Oriented C, I think it is criminal! But that would make a great resource for beginning programmers especially if they had learned the Pascal language like many here as students, and if there was more material on position learning that would be very interesting too for starting chess programmers. Unfortunately Crafty also had position learning already but Bob's reason for abandoning it was that he forgot to clear it so it interfered with his testing.... Sometimes I really think those programmers are not from this planet at all :razz: 

Regards,
Eelco
Parent - - By Uly (Gold) Date 2011-07-25 05:19
Oh, that's very interesting! So open source learning code already exists out there! :eek:

> but Richard Vida being the real programmer here probably will make a much better and his version and will probably be ready before I start :red:


He probably could adapt Critter Learning to Stockfish in a somewhat trivial manner (or, very fast), what I'm not sure about is if he would want to improve a competing engine, as the time used implementing the learning in Stockfish would be time he couldn't work on Critter.

>Please keep us updated on how it works Uly?


I don't have the technical details but I could describe what Critter is doing, though, I don't know if it would require Richard's permission.
Parent - - By Eelco de Groot (***) Date 2011-07-25 11:41
Well yes, it would be interesting to compare its effectiveness with that of Rybka 3 for instance, since you are the person who probably knows that best Uly. Most people will probably use just one engine for learning purposes, I mean if they store results for the longer term. I know one user who posted that he had done a lot of one specific opening that he researched with HIARCS, but since the old learning was not compatible anymore with the new versions, he was more or less obliged to keep using the same engine. Using learning across engines is not really to be advised I think and not necessary if you store results only if you are sure about them, it should not matter much if the engine is not really the strongest. I don't really know if learning is in any way better than a really good opening book though (of  the same subtree), because deep results will usually be followed by the engine anyway. And an opening book has the advantage that it is much more portable and can be edited by hand. 

Eelco

P.S. The old Glaurungs that I have are not anymore on Glaurungchess and Dann's site also does not have them I think -is the site still down?-, I only have one copy on one computer, so I suppose I should store them separately on my USB. Maybe Tord also has lost his sources! But I don't think he is so disorganized as  a certain programmer we know.
Parent - By Uly (Gold) Date 2011-07-26 00:00

> Well yes, it would be interesting to compare its effectiveness with that of Rybka 3 for instance


It's much more effective! Mainly, because one doesn't have to do weird or time wasting things to bypass Rybka Persistent Hash's bugs. I didn't realize how much time I was wasting with the workarounds until I tried something better. The comparison is a no-brainer because Rybka Persisntent Hash is a pain to use.

Something that it has that is unprecedented in learning is that you can make "jumps" from one position to some another and carry (propagate) the right evaluations. In all the other engines with learning that I tried, to propagate the learning you have to visit all positions, say, you teach the engine that 1.e4 e5 2.Nf3 Nc6 3.Bc4 is 0.40 and best line, to propagate it to the root you have to visit the position after Nc6, the position after Nf3, the position after Nf3, the position after e5, the position after e4, and then the opening position (even engines like Zappa Mexico II with Preserve Analysis but no learning require this for propagation). With Critter you can jump directly to the opening position and it will carry the 0.40 to there (my version has a couple of "analysis walls" that don't allow this some of the time, but I think Richard has already solved this problem on a more recent version).

Try to do that with Shredder Learning, it'll have some score learned for the opening position, and one for the tail position, and they will be in conflict and collide. A careless jumpy user could even overwrite the right evaluation with the old one that was coming from the opening position, which will be a waste of time. So, jumping with current learning engines is a no-no.

>Most people will probably use just one engine for learning purposes


That doesn't work, ideally you want to have each engine with their own learning file, because, for the positions that the engine with learning doesn't understand, it's still more effective to just continue analyzing with the engine that understands the position, even if it doesn't have learning.

For instance, if what you suggest worked, one could just use Shredder Learning to store all the analysis of the other engines, since Shredder Learning is already very effective (doesn't have bugs one has to workaround). I actually tried that long ago when I had the idea.

The problem is that, you'll find a position Shredder doesn't understand very soon, for example, one where Rybka knows it's 0.80 while Shredder wrongly thinks black has a -0.20 advantage. Now, you show it the Rybka plan, and Shredder is shocked, so it finds a better black alternative that is 0.00 (and it thinks it's 0.00 because it thinks the best white can do is to draw), you show it the Rybka plan that kills THAT, and Shredder find another black alternative at 0.00.

You'll soon find out you'd need to refute ALL Shredder black plans to store that this move is very good for white, and that it takes unreasonable time, it's better to just drop Shredder for analysis and stick with Rybka, who understands that white is winning from evaluation and will be more effective for the position even if it doesn't have learning.

Luckily Critter is so strong that those positions are becoming rarer, but still, if it is wrong and Stockfish is right, it's faster to analyze with Stockfish even if it doesn't have learning, that's why I'd still like to have learning for Stockfish.

>Using learning across engines is not really to be advised I think and not necessary if you store results only if you are sure about them


The engine should always store results, otherwise it leaves holes in analysis and the user just doesn't have a way to propagate what was learned. I think it's the main problem with learning engines like Hiarcs or Spike. Being selective in what is stored is surprisingly as easy as only storing PV and internal PV entries in the learning file. You know the score of some line? You store it. Then it's just a matter of having a smart over-writing strategy, which may be done by ignoring depth and just paying attention to the moves' score. Got a move that has a better score? Overwrite.

>it should not matter much if the engine is not really the strongest


It matters, because the stronger the engine the less likely is that it understands the positions and you don't need to refute all its moves to store the best move. If the engine remains stubborn about the evaluation of the position and it takes unreasonable time to teach it the right evaluation, it's better to not use it, learning or not, which is very likely if the engine is weak.

>I don't really know if learning is in any way better than a really good opening book though (of  the same subtree)


It definitively is, because the engine can't use what is stored from the book. Actually, "good opening book learning" is what IDEA does, and what do you find? The when the engine remains blind to what is stored in the subtree it will keep suggesting poor moves.

For instance, if 6 moves transpose to a losing line, IDEA will see that the first move loses, and ask the engine for a second one, and it'll find that it transposes to the losing variation, and will ask for the engine for a third one, that also does. Meanwhile, while the engine remains blind to the losing line, IDEA will keep extending the moves of the losing variation to check if they really lose because the engine hasn't suggested something better, until finally, the engine suggests the 7th move that saves the variation, but a lot of time has been wasted.

With learning, the engine only needs to learn that the first move loses, and upon jumping back to the root, it'll see the other 5 moves transpose and suggest the 7th move right off the bat. It is instantaneous and can only be done if the engine got access to what is stored.

In fact, with Critter SF I haven't needed to use the searchmoves or Multi-PV features, because learning suggests better moves by itself, while a "good opening book learning" needs to rely on such features to ask the engine for alternative earlier moves when a line has been refuted.

>And an opening book has the advantage that it is much more portable and can be edited by hand. 


Learning is portable if the learning file is small, which is very likely as even a 256MB learning file of Rybka 3 will be zipped to very few MB which can be shared among users. Nobody does that because nobody has the energy to deal with other people's Persistent Hashes.

Oh, and I don't see why would a learning file of the engine be unable to be edited, it would be as easy as having a UCI options parameter that has "Write Score for Current Position" in where the engine takes that score as final for the current position and uses it for backward propagation (not forward, due to the nature of learning that should see to the future of the position, not the past).

The engine shows a 1.00 score for a position that is a fortress? Write Score for Current Position as 0.00, and have the engine look for earlier white alternatives that avoids the fortress. This would also be useful for people that don't have 6men TB on their machines, they just, find the true result of the 6men position online and Write Score for Current position accordingly, the engine should now behave as if it had that 6men TB position, though the user would need to add all the ones the engine keeps reaching.
Parent - - By ernest (****) Date 2011-07-25 16:51

> If you think that, you probably have little experience using the feature


OKOK, I can see the use for some "deep analysis" (of openings, for instance), ala IDEA.

But position learning has also been presented as increasing the strength (Elo) of the engine, which it certainly is not!  :cool:
Parent - By Uly (Gold) Date 2011-07-26 00:02

> But position learning has also been presented as increasing the strength (Elo) of the engine, which it certainly is not!  :cool:


Indeed, learning will have an insignificant impact on ELO for games (in fact, a 0 impact if the tester is using preset, non-transposing positions).

It's a feature aimed for analysis, in where I haven't seen anything more efficient than it.
Parent - By Prima (****) Date 2011-07-21 22:29
Do you use Hash/Learn function of Rybka 4? I think it's not worth the hassle and that Robert is taking the wrong approach to learning. Hopefully a future version of Houdini will do it right.

No, I don't have Rybka 3, 4.0, and 4.1. Your explanation regarding Hash/Learn function, in OpenChess, makes sense though. Maybe down along the line, Robert Houdart may reconsider how he implements Hash and Learn function in the upcoming Houdini 2.0. 

I hope he read your post about these functions and the progress with Stockfish's PA Gran series
Parent - - By Richard Vida (**) Date 2011-07-15 23:54

> Yes he clearly made the statement "I still think that most of ideas were gained through RE". But from which engine? Also notice he didn't mention a specific engine in reference to RE.


I was referring to R3 of course.
Parent - By Prima (****) Date 2011-07-17 22:50
I was referring to R3 of course.

Okay, good to hear this from you rather than for me to speculate or put words in your mouth.
Parent - - By Banned for Life (Gold) Date 2011-07-15 05:49
Normalized Covariance Results

    R3          R3H       R3D         IPP        SF 1.6.2  Fruit 2.1  Strelka    Crafty     R3H C15
    1.0000    0.9979    0.9944    0.9888    0.9536    0.9726    0.9678    0.9535    0.9935
    0.9979    1.0000    0.9939    0.9867    0.9525    0.9697    0.9657    0.9539    0.9950
    0.9944    0.9939    1.0000    0.9790    0.9318    0.9644    0.9652    0.9442    0.9912
    0.9888    0.9867    0.9790    1.0000    0.9572    0.9774    0.9652    0.9555    0.9823
    0.9536    0.9525    0.9318    0.9572    1.0000    0.9531    0.9407    0.9314    0.9461
    0.9726    0.9697    0.9644    0.9774    0.9531    1.0000    0.9751    0.9627    0.9675
    0.9678    0.9657    0.9652    0.9652    0.9407    0.9751    1.0000    0.9532    0.9645
    0.9535    0.9539    0.9442    0.9555    0.9314    0.9627    0.9532    1.0000    0.9534
    0.9935    0.9950    0.9912    0.9823    0.9461    0.9675    0.9645    0.9534    1.0000

I've highlighted the correlation between Ippolit and R3 (0.9888) and between Fruit and Strelka (0.9751) based on a set of about a million positions. This is a huge difference. The static evaluation function of Ippolit is much, much closer to R3 than R1 is to Fruit.

Similarities doesn't mean copied code, it can mean copied ideas.

This is true of course. Ippolet could be totally different from R3 from a software perspective, even though it uses very similar algorithms/heuristics.
Parent - - By RFK (Gold) Date 2011-07-15 06:15
How long does a test like this take to complete?
Parent - By Banned for Life (Gold) Date 2011-07-15 06:35
Not long at all. Mark Watkins obtained static evaluations from the engines listed above for a million positions. I'm not sure how long it too to find and output these values, but I'm sure it wasn't a trivial endeavor.

After the million positions with associated evaluations from the different engines were available, the first six moves were discarded (too many duplicates), along with moves after 25 (endgame evaluations can be pretty squirrely).

After this was done, the covariance matrix for the different evaluations was generated using MATLAB. This is a quick operation that took about 30 seconds on my laptop.
Parent - - By RFK (Gold) Date 2011-07-15 06:24

> Similarities doesn't mean copied code, it can mean copied ideas.
>
> This is true of course. Ippolet could be totally different from R3 from a software perspective, even though it uses very similar algorithms/heuristics.


But then how do we know what it is we are really looking at? What are the odds/percentages that these ideas are similar- and the code written with stark differences?
Parent - - By Banned for Life (Gold) Date 2011-07-15 06:40
This method says nothing about the code, but everything about how far apart engines are in their static evaluations. If two engines use the very similar algorithms/heuristics in their eval functions, the correlation will be very high (say > 0.98). If they don't, the correlation will be lower (say < 0.97).
Parent - - By bob (Gold) Date 2011-07-15 17:20
It doesn't say a _thing_ about how far apart they are.  Take program A.  Copy the evaluation into program B.  Now work on program B for a while and add additional terms, while keeping the original copied code intact.  The final evaluation numbers can be wildly different, yet code has been copied and the program can't play according to ICGA rule 2.  You have to understand how a chess engine works before you make these over-simplifications and post them here.  Your test doesn't show a thing about whether code was copied or not.  On the other hand, disassembling and comparing discovers this transgression clearly and convincingly...
Parent - - By Banned for Life (Gold) Date 2011-07-15 18:12
It doesn't say a _thing_ about how far apart they are.

Bullshit. The covariance matrix tells exactly how far apart they are by comparing the output response to common inputs.

Now work on program B for a while and add additional terms, while keeping the original copied code intact.  The final evaluation numbers can be wildly different, yet code has been copied and the program can't play according to ICGA rule 2.

As I clearly stated above, this is a test of functional equivalence, not of code copying. There is no proof in the report documents that evaluation code has been copied.

You have to understand how a chess engine works before you make these over-simplifications and post them here.

Bullshit! What a big fucking head you have!!! One doesn't have to be an expert in chess engines to understand functional equivalence. In fact, you are clearly a dunderhead in this area.

Your test doesn't show a thing about whether code was copied or not.

As I clearly state for people who can read.

On the other hand, disassembling and comparing discovers this transgression clearly and convincingly...

Once again, I'll post the components of your report to allow the readers to see that you are full of shit.

EVAL_COMP.pdf                          - has no code whatsoever.
ZW_Rybka_Fruit.pdf                    - shows a comparison of Fruit C with Rybka C. Where the Rybka C came from is not clear. There is a claim that the two functions are nearly identical, but correlation between static eval values is not nearly identical, so this can't be right.
crafty_rybka_evidence.rtf             - irrelevant comparison with a non-released engine.
Rybka_Investigation_report.pdf    - no code whatsoever.
Rybka_Investigation.pdf               - no code whatsoever.
RYBKA_FRUIT_Mar11.pdf             - States that "The crux of the conclusion is that Rybka 1.0 Beta and Fruit 2.1 have exactly the same evaluation features". This is not consistent with testing that shows that the static eval of Rybka 1.0 Beta and Fruit 2.1 are only slightly better correlated than any two supposedly non-related engines.
R1x64.eval.txt                            -  Commented R1x64 asm eval but no attempt to correlate with Fruit 2.1.
Ryb232eval.txt                           -  Commented R2.3.2a asm eval but no attempt to correlate with Fruit 2.1.
Up Topic Rybka Support & Discussion / Rybka Discussion / In retrospect (locked)
1 27 8 9 10 11 Previous Next  

Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill