WO2016072249A1 - 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体 - Google Patents
情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体 Download PDFInfo
- Publication number
- WO2016072249A1 WO2016072249A1 PCT/JP2015/079476 JP2015079476W WO2016072249A1 WO 2016072249 A1 WO2016072249 A1 WO 2016072249A1 JP 2015079476 W JP2015079476 W JP 2015079476W WO 2016072249 A1 WO2016072249 A1 WO 2016072249A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- points
- coordinates
- section
- sequence
- coordinate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Definitions
- the present invention relates to an information processing apparatus, an information processing method, and a computer-readable recording medium on which a program for realizing the information is recorded, and in particular, information for performing efficient search on multidimensional data
- the present invention relates to a processing device, an information processing method, and a computer-readable recording medium.
- This kind of rectangular range search plays an important role in applications that handle geographic information, and in multidimensional data analysis. Specific examples are shown below.
- the location of a restaurant on the map can be represented by two-dimensional data that is a combination of two values (latitude, longitude).
- latitude, longitude the location of a restaurant on the map
- using the rectangular range search it is possible to search for all restaurants that fall within the range of longitude 138 to 139 degrees and latitude 35 to 36 degrees.
- statistical data on employees of a company can be represented by three-dimensional data (age, height, salary annual).
- age, height, salary annual can be represented by three-dimensional data (age, height, salary annual).
- the rectangular range search it is possible to search for all employees whose ages are 30 to 40 years old, whose height is 170 to 180 cm, and whose annual income is in the range of 5 to 6 million yen.
- the report query is a rectangular range search that returns a list of all points contained in the query area.
- Report queries return a list whose size is proportional to the number of hits if the number of points included in the query area is called the number of hits. Not suitable for. For example, when tens of millions of points are included, all tens of millions of points are output.
- an aggregation query that returns the results of aggregation of those points is important.
- the most typical query among various aggregation queries is a count query (count query).
- This count query is a rectangular range search that returns the number of points included in the query area.
- statistics include count and total.
- a statistic regarding a subset of points included in the query is referred to as a “partial statistic”, and a statistic regarding a set of all points included in the query is referred to as an “overall statistic”.
- a kd tree is known as a typical data structure that can be used for a rectangular range search (see Non-Patent Document 1, for example).
- the size of the kd tree can be expressed as O (n), that is, a linear size.
- O (n) the worst time calculation amount of the rectangular range search in the kd tree.
- n is the number of data
- d is the number of dimensions.
- the worst time complexity O (n (d-1) / d ) achieved by the kd tree is the best time complexity of practically sized data structures known so far. is there.
- the calculation time can be improved.
- a super-linear size data structure for example, a data structure called range tree can be cited.
- the rectangular range search can be realized by a two-dimensional data structure called a wavelet tree (see, for example, Non-Patent Document 1).
- a search is performed in a two-dimensional space, and the amount of time calculation is O (log n) time.
- Non-Patent Document 1 describes in detail a technique for calculating a statistical quantity in a two-dimensional space using a wavelet tree.
- the rectangular range search can be realized by various data structures.
- the worst time calculation amount O (n (d-1) / d ) to be achieved increases either or both of the number of data n and the number of dimensions d. There is a problem that it gets bigger.
- An example of an object of the present invention is to solve the above-mentioned problem and to realize a rectangular range search that is faster than a kd tree in a linear size for an arbitrary dimension, an information processing apparatus, an information processing method, and a computer-readable It is to provide a recording medium.
- an information processing apparatus is an information processing apparatus that processes a data structure representing a set of points on a multidimensional space, When a specific multidimensional area is specified as the query area, The query area includes coordinates of the remaining dimensions on the point sequence obtained by arranging the set of points in a line, and excluding one dimension of all the dimensions constituting the multidimensional space.
- a section search unit for identifying a section which is configured only by points, For the section specified by the section search unit, as a condition for the points that appear in the section to be included in the query region, a totaling unit that specifies a range of coordinate values in the one dimension removed, With the interval specified by the interval search unit and the range of the coordinate value specified by the aggregation unit as inputs, With respect to the coordinate sequence obtained by taking out the coordinates in the one dimension removed at each point of the set of points in the same order as the sequence of the sequence of points, the coordinate sequence input in the coordinate sequence For all coordinates that appear in the interval and are included in the range where the value is entered, Calculating a statistic about a set of points corresponding to all the coordinates; It is characterized by having.
- an information processing method for processing a data structure representing a set of points on a multidimensional space
- A When a specific multidimensional area is designated as the query area, The query area includes coordinates of the remaining dimensions on the point sequence obtained by arranging the set of points in a line, and excluding one dimension of all the dimensions constituting the multidimensional space.
- Steps and (C) Using as input the section identified in the step (a) and the range of the coordinate value identified in the step (b), With respect to the coordinate sequence obtained by taking out the coordinates in the one dimension removed at each point of the set of points in the same order as the sequence of the sequence of points, the coordinate sequence input in the coordinate sequence For all coordinates that appear in the interval and are included in the range where the value is entered, Calculating a statistic for the set of points to which all the coordinates correspond; and It is characterized by having.
- a computer-readable recording medium is a program for performing information processing by a computer on a data structure representing a set of points on a multidimensional space.
- a computer-readable recording medium on which is recorded In the computer, (A) When a specific multidimensional area is designated as the query area, The query area includes coordinates of the remaining dimensions on the point sequence obtained by arranging the set of points in a line, and excluding one dimension of all the dimensions constituting the multidimensional space. A section consisting only of points, identifying a section, and (B) For the section specified in the step (a), a range of coordinate values in the one dimension that has been removed is specified as a condition for including a point appearing in the section in the query area.
- Steps and (C) Using as input the section identified in the step (a) and the range of the coordinate value identified in the step (b), With respect to the coordinate sequence obtained by taking out the coordinates in the one dimension removed at each point of the set of points in the same order as the sequence of the sequence of points, the coordinate sequence input in the coordinate sequence For all coordinates that appear in the interval and are included in the range where the value is entered, Calculating a statistic for the set of points to which all the coordinates correspond; and A program including an instruction for executing is recorded.
- FIG. 1 is a block diagram showing a schematic configuration of an information processing apparatus according to an embodiment of the present invention.
- FIG. 2 is a block diagram showing a specific configuration of the information processing apparatus according to the embodiment of the present invention.
- FIG. 3 shows an example of a two-dimensional plane from which the kd tree is based.
- 4A shows an example of a kd tree obtained from a two-dimensional space
- FIG. 4B shows an example of a sequence P of points obtained from the kd tree.
- FIG. 5 is a diagram showing an example of a wavelet tree used in the embodiment of the present invention, and FIGS. 5A and 5B show wavelet trees having different dimensions.
- FIG. 6 is a flowchart showing the operation of the information processing apparatus according to the embodiment of the present invention.
- FIG. 6 is a flowchart showing the operation of the information processing apparatus according to the embodiment of the present invention.
- FIG. 7 is a flowchart showing the operation of the function find_intervals (v, Q) for recursively searching for intervals.
- FIG. 8 shows a function aggregate_interval (v, s , e, l qf , u qf ).
- FIG. 9 is a diagram illustrating changes in the number of search nodes and the number of included dimensions in the case of two dimensions.
- FIG. 10 is a diagram showing a comparison in calculation amount between the present invention and the conventional method.
- FIG. 11 is a block diagram illustrating an example of a computer that implements the information processing apparatus according to the embodiment of the present invention.
- the kd tree is a binary search tree for handling multidimensional data.
- the feature of the kd tree is that the entire space is divided into two in order from each dimension from dimension 1 to dimension d.
- the tree structure represents a recursive division of space, and each node of the binary search tree is associated with a partial region.
- the partial region R (v) associated with each node v is referred to as a “cover region” of the node.
- the points existing in the subtree having the node v as a root are included in the cover region R (v) of v.
- a kd tree can hold a statistic of a set of points included in a subtree rooted at that node in each node. For example, when it is desired to calculate the count query at high speed, the number of points included in the subtree rooted at each node is stored in that node.
- the rectangular range search in the kd tree is realized as follows. First, starting from the root node of the entire tree, it is determined whether or not the cover area associated with the child node in each internal node overlaps with the query area, and only when it overlaps, moving to that child node is repeated. .
- the movement to the child node corresponds to dividing the cover area into two parts in a specific dimension.
- the statistic of the point included in the subtree stored in the node is stored as a partial statistic. . This is because the points included in the subtree are included in the cover area, and the points are also included in the query area at this time. Since this statistic is a statistic regarding a subset of points included in the query area, it is a partial statistic.
- the node search is finished. At this time, by summing up all these partial statistics, the overall statistics regarding all points included in the query area are calculated and output.
- the number of included dimensions of the cover area is h” when included in h dimensions among d dimensions. Further, when the number of inclusion dimensions is d, that is, when all dimensions are included, the cover region is called completely included.
- the number of inclusion dimensions is the number of conditions satisfied among the d range conditions.
- the kd tree is a technique for dividing a space until the number of inclusion dimensions reaches d, that is, until all d of the range conditions are satisfied.
- the search result is obtained by combining the statistics of the nodes whose cover area is completely included in the given query area.
- the cover area is partially included in the query area, but it is necessary to follow all the nodes that are not completely included, but the number of such nodes is O (n (d-1) / d ). For this reason, the worst time complexity of the kd tree is O (n (d-1) / d ).
- the present invention is characterized in that the search in the kd tree is stopped before the cover area is completely included in the query area, and the search is shifted to the search in the wavelet tree.
- the space is not divided until the number of inclusion dimensions reaches d, but the space is divided until the number of inclusion dimensions reaches d-1.
- a fast search can be performed by finding coordinates satisfying the range condition of dimension f using the wavelet tree for dimension f. Realize.
- the present invention unlike the conventional method of tracing the kd tree to the end, the number of nodes to be traced is reduced, and a rectangular range search faster than the kd tree is realized.
- n 8
- all coordinates are represented by integers of [0,7]
- the present invention can also be applied to a general multidimensional space whose coordinates are not represented by integers.
- n points represented by arbitrary real numbers can be converted to integer coordinates in the range [0, n-1], and the coordinates can be converted to By using this, a rectangular range search can be realized. Therefore, the present invention can be applied to a general multidimensional space represented by a real number by using the conversion to the rank space. Note that the conversion to the rank space is described in Non-Patent Document 1, for example.
- the present invention can be applied even if conversion to the rank space is not performed as long as the value can be expressed in binary representation of 1 and 0. That is, when the number of data is n, the present invention can be applied even to data whose coordinate value range is out of the range of [0, n ⁇ 1].
- the present invention in order to perform a theoretical analysis of the calculation amount, only the range of [0, n-1] is described, and in practice, the range of [0, n-1] is used.
- the present invention can be applied without any problem even if it is not limited.
- prefix is obtained by extracting only the high-order bits when an integer is represented in binary representation.
- prefix of the upper h bits of the integer is represented by a combination of h 1's and 0's and (l-h) *. * Is a wild card, indicating that either 1 or 0 is acceptable.
- An integer starting with a specific prefix corresponds to the integer being included in a specific continuous range.
- the length l prefix only corresponds to one integer.
- a range of coordinate values and an interval of subscripts on the column are strictly distinguished.
- the range of coordinate values and the subscript interval on the column are represented by two pairs of numbers.
- [l, u] is called a “range”
- l and u are the coordinates.
- Value is the coordinates.
- [s, e] is referred to as a “section”
- s and e are subscripts relating to the column.
- FIG. 1 is a block diagram showing a schematic configuration of an information processing apparatus according to an embodiment of the present invention.
- the information processing apparatus 100 in the present embodiment shown in FIG. 1 is an apparatus that processes a data structure 40 that represents a set of points in a multidimensional space.
- the information processing apparatus 100 includes a section search unit 10, a totaling unit 20, and a coordinate string totaling unit 30.
- the section search unit 10 functions when a specific multidimensional area is designated as the query area.
- the query area is expressed by a combination of d ranges corresponding to each dimension, for example.
- the interval search unit 10 is on a point sequence P obtained by arranging a set of points in a row, and the coordinates of each remaining dimension excluding one dimension out of all dimensions constituting the multidimensional space are query regions.
- the section comprised only by the point contained in is identified.
- the section search unit 10 includes zero or more subscript sections on the column P including the points that satisfy the condition (d-1) among the d conditions for the points to be included in the query region. Identify.
- the section search unit 10 outputs the identified section to the counting unit 20.
- the totaling unit 20 specifies a range of coordinate values in one excluded dimension as a condition for being included in the query area for the section specified by the section search unit 10,
- the section specified by the section search unit 10 is output to the coordinate string totaling unit 30.
- the totaling unit 20 includes these points in the query area for the dimension f corresponding to the last range condition that is not satisfied by the points included in each section of the point sequence P specified by the section searching unit 10. Specify the range of coordinate values that will be the range condition necessary to Then, the totaling unit 20 causes the coordinate sequence totaling unit 30 corresponding to the dimension f to receive the coordinate values that serve as the range condition regarding the subscript interval on the column P identified by the interval search unit 10 and the coordinate value of the dimension f. A query is given, given a range.
- the coordinate string totaling unit 30 functions when a section (subscript section) specified by the section searching unit 10 and a range of coordinate values in the dimension f are input.
- the coordinate sequence totaling unit 30 is input with respect to the coordinate sequence obtained by extracting the coordinates in the dimension f at each point of the set of points in the same order as the sequence of the sequence P of points. For all the coordinates that appear in the interval and are included in the range in which the value is input, a statistic relating to the set of points corresponding to these coordinates is calculated.
- the coordinate string totaling unit 30 outputs the calculated statistics to the totaling unit 20.
- the multidimensional space is divided only until (d-1) conditions among the d conditions representing the query region are satisfied.
- the amount of calculation required for dividing the query area is reduced. For this reason, according to the information processing apparatus 10, it is possible to realize a rectangular range search for an arbitrary dimension d with a linear size and faster than a kd tree.
- FIG. 2 is a block diagram showing a specific configuration of the information processing apparatus according to the embodiment of the present invention.
- the information processing apparatus 100 includes a storage unit 43, an input reception in addition to the section search unit 10, the totaling unit 20, and the coordinate string totaling unit 30 described above.
- Unit 50 and output unit 60 are included in the information processing apparatus 100.
- coordinate string totaling units 30-1 to 30-d provided for each dimension are provided.
- Each of the coordinate string totaling units 30-1 to 30-d calculates a statistic regarding the set of points when the corresponding dimension matches the dimension of the section specified by the section searching unit 10.
- coordinate string totaling unit 30 when the coordinate string totaling unit is not individually specified, it is expressed as “coordinate string totaling unit 30”.
- the input receiving unit 50 receives an input of a query area from the outside, and outputs this to the section searching unit 10.
- the storage unit 43 stores a data structure 40.
- the data structure 40 includes a section search data structure 41 used for specifying a section by the section search unit 10 and a coordinate sequence tabulation data structure 42 used for calculation of statistics by the coordinate sequence tabulation unit 30. And have.
- the section search unit 10 inquires the storage unit 43 and acquires the section search data structure 41.
- the section search data structure 41 satisfies the condition (d-1) among the d conditions representing the query area on the point string P by the section search unit 10 when the query area is designated. It is a data structure for specifying a section including a point.
- the section search data structure 41 includes a data structure represented by a tree structure having nodes. Further, in this data structure, a node is associated with both one of a plurality of cover areas set in a multidimensional space and a section in which a point included in the corresponding cover area is applied on a sequence of points. ing. Specifically, the section search data structure 41 includes a kd tree. In the present embodiment, the section search data structure 41 is not limited to a kd tree, and may be any data structure in which each node of the tree structure is associated with a rectangular area. Other specific examples include a data structure called kdB tree, R tree, and bounding volume volume hierarchy (BVH).
- kdB tree kdB tree
- R tree bounding volume volume hierarchy
- the section search unit 10 calculates a node in which the coordinates of each remaining dimension excluding one dimension at a point existing in the associated cover area among the nodes are included in the query area. Identify. Then, the section search unit 10 specifies a section in which one or more specified nodes are associated.
- a kd tree can be used as the section search data structure 41.
- the kd tree is a binary tree in which each node is associated with a rectangular area set in a multidimensional space. This rectangular area corresponds to the cover area described above.
- the cover area of the root node of the kd tree is the entire area on the grid, [0, n-1] ⁇ [0, n-1] ⁇ [0, n-1] ⁇ ... ⁇ [0, n-1] is there.
- the depth of each node is reduced by one when the space is divided into two, paying attention to any one dimension, and the divided dimensions are repeatedly selected in the order of 1, 2, 3, ..., d. .
- the kd tree can be constructed recursively starting from the root node as follows. First, at each internal node, when the dimension used for division at that depth is k, the coordinates of dimension k are examined for all points included in the cover area, the coordinate that is the median value is selected, and the coordinates are Use to divide the cover area into two. That is, when the coordinate is set to t, the cover area is divided into an area where the coordinate of dimension k is smaller than t and an area where the coordinate of dimension k is the same as or larger than t.
- a kd tree is constructed by recursively applying this division to the left and right child nodes.
- Each internal node holds the coordinates used for division. Therefore, when this division is repeated and the number of points included in the cover area becomes one, the leaf node associated with this cover area is constructed and held without further division. The leaf node at the end holds the point itself included in the cover area. Further, when each point has a weight, the leaf node similarly holds this weight.
- the node v may directly hold the value of the cover area, or when the kd tree is searched,
- the value of the cover area may be dynamically calculated from the coordinates used for the division.
- any of these definitions may be used in the present embodiment.
- the description is made using the definition that holds only the coordinates used by the internal nodes of the kd tree for the division, but the present invention is not limited to this.
- a definition may be used that holds the point itself used for the division by the internal node of the kd tree. Further, as will be described later, the definition is not limited to a leaf node holding one point, and a definition in which a leaf node holds a plurality of points may be used.
- the above-described point sequence P is obtained by arranging the points included in the set of points in a line so that the points existing in each of the cover regions associated with the node appear continuously in a single line. .
- the sequence P of points is defined as follows using the constructed kd tree.
- the points are arranged based on the order in which they are found when searching through the kd tree in-order. That is, starting from the root node of the kd tree, the left subtree is searched first, and then the right subtree is searched through the root node itself.
- this search order is recursively applied to all nodes, all the points included in the kd tree are accessed once, and P is a sequence obtained by arranging the points in that order.
- P k is a coordinate sequence obtained by extracting the coordinates of each point in the dimension k in the same order as the arrangement sequence of the point sequence P with respect to the dimension k.
- FIG. 3 shows an example of a two-dimensional plane from which the kd tree is based.
- 4A shows an example of a kd tree obtained from a two-dimensional space, and
- FIG. 4B shows an example of a sequence P of points obtained from the kd tree.
- n 8 points on a two-dimensional plane represented by a grid of [0,7] ⁇ [0,7].
- Each point is given a number from 0 to 7, which represents the order in the sequence P of points as will be described later. That is, the point written as 0 represents P [0], which is the first point in the sequence P of points.
- the thick line drawn on the grid represents the division of the space caused by the nodes of the kd tree, the horizontal thick line represents the division related to dimension 1, and the vertical thick line represents the division related to dimension 2.
- each point shown in FIG. 3 is stored in a kd tree.
- nodes with an even depth represent divisions relating to dimension 1
- nodes having an odd depth represent divisions relating to dimension 2.
- the formula shown at the top of the internal node represents which coordinate is used to divide the space.
- an interval I v in a column P of points corresponding to the node is shown.
- a point represented by a set of coordinates is held instead of the coordinates used for division.
- the sequence P of points corresponds to the points shown in FIG. 3 and the kd tree shown in FIG.
- the coordinate sequences P 1 and P 2 are also represented in the same figure.
- the first line in FIG. 4B represents the value of the subscript i
- the second line represents the coordinate string P 1
- the third line represents the coordinate string P 2 .
- the coordinate string totaling unit 30 first uses the coordinate string totaling data structure 42 and only coordinates included in the input range among a plurality of partial strings obtained from the coordinate string are used. Identify substrings that appear. Then, the coordinate string totaling unit 30 identifies a section that is a section on the identified partial sequence, and in which coordinates appearing in the section input in the coordinate sequence appear, and the section on the identified partial sequence Compute statistics on the set of points to which the appearing coordinates correspond.
- examples of the partial sequence include those obtained by extracting coordinates whose bit representation of coordinates starts with the same prefix while maintaining the positional relationship between the coordinates.
- the coordinate string totaling data structure 42 is a data structure that represents the coordinate string P k corresponding to each dimension k from 1 to d.
- P k is a coordinate sequence obtained by taking out the coordinates of each point in the dimension k in the same order as the arrangement sequence of the sequence P of points with respect to the dimension k.
- the index string totaling unit 30 inputs a subscript section on the coordinate string Pk and a range of coordinate values, the position on the coordinate string is input. It is a data structure that enables a statistic relating to a set of points to which these coordinates correspond to all coordinates included in a section and included in a range in which a value is input.
- each node takes one or more specific digit bits in the bit representation of each coordinate appearing in the subsequence, and arranges the extracted bits in the same order as the subsequence. Can be expressed using.
- the coordinate sequence totaling unit 30 specifies a section on the partial sequence using a sequence of bits representing each node.
- a wavelet tree can be used as the coordinate string totaling data structure 42.
- the coordinate string totaling data structure 42 is not limited to the wavelet tree.
- the coordinate sequence aggregation data structure 42 is included in the interval on the integer sequence and satisfies the range condition. Any data structure that can search for points can be used.
- other coordinate sequence tabulation data structures 42 include Chazelle's compressed range tree, compressed range tree expanded to external storage, compressed Range B-tree (CRB-tree), and the like.
- FIG. 5 is a diagram showing an example of a wavelet tree used in the embodiment of the present invention, and FIGS. 5A and 5B show wavelet trees having different dimensions.
- FIG. 5A shows the wavelet tree w 1 corresponding to the coordinate sequence P 1 and the coordinate sequence P 1
- FIG. 5B shows the wavelet tree w 2 corresponding to the coordinate sequence P 2 and the coordinate sequence P 2.
- the table shown on the left of each figure represents a coordinate string.
- the first line shows the subscript i of the column
- the second line shows an integer corresponding to the subscript.
- bit representations of each integer are shown.
- a wavelet tree corresponding to the coordinate sequence P k of dimension k is defined as a binary tree as follows.
- the wavelet tree is a binary tree having a depth l.
- the edge from the parent to the left child corresponds to bit 0, and the edge from the parent to the right child corresponds to bit 1.
- the root node of the wavelet tree is at depth 0 and corresponds to a coordinate prefix of length 0 bits. Further, it is assumed that the node v at the depth h of the wavelet tree corresponds to the h-bit coordinate prefix ⁇ obtained by concatenating h bits appearing in the path from the root node to the node. All nodes at depth l are leaf nodes. The leaf node corresponds to one integer represented by l bits obtained by concatenating l bits appearing in the path from the root to the node.
- the node v corresponding to the coordinate prefix ⁇ at the depth h corresponds to the partial sequence P k ( ⁇ ) of the coordinate sequence P k .
- P k ( ⁇ ) is a partial sequence extracted from the coordinate sequence P k with all the integers starting with the coordinate prefix ⁇ maintained in the same order.
- the original P k is referred to as a “coordinate sequence”
- the subsequence P k ( ⁇ ) extracted by paying attention to the coordinate prefix ⁇ is referred to as a “coordinate subsequence”.
- the wavelet tree w 1 constructed for the coordinate sequence P 1 of dimension 1 and the coordinate sequence P of dimension 2 are used.
- the wavelet tree w 2 constructed for 2 is used.
- 5A and 5B show the coordinate prefix ⁇ , the coordinate subsequence P k ( ⁇ ), and the bit sequence B v corresponding to each node.
- Each element of the coordinate sequence P 1 is represented by 3 bits.
- the subsequent child nodes can be considered in the same manner.
- the wavelet tree holds a complete dictionary of bit strings B v for each internal node v.
- a complete dictionary is a data structure that supports three types of operations called access, rank, and select for a bit string B of length n. These three types of operations are defined as follows.
- access returns element B [i] of subscript i on B.
- rank1 returns the number of 1 existing in the range of B [0, i).
- rank0 returns the number of 0 that exists in the range of B [0, i).
- select1 returns the position j at which the i + 1th 1 appears on B.
- select0 returns the position j at which the i + 1th 0 appears on B.
- a complete dictionary may be called a simple bit vector or rank ⁇ ⁇ ⁇ / select dictionary depending on the literature.
- the coordinate prefix ⁇ , the coordinate subsequence P k ( ⁇ ), and the bit sequence B v are shown at each node of the wavelet tree.
- the wavelet tree holds only the complete dictionary of B v and does not need to hold the coordinate prefix ⁇ and the coordinate subsequence P k ( ⁇ ).
- Non-Patent Document 1 a wavelet tree is defined without using a prefix, but in this specification, a wavelet tree is defined using a prefix for the sake of explanation. In either case, the essential structure of the wavelet tree is the same, and the same operation can be realized.
- the wavelet tree may not be explicitly configured as a tree structure as long as it has a structure that can be searched as a tree structure, that is, a structure having a plurality of nodes.
- a technique called wavelet matrix that implements a wavelet tree without dividing a bit string for each node, but the discussion in the present invention holds true even when a wavelet matrix is used.
- the totaling unit 20 further calculates the statistics (that is, partial statistics) for each section calculated by the coordinate string totaling unit 30. To do. In this case, the totaling unit 20 outputs the overall statistics obtained by the aggregation to the output unit 60 as overall statistics regarding the set of points included in the query area. Thereafter, the output unit 60 outputs the overall statistics output by the totaling unit 20 to an external terminal device, server device, or the like.
- the query range condition is guaranteed for dimensions other than f. However, it is not guaranteed that the range condition regarding the dimension f is satisfied.
- such a property is used. That is, for all coordinates that are included in P f [s, e] and whose coordinate values are included in the query range [l qf , u qf ] for dimension f, Compute the statistics of the set. This statistic can be calculated at high speed by using a wavelet tree. This statistic is a point included in P [s, e] and is equal to the statistic of the set of points included in the query. By calculating this statistic for all the intervals, it is possible to obtain an overall statistic regarding the set of all points included in the query.
- FIG. 6 is a flowchart showing the operation of the information processing apparatus according to the embodiment of the present invention.
- FIGS. 1 to 5 are referred to as appropriate.
- the information processing method is performed by operating the information processing apparatus 100. Therefore, the description of the information processing method in the present embodiment is replaced with the following description of the operation of the information processing apparatus 100.
- the input receiving unit 50 receives an external input for designating the range of the query area (step A ⁇ b> 1), and outputs the received content to the section searching unit 10.
- the interval search unit 10 sets an empty set to AS, which is a variable representing a set of statistics (step A2).
- AS is a variable for storing a partial statistic relating to a subset of points included in the query as an intermediate summary.
- the section search unit 10 makes an inquiry to the storage unit 43 to acquire the section search data structure 41, that is, the kd tree.
- the section search unit 10 substitutes the root node of the kd tree for the variable v (step A3).
- This variable v is a variable representing the node that is currently focused on.
- the section search unit 10 executes a function find_intervals (v, Q) for the query region Q with respect to the section search data structure 41, and acquires a set IDP of a pair of sections and dimensions as a return value (step A4).
- the function find_intervals (v, Q) is a function that returns such an IDP.
- the section search unit 10 outputs IDP and AS to the totaling unit 20.
- the totaling unit 20 outputs the section Iv to the coordinate sequence totaling unit 30-f regarding the dimension f.
- the coordinate sequence totaling unit 30-f related to the dimension f receives the section Iv as an input, and makes an inquiry to the storage unit 43, and the coordinate sequence totaling data structure 42 corresponding to the coordinate sequence P f of the dimension f, that is, the wavelet tree w. Get f .
- the coordinate string totaling unit 30-f regarding the dimension f substitutes the root node of the wavelet tree w f into the variable v (step A6).
- the coordinate sequence totaling unit 30-f regarding the dimension f calls the function aggregate_interval (v, s, e, lqf , uqf ), and adds the statistic (output result) returned by this function to the AS (step A7).
- This function aggregate_interval (v, s, e, l qf, u qf) is performed by referring to the wavelet tree w f.
- the function aggregate_interval (v, s, e, l qf , u qf ) is such that l qf ⁇ P f [i] ⁇ u qf among the coordinates included in P f [s, e] with respect to the coordinate sequence P f
- This function is a function that specifies a set of all points to which the coordinates included in the set belong for a set of all the coordinates P f [i], and returns a statistic regarding the set of points. These points are part of the points included in the query, and this statistic is a partial statistic.
- a count (COUNT) that is the number of points that satisfy the condition, a sum (SUM) that is the total weight of the points that satisfy the condition, and the like can be used.
- the aggregation unit 20 ends the loop after step A7 is executed for all pairs included in the IDP (step A8).
- the aggregation unit 20 uses the partial statistics included in the AS to calculate the overall statistics for the set of all points included in the query area (step A9). For example, when a count is used as a statistic, the counts of all points included in the query area can be obtained by summing up the counts included in the AS.
- the output unit 60 outputs the overall statistics about the set of all points included in the query area received from the totaling unit 20 to the outside (step A10).
- Step A1 to Step A10 the search process for the query region Q ends. Steps A1 to A10 are executed every time the query area Q is input.
- FIG. 7 is a flowchart showing the operation of the function find_intervals (v, Q) for recursively searching for intervals. This function is realized by the section search unit 10 inquiring the storage unit 43.
- the section search unit 10 first determines whether the node v of the kd tree is a leaf node (step B1). If the result of the determination in step B1 is Yes, the section search unit 10 checks whether all points held in the leaf node are included in the query area, and is held in the leaf node. Statistics are calculated for points included in the query area and added to AS (step B6). In step B6, if necessary, calculation is performed with reference to the weight held in the leaf node (step B6).
- aggregate_leaf (v) is a function that checks whether all the points held in the leaf node are included in the query area, and calculates and returns a statistic for the points included in the query area. For example, when realizing the count query, the function aggregate_leaf (v) counts and returns the number of points included in the query region among all the points held in the leaf node v. When the processing related to the leaf node is performed, the section search unit 10 returns an empty set.
- step B1 if the answer is No, the section search unit 10 determines whether the cover area of the node v of the kd tree overlaps the query area (step B2). Then, as a result of the determination in step B2, the section search unit 10 proceeds to step B3 if the answer is Yes, and returns an empty set if the answer is No.
- the section search unit 10 determines whether (u vk ⁇ l qk or u qk ⁇ l vk ) holds in at least one dimension k among k satisfying 1 ⁇ k ⁇ d. If the above relationship is established as a result of the determination, the section search unit 10 determines No because there is no overlap in space. If the above relationship does not hold, the section search unit 10 determines Yes because there is an overlap in space.
- the determination in step B2 is for pruning so as not to search for a cover area that does not overlap with the query area.
- the section search unit 10 compares the cover area of the node v with the query area, and calculates the inclusion dimension number h (step B3). Specifically, the interval search unit 10 can calculate the inclusion dimension number h by counting how many dimensions k satisfying l qk ⁇ l vk and u vk ⁇ u qk by definition, for example. .
- the section search unit 10 determines whether the inclusion dimension number h is smaller than d-1 (step B4). If the result of determination in step B4 is Yes, the section search unit 10 assigns the left child node of the node v to the variable v left, and the right of the node v to the variable v right. Is assigned (step B5).
- step B5 the section search unit 10 recursively calls the same function as follows. return find_intervals (v left , Q) ⁇ find_intervals (v right , Q)
- step B4 if the answer is No, the section search unit 10 compares the cover area of the node v with the query area and satisfies l qf ⁇ l vf and u vf ⁇ u qf A dimension f that does not satisfy the range condition is obtained (step B7). Then, the section search unit 10 returns a pair (I v , f) of the subscript section I v and dimension f held by the node v.
- the algorithm shown in FIG. 7 is almost the same as the conventional kd-tree search algorithm, but does not search until a node that satisfies all the d range conditions is found, but does not search for (d-1) range conditions. It differs in that it explores until you find it.
- step A7 the operation of step A7 in the algorithm shown in FIG. 6 will be described in detail with reference to FIG. That is, the operation of the function aggregate_interval (v, s, e, l qf , u qf ) in FIG. 6 will be described with reference to FIG.
- FIG. 8 is a diagram showing the operation of the function aggregate_interval (v, s, e, l qf , u qf ) shown in step A7 of FIG.
- the function aggregate_interval (v, s, e, l qf , u qf ) is a function executed by the coordinate string aggregation unit 30-f regarding the dimension f.
- This function accepts as input the node v of the wavelet tree w f , the subscript interval [s, e], and the coordinate value range [l qf , u qf ], and the coordinate subsequence P f corresponding to v
- This is a function that returns, for all coordinates whose coordinate value is included in the range among the coordinates included in the section on ( ⁇ ), statistics regarding the points to which those coordinates belong.
- step C2 determines whether [l ⁇ , u ⁇ ] ⁇ [l qf , u qf ] is satisfied (step C2).
- [L ⁇ , u ⁇ ] represents an integer range starting with the prefix ⁇ .
- step C2 if the answer is Yes, that is, if [l ⁇ , u ⁇ ] ⁇ [l qf , u qf ] holds, the range of coordinate values is included in the query range. The Therefore, the coordinates included in P f ( ⁇ ) [s, e] always belong to the points included in the query. Therefore, the coordinate string aggregation unit 30-f performs the function aggregate_node (v , s, e) are executed, and the output result is returned.
- Function aggregate_node (v , s, e) is a function that returns a statistic of a set of points to which the coordinates included in P f ( ⁇ ) [s, e] belong with respect to the coordinate sequence P f ( ⁇ ) corresponding to v.
- step C2 if the answer is No, the coordinate string totaling unit 30-f sets the bit string held in the node v as B v and uses the four rank expressions shown in FIG.
- the subscript interval [s left , e left ] at the left child node and the subscript interval [s right , e right ] at the right child node are calculated (step C3).
- the coordinate string totaling unit 30-f recursively calls the following functions in order to perform the same processing for the right child node and the left child node.
- Step C2 Subsequently, the function aggregate_node (v called in step C2 shown in FIG. , s, e) will be described. This function is executed by the coordinate string totaling unit 30.
- the function aggregate_node (v, s, e) returns the statistic of the set of points to which the coordinates contained in P f ( ⁇ ) [s, e] belong with respect to the coordinate sequence P f ( ⁇ ) corresponding to the node v It is.
- the function aggregate_node (v, s, e) is an abstraction of various aggregate functions. By replacing this function with a specific aggregate function, the information processing apparatus 100 can be used for various types of rectangular range searches. Available.
- the information processing apparatus 100 can count and output the number of points included in the query region Q. This behavior depends on the function aggregate_node (v , s, e) returns (e -Realized by returning s +1). Because P f ( ⁇ ) [s , e ] Correspond to the points included in the query area Q, and (e This is because it indicates that (s + 1) points are included in the query area Q.
- the function aggregate_interval (v, s , e , l qf , u qf ) operates as a function that counts and returns the number of points included in the query region Q among the points whose coordinates are included in P f [s, e].
- the counting unit 20 counts and outputs the number included in the query region Q among the points included in the point sequence P.
- the information processing apparatus 100 can calculate the sum of the weights of the points included in the query region. This is because the column W f ( ⁇ ) in which the weights w (p) of the corresponding points p are arranged in the same order is set in advance for each coordinate included in all the coordinate subsequences P f ( ⁇ ). In addition, it is possible if a data structure capable of calculating the total of the sections on this column is prepared.
- An example of such a data structure is a data structure that handles an existing partial sum.
- P f ( ⁇ ) [s , e] is known to correspond to a point included in the query region, included in the interval W f ( ⁇ ) [s, e] on the weight column corresponding to this interval [s, e]
- the sum of the weights of all the points included in the query region Q can be calculated by calculating the total of the weighted intervals and adding them at the end.
- the totaling unit 20 outputs the sum of the weights of all points included in the query area Q as a statistic.
- the information processing apparatus 100 can be used as a report query that returns a list of all points included in the query area Q. That is, P f ( ⁇ ) [s , e], for each element P f ( ⁇ ) [j], the position i on the original integer sequence P f can be specified by going up the wavelet tree. At this time, the point P [i] is included in the query area. In this case, the totaling unit 20 outputs a list of all points included in the query region Q as a statistic.
- the operation of these two functions is equivalent to the calculation of statistics in two dimensions using a wavelet tree shown in Non-Patent Document 2. That is, the behavior of these two functions is the subscript interval [s , e] and a value range [l qf , u qf ] can be regarded as a search in a two-dimensional space. It is known that the number of intervals obtained by this calculation is O (log n).
- the present embodiment is not limited to a mode in which the algorithm shown in FIGS. 6 to 8 is used alone, and is a mode in which another search algorithm is appropriately combined with the algorithm shown in FIGS. Also good.
- FIG. 9 shows the relationship between the number of search nodes and the number of inclusion dimensions in the worst case.
- FIG. 9 is a diagram illustrating changes in the number of search nodes and the number of included dimensions in the case of two dimensions. As shown in FIG. 9, one node on the tree structure corresponds to one search node. A decrease in the depth of the tree structure indicates that the node is divided once and divided into two search nodes. The numbers on the nodes represent the number of inclusion dimensions. It can be seen that the more the number of inclusion dimensions, the more nodes are divided.
- Equation 1 This recurrence formula is as shown in Equation 1 below. However, in the following formula 1, C (x, y) represents the number of combinations.
- the entire search tree becomes a binary tree of depth log n, the total number of nodes reaches O (n), and the division ends.
- the node with the inclusion dimension number h is O (n (h / d) ).
- the node with the inclusion dimension number 0 is O (log n).
- the maximum number of divisions is O (n). If the division is stopped when the number of inclusion dimensions reaches d, the division number becomes O (n (d-1) / d ). On the other hand, if the division is discontinued when the number of inclusion dimensions reaches d-1, the division number becomes O (n (d-2) / d ). In the kd tree, since the division is terminated when the number of inclusion dimensions reaches d, the calculation amount is O (n (d ⁇ 1) / d ). This is consistent with a conventionally known order.
- This kd-tree analysis is applied to this embodiment.
- the number of divisions that is, the number of intervals calculated by the kd tree is O (n (d-2) / d ).
- the function aggregate_interval (v, s , e , l qf , u qf ) are executed.
- the function aggregate_node (v , s, e) are executed O (log n) times.
- the function aggregate_node (v , s, e) is a function that can be executed in O (1). For example, in order to realize the count query, it is only necessary to calculate (e ⁇ s + 1), so it can be calculated by O (1).
- the method in the present embodiment performs O (log n) times and O (1) calculations for each of O (n (d-2) / d ) intervals, so that the total The calculation amount of is O (n (d ⁇ 2) / d log n).
- FIG. 10 is a diagram showing a comparison in calculation amount between the present invention and the conventional method.
- the program in the embodiment of the present invention may be a program that causes a computer to execute steps A1 to A10 shown in FIG.
- the information processing apparatus 100 and the information processing method in the present embodiment can be realized by installing and executing this program on a computer.
- a CPU Central Processing Unit
- the storage unit 43 is realized by storing data files constituting these in a storage device such as a hard disk provided in the computer.
- each computer may function as the search unit 10, the totaling unit 20, the coordinate sequence totaling unit 30, the input receiving unit 50, and the output unit 60, respectively.
- the storage unit 43 may be constructed on a computer different from the computer that executes the program in the present embodiment.
- FIG. 11 is a block diagram illustrating an example of a computer that implements the information processing apparatus according to the embodiment of the present invention.
- the computer 110 includes a CPU 111, a main memory 112, a storage device 113, an input interface 114, a display controller 115, a data reader / writer 116, and a communication interface 117. These units are connected to each other via a bus 121 so that data communication is possible.
- the CPU 111 performs various operations by developing the program (code) in the present embodiment stored in the storage device 113 in the main memory 112 and executing them in a predetermined order.
- the main memory 112 is typically a volatile storage device such as a DRAM (Dynamic Random Access Memory).
- the program in the present embodiment is provided in a state of being stored in a computer-readable recording medium 120. Note that the program in the present embodiment may be distributed on the Internet connected via the communication interface 117.
- the storage device 113 includes a hard disk drive and a semiconductor storage device such as a flash memory.
- the input interface 114 mediates data transmission between the CPU 111 and an input device 118 such as a keyboard and a mouse.
- the display controller 115 is connected to the display device 119 and controls display on the display device 119.
- the data reader / writer 116 mediates data transmission between the CPU 111 and the recording medium 120, and reads a program from the recording medium 120 and writes a processing result in the computer 110 to the recording medium 120.
- the communication interface 117 mediates data transmission between the CPU 111 and another computer.
- the recording medium 120 include general-purpose semiconductor storage devices such as CF (Compact Flash (registered trademark)) and SD (Secure Digital), magnetic storage media such as a flexible disk, or CD- An optical storage medium such as ROM (Compact Disk Read Only Memory) can be used.
- CF Compact Flash
- SD Secure Digital
- magnetic storage media such as a flexible disk
- CD- An optical storage medium such as ROM (Compact Disk Read Only Memory) can be used.
- the query area includes coordinates of the remaining dimensions on the point sequence obtained by arranging the set of points in a line, and excluding one dimension of all the dimensions constituting the multidimensional space.
- a section search unit for identifying a section, which is configured only by points, For the section specified by the section search unit, as a condition for the points that appear in the section to be included in the query region, a totaling unit that specifies a range of coordinate values in the one dimension removed, With the interval specified by the interval search unit and the range of the coordinate value specified by the aggregation unit as inputs, With respect to the coordinate sequence obtained by taking out the coordinates in the one dimension removed at each point of the set of points in the same order as the sequence of the sequence of points, the coordinate sequence input in the coordinate sequence For all coordinates that appear in the interval and are included in the range where the value is entered, Calculating a statistic about a set of points corresponding to all the coordinates;
- An information processing apparatus comprising:
- the tabulation section When there are a plurality of sections specified by the section search section, the tabulation section further tabulates statistics relating to the set of points for each section calculated by the coordinate string tabulation section, Outputting the statistics obtained by the aggregation as overall statistics regarding the set of points included in the query area;
- the information processing apparatus according to attachment 1.
- the data structure includes a first data structure used for specifying the section by the section search unit and a second data structure used for calculating the statistic by the coordinate string totaling unit. is doing, The information processing apparatus according to attachment 1.
- the first data structure is It is represented by a tree structure having nodes, which is associated with any one of a plurality of cover areas set in the multidimensional space and a section where points included in the cover area appear on the sequence of the points.
- the section search unit Of the nodes Identifying a node in which the coordinates of each remaining dimension excluding the one dimension at points included in the associated cover area are included in the query area; Identify the section associated with the identified one or more nodes as the section;
- the information processing apparatus according to appendix 4.
- the sequence of points is The points included in the set of points are arranged in a line so that the points included in each of the cover areas associated with the node appear continuously in a single line,
- the information processing apparatus according to appendix 5.
- the coordinate sequence totaling unit uses the second data structure, Among the plurality of partial sequences obtained from the coordinate sequence, a partial sequence in which only the coordinates included in the input range appear is specified, and an interval on the specified partial sequence is input in the coordinate sequence Identify the second section where the coordinates appearing in the section Further, a statistic regarding a set of points corresponding to the coordinates appearing in the identified second section is calculated.
- the information processing apparatus according to appendix 4.
- the partial sequence is obtained by extracting coordinates whose bit representation of coordinates starts with the same prefix while maintaining the positional relationship between the coordinates,
- the second data structure is A plurality of nodes associated with the subsequence; Each of the plurality of nodes is obtained by taking out one or more specific digit bits in the bit representation of each coordinate appearing in the subsequence, and arranging the extracted bits in the same order as the subsequence. Expressed using a sequence of bits, The coordinate sequence totaling unit specifies the second section using a sequence of bits representing each of the plurality of nodes.
- the coordinate string totaling unit calculates the number of points corresponding to all the coordinates as a statistic regarding a set of points corresponding to all the coordinates.
- the information processing apparatus according to attachment 1.
- the coordinate string totaling unit calculates the coordinates of each dimension of the points to which all the coordinates correspond, as a statistic regarding the set of points to which all the coordinates correspond.
- the information processing apparatus according to attachment 1.
- An information processing method for processing a data structure representing a set of points on a multidimensional space (A) When a specific multidimensional area is designated as the query area, The query area includes coordinates of the remaining dimensions on the point sequence obtained by arranging the set of points in a line, and excluding one dimension of all the dimensions constituting the multidimensional space. A section consisting only of points, identifying a section, and (B) For the section specified in the step (a), a range of coordinate values in the one dimension that has been removed is specified as a condition for including a point appearing in the section in the query area.
- Steps and (C) Using as input the section identified in the step (a) and the range of the coordinate value identified in the step (b), With respect to the coordinate sequence obtained by taking out the coordinates in the one dimension removed at each point of the set of points in the same order as the sequence of the sequence of points, the coordinate sequence input in the coordinate sequence For all coordinates that appear in the interval and are included in the range where the value is entered, Calculating a statistic for the set of points to which all the coordinates correspond; and
- An information processing method characterized by comprising:
- the data structure is a first data structure used for specifying the section in the step (a) and a second data structure used in the calculation of the statistic in the step (c). And having The information processing method according to attachment 11.
- the first data structure is: It is represented by a tree structure having nodes, which is associated with any one of a plurality of cover areas set in the multidimensional space and a section where points included in the cover area appear on the sequence of the points.
- the sequence of points is The points included in the set of points are arranged in a line so that the points existing in each of the cover areas associated with the node appear continuously in a single line, The information processing method according to attachment 14.
- step (c) using the second data structure, Among the plurality of partial sequences obtained from the coordinate sequence, a partial sequence in which only the coordinates included in the input range appear is specified, and an interval on the specified partial sequence is input in the coordinate sequence Identify the second section where the coordinates appearing in the section Further, a statistic regarding a set of points corresponding to the coordinates appearing in the identified second section is calculated.
- the partial sequence is obtained by extracting coordinates whose bit representation of coordinates starts with the same prefix while maintaining the positional relationship between the coordinates,
- the second data structure is A plurality of nodes associated with the subsequence; Each of the plurality of nodes is obtained by taking out one or more specific digit bits in the bit representation of each coordinate appearing in the subsequence, and arranging the extracted bits in the same order as the subsequence. Expressed using a sequence of bits, In the step (c), the second section is specified using a bit string representing each of the plurality of nodes.
- step (c) the number of points corresponding to all the coordinates is calculated as a statistic regarding the set of points corresponding to all the coordinates.
- a computer-readable recording medium recording a program for performing information processing by a computer with a data structure representing a set of points in a multidimensional space as a processing target,
- the query area includes coordinates of the remaining dimensions on the point sequence obtained by arranging the set of points in a line, and excluding one dimension of all the dimensions constituting the multidimensional space.
- Steps and (C) Using as input the section identified in the step (a) and the range of the coordinate value identified in the step (b), With respect to the coordinate sequence obtained by taking out the coordinates in the one dimension removed at each point of the set of points in the same order as the sequence of the sequence of points, the coordinate sequence input in the coordinate sequence For all coordinates that appear in the interval and are included in the range where the value is entered, Calculating a statistic for the set of points to which all the coordinates correspond; and The computer-readable recording medium which recorded the program containing the instruction
- the data structure is a first data structure used for specifying the section in the step (a) and a second data structure used in the calculation of the statistic in the step (c). And having The computer-readable recording medium according to appendix 20.
- the first data structure is: It is represented by a tree structure having nodes, which is associated with any one of a plurality of cover areas set in the multidimensional space and a section where points included in the cover area appear on the sequence of the points.
- the computer-readable recording medium according to appendix 22.
- the sequence of points is The points included in the set of points are arranged in a line so that the points existing in each of the cover areas associated with the node appear continuously in a single line,
- step (c) using the second data structure, Among the plurality of partial sequences obtained from the coordinate sequence, a partial sequence in which only the coordinates included in the input range appear is specified, and an interval on the specified partial sequence is input in the coordinate sequence Identify the second section where the coordinates appearing in the section Further, a statistic regarding a set of points corresponding to the coordinates appearing in the identified second section is calculated.
- the computer-readable recording medium according to appendix 22 The computer-readable recording medium according to appendix 22.
- the partial sequence is obtained by extracting coordinates whose bit representation of coordinates starts with the same prefix while maintaining the positional relationship between the coordinates,
- the second data structure is A plurality of nodes associated with the subsequence; Each of the plurality of nodes is obtained by taking out one or more specific digit bits in the bit representation of each coordinate appearing in the subsequence, and arranging the extracted bits in the same order as the subsequence. Expressed using a sequence of bits, In the step (c), the second section is specified using a bit string representing each of the plurality of nodes.
- step (c) the number of points corresponding to all the coordinates is calculated as a statistic regarding the set of points corresponding to all the coordinates.
- step (c) As a statistic regarding a set of points to which all the coordinates correspond, the coordinates of each dimension of the points to which all the coordinates correspond are calculated.
- the computer-readable recording medium according to appendix 20 As a statistic regarding a set of points to which all the coordinates correspond, the coordinates of each dimension of the points to which all the coordinates correspond are calculated.
- the present invention it is possible to realize a rectangular range search with a linear size and higher speed than a kd tree for an arbitrary dimension d.
- the present invention is useful in various fields where necessary data needs to be searched from a large amount of data group.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
クエリ領域として、特定の多次元の領域が指定された場合に、
前記点の集合を一列に並べて得られた点の列上にあり、且つ、前記多次元空間を構成する全次元のうち1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている点のみによって構成されている、区間を特定する、区間検索部と、
前記区間検索部で特定された区間について、当該区間に出現する点が前記クエリ領域に含まれるための条件として、除かれた前記1つの次元における座標の値の範囲を特定する、集計部と、
前記区間検索部で特定された区間、及び前記集計部で特定された前記座標の値の範囲を入力として、
前記点の列の並び順と同じ順序で、前記点の集合の各点における、除かれた前記1つの次元での座標を取り出すことで得られる、座標列に関して、当該座標列において入力された前記区間に出現し、且つ、値が入力された前記範囲に含まれる、全ての座標について、
前記全ての座標が対応する点の集合に関する統計量を計算する、座標列集計部と、
を備えている、ことを特徴とする。
(a)クエリ領域として、特定の多次元の領域が指定された場合に、
前記点の集合を一列に並べて得られた点の列上にあり、且つ、前記多次元空間を構成する全次元のうち1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている点のみによって構成されている、区間を特定する、ステップと、
(b)前記(a)のステップで特定された区間について、当該区間に出現する点が前記クエリ領域に含まれるための条件として、除かれた前記1つの次元における座標の値の範囲を特定する、ステップと、
(c)前記(a)のステップで特定された区間、及び前記(b)のステップで特定された前記座標の値の範囲を入力として、
前記点の列の並び順と同じ順序で、前記点の集合の各点における、除かれた前記1つの次元での座標を取り出すことで得られる、座標列に関して、当該座標列において入力された前記区間に出現し、且つ、値が入力された前記範囲に含まれる、全ての座標について、
前記全ての座標が対応する点の集合に関する統計量を計算する、ステップと、
を有する、を特徴とする。
前記コンピュータに、
(a)クエリ領域として、特定の多次元の領域が指定された場合に、
前記点の集合を一列に並べて得られた点の列上にあり、且つ、前記多次元空間を構成する全次元のうち1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている点のみによって構成されている、区間を特定する、ステップと、
(b)前記(a)のステップで特定された区間について、当該区間に出現する点が前記クエリ領域に含まれるための条件として、除かれた前記1つの次元における座標の値の範囲を特定する、ステップと、
(c)前記(a)のステップで特定された区間、及び前記(b)のステップで特定された前記座標の値の範囲を入力として、
前記点の列の並び順と同じ順序で、前記点の集合の各点における、除かれた前記1つの次元での座標を取り出すことで得られる、座標列に関して、当該座標列において入力された前記区間に出現し、且つ、値が入力された前記範囲に含まれる、全ての座標について、
前記全ての座標が対応する点の集合に関する統計量を計算する、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とする。
最初に、本発明の基本的な原理について、一般的なkd木を例に挙げて以下に説明する。
ここで、本明細書で用いられる種々の概念について以下に説明する。本明細書では、全ての点の座標piが[0,n-1]の整数で表されるものとする。さらに、これらの整数は、二進表現で長さl=ceil(log n)のビットで表されるとする。なお、ceil()は天井関数を表す。logは底を2とする対数関数を表す。
続いて、本発明の実施の形態における、情報処理装置、情報処理方法、及びプログラムについて、図1~図10を参照しながら説明する。
最初に、本実施の形態における情報処理装置の概略構成について図1を用いて説明する。図1は、本発明の実施の形態における情報処理装置の概略構成を示すブロック図である。図1に示す本実施の形態における情報処理装置100は、多次元空間上の点の集合を表現するデータ構造40を処理対象とする装置である。そして、図1に示すように、情報処理装置100は、区間検索部10と、集計部20と、座標列集計部30とを備えている。
rank1(B,i)は、B[0,i)の範囲に存在する1の数を返す。
rank0(B,i)は、B[0,i)の範囲に存在する0の数を返す。
select1(B,i)は、B上でi+1番目の1が出現する位置jを返す。
select0(B,i)は、B上でi+1番目の0が出現する位置jを返す。
続いて、情報処理装置100の動作を説明する前に、情報処理装置100において用いられる探索アルゴリズムの概要について以下に説明する。
次に、本発明の実施の形態における情報処理装置100の動作について図6を用いて説明する。図6は、本発明の実施の形態における情報処理装置の動作を示すフロー図である。また、以下の説明においては、適宜図1~図5を参酌する。また、本実施の形態では、情報処理装置100を動作させることによって、情報処理方法が実施される。よって、本実施の形態における情報処理方法の説明は、以下の情報処理装置100の動作説明に代える。
続いて、図6に示したステップA4について、図7を用いて更に具体的に説明する。図7は、再帰的に区間を検索する関数find_intervals(v,Q)の動作を示すフロー図である。この関数は区間検索部10が、記憶部43に問い合わせを行なうことで実現される。
return find_intervals(vleft, Q) ∪ find_intervals(vright, Q)
次いで、図6に示すアルゴリズムにおけるステップA7の動作について、図8を用いて詳しく説明する。すなわち、図6中の関数aggregate_interval(v, s, e, lqf, uqf)の動作について、図8を用いて説明する。図8は、図6のステップA7に示された関数aggregate_interval(v, s, e, lqf, uqf)の動作を示す図である。
return aggregate_interval (vleft, sleft, eleft, lqf, uqf) ∪aggregate_interval (vright, sright, eright, lqf, uqf)
続いて、図8に示したステップC2で呼び出される関数aggregate_node(v , s , e) について説明する。この関数は座標列集計部30によって実行される。
本実施の形態は、kd木を単独で用いる従来手法よりも、計算量が少なくなる効果がある。このことを明らかにするため、最悪計算量について解析する。kd木を用いる従来手法は、包含次元数がdになるまで分割するのに対して、本実施の形態における手法は、d-1になるまでしか分割しない。このことが最悪計算量におよぼす影響を以下に述べる。
本発明の実施の形態におけるプログラムは、コンピュータに、図6に示すステップA1~A10を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における情報処理装置100と情報処理方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、区間検索部10、集計部20、座標列集計部30、入力受付部50、及び出力部60として機能し、処理を行なう。また、本実施の形態では、記憶部43は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現される。
クエリ領域として、特定の多次元の領域が指定された場合に、
前記点の集合を一列に並べて得られた点の列上にあり、且つ、前記多次元空間を構成する全次元のうち1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている点のみによって構成されている、区間を特定する、区間検索部と、
前記区間検索部で特定された区間について、当該区間に出現する点が前記クエリ領域に含まれるための条件として、除かれた前記1つの次元における座標の値の範囲を特定する、集計部と、
前記区間検索部で特定された区間、及び前記集計部で特定された前記座標の値の範囲を入力として、
前記点の列の並び順と同じ順序で、前記点の集合の各点における、除かれた前記1つの次元での座標を取り出すことで得られる、座標列に関して、当該座標列において入力された前記区間に出現し、且つ、値が入力された前記範囲に含まれる、全ての座標について、
前記全ての座標が対応する点の集合に関する統計量を計算する、座標列集計部と、
を備えている、ことを特徴とする情報処理装置。
付記1に記載の情報処理装置。
付記1に記載の情報処理装置。
付記1に記載の情報処理装置。
前記多次元空間に設定された複数のカバー領域のいずれかと、前記点の列上において当該カバー領域に含まれる点が出現する区間とに関連付けられている、ノードを有する木構造によって表現されており、
前記区間検索部が、
前記ノードのうち、
関連付けられた前記カバー領域に含まれる点における、前記1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている、ノードを特定し、
特定した1又は2以上のノードが関連付けられている区間を前記区間として特定する、
付記4に記載の情報処理装置。
前記ノードに関連付けられたカバー領域それぞれに含まれる点が、ひとつながりで連続して出現するように、前記点の集合に含まれる点を一列に並べて得られている、
付記5に記載の情報処理装置。
前記座標列から得られる複数の部分列のうち、入力された前記範囲に含まれる座標のみが出現する部分列を特定し、そして、特定した部分列上の区間であって、前記座標列において入力された前記区間に出現する座標が出現している、第二の区間を特定し、
更に、特定した前記第二の区間に出現する座標が対応する点の集合に関する統計量を計算する、
付記4に記載の情報処理装置。
前記第2のデータ構造が、
前記部分列に関連付けられた複数のノードを有し、
前記複数のノードそれぞれは、前記部分列において出現する各座標のビット表現における、一つ以上の特定の桁のビットを取り出し、取り出した前記ビットを前記部分列と同じ順序で並べることによって得られる、ビットの列を用いて表現され、
前記座標列集計部は、前記複数ノードそれぞれを表現するビットの列を用いて、前記第二の区間を特定する、
付記7に記載の情報処理装置。
付記1に記載の情報処理装置。
付記1に記載の情報処理装置。
(a)クエリ領域として、特定の多次元の領域が指定された場合に、
前記点の集合を一列に並べて得られた点の列上にあり、且つ、前記多次元空間を構成する全次元のうち1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている点のみによって構成されている、区間を特定する、ステップと、
(b)前記(a)のステップで特定された区間について、当該区間に出現する点が前記クエリ領域に含まれるための条件として、除かれた前記1つの次元における座標の値の範囲を特定する、ステップと、
(c)前記(a)のステップで特定された区間、及び前記(b)のステップで特定された前記座標の値の範囲を入力として、
前記点の列の並び順と同じ順序で、前記点の集合の各点における、除かれた前記1つの次元での座標を取り出すことで得られる、座標列に関して、当該座標列において入力された前記区間に出現し、且つ、値が入力された前記範囲に含まれる、全ての座標について、
前記全ての座標が対応する点の集合に関する統計量を計算する、ステップと、
を有する、ことを特徴とする情報処理方法。
付記11に記載の情報処理方法。
付記11に記載の情報処理方法。
前記多次元空間に設定された複数のカバー領域のいずれかと、前記点の列上において当該カバー領域に含まれる点が出現する区間とに関連付けられている、ノードを有する木構造によって表現されており、
前記(a)のステップにおいて、
前記ノードのうち、
関連付けられた前記カバー領域に存在する点における、前記1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている、ノードを特定し、
特定した1又は2以上のノードが関連付けられている区間を前記区間として特定する、
付記13に記載の情報処理方法。
前記ノードに関連付けられたカバー領域それぞれに存在する点が、ひとつながりで連続して出現するように、前記点の集合に含まれる点を一列に並べて得られている、
付記14に記載の情報処理方法。
前記座標列から得られる複数の部分列のうち、入力された前記範囲に含まれる座標のみが出現する部分列を特定し、そして、特定した部分列上の区間であって、前記座標列において入力された前記区間に出現する座標が出現している、第二の区間を特定し、
更に、特定した前記第二の区間に出現する座標が対応する点の集合に関する統計量を計算する、
付記13に記載の情報処理方法。
前記第2のデータ構造が、
前記部分列に関連付けられた複数のノードを有し、
前記複数のノードそれぞれは、前記部分列において出現する各座標のビット表現における、一つ以上の特定の桁のビットを取り出し、取り出した前記ビットを前記部分列と同じ順序で並べることによって得られる、ビットの列を用いて表現され、
前記(c)のステップにおいて、前記複数ノードそれぞれを表現するビットの列を用いて、前記第二の区間を特定する、
付記16に記載の情報処理方法。
付記11に記載の情報処理方法。
付記11に記載の情報処理方法。
前記コンピュータに、
(a)クエリ領域として、特定の多次元の領域が指定された場合に、
前記点の集合を一列に並べて得られた点の列上にあり、且つ、前記多次元空間を構成する全次元のうち1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている点のみによって構成されている、区間を特定する、ステップと、
(b)前記(a)のステップで特定された区間について、当該区間に出現する点が前記クエリ領域に含まれるための条件として、除かれた前記1つの次元における座標の値の範囲を特定する、ステップと、
(c)前記(a)のステップで特定された区間、及び前記(b)のステップで特定された前記座標の値の範囲を入力として、
前記点の列の並び順と同じ順序で、前記点の集合の各点における、除かれた前記1つの次元での座標を取り出すことで得られる、座標列に関して、当該座標列において入力された前記区間に出現し、且つ、値が入力された前記範囲に含まれる、全ての座標について、
前記全ての座標が対応する点の集合に関する統計量を計算する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
(d)前記(a)のステップによって特定された区間が複数である場合に、前記(b)のステップによって計算された区間毎の前記点の集合に関する統計量を、更に集計し、集計によって得られた統計量を、前記クエリ領域に含まれる点の集合に関する全体的な統計量として、出力する、ステップを実行させる命令を更に含む、
付記20に記載のコンピュータ読み取り可能な記録媒体。
付記20に記載のコンピュータ読み取り可能な記録媒体。
前記多次元空間に設定された複数のカバー領域のいずれかと、前記点の列上において当該カバー領域に含まれる点が出現する区間とに関連付けられている、ノードを有する木構造によって表現されており、
前記(a)のステップにおいて、
前記ノードのうち、
関連付けられた前記カバー領域に存在する点における、前記1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている、ノードを特定し、
特定した1又は2以上のノードが関連付けられている区間を前記区間として特定する、
付記22に記載のコンピュータ読み取り可能な記録媒体。
前記ノードに関連付けられたカバー領域それぞれに存在する点が、ひとつながりで連続して出現するように、前記点の集合に含まれる点を一列に並べて得られている、
付記23に記載のコンピュータ読み取り可能な記録媒体。
前記座標列から得られる複数の部分列のうち、入力された前記範囲に含まれる座標のみが出現する部分列を特定し、そして、特定した部分列上の区間であって、前記座標列において入力された前記区間に出現する座標が出現している、第二の区間を特定し、
更に、特定した前記第二の区間に出現する座標が対応する点の集合に関する統計量を計算する、
付記22に記載のコンピュータ読み取り可能な記録媒体。
前記第2のデータ構造が、
前記部分列に関連付けられた複数のノードを有し、
前記複数のノードそれぞれは、前記部分列において出現する各座標のビット表現における、一つ以上の特定の桁のビットを取り出し、取り出した前記ビットを前記部分列と同じ順序で並べることによって得られる、ビットの列を用いて表現され、
前記(c)のステップにおいて、前記複数ノードそれぞれを表現するビットの列を用いて、前記第二の区間を特定する、
付記25に記載のコンピュータ読み取り可能な記録媒体。
付記20に記載のコンピュータ読み取り可能な記録媒体。
付記20に記載のコンピュータ読み取り可能な記録媒体。
20 集計部
30、30-1~30-d 座標列集計部
40 データ構造
41 区間検索用データ構造
42 座標列集計用データ構造
43 記憶部
50 入力受付部
60 出力部
100 情報処理装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
Claims (28)
- 多次元空間上の点の集合を表現するデータ構造を処理対象とする情報処理装置であって、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記点の集合を一列に並べて得られた点の列上にあり、且つ、前記多次元空間を構成する全次元のうち1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている点のみによって構成されている、区間を特定する、区間検索部と、
前記区間検索部で特定された区間について、当該区間に出現する点が前記クエリ領域に含まれるための条件として、除かれた前記1つの次元における座標の値の範囲を特定する、集計部と、
前記区間検索部で特定された区間、及び前記集計部で特定された前記座標の値の範囲を入力として、
前記点の列の並び順と同じ順序で、前記点の集合の各点における、除かれた前記1つの次元での座標を取り出すことで得られる、座標列に関して、当該座標列において入力された前記区間に出現し、且つ、値が入力された前記範囲に含まれる、全ての座標について、
前記全ての座標が対応する点の集合に関する統計量を計算する、座標列集計部と、
を備えている、ことを特徴とする情報処理装置。 - 前記座標列集計部が、前記多次元空間を構成する全次元それぞれ毎に備えられており、それぞれ、対応する次元と前記集計部が座標の値の範囲を特定した次元とが一致する場合に、前記点の集合に関する統計量を計算する、
請求項1に記載の情報処理装置。 - 前記集計部が、前記区間検索部によって特定された区間が複数である場合に、前記座標列集計部によって計算された区間毎の前記点の集合に関する統計量を、更に集計し、集計によって得られた統計量を、前記クエリ領域に含まれる点の集合に関する全体的な統計量として、出力する、
請求項1または2に記載の情報処理装置。 - 前記データ構造が、前記区間検索部による前記区間の特定に用いられる第1のデータ構造と、前記座標列集計部による前記統計量の計算に用いられる第2のデータ構造とを有している、
請求項1~3のいずれかに記載の情報処理装置。 - 前記第1のデータ構造が、
前記多次元空間に設定された複数のカバー領域のいずれかと、前記点の列上において当該カバー領域に含まれる点が出現する区間とに関連付けられている、ノードを有する木構造によって表現されており、
前記区間検索部が、
前記ノードのうち、
関連付けられた前記カバー領域に含まれる点における、前記1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている、ノードを特定し、
特定した1又は2以上のノードが関連付けられている区間を前記区間として特定する、
請求項4に記載の情報処理装置。 - 前記点の列は、
前記ノードに関連付けられたカバー領域それぞれに含まれる点が、ひとつながりで連続して出現するように、前記点の集合に含まれる点を一列に並べて得られている、
請求項5に記載の情報処理装置。 - 前記座標列集計部は、前記第2のデータ構造を用いて、
前記座標列から得られる複数の部分列のうち、入力された前記範囲に含まれる座標のみが出現する部分列を特定し、そして、特定した部分列上の区間であって、前記座標列において入力された前記区間に出現する座標が出現している、第二の区間を特定し、
更に、特定した前記第二の区間に出現する座標が対応する点の集合に関する統計量を計算する、
請求項4~6のいずれかに記載の情報処理装置。 - 前記部分列が、座標のビット表現が同じ接頭辞で始まる座標を、座標同士の位置関係を保ったまま抽出することで得られるものであり、
前記第2のデータ構造が、
前記部分列に関連付けられた複数のノードを有し、
前記複数のノードそれぞれは、前記部分列において出現する各座標のビット表現における、一つ以上の特定の桁のビットを取り出し、取り出した前記ビットを前記部分列と同じ順序で並べることによって得られる、ビットの列を用いて表現され、
前記座標列集計部は、前記複数ノードそれぞれを表現するビットの列を用いて、前記第二の区間を特定する、
請求項7に記載の情報処理装置。 - 前記座標列集計部が、前記全ての座標が対応する点の集合に関する統計量として、前記全ての座標が対応する点の個数を計算する、
請求項1~8のいずれかに記載の情報処理装置。 - 前記座標列集計部が、前記全ての座標が対応する点の集合に関する統計量として、前記全ての座標が対応する点それぞれの各次元の座標を計算する、
請求項1~8のいずれかに記載の情報処理装置。 - 多次元空間上の点の集合を表現するデータ構造を処理対象とする情報処理方法であって、
(a)クエリ領域として、特定の多次元の領域が指定された場合に、
前記点の集合を一列に並べて得られた点の列上にあり、且つ、前記多次元空間を構成する全次元のうち1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている点のみによって構成されている、区間を特定する、ステップと、
(b)前記(a)のステップで特定された区間について、当該区間に出現する点が前記クエリ領域に含まれるための条件として、除かれた前記1つの次元における座標の値の範囲を特定する、ステップと、
(c)前記(a)のステップで特定された区間、及び前記(b)のステップで特定された前記座標の値の範囲を入力として、
前記点の列の並び順と同じ順序で、前記点の集合の各点における、除かれた前記1つの次元での座標を取り出すことで得られる、座標列に関して、当該座標列において入力された前記区間に出現し、且つ、値が入力された前記範囲に含まれる、全ての座標について、
前記全ての座標が対応する点の集合に関する統計量を計算する、ステップと、
を有する、ことを特徴とする情報処理方法。 - (d)前記(a)のステップによって特定された区間が複数である場合に、前記(b)のステップによって計算された区間毎の前記点の集合に関する統計量を、更に集計し、集計によって得られた統計量を、前記クエリ領域に含まれる点の集合に関する全体的な統計量として、出力する、ステップを更に有する、
請求項11に記載の情報処理方法。 - 前記データ構造が、前記(a)のステップによる前記区間の特定に用いられる第1のデータ構造と、前記(c)のステップによる前記統計量の計算に用いられる第2のデータ構造とを有している、
請求項11または12に記載の情報処理方法。 - 前記第1のデータ構造が、
前記多次元空間に設定された複数のカバー領域のいずれかと、前記点の列上において当該カバー領域に含まれる点が出現する区間とに関連付けられている、ノードを有する木構造によって表現されており、
前記(a)のステップにおいて、
前記ノードのうち、
関連付けられた前記カバー領域に存在する点における、前記1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている、ノードを特定し、
特定した1又は2以上のノードが関連付けられている区間を前記区間として特定する、
請求項13に記載の情報処理方法。 - 前記点の列は、
前記ノードに関連付けられたカバー領域それぞれに存在する点が、ひとつながりで連続して出現するように、前記点の集合に含まれる点を一列に並べて得られている、
請求項14に記載の情報処理方法。 - 前記(c)のステップにおいて、前記第2のデータ構造を用いて、
前記座標列から得られる複数の部分列のうち、入力された前記範囲に含まれる座標のみが出現する部分列を特定し、そして、特定した部分列上の区間であって、前記座標列において入力された前記区間に出現する座標が出現している、第二の区間を特定し、
更に、特定した前記第二の区間に出現する座標が対応する点の集合に関する統計量を計算する、
請求項13に記載の情報処理方法。 - 前記部分列が、座標のビット表現が同じ接頭辞で始まる座標を、座標同士の位置関係を保ったまま抽出することで得られるものであり、
前記第2のデータ構造が、
前記部分列に関連付けられた複数のノードを有し、
前記複数のノードそれぞれは、前記部分列において出現する各座標のビット表現における、一つ以上の特定の桁のビットを取り出し、取り出した前記ビットを前記部分列と同じ順序で並べることによって得られる、ビットの列を用いて表現され、
前記(c)のステップにおいて、前記複数ノードそれぞれを表現するビットの列を用いて、前記第二の区間を特定する、
請求項16に記載の情報処理方法。 - 前記(c)のステップにおいて、前記全ての座標が対応する点の集合に関する統計量として、前記全ての座標が対応する点の個数を計算する、
請求項11~17のいずれかに記載の情報処理方法。 - 前記(c)のステップにおいて、前記全ての座標が対応する点の集合に関する統計量として、前記全ての座標が対応する点それぞれの各次元の座標を計算する、
請求項11~17に記載の情報処理方法。 - 多次元空間上の点の集合を表現するデータ構造を処理対象とする情報処理をコンピュータによって行なうためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
(a)クエリ領域として、特定の多次元の領域が指定された場合に、
前記点の集合を一列に並べて得られた点の列上にあり、且つ、前記多次元空間を構成する全次元のうち1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている点のみによって構成されている、区間を特定する、ステップと、
(b)前記(a)のステップで特定された区間について、当該区間に出現する点が前記クエリ領域に含まれるための条件として、除かれた前記1つの次元における座標の値の範囲を特定する、ステップと、
(c)前記(a)のステップで特定された区間、及び前記(b)のステップで特定された前記座標の値の範囲を入力として、
前記点の列の並び順と同じ順序で、前記点の集合の各点における、除かれた前記1つの次元での座標を取り出すことで得られる、座標列に関して、当該座標列において入力された前記区間に出現し、且つ、値が入力された前記範囲に含まれる、全ての座標について、
前記全ての座標が対応する点の集合に関する統計量を計算する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。 - 前記プログラムが、前記コンピュータに、
(d)前記(a)のステップによって特定された区間が複数である場合に、前記(b)のステップによって計算された区間毎の前記点の集合に関する統計量を、更に集計し、集計によって得られた統計量を、前記クエリ領域に含まれる点の集合に関する全体的な統計量として、出力する、ステップを実行させる命令を更に含む、
請求項20に記載のコンピュータ読み取り可能な記録媒体。 - 前記データ構造が、前記(a)のステップによる前記区間の特定に用いられる第1のデータ構造と、前記(c)のステップによる前記統計量の計算に用いられる第2のデータ構造とを有している、
請求項20または21に記載のコンピュータ読み取り可能な記録媒体。 - 前記第1のデータ構造が、
前記多次元空間に設定された複数のカバー領域のいずれかと、前記点の列上において当該カバー領域に含まれる点が出現する区間とに関連付けられている、ノードを有する木構造によって表現されており、
前記(a)のステップにおいて、
前記ノードのうち、
関連付けられた前記カバー領域に存在する点における、前記1つの次元を除いた残りの各次元の座標がクエリ領域に含まれている、ノードを特定し、
特定した1又は2以上のノードが関連付けられている区間を前記区間として特定する、
請求項22に記載のコンピュータ読み取り可能な記録媒体。 - 前記点の列は、
前記ノードに関連付けられたカバー領域それぞれに存在する点が、ひとつながりで連続して出現するように、前記点の集合に含まれる点を一列に並べて得られている、
請求項23に記載のコンピュータ読み取り可能な記録媒体。 - 前記(c)のステップにおいて、前記第2のデータ構造を用いて、
前記座標列から得られる複数の部分列のうち、入力された前記範囲に含まれる座標のみが出現する部分列を特定し、そして、特定した部分列上の区間であって、前記座標列において入力された前記区間に出現する座標が出現している、第二の区間を特定し、
更に、特定した前記第二の区間に出現する座標が対応する点の集合に関する統計量を計算する、
請求項22に記載のコンピュータ読み取り可能な記録媒体。 - 前記部分列が、座標のビット表現が同じ接頭辞で始まる座標を、座標同士の位置関係を保ったまま抽出することで得られるものであり、
前記第2のデータ構造が、
前記部分列に関連付けられた複数のノードを有し、
前記複数のノードそれぞれは、前記部分列において出現する各座標のビット表現における、一つ以上の特定の桁のビットを取り出し、取り出した前記ビットを前記部分列と同じ順序で並べることによって得られる、ビットの列を用いて表現され、
前記(c)のステップにおいて、前記複数ノードそれぞれを表現するビットの列を用いて、前記第二の区間を特定する、
請求項25に記載のコンピュータ読み取り可能な記録媒体。 - 前記(c)のステップにおいて、前記全ての座標が対応する点の集合に関する統計量として、前記全ての座標が対応する点の個数を計算する、
請求項20~26のいずれかに記載のコンピュータ読み取り可能な記録媒体。 - 前記(c)のステップにおいて、前記全ての座標が対応する点の集合に関する統計量として、前記全ての座標が対応する点それぞれの各次元の座標を計算する、
請求項20~26に記載のコンピュータ読み取り可能な記録媒体。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/523,708 US20170322998A1 (en) | 2014-11-07 | 2015-10-19 | Information processing device, information processing method, and computer-readable storage medium |
| JP2016557686A JP6403232B2 (ja) | 2014-11-07 | 2015-10-19 | 情報処理装置、情報処理方法、及びプログラム |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014-227041 | 2014-11-07 | ||
| JP2014227041 | 2014-11-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016072249A1 true WO2016072249A1 (ja) | 2016-05-12 |
Family
ID=55908976
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2015/079476 Ceased WO2016072249A1 (ja) | 2014-11-07 | 2015-10-19 | 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20170322998A1 (ja) |
| JP (1) | JP6403232B2 (ja) |
| WO (1) | WO2016072249A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115834672A (zh) * | 2023-02-16 | 2023-03-21 | 浙江大风智能终端科技有限公司 | 基于定位器的车联网信息处理方法及系统 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120148800A (zh) * | 2025-05-16 | 2025-06-13 | 长治医学院附属和平医院 | 一种输血科用血液标本存储管理系统 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09265479A (ja) * | 1996-03-29 | 1997-10-07 | Hitachi Ltd | 多次元データ処理方法 |
| JPH10293863A (ja) * | 1997-04-21 | 1998-11-04 | Power Reactor & Nuclear Fuel Dev Corp | オブジェクト探索方法およびその方法を用いた装置 |
| JP2014002519A (ja) * | 2012-06-18 | 2014-01-09 | Hitachi Ltd | 時空間データ管理システム、時空間データ管理方法、及びそのプログラム |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW418412B (en) * | 1998-01-19 | 2001-01-11 | Hosiden Corp | Keyboard switch |
| EP2228110B1 (en) * | 2009-03-09 | 2017-08-30 | Nintendo Co., Ltd. | Coordinate calculation apparatus and storage medium having coordinate calculation program stored therein |
-
2015
- 2015-10-19 JP JP2016557686A patent/JP6403232B2/ja active Active
- 2015-10-19 WO PCT/JP2015/079476 patent/WO2016072249A1/ja not_active Ceased
- 2015-10-19 US US15/523,708 patent/US20170322998A1/en not_active Abandoned
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09265479A (ja) * | 1996-03-29 | 1997-10-07 | Hitachi Ltd | 多次元データ処理方法 |
| JPH10293863A (ja) * | 1997-04-21 | 1998-11-04 | Power Reactor & Nuclear Fuel Dev Corp | オブジェクト探索方法およびその方法を用いた装置 |
| JP2014002519A (ja) * | 2012-06-18 | 2014-01-09 | Hitachi Ltd | 時空間データ管理システム、時空間データ管理方法、及びそのプログラム |
Non-Patent Citations (1)
| Title |
|---|
| YOSHITOMO YAGINUMA ET AL.: "One Proposal of a N-Dimensional Multi-Layer Data Structure with Unified Spatial and Attributive Management Capability", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, vol. J75-D-I, no. 2, 25 February 1992 (1992-02-25), pages 88 - 97 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115834672A (zh) * | 2023-02-16 | 2023-03-21 | 浙江大风智能终端科技有限公司 | 基于定位器的车联网信息处理方法及系统 |
| CN115834672B (zh) * | 2023-02-16 | 2023-04-28 | 浙江大风智能终端科技有限公司 | 基于定位器的车联网信息处理方法及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2016072249A1 (ja) | 2017-07-27 |
| JP6403232B2 (ja) | 2018-10-10 |
| US20170322998A1 (en) | 2017-11-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Backurs et al. | Scalable nearest neighbor search for optimal transport | |
| CN112395288B (zh) | 基于希尔伯特曲线的r树索引合并更新方法、装置及介质 | |
| Lee et al. | Efficient local statistical analysis via integral histograms with discrete wavelet transform | |
| CN113806458A (zh) | 时空关联数据的查询方法、装置、电子设备和存储介质 | |
| CN113656670B (zh) | 面向飞行数据的时空轨迹数据管理分析方法和装置 | |
| CN112639786B (zh) | 智能地标 | |
| CN110888880A (zh) | 基于空间索引的邻近分析方法、装置、设备及介质 | |
| CN107506490A (zh) | 滑动窗口下基于位置top‑k关键词查询的优先查询算法及系统 | |
| Gupta et al. | Faster as well as early measurements from big data predictive analytics model | |
| Azri et al. | Review of spatial indexing techniques for large urban data management | |
| US8140546B2 (en) | Computer system for performing aggregation of tree-structured data, and method and computer program product therefor | |
| JP6418658B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
| JP6403232B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
| KR101116663B1 (ko) | 고차원 데이터의 유사도 검색을 위한 데이터 분할방법 | |
| Atallah et al. | Asymptotically efficient algorithms for skyline probabilities of uncertain data | |
| KR102006283B1 (ko) | 패스트맵을 이용한 데이터셋의 m-트리 적재방법 | |
| JP3938815B2 (ja) | ノード作成方法、画像検索方法及び記録媒体 | |
| CN112989193A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
| US11822582B2 (en) | Metadata clustering | |
| CN111625530A (zh) | 一种大规模矢量检索方法及装置 | |
| Liu et al. | GB-Tree: An efficient LBS location data indexing method | |
| JP3615439B2 (ja) | 類似特徴量の検索方法,その検索装置およびその検索プログラム記録媒体 | |
| Yang et al. | Querying a collection of continuous functions | |
| CN110442616A (zh) | 一种针对大数据量的页面访问路径分析方法与系统 | |
| Venkat et al. | A Succinct, Dynamic Data Structure for Proximity Queries on Point Sets. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15857650 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2016557686 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 15523708 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 15857650 Country of ref document: EP Kind code of ref document: A1 |
