when is a move a blunder?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

flok

when is a move a blunder?

Post by flok »

Hi,

When is a move a blunder? How can I programmatically find this?

ChessArtist calls a move a blunder if the score goes down 1,5 pawn. But that doesn't always apply, does it? If all other moves have scores even lower, than the chosen 1,5 pawn is not a blunder is it?
AlvaroBegue
Posts: 931
Joined: Tue Mar 09, 2010 3:46 pm
Location: New York
Full name: Álvaro Begué (RuyDos)

Re: when is a move a blunder?

Post by AlvaroBegue »

Well, the obvious definition would be something like "when an alternative move more than 1.5 pawns better was available".
flok

Re: when is a move a blunder?

Post by flok »

Yes, but that would be under the assumption that the annotating software has always a better judgement of what is a good move or not?
User avatar
hgm
Posts: 27807
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: when is a move a blunder?

Post by hgm »

It will be if you allow it to search deep enough. Proper procedure is to analyze the position after the move to convince yourself it is indeed bad. And then take moves back to transport this score back to the point where there was an alternative that seems much better (possibly fllowing that line to confirm that it stays better).
kbhearn
Posts: 411
Joined: Thu Dec 30, 2010 4:48 am

Re: when is a move a blunder?

Post by kbhearn »

A blunder is a move that changes the theoretical outcome of the game or makes it notably easier/harder to achieve. Easiest way to look at this is on a human scale of annotations

+- trivially won
+/- winning but still have work to convert it
+= advantage but probably drawn
= equal
=+
-/+
-+

if it changes the game between these 7 categories, it's a blunder. In terms of machine scores you might need to make a mapping function that takes into account game phase as well as score since engine scores with an advantage tend to increase towards the endgame to represent progress += (ending) tends to be a wider range than += (opening) (also there's some selection of endings where engine scores are just going to be too optimistic - doesn't necessarily mean they'll play them wrong, just that an attempt to draw a conclusion that +1 (for example) is +/- might be erroneous at times)
BeyondCritics
Posts: 396
Joined: Sat May 05, 2012 2:48 pm
Full name: Oliver Roese

Re: when is a move a blunder?

Post by BeyondCritics »

flok wrote:Hi,

When is a move a blunder? How can I programmatically find this?

ChessArtist calls a move a blunder if the score goes down 1,5 pawn. But that doesn't always apply, does it? If all other moves have scores even lower, than the chosen 1,5 pawn is not a blunder is it?
The term "blunder" is historically simply a derogatory label for a suboptimal move in chess. It implies an aesthetically or instructive judgement of the annotator.
Historically a blunder is not even required to change the theoretical game outcome, but very typically does.
Since a chess engine is not designed in the first place to produce aesthetic or educational remarks, it cannot mimic blunder annotations in the first place.

That means, as a matter of fact, you can not detect a blunder, without redefing the meaning of the term "blunder", from the viewpoint of a chess player. You may do so, but belive me, for a serious chess player this feels more often than not incompetent.

IMHO(!) the best way to produce automated comments, is to wisely restrict the engine to things it can do well: Giving evaluations of positions and following definitions unambiguously.
You do not need the term blunder, since the question mark "?" together with an evaluation is enough. It looks nice, to use symbols like "+=", but for a serious chess player they are simply distracting, since typically no two engines can agree on their precise meaning. Your annotations would be unportable.
User avatar
Kotlov
Posts: 266
Joined: Fri Jul 10, 2015 9:23 pm
Location: Russia

Re: when is a move a blunder?

Post by Kotlov »

Оne "?" for each -100 cp ))
BeyondCritics
Posts: 396
Joined: Sat May 05, 2012 2:48 pm
Full name: Oliver Roese

Re: when is a move a blunder?

Post by BeyondCritics »

Kotlov wrote:Оne "?" for each -100 cp ))
So you would write "???" for the loss of a piece?
That would be be unambigous and logically at least. Alternatively write simply ?(-3.0).

These coarser grained comments are indeed helpful, because they give the big picture of the game.
My suggestions: Don't try to mimic a human, this will make your engine look like a cheater. Play out your strengths instead.

If the loosers position is about to break away and this process will be commented with blunder marks, this looks silly. An idea would be to comment on loss of winning percentages instead of loss of material (https://chessprogramming.wikispaces.com ... e,+and+ELO).
syzygy
Posts: 5566
Joined: Tue Feb 28, 2012 11:56 pm

Re: when is a move a blunder?

Post by syzygy »

flok wrote:Yes, but that would be under the assumption that the annotating software has always a better judgement of what is a good move or not?
You cannot expect sensible annotations if you don't expect the annotating software to have good judgement.
syzygy
Posts: 5566
Joined: Tue Feb 28, 2012 11:56 pm

Re: when is a move a blunder?

Post by syzygy »

BeyondCritics wrote:The term "blunder" is historically simply a derogatory label for a suboptimal move in chess. It implies an aesthetically or instructive judgement of the annotator.
Historically a blunder is not even required to change the theoretical game outcome, but very typically does.
I suppose you mean something like "in human terms" when you say "historically".

I would agree with Kevin that blunders normally are thought of as being moves that change the likely outcome of the game or the difficulty of achieving the outcome.
since typically no two engines can agree on their precise meaning. Your annotations would be unportable.
I'd say it is exactly the other way around. No two engines will agree on the precise meaning of +1.23 and for a human player it means even less (unless the player has done a lot of analysis with the same engine). But if the annotating software has been finely calibrated to distinguish between +/- and += in the way that a human would, then the annotation is portable between engines and humans.