Certainly a draw but why do they stop?

Archive of the old Parsimony forum. Some messages couldn't be restored. Limitations: Search for authors does not work, Parsimony specific formats do not work, threaded view does not work properly. Posting is disabled.

Certainly a draw but why do they stop?

Postby Robert Allgeuer » 09 Mar 2004, 22:50

Geschrieben von: / Posted by: Robert Allgeuer at 09 March 2004 22:50:43:


This is a draw, both engines (Thinker and DeepSjeng) see it, but why do they stop to play? Have they agreed draw? If yes, they should probably better say it. From the form of { draw } I assume that it was Thinker who ended the game.
Robert

[Event "DeepSjeng 1.6 Gauntlet"]
[Site "DISCO"]
[Date "2004.03.03"]
[Round "5.1"]
[White "DeepSjeng v1.6ntb"]
[Black "Thinker v4.5b"]
[Result "1/2-1/2"]
[TimeControl "300+2"]
[Number "85"]
1. e4 c5 2. Nc3 d6 3. g3 g6 4. Nf3 e5 5. Bc4 Be7 6. d3 Nc6 7. Nd5 Nf6 8.
O-O Na5 9. Bb5+ Bd7 10. a4 Nxd5 11. exd5 O-O 12. Bh6 Re8 13. Qd2 b6 14.
Rfe1 Bxb5 15. axb5 Qd7 16. b4 cxb4 17. Qxb4 Rac8 18. Rac1 Rc5 19. c4 Qf5
20. d4 Rcc8 21. dxe5 dxe5 22. d6 Qxf3 23. dxe7 Qh5 24. Bf8 Qg4 25. Qd6 Nxc4
26. Qf6 Rxf8 27. exf8=Q+ Rxf8 28. Red1 Qe2 29. Rd7 e4 30. Rc7 Qb2 31. Qxb2
Nxb2 32. Rxa7 Nd3 33. Rcc7 Ne5 34. Rab7 Rd8 35. Rxb6 Rd1+ 36. Kg2 Nf3 37.
Rb8+ Kg7 38. Rbb7 Kh6 39. Rxf7 Rg1+ 40. Kh3 Ng5+ 41. Kh4 Nxf7 42. Rxf7 g5+
43. Kh3 Rb1 44. Rb7 Rb2 45. Kg4 Rxf2 46. Re7 Rb2 47. Re6+ Kg7 48. Kxg5
Rxb5+ 49. Kg4 h5+ 50. Kf4 Rb2 51. h4 Rf2+ 52. Kxe4 Re2+ 53. Kf5 Rg2 54.
Rg6+ Kh7 55. Rg5 Kh6 56. Ke4 Rg1 57. Kf4 Rf1+ 58. Ke5 Ra1 59. Rg8 Ra5+ 60.
Kf6 Ra6+ 61. Kf5 Ra5+ 62. Ke4 Ra4+ 63. Ke3 Ra3+ 64. Kf2 Ra2+ 65. Kf3 Ra3+
66. Kg2 Ra2+ 67. Kh3 Ra5 68. Rf8 Kg6 69. Rf3 Rc5 70. Kg2 Rc2+ 71. Rf2 Rxf2+
72. Kxf2 Kf6 73. Kf3 Kf5 74. g4+ hxg4+ 75. Kg3 Kg6 76. Kxg4 Kf6 77. Kf4 Kg7
78. Kf3 { draw } 1/2-1/2
Robert Allgeuer
 

Re: Certainly a draw but why do they stop?

Postby Lance Perkins » 10 Mar 2004, 00:18

Geschrieben von: / Posted by: Lance Perkins at 10 March 2004 00:18:28:
Als Antwort auf: / In reply to: Certainly a draw but why do they stop? geschrieben von: / posted by: Robert Allgeuer at 09 March 2004 22:50:43:

I think it was Thinker that declared a draw, and it made a Kh8 or Kh7 or Kh6 move, but it made a "1/2-1/2 {draw}" output first, followed by the move. This would have caused Winboard to stop the game and not display that last move.
In 4.5c (and 4.5d), Thinker would first output the move before doing an output of the result.
In a Kkp or KPk situation, if the lone King gets in front of the opponent pawn (in the same file), then Thinker declares this as a draw.


bool Game::IsKKPDraw (void)
{
    // only called if we have determined that we are in
    // a KPk or Kkp situation
    if (Board.PieceCount[White][Pawn])
    {
        Square sqPawn (Board.Pieces[White][Pawn].FindOccupiedSquare())&#59;
        return ( sqPawn.file() == Board.sqKing[Black].file() &&
                 sqPawn.rank() <  Board.sqKing[Black].rank() ) &#59;
    }
    else
    {
        Square sqPawn (Board.Pieces[Black][Pawn].FindOccupiedSquare())&#59;
        return ( sqPawn.file() == Board.sqKing[White].file() &&
                 sqPawn.rank() >  Board.sqKing[White].rank() ) &#59;
    }
}

This is a draw, both engines (Thinker and DeepSjeng) see it, but why do they stop to play? Have they agreed draw? If yes, they should probably better say it. From the form of { draw } I assume that it was Thinker who ended the game.
Robert

[Event "DeepSjeng 1.6 Gauntlet"]
[Site "DISCO"]
[Date "2004.03.03"]
[Round "5.1"]
[White "DeepSjeng v1.6ntb"]
[Black "Thinker v4.5b"]
[Result "1/2-1/2"]
[TimeControl "300+2"]
[Number "85"]
1. e4 c5 2. Nc3 d6 3. g3 g6 4. Nf3 e5 5. Bc4 Be7 6. d3 Nc6 7. Nd5 Nf6 8.
O-O Na5 9. Bb5+ Bd7 10. a4 Nxd5 11. exd5 O-O 12. Bh6 Re8 13. Qd2 b6 14.
Rfe1 Bxb5 15. axb5 Qd7 16. b4 cxb4 17. Qxb4 Rac8 18. Rac1 Rc5 19. c4 Qf5
20. d4 Rcc8 21. dxe5 dxe5 22. d6 Qxf3 23. dxe7 Qh5 24. Bf8 Qg4 25. Qd6 Nxc4
26. Qf6 Rxf8 27. exf8=Q+ Rxf8 28. Red1 Qe2 29. Rd7 e4 30. Rc7 Qb2 31. Qxb2
Nxb2 32. Rxa7 Nd3 33. Rcc7 Ne5 34. Rab7 Rd8 35. Rxb6 Rd1+ 36. Kg2 Nf3 37.
Rb8+ Kg7 38. Rbb7 Kh6 39. Rxf7 Rg1+ 40. Kh3 Ng5+ 41. Kh4 Nxf7 42. Rxf7 g5+
43. Kh3 Rb1 44. Rb7 Rb2 45. Kg4 Rxf2 46. Re7 Rb2 47. Re6+ Kg7 48. Kxg5
Rxb5+ 49. Kg4 h5+ 50. Kf4 Rb2 51. h4 Rf2+ 52. Kxe4 Re2+ 53. Kf5 Rg2 54.
Rg6+ Kh7 55. Rg5 Kh6 56. Ke4 Rg1 57. Kf4 Rf1+ 58. Ke5 Ra1 59. Rg8 Ra5+ 60.
Kf6 Ra6+ 61. Kf5 Ra5+ 62. Ke4 Ra4+ 63. Ke3 Ra3+ 64. Kf2 Ra2+ 65. Kf3 Ra3+
66. Kg2 Ra2+ 67. Kh3 Ra5 68. Rf8 Kg6 69. Rf3 Rc5 70. Kg2 Rc2+ 71. Rf2 Rxf2+
72. Kxf2 Kf6 73. Kf3 Kf5 74. g4+ hxg4+ 75. Kg3 Kg6 76. Kxg4 Kf6 77. Kf4 Kg7
78. Kf3 { draw } 1/2-1/2
Lance Perkins
 

Re: Certainly a draw but why do they stop?

Postby Koundinya Veluri » 10 Mar 2004, 00:43

Geschrieben von: / Posted by: Koundinya Veluri at 10 March 2004 00:43:12:
Als Antwort auf: / In reply to: Re: Certainly a draw but why do they stop? geschrieben von: / posted by: Lance Perkins at 10 March 2004 00:18:28:
I think it was Thinker that declared a draw, and it made a Kh8 or Kh7 or Kh6 move, but it made a "1/2-1/2 {draw}" output first, followed by the move. This would have caused Winboard to stop the game and not display that last move.
In 4.5c (and 4.5d), Thinker would first output the move before doing an output of the result.
In a Kkp or KPk situation, if the lone King gets in front of the opponent pawn (in the same file), then Thinker declares this as a draw.


>bool Game::IsKKPDraw (void)
>{
>    // only called if we have determined that we are in
>    // a KPk or Kkp situation
>    if (Board.PieceCount[White][Pawn])
>    {
>        Square sqPawn (Board.Pieces[White][Pawn].FindOccupiedSquare())&#59;
>        return ( sqPawn.file() == Board.sqKing[Black].file() &&
>                 sqPawn.rank() <  Board.sqKing[Black].rank() ) &#59;
>    }
>    else
>    {
>        Square sqPawn (Board.Pieces[Black][Pawn].FindOccupiedSquare())&#59;
>        return ( sqPawn.file() == Board.sqKing[White].file() &&
>                 sqPawn.rank() >  Board.sqKing[White].rank() ) &#59;
>    }
>}
>
That code doesn't look right. I just tried the position:
4k3/8/8/8/8/8/3KP3/8 w - - 0 1
which is definitely not a draw, but as soon as white makes a move Thinker incorrectly declares a draw.
It depends a lot on who is on move and where the pawn's king is.
Regards,
Koundinya
Koundinya Veluri
 

Re: Certainly a draw but why do they stop?

Postby Koundinya Veluri » 10 Mar 2004, 00:49

Geschrieben von: / Posted by: Koundinya Veluri at 10 March 2004 00:49:31:
Als Antwort auf: / In reply to: Re: Certainly a draw but why do they stop? geschrieben von: / posted by: Koundinya Veluri at 10 March 2004 00:43:12:
That code doesn't look right. I just tried the position:
4k3/8/8/8/8/8/3KP3/8 w - - 0 1
which is definitely not a draw, but as soon as white makes a move Thinker incorrectly declares a draw.
It depends a lot on who is on move and where the pawn's king is.
Regards,
Koundinya
I should add that only Kc2, Kc3, Kd3, and Ke3 are winning moves, but even after any of these moves Thinker declares a draw.
Also, IMO an engine should never declare a draw when the opponent has mating material.
Regards,
Koundinya
Koundinya Veluri
 

Re: Certainly a draw but why do they stop?

Postby Lance Perkins » 10 Mar 2004, 01:38

Geschrieben von: / Posted by: Lance Perkins at 10 March 2004 01:38:21:
Als Antwort auf: / In reply to: Re: Certainly a draw but why do they stop? geschrieben von: / posted by: Koundinya Veluri at 10 March 2004 00:49:31:

Thanks for pointing this one out.
I think the code was actually intended for edge file pawns only. I wonder why it ends up to be for any lone pawn.
I was only trying to explain what is currently in the code, and it does look like its missing the test for edge-file-only pawn condition.
That code doesn't look right. I just tried the position:
4k3/8/8/8/8/8/3KP3/8 w - - 0 1
which is definitely not a draw, but as soon as white makes a move Thinker incorrectly declares a draw.
It depends a lot on who is on move and where the pawn's king is.
Regards,
Koundinya
I should add that only Kc2, Kc3, Kd3, and Ke3 are winning moves, but even after any of these moves Thinker declares a draw.
Also, IMO an engine should never declare a draw when the opponent has mating material.
Regards,
Koundinya
Lance Perkins
 

Re: Certainly a draw but why do they stop?

Postby Robert Allgeuer » 10 Mar 2004, 08:50

Geschrieben von: / Posted by: Robert Allgeuer at 10 March 2004 08:50:42:
Als Antwort auf: / In reply to: Re: Certainly a draw but why do they stop? geschrieben von: / posted by: Lance Perkins at 10 March 2004 01:38:21:
Thanks for pointing this one out.
I think the code was actually intended for edge file pawns only. I wonder why it ends up to be for any lone pawn.
I was only trying to explain what is currently in the code, and it does look like its missing the test for edge-file-only pawn condition.
That code doesn't look right. I just tried the position:
4k3/8/8/8/8/8/3KP3/8 w - - 0 1
which is definitely not a draw, but as soon as white makes a move Thinker incorrectly declares a draw.
It depends a lot on who is on move and where the pawn's king is.
Regards,
Koundinya
I should add that only Kc2, Kc3, Kd3, and Ke3 are winning moves, but even after any of these moves Thinker declares a draw.
Also, IMO an engine should never declare a draw when the opponent has mating material.
Regards,
Koundinya
Generally I think that an engine should detect an edge pawn and opponent´s king in front of it as a draw in the search, but it should not declare such a position as draw.
Robert
Robert Allgeuer
 


Return to Archive (Old Parsimony Forum)

Who is online

Users browsing this forum: No registered users and 28 guests