Jorge Garcia de Andres wrote:I have a question for you Jury,
There is only one extension in the search:
the check extension in fact, why don't you have put more extensions in the full root function it will have enpowered your engine
In fact he also uses recapture and pawn-promotion extensions, but only in PV-Nodes, while check extensions are done in all nodes. (Like Fruit)
ozziejoe wrote:If the author of strelka claims that all vas did was duplicate fruit and add a few "trivial tricks", then why hasn't he done the same and created an engine as strong as rybka. Rybka is now over 300 points stronger than fruit 2.1 (and unlike fruit, it is a bitboard engine, for goodness sake.)
I look forward to the new wave of engines that will be made stronger based on the rybka/strelka code (and not so much on the fruit code which has been available to programmers for a long time.).
It may be a big disappointment to many, but really, there isn't much to learn from Strelkas sources at least regarding the search techniques and there surely is no secret revealed. All the techniques used in Strelka are well known and known for years. Things like Nullmove with R=3, Nullmove verification with R=4 (not 5, because in reality it's depth-1-R, giving depth-5), futility pruning, late move reduction, "delta" pruning and so on.
Strelka is clearly based on Fruit, which can be seen on the first glance by everyone who has looked into the Fruit 2.1 sources. The search is very similar, many functions and variables still using the same name, and it's following the same strict (and very good and successfull) principles that Fruit was following, but taken even further into the extreme.
Namely:
No selectivity in PV-nodes
No hashtable values being used in PV-nodes
Full extensions in PV-nodes
Full selectivity in other nodes
Full hashtable use in other nodes
No extensions in other nodes
With the only exception being the check extension, which is being used everywhere.
Fruits search has a very clear and unique fingerprint, which you can find exactly in Strelka.
Even more extreme than the original Fruit is the fact, that in Strelka the search functions have been split up even more into different functions - one function for every possible situation (like root-search, pv-search, full-search (all other than pv-nodes), check-search, quiescence-search, quiescence-check-search). Maybe a good idea, because it makes things a bit easier in some situations.
But every experienced chess programmer can read and understand Strelkas search functions within minutes - and will discover, that there is nothing new in it.
What makes Strelka strong is the same recipe, that made Fruit strong. What makes Strelka stronger than the first Fruits may be a better and clever combination of existing, well-known techniques and aggressive selectivity (but also using well known techniques with adjusted parameters). And maybe some things in the evaluation functions. But on the other hand, the eval of Fruit 2.1 was very strong already, and far from being simple (some things were split over some different source files, which some may not have realized).
My appeal to all of you:
Please do not in advance discredit all chess programmers, who will release new, stronger versions or new strong programs in the future by claiming they are all based on Strelka/Rybka. There really is no secret revealed in Strelka.
You may have noticed that there are close to zero discussions about the Strelka source in the programmers section. The reason, I'm very sure about that, is, that no one found something spectacular new in the sources.
Kind regards,
Heiko
Disclaimer:
With all this I do not judge, if Jury has disassembled Rybka beta or not. I truly admire Vas Rajlichs work with Rybka, which is great program, and which I have bought myself and enjoy to use.