Fabien Letouzey wrote:
I don't understand where the sacrifice is coming from. My definition of "exchange" is: I move, he takes, I take (3 plies). The special move generator makes sure that I will be able to capture on the 3rd ply.
Let's assume that my opponent cannot capture on the 4th ply; I would expect this to happen > 50% of the time. Then I lose the initiative, my opponent can do whatever. Therefore, for me, "my score has dropped even more" has no bearing as it's not even my turn anymore. It's my opponent's turn to worry about his score and position.
Ah, yes I misread, sorry. Ok, that resolves my question about long sacrificial intros with a bigger counter-capture. I can see now how your QS is carefully controlled.
Maybe "pending" is what I call a "pin"? I move a piece, and this allows the opponent to capture another one I was defending? No I haven't tried it. I assumed most would be bad in random positions (contrary to exchanges). Probably some restrictions should be added. I also assumed that "pins" would be rarer than exchanges, especially interesting ones.
With "pending" I meant that the side to move has to make a captureWhite to move has a pending capture 31x22
"Threatened" I guess is the opponent captures. I tried extending 1 ply (= forbidding standing pat), possibly only in restricted cases; no improvement. I didn't insist on this front though, despite the "double quiescence" from Buggy which sounds a bit mysterious to me (no captures for either player?).
With "threatened" I meant indeed that the opponent will have to make capture on the last moveWhite to move, black threatens 16x27
This means white of course has a "free tempo" to create damage for black (runaway to promotion line unopposed with 20-15 and 15-10, or make a counter-combination with 37-31 and 31x4). It's a well-known theme for draughts composers, and young draughts players are trained not to give free tempo to their opponent without double checking their calculations. Just speculating, but I think that Buggy's author (very strong player) did indeed use double quiescence to mean that eval() is only called when there are neither pending nor threatened captures. This will often explode the search tree, however, and some restrictions are necessary.
I think that's it, we just view QS differently. For me, QS is what you make it. In the 90's when everybody was extending tactical moves, it makes sense to reduce it to a minimum. But remember that I prune a lot, so I'd rather have some tactical safety at low depth. Static eval doesn't take that into account because I filter out capture positions during learning.
Thanks for your explanation, all is clear now
So if you are looking for tactical safety, may I suggest to try only exploring unforced exchanges in QS if the eval is, say, half a man below alpha? In this way, you avoid exploring exchanges for small positional gains but you would still find material-gaining tactics when you need them the most (you would miss some tactics when you are not too far behind positionally though).