Arasan, repetition and insufficient material

Discussion of chess software programming and technical issues.

Moderator: Ras

Ferdy
Posts: 4853
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Arasan, repetition and insufficient material

Post by Ferdy »

Played test games on LB (Little Blitzer), I notice arasan 17.5 has illegal moves.

1) When given a position with the side to move already has 3 same position Arasan will just send bestmove 0000. LB considers this as illegal. In analysis mode in arena (pressing analyze button), arasan still refuses to analyze and just sent bestmove 0000.

[pgn]
[Event "?"]
[Site "Home"]
[Date "2015.05.19"]
[Round "?"]
[White "*"]
[Black "Arasan 17.5"]
[Result "*"]
[ECO "C45"]
[Opening "Scotch"]
[SetUp "1"]
[FEN "r1bqk1nr/pppp1ppp/2n5/2b5/3NP3/8/PPP2PPP/RNBQKB1R w KQkq - 0 1"]

1. Be3 Qf6 2. c3 Nge7 3. Bc4 Ne5 4. Be2 O-O 5. O-O d5 6. Nd2 Bb6 7. a4 N5c6
8. Bd3 Ne5 9. Be2 N5c6 10. Bd3 Ne5 11. Be2 *[/pgn]

2. Also under LB, when given drawn position by material, it also sent bestmove 0000. Same with analysis mode.
[d]8/8/8/4b3/8/8/2KB1k2/8 w - - 1 1
User avatar
hgm
Posts: 28480
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Arasan, repetition and insufficient material

Post by hgm »

This seems a Little-Blitzer problem. Arasan is well within his (FIDE) rights to refuse moving in positions that are already draw, or where the game has already finished. What does Little Blitzer say when you start Arasan in a position where it is stalemated?
Ferdy
Posts: 4853
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Arasan, repetition and insufficient material

Post by Ferdy »

hgm wrote:This seems a Little-Blitzer problem. Arasan is well within his (FIDE) rights to refuse moving in positions that are already draw, or where the game has already finished.
Indeed LB has a problem here. Most uci engines will play legal move here, even if it is drawn by repitition.
What does Little Blitzer say when you start Arasan in a position where it is stalemated?
It will send bestmove 0000.

What concerns me is its analysis ability, except those stalemate positions.
User avatar
hgm
Posts: 28480
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Arasan, repetition and insufficient material

Post by hgm »

Why should analysis be any different? If playing a move from a rep-draw position is losing, why should analysing that position suggest a losing move if claiming a draw is the only sound option? The insufficient-material position is logically equivalent to the stalemate, as both are positions in which according to FIDE rules the game has already ended. It is not a valid position to start from. You might as well set up a position without King.
Ferdy
Posts: 4853
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Arasan, repetition and insufficient material

Post by Ferdy »

hgm wrote:Why should analysis be any different? If playing a move from a rep-draw position is losing, why should analysing that position suggest a losing move if claiming a draw is the only sound option? The insufficient-material position is logically equivalent to the stalemate, as both are positions in which according to FIDE rules the game has already ended. It is not a valid position to start from. You might as well set up a position without King.
What I mean is when you do an analysis, load a pgn then load Arasan, then you go thru the games, create variation, takeback, then you stumble into a position where there is repetition, arasan should not give bestmove 0000, it should just give its bestmove with draw score, same with drawn position with low material as long as there is legal move.
User avatar
hgm
Posts: 28480
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Arasan, repetition and insufficient material

Post by hgm »

That would be wrong. Best is to claim the draw without moving. Why should the engine ly about it? A move with a draw score should mean that you only fulfill the draw condition after moving.
Ferdy
Posts: 4853
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Arasan, repetition and insufficient material

Post by Ferdy »

So you mean to say that the engine will claim draw by insufficient material or repetition in analysis mode and just send bestmove 0000 to the gui :).
jdart
Posts: 4429
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Arasan, repetition and insufficient material

Post by jdart »

UCI puts the GUI in charge of draws and game termination generally. So in playing a game the engine shouldn't be asked to move in a stalemate situation or in a draw by material.

Analysis mode though is different because the GUI can ask the engine to analyze in a position that is a legal draw.

The reason "bestmove 0000" is sent is because UCI is very strict about requiring "bestmove" after "stop". "bestmove" does not just convey the move the engine wants to play, it also is a flag indicating that the engine has received "stop" and is now ready for another command. So in case of stalemate "bestmove 0000" is an appropriate response IMO. But in other draw situations I think it should send a valid move when in analysis mode. This is apparently what other engines do.

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

Re: Arasan, repetition and insufficient material

Post by hgm »

Ferdy wrote:So you mean to say that the engine will claim draw by insufficient material or repetition in analysis mode and just send bestmove 0000 to the gui :).
That seems the logical interpretation of the UCI specs. If you cannot move, you have the choice to play an illegal move or 0000. Playing an illegal move seems just wrong, but 0000 according to the specs stands for null move, i.e. make no move at all. Which is exactly what you should do if there is no move to play. Or if you don't want to play one.

Other engines apparently just do it wrong.
mar
Posts: 2681
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Arasan, repetition and insufficient material

Post by mar »

hgm wrote:That seems the logical interpretation of the UCI specs. If you cannot move, you have the choice to play an illegal move or 0000. Playing an illegal move seems just wrong, but 0000 according to the specs stands for null move, i.e. make no move at all. Which is exactly what you should do if there is no move to play. Or if you don't want to play one.

Other engines apparently just do it wrong.
I just looked up a mail conversation I had with Nathan back in 2011. I told him about a problem where LB wasn't detecting some draws by insufficient material.
It was kbkb with bishops of same color and Nathan told me he was going to fix it.
Anyway I worked around the problem by not doing cutoffs by insufficient material at root.
I don't know if LB is still being actively developed or not, I switched to cutechess-cli long time ago.

So I personally don't think there's anything wrong with playing any move in such drawn positions if the GUI/user wants to,
UCI engines really don't have that many options to claim draw and they have to rely on the GUI to adjudicate the game in such cases.
From my POV, this is a better solution than losing such drawn games due to GUI(=LB in this case) bugs.

Which doesn't mean I advocate fixing GUI bugs in engines (I did this twice actually, another example was Arena and FRC).