Claims Analysis
Total Claims: 31
Claim 1
Independent Claim
389 words
A computer-implemented method of random sampling of nodes of a hierarchical data structure in memory of a digital computer, said hierarchical data structure defining a plurality of nodes including intermediate nodes and leaf nodes, each of said intermediate nodes being defined by said hierarchical data structure as a child of another one of said plurality of nodes, and each of said intermediate nodes being defined as a parent of another one of said plurality of nodes, each of said leaf nodes being defined as a child of another one of said plurality of nodes, and each of said leaf nodes having an assigned weight; said method comprising the steps of: a) said digital computer assigning a weight to each of said intermediate nodes such that the weight assigned to each intermediate node is not less than a sum of the weights assigned to the children of said each intermediate node, and at least some of said intermediate nodes have a weight that is greater than the sum of the weights assigned to the children of said each intermediate node; and then b) said digital computer selecting one of said intermediate nodes, the selection of said one of said intermediate nodes being based on the weight of said one of said intermediate nodes such that selecting said one of said intermediate nodes has a probability proportional to the weight of said one of said intermediate nodes; and then c) said digital computer performing a random acceptance/rejection selection of a node which is a selected child of the node selected in the previous step, said random acceptance/rejection being weighted proportional to the weight of the selected child of the node selected in the previous step, and said random acceptance/rejection being weighted inversely proportional to the weight of the node selected in the previous step; and then d) said digital computer repeating said step c) until a leaf node is selected by said random acceptance/rejection selection in said step c); and then e) said digital computer retrieving, from said memory, a data item that is indexed by the selected leaf node, whereby a random selection of a selected leaf node and an indexed data item is obtained and the random selection of the selected leaf node and the indexed data item is weighted by the assigned weight of the selected leaf node.
Claim 2
Dependent Claim
389 words
A computer-implemented method of random sampling of nodes of a hierarchical data structure in memory of a digital computer, said hierarchical data structure defining a plurality of nodes including intermediate nodes and leaf nodes, each of said intermediate nodes being defined by said hierarchical data structure as a child of another one of said plurality of nodes, and each of said intermediate nodes being defined as a parent of another one of said plurality of nodes, each of said leaf nodes being defined as a child of another one of said plurality of nodes, and each of said leaf nodes having an assigned weight; said method comprising the steps of: a) said digital computer assigning a weight to each of said intermediate nodes such that the weight assigned to each intermediate node is not less than a sum of the weights assigned to the children of said each intermediate node, and at least some of said intermediate nodes have a weight that is greater than the sum of the weights assigned to the children of said each intermediate node; and then b) said digital computer selecting one of said intermediate nodes, the selection of said one of said intermediate nodes being based on the weight of said one of said intermediate nodes such that selecting said one of said intermediate nodes has a probability proportional to the weight of said one of said intermediate nodes; and then c) said digital computer performing a random acceptance/rejection selection of a node which is a selected child of the node selected in the previous step, said random acceptance/rejection being weighted proportional to the weight of the selected child of the node selected in the previous step, and said random acceptance/rejection being weighted inversely proportional to the weight of the node selected in the previous step; and then d) said digital computer repeating said step c) until a leaf node is selected by said random acceptance/rejection selection in said step c); and then e) said digital computer retrieving, from said memory, a data item that is indexed by the selected leaf node, whereby a random selection of a selected leaf node and an indexed data item is obtained and the random selection of the selected leaf node and the indexed data item is weighted by the assigned weight of the selected leaf node.
Claim 3
Dependent Claim
31 words
The method as claimed in claim 1, wherein all of said leaf nodes are assigned the same weight, so that the random selection of the leaf node is simple and unbiased.
Claim 4
Dependent Claim
49 words
The method as claimed in claim 1, wherein said hierarchical data structure defines a tree having a root node that is a common ancestor of said intermediate nodes and said leaf nodes, and said digital computer performs step b) by an acceptance/rejection selection among children of the root node.
Claim 5
Dependent Claim
47 words
The method as claimed in claim 3, wherein said digital computer repeats step b) after step c) fails to select any children of an intermediate node having a plurality of children and having a weight greater than a sum of the weights of said plurality of children.
Claim 6
Dependent Claim
60 words
The method as claimed in claim 1, wherein said step c) includes said digital computer obtaining a random number N within a range bounded by the weight of the node selected in the previous step, and said digital computer comparing the number N to a running sum of the weights of children of the node selected in the previous step.
Claim 7
Dependent Claim
44 words
The method as claimed in claim 5, wherein said digital computer selects said selected child when said number N is found to be greater or equal to said running sum just after the weight of said selected child is added to said running sum.
Claim 8
Dependent Claim
40 words
The method as claimed in claim 5, wherein the random number N is obtained by said digital computer computing said random number N as a remnant of a random number used in selecting the node selected in the previous step.
Claim 9
Dependent Claim
150 words
The method as claimed in claim 1, further comprising the steps of: (f) said digital computer increasing the weight of one of said intermediate nodes, said one of said intermediate nodes having a parent node, (g) said digital computer checking whether the sum of the weights of the children of said parent node exceed the weight of said parent node, and when the sum of the weights of the children of said parent node exceed the weight of said parent node, said digital computer increasing the weight of said parent node so that the sum of the weights of the children of said parent node does not exceed the sum of the weights of said parent node; and (h) when the weight of said parent node is increased and said parent node is a child of another parent node, said digital computer repeating step (g) for said another parent node.
Claim 10
Dependent Claim
39 words
The method as claimed in claim 8, wherein said digital computer increases the weight of the parent node so that said weight of the parent node exceeds the sum of the weights of the children of the parent node.
Claim 11
Dependent Claim
133 words
The method as claimed in claim 1, further comprising the steps of: (f) said digital computer decreasing the weight of one of said intermediate nodes, said one of said intermediate nodes having a parent node, (g) said digital computer checking whether the weight of said parent node exceeds the sum of the weights of the children of said parent node by more than a predetermined limit, and when the weight of said parent node exceeds the sum of the weights of the children of said parent node by more than a predetermined limit, decreasing the weight of said parent node; and (h) when the weight of said parent node is decreased and said parent node is the child of another parent node, said digital computer repeating step (g) for said another parent node.
Claim 12
Dependent Claim
385 words
A computer-implemented method of random sampling of data items arranged in a hierarchical data structure in memory of a digital computer, said hierarchical data structure having a plurality of nodes including intermediate nodes, each one of said intermediate nodes being defined by said hierarchical data structure as a child of another one of said plurality of nodes, and each one of said intermediate nodes being defined by said hierarchical data structure as a parent of another one of said plurality of nodes, each of said intermediate nodes having a number of said data items which are descendants, said method comprising the steps of: a) said digital computer maintaining a cardinality estimate for each one of said intermediate nodes, said cardinality estimate specifying an approximation of the number of said data items which are descendants of said each one of said intermediate nodes, and said cardinality estimate not specifying exactly the number of said data items which are descendants of said each one of said intermediate nodes; said cardinality estimate being changed as the number of said data items in said hierarchical data base is changed when said approximation deviates by more than a predefined limit from the number of said data items which are descendants of said each one of said intermediate nodes; b) said digital computer selecting at random one of said intermediate nodes such that the likelihood of selection of the selected one of said intermediate nodes is weighted proportionally to the cardinality estimate of the selected one of said intermediate nodes; and c) said digital computer selecting at random a child of said selected node such that the likelihood of selection of the selected child of said selected one of said intermediate nodes is weighted inversely proportional to the cardinality estimate of the selected one of said intermediate nodes, and said digital computer selecting one of said data items which is a descendant of said selected child of said one of said intermediate nodes, and d) said digital computer retrieving, from said memory, the selected one of said data items, whereby the likelihood of selection of the data item descendant from the selected child is substantially independent of the deviation of said approximation from the number of said plurality of nodes which are descendants of said selected one of said intermediate nodes.
Claim 13
Dependent Claim
385 words
A computer-implemented method of random sampling of data items arranged in a hierarchical data structure in memory of a digital computer, said hierarchical data structure having a plurality of nodes including intermediate nodes, each one of said intermediate nodes being defined by said hierarchical data structure as a child of another one of said plurality of nodes, and each one of said intermediate nodes being defined by said hierarchical data structure as a parent of another one of said plurality of nodes, each of said intermediate nodes having a number of said data items which are descendants, said method comprising the steps of: a) said digital computer maintaining a cardinality estimate for each one of said intermediate nodes, said cardinality estimate specifying an approximation of the number of said data items which are descendants of said each one of said intermediate nodes, and said cardinality estimate not specifying exactly the number of said data items which are descendants of said each one of said intermediate nodes; said cardinality estimate being changed as the number of said data items in said hierarchical data base is changed when said approximation deviates by more than a predefined limit from the number of said data items which are descendants of said each one of said intermediate nodes; b) said digital computer selecting at random one of said intermediate nodes such that the likelihood of selection of the selected one of said intermediate nodes is weighted proportionally to the cardinality estimate of the selected one of said intermediate nodes; and c) said digital computer selecting at random a child of said selected node such that the likelihood of selection of the selected child of said selected one of said intermediate nodes is weighted inversely proportional to the cardinality estimate of the selected one of said intermediate nodes, and said digital computer selecting one of said data items which is a descendant of said selected child of said one of said intermediate nodes, and d) said digital computer retrieving, from said memory, the selected one of said data items, whereby the likelihood of selection of the data item descendant from the selected child is substantially independent of the deviation of said approximation from the number of said plurality of nodes which are descendants of said selected one of said intermediate nodes.
Claim 14
Dependent Claim
83 words
The method as claimed in claim 11, wherein said selected one of said intermediate nodes is a child of a specified root node of said hierarchical data structure, and said digital computer performs said step b) by selecting among a multiplicity of said plurality of nodes which are children of said root node, and then said digital computer performs said step c) by selecting among a multiplicity of said plurality of nodes which are children of said selected one of said intermediate nodes.
Claim 15
Dependent Claim
33 words
The method as claimed in claim 11, wherein said digital computer performs said step c) by an acceptance/rejection selection having a likelihood of rejecting all of said multiplicity of said plurality of nodes.
Claim 16
Dependent Claim
54 words
The method as claimed in claim 11, wherein said step c) includes said digital computer obtaining a random number N within a range based on said cardinality estimate of said selected intermediate node, and said digital computer comparing the number N to a running sum of cardinality estimates of children of said intermediate node.
Claim 17
Dependent Claim
33 words
The method as claimed in claim 14, wherein said digital computer selects said number N from the range of 1 to a high cardinality estimate of said selected one of said intermediate nodes.
Claim 18
Dependent Claim
33 words
The method as claimed in claim 15, wherein said digital computer stores a respective high cardinality estimate in said memory in said hierarchical data structure in association with each of said intermediate nodes.
Claim 19
Dependent Claim
122 words
The method as claimed in claim 15, wherein said digital computer stores a respective median cardinality estimate in said memory in said hierarchical data structure in association with each of said intermediate nodes, said median cardinality estimate being changed as the number of said data items in said hierarchical data base is changed so that said median cardinality estimate deviates by no more than a predefined limit from the number of said data items which are descendants of said each one of said intermediate nodes, and said high cardinality estimate for said selected one of said intermediate nodes is computed by said digital computer multiplying a predetermined factor by said median cardinality estimate stored for said selected one of said intermediate nodes.
Claim 20
Dependent Claim
36 words
The method as claimed in claim 14, wherein said digital computer obtains the random number N by computing said random number N as a remnant of a random number used in selecting said selected intermediate node.
Claim 21
Dependent Claim
98 words
The method as claimed in claim 11, wherein said step a) includes said digital computer changing the cardinality estimate of an intermediate node when the number of descendant data items of said intermediate node is changed, and then said digital computer computing a sum of cardinality estimates of other children nodes of the parent node of said intermediate node, comparing the sum to a cardinality estimate of the parent node, and when the sum deviates from the cardinality estimate of the parent node by more than a predetermined limit, then updating the cardinality estimate of the parent node.
Claim 22
Dependent Claim
238 words
A data processing system comprising: a) a memory having stored in it a multiplicity of data items and a tree index to said multiplicity of data items, said tree index including a root node, leaf nodes each of which is a descendant of the root node, and intermediate nodes each of which is a descendant of the root node and an ancestor of at least one leaf node; and b) data processing means for selecting at random one of said leaf nodes, said data processing means including i) index maintenance means for maintaining approximate ranking information for each of said intermediate nodes, said approximate ranking information indicating an approximate rank of leaf nodes which are descendant from said each of said intermediate nodes, said approximate ranking information not indicating an exact rank of the leaf nodes which are descendant from said each of said intermediate nodes, said index maintenance means including means for propagating changes in the approximate ranking information up the tree towards the root node; and ii) leaf node selection means for selecting a leaf node by a random walk down the tree from the root node to a leaf node, wherein said means for selecting includes acceptance/rejection selection means for selecting a child node of a previously selected intermediate node with a selection probability based upon the approximate ranking information of the child node and the approximate ranking information of the previously selected intermediate node.
Claim 23
Dependent Claim
238 words
A data processing system comprising: a) a memory having stored in it a multiplicity of data items and a tree index to said multiplicity of data items, said tree index including a root node, leaf nodes each of which is a descendant of the root node, and intermediate nodes each of which is a descendant of the root node and an ancestor of at least one leaf node; and b) data processing means for selecting at random one of said leaf nodes, said data processing means including i) index maintenance means for maintaining approximate ranking information for each of said intermediate nodes, said approximate ranking information indicating an approximate rank of leaf nodes which are descendant from said each of said intermediate nodes, said approximate ranking information not indicating an exact rank of the leaf nodes which are descendant from said each of said intermediate nodes, said index maintenance means including means for propagating changes in the approximate ranking information up the tree towards the root node; and ii) leaf node selection means for selecting a leaf node by a random walk down the tree from the root node to a leaf node, wherein said means for selecting includes acceptance/rejection selection means for selecting a child node of a previously selected intermediate node with a selection probability based upon the approximate ranking information of the child node and the approximate ranking information of the previously selected intermediate node.
Claim 24
Dependent Claim
87 words
The data processing system as claimed in claim 20, wherein said acceptance/rejection selection means includes means for obtaining a random number from a range based on the approximate ranking information for the previously selected node, means for comparing the random number to the approximate ranking information for child nodes of the previously selected node to either select one of the child nodes of the previous selected node or to reject all of the child nodes of the previously selected node and begin another walk down the tree.
Claim 25
Dependent Claim
85 words
The data processing system as claimed in claim 20, wherein said means for propagating includes means operated when the approximate ranking information of one of said intermediate nodes is updated for comparing the approximate ranking information of the children of said parent node to the approximate ranking information of said parent node, and updating the approximate ranking information of said parent node when the approximate ranking information of the children of said parent node is inconsistent with the approximate ranking information of said parent node.
Claim 26
Dependent Claim
112 words
The data processing system as claimed in claim 20, wherein said index maintenance means includes means for storing in said memory a cardinality estimate for each of said intermediate nodes, and wherein said acceptance/rejection selection means includes means for obtaining a random number from a range based on the approximate ranking information for the previously selected node, and means for comparing the random number to a running sum of cardinality estimates for child nodes of the previously selected node to either select one of the child nodes of the previous selected node or to reject all of the child nodes of the previously selected node and begin another walk down the tree.
Claim 27
Dependent Claim
32 words
The data processing system as claimed in claim 23, wherein said random number is obtained by computing it as a remnant of a random number used in selecting the previously selected node.
Claim 28
Dependent Claim
292 words
A data processing system comprising: a) a memory having stored in it a multiplicity of data items and a tree index to said multiplicity of data items, said tree index including a root node, leaf nodes each of which is a descendant of the root node and which indexes a predefined subset of said data items, and intermediate nodes each of which is a descendant of the root node and an ancestor of at least one leaf node; and b) data processing means for selecting at random one of said data items, said data processing means including i) index maintenance means for maintaining a cardinality estimate for each of said intermediate nodes, said cardinality estimate indicating an approximation of the total number of data items indexed by leaf nodes which are descendant from said each of said intermediate nodes, said cardinality estimate not indicating exactly said total number of data items indexed by leaf nodes which are descendant from said each of said intermediate nodes, said index maintenance means including means for propagating changes in the cardinality estimates up the tree towards the root node when said cardinality estimate deviates by more than a predefined limit from said total number of said data items indexed by leaf nodes which are descendant from said each of said intermediate nodes; and ii) data item selection means for selecting a data item by a random walk down the tree from the root node to a leaf node, wherein said means for selecting includes acceptance/rejection selection means for selecting a child node of a previously selected intermediate node with a selection probability weighted directly proportional to the cardinality estimate of the child node and inversely proportional to the cardinality estimate of the previously selected intermediate node.
Claim 29
Dependent Claim
292 words
A data processing system comprising: a) a memory having stored in it a multiplicity of data items and a tree index to said multiplicity of data items, said tree index including a root node, leaf nodes each of which is a descendant of the root node and which indexes a predefined subset of said data items, and intermediate nodes each of which is a descendant of the root node and an ancestor of at least one leaf node; and b) data processing means for selecting at random one of said data items, said data processing means including i) index maintenance means for maintaining a cardinality estimate for each of said intermediate nodes, said cardinality estimate indicating an approximation of the total number of data items indexed by leaf nodes which are descendant from said each of said intermediate nodes, said cardinality estimate not indicating exactly said total number of data items indexed by leaf nodes which are descendant from said each of said intermediate nodes, said index maintenance means including means for propagating changes in the cardinality estimates up the tree towards the root node when said cardinality estimate deviates by more than a predefined limit from said total number of said data items indexed by leaf nodes which are descendant from said each of said intermediate nodes; and ii) data item selection means for selecting a data item by a random walk down the tree from the root node to a leaf node, wherein said means for selecting includes acceptance/rejection selection means for selecting a child node of a previously selected intermediate node with a selection probability weighted directly proportional to the cardinality estimate of the child node and inversely proportional to the cardinality estimate of the previously selected intermediate node.
Claim 30
Dependent Claim
175 words
The data processing system as claimed in claim 25, wherein said acceptance/rejection selection means includes means for obtaining a random number from a range based on a high cardinality estimate for the previously selected node, means for comparing the random number to a running sum of high cardinality estimates for child nodes of the previously selected node to either select one of the child nodes of the previous selected node or to reject all of the child nodes of the previously selected node and begin another walk down the tree, and wherein said means for propagating includes means operative when a cardinality estimate of one of said intermediate nodes is updated for computing a sum of high cardinality estimates of child nodes of the parent node of said one of said intermediate nodes, comparing the sum of high cardinality estimates to a cardinality estimate of said parent node, and updating the cardinality estimate of said parent node when the sum of high cardinality estimates is less than the high cardinality estimate of said parent node.
Claim 31
Dependent Claim
72 words
The data processing system as claimed in claim 25, wherein said means for propagating includes means for maintaining the cardinality estimates within a relative error bound (EPSILON) of the true number of descendant data items of an intermediate node such that the error bound decreases by a substantially constant factor (Q) from the top of the tree down each level (k) of the tree from the root node toward the leaf nodes.