Page 1 of 1

Adjudication

PostPosted: 25 Apr 2018, 15:10
by Brian Richardson
It has been quite some time, but I'm trying to run a tournament with no adjudication (games continue until mate, stalemate, or draw).
I have this option set in the .trn file:
-adjudicateLossThreshold 0

But it is still adjudicating according to the .pgn output file.

Wondering what I am doing wrong...

PS Older Winboard version 4.7.3a, if that might matter.

Regards,
Brian

Re: Adjudication

PostPosted: 26 Apr 2018, 22:19
by H.G.Muller
This is the default value for the loss-adjudication threshold. An it is a persistent option, so there isn't any reason to put it in the .trn file. But 0 should switch off any score-based adjudication in any WB version since Winboard_x.

What does the PGN say, as result message?

Re: Adjudication

PostPosted: 27 Apr 2018, 01:21
by Brian Richardson
Here is an example:

[Event "Computer Chess Game"]
[Site "TINKER"]
[Date "2018.04.25"]
[Round "10"]
[White "T1060"]
[Black "LCZero"]
[Result "1-0"]
[TimeControl "300+3"]

1. d4 Nf6 2. c4 c6 3. Nc3 d5 4. cxd5 cxd5 5. Nf3 Nc6 6. Bf4 Qb6 7. Na4 Qa5+
8. Bd2 Qd8 9. e3 {+0.30/15 8} e6 {-0.10/19 7} 10. Bd3 {+0.33/16 8} Bd6
{-0.05/20 8} 11. O-O {+0.21/15 9} Ne4 {+0.00/20 9} 12. Be1 {+0.22/15 10}
Qe7 {+0.00/20 10} 13. Nc3 {+0.41/15 7} f5 {-0.04/19 5} 14. Rc1 {+0.40/15 8}
O-O {-0.01/19 6} 15. Nb5 {+0.26/15 10} Bb8 {+0.12/19 5} 16. a3 {+0.23/14 7}
Qf7 {+0.32/20 10} 17. Nc3 {+0.35/14 7} Qh5 {+0.33/20 9} 18. h3
{+0.37/14 10} Rf6 {+0.15/20 11} 19. Qa4 {+0.31/13 9} Rg6 {+0.33/19 8} 20.
Kh1 {+0.52/15 7} Ng5 {+0.14/21 12} 21. Nxg5 {+0.41/15 9} Qxg5 {+0.10/19 5}
22. Rg1 {+0.51/16 9} Rh6 {+0.00/20 7} 23. f4 {+0.35/15 9} Qg4 {-0.11/21 10}
24. Kh2 {+0.30/15 9} Qh5 {-0.25/21 10} 25. b4 {+0.57/14 6} Qf7
{-0.21/20 11} 26. b5 {+0.59/16 8} Ne7 {-0.29/20 5} 27. Kh1 {+0.50/15 8} Bd7
{-0.07/19 8} 28. Qb4 {+0.59/15 5} g5 {+0.00/20 10} 29. fxg5 {+1.29/16 7}
Rh5 {-0.45/20 11} 30. Na4 {+1.21/15 8} Ng6 {-0.07/20 11} 31. Be2
{+2.02/15 8} Rxg5 {-0.32/19 6} 32. Qa5 {+2.10/14 8} Bd6 {-0.69/19 8} 33.
Nb6 {+2.07/14 6} Rd8 {-0.83/20 8} 34. Nc4 {+2.80/15 4} Be7 {-1.00/20 4} 35.
Nd6 {+3.43/16 5} Qf6 {-1.28/20 5} 36. Nxb7 {+3.80/15 6} Rf8 {-1.26/20 5}
37. Qxa7 {+4.15/14 7} f4 {-0.77/19 8} 38. Nc5 {+3.71/14 7} Bxb5
{-0.83/20 6} 39. Bxb5 {+4.22/14 3} f3 {-0.42/20 5} 40. Rc2 {+4.49/14 7} Qf5
{+0.21/19 8} 41. Rf2 {+2.88/17 38} fxg2+ {+0.58/19 7} 42. Rgxg2
{+4.06/16 6} Qxh3+ {-0.65/19 6} 43. Rh2 {+2.10/17 6} Qg4 {-1.04/20 10} 44.
Rfg2 {+2.03/17 6} Qd1 {-1.32/21 13} 45. Rxg5 {+5.71/15 5} Qxe1+
{-1.49/20 2.0} 46. Rg1 {+5.79/16 4} Qxe3 {-1.39/20 1.8} 47. Be2
{+5.78/15 6} Rf2 {-3.15/19 8} 48. Rxf2 {+7.23/14 3} Qxf2 {-3.25/18 6} 49.
Qa8+ {+7.21/14 5} Kg7 {-3.34/18 7} 50. Nxe6+ {+8.24/15 5} Kh6 {-3.68/19 4}
51. Qg8 {+9.17/15 5} Qh4+ {-5.31/19 5} 52. Kg2 Qe4+ {-5.79/19 3} 53. Kf1
{+11.04/15 4} Qf5+ {-11.14/19 9} 54. Ke1 {+18.88/16 4} Qb1+ {-13.35/20 8}
55. Kd2 {+299.79/14 2.1} Qb2+ {-18.81/20 9}
{Xboard adjudication} 1-0

Re: Adjudication

PostPosted: 08 May 2018, 21:15
by H.G.Muller
There is indeed only one place where this message is printed, and that is when adjudication is one based on the engine scores. But the coe for this has not been touched since Winboard_x:

Code: Select all
8996         /* [AS] Adjudicate game if needed (note: remember that forwardMostMove now points past the last move) */
8997         if( gameMode == TwoMachinesPlay && appData.adjudicateLossThreshold != 0 && forwardMostMove >= adjudicateLossPlies ) {
8998             int count = 0;
8999
9000             while( count < adjudicateLossPlies ) {
9001                 int score = pvInfoList[ forwardMostMove - count - 1 ].score;
9002
9003                 if( count & 1 ) {
9004                     score = -score; /* Flip score for winning side */
9005                 }
9006
9007                 if( score > appData.adjudicateLossThreshold ) {
9008                     break;
9009                 }
9010
9011                 count++;
9012             }
9013
9014             if( count >= adjudicateLossPlies ) {
9015                 ShowMove(fromX, fromY, toX, toY); /*updates currentMove*/
9016
9017                 GameEnds( WhiteOnMove(forwardMostMove) ? WhiteWins : BlackWins,
9018                     "Xboard adjudication",
9019                     GE_XBOARD );
9020
9021                 return;
9022             }
9023         }

And this clearly should not be executed when appData.adjudicateLossThreshold = 0.

Re: Adjudication

PostPosted: 08 May 2018, 21:34
by Brian Richardson
Thanks for checking. I should have looked at the code myself. It was just so surprising. I had been struggling with tweaks to get LeelaZero working in test matches, so perhaps I set the resign threshold to something like 9999 instead of zero for that tourney. If it crops up again, I'll try to see if it is reproducible.
Thanks,
Brian