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.