Adjudication

Discussions about the WinBoard protocol. Here you can also report bugs and request new features.

Moderators: hgm, Andres Valverde

Adjudication

Postby Brian Richardson » 25 Apr 2018, 15:10

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
Brian Richardson
 
Posts: 29
Joined: 01 Oct 2004, 05:22

Re: Adjudication

Postby H.G.Muller » 26 Apr 2018, 22:19

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?
User avatar
H.G.Muller
 
Posts: 3091
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Adjudication

Postby Brian Richardson » 27 Apr 2018, 01:21

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
Brian Richardson
 
Posts: 29
Joined: 01 Oct 2004, 05:22

Re: Adjudication

Postby H.G.Muller » 08 May 2018, 21:15

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.
User avatar
H.G.Muller
 
Posts: 3091
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Adjudication

Postby Brian Richardson » 08 May 2018, 21:34

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
Brian Richardson
 
Posts: 29
Joined: 01 Oct 2004, 05:22


Return to WinBoard development and bugfixing

Who is online

Users browsing this forum: No registered users and 2 guests