zullil wrote: ↑Tue Feb 18, 2020 12:37 pm
OK, what do you have for the position after ...Ke6? White to move and mate in how many moves?
That's the "secret" part of the progress
Uri Blass wrote: ↑Tue Feb 18, 2020 2:44 pmI disagree that finding the fastest mate is mechanical procedure that even a monkey could be trained to do in any hardware.
I do not see how you find practically the fastest mate that is different than finding a forced mate and I am surprised reading that
1.Rh8+ is mate in 28
Edit:Assuming
1.Rh8+ Kf7 2.Rf1+ Qf5 3.Rxf5+ Kg6 is the best line I could get only mate in 29 for white after Kg6 that mean mate in 32 for white and
you should analyze also 2...Qf6 or 3...Ke6
Note: The part about saying "any hardware" means that I claim better hardware would not help us find it, because it's constructed from white moves the engine doesn't see, not even at high depth, so you could as well find them and play them without better hardware. Well, if it's a mate in 28 Zullil sitting at the root and waiting for depth 100 would prove me wrong, but if it's a mate in 26 I'd ask Zullil what would he need to do to find it? And then, why didn't he go and do that instead of waiting for the engine to solve it at the root?
Anyway, all the white lines that mate that I've seen could be improved, which is the hard part of the challenge (at what point do you stop improving them?) it's possible your mate in 29 hangs from a position that you have as a mate in 23 but where the engine will not see the white move that mates in 9 unless you force it. But to find it the trained monkey just needs to go and force it. Note this isn't hard, it's usually a4, b4 or c4, or some pawn push that the engine doesn't want to examine by herself, or a move that protects a piece instead of moving it when attacked to allow the pawn push to be moved later.
A key point is that you should ignore black's material instead of making moves to capture it, go for promotion instead (you create a path for a pawn that is unstoppable == faster mate, you take a turn to capture an unprotected pawn == slower mate), for instance, there's positions where black plays g5 to attack a Bishop and Stockfish thinks the best is to capture the unprotected pawn, but the fastest mating move is to play Be5 to keep the black king blocked and unable to stop a white pawn, what I'm seeing is that Stockfish is led by materialism (and checks...) when finding mates and that leads it astray from fastest line.
The only hard part is that there's so many lines to check
jp wrote: ↑Tue Feb 18, 2020 3:51 pm
How exactly will we then be sure Zenmastur's solution is correct?
His claim, not mine. We don't care if it's a mate in 24 if Zenmastur can only find a mate in 25, because we have defined the fastest he can find as "reality".
Wouldn't it be really cool if I come back with a mate faster than Zenmastur?
I don't think that's possible as it'd require me to find a move that mates faster in his line, presumably he has already been exhaustive about white moves that could have mated faster, so I'd need some nonsensical move that Zen didn't check (I've seen them, but always for irrelevant lines where black had a much better defense prior, so this might be impossible.)
jp wrote: ↑Tue Feb 18, 2020 4:18 pm
Well, the comment on that bit of code (//....) suggests that the code switches off all defensive pruning before it'll make a mate announcement (but not offensive pruning, so it won't guarantee minimality, as we know anyway).
Yes, if Stockfish shows a mate in N, then it can guarantee maximality.
...
UNLESS THERE'S A BUG
Ironically, a few days after my post it was found that VALUE_MATE_IN_MAX_PLY had a bug (which is used on the relevant code), so who knows if the bug would have caused Stockfish to report a mate that was faster than reality? This "it could be a bug in there that ruins everything" stuff is always there and unavoidable, so who can really guarantee anything?