4
空間データ構造 GBD 木における k-NN 検索アルゴリズム 大沢 裕・栗原孝暢・大木彩加・王 玉娜 -NN Search Algorithm on Spatial Data Structure GBD Tree Yutaka OHSAWA, Takanobu KURIHARA, Ayaka OHKI, Yuna WANG Abstract: This paper describes about k-NN algorithm on the GBD tree. The GBD tree is a spatial data structure suitable for two or three dimensional data, and it performs good characteristics on dynamic data environment. For GIS, R-tree and its successors have been used. Then, k-NN search algorithms also have been proposed aimed to get good performance on R-tree. On the other hand, the GBD tree has been known that it is superior to R-tree on exact match retrieval, because the GBD tree has an auxiliary data which determines the position of entity uniquely. The proposed algorithm in this paper depends on the property. This paper describes the method, and evaluates the performance through experiments. Keywords: k-NN, GBD tree, R-tree, 空間データ構造(spatial data structure) 1.はじめに CAD GIS(地理情報システム)の分野におい て、平面上のある点が指定されたときその点に最 も近接する図形オブジェクトを、距離が近いもの から任意個(k )探索する処理が重要となる。こ れは k-NN 検索と呼ばれ、コンピュータビジョン、 空間データベース、データマイニング、計算幾何 学などの分野で研究されてきた。また、 Bentley(1975)による k-d 木の提案以来、k-d 木、 R 木などの各種空間データ管理構造上での検索ア ルゴリズムが研究されてきた。特に、空間データ ベースの分野では、 R (Guttman,1984)の提案以 降、R 木及びその改良型のデータ構造(例えば R* ,R+木を対象として多くの研究が行われてきた。 一方、GBD 木と呼ばれる多次元データ構造が 大沢・坂内(1990)により提案されている。この構 造では図形の中心点でデータが管理されている。 GBD 木は図形の中心点を 1 次元化した領域式を 用いてデータの挿入・削除を行い、また空間検索 に際しては R 木と同様に MBR を用いるデータ構 造である。MBR と共にこの図形の中心点座標も k-NN 検索に用いることにより、R 木における検 索をより高速化できる可能性がある。 k-NN 検索のためのアルゴリズムとして、 Rousspoulos (1995)は分枝限定法によるアルゴ リズムを提案している。最初のステップでは、木 を下方にたどることにより最近接オブジェクト の候補を探し、2 番目のステップでは木を上方に 戻りつつその候補より近いオブジェクトが見つ かった場合に、最近接オブジェクトを更新する。 このアルゴリズムでは下方への検索に際して検 索点と MBR との MINDIST(最小距離)を用い、 2 ステップでは MINDIST と共に、 MINMAXDIST を定義して用いている。 R 木上での k-NN 検索においては、第 1 ステッ 大沢:〒338-8570 さいたま市桜区下大久保 255 埼玉大学大学院理工学研究科数理電子情 報部門 Tel:048-858-3717 Email: [email protected]

空間データ構造 GBD 木における k-NN 検索アルゴリ …...GBD 木における1-NN 検索の性能をR 木と比 較した。本実験には、データ数の異なる2

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 空間データ構造 GBD 木における k-NN 検索アルゴリ …...GBD 木における1-NN 検索の性能をR 木と比 較した。本実験には、データ数の異なる2

空間データ構造 GBD 木における k-NN 検索アルゴリズム 大沢 裕・栗原孝暢・大木彩加・王 玉娜

k-NN Search Algorithm on Spatial Data Structure GBD Tree Yutaka OHSAWA, Takanobu KURIHARA, Ayaka OHKI, Yuna WANG

Abstract: This paper describes about k-NN algorithm on the GBD tree. The GBD tree is a spatial data structure suitable for two or three dimensional data, and it performs good characteristics on dynamic data environment. For GIS, R-tree and its successors have been used. Then, k-NN search algorithms also have been proposed aimed to get good performance on R-tree. On the other hand, the GBD tree has been known that it is superior to R-tree on exact match retrieval, because the GBD tree has an auxiliary data which determines the position of entity uniquely. The proposed algorithm in this paper depends on the property. This paper describes the method, and evaluates the performance through experiments. Keywords: k-NN, GBD tree, R-tree, 空間データ構造(spatial data structure)

1.はじめに

CAD や GIS(地理情報システム)の分野におい

て、平面上のある点が指定されたときその点に最

も近接する図形オブジェクトを、距離が近いもの

から任意個(k 個)探索する処理が重要となる。こ

れは k-NN検索と呼ばれ、コンピュータビジョン、

空間データベース、データマイニング、計算幾何

学などの分野で研究されてきた。また、

Bentley(1975)による k-d 木の提案以来、k-d 木、

R 木などの各種空間データ管理構造上での検索ア

ルゴリズムが研究されてきた。特に、空間データ

ベースの分野では、R 木(Guttman,1984)の提案以

降、R 木及びその改良型のデータ構造(例えば R*木,R+木を対象として多くの研究が行われてきた。 一方、GBD 木と呼ばれる多次元データ構造が

大沢・坂内(1990)により提案されている。この構

造では図形の中心点でデータが管理されている。

GBD 木は図形の中心点を 1 次元化した領域式を

用いてデータの挿入・削除を行い、また空間検索

に際しては R 木と同様に MBR を用いるデータ構

造である。MBR と共にこの図形の中心点座標も

k-NN 検索に用いることにより、R 木における検

索をより高速化できる可能性がある。 k-NN 検索のためのアルゴリズムとして、

Rousspoulos ら(1995)は分枝限定法によるアルゴ

リズムを提案している。最初のステップでは、木

を下方にたどることにより最近接オブジェクト

の候補を探し、2 番目のステップでは木を上方に

戻りつつその候補より近いオブジェクトが見つ

かった場合に、最近接オブジェクトを更新する。

このアルゴリズムでは下方への検索に際して検

索点と MBR との MINDIST(最小距離)を用い、

第 2 ス テ ッ プ で は MINDIST と 共 に 、

MINMAXDIST を定義して用いている。 R 木上での k-NN 検索においては、第 1 ステッ

大沢:〒338-8570 さいたま市桜区下大久保

255 埼玉大学大学院理工学研究科数理電子情

報部門 Tel:048-858-3717 Email: [email protected]

Page 2: 空間データ構造 GBD 木における k-NN 検索アルゴリ …...GBD 木における1-NN 検索の性能をR 木と比 較した。本実験には、データ数の異なる2

プで検索点とそのノードに置かれている各スロ

ットの MBR との距離を計算し、検索点に最も近

い MBR を持つ子ノードを下方にたどることによ

り実行される。一方、GBD 木では各スロットに

MBR の他に領域式が置かれており、この領域式

を参照することにより第 1ステップを高速化でき、

検索点に近接する候補を探すことができる。実験

結果から、データ数が多い場合、即ち木の段数が

増えた場合に 2倍程度の高速化を達成できること

が示されている。 本稿では、まず R 木上での k-NN 検索方式につ

いて述べる。次にGBD木の概要を述べ、そのGBD木上での k-NN 検索アルゴリズムを示す。次に実

験結果を示すことにより、提案アルゴリズムの高

速性を実証する。 2.R 木における k-NN 検索

k-NN 検索の最も簡単な例として,外部点(p)が指定され,データベース中のオブジェクトから,

点pに最も近接するものを検索する処理、即ち

1-NN 検索を考える。この検索は次の 2 ステップ

で実行される. [最近接オブジェクトの探索] step1: 最近接オブジェクトが存在する可能性の

あるノードを根から葉に向かってたどり,最

近接オブジェクトの候補 Q を得る. step2: 木を根ノードに戻りつつ,Q が最近接オブ

ジェクトであることを検証する. まず,上記の step1 の処理について考える.R 木

のノードには子ノードの MBR が列挙されており,

木を葉に向けてたどる際に,最近接オブジェクト

を含む可能性が最も高いノードを選択する必要

がある.Roussopoulos ら(1995)は,これを行う為

の次の方式を提案している. nearestNeighbourSearch(kp,q,N) Step1: dist の値を∞にする. Step2: kp が指し示すノードが葉ノードの時,そ

こに置かれている全てのエントリーの中から

qとの距離が最小のオブジェクトを求め、そ

の距離を dist とする。 Step3: kp が指し示すノードが非葉ノードの時,

以下を実行する. Step3-1: ノード kp において,子ノードのリスト

branchList を作成する. Step3-2: branchList の要素を MINDIST の値で

ソートする. Step3-3: branchList の要素に対して下方向枝刈

りを行う。 Step3-4: branchList の先頭から,1つづつノード

(cp)を取り出し,以下の処理を繰り返す. Step3-4-1: nearestNeighbourSeach (cp,q,N)を再

帰的に実行する. Step3-4-2: branchList の内容に対して上方向枝

刈りを適用する。 3.GBD 木と k-NN 検索

GBD 木(大沢・坂内(1991))は R 木やその改良型

と同様に,階層的にデータの存在する空間の分割

を行い,その分割過程を木構造で管理する図形デ

ータ管理構造である.相違点は領域式という空間

的な位置の一次元表現を用いて空間分割を行う

点にある。これによりデータ挿入や削除などのデ

ータ管理が高速になる。本稿で述べる方式は、こ

の領域式を用いて最近点候補が存在する可能性

の高い葉ノードを決定するものである。このアル

ゴリズムも、先の Roussopoulos らの方法と同様

に2つのステップで検索する。 R 木の検索では、(1)のステップでは点と MBR

間の Min 距離が最小の枝をたどっている。一方、

GBD 木では(1)の処理を、前節で述べた、検索点

qが含まれる領域式をたどることにより実行で

きる。即ち最近接オブジェクトが存在する可能性

の高い葉ノード候補として、点pが GBD 木に投

入される場合の葉ノードを求めることにより置

き換えられる。このアルゴリズムを以下に示す。 [GBD 木における最近接オブジェクトの検索] Step1: kp を根ノードとする。また dist の値を∞

とする。

Page 3: 空間データ構造 GBD 木における k-NN 検索アルゴリ …...GBD 木における1-NN 検索の性能をR 木と比 較した。本実験には、データ数の異なる2

Step2: kp が指し示すノードが葉ノードのとき、

その葉ノードにある全てのオブジェクトと qとの距離を求める。dist をその最小距離で更

新する。 Step3: kp が指し示すノードが非葉ノードのとき、

以下の各ステップを実行する。 Step3.1: 検索点pが含まれるスロットを探し、kp

の値をそのスロットが示す子ノードとして

Step2 以下を再帰的に呼び出す。 Step3.2: Step3.1 の再帰呼び出しから戻った後、

Step3.1 でたどらなかったスロットに対して、

その MBR とpとの MINDIST を求め、

MINDIST の値で昇べきの順にソートする。 Step3.3: Step3.2 で得られた MINDIST の値が最

小のものから、その値が dist より小さい内、

kp をそのスロットが示す子ノードとして

Step2 以下を再帰的に呼び出す。 このアルゴリズムでは、まず Step2 において葉

ノードまで下る。このノードは、検索点が GBD木に挿入されるときに登録されるべきノードで

あり、その葉ノードに最近接オブジェクトが存在

する可能性が高いという経験的な知識に依って

いる。Step3 は MINDIST を用いて、より検索点

の近くにオブジェクトが存在する可能性がある

ノードをたどり、もし Step2 で見つかったものよ

り近いオブジェクトがあれば、それに更新する処

理である。 4.実験

GBD 木における 1-NN 検索の性能を R 木と比

較した。本実験には、データ数の異なる 2 種類の

地図を用いた。それらの性質を表1に示す。また

地図 A 及び地図 B の概略を図1と図2に示す。 GBD 木及び R 木共に最大スロット数(M)を 25 か ら 25 刻みで 100 まで変化させて作成した。GBD木と R 木との間にページ占有率の大きな差はな

い(R 木が65%、GBD 木が68%程度)が、

若干 GBD 木の方が高いページ占有率が得られて

いる。

表1 実験に用いた地図データ

図1 地図 A

図2 地図 B

これらの地図を対象として、それぞれのデータ

構造における最近点検索の際にたどるノード数

の比較実験を行った。検索点は根ノードの MBRの範囲内で均一に発生させた2次元擬似乱数を

用いた。地図 A を用いた最近点検索において、R木と GBD 木それぞれがたどったノード数を図3

に示す。また、地図 B を用いた結果を図4に示す。

いずれの実験も 1000 点の検索点による検索を行

い、その平均を示している。

名称 オブジェクト数 サイズ 地図 A 27,074 1.36MB地図 B 151,699 9.80MB

Page 4: 空間データ構造 GBD 木における k-NN 検索アルゴリ …...GBD 木における1-NN 検索の性能をR 木と比 較した。本実験には、データ数の異なる2

図7.地図 A を用いたノード数の比較

図8.地図 B を用いたノード数の比較

これらの結果に見られるように、ノードの最大

スロット数(M)が小さい場合には、GBD 木は R 木

の約半数のノードをたどることにより最近接オ

ブジェクトが検出できている。これは、M の値が

小さい場合には、中間ノード(非葉ノード)の数が

増え、また木の段数も増加することから、GBD木における、たどるノードの絞込み効果が大きい

ことを示している。また両結果とも、M が大きく

なると、差が減少しているが、これは中間ノード

数及び葉ノード数が減少し両者共に最適な(最小

の)値に近づいていることを示している。 実験結果から、木のノード数が多い場合、即ち

大規模なデータにおいて、GBD 木は探索すべき

ノードの絞込み効果が大きく、R 木と比較して大

幅な効率向上が示されている。 5.おわりに 本稿では、空間インデックス構造 GBD 木にお

ける最近点検索アルゴリズムについて述べ、実験

により提案方式が高速であることを実証した。

GBD 木と R 木との比較では、木の段数が増えた

場合、前者の方が約半数のノードをたどることに

より、最近接オブジェクトの検索が可能である。 本稿では、最近接オブジェクトの検索、即ち

1-NN の検索について述べたが、k-NN への拡張

は容易である。即ち、k 個の近接オブジェクトを

保持することができる優先順位つきキュー(プラ

イオリティーキュー)を用意して、常に近接する

k 個のオブジェクトを保持することと、距離が k番目に近いオブジェクト(即ちプライオリティー

キュー中で最も遠いオブジェクト)との距離を用

いて上方向への枝刈りを行うことにより実現で

きる。 本稿では、GBD木との比較をR木と行ったが、

R 木ではノードのあふれが生じたとき、MBR の

面積が最小となる条件でのノード分割を行うた

め、細長い MBR が生成される場合があり、これ

が範囲検索などにおいてたどるノード数を増加

させることが知られている。この性質は、k-NN検索においても悪影響を与えることが考えられ

る。一方、R 木のこの性質を改良した R*木が提

案されており、それは k-NN 検索においても良好

な性質を示すものと考えられる。提案方式の改良

と共に、R*木との比較が今後の課題である。

参考文献 Bentley, J.L.(1975) Multidimensional binary

search tree used for associative searching, Comm. ACM, Vol.18, No.9, pp.509-517.

Guttman, A.(1984) R-trees: a dynamic index structure for spatial searching, Proc. SIGMOD, pp.47-57.

Roussopoulos, N. Kelly, S., Vincent, F.(1995) Nearest neighbour queries, Proc. SIGMOD, pp.71-79.

大沢 裕、坂内正夫(1991)2 種類の補助情報によ

り検索と管理性能の向上を図った多次元データ

構 造 の 提 案 、 電 子 情 報 通 信 学 会 論 文 誌

D-I,Vol.74-D-I, No.8,pp.467-475.