cn and pn tree search algorithms n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CN and PN Tree Search Algorithms PowerPoint Presentation
Download Presentation
CN and PN Tree Search Algorithms

Loading in 2 Seconds...

play fullscreen
1 / 52

CN and PN Tree Search Algorithms - PowerPoint PPT Presentation


  • 138 Views
  • Uploaded on

CN and PN Tree Search Algorithms. Like B*, the “Conspiracy Number” (CN) and “Proof Number” (PN) algorithms Expand one node at a time, at any point on the fringe of a game tree , Generate all child nodes - consider all moves - as part of node expansion.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CN and PN Tree Search Algorithms' - gayora


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cn and pn tree search algorithms
CN and PN Tree Search Algorithms
  • Like B*, the “Conspiracy Number” (CN) and “Proof Number” (PN) algorithms
  • Expand one node at a time, at any point on the fringe of a game tree,
  • Generate all child nodes - consider all moves - as part of node expansion.
      • Selective node expansion  Selective move generation

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

cn and pn tree search algorithms1
CN and PN Tree Search Algorithms
  • Like B*, the “Conspiracy Number” (CN) and “Proof Number” (PN) algorithms
  • Expand one node at a time, at any point on the fringe of a game tree,
  • Generate all child nodes - consider all moves - as part of node expansion.
      • Selective node expansion  Selective move generation

1st

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

cn and pn tree search algorithms2
CN and PN Tree Search Algorithms
  • Like B*, the “Conspiracy Number” (CN) and “Proof Number” (PN) algorithms
  • Expand one node at a time, at any point on the fringe of a game tree,
  • Generate all child nodes - consider all moves - as part of node expansion.
      • Selective node expansion  Selective move generation

1st

2nd

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

cn and pn tree search algorithms3
CN and PN Tree Search Algorithms
  • Like B*, the “Conspiracy Number” (CN) and “Proof Number” (PN) algorithms
  • Expand one node at a time, at any point on the fringe of a game tree,
  • Generate all child nodes - consider all moves - as part of node expansion.
      • Selective node expansion  Selective move generation

1st

2nd

3rd

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

cn and pn tree search algorithms4
CN and PN Tree Search Algorithms
  • Like B*, the “Conspiracy Number” (CN) and “Proof Number” (PN) algorithms
  • Expand one node at a time, at any point on the fringe of a game tree,
  • Generate all child nodes - consider all moves - as part of node expansion.
      • Selective node expansion  Selective move generation

1st

2nd

4th

3rd

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

cn and pn tree search algorithms5
CN and PN Tree Search Algorithms
  • Like B*, the “Conspiracy Number” (CN) and “Proof Number” (PN) algorithms
  • Expand one node at a time, at any point on the fringe of a game tree,
  • Generate all child nodes - consider all moves - as part of node expansion.
      • Selective node expansion  Selective move generation

1st

2nd

4th

3rd

5th

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

cn and pn tree search algorithms6
CN and PN Tree Search Algorithms
  • Like B*, the “Conspiracy Number” (CN) and “Proof Number” (PN) algorithms
  • Expand one node at a time, at any point on the fringe of a game tree,
  • Generate all child nodes - consider all moves - as part of node expansion.
      • Selective node expansion  Selective move generation

1st

2nd

4th

6th

3rd

5th

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

deeper search gives better results
Deeper Search gives better results
  • Experience with computer chess shows that deeper search gives better play.
  • Programs that can search one extra ply of game tree do gain advantage from it.
  • A static evaluator gives an estimate of a position’s worth.
  • Evaluation of a parent node should be not very unlike the backed-up minimax evaluation of child nodes: the correlation should be good.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

deeper search gives better results1
Deeper Search gives better results
  • Experience with computer chess shows that deeper search gives better play.
  • Programs that can search one extra ply of game tree do gain advantage from it.
  • A static evaluator gives an estimate of a position’s worth.
  • Evaluation of a parent node should be not very unlike the backed-up minimax evaluation of child nodes: the correlation should be good.
  • But the child nodes will be a little closer to the game’s end,
  • A static evaluator gets to see the resulting position(s) of playing out any immediate threat(s)

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

deeper search gives better results2
Deeper Search gives better results
  • Experience with computer chess shows that deeper search gives better play.
  • Programs that can search one extra ply of game tree do gain advantage from it.
  • A static evaluator gives an estimate of a position’s worth.
  • Evaluation of a parent node should be not very unlike the backed-up minimax evaluation of child nodes: the correlation should be good.
  • But the child nodes will be a little closer to the game’s end,
  • A static evaluator gets to see the resulting position(s) of playing out any immediate threat(s)
    • Minimaxing one or more levels of game subtree can and frequently does give a result different to static evaluation of the node at the root of the subtree.
    • That is of course why search and minimaxing are performed!

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

conspiracy numbers
Conspiracy Numbers
  • An interior node of a game tree derives its current value from minimax of the part of the game tree beneath it.
    • The subtree beneath an interior node need not be expanded to uniform depth: alpha-beta, null-move quiescence, B* … all expand trees nonuniformly.
  • If a leaf node is expanded, its backed-up minimax value might not be the same as its statically evaluated value.
    • i.e. its value might change
  • … and if its value does change, that might or might not be enough to cause a change of its parent’s value, and so on up the tree.
  • So: how many leaf nodes would have to change together - have to conspire - to cause the value of an interior node to change to some particular other value?

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

conspiracy numbers simple case

A: (max) 4

B: (min) 4

C: (min) 2

D: (max) 7

E: (max) 4

F: (max) 2

G: (max) 3

Conspiracy Numbers - Simple Case
  • For A to get the value 5 6 or 7, just 1 node - E - would have to change.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

conspiracy numbers simple case1

A: (max) 4

B: (min) 4

C: (min) 2

D: (max) 7

E: (max) 4

F: (max) 2

G: (max) 3

Conspiracy Numbers - Simple Case
  • For A to get the value 5 6 or 7, just 1 node - E - would have to change.
  • For A to get the value 8 (… +), requires conspiracy of size 2: D&E, or F&G.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

conspiracy numbers simple case2

A: (max) 4

B: (min) 4

C: (min) 2

D: (max) 7

E: (max) 4

F: (max) 2

G: (max) 3

Conspiracy Numbers - Simple Case
  • For A to get the value 5 6 or 7, just 1 node - E - would have to change.
  • For A to get the value 8 (… +), requires conspiracy of size 2: D&E, or F&G.
  • For A to get the value 4, 0 nodes have to change.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

conspiracy numbers simple case3

A: (max) 4

B: (min) 4

C: (min) 2

D: (max) 7

E: (max) 4

F: (max) 2

G: (max) 3

Conspiracy Numbers - Simple Case
  • For A to get the value 5 6 or 7, just 1 node - E - would have to change.
  • For A to get the value 8 (… +), requires conspiracy of size 2: D&E, or F&G.
  • For A to get the value 4, 0 nodes have to change.
  • For A to get the value 1 (… -), 2 nodes (D or E, & F or G) have to change.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

range of likely values
Range of likely values
  • For a root node, and indeed for any interior node generally,
    • possible values increasinglygreaterthan the current value require progressively larger conspiracies

likewise,

    • possible values increasinglylessthan the current value require progressively larger conspiracies
    • With a limit on the size of conspiracy, there follow bounds on the range of values that the root node could have.
    • Conspiracies beyond a certain size may be regarded as not likely.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

conspiracies of unlikely size
Conspiracies of unlikely size
  • Values for A of less than 1, or more than 3, require two or more conspirators.
  • Values for A of less than 0, or more than 4, require three or more conspirators.
  • For a given threshold, we derive bounds on the range of likely values for A.

A:+2

Max-ing level

B:+2

C:+0

D:+1

Min-ing level

E:+3

F:+2

G:+4

H:+0

I:+2

J:+2

K:+1

L:+2

M:+2

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

cn tree growth procedure
CN Tree Growth Procedure
    • Pick a desired accuracy, , to limit the accepted range (VMAX-VMIN) of likely values of the root node; The smaller , the bigger the tree will get.
    • Pick a conspiracy threshold, NT, to determine what size of conspiracies are deemed sufficiently likely; The greater NT, the bigger the tree will get.
  • The procedure seeks to narrow the range of sufficiently-likely values of the root until that range has the desired accuracy.
  • This can be attempted
    • By ruling out the largest of the current likely values, VMAX
    • Or by ruling out the smallest of the current likely values, VMIN
  • Nondeterministically, select any node in (one of) the minimal conspiracy set(s) for ruling out either VMAX or VMIN, whichever is further from current value V.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

how big is the minimal conspiracy set
How big is the minimal conspiracy set?
  • Upsize (node, target)
  • if node.value ≥ target
  • then return 0
  • elseif [node is terminal in the game]
  • then return +
  • elseif [node is leaf node]
  • then return 1
  • elseif [node is maxing node]
  • then return [min value of Upsize(child, target)
  • where child in node.children]
  • else return [sum values of Upsize(child, target)
  • where child in node.children]

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

how big is the minimal conspiracy set1
How big is the minimal conspiracy set?
  • Downsize (node, target)
  • if node.value ≤ target
  • then return 0
  • elseif [node is terminal in the game]
  • then return +
  • elseif [node is leaf node]
  • then return 1
  • elseif [node is mining node]
  • then return [min value of Downsize(child, target)
  • where child in node.children]
  • else return [sum values of Downsize(child, target)
  • where child in node.children]

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

any node in a minimal conspiracy set will do
Any node in a minimal conspiracy set will do.
  • Consider hoping to rule out VMAX, which must be > current V.
  • MIN-LEAF(node,Vmax)
  • if [node is a leaf node]
  • then Return node
  • elseif [node is a MAX-ing node]
  • then [Return MIN-LEAF(c,Vmax)
  • where c is child minimising Upsize(child, Vmax)]
  • else [Quals := children of node with Value<Vmax;
  • pick one, call it C1;
  • Return MIN-LEAF(C1,Vmax)]

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

any node in a minimal conspiracy set will do1
Any node in a minimal conspiracy set will do.
  • Consider hoping to rule out VMIN, which must be < current V.
  • MAX-LEAF(node,Vmin)
  • if [node is a leaf node]
  • then Return node
  • elseif [node is a MIN-ing node]
  • then [Return MAX-LEAF(c,Vmin)
  • where c is child minimising Downsize(child, Vmin)]
  • else [Quals := children of node with Value>Vmin;
  • pick one, call it C1;
  • Return MAX-LEAF(C1,Vmin)]

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 2
Tree Growth example: =0 NT=2

name

A 0

[-∞..]

max-ing

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 21
Tree Growth example: =0 NT=2

name

A 1 (0)

[0..]

Static evaluation score

max-ing

C 0

B 1

D 0

min-ing

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 22
Tree Growth example: =0 NT=2

A 0 (0)

[0..]

Static evaluation score

max-ing

C 0

B 0 (1)

[-..1]

D 0

min-ing

G 1

E 0

F 1

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 23

K 0

L 0

M 0

N 0

H -1

J 0

Tree Growth example: =0 NT=2

A 0 (0)

[-1..+1]

Static evaluation score

max-ing

C -1(0)

[-..0]

B 0 (1)

[-..1]

D 0 (0)

[-..0]

min-ing

G 1

E 0

F 1

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 24

K 0

L 0

M 0

N 0

H -1

J 0

Tree Growth example: =0 NT=2

A 0 (0)

[-1..+1]

Static evaluation score

max-ing

C -1(0)

[-..0]

B 0 (1)

[-..1]

D 0 (0)

[-..0]

min-ing

G 1

E 0

F 1

Bringing any of {E F G} and any of {L M N} to -1 or less would bring B & D to -1 or less, and A to -1

Raising E to 1 or more would bring B & A to 1

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 25

K 0

L 0

M 0

N 0

H -1

J 0

Tree Growth example: =0 NT=2

A 0 (0)

[-1..+1]

Static evaluation score

max-ing

C -1(0)

[-..0]

B 0 (1)

[-..1]

D 0 (0)

[-..0]

min-ing

G 1

E 0

F 1

range.max and range.min are equally far from current value, arbitrarily pick range.min to rule out next.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 26

K 0

L 0

M 0

N 0

H -1

J 0

O 3

P 0

Q 0

Tree Growth example: =0 NT=2

A 1 (0)

[-1..3]

Static evaluation score

max-ing

C -1(0)

[-..0]

B 1 (1)

[-..3]

D 0 (0)

[-..0]

min-ing

G 1

E 3 (0)

[0…]

F 1

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 27

K 0

L 0

M 0

N 0

H -1

J 0

R 2

S 1

T 1

O 3

P 0

Q 0

Tree Growth example: =0 NT=2

A 1 (0)

[-1..3]

Static evaluation score

max-ing

C -1(0)

[-..0]

B 1 (1)

[-..3]

D 0 (0)

[-..0]

min-ing

G 1

E 3 (0)

[0…]

F 2 (1)

[1…]

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 28

K 0

L 0

M 0

N 0

H -1

J 0

U 1

V 1

W 1

R 2

S 1

T 1

O 3

P 0

Q 0

Tree Growth example: =0 NT=2

A 1 (0)

[0..3]

Static evaluation score

max-ing

C -1(0)

[-..0]

B 1 (1)

[0..3]

D 0 (0)

[-..0]

min-ing

G 1 (1)

[1..]

E 3 (0)

[0…]

F 2 (1)

[1…]

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 29

K 0

L 0

M 0

N 0

H -1

J 0

U 1

V 1

W 1

R 2

S 1

T 1

O 3

P 0

Q 0

Tree Growth example: =0 NT=2

A 1 (0)

[0..3]

Static evaluation score

max-ing

C -1(0)

[-..0]

B 1 (1)

[0..3]

D 0 (0)

[-..0]

min-ing

G 1 (1)

[1..]

E 3 (0)

[0…]

F 2 (1)

[1…]

Raising any of {R S T} and any of {U V W} to 3 or beyond allows max value 3 for A

Reducing to 0 or beyond allows min value 0 for A

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 210

K 0

L 0

M 0

N 0

H -1

J 0

U 1

V 1

W 1

R 2

S 1

T 1

O 3

P 0

Q 0

Tree Growth example: =0 NT=2

A 1 (0)

[0..3]

Static evaluation score

max-ing

C -1(0)

[-..0]

B 1 (1)

[0..3]

D 0 (0)

[-..0]

min-ing

G 1 (1)

[1..]

E 3 (0)

[0…]

F 2 (1)

[1…]

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

tree growth example 0 n t 211

K 0

L 0

M 0

N 0

H -1

J 0

U 1

V 1

W 1

R 2

S 1

T 1

O 3

P 0

Q 0

Tree Growth example: =0 NT=2

A 1 (0)

[1..1]

max-ing

C -1(0)

[-..]

B 1 (1)

[..]

D 0 (0)

[..]

min-ing

G 1 (1)

[..]

E 3 (0)

[…]

F 2 (1)

[…]

The tree grows non-uniformly until eventually the range of likely values at the root node is -or-less in width

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

calculating ranges of likely values
Calculating ranges of likely values
  • Each node in an expanded tree is either
    • A Game-Terminal node, whose value cannot be changed
    • A Non-Game-Terminal node (hereinafter a NGT node), which is either
      • an expanded interior node, whose value could be changed by a conspiracy among nodes in its subtree
      • an unexpanded leaf node, whose value could be changed without limit by expanding the node and finding the value of just one child.
  • NGT nodes can be associated with two bounds sequences:
  • An ascending bounds sequence,
    • being a sequence of nondecreasing limiting values which could be achieved with successively larger conspiracies, starting at the node’s current value and going perhaps to infinity
  • A descending bounds sequence, … nonincreasing … minus infinity

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

bounds sequences contain descendant node values perhaps
Bounds Sequences contain descendant node values & perhaps ±
  • A NGT leaf node, whether a max or a min node, with current value V0,
    • needs no conspiracy to achieve its current value V0,
    • needs only itself to change to have value + itself
    • its ascending bounds sequence is therefore {V0, +}
  • A NGT interior node, if a max node with current value V0,
    • needs no conspiracy to achieve its current value V0, (which must be the current value of at least one of the children)
    • can achieve any greater value that any of its child nodes may achieve with the same conspiracy as that child node needs
    • its ascending bounds sequence {V0, V1 … Vn} consists of those Vj which are maximal for its children’s ascending bounds sequences, or Vj-1 if greater

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

bounds sequences contain descendant node values perhaps1
Bounds Sequences contain descendant node values & perhaps ±
  • A NGT interior node, if a min node with current value V0,
    • needs no conspiracy to achieve its current value V0, (which must be the current value of at least one of the children)
    • can achieve any greater value that any of its child nodes may achieve only when all its child nodes have achieved at least that value
    • its ascending bounds sequence {V0, V1 … Vn} consists of all Vj which are elements of its children’s ascending bounds sequences, sorted into ascending order, with duplicates retained, but stopping at the lowest maximum value.
  • A game terminal node with current value V0, cannot have any other value
    • its ascending bounds sequence is {V0}
  • Descending bounds sequences can be calculated in very similar fashion
    • greater  lesser, min  max, +  -, ascending  descending

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

calculating ascending bounds sequences top down
Calculating ascending bounds sequences (top-down)
  • (defun AscSeq (node)
  • (cond
  • ((GameTerminalP node)
  • (list (NodeValue node)))
  • ((UnExpandedP node)
  • (list (NodeValue node) +))
  • ((MaxP node)
  • (AscSeqMax
  • (NodeValue node)
  • (mapcar #’AscSeq (NodeChildren node))))
  • ((MinP node)
  • (AscSeqMin
  • (NodeValue node)
  • (mapcar #’AscSeq (NodeChildren node))))))

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

calculating ascending bounds sequences top down1
Calculating ascending bounds sequences (top-down)
  • (defun AscSeq (node)
  • (cond
  • ((GameTerminalP node)
  • (list (NodeValue node)))
  • ((UnExpandedP node)
  • (list (NodeValue node) +))
  • ((MaxP node)
  • (AscSeqMax
  • (NodeValue node)
  • (mapcar #’AscSeq (NodeChildren node))))
  • ((MinP node)
  • (AscSeqMin
  • (NodeValue node)
  • (mapcar #’AscSeq (NodeChildren node))))))

(defun AscSeqMax (minimum sequences)

(when sequences

(let ((new (reduce #’max

(mapcar #’first sequences)

:initial-value minimum)))

(cons new

(AscSeqMax new

(remove nil (mapcar #’rest sequences)))))))

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

calculating ascending bounds sequences top down2
Calculating ascending bounds sequences (top-down)
  • (defun AscSeq (node)
  • (cond
  • ((GameTerminalP node)
  • (list (NodeValue node)))
  • ((UnExpandedP node)
  • (list (NodeValue node) +))
  • ((MaxP node)
  • (AscSeqMax
  • (NodeValue node)
  • (mapcar #’AscSeq (NodeChildren node))))
  • ((MinP node)
  • (AscSeqMin
  • (NodeValue node)
  • (mapcar #’AscSeq (NodeChildren node))))))

(defun AscSeqMin (maximum sequences)

(let ((leastbest (reduce #'min

(mapcar #'(lambda (seq)

(apply #'max seq))

sequences)

:initial-value maximum)))

(sort #'<

(cons maximum

(mapcan #'(lambda (seq)

(remove leastbest seq

:test #'>))

sequences)))))

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

conspiracy numbers summary
Conspiracy Numbers: Summary
  • Search can terminate without a value for the root node being fully determined: therefore, more cheaply.
  • Game trees are grown selectively, in such a way as to maximise the size of conspiracy necessary to change the root node’s value. The trees often turn out to be deep and narrow.
  • Node values (derived from static evaluator results) may be real numbers.
  • A related algorithm, Proof Number Search, to be dealt with next, is useful in situations where an evaluator returns boolean values rather than numeric ones.
  • Reference: McAllester, D.A. Conspiracy Numbers for Min-Max Search
  • Artificial Intelligence 35 (1988) 287-310

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

cn and pn tree search algorithms7
CN and PN Tree Search Algorithms

Reprise

  • Like B*, the “Conspiracy Number” (CN) and “Proof Number” (PN) algorithms
  • Expand one node at a time, at any point on the fringe of a game tree,
  • Generate all child nodes - consider all moves - as part of node expansion.
      • Selective node expansion  Selective move generation

“Proof Number” (PN) algorithms

1st

2nd

4th

6th

3rd

5th

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

deeper search gives better results3
Deeper Search gives better results
  • Experience with computer chess shows that deeper search gives better play.
  • Programs that can search one extra ply of game tree do gain advantage from it.
  • A static evaluator gives an estimate of a position’s worth.
  • These might be used in chess, for example to determine whether opponent Queen can be captured for less than the cost of Rook+Pawn;
  • Or in Go, to determine for example whether a group can be given two eyes in fewer than 15 moves.

But game trees with numeric valuations are not the only game trees in town:

There are also AND-OR trees with boolean valuations.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

and or tree simple case
And/Or Tree - Simple Case

A: (or) T

B: (and) T

C: (and) ?

D: (or) T

E: (or) T

F: (or) T

G: (or) ?

If all children of a parent AND node are true,

then the parent is true.

If any child of a parent OR node is true,

then the parent is true.

red indicates a leaf node whose value can be known directly

H: (and) F

I: (and) T

J: (or) F

K: (or) ?

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

adaptation of conspiracy number search
Adaptation of Conspiracy Number Search
  • The essential purpose of conspiracy number search is to reduce the search effort necessary to establish the value of a root node. It does this by
  • selectively expanding leaf nodes at the frontier of a game tree
    • focusing effort on those nodes most likely to make a difference
    • therefore not necessarily expanding some or all other nodes at a level
  • optionally, allowing some uncertainty in the value computed
  • Proof number search adapts the first of these to the boolean-value case:
    • Selectively expanding those leaf nodes likely to give an answer most cheaply

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

proof and disproof numbers
Proof and Disproof numbers
  • Each node in an and/or tree is adorned with two numbers:
  • its proof number
    • the minimum number of dominated leaf nodes that would have to be evaluated to provide the value true
    • A node already known to have value true needs 0 more leaf nodes evaluated to be shown to be true: its proof number is therefore 0
    • A node already known to have value false cannot be shown to be true no matter how many leaf nodes are evaluated: its proof number is therefore 
  • its disproof number
    • the minimum number of dominated leaf nodes that would have to be evaluated to provide the value false
    • similarly, already-false nodes have disproof number 0
    • already-true nodes have disproof number 

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

calculating proof disproof numbers
Calculating proof & disproof numbers

For a leaf node:

if the value is known to be true, then its P# := 0 D# := 

if the value is known to be false, then its P# :=  D# := 0

if the value is not known, then its P# := 1 D# := 1

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

calculating proof disproof numbers1
Calculating proof & disproof numbers

For a leaf node:

if the value is known to be true, then its P# := 0 D# := 

if the value is known to be false, then its P# :=  D# := 0

if the value is not known, then its P# := 1 D# := 1

For an interior AND node:

its P# := sum of its children’s P#s

its D# := min of its children’s D#s

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

calculating proof disproof numbers2
Calculating proof & disproof numbers

For a leaf node:

if the value is known to be true, then its P# := 0 D# := 

if the value is known to be false, then its P# :=  D# := 0

if the value is not known, then its P# := 1 D# := 1

For an interior AND node:

its P# := sum of its children’s P#s

its D# := min of its children’s D#s

For an interior OR node:

its P# := min of its children’s P#s

its D# := sum of its children’s D#s

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

calculating proof disproof numbers3
Calculating proof & disproof numbers

For a leaf node:

if the value is known to be true, then its P# := 0 D# := 

if the value is known to be false, then its P# :=  D# := 0

if the value is not known, then its P# := 1 D# := 1

For an interior AND node:

its P# := sum of its children’s P#s

its D# := min of its children’s D#s

For an interior OR node:

its P# := min of its children’s P#s

its D# := sum of its children’s D#s

When a leaf node with unknown value is expanded,

calculate its new P# and D# according to the above

recursively, when a node’s P# or D# changes, recompute its parent’s P# and/or D# too.

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

most proving node
Most Proving Node
  • The simplest game tree contains just an unexpanded root node, either AND or OR, with P#=D#=1.
  • “Proof” proceeds by repeatedly picking the ‘most proving node’ in the tree - the leaf node that offers prospect of contributing to a proof (/disproof) most quickly.
    • At an interior AND node, pick the child with least D#
    • At an interior OR node, pick the child with least P#
    • When a leaf node has been expanded (and so has become an interior node), changes to its P# and D# may ripple up the tree.
    • At any ancestor where P# and D# do not change, the rippling stops.
    • The most proving node for the next iteration will be found in the subtree dominated by such an ancestor (or the root if no such ancestor)

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles

the cost of the savings
The cost of the savings
  • Proof Number Search aims to achieve fast solutions in boolean-valued game trees, by concentrating effort on parts of the tree where the number of nodes needing to be expanded is likely to be least.
    • As with other selective game-tree search algorithms, “jumping around the tree” may require the repeated reconstruction of interior nodes of the tree.
    • The computational cost of this may outweigh the savings from expanding and evaluating a lesser number of distinct nodes.
    • Handling transpositions in PN search is a difficulty
  • Reference:
  • Allis, van der Meulen, van den Herik (1994). Proof-Number Search. Artificial Intelligence v.66 no.1 pp91-124
  • http://fragrieu.free.fr/SearchingForSolutions.pdf (Allis’s PhD thesis)

http://csiweb.ucd.ie/Staff/acater/comp30260.htmlArtificial Intelligence for Games and Puzzles