JP2014142808A - アドレス解決システム及び方法 - Google Patents

アドレス解決システム及び方法 Download PDF

Info

Publication number
JP2014142808A
JP2014142808A JP2013010831A JP2013010831A JP2014142808A JP 2014142808 A JP2014142808 A JP 2014142808A JP 2013010831 A JP2013010831 A JP 2013010831A JP 2013010831 A JP2013010831 A JP 2013010831A JP 2014142808 A JP2014142808 A JP 2014142808A
Authority
JP
Japan
Prior art keywords
attribute
perm
vector
resolver
management server
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.)
Granted
Application number
JP2013010831A
Other languages
English (en)
Other versions
JP5909199B2 (ja
Inventor
Ryoichi Kawahara
亮一 川原
Hiroshi Saito
洋 斎藤
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013010831A priority Critical patent/JP5909199B2/ja
Publication of JP2014142808A publication Critical patent/JP2014142808A/ja
Application granted granted Critical
Publication of JP5909199B2 publication Critical patent/JP5909199B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 objectが有する様々な属性(物理空間上の位置、時刻情報やその他の属性(色)など)に対する条件指定を行うことで、条件にマッチするobjectを特定し、当該objectのIPアドレスを特定する。
【解決手段】 本発明は、通信ネットワークに接続されているobjectが、複数の属性に対する値を有し、IPアドレスと共にobject管理サーバのデータベースに登録しておき、これら複数の属性の値の組み合わせにより条件指定を行うことでobjectを検索し、該objectのアドレスを特定する。
【選択図】 図5

Description

本発明は、アドレス解決システム及び方法に係り、特に、情報通信ネットワークにおいて、いくつかの条件指定によって、ネットワークに接続されているobject(通信機能をもつ家電品や端末などを指す)を特定し、通信できるようにするためのアドレス解決システム及び方法に関する。
従来の情報通信ネットワークは、論理空間上のアドレスにより通信対象を指定している。固定電話では電話番号、インターネットではIPアドレスがそれにあたり、これらはネットワーク上の位置とも対応しているのでその位置に接続することで通信が可能となる。
一方で、携帯電話の電話番号やインターネットでのURLは、より上位の論理アドレスまたは名前と解釈できる。つまり、これらは通信相手や情報の論理位置を示すが、ネットワーク上の接続位置は示していないため、前者ではLR(ロケーションレジスタ)、後者ではDNS(ドメインネームサーバ)により、ネットワーク上の接続位置を示すアドレスへの変換(いわゆる名前解決)が必要となる。後者の場合であれば、URLから変換後のIPアドレスを用い、接続する(例えば、非特許文献1,2参照)。
弓場英明監修、未来ねっと技術シリーズ ユビキタスネットワーク技術、電気通信協会、2003. http://www.nic.ad.jp/ja/newsletter/No22/080.html
ところで、今後、非常に多数のobjectがネットワークに接続されるようになったときに、個々のobjectに一意に付与された名前をユーザが把握した上で通信を行う代わりに、例えば、ユーザが、目の前で落とし物をした自転車に乗っている人と通信したい、あるいは、ある地域である時間帯に温度が20度以上を示したセンサと通信したい、といったユーザの通信要求条件(様々な属性に対する検索条件の組み合わせ)を直接指定することでobjectを特定して通信できるようにしたい場合が想定される。
しかしながら、既存のシステムでは、個々のobjectに一意に付与された名前をユーザが把握した上で、その名前を指定して通信を行う。例えば、携帯電話であれば電話番号をユーザが指定することで通信を行う。そのため、上述のような利用形態を実現することは困難である。
本発明は、上記の点に鑑みなされたもので、objectが有する様々な属性(物理空間上の位置、時刻情報やその他の属性(色)など)に対する条件指定を行うことで、条件にマッチするobjectを特定し、当該objectのIPアドレスを特定可能なアドレス解決システム及び方法を提供することを目的とする。
上記の課題を解決するため、本発明(請求項1)は、情報通信ネットワークにおいて、いくつかの条件によって該ネットワークに接続されているIPアドレスを有するobjectを特定し通信するためのアドレス解決システムであって、
object、object管理サーバ、リゾルバと、を有し、
前記objectは、
objectを検索するための複数の属性に対する値の組合せをIPアドレスと共に登録要求として前記リゾルバを介して送信するobject登録要求手段と、
各属性に関する条件を指定して検索要求として前記リゾルバを介して送信する検索要求手段と、
検索されたobjectのIPアドレスを特定するIPアドレス特定手段と、
を有し、
前記リゾルバは、
前記objectからの前記登録要求を取得すると、該登録要求の前記属性に基づいて、前記objectの属性ベクトルを生成し、前記object管理サーバに送信するベクトル生成手段と、
前記objectからの前記検索要求を取得すると、該検索要求の前記属性に対して、該属性の範囲を付与したクエリベクトルを生成し、前記object管理サーバに送信するクエリベクトル生成手段と、
を有し、
前記object管理サーバは、
前記リゾルバから前記objectの属性ベクトルを取得して、K次元ベクトルデータベースに登録する登録手段と、
前記リゾルバから前記クエリベクトルを取得すると、該クエリベクトルと前記属性の範囲に基づいて前記K次元ベクトルデータベースを検索し、該当するobjectを該リゾルバに送信する検索手段と、を有する。
また、本発明(請求項2)は、前記object管理サーバの前記登録手段において、
属性の1〜dまでの並び替えのパタンをS個準備し、属性ベクトルv(j)を該並び替えのパタンに基づいて並び替え、先頭のK個の要素をK次元ベクトル(perms K(v(j)))として抽出する処理を、各objectに対して実施し、K次元ベクトルデータベースに格納するK次元ベクトル作成手段を含み、
前記object管理サーバの前記検索手段において、
前記リゾルバから前記クエリベクトルqと前記属性の範囲を取得したら、該クエリベクトルqの該属性の範囲毎に属性の範囲1〜d次元の並び替えのパタンに基づいて、K(1〜k)個の要素(perms K(q))を前記K次元ベクトルデータベースから検索し、該要素がk番目の要素で指定された範囲内にある要素数|perms K(v(j))∧perms K(q)|=Kとなったobjectを候補として抽出するパタン生成手段を含む。
また、本発明(請求項3)は、前記object管理サーバの前記登録手段において、
s=1〜S個のツリー型のデータ構造(以下、「trees」と記す)を用意しておき、各object毎に前記K次元ベクトルを前記K次元ベクトルデータベースのs番目に登録する手段を含み、
前記object管理サーバの前記検索手段において、
前記K次元ベクトルデータベースに対して、前記(perms K(q))を用いて前記範囲内にある要素数|perms K(v(j))∧perms K(q)|の検索を行い、得られたobjectの集合の積集合に属するobjectを抽出する手段を含む。
また、本発明(請求項4)は、前記リゾルバの前記クエリベクトル生成手段において、
前記objectが属性iに対する値を持たない場合は、属性値をxi=0とし、
前記クエリqが属性iについて範囲指定を行わない場合は、全区間とする。
また、本発明(請求項5)は、前記リゾルバの前記クエリベクトル生成手段において、
前記objectが属性iに対する値を持たない場合は、該属性iを除外して前記クエリベクトルを生成する手段を含み、
前記object管理サーバの前記検索手段において、
前記クエリベクトルの前記属性の範囲毎に属性の範囲1〜d次元の並び替えのパタンに基づいて、K(1〜k)個の要素(perms K(q))を前記K次元ベクトルデータベースから検索し、該要素がk番目の要素で指定された範囲内にある要素数|perms K(v(j))∧perms K(q)|≧K'(K'は所定の値であり、K'≦K)となったobjectを候補として抽出する手段を含む。
本発明(請求項6)は、前記object管理サーバの前記検索手段において、
各perms (s=1〜S)において抽出されたobject集合をAsとし、I[v(j)∈A1]+I[v(j)∈A 2]+…+I[v(j)∈As])≧Sth(但し、I[]は[]内の条件を満たすとき1、満たさないとき0を返す関数、Sthは所定の閾値で1≦Sth≦S)を満たす属性ベクトルv(j)を特定したいobject候補として抽出する手段を含む。
また、本発明(請求項7)は、前記object管理サーバにおいて、
全object集合に対する属性iに対する累積分布関数Fi (x)=P[objectの属性iのxi≦x]を作成しておき、クエリqにおいて該属性iについての範囲指定がxlowiからxhighiの場合、fi (q)=Fi (xhighi)-Fi (xlow-i)を計算する手段と、
前記並び替えのパタンpermsをs=1からS'(S'>S)個用意しておき、perms K(q)により前記K次ベクトルデータベースより抽出されたK個の属性i1,i 2,…,iKに対して、f{i1}(q), f{i 2}(q), …, f{iK}(q)を計算し、その積P(s,q)= f{i1} (q)×f{i 2} (q)×…× f{iK} (q)を計算し、それを各s=1〜S'に対して実施し、得られたP(s,q)の値が小さいものからS個のpermsを選択する手段を含む。
上述のように、本発明によれば、objectが有する様々な属性(物理空間上の位置や、色)に対する条件指定を行うことで、条件にマッチするobjectを特定し、該objectのIPアドレスを特定可能なアドレス解決を提供することが可能となる。
本発明が適用されるIPネットワークの基本構成例である。 本発明の第1の実施の形態におけるリゾルバの構成例である。 本発明の第1の実施の形態におけるobject管理サーバの構成例である。 本発明の第1の実施の形態におけるobject登録時の処理のフローチャートである。 本発明の第1の実施の形態におけるobject検索時の処理のフローチャートである。 ツリー型のデータ構造を用いた検索の例である。 次元数を変えた時の処理対象ノード数について説明するための図である。 次元数を変えた時の処理対象ノード数の数値計算例である。 本発明の第4の実施の形態におけるobject及びクエリの場合分けの例である。
以下、図面と共に本発明の実施の形態を説明する。
[第1の実施の形態]
図1は、本発明が適用されるIPネットワークの基本構成例を示す。
同図に示すように、IPネットワーク400に接続されるobject100、object管理サーバ300、リゾルバ200から構成される。なお、ここでは、IPネットワークを例に記載しているが、IPアドレス以外の論理アドレスを用いた他のネットワークであってもよい(つまり、論理アドレスがネットワーク上の位置を指し、かつその論理アドレスを指定すれば所望の宛先までデータやパケットを転送することが可能であれば他のネットワークであってもよい)。ここで、object100は、objectを識別するID、IPアドレスに加え、複数の属性(位置情報、色、時刻情報、センサの気温等)に対する値(時刻=10:00、位置=緯度XXX,経度YYY、色=赤、気温20度等)を有するものとする。これらの複数の属性は、値の組み合わせにより条件指定を行うことで、objectを検索し、当該objectのアドレスIP#Aを特定可能とする。
図2は、本発明の第1の実施の形態におけるリゾルバの構成例を示す。同図に示すリゾルバ200は、登録・検索要求受付部210、object・クエリベクトル生成部220を有する。登録・検索要求受付部210は、object100から登録要求または検索要求の要求パケットを受信し、object・クエリベクトル生成部220に送出する。object・クエリベクトル生成部220は、要求パケットが登録要求であれば、送信元のobject100のIPアドレス、ID、複数の属性情報(位置情報,色,時刻情報等)からobjectの属性ベクトルを生成し、object管理サーバ300に登録し、その結果を送信元のobject100に通知する。要求パケットが検索要求である場合は、当該object100のクエリベクトルを生成し、object管理サーバ300に送信し、当該クエリベクトルに対応するobjectのIPアドレスを取得し、object100に通知する。なお、objectの属性ベクトル、クエリベクトルの生成については後述する。
図3は、本発明の第1の実施の形態におけるobject管理サーバの構成例である。同図に示すobject管理サーバ300は、object・クエリベクトル受付部310、K次元ベクトル作成部320、K次元ベクトルデータベース330を有する。object・クエリベクトル受付部310は、リゾルバ200からobjectの属性ベクトルまたは、クエリベクトルを受信し、K次元ベクトル作成部320に出力する。K次元ベクトル作成部320は、objectの属性ベクトルとIPアドレスの組をK次元ベクトルデータベース330に登録する機能と、クエリベクトルに基づいてK次元ベクトルを生成し、当該K次元ベクトルを用いてK次元ベクトルデータベース330を検索し、ユーザから指定された検索条件を満たすobjectの候補を抽出し、送信元のobjectIDに対応するIPアドレスを読み出し、リゾルバ200に通知する。
以下に、本実施の形態の動作を説明する。
<object登録>
図4は、本発明の第1の実施の形態におけるobject登録時の処理のフローチャートである。
ステップ101) object100がネットワーク400に接続されたら、object100は、object登録要求パケットをリゾルバ200内の登録・検索要求受付部210に送信する。その際、object100は、自身のIPアドレス、objectID(=j)、複数の属性情報(位置情報,色,時刻情報等)を通知する。
ステップ102) object100からの登録要求パケットがリゾルバ200へ到着したら、リゾルバ200の登録・検索要求受付部210は、該object100の各種情報を読み出し、object・クエリベクトル生成部220に通知する。object・クエリベクトル生成部220では、複数の属性情報から該object#jの属性ベクトルv(j)を生成する。具体的な手順は以下の通りである。
属性情報中の属性iがi=1からdまで存在するとし(以下で、属性iを次元i、属性数dを次元数dとよぶ場合がある)、属性iにおける属性値の取りうる範囲を[0, mi]とする。属性が色のような数値でない場合は数値に対応付けることにする(例えば24色で表現するとして、mi =24にし、色が白=1、黄=2、という対応付を行う)。各object100#jの各属性iに対する属性値x(j)iが与えられているとし、object100#jの属性ベクトルv(j)を、
v(j)=[x(j)1, m1+x(j)2, …, m(i-1)+x(j)i, …, m(d-1)+x(j)d]
として生成する。
生成した属性ベクトルv(j)とobject100#jのIPアドレスIP#Aの組を、object管理サーバ300へ通知する。
ステップ103) リゾルバ200からobjectベクトルv(j)とIPアドレスIP#Aの組をobject管理サーバ300内のobject・クエリベクトル受付部310にて受信したら、それをK次元ベクトル作成部320に通知する。K次元ベクトル作成部320では、以下の手順により、S通りのK次元ベクトルperms K(v(j))を生成する。
属性i=1からdの並び替えのパタンpermをS個準備する。例えば属性数をd=5とし、ランダムな並び替えのパタンをS=3個用意するとして、
perm1=[3,4,2,1,5],
perm2=[2,5,1,3,4],
perm3=[5,4,2,1,3]
を生成する。perms (s=1からS)を用いて、objectの属性ベクトルv(j)を並び替えた後、先頭のK個の要素を抽出する(Kは予め定める値で、K<dとする)。この操作により得られるK次元ベクトルをperms K(v(j))と表すこととする。例えば、d=5, K=2とすると、
v(j)=[x(j)1, m1+x(j)2, …, m (i-1)+x(j)i, …, m4+x(j)5]
に対して、
perm{s=1} K(v(j))=[m2+x(j)3, m3+x(j)4]
となる。
ステップ104) object管理サーバ300のK次元ベクトル作成部320は、K次元ベクトルとIP#Aの組をK次元ベクトルデータベース330に登録する。具体的には、perms K(v(j))⇔objectID#jの対応、ならびに、objectID#j⇔IP#Aの対応をK次元ベクトルデータベース330にエントリする。
<object検索>
図5は、本発明の第1の実施の形態におけるobject検索時の処理のフローチャートである。
ステップ201) ユーザは各属性に関する条件指定をした情報(例えば、位置が○○の範囲、時刻が△△の範囲、色=赤など)を検索要求パケットとしてリゾルバ200に送信する。
ステップ202) リゾルバ200は、検索要求パケットを登録・検索要求受付部210にて受信したら、各属性に対する条件指定を読み出し、object・クエリベクトル生成部220へ通知する。object・クエリベクトル生成部220では、以下の手順により、クエリベクトルqを生成する。属性iのレンジ指定がxlow i≦x i≦xhigh iの場合、クエリベクトルqを、
q=[xlow1〜xhigh1, m 1+xlow2〜m 1+xhigh2,
..., m(i-1)+xlowi〜m(i-1)+xhighi, …, m(d-1)+xlowd〜m(d-1)+xhighd]
として生成する。生成したベクトルqを、object管理サーバ300へ通知する。
ステップ203) object管理サーバ300は、クエリベクトルqをobject・クエリベクトル受付部310にて受信したら、それをK次元ベクトル作成部320に通知する。K次元ベクトル作成部320では、以下の手順により、S通りのK次元ベクトルperms K(q)を生成する。
object登録時に用いた、属性i=1からdの並び替えのパタンperms(s=1からS)を用いてperms K(q)を生成する。例えば、object登録時のステップ103に準備したperm1=[3,4,2,1,5], perm=[2,5,1,3,4], perm=[5,4,2,1,3]を用いる。この場合、例えばs=1に対しては、
perm{s=1} K(q)=[m+xlow〜m+xhigh, m+xlow〜m+xhigh]
となる。
ステップ204) ステップ203で生成されたK次元ベクトルを用いて、K次元ベクトルデータベース上330で検索を行う。具体的には、perms K(q)で指定されたK個の範囲指定に対して、全てのs (s=1からS)に対して|perms K(v(j))∧perms K(q)|=KとなったobjectID#jを、検索条件を満たすobjectの候補として抽出する。その後、該objectID#jに対するIP#Aを読み出し、その結果をリゾルバ200に通知する。
上記の処理を具体的に示す。
検索を行う際には、各属性iに対して、検索条件を指定する。例えば属性iを気温とし、気温の値xiが20度≦xi≦25度というようにレンジ指定で検索を行う。具体的には、属性iのレンジ指定がxlowi≦xi≦xhighiの場合、クエリベクトルqを、
q=[xlow1〜xhigh1, m1+xlow2〜m1+xhigh2,
..., m(i-1)+xlowi〜m(i-1)+xhighi, …, m(d-1)+xlowd〜m(d-1)+xhighd]
として生成する。このクエリベクトルqを用いて、qの範囲に存在するobjectを検索し、該当するobjectのアドレスを特定可能とする。
このような、複数の属性に関して、レンジを指定することで条件にマッチするobjectを探索する方法として、R-tree(非特許文献3:A. Guttman, "R-Trees: A Dynamic Index Structure for Spatial Searching,'' ACM SIGMOD 1984.、非特許文献4:L. Arge et al., ``The Priority R-tree: a practically efficient and worst-case optimal R-tree,'' SIGMOD 2004.)やKD-tree(非特許文献5:http://en.wikipedia.org/wiki/K-d_tree)と呼ばれるツリー型のデータ構造を用いる方法が一般的である。
図6に2次元データ(x1,x 2)に対する具体例を示す。同図に示すように、各次元の値に対する範囲をいくつかの区間に分割し、それぞれの区間を担当する子ノードを用意する。例えば、同図のrootノードAにおいて、[0-1,0-1]と記載しているが、これは、本ノードの担当する範囲が1次元目、2次元目とも0から1であることを意味する。ノードBは[0-0,5,0-1]の範囲を担当している。各子ノードは自身の担当する区間を分割し、各分割区間に対応する子ノードを用意する。
(1)objectの登録時には、自身の値(x1,x2)を担当するleafノード(図6の最下位層のノード)にobjectをエントリする。
(2)objectの検索時には、指定されたレンジに対応する子ノードを辿ることで、対象objectを特定する。例えば、0.1<x1<0.3, 0.1<x2<0.25を満たすobjectを探索する場合、rootノードA→ノードB→leafノードDと辿って、object=(0.2,0.2)を見つける。
このようなツリー型のデータ構造をネットワークへ応用した例として、例えば非特許文献6(木實, 戸辺他, "I-Tree: センシングデータの統合検索を支援する空間時系列索引機構,"報処理学会論文誌:データベース, March 2011.)ではセンサデータの空間時系列データを対象に、Tree構造でデータを管理し、例えば現在の時系列の様子が似ている過去の時系列を効率的に見つけることを可能にする。非特許文献7(石塚,木實,戸辺,瀬崎,"携帯端末で撮影した写真の利用を前提とする動的ストリート画像フロー生成機構の設計",電子情報通信学会 論文誌 Vol. J94-D No.1,pp.178-190,2011年1月.)では、カメラ付き携帯電話で集めた街の写真をDBに蓄積し、道路に沿って画像列(=ストリート画像フローと呼ぶ)を高速に検索できる方法として、KD-treeを改良している。非特許文献8(D. Papadias et al.,"Indexing spatio-temporal data warehouses," ICDE 2002.)は、複数のセンサから発せられる時空間データを効率よく検索するための索引機構として、様々なレンジ指定(時間方向と空間方向)に対する集約情報(sumなど)を管理可能とするR-treeの改良を提案している。
しかしながら、属性の数(=次元数)が大きくなると、このようなツリー型のデータ構造を用いた検索では、全ノード探索に近づく問題が指摘されている(次元の呪いとよばれる)(非特許文献9:C. Bohm et al.,"Searching in high-dimensional spaces: Index structures for improving the performance of multimedia databases," ACM Computing Surveys, 2001.)。
一方、検索に関する先行技術として、webページの語彙の集合や画像のイメージデータなどをベクトルとして表現し、これら高次元ベクトルを対象に類似のwebページや画像データを検索する方法がある(例えば、非特許文献10:J. Zhai et al., "ATLAS: A Probabilistic algorithm for high dimensional similarity search," SIGMOD 2011.、非特許文献11:P. Indyk and R. Motwani. Approximate nearest neighbors: towards removing the curse of dimensionality. In STOC, 1998.、非特許文献12:A. Andoni and P. Indyk. Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions. Communications of the ACM, 51:117-122, 2008.、非特許文献13:M. Datar, N. Immorlica, P. Indyk and V. S. Mirrokni, "Locality-Sensitive Hashing Scheme Based on p-Stable Distributions," ACM SCG 2004. (projection based LSH)、非特許文献14:V. Satuluri et al., "Bayesian Locality Sensitive Hashing for Fast Similarity Search," VLDB 2012.、非特許文献15:A. Das et al., "Google News Personalization: Scalable Online Collaborative Filtering," WWW 2007.、非特許文献16:P. Li and A. C. Konig, "b-Bit Minwise Hashing", Ping Li, Arnd Christian Konig," WWW 2010.、非特許文献17:K. Aoyama et al.,、"Fast approximate similarity search based on degree-reduced neighborhood graphs,"ACM KDD 2011.参照)。これらの方法の多くは、類似のitemを同じbucketに高い確率でマッピングするhashing (locality sensitive hashingと呼ばれる)を利用している。そのようなhashingを実現する方法の一つとしてminHash(非特許文献18:A. Z. Broder, M. Charikar, A. M. Frieze, M. Mitzenmacher, "Min-wise independent permutations (extended abstract)," ACM STOC 1998.、あるいはそれに類するもの(非特許文献19:M. Thorup et al., "Tabulation Based 4-Universal Hashing with Applications to Second Moment Estimation," SODA 2004.、非特許文献20:P. Indyk, "A Small Approximately Min-Wise Independent Family of Hash Functions," Journal of Algorithms 2001.等)がある。しかしながら、これらの方法は、類似データのクラスタ化などを主な目的としており、今回のようなあるレンジ指定された条件にマッチするobjectを特定することを実現するものではない。
それに対し、以下で述べる方法においては、各属性に対してレンジ指定された条件を満たすobjectを抽出することを可能にする。
属性i=1〜dの並び替えのパタンpermをS個準備する。例えばd=5とし、ランダムな並び替えのパタンをS=3個用意するとして、object管理サーバ300のK次元ベクトル作成部320は、
perm1=[3,4,2,1,5],
perm2=[2,5,1,3,4],
perm=[5,4,2,1,3]
を生成する。perms (s=1からS)を用いて、属性ベクトルv(j)を並び替えた後、先頭のK個の要素を抽出する。(Kは予め定める値で、K<dとする。)この操作により得られるK次元ベクトルをperms K(v(j))と表すこととする。例えばd=5、 K=2とすると、
v(j)=[x(j)1,m1+x(j)2,…,m(i-1)+x(j)i,…,m+x(j)]
に対して、perm{s=1} K(v(j))=[m 2+x(j)3, m3+x(j)4]となる。以上を各objectに対して実施しておく。
一方、検索時にリゾルバ200でクエリベクトルqを生成したら、object管理サーバ300において、qに対してもK次元ベクトルperms K(q)の操作を行う。例えばd=5の場合、
q=[xlow1〜xhigh1,m1+xlow2〜m1+xhigh2,…,
m(i-1)+xlowi〜m(i-1)+xhighi, …, m4+xlow5〜m4+xhigh5]
に対して、
perm{s=1} K(q)=[m2+xlow3〜m2+xhigh3, m3+xlow4〜m3+xhigh4]
となる。perms K(q)とperms K(v(j))を比較し、ベクトルperms K(v(j))=[pv1,pv2,…,pvK]のk番目(k=1からK)の要素pvkが、perms K(q)=[pq1,pq2,…,pqK]のk番目の要素pqkで指定されたレンジ内にあるかチェックし、レンジ内にある要素数を
|perms K(v(j))∧perms K(q)|
と表記する。前述の例だと、
pv1= m2+x(j)3, pv2=m3+x(j)4,pq1=m2+xlow3〜m2+xhigh3,
pq2=m3+xlow4〜m3+xhigh4
となる。全てのs (s=1からS)に対して|perms K(v(j))∧perms K(q)|=Kとなったobject v(j)を、検索条件を満たすobjectの候補として抽出する。
以上の方法において、Kを次元数dよりも小さい値に設定することで、objectベクトルv(j)を、低次元(K次元)ベクトルへ変換し、K次元空間上で探索することで次元の呪いを回避している。一方で、一部の属性のみを対象に検索するため、誤検出や見逃しの可能性がある。まず、見逃しの可能性について述べる。d次元全てにおいてレンジ指定条件を満たすobjectが、検出されるべきobjectとなる。それに対し、本発明では、K次元のみを検索するが、検出されるべきobjectはd次元全てにおいてレンジ指定条件を満たしているため、その一部であるK次元についても必ずレンジ指定条件を満たすため、見逃すことはないことになる。
一方、誤検出の可能性はあるため、誤検出率FPR(False Positive Rate)を考慮して、本発明のパラメータKやパターンの個数Sを設定する必要がある。FPRは、本来は検索条件にマッチしないobjectであるにも関わらず、誤って条件にマッチしたと判定される確率である。誤検出率FPRをSとKを用いて計算する例として、以下の数式を用いる。
Figure 2014142808
ただし、Nはobject数、dは次元数、Hは検索条件を満たすobject数の期待値であり、p=(H/N)(1/d)とする。式(1)は、objectベクトルの各属性間の値は独立であり、かつ各属性に対する値が一様分布するとし、またクエリベクトルは、各属性iについてレンジ長T=(H/N) (1/d)を持ち、レンジの始点xlowは[0,mi-T]の間で一様分布に従い、レンジの終点xhigh=xlow+Tで与えられるという仮定の下で、導出される。上記の式(1)を用いることで、例えば、FPRをある一定値以下に抑えるようなSとKを決定することが可能となる。具体的な数値例については、第2の実施の形態で詳述する。
[第2の実施の形態]
本実施の形態では、R-treeやkd-treeと呼ばれる多次元データに対するツリー型のデータ構造を利用する例について説明する。
本実施の形態における装置構成は、第1の実施の形態と同様に図2、図3のリゾルバ200とobject管理サーバ300を用いる。
R-treeやkd-treeと呼ばれる多次元データに対するツリー型のデータ構造をs=1からS個用意しておき(これをtreesと呼ぶ)、object管理サーバ300は、前述の第1の実施の形態におけるK次元ベクトルperms K(v(j))をK次元ベクトルデータベース330のs番目のtreesにエントリする。これを各objectに対して実施しておく。
object管理サーバ300は、検索時には、K次元ベクトルデータベース330のtreesに対して、perms K(q)を用いて検索を行う。その結果、perms Kに関して、検索条件を満たすobjectの集合Lsが得られる。これをs=1〜Sに対して実施し、集合L1∧L 2∧…∧LS(なお記号∧は積集合を表し、例えばL1∧L 2であれば集合L1とL 2の積集合を意味する)に属するobjectを、特定したいobjectの候補として抽出する。
ツリー型のデータ構造を用いてレンジ検索を行う際、ツリーを構成するノードの担当範囲が、クエリでの指定範囲に包含されている場合は、該ノード配下のobjectは全て条件にマッチすると判定できるが、ノードの範囲とクエリでの指定範囲の一部が重なる場合には、該ノード配下のobjectが本当に条件を満たすかを調べる必要があり、探索に時間を要することになる。簡単な例として、1次元の場合と2次元の場合を比較する(図7(a)と図7(b))。同図では、探索空間を16個の区間に分割している場合を示している。このとき、レンジ長が全区間の半分であるクエリがあったとする。一次元の場合(図7−(a))、該クエリの指定範囲とノードの範囲の一部が重なるノード数は2ノード(ノード1とノード9)となる。それに対して、2次元の場合(図7−(b))、該クエリの指定範囲とノードの範囲の一部が重なるノード数は8ノード(ノード5,6,7,9,11,13,14,15)となる。このように次元が大きい方が、一部が重なるケースが大きくなると考えられる。図8は、探索空間を232個に分割したときに、各leafノードの担当範囲がクエリの指定範囲の一部と重なるようなleafノードの数Nnonoverlapを数値計算で計算した結果である。X軸は次元数d、Y軸はNnonoverlap/232としてプロットしている。これより、次元が小さいと該ノード数が少なくて済むことが分かる。
例えば、各次元i (i=1〜d)に対して、区間[0,1]の間で一様分布に従う値を属性値xiとし、d次元ベクトルのobject vがv=[x1,x 2,…,xi,…,xd]により構成されていると仮定し、object数N=232個、H=1、d=32とし、各ノードは256個の子ノードを持つようにツリーを構成したとする。また、クエリのレンジ長をT=(H/N)(1/d)=0.5となる。以上の条件の下、d=32次元の場合、一部と重なるノードの総数は4,311,810,304となる。それに対してK=8でK次元ツリーを構成した場合には、その0.00874倍のノード数の処理で済む。
そのようなK次元ツリーをS=1個用意して、本実施の形態の方法の手順を実施すると、FPR=3.91×10-3となる(第1の実施の形態の式(1)より)。そのときの計算コストはd次元の場合の0.00874倍となる。またS=2とした場合は、FPR=1.53×10-5となり、そのときの計算コストは0.00874×S+{L1∧L 2の積集合演算分}となる。K次元ツリーでの一ノードでの処理コストは1object当りK次元分の比較演算が必要と考えられるため、{L1∧L 2の積集合演算}における1object当りの計算コストのα倍(α≧1)の計算コストを要するとする。また、L1、L2それぞれから出力される候補object数をn1,n2とすると、L1∧L2の積集合演算にO(n1+n2)の計算コストがかかるとする。なお、n1,n2は、以下で計算されるPdetect(S,K)を用いてn1=n2=Pdetect (1,K)×Nにより計算される。
Figure 2014142808
Pdetect(S,K)は、パラメータをSとKに設定したときに、あるobjectが候補として選ばれる確率を表す。以上より、仮にα=1とした場合に、計算コストはd次元の場合の0.0253倍と計算される。
[第3の実施の形態]
本実施の形態は、objectがある属性iに対する値を持たない場合、xi=0とする(0は、値を持たないことを意味するというルールにする)。かつ、クエリqが属性iについてレンジ指定を行わない場合は、指定範囲を0≦xi≦mi(すなわち全区間)とする。
[第4の実施の形態]
本実施の形態は、objectがある属性iに対する値を持たない場合、リゾルバ200において、その属性iを除外して、ベクトルv(j)を構成するものである。すなわち、
v(j)=[x(j)1, m1+x(j)2, …, m (i-2)+x(j)(i-1), mi+x(j)(i+1), …, m(d-1)+x(j)d]
とする。
また、クエリqが属性iについてレンジ指定を行わない場合は、その属性を除外してクエリベクトルqを構成してもよい。すなわち、
q=[xlow1〜xhigh1, m1+xlow2〜m1+xhigh2,
..., m(i-2)+xlow(i-1)〜m(i-2)+xhigh(i-1), mi+xlow(i+1)〜mi+xhigh(i+1),
…, m(d-1)+xlowd〜m(d-1)+xhighd]
とする。
この場合、第1の実施の形態において、object検出条件を
|perms K(v(j))∧perms K(q)|=K
としていた代わりに、以下のように変更する。すなわち、ベクトルperms K(v(j))=[pv1,pv2,…,pvK]のk番目の要素pvkが、perms K(q)=[pq1,pq2,…,pqK]のk'=1からK番目のいずれかの要素pqk'で指定されたレンジ内にあるかチェックし、それを各k(k=1からK)に対して実施し、その結果レンジ内にあった要素数を
|perms K(v(j))∧perms K(q)|
と表記し、|perms K(v(j))∧perms K(q)|≧K' (K'は予め定める値であり、K'≦K)であれば特定したいobjectの候補として抽出する。
システムにおいて、第1の実施の形態と異なる検出条件を導入した理由を述べる。objectおよびクエリに関して、図9のような場合分けを考える。それぞれのケースについて、第3の実施の形態の方法によりobjectまたはクエリを構成した上で、第1の実施の形態の方法を適用した場合と比べて、図9にまとめたように誤検出率が減少する一方で、見逃しが生じる可能性がある。そのため、検出条件を|perms K(v(j))∧perms K(q)|≧K'(ただしK'<K)とすることで、より検出されやすくなるように調整可能にしている。
ここで、各ケースにおける誤検出・見逃しについて説明する。
第3の実施の形態の方法で、object/クエリを構成した上で第1の実施の形態の検出条件を適用した場合と比べて、第4の実施の形態の方法でobject/クエリを構成した上で第3の検出条件を適用すると、誤検出率・見逃し率がどのように変化するかを考察する(以下で具体例を示している場合には、d=5, mi=10, K=3を仮定している。)。なお、第2の実施の形態の方法の説明時に述べたように、第3の実施の形態の方法を適用した場合は図9のいずれのケースにおいても見逃しは発生しない。
<ケース1> ベクトルv(j)が属性iの値を持たない場合に除外し、qが属性i'のレンジ指定を行わない場合に全区間を指定:
(1-1) v(j)が除外属性iをもち、qの該属性iは全区間指定の場合:
○誤検出のケース
・第4の実施の形態の方法:i=3番目の属性を持たないベクトルv(j)=[1,12,32,45]と、同じくi'=3番目の属性を全区間指定するクエリq=[1〜3, 11〜15, 20〜30, 32〜35, 41〜44]を例に考える。perms=[1,2,3,4,5]とすると、
perms K(v(j))=[1,12,32],
perms K(q)=[1〜3, 11〜15, 20〜30]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって、正しく対象外と判定できる。
・第3の実施の形態の方法:v(j)=[1,12,20,32,45],perms K(v(j))=[1,12,20]となるため、|perms K(v(j))∧perms K(q)|=Kとなり誤検出される。
以上より、第3の実施の形態の方法よりも誤検出率が減るケースがある。
○見逃しのケース:
・第4の実施の形態の方法:v(j)が属性iの値を持たず、クエリqがi=i'番目の属性を全区間指定する場合、見逃しが発生するケースがある。例として、v(j)=[1,12,32,45]、q=[1〜3,11〜15,20〜30,32〜35,40〜48]を考える。このクエリqは、3番目の属性に対してはレンジ指定区間=全区間(=20〜30)となっているため、これは3番目の属性に対してレンジ指定を行わない(=条件指定なし)場合を意味している。したがって、ベクトルv(j)はクエリqに含まれる、という判定が正解となる。perms=[1,2,3,4,5], K=3とすると、
perms K(v(j))=[1,12,32],
perms K(q)=[1〜3, 11〜15, 20〜30]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって、誤って対象外と判定する、つまり見逃すことになる。
以上をまとめると、誤検出および見逃しのいずれのケースにおいても、第3の実施の形態の方法では、ベクトルv(j)のn番目の要素の属性とqのそれは同じ属性に対応しているのに対して、第4の実施の形態の方法ではその対応関係がずれることで、検出条件にマッチする可能性が減り、誤検出率が減る一方で見逃し率が増加する可能性があると考えられる。
(1-2) (1-1)以外の場合:
○誤検出のケース:
i=3番目の属性に対する値を持たないobjectとして、v(j)=[1,12,32,45]を考える。一方、i'=5番目の属性を全区間指定するクエリとして、
q=[1〜3, 11〜15, 22〜24, 32〜35, 40〜50]
とする。この例では、ベクトルv(j)はクエリqに含まれない、という判定が正解となる(22〜24という条件指定を満たさないため)。
perms=[1,2,3,4,5]とする。このとき、perms K(v(j))=[1,12,32]となる。この場合、
perms K(q)=[1〜3, 11〜15, 22〜24]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって、正しく対象外と判定できる。つまり、第3の実施の形態の方法のようにi=3番目の属性に対する値をxi=0としてv(j)をv(j)=[1,12,20,32,45]と構成しても、第4の実施の形態の方法のようにその属性を除外してv(j)=[1,12,32,45]としても、permsの最初のK個の中にi=3が含まれれば、正しく対象外と判定できる。つまり、第3の実施の形態の手順から第4の実施の形態の手順に変更することによって誤検出率が増加することはないと考えられる。一方、先頭のK個に属性iが含まれないpermsに対しては、第3と第4の実施の形態の方法は同じ動作となるため、誤検出率は変化しない。
○見逃しのケース:
ベクトルv(j)の属性iが除外であっても、クエリqの該属性iは全区間指定でない(つまりレンジ指定)場合には、v(j)がqに含まれることはない。なぜなら、v(j)がqに含まれるためには、『qでレンジ指定されている各属性iに対して、v(j)が該属性iの値を持つ』という必要条件があるからである。したがって、(1-1)以外のケースでv(j)がqに含まれる可能性がある場合は、v(j)が全属性に対して値を持つ場合のみである。その場合、qがレンジ指定のない属性を全区間指定するという条件の下では、どのようなpermsに対しても、perms K()で選択されるv(j)の属性の組は、perms K()で選択されるqの属性の組に必ず一致する。従って、見逃しが発生することはない。
<ケース2>: ベクトルv(j)が属性iの値を持たない場合にxi=0とし、クエリqが属性i'のレンジ指定を行わない場合に除外:
(2-1) ベクトルv(j)が属性iをxi=0とし、クエリqの該属性iは除外:
○誤検出のケース
・第4の実施の形態の方法:i=3番目の属性を持たないv(j)=[1,12,20,32,45]と、同じくi'=3番目の属性を除外するクエリq=[1〜3, 11〜15, 32〜35, 41〜44]を例に考える。perms=[1,2,3,4,5]とすると、
perms K(v(j))=[1,12,20],
perms K(q)=[1〜3, 11〜15, 32〜35]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって、誤検出されない。
・第3の実施の形態の方法:perms K(q)=[1〜3, 11〜15, 20〜30]となるため、|perms K(v(j))∧perms K(q)|=Kとなり誤検出される。
以上より、誤検出率が減るケースがある。
○見逃しのケース:
・第4の実施の形態の方法:例として、v(j)=[1,12,20,32,45],q=[1〜3,11〜15,32〜35,40〜48]を例に考える。この場合、ベクトルv(j)はクエリqに含まれる、という判定が正解となる。perms=[1,2,3,4,5], K=3とすると、
perms K(v(j))=[1,12,20],
perms K(q)=[1〜3, 11〜15, 32〜35]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって、誤って対象外と判定する、つまり見逃すことになる。
(2-2) (2-1)以外の場合:
○誤検出のケース:
i=3番目の属性に対する値をxi=0とするobjectとして、v(j)=[1,12,20,32,45]の例を考える。一方、i'=5番目の属性を指定しないクエリとして、q=[1〜3, 11〜15, 22〜24, 32〜35]とする。この例では、ベクトルv(j)はクエリqに含まれない、という判定が正解となる(22〜24という条件指定を満たさないため)。
・第4の実施の形態の方法:先頭のK個にi'=5が含まれるpermsとして、perms=[1,2,5,3,4]を考える。このとき、
perms K(v(j))=[1,12,45],
perms K(q)=[1〜3, 11〜15, 22〜24]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって、誤検出されない。
・第3の実施の形態の方法:perms K(q)=[1〜3, 11〜15, 40〜50]となり誤検出される。つまり、第3の実施の形態の方法では、属性i'=5が全区間指定されるため検出されやすくなるのに対して、第4の実施の形態の方法では、その属性を除外することで検出されにくくなっている。
○見逃しのケース:
・第4の実施の形態の方法:ベクトルv(j)の属性iがxi=0であり、クエリqの該属性iはレンジ指定される場合には、v(j)がqに含まれることはない。なぜなら、v(j)がqに含まれるためには、qでレンジ指定されている各属性iに対して、v(j)が該属性iの値を持つ、という必要条件があるからである。したがって、(2-1)以外のケースでv(j)がqに含まれる可能性がある場合は、v(j)が全属性に対して値を持つ場合のみである。その場合、qにて除外されている属性i'がpermsの先頭K個に含まれる場合、ベクトルv(j)のn番目の要素の属性とqのそれの対応関係がずれるため、見逃しが発生する。
例として、v(j)=[1,12,22,32,45], q=[1〜3, 11〜15, 22〜24, 32〜35], perms=[1,2,5,3,4]を考える。このとき、
perms K(v(j))=[1,12,45],
perms K(q)=[1〜3, 11〜15, 22〜24]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって見逃しが生じる。
<ケース3>: ベクトルv(j)が属性iの値を持たない場合に除外し、クエリqが属性i'のレンジ指定を行わない場合に除外:
(3-1) v(j)が除外属性iをもち、qの該属性iを除外の場合:
○誤検出のケース:
クエリqの除外属性がiのみであれば、ベクトルv(j)のn番目の要素の属性とqのそれは同じ属性に対応するので、第3の実施の形態の方法と第4の実施の形態の方法は同じ結果になる。qの除外属性がi以外にも存在する場合には、第4の実施の形態の方法ではその対応関係がずれることで、検出条件にマッチする可能性が減り、誤検出率が減る場合がある。例として、i=3番目の属性を持たないv(j)=[1,12,32,45]と、i'=3,4番目の属性を除外するクエリq=[1〜3, 11〜15, 41〜44]を例に考える。perms=[1,2,3,4,5]とすると、
perms K(v(j))=[1,12,32],
perms K(q)=[1〜3, 11〜15, 41〜45]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって、誤検出しない。一方、第3の実施の形態の方法では、v(j)=[1,12,20,32,45],q=[1〜3, 11〜15, 20〜30, 30〜40, 41〜44]となり、
perms K(v(j))=[1,12,20],
perms K(q)=[1〜3, 11〜15, 20〜30]
となるため、|perms K(v(j))∧perms K(q)|=Kとなり誤検出される。
○見逃しのケース:
・第4の実施の形態の方法:クエリqが、ベクトルv(j)での除外属性i以外には除外属性i'を持たない場合(つまりv(j)とqの除外属性が1対1対応している場合)、いずれのpermsに対しても、perms(v(j))のn番目の要素の属性とperms(q)のそれは同じになるため、見逃しは生じない。一方、qが、v(j)での除外属性i以外に除外属性i'を持つ場合には見逃しが生じる場合がある。例として、v(j)=[1,12,32,45],q=[1〜3,11〜15,40〜48]を考える。この場合、v(j)はqに含まれる、という判定が正解となる。perms=[1,2,3,4,5], K=3とすると、
perms K(v(j))=[1,12,32],
perms K(q)=[1〜3, 11〜15, 40〜48]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって、誤って対象外と判定する。つまり見逃すことになる。
(3-2) (3-1)以外の場合:
○誤検出のケース:
第4の実施の形態の方法:i=3番目の属性が除外されたobjectとして、v(j)=[1,12,32,45]を考える。一方、i'=5番目の属性を指定しないクエリとして、q=[1〜3, 11〜15, 22〜24, 32〜35]とする。この例では、v(j)はqに含まれない、という判定が正解となる。先頭のK個にi'=5が含まれるpermsとして、perms=[1,2,5,3,4]を考える。このとき、
perms K(v(j))=[1,12,45],
perms K(q)=[1〜3, 11〜15, 22〜24]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって、誤検出されない。
・第3の実施の形態の方法:perms K(q)=[1〜3, 11〜15, 40〜50]となり、誤検出される。つまり、ケース(2-2)と同様に、第3の実施の形態の方法では、属性i'=5が全区間指定されるため検出されやすくなるのに対して、第4の実施の形態の方法では、その属性を除外することで検出されにくくなっている。
○見逃しのケース:
ベクトルv(j)の属性iが除外され、クエリqの該属性iはレンジ指定される場合には、v(j)がqに含まれることはない。なぜなら、v(j)がqに含まれるためには、qでレンジ指定されている各属性iに対して、v(j)が該属性iの値を持つ、という必要条件があるからである。したがって、(3-1)以外の場合でv(j)がqに含まれる可能性がある場合は、v(j)が全属性に対して値を持つ場合のみである。その場合、qにて除外されている属性i'がpermsの先頭K個に含まれる場合、ベクトルv(j)のn番目の要素の属性とqのそれの対応関係がずれるため、見逃しが発生する。例として、v(j)=[1,12,22,32,45], q=[1〜3, 11〜15, 22〜24, 32〜35], perms=[1,2,5,3,4]を考える。このとき、
perms K(v(j))=[1,12,45],
perms K(q)=[1〜3, 11〜15, 22〜24]
となり、|perms K(v(j))∧perms K(q)|=2<Kとなって見逃しが生じる。
[第5の実施の形態]
本実施の形態では、object管理サーバ300において、第4の実施の形態の手順によって、各perms(s=1〜S)において抽出されたobjectの集合をAsとし、(I[v(j)∈A1]+ I[v(j)∈A 2]+…+ I[v(j)∈As])≧Sth(ただし、I[ ]は[ ]内の条件を満たすとき1、そうでない場合0を返す関数、Sthは予め定める閾値で、1≦Sth≦S)を満たすv(j)を特定したいobjectの候補として抽出する。
[第6の実施の形態]
本実施の形態では、object管理サーバ300において、並び替えのパタンを選択する手順について説明する。
K次元ベクトルデータベース330にエントリされているobject集合に対する属性iに関する累積分布関数Fi (x)=P[objectの属性iの値xi≦x]を作成しておき、クエリqにおいて属性iについてのレンジ指定がxlowi〜xhighiの場合、fi (q)=Fi (xhighi)-Fi (xlowi)を計算する。
一方、並び替えのパタンpermsをs=1からS'(>S)個用意しておき、perms K(q)により抽出されたK個の属性i1,i2,…,iKに対して、f{i1}(q), f{i 2}(q), …, f{iK}(q)を計算し、その積P(s,q)= f{i1}(q)×f{i 2}(q)×…× f{iK}(q)を計算し、それを各s=1〜S'に対して実施する。得られたP(s,q)の値が小さいものからS個permsを選択し、第1、第2、第4の実施の形態の手順を実施する。
ここでのP(s,q)は、該クエリqにマッチするobjectの割合に対応するため、該P(s,q)が小さくなるようなpermsを優先的に利用することで、より該当objectを絞り込めることになる。
なお、上記のリゾルバ200、object管理サーバ300の動作をプログラムとして構築し、リゾルバ、object管理サーバとして利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
100 object
200 リゾルバ
210 登録・検索要求受付部
220 object・クエリベクトル生成部
300 object管理サーバ
310 object・クエリベクトル受付部
320 K次元ベクトル作成部
330 K次元ベクトルデータベース
400 IPネットワーク

Claims (8)

  1. 情報通信ネットワークにおいて、いくつかの条件によって該ネットワークに接続されているIPアドレスを有するobjectを特定し通信するためのアドレス解決システムであって、
    object、object管理サーバ、リゾルバと、を有し、
    前記objectは、
    objectを検索するための複数の属性に対する値の組合せをIPアドレスと共に登録要求として前記リゾルバを介して送信するobject登録要求手段と、
    各属性に関する条件を指定して検索要求として前記リゾルバを介して送信する検索要求手段と、
    検索されたobjectのIPアドレスを特定するIPアドレス特定手段と、
    を有し、
    前記リゾルバは、
    前記objectからの前記登録要求を取得すると、該登録要求の前記属性に基づいて、前記objectの属性ベクトルを生成し、前記object管理サーバに送信するベクトル生成手段と、
    前記objectからの前記検索要求を取得すると、該検索要求の前記属性に対して、該属性の範囲を付与したクエリベクトルを生成し、前記object管理サーバに送信するクエリベクトル生成手段と、
    を有し、
    前記object管理サーバは、
    前記リゾルバから前記objectの属性ベクトルを取得して、K次元ベクトルデータベースに登録する登録手段と、
    前記リゾルバから前記クエリベクトルを取得すると、該クエリベクトルと前記属性の範囲に基づいて前記K次元ベクトルデータベースを検索し、該当するobjectを該リゾルバに送信する検索手段と、
    を有することを特徴とするアドレス解決システム。
  2. 前記object管理サーバの前記登録手段は、
    属性の1〜dまでの並び替えのパタンをS個準備し、属性ベクトルv(j)を該並び替えのパタンに基づいて並び替え、先頭のK個の要素をK次元ベクトル(perms K(v(j)))として抽出する処理を、各objectに対して実施し、K次元ベクトルデータベースに格納するK次元ベクトル作成手段を含み、
    前記object管理サーバの前記検索手段は、
    前記リゾルバから前記クエリベクトルqと前記属性の範囲を取得したら、該クエリベクトルqの該属性の範囲毎に属性の範囲1〜d次元の並び替えのパタンに基づいて、K(1〜k)個の要素(perms K(q))を前記K次元ベクトルデータベースから検索し、該要素がk番目の要素で指定された範囲内にある要素数|perms K(v(j))∧perms K(q)|=Kとなったobjectを候補として抽出するパタン生成手段を含む、
    請求項1記載のアドレス解決システム。
  3. 前記object管理サーバの前記登録手段は、
    s=1〜S個のツリー型のデータ構造(以下、「trees」と記す)を用意しておき、各object毎に前記K次元ベクトルを前記K次元ベクトルデータベースのs番目に登録する手段を含み、
    前記object管理サーバの前記検索手段は、
    前記K次元ベクトルデータベースに対して、前記(perms K(q))を用いて前記範囲内にある要素数|perms K(v(j))∧perms K(q)|の検索を行い、得られたobjectの集合の積集合に属するobjectを抽出する手段を含む
    請求項2記載のアドレス解決システム。
  4. 前記リゾルバの前記クエリベクトル生成手段は、
    前記objectが属性iに対する値を持たない場合は、属性値をxi=0とし、
    前記クエリqが属性iについて範囲指定を行わない場合は、全区間とする
    請求項1記載のアドレス解決システム。
  5. 前記リゾルバの前記クエリベクトル生成手段は、
    前記objectが属性iに対する値を持たない場合は、該属性iを除外して前記クエリベクトルを生成する手段を含み、
    前記object管理サーバの前記検索手段は、
    前記クエリベクトルの前記属性の範囲毎に属性の範囲1〜d次元の並び替えのパタンに基づいて、K(1〜k)個の要素(perms K(q))を前記K次元ベクトルデータベースから検索し、該要素がk番目の要素で指定された範囲内にある要素数|perms K(v(j))∧perms K(q)|≧K'(K'は所定の値であり、K'≦K)となったobjectを候補として抽出する手段を含む
    請求項1記載のアドレス解決システム。
  6. 前記object管理サーバの前記検索手段は、
    各perms (s=1〜S)において抽出されたobject集合をAsとし、I[v(j)∈A1]+I[v(j)∈A 2]+…+I[v(j)∈As])≧Sth(但し、I[]は[]内の条件を満たすとき1、満たさないとき0を返す関数、Sthは所定の閾値で1≦Sth≦S)を満たす属性ベクトルv(j)を特定したいobject候補として抽出する手段を含む
    請求項5記載のアドレス解決システム。
  7. 前記object管理サーバは、
    全object集合に対する属性iに対する累積分布関数Fi (x)=P[objectの属性iのxi≦x]を作成しておき、クエリqにおいて該属性iについての範囲指定がxlowiからxhighiの場合、fi (q)=Fi (xhighi)-Fi (xlow-i)を計算する手段と、
    前記並び替えのパタンpermsをs=1からS'(S'>S)個用意しておき、perms K(q)により前記K次ベクトルデータベースより抽出されたK個の属性i1,i 2,…,iKに対して、f{i1}(q), f{i 2}(q), …, f{iK}(q)を計算し、その積P(s,q)= f{i1} (q)×f{i 2} (q)×…× f{iK} (q)を計算し、それを各s=1〜S'に対して実施し、得られたP(s,q)の値が小さいものからS個のpermsを選択する手段を含む
    請求項2,3,5のいずれか1項に記載のアドレス解決システム。
  8. 情報通信ネットワークにおいて、いくつかの条件によって該ネットワークに接続されているIPアドレスを有するobjectを特定し通信するためのアドレス解決方法であって、
    object、object管理サーバ、リゾルバと、を有するシステムにおいて、
    objectの登録時に、
    前記objectにおいて、
    objectを検索するための複数の属性に対する値の組合せをIPアドレスと共に登録要求として前記リゾルバを介して送信するobject登録要求ステップと、
    前記リゾルバにおいて、
    前記objectからの前記登録要求を取得すると、該登録要求の前記属性に基づいて、前記objectの属性ベクトルを生成し、前記object管理サーバに送信するベクトル生成ステップと、
    前記object管理サーバにおいて、
    前記リゾルバから前記objectの属性ベクトルを取得して、K次元ベクトルデータベースに登録するデータベース登録ステップと、
    を行い、
    検索時に、
    前記objectにおいて、
    各属性に関する条件を指定して検索要求として前記リゾルバを介して送信する検索要求ステップと、
    前記リゾルバにおいて、
    前記objectからの前記検索要求を取得すると、該検索要求の前記属性に対して、該属性の範囲を付与したクエリベクトルを生成し、前記object管理サーバに送信するクエリベクトル生成ステップと、
    前記object管理サーバにおいて、
    前記リゾルバから前記クエリベクトルを取得すると、該クエリベクトルと前記属性の範囲に基づいて前記K次元ベクトルデータベースを検索し、該当するobjectを該リゾルバに送信する検索ステップと、
    前記リゾルバにおいて、
    前記object管理サーバから取得した検索結果であるobjectを検索要求元のobjectに通知する通知ステップと、
    前記objectにおいて、
    前記リゾルバから取得した、検索されたobjectのIPアドレスを特定するIPアドレス特定ステップと、
    を行うことを特徴とするアドレス解決方法。
JP2013010831A 2013-01-24 2013-01-24 アドレス解決システム及び方法 Expired - Fee Related JP5909199B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013010831A JP5909199B2 (ja) 2013-01-24 2013-01-24 アドレス解決システム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013010831A JP5909199B2 (ja) 2013-01-24 2013-01-24 アドレス解決システム及び方法

Publications (2)

Publication Number Publication Date
JP2014142808A true JP2014142808A (ja) 2014-08-07
JP5909199B2 JP5909199B2 (ja) 2016-04-26

Family

ID=51424040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013010831A Expired - Fee Related JP5909199B2 (ja) 2013-01-24 2013-01-24 アドレス解決システム及び方法

Country Status (1)

Country Link
JP (1) JP5909199B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112364407A (zh) * 2020-11-13 2021-02-12 东莞职业技术学院 基于nx系统的零件属性获取的方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183179A (ja) * 2000-12-18 2002-06-28 Fuji Xerox Co Ltd 情報登録装置及び情報検索装置
JP2011109258A (ja) * 2009-11-13 2011-06-02 Oki Networks Co Ltd 情報通信システム、情報検索サーバ、情報検索プログラム、通信装置及び要求元通信装置
JP2012078930A (ja) * 2010-09-30 2012-04-19 Ntt Docomo Inc コンテンツ検索装置及びコンテンツ検索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183179A (ja) * 2000-12-18 2002-06-28 Fuji Xerox Co Ltd 情報登録装置及び情報検索装置
JP2011109258A (ja) * 2009-11-13 2011-06-02 Oki Networks Co Ltd 情報通信システム、情報検索サーバ、情報検索プログラム、通信装置及び要求元通信装置
JP2012078930A (ja) * 2010-09-30 2012-04-19 Ntt Docomo Inc コンテンツ検索装置及びコンテンツ検索方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112364407A (zh) * 2020-11-13 2021-02-12 东莞职业技术学院 基于nx系统的零件属性获取的方法、装置及存储介质
CN112364407B (zh) * 2020-11-13 2023-06-06 东莞职业技术学院 基于nx系统的零件属性获取的方法、装置及存储介质

Also Published As

Publication number Publication date
JP5909199B2 (ja) 2016-04-26

Similar Documents

Publication Publication Date Title
US10102227B2 (en) Image-based faceted system and method
Zheng et al. Keyword-aware continuous knn query on road networks
Wang et al. Effective lossless condensed representation and discovery of spatial co-location patterns
JP2010501096A (ja) ラッパー生成およびテンプレート検出の協同最適化
CN108804576B (zh) 一种基于链接分析的域名层级结构探测方法
Hong et al. Subgraph matching with set similarity in a large graph database
Zou et al. Efficient and secure encrypted image search in mobile cloud computing
US20090083266A1 (en) Techniques for tokenizing urls
Fathy et al. Distributed spatial indexing for the Internet of Things data management
CN108241709B (zh) 一种数据集成方法、装置和系统
JP5909199B2 (ja) アドレス解決システム及び方法
CN110120918B (zh) 一种标识解析方法及装置
JP2011170461A (ja) 情報蓄積検索方法及び情報蓄積検索プログラム
CN105354243B (zh) 基于归并聚类的并行化频繁概率子图搜索方法
Ayat et al. Entity resolution for distributed probabilistic data
Belghaouti et al. Fregrapad: Frequent rdf graph patterns detection for semantic data streams
CN114911826A (zh) 一种关联数据检索方法和系统
US9292610B2 (en) Location identification using hierarchical nature of geographic locations
Zhou et al. Accurate querying of frequent subgraphs in power grid graph data
Tang et al. Searching the Internet of Things using coding enabled index technology
Cho Efficient Shared Execution Processing of k‐Nearest Neighbor Joins in Road Networks
Wang et al. Hypergraph index: an index for context-aware nearest neighbor query on social networks
JP2016035684A (ja) 情報管理システム、情報管理方法、及び情報管理プログラム
Wang et al. Subspace k-anonymity algorithm for location-privacy preservation based on locality-sensitive hashing
JP5957411B2 (ja) アドレス解決システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160302

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160325

R150 Certificate of patent or registration of utility model

Ref document number: 5909199

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees