ChessUSA.com TalkChess.com
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 

Verification search
Post new topic    TalkChess.com Forum Index -> Computer Chess Club: Programming and Technical Discussions Flat
View previous topic :: View next topic  
Author Message
Don Dailey



Joined: 29 Apr 2008
Posts: 4323

PostPost subject: Re: Verification search    Posted: Sun Jun 17, 2012 3:41 am Reply to topic Reply with quote

lucasart wrote:
Don wrote:

Also to be considered is how you set it up, such as which depths you start using it and how much do you reduce? How it's set up might determine if it helps or not. We do it in Komodo and it appears to be a small gain for us but nothing to get excited about.

DiscoCheck has some rather unusual preconditions for null move now.
Code:
   // Null move pruning
   if (UseNull && !is_pv
      && !in_check && !is_mate_score(beta)
      && (current_eval >= beta || depth <= NullReduction(depth))
      && B->st->piece_psq[B->turn])
   {
      const int new_depth = depth - NullReduction(depth);

      play(B, NoMove);
      int score = -search(B, -beta, -alpha, new_depth, ply+1, false, si+1);
      undo(B);

      if (score >= beta) {
         // null search fails high
         return score < mate_in(MAX_PLY)
            ? score      // fail soft
            : beta;      // *but* do not return an unproven mate
      }
   }

1/ I do not have a minimum depth condition (I used to and removed it because testing proved it to be harmful)
2/ Another peculiarity is the following condition
Code:
&& (current_eval >= beta || depth <= NullReduction(depth))

The idea of doing null move only when eval >= beta, is of course farly standard these days, and came from (or was popularized by?) Fruit.



My programs have always had this condition since I have done null move pruning. In fact I never considered doing it any other way until I heard that Crafty (many years ago) always did null move - so I tried it and it was clear that it didn't work for my programs. But if used that condition I am sure other programs did too.

Quote:



One of the aims of it being to avoid two consecutive null moves, I thought that if depth <= reduction, the reduced depth brings us in the QS, so there's no risk of that.

As a result of 1/ and 2/ I do null moves quite aggressively at shallow depths. As for the reduction function, it is defined as follows
Code:
static inline int NullReduction(int depth) { return max(4, depth/2); }

_________________
"Your superior intellect is no match for our puny weapons." -Kang and Kodos
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Subject Author Date/Time
Verification search Lucas Braesch Thu Jun 14, 2012 1:07 pm
      Re: Verification search Robert Hyatt Thu Jun 14, 2012 1:19 pm
            Re: Verification search Pawel Koziol Thu Jun 14, 2012 2:54 pm
            Re: Verification search Lucas Braesch Fri Jun 15, 2012 4:00 am
                  Re: Verification search Eelco de Groot Fri Jun 15, 2012 12:54 pm
                  Re: Verification search Daniel Homan Fri Jun 15, 2012 3:00 pm
                  Re: Verification search Lucas Braesch Sat Jun 16, 2012 3:18 am
                        Re: Verification search Vincent Diepeveen Thu Jun 21, 2012 2:47 pm
                              Re: Verification search Larry Kaufman Sat Jun 23, 2012 5:06 am
                                    Re: Verification search Vincent Diepeveen Sun Jun 24, 2012 10:32 am
                                          Re: Verification search Larry Kaufman Sun Jun 24, 2012 2:40 pm
                                                Re: Verification search Vincent Diepeveen Tue Jun 26, 2012 10:40 am
                                                      Re: Verification search Don Dailey Tue Jun 26, 2012 11:09 am
                                                            Very minor verification search modification. Eelco de Groot Tue Jun 26, 2012 4:47 pm
                                                                  Re: Very minor verification search modification. Vincent Diepeveen Wed Jun 27, 2012 1:30 am
                  Re: Verification search Vincent Diepeveen Sat Jun 16, 2012 2:58 pm
      Re: Verification search Karlo Bala Jr. Fri Jun 15, 2012 7:30 am
            Re: Verification search Lucas Braesch Fri Jun 15, 2012 11:02 am
                  Re: Verification search Pawel Koziol Fri Jun 15, 2012 12:13 pm
                  Re: Verification search Karlo Bala Jr. Fri Jun 15, 2012 1:58 pm
      Re: Verification search J. Wesley Cleveland Sat Jun 16, 2012 12:12 am
      Re: Verification search Don Dailey Sat Jun 16, 2012 10:32 pm
            Re: Verification search Lucas Braesch Sun Jun 17, 2012 3:13 am
                  Re: Verification search Don Dailey Sun Jun 17, 2012 3:41 am
                  Re: Verification search Miguel A. Ballicora Sun Jun 17, 2012 4:21 am
Post new topic    TalkChess.com 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