On-line engine blitz tourney November

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
hgm
Posts: 28475
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

On-line engine blitz tourney November

Post by hgm »

The on-line engine blitz tourney for November will take place on:

Saturday November 23, 3pm Boston time (21:00 Amsterdam time)

winboard -zp -ics -icshost 83.163.204.254 -icshelper timeseal -fcp ENGINE.exe -fd ENGINEFOLDER -autoKibitz

(for UCI engines, add -fUCI)

Note: this assumes Boston will no longer be on daylight saving time!
User avatar
hgm
Posts: 28475
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: On-line engine blitz tourney November

Post by hgm »

Code: Select all

:Tourney Players: Round 9 of 9 
:
:     Name              Rating Score Perfrm Upset  Results 
:     ----------------- ------ ----- ------ ------ ------- 
:  1 +Chiron            [2055]  7.5  [2048] [   0] +13w -06w +09b +12b +03w =02b +04w +05w +10b 
:  2 +GaviotaRB         [1978]  6.5  [2041] [  78] +14w =07w +05b +06w =04b =01w +09b +03b -08w 
:  3 +Nightmare         [2018]  6.0  [1993] [   0] +12w +08w =06b +04w -01b +05w +07b -02w =09b 
:  4 +WaDuuttie         [1960]  6.0  [1954] [   9] +10w =09w +07b -03b =02w +08b -01b +06w +13b 
:  5 +Goldbar           [1914]  5.5  [1785] [   0] +15w +13b -02w =14b +08w -03b +06w -01b +17b 
:  6 +ArasanX           [1909]  5.5  [1860] [ 200] +11w +01b =03w -02b +12w +09w -05b -04b +15w 
:  7 +Rookie            [1817]  5.5  [1680] [  80] +17w =02b -04w -08b +11b +10w -03w +15b +16w 
:  8 +Almere            [1862]  5.0  [1787] [ 116] +16w -03b +10w +07w -05b -04w +13b -09w +02b
:  9 +Arminius          [1744]  5.0  [1873] [ 363] +18w =04b -01w +13b +14w -06b -02w +08b =03w 
: 10 +Spartacus         [1492]  5.0  [1726] [ 202] -04b +18w -08b +11w +15w -07b +12w +14b -01w 
: 11 +NebiyuHG          [1331]  5.0  [1553] [ 617] -06b +15b -12w -10b -07w +17b +16w +18w +14b 
: 12 +Capivara          [1506]  4.5  [1573] [ 169] -03b +16w +11b -01w -06b =15w -10b +17w +18b 
: 13 +Joker             [1511]  4.0  [1617] [ 164] -01b -05w +17b -09w +18b +14b -08w +16b -04w 
: 14 +PuppetMaster      [1497]  3.5  [1454] [ 386] -02b +17w +16b =05w -09b -13w +18b -10w -11w 
: 15 +Eichhoernchen     [1438]  3.5  [1454] [ 271] -05b -11w +18b +16w -10b =12b +17w -07w -06b 
: 16 +microMax          [1249]  2.0  [1292] [ 426] -08b -12b -14w -15b +17w +18w -11b -13w -07b
: 17 +DeepBrutePos      [ 998]  1.0  [1237] [ 677] -07b -14b -13w +18w -16b -11w -15b -12b -05w 
: 18 +POS               [   0]  0.0  [1018] [   0] -09b -10b -15w -17b -13w -16b -14w -11b -12w 
:
:     Average Rating    1663.5 
:
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: On-line engine blitz tourney November

Post by michiguel »

hgm wrote:

Code: Select all

:Tourney Players: Round 9 of 9 
:
:     Name              Rating Score Perfrm Upset  Results 
:     ----------------- ------ ----- ------ ------ ------- 
:  1 +Chiron            [2055]  7.5  [2048] [   0] +13w -06w +09b +12b +03w =02b +04w +05w +10b 
:  2 +GaviotaRB         [1978]  6.5  [2041] [  78] +14w =07w +05b +06w =04b =01w +09b +03b -08w 
:  3 +Nightmare         [2018]  6.0  [1993] [   0] +12w +08w =06b +04w -01b +05w +07b -02w =09b 
:  4 +WaDuuttie         [1960]  6.0  [1954] [   9] +10w =09w +07b -03b =02w +08b -01b +06w +13b 
:  5 +Goldbar           [1914]  5.5  [1785] [   0] +15w +13b -02w =14b +08w -03b +06w -01b +17b 
:  6 +ArasanX           [1909]  5.5  [1860] [ 200] +11w +01b =03w -02b +12w +09w -05b -04b +15w 
:  7 +Rookie            [1817]  5.5  [1680] [  80] +17w =02b -04w -08b +11b +10w -03w +15b +16w 
:  8 +Almere            [1862]  5.0  [1787] [ 116] +16w -03b +10w +07w -05b -04w +13b -09w +02b
:  9 +Arminius          [1744]  5.0  [1873] [ 363] +18w =04b -01w +13b +14w -06b -02w +08b =03w 
: 10 +Spartacus         [1492]  5.0  [1726] [ 202] -04b +18w -08b +11w +15w -07b +12w +14b -01w 
: 11 +NebiyuHG          [1331]  5.0  [1553] [ 617] -06b +15b -12w -10b -07w +17b +16w +18w +14b 
: 12 +Capivara          [1506]  4.5  [1573] [ 169] -03b +16w +11b -01w -06b =15w -10b +17w +18b 
: 13 +Joker             [1511]  4.0  [1617] [ 164] -01b -05w +17b -09w +18b +14b -08w +16b -04w 
: 14 +PuppetMaster      [1497]  3.5  [1454] [ 386] -02b +17w +16b =05w -09b -13w +18b -10w -11w 
: 15 +Eichhoernchen     [1438]  3.5  [1454] [ 271] -05b -11w +18b +16w -10b =12b +17w -07w -06b 
: 16 +microMax          [1249]  2.0  [1292] [ 426] -08b -12b -14w -15b +17w +18w -11b -13w -07b
: 17 +DeepBrutePos      [ 998]  1.0  [1237] [ 677] -07b -14b -13w +18w -16b -11w -15b -12b -05w 
: 18 +POS               [   0]  0.0  [1018] [   0] -09b -10b -15w -17b -13w -16b -14w -11b -12w 
:
:     Average Rating    1663.5 
:
A follow up from the discussion we had during the tournament.

I checked the logs of the game Gaviota-Rookie and there must be a bug in the ICS software. The game was adjudicated with three fold repetition.

Gaviota did not claim it and did not offered a draw, and the last position (or any response from Rookie) would not have been a third time visit.
The last position was the fourth "photographic" visit, but the side to move was different after Ra2.

Below, with asterisks, it is indicated identical "photographic" positions to the last one. Two are white to move, and two are black to move.

Miguel


[pgn]
{**** PGN Starts here ****}

[Event "0x3f041bbf"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "Gaviota v0.87-a10-pm8-or3-lmr7"]
[Black "Rookie"]
[Result "1/2-1/2"]
[FEN "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"]

{
-----------------------------------------------------
#: score depth WHITE BLACK score depth
-----------------------------------------------------
}
1. e4 e5
2. Nf3 Nc6
3. Bb5 a6
4. Ba4 Nf6
5. O-O b5
6. Bb3 Bb7
7. d3 Bc5
8. a4 O-O
9. Nc3 Na5
10. axb5 Nxb3
11. cxb3 d6
12. bxa6 Bxa6
13. Nh4 d5
14. Bg5 h6
15. Bxf6 Qxf6
16. Nf3 c6
17. exd5 cxd5
18. b4 Bd4
19. { 0.71 22} b5 Bb7
20. { 0.70 21} Nxd4 exd4
21. { 0.65 21} Na4 Qd6
22. { 0.70 21} b3 Bc8
23. { 0.57 22} b6 Bd7
24. { 0.54 21} Qf3 Rfb8
25. { 0.62 21} Qg3 Qxg3
26. { 0.57 25} hxg3 Bxa4
27. { 0.58 26} Rxa4 Rxa4
28. { 0.52 29} bxa4 Rxb6
29. { 0.52 27} a5 Ra6
30. { 0.47 27} Ra1 f5
31. { 0.65 26} Kh2 Kf7
32. { 0.65 26} Kh3 h5
33. { 0.65 28} f4 Kg6
34. { 0.65 29} Ra4 Kf6
35. { 0.65 30} Kh4 Kg6
36. { 0.65 30} Kh3 Kf6
37. { 0.65 31} Kh4 Kg6
38. { 0.65 28} Ra2 Kh6
39. { 0.65 28} Ra3 Kg6
40. { 0.65 27} Ra4 Kh6
41. { 0.65 30} Kh3 Kg6
42. { 0.65 32} Ra1 Kf6
43. { 0.65 27} Ra4 Kg6
44. { 0.65 28} Kh4 Kh6
45. { 0.65 30} Ra3 Kg6
46. { 0.65 30} Ra2 Kh6
47. { 0.65 32} Ra1 Kg6
48. { 0.65 26} Ra3 Kh6
49. { 0.65 27} Ra2 Kg6
50. { 0.65 27} Ra3 Kh6
51. { 0.65 30} Ra2 1/2-1/2 {Game drawn by repetition}

{**** PGN Finishes here ****}
[/pgn]

Code: Select all

{**** PGN Starts here ****}

[Event "0x3f041bbf"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "Gaviota v0.87-a10-pm8-or3-lmr7"]
[Black "Rookie"]
[Result "1/2-1/2"]
[FEN "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"]

{
-----------------------------------------------------
  #:   score depth   WHITE       BLACK   score depth 
-----------------------------------------------------
}
  1.                    e4          e5                 
  2.                   Nf3         Nc6                 
  3.                   Bb5          a6                 
  4.                   Ba4         Nf6                 
  5.                   O-O          b5                 
  6.                   Bb3         Bb7                 
  7.                    d3         Bc5                 
  8.                    a4         O-O                 
  9.                   Nc3         Na5                 
 10.                  axb5        Nxb3                 
 11.                  cxb3          d6                 
 12.                  bxa6        Bxa6                 
 13.                   Nh4          d5                 
 14.                   Bg5          h6                 
 15.                  Bxf6        Qxf6                 
 16.                   Nf3          c6                 
 17.                  exd5        cxd5                 
 18.                    b4         Bd4                 
 19. {   0.71  22}      b5         Bb7                 
 20. {   0.70  21}    Nxd4        exd4                 
 21. {   0.65  21}     Na4         Qd6                 
 22. {   0.70  21}      b3         Bc8                 
 23. {   0.57  22}      b6         Bd7                 
 24. {   0.54  21}     Qf3        Rfb8                 
 25. {   0.62  21}     Qg3        Qxg3                 
 26. {   0.57  25}    hxg3        Bxa4                 
 27. {   0.58  26}    Rxa4        Rxa4                 
 28. {   0.52  29}    bxa4        Rxb6                 
 29. {   0.52  27}      a5         Ra6                 
 30. {   0.47  27}     Ra1          f5                 
 31. {   0.65  26}     Kh2         Kf7                 
 32. {   0.65  26}     Kh3          h5                 
 33. {   0.65  28}      f4         Kg6                 
 34. {   0.65  29}     Ra4         Kf6                 
 35. {   0.65  30}     Kh4         Kg6                 
 36. {   0.65  30}     Kh3         Kf6                 
 37. {   0.65  31}     Kh4         Kg6                 
 38. {   0.65  28}     Ra2         Kh6   [*]            
 39. {   0.65  28}     Ra3         Kg6                 
 40. {   0.65  27}     Ra4         Kh6                 
 41. {   0.65  30}     Kh3         Kg6                 
 42. {   0.65  32}     Ra1         Kf6                 
 43. {   0.65  27}     Ra4         Kg6                 
 44. {   0.65  28}     Kh4         Kh6                 
 45. {   0.65  30}     Ra3         Kg6                 
 46. {   0.65  30}     Ra2         Kh6   [*]      
 47. {   0.65  32}     Ra1         Kg6                 
 48. {   0.65  26}     Ra3         Kh6                 
 49. {   0.65  27}     Ra2  [*]   Kg6                 
 50. {   0.65  27}     Ra3         Kh6                 
 51. {   0.65  30}     Ra2  [*]  

1/2-1/2 {Game drawn by repetition}

{**** PGN Finishes here ****}
mvk
Posts: 589
Joined: Tue Jun 04, 2013 10:15 pm

Re: On-line engine blitz tourney November

Post by mvk »

I agree, there is only double repetition, not triple.

I checked Rookie's logs. Rookie indeed sent the 'draw' command to the ICS after 51. Ra2, and then sending its intended move: Kg6 (still no repetition), like this:

Code: Select all

Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: tellics whisper 51... Kg6, +0.000, 33 ply, 6.3 Mnps, 3.4 s\012
Sat Nov 23 21:30:12 2013:DEBUG:icsdrone->ics: whisper 51... Kg6, +0.000, 33 ply, 6.3 Mnps, 3.4 s\012\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: Total nodes                        : 21203374\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: Total time [s]                     : 3.354\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: Node frequency [Hz]                : 6.322e+06\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: Resign counter                     : 0\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: Draw counter                       : 25\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: No progress ceiling                : +0.016\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: No progress counter                : 25\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: No draw offer before               : 61\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: Offer courtesy draw                : Yes\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: Accept draw if offered             : Yes\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: \012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: 8/6p1/r5k1/P2p1p1p/3p1P1K/3P2P1/R5P1/8 w - - 37 52\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: 8  - - - - - - - -\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: 7  - - - - - - * -\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: 6  r - - - - - k -\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: 5  O - - * - * - *\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: 4  - - - * - O - K\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: 3  - - - O - - O -\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: 2  R - - - - - O -\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: 1  - - - - - - - -  O\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone:    a b c d e f g h\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: offer draw\012
Sat Nov 23 21:30:12 2013:DEBUG:icsdrone->ics: draw\012
Sat Nov 23 21:30:12 2013:DEBUG:engine->icsdrone: move h6g6\012
Sat Nov 23 21:30:12 2013:DEBUG:icsdrone->ics: h6g6\012
Sat Nov 23 21:30:12 2013:DEBUG:ics->icsdrone: fics% kibitzed to 3.\012
Sat Nov 23 21:30:12 2013:DEBUG:ics->icsdrone: fics% fics% blitz rating adjustment: 1817 --> 1818\012
Sat Nov 23 21:30:12 2013:DEBUG:ics->icsdrone: \012
Sat Nov 23 21:30:12 2013:DEBUG:ics->icsdrone: {Game 5 (GaviotaRB vs. Rookie) Game drawn by repetition} 1/2-1/2 [5 1 1 0 1]\012
The reason for sending 'draw' was not repetition, but the courtesy draw offering function that Rookie has: if the game seems stuck without progress, after a while Rookie will offer (or accept) draw under certain conditions depending on time control, development of the score, number of moves and rating difference. Here this mechanism was triggered. I built this in to avoid dragging games to the 50 move limit unnecessary when playing unattended on servers.

It looks like the ICS is confused and thinks there is repetition.

I would suggest to get into touch with the FICS owner and talk about synching the code base. This is a >15 year old bug that DAV solved somewhere in the last millennium. There are countless of others, both in the server and in mamer.
jdart
Posts: 4428
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: On-line engine blitz tourney November

Post by jdart »

> I would suggest to get into touch with the FICS owner and talk about synching the code base

The server code source that is out in the wild is indeed very old. As for getting updates, you can ask, but as far as I know they don't share their current running code.

--Jon
User avatar
hgm
Posts: 28475
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: On-line engine blitz tourney November

Post by hgm »

Well, the FICS code would not be good enough for me anyway, as it is far less capable as the public code in terms of variants support. (No Capablanca Chess, etc.)

The bug is in code that I did rework quite a bit, so the bug might have been introduced by me:

Code: Select all

static int CheckRepetition (int p, int g)
{
  struct player *pp = &player_globals.parray[p];
  struct pending* pend;
  int move_num, s1, s2, result = END_REPETITION;
  int flag1 = 1, flag2 = 1;
  int numPly = game_globals.garray[g].numHalfMoves;
  char *pos1 = GetFENpos (g, numPly - 1); // current position
  char *pos2 = "";
  char *pos;

  if (numPly < 8)  /* can't have three repeats any quicker. */
    return 0;

  if((game_globals.garray[g].white == p) != (numPly&1)) { // claimer has the move
    pos2 = pos1;
    pos1 = GetFENpos (g, numPly - 2); // also check position before opponent's move (which could have pre-empted him)
  } // pos1 is now always a position where the opponent has the move

  for (move_num = numPly - 2; // [HGM] FEN stored in moveList[numHalfMoves-1] !
       move_num >= game_globals.garray[g].game_state.lastIrreversable - 1; move_num--) {
    pos = GetFENpos (g, move_num);
    if (strlen(pos1) == strlen(pos) && !strcmp(pos1, pos))
      flag1++ == 2 && (s1 = move_num);
    if (strlen(pos2) == strlen(pos) && !strcmp(pos2, pos))
      flag2++ == 2 && (s2 = move_num); // remember start of last two loops
printf("%2d. %d-%d '%s' '%s' '%s'\n", move_num, flag1, flag2, pos1,pos2,pos);
  }
  if (flag1 >= 3 || flag2 >= 3) {
    if ((pend = find_pend(pp->opponent, p, PEND_DRAW)) != NULL) {
      delete_pending(pend);
      decline_withdraw_offers(p, -1, -1,DO_DECLINE);
    }
    if(game_globals.garray[g].game_state.palace) { // [HGM] in Xiangqi we have to test for perpetuals to determine the outcome
      if(flag2 >= 3) result = perp_check(game_globals.garray[g], s2, numPly);
      else  result = perp_check(game_globals.garray[g], s1, numPly - (pos2[0] != 0));
      if(result == END_NOTENDED) {
	pprintf(p, "Perpetuals can be claimed only during the turn of the winner\n");
	return 1;
      }
      game_ended(g, (numPly&1) ? BLACK : WHITE, result); // stm wins
      return 1;
    }
    game_ended(g, (game_globals.garray[g].white == p) ? BLACK : WHITE, result);
    return 1;
  }
  else return 0;
}
I guess that when I wrote this, I assumed that the FENs retrieved by GetFENpos would actually be complete FENs, including a side-to-move field. But is seems they are only partial FENs, having nothing but the board-position field. So it is really important to alternate comparing with pos1 and pos2.
flok

Re: On-line engine blitz tourney November

Post by flok »

hgm wrote:

Code: Select all

:Tourney Players: Round 9 of 9 
: 14 +PuppetMaster      [1497]  3.5  [1454] [ 386] -02b +17w +16b =05w -09b -13w +18b -10w -11w 
: 17 +DeepBrutePos      [ 998]  1.0  [1237] [ 677] -07b -14b -13w +18w -16b -11w -15b -12b -05w 
: 18 +POS               [   0]  0.0  [1018] [   0] -09b -10b -15w -17b -13w -16b -14w -11b -12w 
I see!

Found out during the game :x that returning a score of > 600 makes icsdroneng decide that the engine wants to resign. Unfortunate: DBP could've won that game otherwise. In theory :)