JP6167531B2 - 領域検索方法、領域インデックス構築方法および領域検索装置 - Google Patents

領域検索方法、領域インデックス構築方法および領域検索装置 Download PDF

Info

Publication number
JP6167531B2
JP6167531B2 JP2013010780A JP2013010780A JP6167531B2 JP 6167531 B2 JP6167531 B2 JP 6167531B2 JP 2013010780 A JP2013010780 A JP 2013010780A JP 2013010780 A JP2013010780 A JP 2013010780A JP 6167531 B2 JP6167531 B2 JP 6167531B2
Authority
JP
Japan
Prior art keywords
node
area
region
condition
attribute
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.)
Expired - Fee Related
Application number
JP2013010780A
Other languages
English (en)
Other versions
JP2014142803A (ja
Inventor
佐野 健
健 佐野
佐々木 和雄
和雄 佐々木
茂紀 福田
茂紀 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013010780A priority Critical patent/JP6167531B2/ja
Publication of JP2014142803A publication Critical patent/JP2014142803A/ja
Application granted granted Critical
Publication of JP6167531B2 publication Critical patent/JP6167531B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ユーザの属性および位置情報に応じてサービスを提供するロケーションアウェアサービスに関するものであり、特に、属性条件を含む大量のサービス領域の中から、与えられた属性が条件に一致かつ位置情報を含む領域を高速に検出する技術に関する。
GPS搭載の携帯電話が普及するなど、端末から位置情報を通知できるようになり、端末保持者の位置を利用した様々なサービスが普及している。位置情報を利用したサービスの例としては、ある店舗の周辺(領域)に端末保持者が移動したときに、その人に対して店舗の情報を通知するサービスなどがある。さらに、人の性別や年齢などの属性情報によってサービスの提供対象を絞り込むことで、端末保持者にとって、より有益なサービスを提供することが可能となる。
今後、位置通知が可能な端末やその位置情報を利用するサービスは、ますます普及すると考えられ、端末やサービスの増加に従い位置や属性条件を判定する処理量も増加する。
そのため、これらの端末やサービスが大量に存在する状況において、通知される位置情報がどの領域に含まれるか、端末保持者の属性情報が領域に設定された属性条件に一致するか、を高速に判定することが求められる。
従来、空間内に存在する大量のデータから条件に合致するものを高速に検索するためには、検索条件に合わせたインデックスを作成し、全てのデータを確認せずに必要な情報を取得できるようにするデータ管理方式が知られている。
インデックスを用いたデータ管理方式には、一次元のデータを検索する場合に用いられるB−Treeと呼ばれるツリー構造を利用した方式、多次元データを検索する場合に用いられるR−Treeと呼ばれるツリー構造を利用した方式などがある。
R−Treeを利用した方式では、相互に重なり合う矩形領域を持つノードで木構造を作成し、各ノードは子ノードの最小外接矩形、すなわち、子ノードの領域をすべて含む最小の矩形領域とする。範囲検索時には、検索範囲が重なる子ノードに絞って検索を行うことによって検索を高速化する。ここで、矩形領域とは、多次元に対応する超矩形を示し、2次元の場合は長方形、3次元の場合は直方体となる。4次元以上の場合も、次元数に合わせて拡張した領域を意味する。
図14は、従来のR−Treeを利用したデータ管理方式を説明するための図である。
図14(A)は、R−Treeによって管理するデータの例を示す。各データは、少なくとも、対応する領域を示す領域情報および領域を識別する領域IDが設定される。
図14(B)は、管理するデータに対応する矩形領域を示すマップ例である。円形で示す領域r1〜r9は、データに対応する領域を示し、点線の矩形で示す領域は、R−Treeのツリー構造の各ノードの領域を示している。
図14(C)は、R−Treeによるインデックス情報の例を示す。
インデックス情報は、各矩形領域をノードとするツリー構造を有するR−Treeである。インデックス情報のツリー構造のルートノードである矩形領域R1(以下、ルートノードR1)は、ルートノードR1の子ノードに相当する中間ノードである矩形領域R2、R3の最小外接矩形であり、中間ノードである矩形領域R2(以下、中間ノードR2)は、中間ノードR2の子ノードに相当する葉ノードである矩形領域R4、R5(以下、葉ノードR4、R5)の最小外接矩形である。また、葉ノードである矩形領域R4は、内部に持つ領域(オブジェクト)の座標データの最小外接矩形である。
R−Treeのインデックス情報を用いて範囲検索をする場合に、ルートノードの矩形領域R1の2つの子ノードから検索範囲が重なるノードを選択する。重なる部分を持つノードにおいて、再帰的に検索範囲が重なる子ノードを選択し、最終的に葉ノードの中から検索範囲内にある領域の座標データを選択する。検索範囲と重なる全ての葉ノードから、座標データを選択し終えたら、選択した座標データを検索結果として検索を終了する。
上記のような検索を行う場合に、検索に必要な計算量は、検索範囲の重なる非葉ノードの子ノード数の総和に等しい回数の範囲の重なり判定と、同条件の葉ノードの座標データの総和に等しい回数の検索範囲内外判定とが必要となる。
R−Treeは、各ノードの持つ子ノード数の上限と下限を所定の値に定め、座標データの追加や削除の際にノードの分割や統合を行うことで全体の木の深さや幅を調節し、検索処理量の最悪値を抑制している。ルートノードだけは、追加または削除を行う際に子ノードの大規模なノード移動を不要にするために、上記所定の下限に関わらず子ノードの下限を2とする。
さらに、ノードの分割を行う際に、上限を超えたノードを二分割して扱うためにデータ追加とノード分割との処理例を説明する。
インデックス情報へのデータ追加では、検索の際と同様に、ルートノードの矩形領域R1を選択することから始まり、選択するノードが葉ノードになるまで、追加データの座標を含む子ノードを辿る。選択しているノードの複数の子ノードの矩形領域が追加する座標を含む場合に、子ノードの持つ矩形領域が最小のノードを選択する。また、選択しているノードが追加する座標を含む子ノードを持たない場合に、子ノードの1つを選択し、追加する座標を含むように矩形領域を拡大して選択する。この場合に、拡大領域の大きさが最小となる子ノードを選択する。
このようにして、1つの葉ノードを選択した後は、葉ノードに追加するデータ(座標データ)を加える。データの追加によって葉ノードの持つデータ数が上限値を超える場合には、葉ノードを2つに分割する。
ノード分割の方法は、2つの葉ノードの持つ矩形領域の大きさの和が最小になるように行う。例えば、ノード内の原点から最も近いデータと原点から最も遠いデータとをそれぞれ2つの領域に分け、他のデータは2つの領域の内、データ追加による拡大領域が小さくなる方に追加する。追加するデータが双方の領域に含まれる場合には、データ数が少ない領域に加える。
二分割したノードは、親ノードに追加する。分割したノードの追加によって親ノードが持つ子ノード数が上限値を超える場合には、再帰的に領域の和が最小になるように分割していく。ルートノードが持つ子ノード数が上限値を超える時は、ルートノードの上位に新規のルートノードを作成し、二分割した元のルートノードを新規に作成したルートノードの子ノードとする。
ところで、サービス提供条件に領域と属性情報とを用いた従来手法がいくつか知られている。
一つの従来手法として、ユーザの位置情報と属性情報に応じてサービスを提供する際に、サービス利用者の位置情報による領域検索を行い、その検索結果の中からサービス利用者に関する情報を考慮して検索する装置が知られている。
また、別の従来手法として、ユーザの位置情報、所在情報、プロファイル情報の組合せをもとにメッセージ配信を制御する手法が知られている。
また、別の従来手法として、ユーザの位置情報、速度情報、ユーザの属性情報に応じてサービスを提供するシステムが知られている。
国際公開WO2006/059629号公報 特表2009−538090号公報 特開2006−133903号公報
上述するように、位置情報を用いたサービス提供が普及しているが、位置情報を検出する領域数やユーザ数が増加するに従いシステムの処理量が増加するため、処理の高速化が求められている。既存のR−Treeを用いる検索によって、与えられた位置情報を含む領域を高速に検出することが可能であるが、位置情報だけでなくユーザの属性情報(例えば、性別、年齢等)に応じて異なるサービス提供が必要となる場合もある。
しかし、既存のR−Treeによる検索では、属性情報に関する条件が指定された領域情報について考慮されていない。そのため、属性条件を含む領域を検索する場合に、従来では、まずインデックスのデータ構造を用いて検索対象の位置情報を含む領域を検索し、さらに、ユーザの属性情報が検索で得られた領域に指定された属性条件に一致するかの判定を行っている。そのため、位置情報で領域を検索した後に属性条件が一致しないと、先に行った領域検索処理に無駄が生じてしまうことになる。また、位置情報で検索した領域が重複している場合には、属性条件が一致しない領域も検索結果に含めてしまうことになる。
したがって、既存のR−Treeによる領域の検出処理と属性条件の判定処理とを順に実行していると、処理に無駄が発生してしまい、サービス提供が遅延してしまう。
本発明の目的は、ユーザの属性や位置情報に応じたサービス提供において、属性条件と一致かつ位置情報を含む領域の検出を高速化できる処理技術を提供することである。
本発明において開示される領域検索方法は、コンピュータが、1)複数の領域をツリー構造で管理する領域インデックスの該ツリー構造にノード分割または領域追加を行う際に、領域検索時の属性の判定において検索対象となる領域数が少なくなる度合いを示す絞り込み効果を算出し、前記ノード分割または領域追加のそれぞれの場合について絞り込み効果を重み付けた評価を行って、評価が最良の場合のノード分割または領域追加を行って前記領域インデックスのツリー構造を構築し、2)前記領域インデックスの前記ツリー構造の各ノードに対して、属性条件として、下位の領域またはノードに設定された属性条件の重複条件を設定し、領域検索時の判定条件として、該下位の領域またはノードに設定された属性条件から前記重複条件を除いた判定条件を設定し、3)位置情報と属性情報とを含む領域の問い合せ要求を受け付け、4)前記属性条件を設定した前記領域インデックスを用いた領域検索の際に、前記属性情報が前記判定条件に一致するノードであるかを判定し、前記属性情報が前記判定条件に一致するノードについて前記位置情報を含む領域を検索し、5)前記検索した領域の情報を出力する、処理を実行するものである。
また、本発明において開示される領域インデックス構築方法は、記憶部を備えるコンピュータが、1)複数の領域をツリー構造で管理する領域インデックスのツリー構造にノード分割または領域追加を行う際に、領域検索時の属性の判定において検索対象となる領域数が少なくなる度合いを示す絞り込み効果を算出し、2)前記ノード分割または領域追加のそれぞれの場合について絞り込み効果を重み付けた評価を行って、評価が最良の場合のノード分割または領域追加を行って前記領域インデックスのツリー構造を変更し、3)前記領域インデックスの前記ツリー構造の各ノードに対して、属性条件として下位の領域またはノードに設定された属性条件の重複条件を設定し、領域検索時の判定条件として該下位の領域またはノードに設定された属性条件から前記重複条件を除いた判定条件を設定し、4)前記属性条件および前記判定条件を設定した前記領域インデックスを前記記憶部に記憶する、処理を実行するものである。
開示する領域検索方法によれば、コンピュータが領域インデックスのツリー構造(R−Tree)のノードを辿る際に、領域検索処理をする前に属性条件判定処理による絞り込みが可能となり、無駄な領域の抽出を回避できるため、より高速に領域を検索することができる。
さらに、開示する領域検索方法によれば、属性条件が一致する領域を優先して抽出できるため、より高速に検索結果を得ることができる。
本発明の一態様として開示する領域検索装置のハードウェア構成例を示す図である。 一実施態様における領域検出リクエストのデータ構成例を示す図である。 一実施態様における応答メッセージのデータ構成例を示す図である。 一実施態様における領域インデックスのデータ構成例を示す図である。 領域検索装置の第1の実施例における機能ブロックの構成例を示す図である。 第1の実施例における領域データDBの構成例を示す図である。 第1の実施例におけるツリー検索処理の処理フロー例を示す図である。 第1の実施例における領域インデックスへの属性条件の設定処理の処理フロー例を示す図である。 領域検索装置の第2の実施例における機能ブロックの構成例を示す図である。 第2の実施例におけるノード分割時の絞り込み効果の計算例を説明するための図である。 第2の実施例における領域データ追加時の絞り込み効果の計算例を説明するための図である。 第2の実施例における領域インデックスの構築処理の処理フロー例を示す図である。 第2の実施例における領域インデックスの構築処理の処理フロー例を示す図である。 従来のR−Treeを利用したデータ管理方式を説明するための図である。
以下、本発明の一態様として開示する領域検索方法を実行する領域検索装置について図を用いて説明する。
図1は、開示する領域検索装置1のハードウェア構成例を示す図である。
領域検索装置1は、CPU101、短期記憶部(DRAM)102、長期記憶部(HDD)103、ネットワークインタフェース104、入力装置(キーボード、マウス等)105、出力装置(ディスプレイ、プリンタ等)106が内部ネットワーク等で接続されたコンピュータとして実施することができる。
領域検索装置1は、インデックス情報によって、与えられた属性条件と位置を含む領域を検索する処理を実行するための実行プログラムおよび処理に必要な情報をファイルとして長期記憶部103に記憶し、入力装置105から実行プログラムを起動し、起動された実行プログラムが、短期記憶部102にロードされ、ネットワークインタフェース104で受信した領域問合せ装置(ユーザの端末装置)2からのリクエストをもとに処理を実行する。領域検索装置1は、必要に応じて情報を長期記憶部103から短期記憶部102に読み出しながら処理を進め、処理結果である検索した領域データをネットワークインタフェース104から領域問合せ装置2へ送信する。なお、領域検索装置1は、必要な情報を出力装置106へ出力することもできる。
領域検索装置1は、ネットワーク経由で、ユーザが操作する領域問合せ装置(以下、単に「端末」と呼ぶ)2からの領域検出リクエスト3を受信し、R−Treeのツリー構造を持つ領域インデックス4をもとに、与えられた属性と属性条件が一致かつ位置を含む領域を検索する。そして、領域検索装置1は、検索した領域に関する領域データ6を含む応答メッセージ7を返信する。
図2は、領域検索装置1が受け付ける領域検出リクエスト3のデータ構成例を示す図である。
領域検出リクエスト3は、端末2が送信する、問合せ元および位置情報を含む領域検出の問合せデータである。
図2(A)に示すデータ構成例では、領域検出リクエスト3は、センサIDおよび位置を含む。「センサID」は、端末2に備えられた位置計測用のセンサの識別情報である。「センサID」は、センサを持つ端末2の端末ID、利用するユーザのユーザIDやグループIDなど他の識別情報で代用することもある。「位置」は、センサが計測した位置情報であり、例えば緯度・経度情報で表現される。
図2(B)に示すデータ構成例では、領域検出リクエスト3は、センサID、位置の他、さらに属性を含む。「属性」は、問合せをしたユーザの属性情報であり、例えば、性別、年齢などの情報である。
領域検索装置1は、図2(A)に示す領域検出リクエスト3を受け付ける場合、領域検出リクエスト3に含まれるセンサID(または、ユーザID、グループID)をもとに、自装置または他のサーバから該当するユーザの属性情報を取得する。この場合には、領域検索装置1は、ユーザ毎の属性情報を管理する。なお、ユーザの属性情報は他のサーバに記憶されていてもよい。
または、領域検索装置1は、図2(B)に示す領域検出リクエスト3を受け付ける場合、領域検出リクエスト3に含まれる「属性」の情報を抽出してユーザの属性情報とすることができる。この場合には、領域検索装置1は、ユーザの属性情報を保持する必要がない。
図3は、領域検索装置1が出力する応答メッセージ(領域検出応答)7のデータ構成例を示す図である。
応答メッセージ7は、領域検索装置1が端末2へ返信する、問合せの位置情報、およびユーザの属性情報と属性条件が一致する領域の領域情報を含む応答データである。
図3に示す応答メッセージ7は、1つまたは複数の領域情報を持つリストを含む。領域情報は、領域検索装置1が管理する領域データ6から抽出された情報として、少なくとも領域の識別情報を含み、領域の領域名、領域の位置・大きさ・形状などの情報を含んでもよい。ここでは、領域を識別する「ID」と「領域名」のリストを含んでいる。
図4は、領域データ6のデータ構成例を示す図である。
領域データ6は、データ毎に、ID、データ名、領域情報、属性条件が記録されたデータである。「ID」は領域データの識別情報、「データ名」は領域データの名称、「領域情報」は領域データに対応する領域の形状、位置や範囲を示す情報、「属性条件」は領域検索における属性の判定条件である。
図5は、領域検索装置1が使用する領域インデックス4のデータ構成例を示す図である。
領域インデックス4は、葉ノード、中間ノード、ルートノード各々に属性条件を持つR−Treeのツリー構造を持つインデックス情報である。
領域インデックス4では、R−Treeの各ノードにおいて、それぞれの各子ノード(葉ノードの場合は、内部に持つ領域データ)に設定された属性条件の中で重複する属性条件(以下、「and条件」または「重複条件」と呼ぶ)が設定されている。
図5に示す領域インデックス4において、領域データr1、r2、r3、r4、r5、r6、r7、r8、r9に設定された属性条件が、それぞれ「性別=男性」、「性別=男性かつ年齢=20代」、「性別=男性」、「性別=男性かつ年齢=30代」、「性別=男性かつ年齢=30代」、「性別=女性」、「性別=女性」、「性別=女性かつ年齢=30代」、「年齢=30代」であるとする。
葉ノードR100では、内部に持つ領域データr1〜r3の属性条件のand条件「性別=男性」が、ノードR101では、内部に持つ領域データr4、r5の属性条件のand条件「性別=男性かつ年齢=30代」がそれぞれ属性条件として設定される。葉ノードの親ノードに該当する中間ノードR10では、子ノードR100、R101に設定された属性条件のand条件「性別=男性」が属性条件として設定される。
同様に、葉ノードR110では、内部に持つ領域データr6、r7の属性条件のand条件「性別=女性」が、ノードR111には、内部に持つ領域データr8、r9の属性条件のand条件「年齢=30代」がそれぞれ属性条件として設定される。中間ノードR11では、子ノードR110、R111に設定された属性条件のand条件がないので、属性条件が設定されない。
さらに、領域インデックス4では、親ノードの属性条件が子ノードの属性条件のand条件である場合に、子ノードの属性判定では、元の属性条件からand条件を除いた条件を判定条件として用いるように設定される。これにより、親子関係のノードで同じ属性条件を判定することを回避している。
領域検索装置1は、領域インデックス4のR−Treeでの領域検索時に、ノード毎の領域判定前に各ノードに設定された属性条件の判定を行い、属性条件が一致する場合にのみ領域判定を行う。
例えば、領域検出リクエスト3から求めたユーザの属性情報が「性別=女性」である場合に、領域検索装置1は、図5に示す領域インデックス4の領域検索において、R−TreeのルートノードR1から2つの子ノードを探索する処理で、最初にノードR10、R11に設定された属性条件を判定し、属性条件を満たさないノードR10以下の子ノードの探索を行わない。
以下、領域検索装置1のより詳細な実施例を説明する。
〔第1の実施例〕
図6は、領域検索装置1の第1の実施例における機能ブロックの構成例を示す図である。
領域検索装置1は、上記の領域検索を実現するための機能として、検索受付部11、該当領域返答部12、ツリー検索部13、属性条件設定部14、インデックス構築部15、通信インタフェース部16を備える。さらに、領域検索装置1は、データ保管場所として、領域データ記憶部21および領域インデックス記憶部22を持つ。
検索受付部11は、通信インタフェース部16を介して、端末2から領域検出リクエスト3を受信する。
該当領域返答部12は、通信インタフェース部16を介して、受信した領域検出リクエスト3に対する応答メッセージ7を端末2へ送信する。
ツリー検索部13は、領域インデックス記憶部22が記憶する領域インデックス4のR−Treeに対して属性条件判定と領域検索とを行い、領域検出リクエスト3で与えられたユーザの属性情報および位置情報を満たす領域の領域データを取得する。
属性条件設定部14は、領域データ記憶部(領域データDB)21に記憶された領域データの属性条件をもとに領域インデックス4のR−Treeの各ノードに属性条件を設定する。
領域インデックス構築部15は、領域データDB21をもとに領域インデックス4のR−Treeを構築する。
通信インタフェース部16は、データ通信のインタフェースを行う。
領域データ記憶部21は、各領域に関する情報である領域データ6を記憶する領域データDBである。領域インデックス記憶部22は、領域インデックス4を記憶する。
領域データ記憶部21および領域インデックス記憶部22は、図1に示す長期記憶部103および短期記憶部102で実施される。領域データ6および領域インデックス4は、長期記憶部103に記録され、短期記憶部102に読み出して利用される。
次に、領域検索装置1の処理の流れを説明する。
領域検索装置1は、ユーザの属性情報をセンサIDに対応付けて管理しているとする。
まず、領域検索装置1の属性条件設定部14は、領域データ記憶部21の領域データ6をもとに、領域インデックス4のR−Treeの各葉ノードが内包する領域データ6の属性条件のand条件を抽出し、葉ノードの属性条件とする。さらに、属性条件設定部14は、配下の子ノード設定した属性条件から抽出したand条件をその親ノードの属性条件として設定する処理を、親ノードがルートノードとなるまで繰り返す。
さらに、属性条件設定部14は、自ノードの属性条件のand条件が親ノードに設定されているノードの検索時の属性の判定条件として、元の属性条件からand条件を除いた条件を設定する。
領域検索装置1の検索受付部11が、ネットワークに接続する通信インタフェース部16を介して、端末2から領域検出リクエスト3を受信すると、領域検出リクエスト3のセンサIDからユーザの属性情報を特定し、さらに位置情報(緯度経度)を抽出する。
ツリー検索部13が、得られた属性情報および位置情報をもとに、属性条件がノードに設定された領域インデックス4において属性情報が一致し位置情報を含む領域を検索する。なお、領域検索の詳細は後述する。
該当領域返答部12が、検索された領域の領域データ6のリストを含む応答メッセージ7を生成し、通信インタフェース部16を介して端末2へ返信する。
図7は、ツリー検索処理の処理フロー例を示す図である。
領域検索装置1のツリー検索部13は、領域インデックス4のR−Treeのルートノードを選択する(ステップS11)。ツリー検索部13は、ルートノードに属性条件が設定されている場合は、得られた属性情報が属性条件に一致するかを判定する(ステップS12)。属性情報が属性条件に一致しない場合は(ステップS12のN)、検索を終了し、属性情報が属性条件に一致する場合は(ステップS12のY)、ステップS13以降の処理を行う。
ツリー検索部13は、選択したノードが葉ノードであるかを判定する(ステップS13)。選択したノードが葉ノードでなければ(ステップS13のN)、ツリー検索部13は、さらに、選択したノードの子ノードに属性情報と属性条件が一致するノードがあるか判定する(ステップS14)。
属性情報と属性条件が一致する子ノードがあれば(ステップS14のY)、ツリー検索部13は、属性条件が一致する子ノードの中で、得られた位置情報(検索座標)を含む領域を内部に含むノードがあるかを探索する(ステップS15)。属性条件が一致する子ノードで検索座標を含むノードがあれば(ステップS15のY)、その子ノードを選択候補ノードに加えて(ステップS16)、ステップS18の処理へ進む。
ステップS13の処理で、選択したノードが葉ノードであれば(ステップS13のY)、ツリー検索部13は、選択したノード(葉ノード)が内部に持つ領域のうち、属性条件が一致し検索座標を含む領域データ6を検索結果に追加して(ステップS17)、ステップS18の処理へ進む。
全ての選択候補ノードの検索が終了したかを調べ(ステップS18)、検索していない選択候補ノードがあれば(ステップS18のN)、ツリー検索部13は、選択候補ノード内の1つのノードを選択して(ステップS19)、ステップS13〜S17の処理を繰り返し、未検索の選択候補ノードがなくなれば(ステップS18のY)、処理を終了する。
図8は、領域インデックス4への属性条件の設定処理の処理フロー例を示す図である。
領域検索装置1の属性条件設定部14は、領域インデックス4のR−Treeから葉ノードを1つ選択し(ステップS21)、選択した葉ノードが持つ各データ領域の属性条件の重複となっている条件(and条件)を抽出し、その葉ノードの属性条件とする(ステップS22)。さらに、属性条件設定部14は、データ領域の属性条件からステップS21の処理で抽出したand条件を除いた残りの条件を領域検索時の判定条件とする(ステップS23)。
領域インデックス4のR−Treeの全ての葉ノードが選択済みでなければ(ステップS24のN)、ステップS21の処理へ戻り、全ての葉ノードを選択していれば(ステップS24のY)、属性条件設定部14は、選択した全ての葉ノードについて親ノードとなるノードを全て抽出する(ステップS25)。
属性条件設定部14は、選択したノード(親ノード)の1つを選択し(ステップS26)、選択したノードの子ノードの属性条件のand条件を抽出し、親ノードの属性条件とする(ステップS27)。属性条件設定部14は、子ノードの属性条件から、ステップS27の処理で親ノードの属性条件としたand条件を除いた属性条件を、子ノードの領域検索時の属性条件とする(ステップS28)。
抽出したノード(親ノード)の全てが選択済みでなければ(ステップS29のN)、ステップS26の処理へ戻り、全てのノードを選択していれば(ステップS29のY)、選択した親ノードがルートノードであるかを判定する(ステップS210)。選択したノード(親ノード)がルートノードでなければ(ステップS210のN)、ステップS25の処理へ戻り、選択したノードがルートノードであれば(ステップS210のY)、処理を終了する。
〔第2の実施例〕
第2の実施例では、領域検索装置1は、領域インデックス4のR−Treeの構築を属性条件による絞り込み効果を考慮して行う。
第1の実施例において、領域インデックス4のR−Treeに対して属性条件のand条件を抽出する場合に、子ノードの属性条件が異なるためにand条件を抽出できず、結局、領域データにおいて属性条件の判定を行う場合が生じる。例えば図5に示す領域インデックス4のR−Treeの中間ノードR11では、子ノードR110、R111の属性条件からand条件をとることができず、and条件による属性条件の判定を行えない。
領域検索装置1は、領域インデックス4で可能な限り属性条件の判定を行って、属性条件による検索対象領域の絞り込みの効果を発揮できるようにするために、領域インデックス4のR−Treeの構築時に、属性条件による絞り込み効果を重み付けしてツリー構造を生成できるようにして、領域の絞り込みと属性条件の絞り込みを最適化する。
図9は、領域検索装置1の第2の実施例における機能ブロックの構成例を示す図である。なお、図9に示すブロック構成例において、図6に示す処理部と同じものには同一番号を付与している。
図9に示すように、領域検索装置1の第2の実施例における機能ブロック構成は、第1の実施例の場合とほぼ同じであるが、以下の点が拡張されている。
・ 領域検索装置1が、絞り込み効果算出部17を備える。
絞り込み効果算出部17は、領域インデックス4の構築処理において、ノード分割または領域データ追加の際に、検索対象となる領域の絞り込み効果を計算する。
・ 領域検索装置1の領域インデックス構築部15は、領域インデックス4のR−Treeを構築する処理で、絞り込み効果算出部17が計算した絞り込み効果を考慮してノード分割、領域データ追加を行う。
図10および図11は、絞り込み効果の計算例を説明するための図である。
領域検索装置1は、一般的なR−Treeと同様に、R−Treeの各ノードが持つ子ノード数に制約を設けている。制約は、例えば「子ノード数が2以上かつ3以下である」とする。
絞り込み効果算出部17は、領域データ6が増加すると、分割するノードに設定される属性条件に基づく絞り込み効果を計算する。
領域インデックス構築部15は、ツリー構造を再構築時に、ノードの矩形領域の評価(最小面積)において絞り込み効果を重み付けし、領域データ6を追加するノードの決定、上限数を超えたノードの分割を行う。
図10は、ノード分割時の絞り込み効果の計算例を説明するための図である。
図10(A)に示すように、1つのノードR1が4つの領域r1、r2、r3、r4を含む状態であり、領域r1、r3の属性条件が「性別=男性」、領域r2、r4の属性条件が「年齢=20代」であるとする。
したがって、制約により、ノードR1を、ノード数が3以下のノードとなるように二分割する必要がある。
R−Treeのノード分割は、分割後のノードの矩形領域の面積が最小となるように分割する。既知の処理で、最小面積となるノード分割では、図10(B)に示すように、領域r1、r2を含むノードR10、領域r3、r4を含むノードR11とに二分割されることになる。
絞り込み効果算出部17は、ノードが内部に持つ領域データの属性条件の判定により、領域検索時に検索対象領域をどの程度少なくできるかを示す絞り込み効果を計算する。
絞り込み効果算出部17は、属性条件が同一の領域データ6の集合を求めて分割候補とする。例えば、図10(C)に示すように、属性条件「性別=男性」の領域r1、r3を含むノードR20、属性条件「年齢=20代」の領域r2、領域r4を含むノードR21の組を分割候補とする。
さらに、絞り込み効果算出部17は、分割候補の絞り込み効果を計算し、求めた分割候補について、例えば入力値を加算する評価関数f(x)で評価値S(分割後のノードの領域の面積の和)を算出する。その際に、絞り込み効果算出部17は、属性条件による絞り込み効果を計算し、分割候補による分割後のノードに、1以下の値をとる属性条件による絞り込み効果αを重み付けする。
例えば、図10(B)に示すノードR10、R11の分割候補について、絞り込み効果算出部17は、評価式f(SR10、SR11)により、SR10、SR11を加算した評価値を計算する。
さらに、図10(C)に示すノードR20、R21の分割候補について、絞り込み効果算出部17は、評価式f(SR10×α、SR11×α)により、SR10×α、SR11×αを加算して評価値を計算する。
絞り込み効果αの計算は、属性の取りうる数や条件数を用いる方法、実際に収集されるユーザデータから属性条件に用いられる属性情報の数を用いる方法などを採用してもよい。
例えば、属性条件が「性別」の場合に、属性の取りうる数や条件数を用いる方法によれば、属性条件「性別」が“男性”と“女性”の2つの値をとる可能性があるため、属性条件による絞り込み効果は、“男性”および“女性”では1/2となる。したがって、上記の評価式では、α=0.5となる。
また、ユーザデータから属性条件に用いられる属性情報の数を用いる方法の場合には、過去に収集した領域検出リクエストのうち、ユーザの性別が“男性”であるものが80%、“女性”であるものが20%であるとすると、属性条件による絞り込み効果は、“男性”が4/5および“女性”が1/5となり、上記の評価式では、α=0.8となる。
領域インデックス構築部15は、絞り込み効果算出部17の算出した評価値をもとに、評価が良い分割候補を採用してノードを分割する。上記の例において図10(C)の分割候補の評価値が良い場合(領域の面積が最小である場合)は、領域インデックス構築部15は、図10(C)のようにノードを分割する。
図11は、データ追加時の絞り込み効果の計算例を説明するための図である。
図11(A)に示すように、図10(A)に示すノードR1に領域r5が追加され、領域r5の属性条件が「性別=男性」であるとする。
絞り込み効果算出部17は、各葉ノードに追加する領域データ6(追加データ)を含めて領域を拡張した場合のノードを求めて拡張候補とする。例えば、図11(A)に示すように、属性条件「性別=男性」の領域r1、r3を含むノードR20、属性条件「年齢=20代」の領域r2、領域r4を含むノードR21のそれぞれに、領域データ(領域r5)を追加して領域を拡張した領域を持つノードを求めて拡張候補とする。
図11(B)は、領域r1、r3を含むノードR20に領域r5を追加して拡張したノードR20’の拡張候補、図11(C)は、領域r2、領域r4を含むノードR21に領域r5を追加して拡張したノードR21’の拡張候補を示す。
絞り込み効果算出部17は、拡張候補の絞り込み効果αを計算し、求めた拡張分割候補について、拡張候補の絞り込み効果αで重み付けをした入力値を加算する評価関数f(x)で評価値Sを算出する。
図11(B)に示す拡張候補の場合は、評価式f(SR21×α、SR20’×α)により、図11(C)に示す拡張候補の場合は、評価式f(SR21’、SR20×α)により、評価値が求められる。
領域インデックス構築部15は、絞り込み効果算出部17の算出した評価値をもとに、評価が良い拡張候補を採用して領域データを追加する。上記の例において図11(B)の拡張候補の評価値が良い場合(領域の面積が最小である場合)は、領域インデックス構築部15は、図11(B)のように領域r5をノードに追加する。
図12および図13は、領域検索装置1の領域インデックスの構築処理の処理フロー例を示す図である。
領域検索装置1は、領域データ記憶部(領域データDB)21に領域データが追加される場合に以下の処理を行う。
領域インデックス構築部15は、領域インデックス4のR−Treeのルートノードを選択する(ステップS41)。選択したノードが葉ノードでなければ(ステップS42のN)、領域インデックス構築部15は、選択したノードの子ノードに、追加する領域データ6の属性条件および領域を包含するものがあるかを調べる(ステップS43)。
さらに、追加する領域データ(追加データ)の属性条件および領域を包含する子ノードがあれば(ステップS43のY)、領域インデックス構築部15は、該当する子ノードのうち、ノードの矩形面積が最小のものを選択ノードとし(ステップS44)、ステップS42の処理へ戻る。子ノードに追加データの属性条件および領域を包含するものがなければ(ステップS43のN)、絞り込み効果算出部17が、子ノードに追加データを含めた場合(拡張候補)それぞれについて絞り込み効果で重み付けをした評価を行って、領域インデックス構築部15は、評価が最良となる子ノードを選択ノードとし(ステップS45)、ステップS42の処理へ戻る。
選択したノードが葉ノードであれば(ステップS42のY)、領域インデックス構築部15は、選択した葉ノードに領域データを追加する(ステップS46)。そして、選択した葉ノードの持つ領域データ数が上限を超える場合は(ステップS47のY)、絞り込み効果算出部17が、領域データを分割したノードの組(分割候補)それぞれについて分割結果による絞り込み効果で重み付けをした評価を行って、領域インデックス構築部15は、評価が最良となる分割候補に従って葉ノードの領域データを分割し、分割後の2つの葉ノードを親ノードに追加する(ステップS48)。
さらに、領域インデックス構築部15は、分割したノードを追加する親ノードの持つ子ノード数が制約の上限を超えるかを調べる(ステップS49)。親ノードの持つ子ノード数が上限を超える場合は(ステップS49のY)、領域インデックス構築部15は、追加する親ノードがルートノードであるかを調べる(ステップS410)。追加する親ノードがルートノードでなければ(ステップS410のN)、絞り込み効果算出部17が、親ノードを分割した場合(分割候補)それぞれについて、絞り込み効果で重み付けをした評価を行って、領域インデックス構築部15は、分割結果の絞り込み効果が最大となるように親ノードを分割し、その子ノードを分割した親ノードに振り分け、さらに、増加したノードを分割したノードの親ノードに追加して(ステップS411)、ステップS49の処理へ戻る。
追加する親ノードがルートノードであれば(ステップS410のY)、絞り込み効果算出部17が、親ノードを分割した場合それぞれについて分割結果による絞り込み効果で重み付けをした評価を行って、領域インデックス構築部15は、評価が最良となる分割候補に従って親ノードを分割し、配下の子ノードを分割した親ノードに振り分け、さらに、分割したノードの上に新しいルートノードを作成して(ステップS412)、処理を終了する。
選択した葉ノードの持つ領域データ数が上限を超えない場合(ステップS47のN)、または、親ノードの持つ子ノード数が上限を超えない場合は(ステップS49のN)、処理を終了する。
なお、図12および図13に示す処理が終了すると、属性条件設定部14が、領域インデックス4のR−Treeの各ノードに属性条件を設定する。
以上説明したように、開示する領域検索装置1は、R−Treeの各ノードに属性条件を設定した領域インデックス4を用いて領域検索を行う際に、ノード毎の領域の判定前に、その領域に設定された属性条件の判定を行い、属性条件が一致する場合にのみ領域の判定を行う。
上記処理により、領域検索装置1は、領域インデックス4のR−Treeのノードを辿る際に、属性条件による絞り込みが可能となり、無駄な領域の判定処理を回避することができ、処理の高速化が可能となる。
さらに、領域検索装置1は、領域インデックス4のR−Treeのノードの属性条件として、その子ノードや葉ノードが内部に持つ領域データに設定された属性条件のand条件を抽出して親ノードに設定し、領域検索時には、ノードにand条件の属性条件が設定されている場合には、その子ノードでは、元の属性条件からand条件を除いた属性条件を設定する。
上記処理により、領域検索装置1は、同じ属性条件の判定を回避することができ、処理のより高速化が可能となる。
1 領域検索装置
11 検索受付部
12 該当領域返答部
13 ツリー検索部
14 属性条件設定部
15 領域インデックス構築部
16 通信インタフェース部
17 絞り込み効果算出部
21 領域データ記憶部
22 領域インデックス記憶部
2 端末装置(領域問い合せ装置)
3 領域検出リクエスト
4 領域インデックス
6 領域データ
7 応答メッセージ

Claims (3)

  1. コンピュータが、
    複数の領域をツリー構造で管理する領域インデックスの該ツリー構造にノード分割または領域追加を行う際に、領域検索時の属性の判定において検索対象となる領域数が少なくなる度合いを示す絞り込み効果を算出し、前記ノード分割または領域追加のそれぞれの場合について絞り込み効果を重み付けた評価を行って、評価が最良の場合のノード分割または領域追加を行って前記領域インデックスのツリー構造を構築し、
    前記領域インデックスの前記ツリー構造の各ノードに対して、属性条件として、下位の領域またはノードに設定された属性条件の重複条件を設定し、領域検索時の判定条件として、該下位の領域またはノードに設定された属性条件から前記重複条件を除いた判定条件を設定し、
    位置情報と属性情報とを含む領域の問い合せ要求を受け付け、
    前記属性条件を設定した前記領域インデックスを用いた領域検索の際に、前記属性情報が前記判定条件に一致するノードであるかを判定し、前記属性情報が前記判定条件に一致するノードについて前記位置情報を含む領域を検索し、
    前記検索した領域の情報を出力する、処理を実行する
    ことを特徴とする領域検索方法。
  2. 記憶部を備えるコンピュータが、
    複数の領域をツリー構造で管理する領域インデックスのツリー構造にノード分割または領域追加を行う際に、領域検索時の属性の判定において検索対象となる領域数が少なくなる度合いを示す絞り込み効果を算出し、
    前記ノード分割または領域追加のそれぞれの場合について絞り込み効果を重み付けた評価を行って、評価が最良の場合のノード分割または領域追加を行って前記領域インデックスのツリー構造を変更し、
    前記領域インデックスの前記ツリー構造の各ノードに対して、属性条件として下位の領域またはノードに設定された属性条件の重複条件を設定し、領域検索時の判定条件として該下位の領域またはノードに設定された属性条件から前記重複条件を除いた判定条件を設定し、
    前記属性条件および前記判定条件を設定した前記領域インデックスを前記記憶部に記憶する、処理を実行する
    ことを特徴とする領域インデックス構築方法。
  3. 複数の領域をツリー構造で管理する領域インデックスのツリー構造にノード分割または領域追加が行なわれる際に、領域検索時の属性の判定において検索対象となる領域数が少なくなる度合いを示す絞り込み効果を算出する絞り込み効果算出部と、
    前記ノード分割または領域追加のそれぞれの場合について前記絞り込み効果を重み付けた評価を行い、前記評価が最良の場合のノード分割または領域追加を行って前記領域インデックスのツリー構造を変更する領域インデックス構築部と、
    前記領域インデックスの前記ツリー構造の各ノードに対して、属性条件として、下位の領域またはノードに設定された属性条件の重複条件を設定し、領域検索時の判定条件として、該下位の領域またはノードに設定された属性条件から前記重複条件を除いた判定条件を設定する属性条件設定部と、
    前記属性条件および前記判定条件を設定した前記領域インデックスを記憶する記憶部と、
    位置情報と属性情報とを含む領域の問い合せ要求を受け付ける検索受付部と、
    前記記憶部に記憶された前記領域インデックスを用いた領域検索を行って前記属性情報が前記判定条件に一致するノードであるかを判定し、前記属性情報が前記判定条件に一致するノードについて前記位置情報を含む領域を検索するツリー検索部と、
    前記検索した領域の情報を出力する該当領域返答部とを備える
    ことを特徴とする領域検索装置。
JP2013010780A 2013-01-24 2013-01-24 領域検索方法、領域インデックス構築方法および領域検索装置 Expired - Fee Related JP6167531B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013010780A JP6167531B2 (ja) 2013-01-24 2013-01-24 領域検索方法、領域インデックス構築方法および領域検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013010780A JP6167531B2 (ja) 2013-01-24 2013-01-24 領域検索方法、領域インデックス構築方法および領域検索装置

Publications (2)

Publication Number Publication Date
JP2014142803A JP2014142803A (ja) 2014-08-07
JP6167531B2 true JP6167531B2 (ja) 2017-07-26

Family

ID=51424035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013010780A Expired - Fee Related JP6167531B2 (ja) 2013-01-24 2013-01-24 領域検索方法、領域インデックス構築方法および領域検索装置

Country Status (1)

Country Link
JP (1) JP6167531B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109657022B (zh) * 2018-12-08 2020-06-30 拉扎斯网络科技(上海)有限公司 商户查找方法、装置、电子设备和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7619913B2 (en) * 2004-11-30 2009-11-17 Hewlett-Packard Development Company, L.P. Device, method and program for managing area information
AU2007269284A1 (en) * 2006-06-30 2008-01-10 Tele Atlas North America, Inc. Nearest search on adaptive index with variable compression

Also Published As

Publication number Publication date
JP2014142803A (ja) 2014-08-07

Similar Documents

Publication Publication Date Title
KR102178295B1 (ko) 결정 모델 구성 방법 및 장치, 컴퓨터 장치 및 저장 매체
US9501577B2 (en) Recommending points of interests in a region
US9454580B2 (en) Recommendation system with metric transformation
US10204142B2 (en) Progressive spatial searching using augmented structures
Chen et al. Searching trajectories by locations: an efficiency study
Zhang et al. Processing spatial keyword query as a top-k aggregation query
EP3358474B1 (en) Route search method, device and apparatus, and non-volatile computer storage medium
CN106095738B (zh) 推荐表单片段
KR101519879B1 (ko) 계층적 컨텍스트 모델을 이용하여 컨텐츠를 추천하기 위한 장치 및 그 방법
Niu et al. Label-based trajectory clustering in complex road networks
KR20190079354A (ko) 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체
WO2013182736A1 (en) Determination of context-aware user preferences
EP4109293A1 (en) Data query method and apparatus, electronic device, storage medium, and program product
JP2015106347A (ja) レコメンド装置およびレコメンド方法
Belhassena et al. Trajectory big data processing based on frequent activity
US9116916B2 (en) Information organizing sytem and information organizing method
Giannopoulos et al. Classifying points of interest with minimum metadata
JP6167531B2 (ja) 領域検索方法、領域インデックス構築方法および領域検索装置
JP5545876B2 (ja) クエリ提供装置、クエリ提供方法及びクエリ提供プログラム
JP5470082B2 (ja) 情報蓄積検索方法及び情報蓄積検索プログラム
JP2011100208A (ja) 行動推定装置、行動推定方法および行動推定プログラム
JP2013242675A (ja) 分散情報制御装置、分散情報検索方法、データ分散配置方法、及びプログラム
CN113641785B (zh) 基于多维度的科技资源相似词检索方法及电子设备
CN116975359A (zh) 资源处理方法、资源推荐方法、装置和计算机设备
Guo et al. Cohesive group nearest neighbor queries on road-social networks under multi-criteria

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161011

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170410

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170418

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: 20170530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170612

R150 Certificate of patent or registration of utility model

Ref document number: 6167531

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees