Difference between revisions of "Node Types"

From Chessprogramming wiki
Jump to: navigation, search
(Created page with "'''Home * Search * Node * Node Types''' FILE:Img2725NodeTypes.gif|border|right|thumb|440px|link=http://www.netlib.org/utk/lsi/pcwLSI/text/node351.html...")
 
(9 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
[[FILE:Img2725NodeTypes.gif|border|right|thumb|440px|link=http://www.netlib.org/utk/lsi/pcwLSI/text/node351.html|Node Types <ref>[http://www.netlib.org/utk/lsi/pcwLSI/text/node351.html Analysis of Alpha-Beta Pruning] from the [http://www.netlib.org/utk/lsi/pcwLSI/text/BOOK.html Parallel Computing Works] ebook</ref> ]]  
 
[[FILE:Img2725NodeTypes.gif|border|right|thumb|440px|link=http://www.netlib.org/utk/lsi/pcwLSI/text/node351.html|Node Types <ref>[http://www.netlib.org/utk/lsi/pcwLSI/text/node351.html Analysis of Alpha-Beta Pruning] from the [http://www.netlib.org/utk/lsi/pcwLSI/text/BOOK.html Parallel Computing Works] ebook</ref> ]]  
  
'''Node Types''' are classifications of [[Node|nodes]] as expected inside a [[Search Tree#MinimalGameTree|minimal alpha-beta tree]], or as determined by the search. These types were first formulated by [[Donald Knuth]] and Ronald Moore when describing the [[Alpha-Beta|alpha-beta algorithm]] <ref>[[Donald Knuth|Donald E. Knuth]] and Ronald W. Moore ('''1975'''). ''An analysis of alpha-beta pruning.'' Artificial Intelligence, 6:293–326, 1975. Reprinted in [http://www-cs-faculty.stanford.edu/%7Eknuth/aa.html Selected Papers on Analysis of Algorithms] by Donald E. Knuth, Published 2000, by Addison-Wesley ISBN: 1-57585-211-5</ref> and further analyzed by [[Judea Pearl]] <ref>[[Judea Pearl]] ('''1982'''). ''The Solution for the Branching Factor of the Alpha-Beta Pruning Algorithm and its Optimality''. [[ACM#Communications|Communications of the ACM]], Vol. 25, No. 8, pp. 559-564</ref>. While Knuth used the terms Type 1, 2, and 3, [[Tony Marsland]] and [[Fred Popowich]] introduced the more descriptive terms '''PV-''', '''Cut-''' and '''All-nodes''' <ref>[[Mark Winands]], [[Jaap van den Herik]], [[Jos Uiterwijk]], [[Erik van der Werf]] ('''2003'''). ''Enhanced forward pruning.'' [http://www.personeel.unimaas.nl/m-winands/documents/Enhanced%20forward%20pruning.pdf pdf]</ref> <ref>[[Tony Marsland]], [[Fred Popowich]] ('''1985'''). ''Parallel Game-Tree Search.'' [[IEEE#TPAMI|IEEE Transactions on Pattern Analysis and Machine Intelligence]], Vol. 7, No. 4, pp. 442-452. [http://webdocs.cs.ualberta.ca/~tony/OldPapers/parallel.pdf 1984 pdf] (Draft)</ref>.  
+
'''Node Types''' are classifications of [[Node|nodes]] as expected inside a [[Search Tree#MinimalGameTree|minimal alpha-beta tree]], or as determined by the search. These types were first formulated by [[Donald Knuth]] and Ronald Moore when describing the [[Alpha-Beta|alpha-beta algorithm]] <ref>[[Donald Knuth]],  [http://www.informatik.uni-trier.de/~ley/pers/hd/m/Moore:Ronald_W= Ronald W. Moore] ('''1975'''). ''[http://www.scribd.com/doc/28194932/An-Analysis-of-Alpha-Beta-Pruning An analysis of alpha-beta pruning].'' [https://en.wikipedia.org/wiki/Artificial_Intelligence_%28journal%29 Artificial Intelligence], Vol. 6, No. 4, pp 293–326. Reprinted in [[Donald Knuth]] ('''2000'''). ''[http://www-cs-faculty.stanford.edu/~uno/aa.html Selected Papers on Analysis of Algorithms]''.  [http://web.stanford.edu/group/cslipublications/cslipublications/site/CSIN.shtml CSLI lecture notes series] 102, ISBN 1-57586-212-3</ref> and further analyzed by [[Judea Pearl]] <ref>[[Judea Pearl]] ('''1982'''). ''The Solution for the Branching Factor of the Alpha-Beta Pruning Algorithm and its Optimality''. [[ACM#Communications|Communications of the ACM]], Vol. 25, No. 8, pp. 559-564</ref>. While Knuth used the terms Type 1, 2, and 3, [[Tony Marsland]] and [[Fred Popowich]] introduced the more descriptive terms '''PV-''', '''Cut-''' and '''All-nodes''' <ref>[[Mark Winands]], [[Jaap van den Herik]], [[Jos Uiterwijk]], [[Erik van der Werf]] ('''2003'''). ''Enhanced forward pruning.'' [http://www.personeel.unimaas.nl/m-winands/documents/Enhanced%20forward%20pruning.pdf pdf]</ref> <ref>[[Tony Marsland]], [[Fred Popowich]] ('''1985'''). ''Parallel Game-Tree Search.'' [[IEEE#TPAMI|IEEE Transactions on Pattern Analysis and Machine Intelligence]], Vol. 7, No. 4, pp. 442-452. [http://webdocs.cs.ualberta.ca/~tony/OldPapers/parallel.pdf 1984 pdf] (Draft)</ref>.  
  
 
Node types as established by the search are stored inside the [[Transposition Table|transposition table]], indicating whether the [[Score|score]] is either [[Exact Score|exact]], [[Lower Bound|lower]] or [[Upper Bound|upper bounded]]. Expected node types, as determined by tree topology, probing the transposition table, or comparing scores of a [[Evaluation|static evaluation]] considering threats, or even a reduced search or [[Quiescence Search|quiescence search]], with the [[Bound|bounds]], may be considered by various ([[Parallel Search|parallel]]) search algorithms and in decisions concerning [[Selectivity|selectivity]].  
 
Node types as established by the search are stored inside the [[Transposition Table|transposition table]], indicating whether the [[Score|score]] is either [[Exact Score|exact]], [[Lower Bound|lower]] or [[Upper Bound|upper bounded]]. Expected node types, as determined by tree topology, probing the transposition table, or comparing scores of a [[Evaluation|static evaluation]] considering threats, or even a reduced search or [[Quiescence Search|quiescence search]], with the [[Bound|bounds]], may be considered by various ([[Parallel Search|parallel]]) search algorithms and in decisions concerning [[Selectivity|selectivity]].  
Line 12: Line 12:
 
* [[Root|Root Node]] and the [[Leftmost Node|Leftmost Nodes]] are always PV-nodes
 
* [[Root|Root Node]] and the [[Leftmost Node|Leftmost Nodes]] are always PV-nodes
 
* In [[Principal Variation Search]], PV-nodes are defined by <span style="background-color: rgb(229, 229, 229)">beta-alpha>1</span>
 
* In [[Principal Variation Search]], PV-nodes are defined by <span style="background-color: rgb(229, 229, 229)">beta-alpha>1</span>
* All [[Sibling node|Siblings]] of a PV-node are expected Cut-nodes
+
* All [[Sibling Node|Siblings]] of a PV-node are expected Cut-nodes
  
 
<span id="CUT"></span>
 
<span id="CUT"></span>
Line 61: Line 61:
  
 
  PV  = 1
 
  PV  = 1
  CUT = b^<span style="vertical-align: super;">&#8968;n/2&#8969;</span> - 1
+
  CUT = b<span style="vertical-align: super;">&#8968;n/2&#8969;</span> - 1
  ALL = b^<span style="vertical-align: super;">&#8970;n/2&#8971;</span> - 1
+
  ALL = b<span style="vertical-align: super;">&#8970;n/2&#8971;</span> - 1
  
 
... are already the subexpressions ...
 
... are already the subexpressions ...
Line 70: Line 70:
 
... in [[Michael Levin|Levin's]] famous formula demonstrating the [[Odd-Even Effect|odd-even effect]] of [[Alpha-Beta|alpha-beta]]
 
... in [[Michael Levin|Levin's]] famous formula demonstrating the [[Odd-Even Effect|odd-even effect]] of [[Alpha-Beta|alpha-beta]]
  
  L = b^<span style="vertical-align: super;">&#8968;n/2&#8969;</span> + b^<span style="vertical-align: super;">&#8970;n/2&#8971;</span> - 1
+
  L = b<span style="vertical-align: super;">&#8968;n/2&#8969;</span> + b<span style="vertical-align: super;">&#8970;n/2&#8971;</span> - 1
  
 
<span id="Table"></span>
 
<span id="Table"></span>
Line 76: Line 76:
 
Assuming a constant [[Branching Factor|branching factor]] of 40, this results in following number of leaves:
 
Assuming a constant [[Branching Factor|branching factor]] of 40, this results in following number of leaves:
  
{| class="wikitable"
+
{{Number of Leaves}}
|+ number of leaves with depth n and b = 40
 
|-
 
! depth
 
! worst case
 
! best case
 
! PV
 
! CUT
 
! ALL
 
|-
 
! n
 
| style="text-align:center;" | b<span style="vertical-align: super;">n</span>
 
| style="text-align:center;" | b<span style="vertical-align: super;">&#8968;n/2&#8969;</span> + b<span style="vertical-align: super;">&#8970;n/2&#8971;</span>  - 1
 
| style="text-align:right;"  | 1
 
| style="text-align:center;" | b<span style="vertical-align: super;">&#8968;n/2&#8969;</span> - 1
 
| style="text-align:center;" | b<span style="vertical-align: super;">&#8970;n/2&#8971;</span> - 1
 
|-
 
! 0
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 0
 
| style="text-align:right;" | 0
 
|-
 
!  1
 
| style="text-align:right;" | 40
 
| style="text-align:right;" | 40
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 39
 
| style="text-align:right;" | 0
 
|-
 
! 2
 
| style="text-align:right;" | 1,600
 
| style="text-align:right;" | 79
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 39
 
| style="text-align:right;" | 39
 
|-
 
!  3
 
| style="text-align:right;" | 64,000
 
| style="text-align:right;" | 1,639
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 1,599
 
| style="text-align:right;" | 39
 
|-
 
!  4
 
| style="text-align:right;" | 2,560,000
 
| style="text-align:right;" | 3,199
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 1,599
 
| style="text-align:right;" | 1,599
 
|-
 
!  5
 
| style="text-align:right;" | 102,400,000
 
| style="text-align:right;" | 65,569
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 63,999 
 
| style="text-align:right;" | 1,599
 
|-
 
!  6
 
| style="text-align:right;" | 4,096,000,000
 
| style="text-align:right;" | 127,999
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 63,999 
 
| style="text-align:right;" | 63,999 
 
|-
 
!  7
 
| style="text-align:right;" | 163,840,000,000
 
| style="text-align:right;" | 2,623,999
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 2,559,999
 
| style="text-align:right;" |  63,999
 
|-
 
!  8
 
| style="text-align:right;" | 6,553,600,000,000
 
| style="text-align:right;" | 5,119,999
 
| style="text-align:right;" | 1
 
| style="text-align:right;" | 2,559,999 
 
| style="text-align:right;" | 2,559,999 
 
|}
 
 
 
 
=Quotes=
 
=Quotes=
 
[[Robert Hyatt]] on the distinction between [[Node Types#ALL|ALL-]] and [[Node Types#CUT|CUT-nodes]] <ref>[http://www.talkchess.com/forum/viewtopic.php?topic_view=threads&p=398061&t=38317 Re: "CUT" vs "ALL" nodes] by [[Robert Hyatt]], [[CCC]],  March 08, 2011</ref>:
 
[[Robert Hyatt]] on the distinction between [[Node Types#ALL|ALL-]] and [[Node Types#CUT|CUT-nodes]] <ref>[http://www.talkchess.com/forum/viewtopic.php?topic_view=threads&p=398061&t=38317 Re: "CUT" vs "ALL" nodes] by [[Robert Hyatt]], [[CCC]],  March 08, 2011</ref>:
 
  In [[Cray Blitz|CB]], I used this extensively, because you never want to split at a CUT node, and want to prefer an ALL node. [[Young Brothers Wait Concept|YBW]] tries to recognize an ALL node by requiring that at least one move be searched before splitting, since > 90% of CUT nodes are discovered on the first move searched. But waiting on that first move introduces some wait time, and if you knew it was an ALL node from the get-go, you could split before the first move is completed. That was the basic premise behind the iterated search and [[Dynamic Tree Splitting|DTS algorithm]] in Cray Blitz ...  
 
  In [[Cray Blitz|CB]], I used this extensively, because you never want to split at a CUT node, and want to prefer an ALL node. [[Young Brothers Wait Concept|YBW]] tries to recognize an ALL node by requiring that at least one move be searched before splitting, since > 90% of CUT nodes are discovered on the first move searched. But waiting on that first move introduces some wait time, and if you knew it was an ALL node from the get-go, you could split before the first move is completed. That was the basic premise behind the iterated search and [[Dynamic Tree Splitting|DTS algorithm]] in Cray Blitz ...  
  
=See also=
+
=See also=
 
* [[Alpha-Beta]]
 
* [[Alpha-Beta]]
 +
* [[Stephen F. Wheeler#Alpha-Beta Benchmark|Alpha-Beta Benchmark]] by [[Stephen F. Wheeler]]
 
* [[Enhanced Forward Pruning]]
 
* [[Enhanced Forward Pruning]]
 
* [[Internal Iterative Deepening]]
 
* [[Internal Iterative Deepening]]
Line 171: Line 92:
  
 
=Selected Publications=
 
=Selected Publications=
* [[Donald Knuth|Donald E. Knuth]] and Ronald W. Moore ('''1975'''). ''An analysis of alpha-beta pruning.'' Artificial Intelligence, 6:293–326, 1975. Reprinted in [http://www-cs-faculty.stanford.edu/%7Eknuth/aa.html Selected Papers on Analysis of Algorithms] by Donald E. Knuth, Published 2000, by Addison-Wesley ISBN: 1-57585-211-5
+
*[[Donald Knuth]],  [http://www.informatik.uni-trier.de/~ley/pers/hd/m/Moore:Ronald_W= Ronald W. Moore] ('''1975'''). ''[http://www.scribd.com/doc/28194932/An-Analysis-of-Alpha-Beta-Pruning An analysis of alpha-beta pruning].'' [https://en.wikipedia.org/wiki/Artificial_Intelligence_%28journal%29 Artificial Intelligence], Vol. 6, No. 4, pp 293–326. Reprinted in [[Donald Knuth]] ('''2000'''). ''[http://www-cs-faculty.stanford.edu/~uno/aa.html Selected Papers on Analysis of Algorithms]''.  [http://web.stanford.edu/group/cslipublications/cslipublications/site/CSIN.shtml CSLI lecture notes series] 102, ISBN 1-57586-212-3
 
* [[Igor Roizen]] ('''1981'''). ''On the Average Number of Terminal Nodes examined by Alpha-Beta''. Technical Report UCLA-ENG-CSL-8108, [https://en.wikipedia.org/wiki/University_of_California,_Los_Angeles University of California at Los Angeles], Cognitive Systems Laboratory  
 
* [[Igor Roizen]] ('''1981'''). ''On the Average Number of Terminal Nodes examined by Alpha-Beta''. Technical Report UCLA-ENG-CSL-8108, [https://en.wikipedia.org/wiki/University_of_California,_Los_Angeles University of California at Los Angeles], Cognitive Systems Laboratory  
 
* [[Judea Pearl]] ('''1982'''). ''The Solution for the Branching Factor of the Alpha-Beta Pruning Algorithm and its Optimality''. [[ACM#Communications|Communications of the ACM]], Vol. 25, No. 8, pp. 559-564
 
* [[Judea Pearl]] ('''1982'''). ''The Solution for the Branching Factor of the Alpha-Beta Pruning Algorithm and its Optimality''. [[ACM#Communications|Communications of the ACM]], Vol. 25, No. 8, pp. 559-564
Line 180: Line 101:
 
==2000 ...==
 
==2000 ...==
 
* [https://www.stmintz.com/ccc/index.php?id=285939 ALL node definition] by [[Alvaro Cardoso]], [[CCC]], February 21, 2003
 
* [https://www.stmintz.com/ccc/index.php?id=285939 ALL node definition] by [[Alvaro Cardoso]], [[CCC]], February 21, 2003
* [https://www.stmintz.com/ccc/index.php?id=354012 Fruit - Question for Fabien] by [[Dan Honeycutt]], [[CCC]], March 11, 2004 » [[Fruit]], [[Transposition Table]], [[Principal variation]], [[Principal Variation Search]]
+
* [https://www.stmintz.com/ccc/index.php?id=354012 Fruit - Question for Fabien] by [[Dan Honeycutt]], [[CCC]], March 11, 2004 » [[Fruit]], [[Transposition Table]], [[Principal Variation]], [[Principal Variation Search]]
 
: [https://www.stmintz.com/ccc/index.php?id=354016 Re: Fruit - Question for Fabien] by [[Fabien Letouzey]], [[CCC]], March 11, 2004
 
: [https://www.stmintz.com/ccc/index.php?id=354016 Re: Fruit - Question for Fabien] by [[Fabien Letouzey]], [[CCC]], March 11, 2004
 
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=171&start=143 Re: Attack table] by [[Zach Wegner]], [[Computer Chess Forums|Winboard Forum]], October 22, 2004 » [[Attack and Defend Maps]]
 
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=171&start=143 Re: Attack table] by [[Zach Wegner]], [[Computer Chess Forums|Winboard Forum]], October 22, 2004 » [[Attack and Defend Maps]]
Line 203: Line 124:
 
* [http://www.talkchess.com/forum/viewtopic.php?t=59682 Recognizing PV nodes] by [[Martin Fierz]], [[CCC]], March 29, 2016
 
* [http://www.talkchess.com/forum/viewtopic.php?t=59682 Recognizing PV nodes] by [[Martin Fierz]], [[CCC]], March 29, 2016
 
* [http://www.talkchess.com/forum/viewtopic.php?t=62890 What is wrong with doing Nulls & ttcuts in a pv node ?] by [[Mahmoud Uthman]], [[CCC]], January 21, 2017 » [[Null Move Pruning]], [[Node Types#PV|PV-Nodes]], [[Transposition Table]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=62890 What is wrong with doing Nulls & ttcuts in a pv node ?] by [[Mahmoud Uthman]], [[CCC]], January 21, 2017 » [[Null Move Pruning]], [[Node Types#PV|PV-Nodes]], [[Transposition Table]]
* [http://www.talkchess.com/forum/viewtopic.php?t=65477 cut nodes] by [[Folkert van Heusden]], [[CCC]], October 18, 2017 » [[Node Types#CUT|Cut-Nodes]]
+
* [http://www.talkchess.com/forum/viewtopic.php?t=65477 cut nodes] by [[Folkert van Heusden]], [[CCC]], October 18, 2017 » [[#CUT|Cut-Nodes]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=69510 Pruning at PV nodes?] by [[Mahmoud Uthman]], [[CCC]], January 06, 2019 » [[Pruning]], [[#PV|PV-Nodes]]
  
 
=External Links=
 
=External Links=
Line 210: Line 132:
 
=References=  
 
=References=  
 
<references />  
 
<references />  
 
 
'''[[Node|Up one Level]]'''
 
'''[[Node|Up one Level]]'''
 +
[[Category:Hyatt Quotes]]

Revision as of 14:16, 8 January 2020

Home * Search * Node * Node Types

Node Types [1]

Node Types are classifications of nodes as expected inside a minimal alpha-beta tree, or as determined by the search. These types were first formulated by Donald Knuth and Ronald Moore when describing the alpha-beta algorithm [2] and further analyzed by Judea Pearl [3]. While Knuth used the terms Type 1, 2, and 3, Tony Marsland and Fred Popowich introduced the more descriptive terms PV-, Cut- and All-nodes [4] [5].

Node types as established by the search are stored inside the transposition table, indicating whether the score is either exact, lower or upper bounded. Expected node types, as determined by tree topology, probing the transposition table, or comparing scores of a static evaluation considering threats, or even a reduced search or quiescence search, with the bounds, may be considered by various (parallel) search algorithms and in decisions concerning selectivity.

PV-Nodes

PV-nodes (Knuth's Type 1) are nodes that have a score that ends up being inside the window. So if the bounds passed are [a,b], with the score returned s, a<s<b. These nodes have all moves searched, and the value returned is exact (i.e., not a bound), which propagates up to the root along with a principal variation.

Cut-Nodes

Cut-nodes (Knuth's Type 2), otherwise known as fail-high nodes, are nodes in which a beta-cutoff was performed. So with bounds [a,b], s>=b. A minimum of one move at a Cut-node needs to be searched. The score returned is a lower bound (might be greater) on the exact score of the node

  • In Principal Variation Search Cut-nodes are searched with null windows
  • The child of a Cut-node is an All-node
  • The parent of a Cut-node is either a PV- or All-node
  • The ply distance of a Cut-node to its PV-ancestor is odd

All-Nodes

All-nodes (Knuth's Type 3), otherwise known as fail-low nodes, are nodes in which no move's score exceeded alpha. With bounds [a,b], s<=a. Every move at an All-node is searched, and the score returned is an upper bound, the exact score might be less.

  • In Principal Variation Search All-nodes are searched with null windows
  • The children of an All-node are Cut-nodes
  • The parent of an All-node is a Cut-node
  • The ply distance of an All-node to its PV-ancestor is even

Node Types in PVS

Onno

Onno by Onno Garms determines expected node types, beside other things, to perform IID not only at PV-nodes but also at expected Cut-nodes. Onno Garms gave the following rules [6]

  • The root node is a PV-node
  • The first child of a PV-node is a PV-node
  • The further children are searched by a scout search as CUT-nodes
  • PVS re-search is done as PV-node
  • The first node of bad pruning is a CUT-node
  • The node after a null move is a CUT-node
  • The first node of null move verification is a CUT-node
  • Internal iterative deepening does not change the node type
  • The first child of a CUT-node is an ALL-node
  • Further children of a CUT-node are CUT-nodes
  • Children of ALL-nodes are CUT-nodes

Summary

Following summary was given by Pradu Kannan similar to Onno's definition as an attempt to predict the node type before searching the node by assuming reasonably good move ordering on PV-nodes and Cut-nodes [7]:

  • The root node is a PV-node
  • The first child of a PV-node is a PV-node
  • Children of PV-nodes that are searched with a zero-window scout search are Cut-nodes
  • Children of PV-nodes that have to be re-searched because the scout search failed high, are PV-nodes
  • The first child of a Cut-node, and other candidate cutoff moves (nullmove, killers, captures, checks, ...) is an All-node
  • A Cut-node becomes an All-node once the first and all candidate cutoff moves are searched
  • Children of All-nodes are Cut-nodes

Number of Leaf Nodes

Formulas

As emphasized by Daniel Shawul [8], the formulas for the number of leaf nodes of a certain Node type with uniform depth n and branching factor b, using floor and ceiling of n/2 (cut the ceiling, all the floor) ...

PV  = 1
CUT = b⌈n/2⌉ - 1
ALL = b⌊n/2⌋ - 1

... are already the subexpressions ...

L = PV + CUT + ALL 

... in Levin's famous formula demonstrating the odd-even effect of alpha-beta

L = b⌈n/2⌉ + b⌊n/2⌋ - 1

Table

Assuming a constant branching factor of 40, this results in following number of leaves:

number of leaves with depth n and b = 40
depth worst case best case PV CUT ALL
n bn b⌈n/2⌉ + b⌊n/2⌋ - 1 1 b⌈n/2⌉ - 1 b⌊n/2⌋ - 1
0 1 1 1 0 0
1 40 40 1 39 0
2 1,600 79 1 39 39
3 64,000 1,639 1 1,599 39
4 2,560,000 3,199 1 1,599 1,599
5 102,400,000 65,569 1 63,999 1,599
6 4,096,000,000 127,999 1 63,999 63,999
7 163,840,000,000 2,623,999 1 2,559,999 63,999
8 6,553,600,000,000 5,119,999 1 2,559,999 2,559,999

Quotes

Robert Hyatt on the distinction between ALL- and CUT-nodes [9]:

In CB, I used this extensively, because you never want to split at a CUT node, and want to prefer an ALL node. YBW tries to recognize an ALL node by requiring that at least one move be searched before splitting, since > 90% of CUT nodes are discovered on the first move searched. But waiting on that first move introduces some wait time, and if you knew it was an ALL node from the get-go, you could split before the first move is completed. That was the basic premise behind the iterated search and DTS algorithm in Cray Blitz ... 

See also

Selected Publications

Forum Posts

2000 ...

Re: Fruit - Question for Fabien by Fabien Letouzey, CCC, March 11, 2004

2005 ...

2010 ...

2015 ...

External Links

References

  1. Analysis of Alpha-Beta Pruning from the Parallel Computing Works ebook
  2. Donald Knuth, Ronald W. Moore (1975). An analysis of alpha-beta pruning. Artificial Intelligence, Vol. 6, No. 4, pp 293–326. Reprinted in Donald Knuth (2000). Selected Papers on Analysis of Algorithms. CSLI lecture notes series 102, ISBN 1-57586-212-3
  3. Judea Pearl (1982). The Solution for the Branching Factor of the Alpha-Beta Pruning Algorithm and its Optimality. Communications of the ACM, Vol. 25, No. 8, pp. 559-564
  4. Mark Winands, Jaap van den Herik, Jos Uiterwijk, Erik van der Werf (2003). Enhanced forward pruning. pdf
  5. Tony Marsland, Fred Popowich (1985). Parallel Game-Tree Search. IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 7, No. 4, pp. 442-452. 1984 pdf (Draft)
  6. Re: On internal iterative deeping by Onno Garms, CCC, March 17, 2011
  7. Re: On internal iterative deeping by Don Dailey, CCC, March 15, 2011
  8. CUT/ALL nodes ratio by Daniel Shawul, CCC, June 06, 2013
  9. Re: "CUT" vs "ALL" nodes by Robert Hyatt, CCC, March 08, 2011

Up one Level