Not logged inRybka Chess Community Forum
Up Topic Rybka Support & Discussion / Rybka Discussion / So what changed?
- - By Graham Banks (*****) Date 2013-10-11 03:25 Upvotes 1
http://www.top-5000.nl/int/fruit.htm

"...I am sorry to say that whether an engine is someone's "own work" makes little sense to me, although I understand that tournament directors would like a clear yes or no.

The reason is that all engines, whether amateur or commercial, share most of the techniques. Alpha-beta (of which PVS, NegaScout and MTD(f) are only derivatives), iterative deepening, check extensions, null move, etc ... are shared by most and have been published, mostly by researchers, some of them more than 30 years ago! Sure there are many different ways to represent the board and pieces but it only affects speed, which rarely amounts to more than a few dozen Elo Points.

There is one component that so far is distinct in each engine (although some older ones were probably "inspired" by Crafty): the evaluation function. But there again the evaluation features are hardly ever very original: the principles of sound chess play can be found in hundreds of books. It's hardly a secret that rooks should be placed on open files, something that Fruit does not even know (though rook mobility partly emulates this piece of knowledge).

So what is left for improvisation? A lot of course, otherwise all engines would be equal. But say in terms of quantity of code they don't represent so much. Among this "lot" I think there is a large place for things that cannot be extracted: programming style and ways of linking engine components, making them work together. Not something that most would consider as a "chess-engine technique" like null move.

OK let's stop here and do a little sum up with Fruit in mind: I can't think of a search feature in it that was not described before. Ditto for evaluation terms (except perhaps a few drawish-endgame rules that activate in one game in a hundred). There are specific principles that I follow in Fruit that gives it a personality somewhat (like never truncating the PV and making sure that mate-depth claims are always correct), but they probably have no impact on strength at all and could even hurt a little.

Can I claim that I have written it all on my own? "Yes", I typed all the code myself. Without help??? Certainly not, hence my point: "it makes no sense".

Sorry for the dramatic style ... One positive point now: instead of seeing engine authors competing against each others, I see them as cooperating (mostly indirectly) and making progress together, since they have so much in common, whether they want it or not.

My opinion anyway ... "
Parent - - By Ray (****) Date 2013-10-11 03:42
I don't know what you mean. MY interpretation: He is saying that ALL engines share the same ideas, none are truly original (including Fruit), the ICGA concept of originality is nonsense, and why was Vas singled out ?
Parent - - By Graham Banks (*****) Date 2013-10-11 03:47

> I don't know what you mean. MY interpretation: He is saying that ALL engines share the same ideas, none are truly original (including Fruit), the ICGA concept of originality is nonsense, and why was Vas singled out ?


What I posted was what Fabien Letouzey said in the interview linked to.
Parent - By Ray (****) Date 2013-10-11 05:14
Oh I see, Fabien said that and not Ed !  Remarkable.
Parent - - By oudheusa (*****) Date 2013-10-11 11:48
What is Fabien's point? Is he regretting that he was part of the ICGA investigation?
Parent - - By Ugh (*****) Date 2013-10-11 12:02
the link to the Fabien interview (does the quote come from that?) shows a 2005 date
Parent - By Graham Banks (*****) Date 2013-10-12 18:38

> the link to the Fabien interview (does the quote come from that?) shows a 2005 date


Correct. The quote is from an interview that was done with Fabien. Those were his words.
Parent - By Charles (**) Date 2013-10-11 12:22
The same interview is also on this playwitharena.com page. A little past half way down on the page - Listed as 96 on the page.

http://www.playwitharena.com/?Newsticker:Archive_7
Parent - - By RFK (Gold) Date 2013-10-11 18:13
Every time I've put a question to Bob about the difference in programming style he has come back at me stating that he is not looking at programming style yet for Fabien it is a focus. There always seems to be this nit picking going on.

However I have as principle to rewrite projects from scratch every few years, both to try new ideas and to accommodate with ever-changing programming style.

People can find ideas (with no guarantee) or simply discover a "different" programming style. Last but not least, some programmers can gain the confidence that no special "secret technique" is needed to reach that level and that they should follow their own ideas. It's about freedom.


I am not a programmer - and I will most certainly stand corrected on this -but , I would assume that both have very different programming styles.

To take a broader leap!

I see each individual chess engines- Fruit, Rybka, Komodo, Stockfish, and  yes even Houdini, which has made its own case over time-  chess engines that have absolutely reached their pinnacle of performance out of the  individual programmers expertise - par excellence.  And most recently in the case of Stockfish a group of programmers committing themselves to the challenge.

Looking forward!  No one in their right mind CAN or even should  equivocate these programs to being  clones/derivatives et al.

For the most part they are alone in their class- and if one does crop up- it is suspect if it is with out a history!

To witch hunt any  one of these programmers for basic structural  implementations necessary to every  chess  program-to suggest that one of these programmers had  stolen what is  basic to most chess engines in development-  because,  of a fraction of its basic elements are written similarly  -seems to me to be a waste of time and pure non sense. What does it matter if it is basics. Yet, most  programmers cannot fathom nor have  insight to challenge any one of these programs (Rybka when it was in its prime) beyond the basics.    

To go back in time when any one  of these programmers were just starting out-( you can even do this with Don vs Doch)  and learning their craft -fielding ideas-to assume that they were not able and/or  capable enough programmers later in achieving -in some cases ground breaking programming techniques- to evolve to where they are today, developing top seed  programs, that would potentially dominate the hobby for years to come- does not only go against all  reality - in my mind it just boils down to a case of  petite politics concomitant with the  practice of the lowest form of demagogy.
Parent - - By bob (Gold) Date 2013-10-11 20:57
The point about "style" is a pretty important one.  If you'd like, I can post Fruit's trans/ref store code, then Rybka's as derived by Richard, and then Crafty's.  They ALL implement the same basic idea, that of "avoiding duplicate effort if you reach the same position at more than one point in the tree."  I go for both fast AND readable, because of experience.  And my "programming style" is quite different from Fabien, AND the style derived from the rybka code which matches fruit exactly in the above piece of code.  There are times when the fastest possible code is needed, but there are times when the most straightforward implementation is not very far behind in speed, and using that straightforward code will make future changes or fixes easier to do since the code is easier to understand after being put aside for a year or more.  That's part of the problem that the investigation turned up.  Some want to harp on nonsense, everybody uses alpha/beta, everybody does this, everybody uses that idea.  All true.  But NOBODY writes their search exactly the same as someone else.  Crafty's search, by itself (not including the capture search either) is almost 1,000 lines of code.  Nobody else's search will look anything like mine.  Nobody will do everything in the same order, using the same tests, etc.  Writing code is a creative process, and creativity leads to uniqueness.

If you want to see what I mean, I can post the above three blocks of code, plus, if you want, tt.cpp store part from stockfish.  Four different programs.  Only TWO have anything at all that looks similar.  Those two look IDENTICAL.  Let me know if you want to see the code, to get a perspective on this issue...
Parent - - By RFK (Gold) Date 2013-10-11 21:47
Keep in mind that I'm not a programmer.If even I can see distinctions that are quite obvious and apparent...but, more importantly,  bear in mind that I don't know if I am looking at rudimentary basics being hashed out.

I don't know where in programming the essences of a chess engine is engendered and discernible. Because to me that would be where the real meat and potatoes of this issue are presented. Not in the basic structures.  

I can draw some small analogy -in architecture only because I spent my early years in design - you go through some rudiments in layout -formula=rules depending on materials. From there you draft out a plan-design.  By choice of materials you are limited -you can really get creative and at the same time- restricted. So for me it is where did Fruit and/or Rybka get creative.  That would be the place that makes them different or copies.

I have been attentive in following some of the similarities, but I'm not sure how important they are when it comes to understanding the essence of each program. This is vital to my understanding.
Parent - - By bob (Gold) Date 2013-10-11 23:23
There is one problem in showing you code.  A compiler turns code into semantically equivalent assembly language statements.  A part of a person's "style" is removed.  How do they name variables?  How do they capitalize variable and procedure names?  How do they indent code (not just loops).  For example I do this:

if (c) {
...
} else {
...
}

Some choose to do this:

if (c)
{
...
}
else
{
...
}

That is just one difference.  There are lots of other things, particularly comments.  And every last bit of that is removed during compilation.  There are still stylistic features in the code, to be sure, but many are lost.  One person might be big on procedures, lots of small ones, another might write one big one.  A good optimizing compiler might take the former and automatically turn it into the latter via inlining optimizations.  In other words, it is a mixed bag of things, some of which are no longer available unless you have two source files to compare.  Hence the comparison I proposed where Fruit, Stockfish and Crafty are VERY different, even though they all do the same basic things.  Some here (Chris and Ed) want to preach "one function leads to one implementation" nonsense, where you can clearly see through that argument with the above 3.  Rybka is a special case, because someone (Richard in this case) had to take the asm and turn it into semantically equivalent C code.  The primary point there was that you CAN turn it into Fruit's hash table store code, you can not come anywhere even close to turning it into Crafty's or Stockfish's code.  That's just one example of course...
Parent - By RFK (Gold) Date 2013-10-12 12:37 Upvotes 1
Odd, if someone were to show me an unfinished layout that was drafted by one person and later attributed to the finished product of another. We would be right where you are now. But it is with the  finished body of work where relevant conclusions are drawn. 

We could even  call the ICGA findings  "The John The Baptist Verdict"

In lieu of the presumed finding of the bones of - John The Baptist!

A small handful of bones found in an ancient church in Bulgaria may belong to John the Baptist, the biblical figure said to have baptized Jesus.

There's no way to be sure, of course, as there are no confirmed pieces of John the Baptist to compare to the fragments of bone. But the sarcophagus holding the bones was found near a second box bearing the name of St. John and his feast date (also called a holy day) of June 24. Now, new radiocarbon dating of the collagen in one of the bones pegs its age to the early first century, consistent with the New Testament and Jewish histories of John the Baptist's life.

"We got some dates that are very interesting indeed," study researcher Thomas Higham of the University of Oxford told LiveScience. "They suggest that the human bone is all from the same person, it's from a male, and it has a very high likelihood of an origin in the Near East," or Middle East where John the Baptist would have lived.


The bones-
Parent - By Loboestepario (****) Date 2013-10-12 19:31
He must have felt robbed even by his own loose standards of personal property
Parent - - By M ANSARI (*****) Date 2013-10-13 05:29 Edited 2013-10-13 05:34
Here is where people are not seeing the "elephant in the room".  If you look at the readme file in Rybka, it is almost word by word the same as is mentioned by the Fruit author.  I think Vas made it very clear that he went through several open source engines available at the time and he even mentions that he went through Fruit "frontward and backward" ... cannot be more specific than that.  He also does mention that he wrote his own code just like Fabien does.  The elephant in the room here is that Vas has done basically exactly what Fabien did and what apparently every single relevant engine writer did, yet he is being singled out and crucified for it.  So in Fabien's own words "it makes no sense" to single out Vas and it certainly is proof that there is more to it than meets they eye with obvious hidden agendas by jealous or competing parties.  Bob obviously has a grudge against Vas for accepting a lot of help and information by programmers to help improve his engine, but not giving back once he had achieved success.  You could say he has a point in being pissed off for not wanting to follow Bob's "sharing is caring" path and avoiding going commercial like the plague, but hardly any wrong doing there ... while others simply had no answer to the superiority of Rybka in competition except this path.  Again, the darkest chapter in computer chess history!
Parent - By bob (Gold) Date 2013-10-13 23:21 Edited 2013-10-13 23:44
There is a difference between taking ideas from others, and copying code from others.  A BIG difference.

Fabien has CLEARLY stated, multiple times, that he wrote his own code.  He used ideas that are well-known, to be sure.  But he wrote his own code.  He did NOT accuse Vas of taking just ideas from Fruit, the letter he wrote is quite clear in that regard.
Parent - - By AWRIST (****) Date 2013-10-14 23:31
Again, the darkest chapter in computer chess history!

Of course, but compared to the military massmurderers of the USA, Britain and Israel with the terror of the NSA and secret services, all their lies to the UN and their hypocrisy overall, Bob is just a typical American computerchess cowboy who explained even to me as a complete outsider many details about the background of chess programs.

Years ago I offered asyl to Amir from Israel, so I would offer a shelter to Bob, in case his USA would go bancrupt, this is the least a German could do, whose country was responsible for that ugly war crime of the Holocaust. However hate speakers like Netanjahu I would imprison in The Hague!

Ed Snowden and Ed Schroder are my new heroes for the years to come.
Parent - By ernest (****) Date 2013-10-15 00:25
OMG, you are back!!!

When did they release you???
Up Topic Rybka Support & Discussion / Rybka Discussion / So what changed?

Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill