lkaufman wrote:Switching after N moves have been tried is not very useful because decisions like LMR and pruning have already been made. The question of CUT/ALL distinctin is very interesting to me. Stockfish is the strongest program that doesn't make any such distinction. For Rybka, Ippo, Ivanhoe, Houdini, and Critter, the distinction is critical as the two types are treated very differently in many ways, such as vastly more aggressive LMR at CUT nodes and doing singular extension at CUT but not ALL nodes. In the case of Komodo, we do make the distinction, but have found it to be only marginally useful, we don't make the huge distinctions that the above programs do.
So for me it is a very puzzling question of why these huge distinctions appear to work so well in the above named programs but not in Stockfish or (to any important degree) Komodo. Anyone want to venture a guess?
Not sure which version of Rybka you refer to, but strictly spoken Rybka search is more dependant upon a window around the rootscore.
By not treating nodes similar one takes a risk simply.
The first obvious risk is that if your evaluation is 1 pawn off, you're dead meat.
The derived problem from this is that it's even harder to fail high for a move where evaluation doesn't directly see that it's should go for that.
SF just simply always reduces more than Rybka&derivates there. You typically see it needs a bigger plydepth to fail high in its root.
SF is taking even more risks, but in a consequent manner, note it also GETS a far bigger search depth, which allows it to search its way out.
We slowly see a return of the older programs now, they fail high at far lower depths, and most aren't taking the huge risks that Rybka&derivates are taking; a good example is deepjunior13
You can see how strong it is tactical as a result.
Hiarcs to some extend also is a good example there. It is doing some risky pruning, but far more limited. Meanwhile it uses big mobility concept, so it can total outplay opponents which do not have that, based upon that. Hiarcs because of that mobility concept has a far more human playstyle.
Diep's mobility has been based there upon Hiarcs. Though far more knowledgeable, in its concept it's the same thing.
AFAIK no other program is doing it like that.
When bugs then are tested out for both these engines, which isn't easy, i predict the big return of them at the world top; as in such moiblity contests, the 1 pawn around rootscore search idea is very tricky then and can have severe worstcases.
On the other hand Rybka is near unbeatable when the position on the board falls within that that 1 pawn around rootscore.
SF there simply in advance doesn't gamble that much that its evaluation function is better than that of the opponent; it won't fail high therefore quickly, it always needs more plies. Yet it gets a lot more.
That allows SF to have a more agressive tuning, as it knows in advance it's gonna outsearch its opponents.
So if we'd play games where there is hardware advantages, SF is a tougher to beat engine than Rybka, as it's so dependant upon its search depth and window around its search depth; provided of course the opponent is an engine not *similar* to rybka. So all this math works a tad different for derivates from rybka.
To summarize it: rybka&derivates NEED to have a better evaluation function or it's history as that narrow, say around 1 pawn border, around its evaluation function determines everything.
Whether it uses a bigger reduction factor for nullmove, whether it razors it etc.
In SF you can see clearly, didn't check out the latest source btw, that it's doing this huge reduction factor anyway. It combines razoring with futility and is doing whatever to search deeper.
I would consider that a more consequent manner of searching than what Rybka was doing; we see how some of its clones and many followers which do similar things, how they do try to search a lot deeper, meanwhile being more passive tuned. That reduces the risk somewhat of doing a few patzer moves which lose so bigtime if you get outsearched. Though of course the game gets even more boring as a result of that.
Note that everything i wrote here is using several lemma's. One of the lemma's i assume is that a program with little chessknowledge, such as SF and Rybka, that if you tune those agressive, that you will completely lose against more knowledgeable engines in this position you happen to have on the board, once you don't totally outsearch that more knowledgeable engine.
SF on other hand can easier risk running at inferior hardware as it'll get that huge search depth anyway.
Already years ago i noticed this with Diep clearly when it was a lot weaker; Factor 4 hardware advantage means total hammering of Rybka, yet SF just survived that handsdown, as it searched way deeper and is more agressive tuned; note that in such matches even factor4 hardware advantage didn't have diep outsearch rybka.
Just that rybka search doesn't really correct its evaluation function in an objective manner; it's searching BASED upon its evaluation function a specific line deeper or less deep in a more agressive way than SF.
SF is far more selective there.
From this lemma you can also realize why the houdini's and iggorit and ivanhoe's and ippolits suddenly won from Rybka, sometimes despite not having the same knowledge in eval; they are more passive tuned than the big rybka, yet outsearch it.
A tad more agressive tuning with little knowledge total backfires if you don't outsearch your opponent.
Note that any of the above theories doesn't say anything about the absolute playstrength of a given engine, so it doesn't predict tournament results. It just shows some weaknesses and strong points.
Vincent