Author: Robert Hyatt
Date: 07:57:03 04/30/04
Go up one level in this thread
On April 30, 2004 at 01:33:53, Tony Werten wrote: >On April 29, 2004 at 23:19:54, Robert Hyatt wrote: > >>On April 29, 2004 at 17:06:29, Gerd Isenberg wrote: >> >>>On April 29, 2004 at 16:03:08, Robert Hyatt wrote: >>> >>>>On April 29, 2004 at 02:08:40, Tony Werten wrote: >>>> >>>>>On April 28, 2004 at 16:14:39, Gerd Isenberg wrote: >>>>> >>>>>>On April 28, 2004 at 13:45:05, Ed Schröder wrote: >>>>>> >>>>>><snip> >>>>>> >>>>>>>What is double nullmove? I only know recursive nullmove allowing multiple >>>>>>>nullmoves. I also read about "allowing 2 nullmoves in a row". What are the >>>>>>>differences? >>>>>>> >>>>>>>I use recursive nullmove, not allowing the next ply after the nullmove to >>>>>>>nullmove. So: >>>>>>> >>>>>>> e2-e4 >>>>>>> e7-e5 >>>>>>> **-** // nullmove >>>>>>> d7-d5 // do no allow nullmove >>>>>>> >>>>>>>When I remove that check I get a few percent speedup, results look okay. >>>>>>> >>>>>>>Ed >>>>>> >>>>>> >>>>>>Hi Ed, >>>>>> >>>>>>yes Double Nullmove, suggested and invented by Vincent, allows to play two >>>>>>nullmoves in a row, to efficiently get rid of zugzwang problems. It is recursive >>>>>>too, and if i understand correctly, it works fine without any nullmove >>>>>>precondition: >>>>>> >>>>>> if (!inCheck) >>>>>> { >>>>>> if ( move2thisNode != null || move2ParentNode != null ) ( >>>>>> val = -doNullMoveSearch(depth-1-R,...); >>>>>> if ( val >= beta ) return val; // return beta; >>>>>> } >>>>>> } >>>>>> >>>>>>May be Vincent may correct me. >>>>>>It seems that there is an implicit kind of IID with 2R-2 too. >>>>> >>>>>Correct. Chech your hashtable again after the nullmove, if you didn't have a >>>>>best move before. >>>>> >>>>>Then throw out IID. >>>>> >>>>>Tony >>>> >>>>I don't see how/why one would throw out IID. >>>> >>> >>>Yes but with double nullmove you may search a line like that, eg. for a 12ply >>>search: >>> >>>null null e4 e5 Nf3 Nc6 Bb5 a6 .... >>> >>>which is IMHO a kind of IID with depth-6, so if you store hash after null null >>>with best found e4, and probe after after nullmove, it is likely to get a hit. >>>Or? >>> >> >>Several problems. >> >>1. Suppose the best move is a repetition. If you do a repetition check after a >>double null move, you get an instant draw score very time. Useless. So you >>have to turn it off. Now you don't realize that the move draws, so it won't be >>best. Etc. > >Easily fixed. Just start checking for repetition 2 plies higher in case of a >double nm. > >> >>2. double null rips 8 plies from the depth. That will often collapse you into >>the q-search where all you can play are captures. Captures are not the best >>move far more often than they are. > >I nm, you nm. My turn. If a capture makes your nm fail low, it is the best move. >If it didn't then your nm fails high which basicly means the current node is a >fail low node, so no IID needed. > >Tony That is wrong. A capture can make NM fail low (or high) without being the _best_ move. Which is ok, except along the PV. And along the PV is the _only_ place I use IID, at places where null-move can't possibly do anything good... If you do IID everywhere, you might be right. But I don't... > >> >>> >>>>NULL can collapse search to q-search, which means the best you can hope for is a >>>>capture should you search this position later. That's not the same as a "good" >>>>move when depth>0. If you mean after the second null, you are now 8 plies short >>>>of a full search, which in most middlegame positions is going to be into the >>>>capture only search... >>>>
This page took 0 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.