lichess.org
Donate

Dead Draw Detector

@Sarg0n FIDE rules (www.fide.com/FIDE/handbook/LawsOfChess.pdf) implicitly refer to "helpmate" and not simply "checkmate". Article 6.9 reads:

>... the game is drawn if the position is such that the opponent cannot checkmate the player's king by any possible series of legal moves.

Note that there exists a "checkmate ... by any possible series of legal moves" if and only if there exists a "helpmate".

I did not completely understand your point. Could you elaborate?
#18
It is not practical taking 75 move rule into question since in 99% cases one player would claim draw after 50 moves anyway. Agree that 50(75) move rule is unrelated to this topic.

#20
They are using helpmate as shorthand for "checkmate with help moves from losing side".

Anyway can you please explain your position? I feel you dont like that algorithm cannot evaluate 100% positions, and that is dealbreaker for you, am I right?
Running this code in GitHub actions, we can observe that completing the 11 examples takes 2 seconds:
github.com/miguel-ambrona/D3-Chess/blob/main/examples/examples.txt
github.com/ddugovic/D3-Chess/actions

Adding something like this would cause Lichess to be unresponsive for whatever duration would be required to:
* Identify server(s) capable of servicing the request
* Communicate to server(s)
* Wait on average 1.7ms for server(s) to run program
* Communicate from server(s)
* Publish result to players which might have lost connection and need to reconnect while the above occurs
* whatever else I haven't imagined

Unfortunately we have to consider the worst case so the 1.7ms number isn't the only thing to consider. Even worse, the FIDE rule declares a dead position one where the only outcome can be a draw, for example:


Therefore to implement a rule change dead position detection will need to be done on all positions in all games.
#23 first part:
Unresponsive? No, simply display "Evaluating position" message and after while overwrite it with result. I see no problem players waiting second or two for result. (Obviously there would be hard time limit for program response)

second part:
Again, are you arguing that when algorithm cannot solve 100% positions it should not be used at all (even for positions it can solve)?
@Toadofsky Thanks for your GitHub action. I will add more tests (a portion of the Lichess database), since those 11 examples are not representative.
I agree on the list of tasks that you describe, but they look more tedious than what they really are. Basically a similar list of operations is already being performed by Lichess after every move, to communicate moves between the players.

@playerx3 The way I understand Toadofsky's last sentence is that Lichess could automatically end a game that cannot be won by either player. I don't think this is necessary: if the players do not agree on a draw, eventually one will run out of time and our winnability analysis will declare the position as drawn. So you do not need to perform the analysis on all positions of all games, only on the last position of games ended in a timeout.
The relevant FIDE Law of Chess:
"6.9 Except where one of the Articles: 5.1.a, 5.1.b, 5.2.a, 5.2.b, 5.2.c applies, if a player does
not complete the prescribed number of moves in the allotted time, the game is lost by
the player. However, the game is drawn, if the position is such that the opponent cannot
checkmate the player’s king by any possible series of legal moves."

So the dead draw detector or helpmate finder should only be activated after one player has timed out so as to establish if there exists a series of legal moves leading to checkmate or not.
But all those wise guys who wanna claim h-pawn + K vs. K still aren’t helped.
The inability to make progress, pushes players to request for a draw.
Unfortunately, too many players want to win by the clock instead of accepting that they have been out played by a fortress or a book drawn game like 2 knights vs lone king.
If with perfect play it's not possible to checkmate, then the request for a dead draw detention should be able to recognize the odds of blundering the endgame.
@Toscani I think you have not understood what this is all about. It is not about deciding whether there is a good (and straightforward) defending strategy for one of the players. It is about deciding whether one of the players can checkmate the other (possibly with insane variations that require one of the players move very poorly).

A fortress is not a dead draw, since you still have to defend it and you can potentially make a mistake and lose.

@Sarg0n Please, don't be so harsh.

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