You need for sure a hashtable inside qsearch.hgm wrote:Indeed, plunder raids are the main problem I am battling. When a piece like a Lion manages to jump to a safe square within the opponent's camp, it can then start to pick off all neighboring pieces 'en passant', as it were, ending on the same safe square as it was. There could be upto 8 such neighbors, and the Lion could capture them in 8! = 40,320 different orders. If the opponent is then doing the same with his Lion...diep wrote:I realize you don't like plunder raids - writing some knowledge there and debugging that well should solve it. For Diep the discussion is a different one - there is no doubt between that doing great captures and giving great checks is a good idea in Qsearch.
Some older Diep versions around the days i introduced todays qsearch, they also could in some cases waste thousands of nodes in qsearch (yes that really brought tactical playstrength - less relevant for todays search depths).
In Diep every ply is the same for hashtable. You can do this only if every ply you do the same thing, that trick only works if you also see things to the bitter end in qsearch.
As for your huge game - a qsearch that's eating so many nodes, it's simply part of the game, you have to accept it - just like ladders with go - and do big effort to do it more efficient. You can't do without hashtable simply in such case.
Tactics in chess are relative easy and initial evaluation also is relative easy to do reasonable as the center is so important in chess. We have been spoiled there.
The game you play it's maybe possible, after statistical analysis, that always starting in a specific order you can skip doing the 'worse moves'. This is very tricky and can dramatically limit the size of your qsearch. It might be too dubious though.
Investing big time in a very good qsearch is really important in any game.
In this case you might also increase strength using an old trick that doesn't work well for chess actually.
During trying moves in qsearch you'll soon discover whether the opponent has big tactical threats. You might consider extending there. In this manner you pick up massive tactics, of course at a huge price, but it's picking up that much tactics that it's giving a huge boost in playstrength. You can see it as an additional 2 ply selective search that gets effectively added.
Having worlds largest chess evaluation by far sometimes means simply that IF it sees something to be good, it really causes a dramatic swing.Absolutely right; such huge score swings causes a terrible 'positional' horizon effect, just as bad as captures do without QS. I already saw that in Joker, where the castling bonus was more than 1 Pawn and awarded at the time of the actual castling. It starts to sac Pawns to push the opponent's castling over the horizon.However where most 'good captures', say taking a pawn on b7, can increase the score, as the queen is dangerous there and can be forced to go back, it'll increase score say 0.5 pawn or so.
Yet playing the move Na6-c5 increases score a lot more, say 2.2 pawns effectively. From shitty mobility to great center control, besides the usual bonuses.
In fact previous move the opponent might've played just a relative 'bad move' just to get the LMR reduction in order to avoid you from playing Na6-c5.
Moves like that deserve to be searched in QS, because a position where you can do them cannot be described as 'quiet'. I once considered to search Pawn pushes in QS, because they can also give huge score swings (e.g. when creating a passer). And like captures, they are irreversible. So in the end you would run out of them. And futility pruning would take care of most of them in practice anyway.
Of course an alternative, and perhaps more efficient way of solving it would be to distribute the bonus over several moves. E.g. with castling you can already give a bonus for each square between King and Rook that gets evacuated, and with the Pawns you can give a bonus for candidate passers, and majorities. But for the Na6-c5 example there seems no way to 'soften' it.
You could extend this to such moves as Na6-c5, based on some static (PST-like) score threshold. Searching only moves along the gradient of a static board table effectively makes them irreversible too. Only when you have a moving target (like the King for checks) you have the danger of infinite recursion.
I don't think any other evaluation in computerchess is having any chance just evaluation versus evaluation. You really have to consider that Diep gets outsearched by a quadritrillion plies, as even depth contests they make 0% chance.
Diep has by far the best evaluation, though untuned parameters still make it doubt a lot and that eats more nodes. Several posters here under which Don seem to not see the difference between a great evaluation with superior chessknowledge versus a well tuned evaluation with very little knowledge. It's very easy to outdo with a well tuned evaluation the bad tuned superior chessknowledge as the simpler evaluation when well tuned will strategically play better. Diep can be like god positionally, it really suffers especially in opening from strong tuning which would otherwise also have it play strategically better.
Huge score swings as the above are a result usually of a lot of patterns suddenly coming together.
The very careful tuning of diep where i historically always tuned parameters very low, it is effective, but if some well tuned evaluation has the simpler version of the pattern and has it well tuned, it'll go for that whereas diep gets little points and loses it there; only if more patterns hop in, it'll be convinced there. That means that the generic case goes wrong sometimes - suicide in todays chess.
Being well tuned versus superior knowledge are 2 total different things.
In many positions i just can't even start to compare Diep's evaluation with other evaluations. The well tuned evaluations there might pick the best move at a 1 ply search, but they're not seldom 0.5 to 1.0 pawn off from what the position should be. Diep usually is closer to that 'human natural score' there, but that doesn't mean it picks at 1 ply the correct move more.
A clear proof how important nowadays parameter tuning is.
I'm investing a lot of time there right now.
past few years i started to assume that tuning the parameters better is especially helping the evaluation around qsearch. The above Na6-c5 problem i described is nearly impossible to avoid. We don't know beforehand that the huge score swing is Na6-c5. Much bigger scoreswing could be Qd2-h6. Could be +20 pawns in case of Diep, in some positions.
King safety can easily deliver 50 pawns bonus. It's amazing how many cases where dozens of pawns happen, that this is also very true, as most of that code is years 90 code.