Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: how to back up the PV with minimal work.

Author: Robert Hyatt

Date: 06:36:31 01/22/04

Go up one level in this thread


On January 22, 2004 at 05:40:20, Tord Romstad wrote:

>On January 21, 2004 at 20:53:00, Robert Hyatt wrote:
>
>>On January 21, 2004 at 18:21:28, Tord Romstad wrote:
>
>>>I use MTD(f), hence I *never* get any "true scores" anywhere in the tree.
>>
>>Why?  I played with mtd(f) for several months right after Don Daily started
>>his "you got to try this" many years ago...  I got exact scores, because the
>>last two searches have a common "edge" and that "edge" is the true score.
>
>OK, in that sense I get true scores, of course.  But I don't see any
>good way to guess whether this is going to happen at a specific node.

You don't have to.  Of course if you are talking about IID, you will need
some way to discover that you are searching the "left edge" of the tree
(sometimes called the PV edge).  You could pass a flag thru search so that
if the passed-in flag is 1, and you are searching the _first_ move at this
ply, the passed-out flag is also 1, else 0.

Then if the flag is 1, and you have no hash move, you could do IID.

I don't have to do that since I do PVS.  If the window is "open" then it
must be a PV search, otherwise it would be a null-window search.

>
>>>  My
>>>intuition
>>>regarding PVS is not very good (I have used MTD(f) almost since the beginning),
>>>but
>>>I don't see any reason not to use IID at all expected fail-high nodes in a PVS
>>>search,
>>>too.  At a fail-high node, you can return a value before all moves are searched.
>>> If
>>>your move ordering is perfect, you will only need to search one move.  It
>>>therefore
>>>makes sense to make some extra effort to make sure that the first move searched
>>>will really return a score >= beta, and the most obvious way to do this is to
>>>first
>>>do a search with reduced depth.  What am I missing?
>>>
>>
>>for the majority of moves, it is easier to find a capture refutation than to
>>do an N-iteration search...
>
>For this reason, I don't to IID when there is a hanging piece which are
>sufficiently valuable that capturing it will almost certainly cause a
>fail high.  Basically, I do IID when I expect a fail high and have no
>obvious candidate (hash table moves, winning captures, safe promotions,
>mates in 1, etc.) for a move to search first.


That is a special case that probably should be handled (I don't at the present).
There are probably a few others.  IE if you only have one legal move there is
not much point in doing an IID search although it can still help as if there
is no hash move here, there are probably none deeper in the tree along this
branch either and an IID search will fill those in as well.



>
>>I tried it both ways (plus other ideas) when I
>>first did this.  What I am doing right now has really proven to be effective
>>with no particular down-side or risk...
>>
>>For normal fail-high positions we have already been doing iterated searches
>>for previous depths, so hopefully we get decent ordering here most of the
>>time using normal ideas.  The critical positions are the PV nodes, because
>>there searching a good move first is not good enough.  We need the _best_ move
>>first.  At normal fail-high positions, we only need a move good enough to cause
>>a cutoff, not the best move.  IID will provide the best move generally, but at
>>significant cost.
>
>No, IID will not generally provide the best move, at least not the way I
>have implemented it.  It will only give you a move good enough to fail
>high at a reduced search depth.  Usually, this move will fail high even
>at full search depth.

The way I do it it should provide the _best_ move, as I search _all_ the
moves at the current ply normally, but with reduced depth..




>
>>>Another thing that has always puzzled me is that reducing the depth by only 1
>>>ply
>>>gives better results for me than reducing by 2 plies, like you and almost
>>>everybody
>>>else do.  I have tested this very thorougly, and depth-1 always seems to be a
>>>bit
>>>better.  Really weird.
>>
>>I tried it both ways years ago.  I found the depth-2 worked better for me.  I
>>ran the test set (a bunch of positions) with IID off, using D-1 and D-2, and I
>>chose the case that produced the shortest time overall...  for me that was D-2.
>>I should probably test it again just to see if things have changed, as it is
>>certainly possible after so many versions under the bridge. :)
>
>Perhaps it's time for me to try D-2 again, too.
>
>Tord

You never know.  This seems to change every now and then, which means you should
open Pandora's box several times each year. :)



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.