JP6418658B2 - 情報処理装置、情報処理方法、及びプログラム - Google Patents
情報処理装置、情報処理方法、及びプログラム Download PDFInfo
- Publication number
- JP6418658B2 JP6418658B2 JP2016548859A JP2016548859A JP6418658B2 JP 6418658 B2 JP6418658 B2 JP 6418658B2 JP 2016548859 A JP2016548859 A JP 2016548859A JP 2016548859 A JP2016548859 A JP 2016548859A JP 6418658 B2 JP6418658 B2 JP 6418658B2
- Authority
- JP
- Japan
- Prior art keywords
- prefix
- section
- coordinate
- coordinates
- feature value
- 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.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 79
- 238000003672 processing method Methods 0.000 title claims description 26
- 238000004364 calculation method Methods 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 14
- 230000001174 ascending effect Effects 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 20
- 238000000034 method Methods 0.000 description 17
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000010845 search algorithm Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/2465—Query processing support for facilitating data mining operations in structured databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Remote Sensing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
前記点の特徴値を表すビット表現から得られる接頭辞を特徴値接頭辞とし、前記点の特定の次元での座標を表すビット表現から得られる接頭辞を座標接頭辞として、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記データ構造を構築している多次元の領域において、前記特徴値接頭辞で始まる領域と次元毎の前記座標接頭辞で始まる領域との共通部分として表現され、且つ、前記クエリ領域に含まれる、領域を特定し、
特定した領域に対応するデータ構造上の区間である選定区間を出力する、検索部と、
前記選定区間を用いて前記クエリ領域に含まれる点の集合に関する情報を計算する、集計部と、
を備えていることを特徴とする。
(a)前記点の特徴値を表すビット表現から得られる接頭辞を特徴値接頭辞とし、前記点の特定の次元での座標を表すビット表現から得られる接頭辞を座標接頭辞として、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記データ構造を構築している多次元の領域において、前記特徴値接頭辞で始まる領域と次元毎の前記座標接頭辞で始まる領域との共通部分として表現され、且つ、前記クエリ領域に含まれる、領域を特定する、ステップと、
(b)前記(a)のステップで特定した領域に対応するデータ構造上の区間である選定区間を出力する、ステップと、
(c)前記選定区間を用いて前記クエリ領域に含まれる点の集合に関する情報を計算する、ステップと、
を有することを特徴とする。
前記コンピュータに、
(a)前記点の特徴値を表すビット表現から得られる接頭辞を特徴値接頭辞とし、前記点の特定の次元での座標を表すビット表現から得られる接頭辞を座標接頭辞として、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記データ構造を構築している多次元の領域において、前記特徴値接頭辞で始まる領域と次元毎の前記座標接頭辞で始まる領域との共通部分として表現され、且つ、前記クエリ領域に含まれる、領域を特定する、ステップと、
(b)前記(a)のステップで特定した領域に対応するデータ構造上の区間である選定区間を出力する、ステップと、
(c)前記選定区間を用いて前記クエリ領域に含まれる点の集合に関する情報を計算する、ステップと、
を実行させる、ことを特徴とする。
最初に、本発明の基本的な原理について、一般的なkd木を例に挙げて以下に説明する。
ここで、本明細書で用いられる種々の概念について以下に説明する。本明細書では、全ての点の座標piが[0,n-1]の整数で表されるものとする。さらに、これらの整数は、二進表現で長さl=ceil(log n)のビットで表されるとする。なお、ceil()は天井関数を表す。logは底を2とする対数関数を表す。
包含条件:lqk ≦ lπk かつ uπk ≦ uqk
続いて、本発明の実施の形態における、情報処理装置、情報処理方法、及びプログラムについて、図1〜図13を参照しながら説明する。
最初に、本実施の形態における情報処理装置の概略構成について図2を用いて説明する。図2は、本発明の実施の形態における情報処理装置の概略構成を示すブロック図である。図2に示す本実施の形態における情報処理装置100は、多次元空間上の点の集合を表現するデータ構造を処理対象とする装置である。そして、図2に示すように、情報処理装置100は、検索部10と、集計部20とを備えている。
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において用いられる探索アルゴリズムの概要について以下に説明する。
V= (πz, <v1,[s1,e1] >, <v2, [s2,e2]>, <v3, [s3,e3] >, ..., <vd, [sd,ed]>)
Y = (πr , <vr,[sr,er] >)
次に、本発明の実施の形態における情報処理装置100の動作について図6を用いて説明する。図6は、本発明の実施の形態における情報処理装置の動作を示すフロー図である。また、以下の説明においては、適宜図1〜図4を参酌する。また、本実施の形態では、情報処理装置100を動作させることによって、情報処理方法が実施される。よって、本実施の形態における情報処理方法の説明は、以下の情報処理装置100の動作説明に代える。
続いて、図6に示したステップA3について、図7〜図10を用いて更に具体的に説明する。図7は、再帰的に矩形範囲検索する関数range_search(V,Q)の動作を示すフロー図である。この関数は検索部10が、記憶部50に問い合わせを行なうことで実現される。
図7のアルゴリズムについて詳細に説明する前に、図7のアルゴリズムの概要と、前提となる概念を説明する。
V= (πz, <v1,[s1,e1] >, <v2, [s2,e2]>) = ("011***", <v1,[0,1] >, <v2, [0,1] >)
続いて、以上に述べた探索アルゴリズムの概要を踏まえて、図7に示すアルゴリズムについて、以下に詳細に説明する。
return range_search(Vleft, Q) ∪range_search(Vright, Q)
続いて、図8を用いて、ステップB5における処理を具体的に説明する。図8は、Z値探索ノードVの左右の子ノードを計算する関数get_children(V)の動作を示すフロー図である。この関数get_children(V)も、検索部10が、記憶部50に問い合わせることで実現される。
π’k= πk+b (k=g のとき)
πk (それ以外のとき)
[s'1,e'1] =[s1+nz0,e1]=[0+1,1]=[1,1]
π’z= "0111**"、π’1="01*"、π’2="11*"、Z[s'z,e'z] = Z[3,3]、P1(π’1)[s'1,e'1]=P1(π’1)[1,1]、P2(π’2)[s'2,e'2]=P2(π’2)[0,0]
上述した考察をアルゴリズムの形にしたものが図8に示すアルゴリズムである。図8に示すアルゴリズムについて、以下に詳細に説明する。また、図8に示すアルゴリズムにおいては、以下のようにZ値探索ノードVの左右の子ノードを計算する処理が実行される。更に、VleftをZ値探索ノードVの左の子ノードを表すタプルとし、VrightをZ値探索ノードVの右の子ノードを表すタプルとする。
続いて、図7に示したステップB6について、図9及び図10を用いて説明する。関数range_search_1d(V,Q)は、Z値探索ノードVとクエリ領域Qとを入力として、クエリ領域Qに包含されるようなカバー領域C(πz∧πr)に対応する区間を保持する選定区間ノードYを返す関数である。
次に、図7に示したステップB6を具体的に説明する。図9は、図7に示す関数range_search_1d(V,Q)の動作を示す図である。図9に示すように、検索部10は、関数range_search_1d(V,Q)を呼び出し、Z値探索ノードVのカバー領域が、クエリ領域Qに包含されていない次元rを計算する(ステップD1)。
return range_search_1d_rec(πr, V.vr, V.sr, V.er, Q.lqr, Q.uqr)
return range_search_1d_rec(πr+”0”, vleft, sleft, eleft, lqr, uqr) ∪ range_search_1d_rec(πr+”1”, vright, sright, eright, lqr, uqr)
続いて、図6に示したステップA4で呼び出される関数aggregate({Y})について説明す
る。この関数は集計部20によって実行される。
本実施の形態は、kd木よりも計算量が少なくなる効果がある。このことを明らかにするため、最悪計算量について解析する。通常のkd木は、包含次元数がdになるまで分割する手法であるのに対して、本実施の形態における手法は、d-1になるまで分割する手法である。このことが最悪計算量におよぼす影響を以下に述べる。
である。
本発明の実施の形態におけるプログラムは、コンピュータに、図6に示すステップA1〜A5を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における情報処理装置と情報処理方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、検索部10、集計部20、入力受付部30、及び出力部40として機能し、処理を行なう。また、本実施の形態では、記憶部50は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現される。
多次元空間上の点の集合を表現するデータ構造を処理対象とする情報処理装置であって、
前記点の特徴値を表すビット表現から得られる接頭辞を特徴値接頭辞とし、前記点の特定の次元での座標を表すビット表現から得られる接頭辞を座標接頭辞として、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記データ構造を構築している多次元の領域において、前記特徴値接頭辞で始まる領域と次元毎の前記座標接頭辞で始まる領域との共通部分として表現され、且つ、前記クエリ領域に含まれる、領域を特定し、
特定した領域に対応するデータ構造上の区間である選定区間を出力する、検索部と、
前記選定区間を用いて前記クエリ領域に含まれる点の集合に関する情報を計算する、集計部と、
を備えていることを特徴とする情報処理装置。
前記データ構造が、
多次元上の前記点の集合それぞれの前記特徴値を、昇順に並べて得られる、特徴値列から、各次元について、前記特徴値の並び順と同じ順序で、各点の当該次元での座標を取り出すことで得られる座標列を用いて、次元毎に、前記座標列から、座標のビット表現が同じ座標接頭辞で始まる座標だけを、前記順番と同じ順序を保ったまま抽出して得られる部分列の、ビット表現の一部を用いて表現され、且つ、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されており、
前記検索部が、
前記部分列上の区間であって、当該区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、当該区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
付記1に記載の情報処理装置。
前記検索部が、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間について、この区間に含まれる座標に対応する点の集合が前記クエリ領域に完全に包含される区間であるかどうかを判定し、
判定の結果、前記クエリ領域に完全に包含される区間ではない場合に、
前記判定の対象となった前記部分列の抽出に用いられる前記座標接頭辞を延長して、第二の座標接頭辞を設定し、
そして、前記第二の接頭辞を用いて座標を抽出して得られた第二の部分列上の区間であって、前記第二の部分列上の区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、前記第二の部分列上の区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
付記2に記載の情報処理装置。
前記点の特徴値が、前記点の各次元の座標のビット表現を交互に組み合わせて得られるビット表現に基づく値である、
付記1に記載の情報処理装置。
前記データ構造が、複数のノードを有し、前記複数のノードそれぞれは、前記部分列に対応する各座標のビット表現における特定の桁のビットだけを取り出し、前記部分列と同じ順序で並べた前記ビットの列を用いて表現され、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されている、
付記2に記載の情報処理装置。
前記集計部が、前記情報として、前記選定区間の長さを合計した値を計算し、計算した値を出力する、
付記1に記載の情報処理装置。
前記集計部が、前記情報として、前記選定区間に含まれる各次元の座標を全て計算し、計算した全ての座標を出力する、
付記1に記載の情報処理装置。
多次元空間上の点の集合を表現するデータ構造を処理対象とする情報処理方法であって、
(a)前記点の特徴値を表すビット表現から得られる接頭辞を特徴値接頭辞とし、前記点の特定の次元での座標を表すビット表現から得られる接頭辞を座標接頭辞として、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記データ構造を構築している多次元の領域において、前記特徴値接頭辞で始まる領域と次元毎の前記座標接頭辞で始まる領域との共通部分として表現され、且つ、前記クエリ領域に含まれる、領域を特定する、ステップと、
(b)前記(a)のステップで特定した領域に対応するデータ構造上の区間である選定区間を出力する、ステップと、
(c)前記選定区間を用いて前記クエリ領域に含まれる点の集合に関する情報を計算する、ステップと、
を有することを特徴とする情報処理方法。
前記データ構造が、
多次元上の前記点の集合それぞれの前記特徴値を、昇順に並べて得られる、特徴値列から、各次元について、前記特徴値の並び順と同じ順序で、各点の当該次元での座標を取り出すことで得られる座標列を用いて、次元毎に、前記座標列から、座標のビット表現が同じ座標接頭辞で始まる座標だけを、前記順番と同じ順序を保ったまま抽出して得られる部分列の、ビット表現の一部を用いて表現され、且つ、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されており、
前記(a)のステップにおいて、
前記部分列上の区間であって、当該区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、当該区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
付記8に記載の情報処理方法。
前記(a)のステップにおいて、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間について、この区間に含まれる座標に対応する点の集合が前記クエリ領域に完全に包含される区間であるかどうかを判定し、
判定の結果、前記クエリ領域に完全に包含される区間ではない場合に、
前記判定の対象となった前記部分列の抽出に用いられる前記座標接頭辞を延長して、第二の座標接頭辞を設定し、
そして、前記第二の接頭辞を用いて座標を抽出して得られた第二の部分列上の区間であって、前記第二の部分列上の区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、前記第二の部分列上の区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
付記9に記載の情報処理方法。
前記点の特徴値が、前記点の各次元の座標のビット表現を交互に組み合わせて得られるビット表現に基づく値である、
付記8に記載の情報処理方法。
前記データ構造が、複数のノードを有し、前記複数のノードそれぞれは、前記部分列に対応する各座標のビット表現における特定の桁のビットだけを取り出し、前記部分列と同じ順序で並べた前記ビットの列を用いて表現され、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されている、
付記9に記載の情報処理方法。
前記(c)のステップにおいて、前記情報として、前記選定区間の長さを合計した値を計算し、計算した値を出力する、
付記8に記載の情報処理方法。
前記(c)のステップにおいて、前記情報として、前記選定区間に含まれる各次元の座標を全て計算し、計算した全ての座標を出力する、
付記8に記載の情報処理方法。
コンピュータによって、多次元空間上の点の集合を表現するデータ構造を処理対象として情報処理を行なうためのプログラムであって、
前記コンピュータに、
(a)前記点の特徴値を表すビット表現から得られる接頭辞を特徴値接頭辞とし、前記点の特定の次元での座標を表すビット表現から得られる接頭辞を座標接頭辞として、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記データ構造を構築している多次元の領域において、前記特徴値接頭辞で始まる領域と次元毎の前記座標接頭辞で始まる領域との共通部分として表現され、且つ、前記クエリ領域に含まれる、領域を特定する、ステップと、
(b)前記(a)のステップで特定した領域に対応するデータ構造上の区間である選定区間を出力する、ステップと、
(c)前記選定区間を用いて前記クエリ領域に含まれる点の集合に関する情報を計算する、ステップと、
を実行させる、プログラム。
前記データ構造が、
多次元上の前記点の集合それぞれの前記特徴値を、昇順に並べて得られる、特徴値列から、各次元について、前記特徴値の並び順と同じ順序で、各点の当該次元での座標を取り出すことで得られる座標列を用いて、次元毎に、前記座標列から、座標のビット表現が同じ座標接頭辞で始まる座標だけを、前記順番と同じ順序を保ったまま抽出して得られる部分列の、ビット表現の一部を用いて表現され、且つ、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されており、
前記(a)のステップにおいて、
前記部分列上の区間であって、当該区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、当該区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
付記15に記載のプログラム。
前記(a)のステップにおいて、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間について、この区間に含まれる座標に対応する点の集合が前記クエリ領域に完全に包含される区間であるかどうかを判定し、
判定の結果、前記クエリ領域に完全に包含される区間ではない場合に、
前記判定の対象となった前記部分列の抽出に用いられる前記座標接頭辞を延長して、第二の座標接頭辞を設定し、
そして、前記第二の接頭辞を用いて座標を抽出して得られた第二の部分列上の区間であって、前記第二の部分列上の区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、前記第二の部分列上の区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
付記16に記載のプログラム。
前記点の特徴値が、前記点の各次元の座標のビット表現を交互に組み合わせて得られるビット表現に基づく値である、
付記15に記載のプログラム。
前記データ構造が、複数のノードを有し、前記複数のノードそれぞれは、前記部分列に対応する各座標のビット表現における特定の桁のビットだけを取り出し、前記部分列と同じ順序で並べた前記ビットの列を用いて表現され、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されている、
付記16に記載のプログラム。
前記(c)のステップにおいて、前記情報として、前記選定区間の長さを合計した値を計算し、計算した値を出力する、
付記15に記載のプログラム。
前記(c)のステップにおいて、前記情報として、前記選定区間に含まれる各次元の座標を全て計算し、計算した全ての座標を出力する、
付記15に記載のプログラム。
20 集計部
30 入力受付部
40 出力部
50 記憶部
51 データ構造
100 情報処理装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
Claims (21)
- 多次元空間上の点の集合を表現するデータ構造を処理対象とする情報処理装置であって、
前記点の特徴値を表すビット表現から得られる接頭辞を特徴値接頭辞とし、前記点の特定の次元での座標を表すビット表現から得られる接頭辞を座標接頭辞として、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記データ構造を構築している多次元の領域において、前記特徴値接頭辞で始まる領域と次元毎の前記座標接頭辞で始まる領域との共通部分として表現され、且つ、前記クエリ領域に含まれる、領域を特定し、
特定した領域に対応するデータ構造上の区間である選定区間を出力する、検索部と、
前記選定区間を用いて前記クエリ領域に含まれる点の集合に関する情報を計算する、集計部と、
を備えていることを特徴とする情報処理装置。 - 前記データ構造が、
多次元上の前記点の集合それぞれの前記特徴値を、昇順に並べて得られる、特徴値列から、各次元について、前記特徴値の並び順と同じ順序で、各点の当該次元での座標を取り出すことで得られる座標列を用いて、次元毎に、前記座標列から、座標のビット表現が同じ座標接頭辞で始まる座標だけを、前記順番と同じ順序を保ったまま抽出して得られる部分列の、ビット表現の一部を用いて表現され、且つ、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されており、
前記検索部が、
前記部分列上の区間であって、当該区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、当該区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
請求項1に記載の情報処理装置。 - 前記検索部が、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間について、この区間に含まれる座標に対応する点の集合が前記クエリ領域に完全に包含される区間であるかどうかを判定し、
判定の結果、前記クエリ領域に完全に包含される区間ではない場合に、
前記判定の対象となった前記部分列の抽出に用いられる前記座標接頭辞を延長して、第二の座標接頭辞を設定し、
そして、前記第二の接頭辞を用いて座標を抽出して得られた第二の部分列上の区間であって、前記第二の部分列上の区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、前記第二の部分列上の区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
請求項2に記載の情報処理装置。 - 前記点の特徴値が、前記点の各次元の座標のビット表現を交互に組み合わせて得られるビット表現に基づく値である、
請求項1〜3のいずれかに記載の情報処理装置。 - 前記データ構造が、複数のノードを有し、前記複数のノードそれぞれは、前記部分列に対応する各座標のビット表現における特定の桁のビットだけを取り出し、前記部分列と同じ順序で並べた前記ビットの列を用いて表現され、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されている、
請求項2または3に記載の情報処理装置。 - 前記集計部が、前記情報として、前記選定区間の長さを合計した値を計算し、計算した値を出力する、
請求項1〜5のいずれかに記載の情報処理装置。 - 前記集計部が、前記情報として、前記選定区間に含まれる各次元の座標を全て計算し、計算した全ての座標を出力する、
請求項1〜5のいずれかに記載の情報処理装置。 - 多次元空間上の点の集合を表現するデータ構造を処理対象とする情報処理方法であって、
(a)コンピュータによって、前記点の特徴値を表すビット表現から得られる接頭辞を特徴値接頭辞とし、前記点の特定の次元での座標を表すビット表現から得られる接頭辞を座標接頭辞として、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記データ構造を構築している多次元の領域において、前記特徴値接頭辞で始まる領域と次元毎の前記座標接頭辞で始まる領域との共通部分として表現され、且つ、前記クエリ領域に含まれる、領域を特定する、ステップと、
(b)前記コンピュータによって、前記(a)のステップで特定した領域に対応するデータ構造上の区間である選定区間を出力する、ステップと、
(c)前記コンピュータによって、前記選定区間を用いて前記クエリ領域に含まれる点の集合に関する情報を計算する、ステップと、
を有することを特徴とする情報処理方法。 - 前記データ構造が、
多次元上の前記点の集合それぞれの前記特徴値を、昇順に並べて得られる、特徴値列から、各次元について、前記特徴値の並び順と同じ順序で、各点の当該次元での座標を取り出すことで得られる座標列を用いて、次元毎に、前記座標列から、座標のビット表現が同じ座標接頭辞で始まる座標だけを、前記順番と同じ順序を保ったまま抽出して得られる部分列の、ビット表現の一部を用いて表現され、且つ、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されており、
前記(a)のステップにおいて、
前記部分列上の区間であって、当該区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、当該区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
請求項8に記載の情報処理方法。 - 前記(a)のステップにおいて、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間について、この区間に含まれる座標に対応する点の集合が前記クエリ領域に完全に包含される区間であるかどうかを判定し、
判定の結果、前記クエリ領域に完全に包含される区間ではない場合に、
前記判定の対象となった前記部分列の抽出に用いられる前記座標接頭辞を延長して、第二の座標接頭辞を設定し、
そして、前記第二の接頭辞を用いて座標を抽出して得られた第二の部分列上の区間であって、前記第二の部分列上の区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、前記第二の部分列上の区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
請求項9に記載の情報処理方法。 - 前記点の特徴値が、前記点の各次元の座標のビット表現を交互に組み合わせて得られるビット表現に基づく値である、
請求項8〜10のいずれかに記載の情報処理方法。 - 前記データ構造が、複数のノードを有し、前記複数のノードそれぞれは、前記部分列に対応する各座標のビット表現における特定の桁のビットだけを取り出し、前記部分列と同じ順序で並べた前記ビットの列を用いて表現され、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されている、
請求項9または10に記載の情報処理方法。 - 前記(c)のステップにおいて、前記情報として、前記選定区間の長さを合計した値を計算し、計算した値を出力する、
請求項8〜12のいずれかに記載の情報処理方法。 - 前記(c)のステップにおいて、前記情報として、前記選定区間に含まれる各次元の座標を全て計算し、計算した全ての座標を出力する、
請求項8〜12のいずれかに記載の情報処理方法。 - コンピュータによって、多次元空間上の点の集合を表現するデータ構造を処理対象として情報処理を行なうためのプログラムであって、
前記コンピュータに、
(a)前記点の特徴値を表すビット表現から得られる接頭辞を特徴値接頭辞とし、前記点の特定の次元での座標を表すビット表現から得られる接頭辞を座標接頭辞として、
クエリ領域として、特定の多次元の領域が指定された場合に、
前記データ構造を構築している多次元の領域において、前記特徴値接頭辞で始まる領域と次元毎の前記座標接頭辞で始まる領域との共通部分として表現され、且つ、前記クエリ領域に含まれる、領域を特定する、ステップと、
(b)前記(a)のステップで特定した領域に対応するデータ構造上の区間である選定区間を出力する、ステップと、
(c)前記選定区間を用いて前記クエリ領域に含まれる点の集合に関する情報を計算する、ステップと、
を実行させる、プログラム。 - 前記データ構造が、
多次元上の前記点の集合それぞれの前記特徴値を、昇順に並べて得られる、特徴値列から、各次元について、前記特徴値の並び順と同じ順序で、各点の当該次元での座標を取り出すことで得られる座標列を用いて、次元毎に、前記座標列から、座標のビット表現が同じ座標接頭辞で始まる座標だけを、前記順番と同じ順序を保ったまま抽出して得られる部分列の、ビット表現の一部を用いて表現され、且つ、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されており、
前記(a)のステップにおいて、
前記部分列上の区間であって、当該区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、当該区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
請求項15に記載のプログラム。 - 前記(a)のステップにおいて、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間について、この区間に含まれる座標に対応する点の集合が前記クエリ領域に完全に包含される区間であるかどうかを判定し、
判定の結果、前記クエリ領域に完全に包含される区間ではない場合に、
前記判定の対象となった前記部分列の抽出に用いられる前記座標接頭辞を延長して、第二の座標接頭辞を設定し、
そして、前記第二の接頭辞を用いて座標を抽出して得られた第二の部分列上の区間であって、前記第二の部分列上の区間に含まれる座標に対応する点の特徴値のビット表現が前記特徴値接頭辞で始まっており、且つ、前記第二の部分列上の区間に含まれる座標に対応する点の集合が全て前記クエリ領域に包含される区間を、前記選定区間として出力する、
請求項16に記載のプログラム。 - 前記点の特徴値が、前記点の各次元の座標のビット表現を交互に組み合わせて得られるビット表現に基づく値である、
請求項15〜17のいずれかに記載のプログラム。 - 前記データ構造が、複数のノードを有し、前記複数のノードそれぞれは、前記部分列に対応する各座標のビット表現における特定の桁のビットだけを取り出し、前記部分列と同じ順序で並べた前記ビットの列を用いて表現され、
前記部分列上の区間であって、当該区間に含まれる座標に対応した点の特徴値のビット表現が前記特徴値接頭辞から始まっている区間を特定できるように、
構築されている、
請求項16または17に記載のプログラム。 - 前記(c)のステップにおいて、前記情報として、前記選定区間の長さを合計した値を計算し、計算した値を出力する、
請求項15〜19のいずれかに記載のプログラム。 - 前記(c)のステップにおいて、前記情報として、前記選定区間に含まれる各次元の座標を全て計算し、計算した全ての座標を出力する、
請求項15〜19のいずれかに記載のプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014191102 | 2014-09-19 | ||
JP2014191102 | 2014-09-19 | ||
PCT/JP2015/075747 WO2016043121A1 (ja) | 2014-09-19 | 2015-09-10 | 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016043121A1 JPWO2016043121A1 (ja) | 2017-07-13 |
JP6418658B2 true JP6418658B2 (ja) | 2018-11-07 |
Family
ID=55533159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016548859A Active JP6418658B2 (ja) | 2014-09-19 | 2015-09-10 | 情報処理装置、情報処理方法、及びプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10795920B2 (ja) |
EP (1) | EP3196780A4 (ja) |
JP (1) | JP6418658B2 (ja) |
CN (1) | CN107077481B (ja) |
WO (1) | WO2016043121A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6872333B2 (ja) * | 2016-09-16 | 2021-05-19 | 株式会社Preferred Networks | 最大内積探索装置、最大内積探索方法及び最大内積探索プログラム |
JP6672190B2 (ja) * | 2017-01-16 | 2020-03-25 | 株式会社東芝 | データベースシステムおよびデータ処理方法 |
WO2022033696A1 (en) * | 2020-08-13 | 2022-02-17 | Huawei Technologies Co., Ltd. | Apparatus and method for distributing data over a plurality of database nodes |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7167856B2 (en) * | 2001-05-15 | 2007-01-23 | Jonathan Keir Lawder | Method of storing and retrieving multi-dimensional data using the hilbert curve |
US8634072B2 (en) * | 2004-03-06 | 2014-01-21 | Michael Trainer | Methods and apparatus for determining characteristics of particles |
JP2010016050A (ja) * | 2008-07-01 | 2010-01-21 | Fujitsu Ten Ltd | 電子回路 |
JP4513931B2 (ja) * | 2008-12-09 | 2010-07-28 | ソニー株式会社 | 光学体、窓材、ブラインド、ロールカーテン、および障子 |
JP5237837B2 (ja) | 2009-01-07 | 2013-07-17 | 株式会社日立製作所 | 空間データ管理装置、空間データ管理方法、および、空間データ管理プログラム |
US8417708B2 (en) * | 2009-02-09 | 2013-04-09 | Xerox Corporation | Average case analysis for efficient spatial data structures |
US9565404B2 (en) * | 2012-07-30 | 2017-02-07 | Apple Inc. | Encoding techniques for banding reduction |
JP6187478B2 (ja) * | 2013-01-11 | 2017-08-30 | 日本電気株式会社 | インデックスキー生成装置及びインデックスキー生成方法並びに検索方法 |
US10120880B2 (en) * | 2014-06-26 | 2018-11-06 | Amazon Technologies, Inc. | Automatic image-based recommendations using a color palette |
-
2015
- 2015-09-10 EP EP15842969.6A patent/EP3196780A4/en not_active Withdrawn
- 2015-09-10 WO PCT/JP2015/075747 patent/WO2016043121A1/ja active Application Filing
- 2015-09-10 JP JP2016548859A patent/JP6418658B2/ja active Active
- 2015-09-10 US US15/511,696 patent/US10795920B2/en active Active
- 2015-09-10 CN CN201580050276.3A patent/CN107077481B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US10795920B2 (en) | 2020-10-06 |
CN107077481B (zh) | 2021-01-22 |
US20170293636A1 (en) | 2017-10-12 |
EP3196780A4 (en) | 2018-04-25 |
EP3196780A1 (en) | 2017-07-26 |
WO2016043121A1 (ja) | 2016-03-24 |
JPWO2016043121A1 (ja) | 2017-07-13 |
CN107077481A (zh) | 2017-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Backurs et al. | Scalable nearest neighbor search for optimal transport | |
JP6028567B2 (ja) | データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法 | |
US11106708B2 (en) | Layered locality sensitive hashing (LSH) partition indexing for big data applications | |
JP6973150B2 (ja) | 最短経路行列生成プログラム、装置、及び方法 | |
US9619501B2 (en) | Index scan device and index scan method | |
CN106874425B (zh) | 基于Storm的实时关键词近似搜索算法 | |
JPWO2013129580A1 (ja) | 近似最近傍探索装置、近似最近傍探索方法およびそのプログラム | |
US20140082021A1 (en) | Hierarchical ordering of strings | |
JP6434162B2 (ja) | データ管理システム、データ管理方法およびプログラム | |
JP6418658B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2023543004A (ja) | ヒルベルト曲線に基づくr木インデックスのマージ更新方法、装置及び媒体 | |
JP7080803B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
US9116970B2 (en) | In-database connectivity components analysis of data | |
KR102006283B1 (ko) | 패스트맵을 이용한 데이터셋의 m-트리 적재방법 | |
JP6403232B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP3938815B2 (ja) | ノード作成方法、画像検索方法及び記録媒体 | |
JP2007073063A (ja) | 空間インデックス方法 | |
JP7121706B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JP3615439B2 (ja) | 類似特徴量の検索方法,その検索装置およびその検索プログラム記録媒体 | |
KR102062139B1 (ko) | 지능형 자료구조 기반의 데이터 처리 방법 및 그를 위한 장치 | |
JP2020187644A (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JP7388661B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
US11822582B2 (en) | Metadata clustering | |
JP7464499B2 (ja) | コード化装置、コード化方法及びコード化プログラム | |
JP7122293B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170306 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170306 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180731 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180911 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181004 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6418658 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |