説明

高速パターンマッチング装置の探索方法

【課題】バイナリデータのパターンマッチングを高速に行う装置を実現する。
【解決手段】探索領域Aを入力されたサーチキーについて探索する場合に、探索領域Aを複数の部分探索領域に分割し、その部分探索領域のそれぞれの代表点の集合を探索領域Bとするとき、 探索領域Bを記憶する記憶手段Bと、探索領域Bを上記のサーチキーについて探索する探索手段Bと、 探索領域Aを記憶する記憶手段Aと、探索領域Aから選択された部分探索領域Cを上記のサーチキーについて探索する探索手段Aと、を備える探索装置の探索方法で、 探索領域Bを上記のサーチキーについて探索した結果をもとに、上記の複数の部分探索領域から1つを選択するステップと、 選択された部分探索領域について探索手段Aを用いて上記のサーチキーについて探索するステップと、 探索結果を出力するステップと、を備えるようにする。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、バイナリデータのパターンマッチングを高速に行う高速パターンマッチング装置の探索方法に関している。
【背景技術】
【0002】
本発明は、従来のものに比べて高速で動作するパターンマッチング装置に関するものであるが、従来の速度で動作するものは、種々の装置に組み込まれて用いられている。例えば、コンピュ−タ上でデータの照合を行って目的とするデータを検索するデータベ−スには、種々のパターンマッチング技術が使われている。ここで用いられるパターンマッチングには、逐次探索(順探索あるいはリニアサーチとも呼ばれる)、ハッシュ法、2分木探索(2分探索あるいはバイナリサーチとも呼ばれる)などがある。
【0003】
逐次探索は、探索領域のデータとサーチキーとの照合を順次進めるものであり、探索時間のサーチキー依存が激しく、また平均探索時間が長い、という特徴がある。
【0004】
また、ハッシュ法は、探索領域のそれぞれのデータのハッシュ値を求めてハッシュテ−ブルを作成し、ハッシュ値にそれぞれのデータを連想するように対応させておくものであり、サーチキーのハッシュ値を入力して探索データを出力するように関数を作成しておく。このため短時間での探索が可能であるという利点があるが、探索領域(ア−カイブ)を変化させるためには、ハッシュ法に用いるハッシュテ−ブルを作り直す必要があり、大規模の探索領域を頻繁に変えるための処理に多大の時間が必要である、という特徴がある。
【0005】
また、2分木探索は、探索領域をソートしておき、サーチキーと探索領域の代表点のデータ(多くの場合は、中央のデータ)との大小一致比較で新たな探索領域に絞り込み、その新たな探索領域でも、新たな代表点を選択して、その代表点とサーチキーとの大小一致比較によって、さらに新たな探索領域に絞り込む、という作業を繰り返して、探索するものである。この方法による探索時間は上記の2つの探索方法の中間的なものであり、大規模の探索領域を行なう場合でも、逐次探索の場合と同様な準備で探索を開始できる、という特徴がある。
【0006】
高速探索が必要な大規模探索領域としては、例えば、情報通信ネットワークにおいて、有害情報の除去などのためのフィルタリングや顧客情報の検索などの際の探索領域である。ネットワークは、ますます高速化複雑化するため、これに対応できる強力なパターンマッチング装置の開発が求められている。
【0007】
本発明は、主に上記の2分木探索に関しており、同等の回路を用いる場合に、従来よりも高速の探索を可能ならしめるものである。
【0008】
[従来例1]
図5(a)に示す様に、d1からd15まで昇順にソートされた探索領域について、2分木探索を行なう場合を図5(b)に沿って示す。探索領域のデータ数が極端に少ないのは、説明を容易にして誤解を避けるためであって、実際に適用する探索領域は、さらに多数のデータを含む領域である。サーチキーの入力があると、これと中央にあるd8とを比較する。この比較で、サーチキーとの一致あるいは大小関係を出力する。一致する場合は、d8と一致する旨出力する。ここでは、d8より大きいという結果であったとすると、あらたにd9からd15までを新たな探索領域とすることになるので、その中央にあるd12とサーチキーとを比較することになる。また、ここでは、d12より小さいという結果であったとすると、あらたにd9からd11までを新たな探索領域とすることになるので、その中央にあるd10とサーチキーとを比較することになる。さらに、ここでは、d10より小さいという結果であったとすると、最後にd9だけが残ることになるので、d9とサーチキーとが一致するかどうかを確かめることになる。この操作によって、探索領域にサーチキーがあるかどうかを知ることが出来る。このようにデータ数が15の探索領域であっても、3回の大小一致比較で最終的な候補に絞ることができる。この操作はひとつの比較手段をプログラムに従って動作させて2分木探索を行なっている。
【0009】
しかし、比較的大きな探索領域に従来の2分木探索を適用する場合には、その探索領域を構成する記憶装置が大容量のものとなり、一般に大容量の記憶装置でのデータアクセス時間や読み出し時間は比較的大きいので、高速動作には適しておらず、充分に高速にパターンマッチングを進めることができないという問題があった。
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明は、高速な2分木探索を実現するものである。
【発明の効果】
【0011】
この発明によって、大規模な探索領域に対しても、同等の速度の電子回路を用いる場合に、従来よりも高速の探索が可能になる。
【課題を解決するための手段】
【0012】
本発明は、大略では、探索領域とサーチキーが与えられたときに、探索領域の個々の要素を記憶装置に記憶させ、この要素を比較手段である比較回路に読み出してサーチキーとの照合を行なって探索を進める際に、従来の様にひとつの記憶装置を用いて探索を行なうのではなく、大まかな探索を高速な探索手段を用いて行い、徐々に大容量の記憶装置でのより詳しい探索へと進むものである。より詳しくは、以下に示す。
【0013】
まず本発明は、予め決められた探索領域Aを入力されたサーチキーについて探索する場合に、前記の探索領域Aを複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合をあらたな探索領域Bとするとき、
前記のあらたな探索領域Bを記憶する記憶手段Bと、前記のあらたな探索領域Bを上記のサーチキーについて探索する探索手段Bと、
前記の予め決められた探索領域Aを記憶する記憶手段Aと、前記の予め決められた探索領域Aから選択された部分探索領域Cを上記のサーチキーについて探索する探索手段Aと、を備えるパターンマッチング装置の探索方法であって、
前記のあらたな探索領域Bを上記のサーチキーについて探索した結果をもとに、上記の複数の部分探索領域から1つを選択してこれを部分探索領域Cとするとき、
選択された部分探索領域Cについて上記の探索手段Aを用いて上記のサーチキーについて探索するステップと、
探索結果を出力するステップと、
を備えることを特徴としている。
【0014】
上記の探索領域Aは、探索領域Aを含む探索領域から、何らかの選択方法により予め選択された探索領域であってもよい。
【0015】
また、探索手段Aと探索手段Bとは、同じ周期で探索をおこない、
探索手段Bは、上記のサーチキーについての探索を探索領域Bで行い、引き続き新たなサーチキーについての探索を探索領域Bで行うものであり、
探索手段Aは、探索手段Bが上記のサーチキーにつての探索を終了した後、上記のサーチキーにつての探索を部分探索領域Cで行い、引き続き上記の新たなサーチキーについての探索を部分探索領域Cで行うようにして、次々に新しいサーチキーで探索を行なうことが出来る。
【0016】
探索手段A、Bは2分探索を用いた探索手段であり、探索領域Bにおいてサーチキーとの比較を1度行なう探索時間あるいはその平均を探索時間Bとし、部分探索領域Cにおいてサーチキーとの比較を1度行なう探索時間あるいはその平均を探索時間Aとし、サーチキーとの比較を1度行なう毎に加算する探索回数をそれぞれ探索回数A、Bとするとき、
探索時間の大きい方の探索回数を小さく設定することによって、一連の探索に要する時間を短縮することが出来る。
【0017】
前記の場合に、探索回数Aと探索回数Bとの和をKとするとき、探索領域Aを2分探索する場合には、探索回数A、Bの割り振り方にはKの値は依存しない。このとき、探索回数Bは、K×探索時間Aを、探索時間Aと探索時間Bとの和で除した数に最も近い整数とすると、探索手段A、Bの一方のみに負担がかかることを回避できる。
【0018】
また、上記の探索方法は、3層以上の多層構成とすることも可能であり、
第1の記憶装置に記憶され予め決められた第1の探索領域を入力されたサーチキーについて探索する場合に、
前記の第1の探索領域を複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合を第2の記憶装置に記憶して第2の探索領域2とし、
以下順次に、3からNまでのnについて、
第(n−1)の記憶装置に記憶した前記の第(n−1)の探索領域を複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合を第nの記憶装置に記憶して第nの探索領域とし、
第Nの探索領域を入力されたサーチキーについて第Nの探索手段を用いて2分木探索を行い、その探索結果をもとに、探索領域(N−1)の部分探索領域を選択し、
以下、順に、N−1から2までのnについて、
探索領域nを入力されたサーチキーについて第nの探索手段を用いて探索し、その探索結果をもとに、探索領域(n−1)の部分探索領域を選択し、
探索領域1の選択された部分探索領域についての探索を第1の探索手段で行なって探索結果を出力するものである。
【0019】
上記の探索方法が特に有効なのは、次の構成にそれを適用する場合であって、
2からNまでのnについて、
前記の探索領域(n−1)を複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合をあらたな探索領域nとし、
1からNまでのnについて、
それぞれの探索領域nのすべての要素を記憶する記憶手段nと、前記探索領域nを探索する探索手段nとについて、
記憶手段nの記憶容量をc(n)とし、探索領域nの探索のスループットをb(n)とし、
サーチキーの入力レートは、一定であり、その入力レートのビットレートをb(input)とし、
探索領域のビットサイズをMとし、
探索手段nの行なう探索領域nに属する要素とサーチキーとの比較回数をp(n)と、
するとき、
c(1)>c(2)>・・・>c(N)、
b(1)<b(2)<・・・<b(N)、
b(n) / p(n) ≧ b(input)、かつ、
b(n) ≦ log2c(n)、
なる条件を満たし、
1からNまでのp(n)の和について、底を2としたMの対数、log2M、を切り上げた整数と等しくなるように、
1からNまでのnについて、
b(n)、c(n)、p(n)を定めた探索装置に、上記の探索方法を適用することが望ましい。
【発明を実施するための最良の形態】
【0020】
以下にこの発明の実施の形態を詳細に説明するが、以下の説明においては、決められた探索領域についてサーチキーと比較するデータを代表点と呼ぶことにする。
【実施例1】
【0021】
図1に示す例は、簡単のために図5と同じ探索領域についての探索を行なう場合を示している。図1の探索ブロック1では、2分木探索回路に3データ分のメモリが接続されている。第1次の2分木探索として、サーチキーの入力があると、これと中央にあるd8とを比較する。この比較で、サーチキーとの一致あるいは大小関係を出力する。一致する場合は、d8と一致する旨出力する。ここでは、d8より大きいという結果であったとすると、第2次の2分木探索として、あらたにd9からd15までを新たな探索領域とすることになるので、その中央にあるd12とサーチキーとを比較することになる。また、ここでは、d12より小さいという結果であったとすると、第3次の2分木探索として、あらたにd9からd11までを新たな探索領域とすることになるので、新たな探索領域は、d9からd11までの領域であることを探索ブロック2に伝える。
【0022】
探索ブロック2では、全ての探索領域のデータを備えているが、探索ブロック1で用いるデータを除いたものであってもよい。その中央にあるd10とサーチキーとを比較することになる。さらに、ここでは、d10より小さいという結果であったとすると、最後にd9だけが残ることになるので、d9を探索結果として出力してからd9とサーチキーとが一致するかどうかを確かめることになる。この操作によって、探索領域にサーチキーがあるかどうかを知ることが出来る。
【0023】
このような構成にすることによって、探索ブロック1では、探索回数を2回にすることができ、この2回の探索の後には、あらたにサーチキーを受け付けることが出来るようになり、スループットが向上する。また、ブロック1で用いるメモリ数は少数で良いので、消費電流が大きくても高速動作のメモリを用いても全体の消費電力の増加を僅かなものに抑えることが出来る。
【0024】
また、探索ブロック2では、探索回数は1回となるので、低速のメモリを用いてもよいことは明らかである。一般に高集積度のメモリや低消費電流のメモリは低速動作であるので、図5に示す従来例に低速メモリを用いた場合と比較して、低消費電流あるいは高速に、また、条件次第で低消費電流であって高速に探索を行なうことができる。
【0025】
探索領域を変えるには、よく知られた2分木探索で用いる代表点の決定方法に従って、探索ブロック1に蓄えるべきデータを用意することは容易である。つまり、従来の最初の代表点1つと第2の代表点の2つを選択する。このような選択は、図1に示す制御回路3が行なう。
【実施例2】
【0026】
より一般的には、図2に示す様にする。入力したサーチキーが探索領域にあるかどうかを見るために、探索ブロック4の探索結果をもとに探索領域を絞り込み、こうして絞り込まれた探索領域について探索ブロック5で探索を行なう。これと同様に、探索ブロック5の探索結果をもとに探索領域を絞り込み、こうして絞り込まれた探索領域について探索ブロック6で探索を行なう。探索領域−3は、探索すべきデータを全て保存しておく。探索ブロック4の探索領域−1には、探索領域−3のデータについて従来の2分木探索で探索する場合の最初の代表点から、予め決めた第K次の探索の2(K-1)個の代表点までの(2K−1)個のデータを保存する。また、探索ブロック5の探索領域には、第(K+1)次の探索の代表点から予め決めた第M次の探索の代表点までのデータを保存する。探索ブロック1の結果で探索ブロック5で探索すべき領域(探索領域−2)を決定する。また、探索ブロック5の結果で探索ブロック6で探索すべき領域(探索領域−3)を決定する。
【0027】
一般に第K次の探索に於いては、2K個の代表点が属するので、より後方の探索ブロックでより多くのデータを保存するためのメモリ数が必要である。このため、より前方の探索ブロックでより高速動作のメモリや探索回路を用いることが望ましい。しかし、サーチキーを順次送り込むには、それぞれの探索ブロックのスループットが等しいことが望ましく、またそのスループットが等しくなるように、それぞれの探索ブロックで行なう探索回数や探索回路の動作速度、あるいは探索領域用のメモリの動作速度を設定することが望ましい。
【実施例3】
【0028】
上記の例では、複数回の2分木探索を行う探索ブロックを含んでいたが、それぞれの探索ブロックでの探索を1回に制限すると、さらに高速の2分木探索を実現することができる。このような探索は、動作速度の低い記憶装置を用いて、高速な探索を行なう場合に有効である。例えば、大容量の半導体集積回路で、低速な記憶回路のみを用いて高速な探索を行なう場合には、探索のスループットを改善する場合には多層階層の探索を行なうことになるが、多層化によってサーチキーが探索回路にある滞在時間は長くなる傾向にある。この実施例では、滞在時間を短くすることができるので、入力から出力までの時間を改善することができる。また、探索回路全体を本実施例のように、探索を1回に制限した回路のみで作る必要はなく、回路規模の増大を避けるために、探索初めの数段のブロックを本実施例の回路で作り、後段のブロックで大記憶容量の必要な部分では、上記の様な各ブロックごとに複数回の2分木探索を行なうようにしてもよい。
【0029】
図3にそれぞれの探索ブロックで2分木探索を1度のみ行なう場合の例を示す。この場合に想定する探索領域は、図5の場合と同様にd1からd15までの昇順にソートされた集合である。第1の探索ブロックでは、第1次の探索を行う。この場合の探索領域はS1である。まず、入力されたサーチキーとd8を大小一致の比較を行なう。ここでd8は、探索領域の中央にあるために2分木探索に用いているが、探索の能率が僅かに低下してよい場合は、必ずしも探索領域の中央に位置するデータを用いる必要はなく、それから少しはずれていてもよい。この事情は、通常の2分木探索と同様である。第1次の探索では、用いるデータは1つであるので、メモリも1つ用意する。この探索によって、d8と一致するか、あるいはd8に対する相対位置かが明らかになる。ここでは、d8に比べて大きいとすると、探索領域は、S2となる。
【0030】
つぎに、このS2について、第2次の探索を行なうが、そのためにサーチキーとd12との比較を行なう。この比較によって、探索領域が例えばS3に絞り込まれる。
【0031】
さらに、このS3について、第3次の探索を行なうが、そのためにサーチキーとd10との比較を行なう。この比較によって、探索領域が例えばd9に絞り込まれる。最後にd9は入力されたサーチキーと比較され、一致しているかどうか確かめられる。
【0032】
このような2分木探索の全体像を図4に示す。この図4は、例えば第1次の探索で、サーチキーとd8とを比較してサーチキーの方が大きければ、サーチキーとd12とを比較するル−トに進み、サーチキーの方が小さければサーチキーとd4とを比較するル−トに進む。また、サーチキーとd8とが一致する場合は、遅延器を通過して一致信号として出力する。ここで遅延器を通過させるのは、最後に絞り込まれたデータが出力される時期と一致させるためである。d4あるいはd12との比較以下では、これと同様にしてル−トを選択するものである。
【0033】
上記の実施例1あるいは2においては、大小一致を判定する比較回路としてプログラム制御の比較回路を用いることも可能であるが、実施例3の場合には、論理回路で構成された比較回路であることがその高速性の観点から望ましい。例えば図6(a)の論理回路は、図6(b)の論理式に相当する論理回路が組まれているものである。入力A、Bに1ビットの2進数が入力されると、Aが大きければ出力X=1となり、一致すればY=1となり、Bが大きければZ=1となる。
【0034】
次に、入力A、Bに図6(c)に示す多桁の2進数が入力される場合には、例えば図6(d)の回路で、Y1、X1あるいはZ1を調べることによって、A、B間の大あるいは小と一致とを判定することができる。図4のそれぞれの比較判定には、このような回路をそれぞれに配置する。このため、回路規模は大型になるが、探索速度は高速である。また、この実施例3の回路を、上記の実施例1あるいは2の第1次あるいは第2次の探索にのみ適用して、初段部で探索速度を高速化して、全体としては、回路規模の大型化を抑制することも可能である。
【実施例4】
【0035】
図7に示す様に、2分探索で探索領域Aを2層の2分探索で探索する場合を考える。よく知られているように、探索領域が決まると、探索回数Kが決まる。この際、探索領域Aを複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合をあらたな探索領域Bとする。探索領域Bでは、入力されたサーチキーにもっとも近い代表点を探索して、探索領域Aのひとつの部分探索領域Cを指定する。つまり、K回の2分探索からm回を探索領域Bでの探索にあて、残りのK−m回を部分探索領域Cでの探索とする。また、探索領域Bに引き続いて探索領域Cの探索を行なう一方、同時に、探索領域Bでは、あらたなサーチキーを入力してあらたな探索を開始する。
【0036】
一般に、それぞれの探索領域は、記憶装置に設けられた特定の領域であり、2分探索手段は、論理回路やマイクロプログラムをもった論理回路である。また、探索領域Aは、探索領域Bよりも大容量である必要がある。ところが大容量の記憶装置は、一般に動作が遅いために、探索領域Cでの探索割合を大きくすると探索完了する時間が大きくなり、また、探索領域Bであらたな探索を始めるまでの待ち時間が大きくなることは容易に理解できる。
【0037】
このような場合に探索のスループットの最適条件を求める事が出来る。基礎となる条件として、図7に示す様に、探索領域B、Cでのそれぞれの探索回数をm、K−mとし、また、それぞれの探索時間をtB、tCとする。
このとき、ひとつのサーチキーについては、
経過時間=m×tB +(K−m)×tC
で探索が終了する。また、探索領域Bでの探索から探索領域Cでの探索に移るまでの時間として、m×tB以上必要である。また、探索領域Cについての探索を終了するためには、(K−m)×tC以上必要である。これは、あらたなサーチキーについて、探索領域Bでの探索から探索領域Cでの探索に移るまでに、満足しておく必要のある条件でもある。従って、探索領域B、Cを同じ周期で行なうには、その周期を、(m×tB、(K−m)×tC)のうちの大きいほうに設定する必要がある。
【0038】
このように設定される周期を小さくすることで、探索のスループットを最適化できることは明らかである。図8は、これを説明する図であって、探索領域Bの探索回数を横軸に、また探索時間を縦軸にして、探索が終了するまでの滞在時間と、探索領域C、Bでのそれぞれの探索時間とを示す。上記の様に、探索領域A、Bを同じ周期で行なうには、周期は(m×tB、(K−m)×tC)の大きいほうで決まるので、図8の太実線Tでの最小点(S)の値を求めればよいことが分かる。これから求まるmは、
m=KtC/(tC+tB)、
であるが、mは整数である必要があることから、この値に最も近い整数を用いればよい事は明らかである。例えば、tCとtBとが等しいときには、それぞれ半分ずつで割り振ればよい。また、tC>>tBの場合には、殆どの探索を探索領域Bで処理するとよい。特に、tCがtBの(K−1)場合を超える場合には、探索領域Aでの探索は1度あるいはゼロにするのが望ましいことが分かる。
【0039】
また、上記の説明では、tCあるいはtBは一定であるとしたが、一般には、記憶装置の特性から探索ごとに僅かに変動することが多い。このような場合には、tCあるいはtBとしては、それぞれの平均値を用いればよい。
【0040】
また、上記では、2分探索を2層に分けて行なう場合を説明したが、さらに多層にすることによって、それぞれの層での探索回数をすくなくすることができるので、探索のスループットを改善することができる。この場合に探索回数の配分を変えてスループットを最適化するためには、多層に分けた引き続く2層に注目して、上記の取り扱いと同様にして最適化をはかることができる。
【0041】
また、多層の探索でスループットを改善するための最適化については、次のように進めることができる。まず、2からNまでのnについて、前記の探索領域(n−1)を複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合をあらたな探索領域nとする。また、1からNまでのnについて、それぞれの探索領域nのすべての要素を記憶する記憶手段nと、前記探索領域nを探索する探索手段nとについて、記憶手段nの記憶容量をc(n)とし、探索領域nの探索のスループットをb(n)とする。さらに、サーチキーの入力レートは、一定であり、その入力レートのビットレートをb(input)とする。
探索領域のビットサイズをMとし、探索手段nの行なう探索領域nに属する要素とサーチキーとの比較回数をp(n)と、するとき、
c(1)>c(2)>・・・>c(N)、
b(1)<b(2)<・・・<b(N)、
b(n) / p(n) ≧ b(input)、
b(n) ≦ log2c(n)、
なる条件を満たし、
1からNまでのp(n)の和について、底を2としたMの対数を切り上げた整数と等しくなるように、1からNまでのnについて、b(n)、c(n)、p(n)を定める。このような多変数を用いた関数の最適化には、市販されたコンピュ−タプログラムがありそれを用いることができる。
【0042】
また、上記の実施例では、2分木探索を用いる方法について説明したが、大規模な探索領域を小規模な探索領域の処理の集合に変換することによって、ハッシュ法を用いることが困難でなくなる。特に上記の実施例の場合の初段の探索にハッシュ法を適用して初段部分を高速化することで、全体のスループットを改善することは容易である。
【産業上の利用可能性】
【0043】
本発明の探索方法を用いた高速パターンマッチング装置をインタ−ネット通信に適用することによって、パソコンや携帯電話などを含むあらゆるインタ−ネット通信機器からの有害URLへのアクセスを検出してそれをリアルタイムで防止することが低コストで可能になる。
【図面の簡単な説明】
【0044】
【図1】第1の実施例を示すブロック図である。
【図2】第2の実施例を示すブロック図である。
【図3】第3の実施例を示す模式図である。
【図4】それぞれの探索ブロックでの探索を1回にして高速の2文探索を実現する例を示すブロック図である。
【図5】従来の2分木探索法を示す模式図である。
【図6】論理回路で構成された比較回路例を示すブロック図である。
【図7】2分探索で探索領域Aを2層の2分探索で探索する場合を示すブロック図である。
【図8】探索回数を横軸、探索時間を縦軸にして、探索が終了するまでの時間と、それぞれの探索領域での探索時間とを示す図である。
【符号の説明】
【0045】
1、2 探索ブロック
3 制御回路
4、5、6 探索ブロック

【特許請求の範囲】
【請求項1】
予め決められた探索領域Aを入力されたサーチキーについて探索する場合に、前記の探索領域Aを複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合をあらたな探索領域Bとするとき、
前記のあらたな探索領域Bを記憶する記憶手段Bと、前記のあらたな探索領域Bを上記のサーチキーについて探索する探索手段Bと、
前記の予め決められた探索領域Aを記憶する記憶手段Aと、前記の予め決められた探索領域Aから選択された部分探索領域Cを上記のサーチキーについて探索する探索手段Aと、を備えるパターンマッチング装置の探索方法であって、
前記のあらたな探索領域Bを上記のサーチキーについて探索した結果をもとに、上記の複数の部分探索領域から1つを選択してこれを部分探索領域Cとするとき、
選択された部分探索領域Cについて上記の探索手段Aを用いて上記のサーチキーについて探索するステップと、
探索結果を出力するステップと、
を備えることを特徴とする探索方法。
【請求項2】
探索領域Aは、探索領域Aを含む探索領域から、何らかの選択方法により予め選択された探索領域であることを特徴とする請求項1に記載の探索方法。
【請求項3】
探索手段Aと探索手段Bとは、同じ周期で探索をおこない、
探索手段Bは、上記のサーチキーについての探索を探索領域Bで行い、引き続き新たなサーチキーについての探索を探索領域Bで行うものであり、
探索手段Aは、探索手段Bが上記のサーチキーにつての探索を終了した後、上記のサーチキーにつての探索を部分探索領域Cで行い、引き続き上記の新たなサーチキーについての探索を部分探索領域Cで行うことを特徴とする請求項1に記載の探索方法。
【請求項4】
探索手段A、Bは2分探索を用いた探索手段であり、探索領域Bにおいてサーチキーとの比較を1度行なう探索時間あるいはその平均を探索時間Bとし、部分探索領域Cにおいてサーチキーとの比較を1度行なう探索時間あるいはその平均を探索時間Aとし、サーチキーとの比較を1度行なう毎に加算する探索回数をそれぞれ探索回数B、Aとするとき、
探索時間の大きい方の探索回数を小さく設定することを特徴とする請求項1、2あるいは3に記載の探索方法。
【請求項5】
探索回数Aと探索回数Bとの和をKとするとき、
探索回数Bは、Kと探索時間Aとの積を、探索時間Aと探索時間Bとの和で除した数に最も近い整数とすることを特徴とする請求項4に記載の探索方法。
【請求項6】
第1の記憶装置に記憶され予め決められた第1の探索領域を入力されたサーチキーについて探索する場合に、
前記の第1の探索領域を複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合を第2の記憶装置に記憶して第2の探索領域2とし、
以下順次に、3からNまでのnについて、
第(n−1)の記憶装置に記憶した前記の第(n−1)の探索領域を複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合を第nの記憶装置に記憶して第nの探索領域とし、
第Nの探索領域を入力されたサーチキーについて第Nの探索手段を用いて2分木探索を行い、その探索結果をもとに、探索領域(N−1)の部分探索領域を選択し、
以下、順に、N−1から2までのnについて、
探索領域nを入力されたサーチキーについて第nの探索手段を用いて探索し、その探索結果をもとに、探索領域(n−1)の部分探索領域を選択し、
探索領域1の選択された部分探索領域についての探索を第1の探索手段で行なって探索結果を出力することを特徴とする探索方法。
【請求項7】
請求項6に記載の探索方法であって、
2からNまでのnについて、
前記の探索領域(n−1)を複数の部分探索領域に分割し、前記の部分探索領域のそれぞれの代表点の集合をあらたな探索領域nとし、
1からNまでのnについて、
それぞれの探索領域nのすべての要素を記憶する記憶手段nと、前記探索領域nを探索する探索手段nとについて、
記憶手段nの記憶容量をc(n)とし、探索領域nの探索のスループットをb(n)とし、
サーチキーの入力レートは一定であり、その入力レートのビットレートをb(input)とし、
探索領域のビットサイズをMとし、
探索手段nの行なう探索領域nに属する要素とサーチキーとの比較回数をp(n)と、するとき、
c(1)>c(2)>・・・>c(N)、
b(1)<b(2)<・・・<b(N)、
b(n) / p(n) ≧ b(input)、
b(n) ≦ log2c(n)、
なる条件を満たし、
1からNまでのp(n)の和について、底を2としたMの対数を切り上げた整数と等しくなるように、
1からNまでのnについて定めた
b(n)、c(n)、p(n)を用いることを特徴とする探索方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2007−233554(P2007−233554A)
【公開日】平成19年9月13日(2007.9.13)
【国際特許分類】
【出願番号】特願2006−52500(P2006−52500)
【出願日】平成18年2月28日(2006.2.28)
【出願人】(301021533)独立行政法人産業技術総合研究所 (6,529)
【出願人】(506209422)地方独立行政法人 東京都立産業技術研究センター (134)
【出願人】(505350400)株式会社ビッツ (3)
【上記1名の代理人】
【識別番号】100082669
【弁理士】
【氏名又は名称】福田 賢三