* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download ppt
Survey
Document related concepts
Narrowing of algebraic value sets wikipedia , lookup
Catastrophic interference wikipedia , lookup
Philosophy of artificial intelligence wikipedia , lookup
History of artificial intelligence wikipedia , lookup
Ethics of artificial intelligence wikipedia , lookup
The Talos Principle wikipedia , lookup
Rete algorithm wikipedia , lookup
Intelligence explosion wikipedia , lookup
Existential risk from artificial general intelligence wikipedia , lookup
Transcript
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/comp4031.html Artificial Intelligence for Games and Puzzles 1 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/comp4031.html Artificial Intelligence for Games and Puzzles 2 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/comp4031.html Artificial Intelligence for Games and Puzzles 3 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/comp4031.html Artificial Intelligence for Games and Puzzles 4 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 4th 2nd 3rd http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 5 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 4th 2nd 3rd 5th http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 6 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/comp4031.html Artificial Intelligence for Games and Puzzles 7 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 not be very unlike the backed-up minimax evaluation of child nodes: the correlation should be good. http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 8 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 not be 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/comp4031.html Artificial Intelligence for Games and Puzzles 9 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 not be 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/comp4031.html Artificial Intelligence for Games and Puzzles 10 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/comp4031.html Artificial Intelligence for Games and Puzzles 11 Conspiracy Numbers - Simple Case A: (max) 4 B: (min) 4 D: (max) 7 C: (min) 2 E: (max) 4 F: (max) 2 G: (max) 3 •For A to get the value 5 6 or 7, just 1 node - E - would have to change. http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 12 Conspiracy Numbers - Simple Case A: (max) 4 B: (min) 4 D: (max) 7 C: (min) 2 E: (max) 4 F: (max) 2 G: (max) 3 •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/comp4031.html Artificial Intelligence for Games and Puzzles 13 Conspiracy Numbers - Simple Case A: (max) 4 B: (min) 4 D: (max) 7 C: (min) 2 E: (max) 4 F: (max) 2 G: (max) 3 •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/comp4031.html Artificial Intelligence for Games and Puzzles 14 Conspiracy Numbers - Simple Case A: (max) 4 B: (min) 4 D: (max) 7 C: (min) 2 E: (max) 4 F: (max) 2 G: (max) 3 •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/comp4031.html Artificial Intelligence for Games and Puzzles 15 Range of likely values For a root node, and indeed for any interior node generally, • possible values increasingly greater than the current value require progressively larger conspiracies likewise, • possible values increasingly less than 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/comp4031.html Artificial Intelligence for Games and Puzzles 16 Conspiracies of unlikely size Max-ing level B:+2 E:+3 F:+2 Min-ing level G:+4 H:+0 A:+2 C:+0 I:+2 D:+1 J:+2 K:+1 L:+2 M:+2 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. http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 17 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/comp4031.html Artificial Intelligence for Games and Puzzles 18 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/comp4031.html Artificial Intelligence for Games and Puzzles 19 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/comp4031.html Artificial Intelligence for Games and Puzzles 20 Any node in a minimal conspiracy set will do. Consider trying to rule out VMAX, which must be greater than 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/comp4031.html Artificial Intelligence for Games and Puzzles 21 Any node in a minimal conspiracy set will do. Consider trying to rule out VMIN, which must be less than 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/comp4031.html Artificial Intelligence for Games and Puzzles 22 Tree Growth example: =0 NT=2 max-ing name A0 [0..] http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 23 Tree Growth example: =0 NT=2 max-ing B1 name A 1 (0) [0..] min-ing http://csiweb.ucd.ie/Staff/acater/comp4031.html Static evaluation score C0 D0 Artificial Intelligence for Games and Puzzles 24 Tree Growth example: =0 NT=2 A 0 (0) [0..] max-ing B 0 (1) [-..1] E0 F1 min-ing Static evaluation score C0 D0 G1 http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 25 Tree Growth example: =0 NT=2 A 0 (0) [-1..+1] max-ing B 0 (1) [-..1] E0 F1 min-ing G1 H -1 http://csiweb.ucd.ie/Staff/acater/comp4031.html Static evaluation score C -1(0) [-..0] J0 D 0 (0) [-..0] K0 L0 M0 Artificial Intelligence for Games and Puzzles N0 26 Tree Growth example: =0 NT=2 A 0 (0) [-1..+1] max-ing B 0 (1) [-..1] E0 F1 min-ing G1 H -1 Static evaluation score C -1(0) [-..0] J0 D 0 (0) [-..0] K0 L0 M0 N0 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/comp4031.html Artificial Intelligence for Games and Puzzles 27 Tree Growth example: =0 NT=2 A 0 (0) [-1..+1] max-ing B 0 (1) [-..1] E0 F1 min-ing G1 H -1 Static evaluation score C -1(0) [-..0] J0 D 0 (0) [-..0] K0 L0 M0 N0 When 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/comp4031.html Artificial Intelligence for Games and Puzzles 28 Tree Growth example: =0 NT=2 A 1 (0) [-1..3] max-ing B 1 (1) [-..3] E 3 (0) [0…] O3 min-ing F1 G1 P0 Q0 H -1 http://csiweb.ucd.ie/Staff/acater/comp4031.html Static evaluation score C -1(0) [-..0] J0 D 0 (0) [-..0] K0 L0 M0 Artificial Intelligence for Games and Puzzles N0 29 Tree Growth example: =0 NT=2 A 1 (0) [-1..3] max-ing B 1 (1) [-..3] E 3 (0) [0…] F 2 (1) [1…] min-ing G1 H -1 R2 O3 P0 Static evaluation score C -1(0) [-..0] J0 S1 D 0 (0) [-..0] K0 L0 M0 N0 T1 Q0 http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 30 Tree Growth example: =0 NT=2 A 1 (0) [0..3] max-ing B 1 (1) [0..3] E 3 (0) [0…] F 2 (1) [1…] min-ing G 1 (1) [1..] H -1 Static evaluation score C -1(0) [-..0] J0 D 0 (0) [-..0] K0 L0 U1 R2 O3 P0 S1 M0 V1 N0 W1 T1 Q0 http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 31 Tree Growth example: =0 NT=2 A 1 (0) [0..3] max-ing B 1 (1) [0..3] E 3 (0) [0…] F 2 (1) [1…] min-ing G 1 (1) [1..] H -1 Static evaluation score C -1(0) [-..0] J0 D 0 (0) [-..0] K0 L0 U1 R2 O3 P0 Q0 S1 M0 V1 N0 W1 T1 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/comp4031.html Artificial Intelligence for Games and Puzzles 32 Tree Growth example: =0 NT=2 A 1 (0) [0..3] max-ing B 1 (1) [0..3] E 3 (0) [0…] O3 min-ing F 2 (1) [1…] G 1 (1) [1..] P0 Q0 H -1 R2 http://csiweb.ucd.ie/Staff/acater/comp4031.html Static evaluation score C -1(0) [-..0] J0 S1 D 0 (0) [-..0] K0 T1 L0 U1 M0 V1 Artificial Intelligence for Games and Puzzles N0 W1 33 Tree Growth example: =0 NT=2 A 1 (0) [1..1] max-ing B 1 (1) [..] E 3 (0) […] O3 min-ing F 2 (1) […] G 1 (1) [..] P0 Q0 H -1 R2 C -1(0) [-..] J0 S1 D 0 (0) [..] K0 T1 L0 U1 M0 V1 N0 W1 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/comp4031.html Artificial Intelligence for Games and Puzzles 34 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/comp4031.html Artificial Intelligence for Games and Puzzles 35 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/comp4031.html Artificial Intelligence for Games and Puzzles 36 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/comp4031.html Artificial Intelligence for Games and Puzzles 37 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/comp4031.html Artificial Intelligence for Games and Puzzles 38 Calculating ascending bounds sequences (top-down) (defun AscSeq (node) (cond (defun AscSeqMax (minimum sequences) (when sequences ((GameTerminalP node) (let ((new (reduce #’max (list (NodeValue node))) (mapcar #’first sequences) ((UnExpandedP node) :initial-value minimum))) (cons newnode) +)) (list (NodeValue (AscSeqMax new ((MaxP node) (remove nil (mapcar #’rest sequences))))))) (AscSeqMax (NodeValue node) (mapcar #’AscSeq (NodeChildren node)))) ((MinP node) (AscSeqMin (NodeValue node) (mapcar #’AscSeq (NodeChildren node)))))) http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 39 Calculating ascending bounds sequences (top-down) (defun AscSeq (node) (cond (defun AscSeqMin (maximum sequences) (let ((leastbest (reduce #'min ((GameTerminalP node) (mapcar #'(lambda (seq) (apply #'max seq)) (list (NodeValue node))) sequences) ((UnExpandedP node) :initial-value maximum))) (list (NodeValue (sort #'< node) +)) (cons maximum ((MaxP node) (mapcan #'(lambda (seq) (AscSeqMax (remove leastbest seq (NodeValue node) :test #'>)) sequences))))) (mapcar #’AscSeq (NodeChildren node)))) ((MinP node) (AscSeqMin (NodeValue node) (mapcar #’AscSeq (NodeChildren node)))))) http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 40 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/comp4031.html Artificial Intelligence for Games and Puzzles 41 CN and PN Tree Search Algorithms Reprise Like B*, the “Conspiracy Number” (CN) and “Proof “Proof Number” Number” (PN) (PN) algorithms 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/comp4031.html Artificial Intelligence for Games and Puzzles 42 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. But game trees with numeric valuations are not the only game trees in town: There are also AND-OR trees with boolean valuations. 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. http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 43 And/Or Tree - Simple Case A: (or) T B: (and) T D: (or) T red indicates a leaf node whose value can be known directly C: (and) ? E: (or) T H: (and) F J: (or) F F: (or) T I: (and) T K: (or) ? http://csiweb.ucd.ie/Staff/acater/comp4031.html 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. Artificial Intelligence for Games and Puzzles 44 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 1. 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 2. 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/comp4031.html Artificial Intelligence for Games and Puzzles 45 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/comp4031.html Artificial Intelligence for Games and Puzzles 46 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/comp4031.html Artificial Intelligence for Games and Puzzles 47 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/comp4031.html Artificial Intelligence for Games and Puzzles 48 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/comp4031.html For an interior OR node: its P# := min of its children’s P#s its D# := sum of its children’s D#s Artificial Intelligence for Games and Puzzles 49 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, 1. calculate its new P# and D# according to the above 2. recursively, when a node’s P# or D# changes, recompute its parent’s P# and/or D# too. http://csiweb.ucd.ie/Staff/acater/comp4031.html Artificial Intelligence for Games and Puzzles 50 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/comp4031.html Artificial Intelligence for Games and Puzzles 51 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/comp4031.html Artificial Intelligence for Games and Puzzles 52