It'd prove I don't need better hardware to beat your 1.g4
Now, the deal was that if I can get your position within 5 mating moves from its real mating moves you play 1.g4, so I'm still on it!
Moderators: hgm, Rebel, chrisw
It'd prove I don't need better hardware to beat your 1.g4
Now, the deal was that if I can get your position within 5 mating moves from its real mating moves you play 1.g4, so I'm still on it!
OK! When your done post it and we'll have a look at what you've got.
Thanks for this.Ovyron wrote: ↑Tue Feb 11, 2020 8:11 pm Must be here:
The engine will only show a mate score if it has been "proven".Code: Select all
if (nullValue >= beta) { // Do not return unproven mate scores if (nullValue >= VALUE_MATE_IN_MAX_PLY) nullValue = beta; if (thisThread->nmpMinPly || (abs(beta) < VALUE_KNOWN_WIN && depth < 13)) return nullValue; assert(!thisThread->nmpMinPly); // Recursive verification is not allowed // Do verification search at high depths, with null move pruning disabled // for us, until ply exceeds nmpMinPly. thisThread->nmpMinPly = ss->ply + 3 * (depth-R) / 4; thisThread->nmpColor = us; Value v = search<NonPV>(pos, ss, beta-1, beta, depth-R, false); thisThread->nmpMinPly = 0; if (v >= beta) return nullValue; } }
Can't you just hack the code (like the code above) with print statements, so it at least prints to file the mate announcement and PV and you don't lose hours and hours of work, no matter what happens with RAM, TTs, etc. afterwards?Zenmastur wrote: ↑Tue Feb 11, 2020 9:52 pm This used to piss me off to no end. I dealt with it day in and day out. And it really sucked when you would lose hours and hours of work. On very hard problems this would happen over and over again. Then I added RAM to my system and the problem became MUCH less sever. But, I had maxed my system out and the problem came back on yet harder problems. I eventually upgraded my machine and MAXED the ram in it. I rarely saw this happen after that. I've upgrade again recently and have put even more RAM in my system. I've done some very long mates and haven't seen it happen yet. I'm sure it will, its just a matter of time.
There's this place when you can ask such questions.
Code: Select all
thisThread->nmpMinPly = ss->ply + 3 * (depth-R) / 4;
thisThread->nmpColor = us;
Value v = search<NonPV>(pos, ss, beta-1, beta, depth-R, false);
Backtracking like this is a slightly different topic. Even with all the RAM he wants ("engine forgetting" solved), he won't necessarily be able to backtrack to mate at the root, because backtracking will discover different defensive moves (which may or may not still give up mate, but the engine won't necessarily know).Ovyron wrote: ↑Wed Feb 12, 2020 10:55 pm If this wasn't the case, Zenmastur could go to the tail of the variation of any won position's mainline, find a mate, and then move to previous positions until he was back on the root, and the engine would show a mate score in there. But along the way, this will be overwritten, so when he's back to the root the engine has forgotten how to mate from this position.
That's why I said "mainline". Mainline means the absolute best moves from black to defend, as you go back in the positions the engine won't change her mind about them because the alternatives lose faster, so it'll still show the mating line up to the root (if the mate in the TT survives.)jp wrote: ↑Wed Feb 12, 2020 11:02 pm Backtracking like this is a slightly different topic. Even with all the RAM he wants ("engine forgetting" solved), he won't necessarily be able to backtrack to mate at the root, because backtracking will discover different defensive moves (which may or may not still give up mate, but the engine won't necessarily know).