lichess.org
Donate

Forced checkmate sequence can increase in length as analysis goes deeper

@schlawg said in #39:
> I mean everything you typed, not everything stockfish generated.
I used Arena GUI so I didn't type anything. I can try it in the executable directly if you tell me the commands to use.
how deep do You mean? it can be due , for example #22, and Stockfish by Analysis finds some more ways to Resist for some Side
@aVague said in #42:
> how deep do You mean? it can be due , for example #22, and Stockfish by Analysis finds some more ways to Resist for some Side
There is no way to resist a forced checkmate. It's unavoidable with correct play. Even God couldn't resist. The point I and schlawg is making is that Stockfish isn't guessing when it says mate in 22, or at least it shouldn't be unless it's buggy or we misunderstand something.
For the record, when Stockfish said #40 at some point and #41 later, that does not necessarily mean there was something wrong with its verdict of "#40" because it ended up with "#32" even later anyway so that there is indeed a forced checkmate in 40 (unless the whole analysis is wrong). It may just as well be a problem with slipping back to "#41" as a problem with "#40" that was revoked.
@schlawg said in #36:
> everything

Yes, when analysing an engineered analytical instrument, usually good to have everything that goes in, and everything that goes out, specially when the instrument been distributed without such Q.A. as we might be pondering here.

My post was too concise to be expressive. just claims. for more insight I have my ramblings elsewhere (my rambling solo-forum, me and my chorus as minimal audience, you know, that chorus we accumulate with life experience of many points of views that we might have cared about, also used as theatre devices in some monologues or other parts of plays....). Getting just the summary of that, is not explicit reasoning shared).

I agree with the multiPV not being the cause, but if one can "force" the engine very early on to look sideways too early, it might behave better, as in not needing that much depth to find out a shorter forced mate call was wrong assumption (a posteriori). However, I think the memory of passed shallower evaluation might actually be about it. Might need to put memory to zero, if it were possible to find out. Late move reduction is to my understanding meaning, later than evaluated positions being not looked at because of earlier position evaluations marking some moves going there as worthless pieces of s... positoins for a long engine search time.. until some mirable of killer move list starts saying "hmmm....." once, and then , "hmmm" twice.. (got to be lucky there, that the killer move still applies....).

so engine do legal searches.. the first time a mate is ever seen it always has only the "legal" property, as it has to be min-max backpropagated** to the root position being searched

** I do not like to use same words to mean different things, why i use backbubbled and redundandify it with "backward". backpropagation already been appropriated by other field in that head of mine, I could not think clearly at first throw here using it, but now, that a manifestation of perplexity demands it.. I humor it. Very humor it. In my flexible English.
It is not uncommon for chess engines like Stockfish to "lose" a shorter mate. This does not mean that the shorter mate announced previously is wrong because Stockfish makes sure that they are proven to be correct.

I highly recommend using the Stockfish Discord server to ask about these things. You will get answers from people that actually know about Stockfish and chess engines instead of trying to guess what is going on.
Assuming that you understand how a mate in n increases at greater depth within the same search (having plenty of free hash to spare), can you explain it here?
@schlawg said in #47:
> Assuming that you understand how a mate in n increases at greater depth within the same search (having plenty of free hash to spare), can you explain it here?

I do not know why exactly, that is why I recommend using the Discord server, you can ask the devs directly there. They might not know either, but at least you'll get some "official" answer.

Also, as a side note, Stockfish does not prove that a mate is correct when it is getting mated, only when mating. So it might say that it is getting mated in 5 moves but it could've missed a better defense and be mate in 6.
@Hott said in #1:
> I believe I’ve seen recently my local analysis evaluating the position as something like “#23”, and then, after some still deeper calculations, it had increased, i. e., showed something like “#26”. The engine be like “White can checkmate in at most 23 moves if playing properly”, and then “oops, not quite, Black can put off their defeat for three moves”.
It can be a bug in engine but that is stockfish. Lichess merely uses it so no-one (unless someone here deeply involved in stockfish development) here knows why.

You are correct alpha-beta should know for sure if there forced checkmate BUT going that deep it is quite possible that some defensive move was incorrectly pruned with NULL-move-pruning which then in later analysis for some reason is not pruned.

But I mostly guessing as I do not so much extra time that I would start digging. Believe answer is gonna be difficult.

Asking this question in some stockfish related forum is more likely to give answer (if accompanied with PGN)
discord.com/channels/435943710472011776/813919952713154590/966021507291680778

For anyone who can't read that: Stockfish can lose a mate - where "lose" appears to be vernacular for abandoning or increasing a previous mate in n result within the same search. The engine programmers offer no real explanation of the cause(s) in that link which is likely due to the effort and background constraints on typical discord interactions.

Stockfish mate results are viewed as guarantees in practice, but are not necessarily proven. Numerous examples (such as this one) demonstrate they can be ephemeral even within a single search.

Stockfish contributors are OK with this and no Github issue will be filed.

This topic has been archived and can no longer be replied to.