Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Maybe I understand better now ....

Author: Roberto Waldteufel

Date: 13:59:58 09/30/98

Go up one level in this thread



On September 29, 1998 at 14:12:18, Robert Hyatt wrote:

>On September 29, 1998 at 11:01:38, Roberto Waldteufel wrote:
>
>>
>>On September 29, 1998 at 10:53:28, Don Dailey wrote:
>>
>>>On September 28, 1998 at 20:02:42, John Coffey wrote:
>>>
>>>>Looking at my copies of old threads maybe I understand better...
>>>>
>>>>
>>>>Just because you're behind in material at a node, doesn't mean you
>>>>won't regain (some of) it in the search below that node.  Let's
>>>>imagine that at a node you are behind in material, but are just about
>>>>to deliver mate, and your opponent can't get out of it--even if he's
>>>>given two moves in a row.  The null move will return the mate score
>>>>and give you an instant cutoff.  Or imagine the oppenent can
>>>>get out of it with those two moves, but only at the loss of a lot
>>>>of material.  Again you might get a cutoff.
>>>>
>>>>The null move works as long as the score returned by the null move
>>>>search is greater than or equal to beta.  What the current material
>>>>is is...immaterial.
>>>>
>>>>-Dan.
>>>>
>>>>
>>>>>>>>I try them _everywhere_ in the search, before trying any other move.  The idea
>>>>>>>>is that if your opponent can't take two moves in a row and crush you, your
>>>>>>>>position is **overwhelming** and doesn't need any further searching to prove that
>>>>>>>>it is probably winning...
>>>>
>>>>
>>>>
>>>>
>>>>...... so even if we are behind in material, a null move search that gives
>>>>my the opposite side two moves in a row could still produce a positive
>>>>result?  I.e. I was a rook down, but null move analysis shows that I am
>>>>only a pawn down, chances are I am really crushing the opponent?   If so,
>>>>then does this return an evalation that we can use in the tree?
>>>>
>>>>John Coffey
>>>
>>>As was just pointed out to me recently,  a simpler way (conceptually)
>>>to view null move searching is to simply look at it as just another
>>>move in the move list.  For example, if you have 30 legal moves, then
>>>view the null move (followed by a depth reduced search) as the 31st
>>>move in the list (sorted to the front of course.)   Sometimes this
>>>move will give you a beta cutoff, other times it will simply provide
>>>a "best move" which raises alpha and makes the remaining search
>>>faster.
>>>
>>>I don't actually implement it just like this, but this is basically
>>>sound it COULD be implemented this way with no problems.
>>>
>>>- Don
>>
>>Hi Don,
>>
>>I can confirm that this works fine. I recently added null move test in my
>>program, and this is exactly how I implemented it.
>>
>>Best wishes,
>>Roberto
>
>In Cray Blitz, we just added a "0" move to the front of the move list, and
>this does work.  But I don't think it is the best way to implement it for
>several reasons:
>
>1.  now everytime you try a move you have to ask "is it a null move" and
>if so, reduce the depth by 1 or 2 plies (depending on your "R" value).  You
>have to ask this N-1 times which is an efficiency issue.
>
>2.  You also have to check to be *certain* that the null move isn't the
>"best" move you found.  If you don't, you back up an illegal move and wreck
>things.  Another check that is repeated every time you back up a score.
>
>I found it easier, since I wrote Crafty totally from scratch, to have a
>special case at the front of search, where I do the null-move stuff, and
>then I go into the normal "loop" to try the moves one at a time, only if the
>null-move didn't fail high.  The code is cleaner and faster and I don't have to
>worry about backing up a null-move as best, for example...

We seem to misunderstand each other. This is what I do too. Actually, I only
generate one move at a time (no list), so I just slot the null move in at the
beginning before the captures.

By the way, in a PVS framework, do you know if there is any difference in the
risk of a null move error (eg due to zugzwang) affecting the outcome of the
search depending on whether the null move was made in the PV or not? I wander if
non-PV null moves might be "safer" than PV null moves?



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.