tiger wrote:gerold wrote:tiger wrote:Bryan Hofmann wrote:The code that was passed on to me plays the same as the released binary. It is original work and not a clone. If you have questions about the code or how it works I ask that you direct them to author as it is his work.
Bryan
Excuse me Bryan, AND I AM NOT SUGGESTING STRELKA IS A CLONE, but out of curiosity, how can you tell that a piece of code you are reading, even in source form, is "original work"?
I direct this question to you and not to the author because the certainty you are expressing tells me that you have seen an obvious proof of this "originality", and I have no idea what it can be.
// Christophe
Thanks for asking this question Christophe. I was hoping someone
would ask him.
I didn't want to ask him because he ask that all questions be put to
the author.
It's more a computer science question than an accusation of any sort.
I think I should have been more specific in my question to Bryan and not talk about any piece of code.
My question would then be: what in the Strelka source code makes you believe that it is not a clone of another program, and not a clone of Rybka in particular?
I think it is possible to answer this question by giving details that do not reveal secrets about the program. At least I hope so.
// Christophe
I agree with Brian. Although it uses parts of Beowulf's I/O, the engine itself is an original work (or if it started out as something else, it does not resemble it any more). I have read the source code to every open source engine and perhaps two dozen closed source engines. His engine uses techniques that are different than any other engine I have seen (by that I mean he implements things differently). In fact, it took me a couple hours to understand what he was really doing. Now as far as chess ideas go (alpha-beta, pvs, etc.) most of his stuff is not unusual. But he implements it differently than other programs I have seen. The sort of thing you would expect to see if someone read an article and then wrote an engine based on what he read, and then compared the engine of someone else who did the same thing. He has some approaches that are fresh and interesting.
He did use stuff from Beowulf, but it is only a trivial bit of I/O stuff. Perhaps it could possibly be a frankenstein of one dozen chess engines but I don't think that is what happened.
Here is the outline of my guess:
He wrote a chess engine using chess programming articles that had a proprietary interface. After some time, he found out about Winboard/Xboard, and decided to tack on a Winboard interface. He found Beowulf was easy for him to understand and so he used the I/O portion as a starting point (the exact Winboard functions supported by Beowulf and Strelka are different).
His code is not much like Fruit or Glaurung. If he used Beowulf's search and evaluation as a starting point, then it is a complete rewrite so that search and evaluation are no longer recognizeable (besides being 450 Elo or so stronger).
If he grabbed open source and copied from it to make his strong engine, then which?
I am familiar enough with the structure of:
Fruit
Glaurung
Scorpio
SlowChess
Crafty
to say for sure it is not a clone of any of those. With that having been said, then which strong open source engine has he borrowed from?
Whatever the case may be, I can say that he has done enough work making this engine to call it his own. He may certainly have collected ideas from some other engines, to make it stronger. But there is nothing wrong with that.