Hosted by Your Move Chess & Games
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Spite checks
Post new topic Forum Index -> Computer Chess Club: Programming and Technical Discussions Flat
View previous topic :: View next topic  
Author Message

Joined: 10 Mar 2006
Posts: 21875
Location: Amsterdam

PostPost subject: Spite checks    Posted: Tue May 13, 2014 10:55 am Reply to topic Reply with quote

n the face of an unavoidable mate, the losing engine typically reverts to 'spite checks', in order to delay the mate, or push it over the horizon. Especially if the spite check is a silly scarifice, this is rather counter-productive to play it in the root. It makes it in no way more difficult for a computer opponent to find the mate (this simply grabs the offered material in order to resolve the check, and will then see the mate on the next move, if it had not seen it already). And agains humans, which might not have seen the mate, giving up the material just makes sure you lose even when he did not see it.

But deeper in the tree spite checks might also hurt. In particular when there is the choice to prevent the opponent to acquire an unavoidable checkmate against you, or grabbing some material. A spite check at the end of the branch might then push the mate beyond the horizon, making the grabbing of the material seem a good deal. E.g. an unavoidable checkmate might be delayed 6 ply by trading a Knight with check, sacrificing a Bishop on the Pawn shield, and then a Queen.

[d]2k2b1r/pppq1ppp/3n1p1r/3BnN2/2NpP3/1P1P1bP1/P1QP1P1P/R3BRK1 w - - 0 1
   :: BK ::    BB    BR
   ::    BN    BP    BR
::    :: WB BN WN ::    
   :: WN BP WP ::    ::
:: WP :: WP :: BB WP    
WP :: WQ WP    WP    WP
WR    ::    WB WR WK    

If white tries to grab the Exchange here by 1.Nxh6, then 1... Qh3 seals his fate. But it takes squite some depth before it actually sees that it will be mated, and the initial spite checks are not costly enough to deter it from grabbing the Rook (2. Nxc6+ Bxc6 {neutral} 3. Bxb7 Kxb7 {P for B}). Of course the standard check extension helps, but it does not completely neutralize the spite checks, and each of them still eats away one ply of depth.

Now in Chess this is not that much of a problem, as it is not often that you have a large number of cheap spite checks available. But in games where pieces can be dropped, such as Crazyhouse or Shogi, you often have several Pawns or Knights in hand, which can be easily dropped with check. This tends to mask the severity of a mate threat against you, so that engines keep hunting for material until it is too late, and they are doomed (where in the subsequent moves you see the material advantage they built then erode away spectacularly, as it has to resort to more and more expensive spite checks to keep the unavoidable mate beyond the horizon).

So I wonder if there would not be a method to solve the method of spite checks in general (which no doubt would contribute more Elo in games with drops than in Chess, but still might add some Elo even in the latter). One idea is that sacrificial checks at remaining depth = 1 are suspect. The evasion will be extended, but if there is an evasion (i.e. the check was not checkmate), why would you play them? When a check at d=1 results in a score lower than the current evaluation, even when it scores above beta, and all non-checks score below beta (e.g. because they get you checkmated in the first ply of QS), it is very likely that the checking branch abuses the privilege to stand pat in the face of an undefensible mate threat. Perhaps even a check that gains material should be suspect if all non-checks get you mated?

This suggests the following search strategy: if at d=1 the null move scores below the current eval, we prune all checks by giving them a default score mated-in-100 (say). In cases where the current eval is below alpha, this will require artifically lowering the alpha of the null-move search to just below the current eval, to prevent an automatic fail low of the null move by an opponent stand-pat after it (which of course normally would have been a reason to not try null move at all, when curEval <= alpha).

This, however, would also prune checks that really solved the (mate) threat, but accidentally were also checks. So perhaps rather than pruning the checks, they should be searched under non-standard rules, where the opponent King is 'granted immunity' (and no check extension is being awarded).
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Subject Author Date/Time
Spite checks H.G.Muller Tue May 13, 2014 10:55 am
      Re: Spite checks Robert Hyatt Tue May 13, 2014 4:57 pm
            Re: Spite checks H.G.Muller Tue May 13, 2014 5:59 pm
                  Re: Spite checks Robert Hyatt Tue May 13, 2014 11:17 pm
                        Re: Spite checks H.G.Muller Wed May 14, 2014 6:34 am
                              Re: Spite checks Robert Hyatt Wed May 14, 2014 6:08 pm
Post new topic Forum Index -> Computer Chess Club: Programming and Technical Discussions

Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2001, 2005 phpBB Group
Enhanced with Moby Threads