Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: extensions + reductions + pruning = confusion

Author: Uri Blass

Date: 14:41:32 03/27/04

Go up one level in this thread


On March 27, 2004 at 17:15:54, Robert Hyatt wrote:

>On March 27, 2004 at 12:54:57, Uri Blass wrote:
>
>>On March 27, 2004 at 10:38:57, Robert Hyatt wrote:
>>
>>>On March 26, 2004 at 13:01:17, Uri Blass wrote:
>>>
>>>>On March 26, 2004 at 12:37:11, Robert Hyatt wrote:
>>>>
>>>>>On March 25, 2004 at 22:52:02, Johan de Koning wrote:
>>>>>
>>>>>>On March 25, 2004 at 16:40:26, Robert Hyatt wrote:
>>>>>>
>>>>>>>On March 25, 2004 at 01:56:43, Johan de Koning wrote:
>>>>>>>
>>>>>>>>On March 24, 2004 at 11:09:41, Robert Hyatt wrote:
>>>>>>>>
>>>>>>>>>On March 23, 2004 at 05:05:56, Vasik Rajlich wrote:
>>>>>>>>
>>>>>>>>>>Junior, however, appears to come at the problem of selective search via
>>>>>>>>>>discussions about this in the CCC archives. Amir has claimed that the best way
>>>>>>>>>>to search selectively is via extensions. To complete the reductions vs
>>>>>>>>>>extensions thought from above, an extension strategy will have the profile that
>>>>>>>>>>most moves have the same basic search depth, while certain special moves will
>>>>>>>>>>have a higher search depth. The profile of a search based on reductions compared
>>>>>>>>>>to a search based on extensions will be different.
>>>>>>>>>
>>>>>>>>>It is easy to prove that last statement wrong.
>>>>>>>>>
>>>>>>>>>You write a program that only does search depth reductions.  I write a program
>>>>>>>>>that only does extensions.  I can make mine _identical_ to yours.   Where you
>>>>>>>>>reduce, I do nothing.  Where you don't reduce, I extend.  IE if you don't reduce
>>>>>>>>>a check, I extend the check.  We search _exactly_ the same tree.
>>>>>>>>
>>>>>>>>Indeed, assuming fractional plies, it is rather trivial to build
>>>>>>>>the same tree using either extensions or reductions.
>>>>>>>>
>>>>>>>>But it's better to avoid the term "reductions" since it is confusing.
>>>>>>>>The real issue is extensions versus *pruning*.
>>>>>>>
>>>>>>>Let me define _my_ vocabulary to avoid further confusion.
>>>>>>>
>>>>>>>1.  Extension.  extending the depth of a move based on some property it
>>>>>>>exhibits, such as being a check or whatever.
>>>>>>>
>>>>>>>2.  Reduction.  Reducing the depth of a move based on some property it exhibits,
>>>>>>>such as not being a capture, check, threat, etc.
>>>>>>>
>>>>>>>The two terms are inverses.  I can extend the set of moves {X} or I can reduce
>>>>>>>the set of moves {M-X} and get _exactly_ the same result, to the node.  Note
>>>>>>>that M is the set of all moves we will search.
>>>>>>>
>>>>>>>3.  Forward-pruning.  Taking some set of moves at the current ply and throwing
>>>>>>>them out with no additional searching of any kind.
>>>>>>>
>>>>>>>4.  Backward-pruning.  IE alpha/beta pruning that doesn't change the final
>>>>>>>result at all.
>>>>>>
>>>>>>Fair enough, but null moving doesn't fit in your vocabulary.
>>>>>
>>>>>Actually it does.  It is a "reduction"...  The reduction is "R" and it is done
>>>>>when the shallow search can't find bad after I "pass"...
>>>>
>>>>No a reduction means searching the right position to reduced depth (not the
>>>>position with the wrong side to move).
>>>
>>>No  a reduction means searching to a reduced depth, period, rather than throwing
>>>moves out a priori...
>>>
>>>null-move does exactly that...
>>
>>No
>>
>>null move decides to throw all moves out in case that search to reduced depth
>>in a position that cannot happen in the game (it is illegal to play null move)
>>suggest no threat.
>
>Whether it is legal or not doesn't matter.  Null-move uses a reduced depth
>search to decide whether any additional searching is needed.  Forward pruning
>just throws moves away period..  It isn't based on any search result...
>
>
>>
>>>
>>>
>>>>
>>>>>
>>>>>
>>>>>>
>>>>>>One solution is to define null moves as part of the reference tree
>>>>>>(a search that utilizes 4. at most).
>>>>>>
>>>>>>Another way is to allow searches under 3. After all, null move is an
>>>>>>estimate *and* it is used to disqualify members of M. That's sounds
>>>>>>like pruning! :-) And after hiding the null searches in an (expensive)
>>>>>>black box there is no difference at all.
>>>>>
>>>>>
>>>>>Note it really doesn't prune, as in throwing things away with no search, it does
>>>>>a search to a reduced depth...
>>>>
>>>>Yes but not a search of the right position(side to move is wrong) so it can miss
>>>>zugzwang forever.
>>>
>>>So?  reducing the depth can miss lots of things...  That is a type of error.
>>>Forward-pruning introduces its own sort of errors...
>>
>>No
>>
>>reducing the depth should still find everything if you search deep enough.
>
>Why?
>
>Every additional ply gives me the chance for an additional reduction.  The net
>gain for some moves could be zero.

ok

I understand the definition that you use but in this case there is no limit in
plies for reductions of null moves.

I have other recursive reductions in movei for moves that seem to be bad but for
every ply I can reduce only one ply so I see them clearly different than null
move pruning.

I also do a research to the original depth in case that the expected result(fail
low) does not happen.

Uri



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.