JP6961950B2 - 格納方法、格納装置および格納プログラム - Google Patents

格納方法、格納装置および格納プログラム Download PDF

Info

Publication number
JP6961950B2
JP6961950B2 JP2017025400A JP2017025400A JP6961950B2 JP 6961950 B2 JP6961950 B2 JP 6961950B2 JP 2017025400 A JP2017025400 A JP 2017025400A JP 2017025400 A JP2017025400 A JP 2017025400A JP 6961950 B2 JP6961950 B2 JP 6961950B2
Authority
JP
Japan
Prior art keywords
size
problem size
processing
upper limit
area
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
Application number
JP2017025400A
Other languages
English (en)
Other versions
JP2018132899A (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 JP2017025400A priority Critical patent/JP6961950B2/ja
Priority to US15/877,144 priority patent/US20180232205A1/en
Publication of JP2018132899A publication Critical patent/JP2018132899A/ja
Application granted granted Critical
Publication of JP6961950B2 publication Critical patent/JP6961950B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/08Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F16/24566Recursive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/4833Logarithmic number system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Nonlinear Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データの格納技術に関する。
或る問題を解くためにその問題の一部に相当する小問題の結果を利用する際に、再帰処理が用いられる。図1は再帰処理について説明する図である。図1において、矩形の図形は問題を表す。ステップi(iは0以上の整数)において問題を解く際に、ステップ(i+1)の処理が再帰的に呼び出される。そして、ステップ(i+1)の問題を解いた後、ステップ(i+1)の結果を利用してステップiの問題を解くことができる。
例えば接尾辞配列を生成する場合等に実行される再帰処理においては、或るステップの問題を解く際に前のステップの問題のサイズの情報が使用される。そのため、各ステップの問題インスタンスを格納する記憶領域とは別に、各ステップの問題サイズの情報を格納する記憶領域が用意される。
このように、或る種の再帰処理を実行する場合には記憶領域が別途必要になるが、特に使用できる記憶領域が限られたシステム(例えば組み込みシステム等)の場合、記憶領域の占有が再帰処理以外の処理の性能に影響を及ぼすことがある。
特開平1−142959号公報
本発明の目的は、1つの側面では、特定の処理を繰り返し実行する場合において、記憶領域の使用量を抑制することである。
一態様に係る格納方法は、各工程において特定の処理が実行される複数の工程のうち第1の工程において、第1の工程における処理対象のサイズである問題サイズが、第1の工程の前の工程の状態に基づき規定される上限サイズと一致するか判定し、判定結果を記憶領域に保存し、第1の工程の次の工程である第2の工程において、記憶領域に保存された判定結果を用いて問題サイズを特定し、特定した問題サイズに基づき第2の工程の特定の処理を実行する処理を含む。
1つの側面では、特定の処理を繰り返し実行する場合において、記憶領域の使用量を抑制できる。
図1は、再帰処理について説明するための図である。 図2は、接尾辞配列の生成において実行される再帰処理について説明するための図である。 図3は、接尾辞配列の生成において実行される再帰処理について説明するための図である。 図4は、問題サイズの情報を保存する方法として考えられる第1の方法を説明するための図である。 図5は、問題サイズの情報を保存する方法として考えられる第2の方法を説明するための図である。 図6は、情報処理装置の機能ブロック図である。 図7は、問題サイズの情報を復元するために使用する情報を保存する処理の処理フローを示す図である。 図8は、問題サイズの情報を復元する処理の処理フローを示す図である。 図9は、作業領域及び管理領域の遷移について具体的に説明するための図である。 図10は、作業領域及び管理領域の遷移について具体的に説明するための図である。 図11は、作業領域及び管理領域の遷移について具体的に説明するための図である。 図12は、作業領域及び管理領域の遷移について具体的に説明するための図である。 図13は、作業領域及び管理領域の遷移について具体的に説明するための図である。 図14は、作業領域及び管理領域の遷移について具体的に説明するための図である。 図15は、作業領域及び管理領域の遷移について具体的に説明するための図である。 図16は、コンピュータの機能ブロック図である。
[実施の形態1]
接尾辞配列とは、文字列の全ての接尾辞を辞書順に並べ替えることで得られる配列である。以下では、接尾辞配列の生成において実行される再帰処理を例として本実施の形態を説明する。まず、図2及び図3を用いて、接尾辞配列の生成において実行される再帰処理を簡単に説明する。図2及び図3において、矩形の図形は各ステップにおける処理対象のデータのサイズ(すなわち、問題インスタンスのサイズ。以下では問題サイズと呼ぶ。)を表す。Niはステップiの問題サイズを表す。
接尾辞配列の生成においては、各ステップにおいて、対象の接尾辞の半分以下の接尾辞(すなわち1/c(cは1<c≦Nを満たす整数)の接尾辞。Nは初期的な問題サイズを表す。)が再帰的に並べ替えられる。従って、ステップ(i+1)の接尾辞はステップiの接尾辞の半分以下の接尾辞に相当し、ステップ(i+2)の接尾辞はステップ(i+1)の接尾辞の半分以下の接尾辞に相当する。以下では、特にcの値を指定しない限りc=2とする。
各ステップにおいては、次のステップにおいて並び替えられた接尾辞を利用して対象の接尾辞が並び替えられる。具体的には、ステップ(i+1)においてはステップ(i+2)において並び替えられた接尾辞を利用して対象の接尾辞が並び替えられ、ステップiにおいてはステップ(i+1)において並び替えられた接尾辞を利用して対象の接尾辞が並び替えられる。ここで、各ステップにおいては、前のステップの問題サイズ(例えば接尾辞の数)が並び替えに使用される。具体的には、ステップ(i+2)においてはステップ(i+1)の問題サイズが並び替えに使用され、ステップ(i+1)においてはステップiの問題サイズが並び替えに使用される。
図4を用いて、問題サイズの情報を保存する方法として考えられる第1の方法を説明する。第1の方法では、作業領域とは別に外部領域(例えばスタック領域)が用意され、外部領域に問題サイズが保存される。この場合、データの取得に要する時間はO記法でO(1)(回)であり、領域はO記法でO(logN)+logN2(ビット)である。hはステップ数を表す。以下では、対数の底が省略されている場合は底が2であるとする。
第1の方法によれば、高速に処理することが可能であるものの、使用される領域のサイズが大きくなる。
図5を用いて、問題サイズの情報を保存する方法として考えられる第2の方法を説明する。第2の方法では、未使用であることを表す情報を使用されない作業領域に書き込み、使用される作業領域の先頭から線形探索を行うことで、Niが計算される。図5にはステップiの作業領域が示されており、Mi(=floor(Mi-1/c))は、問題サイズの上限である。floorは切り捨ての関数である。ハッチングが付された部分は使用されない作業領域を表す。この場合、データの取得に要する時間はO記法でO(N)(回)であり、領域はO記法でO(logN)(ビット)である。
第2の方法によれば、使用される領域のサイズを小さくすることができるものの、処理が低速になる。
以上のように、上で説明した2つの方法には、処理が低速になるか又は使用される領域のサイズが大きくなるという問題がある。そこで、本実施の形態においては以下で説明するような方法によって、再帰処理の性能を維持しつつ使用される記憶領域のサイズを小さくする。
図6に、本実施の形態の情報処理装置1の機能ブロック図を示す。情報処理装置1は、格納処理部101と、復元処理部103と、問題処理部105と、入力データ格納部110と、作業データ格納部111と、管理データ格納部113と、出力データ格納部114とを含む。
格納処理部101、復元処理部103及び問題処理部105は、図16に示したメモリ2501にロードされたプログラムがCPU(Central Processing Unit)2503に実行されることによって実現される。作業データ格納部111及び管理データ格納部113は、例えば、図16に示したメモリ2501に設けられる。入力データ格納部110及び出力データ格納部114は、例えば、図16に示したメモリ2501又はHDD(Hard Disk Drive)2505に設けられる。
格納処理部101は、入力データ格納部110に格納されたデータに基づき、問題サイズの情報を復元するために使用する情報を生成し、管理データ格納部113に格納する。復元処理部103は、格納処理部101によって管理データ格納部113に格納された情報を用いて、問題サイズの情報を復元する。問題処理部105は、復元処理部103によって復元された問題サイズの情報を用いて、接尾辞配列の生成処理(本処理は再帰処理を含む)を実行し、実行結果を出力データ格納部114に格納する。
次に、図7を用いて、問題サイズの情報を復元するために使用する情報を保存する処理について説明する。本処理は各ステップについて実行されるが、説明を簡単にするためステップiについて実行される場合について説明する。
まず、格納処理部101は、Li=Mi mod cに従ってLiを算出する(図7:ステップS1)。格納処理部101は、算出したLiを管理データ格納部113に保存する。
なお、cは入力データ格納部110に格納されているものとする。MiはMi=floor(Mi-1/c)に従って算出され、M0=N0=Nであるとする。M0、N0及びNは、入力データ格納部110に格納されている。なお、Miはステップiにおいて使用可能な連続領域の最大サイズ(すなわち、問題サイズの上限)である。
格納処理部101は、Ni=Miが成立するか判定する(ステップS3)。Ni=Miが成立する場合(ステップS3:Yesルート)、格納処理部101は、Piに1を設定する(ステップS5)。そして、格納処理部101は、Pi(すなわち1)を管理データ格納部113に保存する。
一方、Ni=Miが成立しない場合(ステップS3:Noルート)、格納処理部101は、Piに0を設定する(ステップS7)。そして、格納処理部101は、Pi(すなわち0)を管理データ格納部113に保存する。さらに、格納処理部101は、ステップiの作業領域(すなわち作業データ格納部111の領域)のうちMi番目の領域にNiを格納する(ステップS9)。Niは、ステップ(i−1)から呼び出されたときに判明しているものとする。そして処理は終了する。
なお、ステップiの作業領域はMi個の領域を含むので、ステップS9においてはMi個の領域のうちMi番目の領域にNiが格納される。Mi番目の領域は、NiとMiとの差分に相当する領域である。これについては後で具体例を用いて説明する。
以上のように、本実施の形態においては問題サイズの情報がそのまま保存されるわけではなく、問題サイズの情報を復元するために使用される最低限の情報(すなわち、Pi及びLi)が保存される。なお、Ni≠Miである場合には問題サイズの情報が保存されるものの、保存される領域は作業領域の一部であるので、問題サイズの情報を保存するために別途領域を用意しなくてもよい。
なお、後で具体例を示すように、Li及びPiは各ステップについて保存されるが、Mi及びNiは最終ステップのみについて保存されるとする。
次に、図8を用いて、問題サイズの情報を復元する処理について説明する。本処理は各ステップについて実行されるが、説明を簡単にするためステップiについて実行される場合について説明する。
まず、復元処理部103は、管理データ格納部113からMi及びLi-1を読み出し、Mi-1=ceil(c*Mi)+Li-1によりMi-1を算出する(図8:ステップS11)。ceilは切り上げの関数である。
復元処理部103は、管理データ格納部113からPi-1を読み出し、Pi-1=1(すなわち、Mi-1=Ni-1)であるか判定する(ステップS13)。
i-1=1である場合(ステップS13:Yesルート)、復元処理部103は、Ni-1にMi-1を設定する(ステップS17)。そして、問題処理部105は、復元処理部103により復元されたNi-1を用いて、ステップiの問題についての処理を実行する。
一方、Pi-1=1ではない場合(ステップS13:Noルート)、復元処理部103は、ステップ(i−1)の作業領域のMi-1番目の領域の値を作業データ格納部111から読み出す。そして、復元処理部103は、読み出した値をNi-1に設定する(ステップS15)。そして、問題処理部105は、復元処理部103により復元されたNi-1を用いて、ステップiの問題についての処理を実行する。そして処理は終了する。
なお、最終的な実行結果(すなわち、接尾辞配列)は出力データ格納部114に格納される。
以上のように、本実施の形態においては、問題サイズの情報そのものを保存することなく、各ステップにおいて処理を実行することができる。従って、特に使用できる記憶領域が限られている場合や大規模なデータに対して再帰処理を実行する場合において、リソースを削減し、ひいてはコストを削減することができるようになる。また、処理の高速化および不要な処理の省略により、リアルタイム性の向上と省電力とを実現することができるようになる。
本実施の形態の方法によれば、使用される情報はMi、Pi及びLiであるので、データの取得に要する時間はO記法でO(1)(回)である。また、Pi=1(ビット)であり、Li=log2=1(ビット)であるので、領域はO記法でO(logN)+(1+1)*h=O(logN)+2logN(ビット)である。図4を用いて説明した第1の方法と比較すると、同等の時間で領域を4096ビットから128ビットに小さくすることができる。また、図5を用いて説明した第2の方法と比較すると、128ビットの領域を追加することで、処理を264倍速くすることができるようになる。
図9乃至図15を用いて、本実施の形態における作業領域及び管理領域(ここでは、管理データ格納部113の領域)の状態の遷移について具体的に説明する。
初期状態は、図9に示す状態であるとする。すなわち、作業領域は10の領域に分かれており、管理領域には、初期値としてM0=10及びN0=10が格納されている。さらに、M0=N0であるのでP0=1が格納されており、L0=M0 mod 2=0が格納されている。なお、Nは10であり、cは2であるとする。
図10に示すように、ステップ1においては、M1およびL1が算出される。M1=floor(M0/2)=5であり、L1=M1 mod 2=1である。N1が4であることは判明している。M1≠N1であるので、P1は0である。従って、ステップS1の作業領域のM1(=5)番目の領域に、N1=4が保存される。
図11に示すように、ステップ2においては、M2およびL2が算出される。M2=floor(M1/2)=2であり、L2=M2 mod 2=0である。N2が2であることは判明している。M2=N2であるので、P2は1である。
図12に示すように、ステップ3においては、M3およびL3が算出される。M3=floor(M2/2)=1であり、L3=M3 mod 2=1である。N2が1であることは判明している。M3=N3であるので、P3は1である。
本例においては、ステップ3が最終ステップであるとする。この場合、図13に示すように、ステップ0からステップ2までの作業領域は、ステップ1の作業領域のうちM1番目の領域を除いて解放される(すなわち、データが陽に保存されない)。また、ステップ0からステップ2までの管理領域のうちMi及びNiの領域は解放される(すなわち、データが陽に保存されない)。
そして、図13の状態に基づいてステップ2の問題サイズが復元される。M2=ceil(c*M3)+L2=ceil(2*1)+0=2である。P2=1であるので、N2=M2=2である。
次に、図14の状態に基づいてステップ1の問題サイズが復元される。M1=ceil(c*M2)+L1=ceil(2*2)+1=5である。P1=0であるので、N1はステップ1の作業領域のM1番目の領域から読み出される。従って、N1=4である。
次に、図15の状態に基づいてステップ0の問題サイズが復元される。M0=ceil(c*M1)+L0=ceil(2*5)+0=10である。P0=1であるので、N0=M0=10である。
以上のような処理を実行すれば、前のステップの問題サイズの情報を特定することができる。なお、図14及び図15に示したように、対象のステップの前のステップのMi及びNiを復元し、復元したNiを用いて対象のステップの処理が完了した段階で、対象のステップのMi及びNiの領域及び作業領域を解放してもよい。
[実施の形態2]
第1の実施の形態の方法は、ステップ(i+1)の問題サイズがステップiの問題サイズの1/c倍であるケースを対象としている。これに対して、第2の実施の形態の方法は、ステップ(i+1)の問題サイズがステップiの問題サイズよりcだけ小さいケースを対象とする。
この場合、以下のように第1の実施の形態の方法を変更すればよい。
まず、定義を以下のように変更する。
(1)c≧1
(2)Mi+1=floor(Mi−c)
(3)h=o(N)
(4)Li=Mi−ceil(c+Mi+1
また、ステップiにおいてMiが判明しているときにMi-1及びNi-1を求める計算を、以下のように変更する。
(1)Mi-1=ceil(c+Mi)+Li-1
(2)Pi-1=1である場合、Ni-1=Mi-1
(3)Pi-1≠1である場合、Ni-1はステップ(i−1)の作業領域のMi-1番目の領域に格納された値
以上のようにすれば、ステップ(i+1)の問題サイズがステップiの問題サイズよりcだけ小さいケースについても、処理を高速化し且つ記憶領域のサイズが大きくなることを抑制することができるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明したデータ構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、接尾辞配列の生成において実行される再帰処理を例として説明したが、別の再帰処理に対しても本実施の形態を適用することができる。例えば、再帰処理後に再帰処理前の情報を使用する場合には本実施の形態の処理を適用可能であるので、問題サイズの情報以外の情報について本実施の形態の処理と同様の処理を実行してもよい。
また、再帰処理以外の処理であって特定の処理を繰り返し実行する処理に対して本実施の形態を適用してもよい。
なお、上で述べた情報処理装置1は、コンピュータ装置であって、図16に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係る格納方法は、(A)各工程において特定の処理が実行される複数の工程のうち第1の工程において、第1の工程における処理対象のサイズである問題サイズが、第1の工程の前の工程の状態に基づき規定される上限サイズと一致するか判定し、(B)判定結果を記憶領域に保存し、(C)第1の工程の次の工程である第2の工程において、記憶領域に保存された判定結果を用いて問題サイズを特定し、特定した問題サイズに基づき第2の工程の特定の処理を実行する処理を含む。
このようにすれば、前の工程の問題サイズの情報を保存する記憶領域が大きくなることを抑制できるようになる。これにより、特定の処理を繰り返し実行する場合において、実行中に使用される記憶領域のサイズが大きくなることを抑制する。
また、本格納方法は、(D)第1の工程において、上限サイズを所定の数で割った場合の剰余の情報を記憶領域に保存する処理をさらに含んでもよい。そして、第2の工程の特定の処理を実行する処理において、(c1)判定結果が、問題サイズが上限サイズと一致することを示している場合、記憶領域に保存した剰余の情報を用いて問題サイズを特定してもよい。
判定結果のみでは問題サイズを特定できない場合にも対処できるようになる。
また、本格納方法は、(E)問題サイズが上限サイズと一致しない場合、第1の工程において、問題サイズと上限サイズとの差に相当する領域に、問題サイズの情報を格納する処理をさらに含んでもよい。そして、第2の工程の特定の処理を実行する処理において、(c2)判定結果が、問題サイズが上限サイズと一致しないことを示している場合、問題サイズを記憶領域から読み出してもよい。
使用されない領域に問題サイズの情報が保存されるので、新たに使用される領域が増えてしまうことが無い。
また、第2の工程の特定の処理を実行する処理において、(c3)第2の工程における処理対象のサイズの上限サイズに所定の数を乗じた値と剰余の情報とを用いて、問題サイズを特定してもよい。
本実施の形態の第2の態様に係る格納装置は、(F)各工程において特定の処理が実行される複数の工程のうち第1の工程において、第1の工程における処理対象のサイズである問題サイズが、第1の工程の前の工程の状態に基づき規定される上限サイズと一致するか判定し、判定結果を記憶領域(例えば管理データ格納部113の領域)に保存する保存処理部(例えば格納処理部101)と、(G)第1の工程の次の工程である第2の工程において、記憶領域に保存された判定結果を用いて問題サイズを特定し、特定した問題サイズに基づき第2の工程の特定の処理を実行する実行部(例えば復元処理部103)とを有する。
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
各工程において特定の処理が実行される複数の工程のうち第1の工程において、前記第1の工程における処理対象のサイズである問題サイズが、前記第1の工程の前の工程の状態に基づき規定される上限サイズと一致するか判定し、
判定結果を記憶領域に保存し、
前記第1の工程の次の工程である第2の工程において、前記記憶領域に保存された前記判定結果を用いて前記問題サイズを特定し、特定した前記問題サイズに基づき前記第2の工程の前記特定の処理を実行する、
処理を実行させる格納プログラム。
(付記2)
前記第1の工程において、前記上限サイズを所定の数で割った場合の剰余の情報を前記記憶領域に保存する
処理を前記コンピュータにさらに実行させ、
前記第2の工程の前記特定の処理を実行する処理において、
前記判定結果が、前記問題サイズが前記上限サイズと一致することを示している場合、前記記憶領域に保存した前記剰余の情報を用いて前記問題サイズを特定する、
付記1記載の格納プログラム。
(付記3)
前記問題サイズが前記上限サイズと一致しない場合、前記第1の工程において、前記問題サイズと前記上限サイズとの差に相当する領域に、前記問題サイズの情報を格納する、
処理を前記コンピュータにさらに実行させ、
前記第2の工程の前記特定の処理を実行する処理において、
前記判定結果が、前記問題サイズが前記上限サイズと一致しないことを示している場合、前記問題サイズを前記記憶領域から読み出す、
付記1又は2記載の格納プログラム。
(付記4)
前記第2の工程の前記特定の処理を実行する処理において、
前記第2の工程における処理対象のサイズの上限サイズに前記所定の数を乗じた値と前記剰余の情報とを用いて、前記問題サイズを特定する、
付記2記載の格納プログラム。
(付記5)
コンピュータが、
各工程において特定の処理が実行される複数の工程のうち第1の工程において、前記第1の工程における処理対象のサイズである問題サイズが、前記第1の工程の前の工程の状態に基づき規定される上限サイズと一致するか判定し、
判定結果を記憶領域に保存し、
前記第1の工程の次の工程である第2の工程において、前記記憶領域に保存された前記判定結果を用いて前記問題サイズを特定し、特定した前記問題サイズに基づき前記第2の工程の前記特定の処理を実行する、
処理を実行する格納方法。
(付記6)
各工程において特定の処理が実行される複数の工程のうち第1の工程において、前記第1の工程における処理対象のサイズである問題サイズが、前記第1の工程の前の工程の状態に基づき規定される上限サイズと一致するか判定し、判定結果を記憶領域に保存する保存処理部と、
前記第1の工程の次の工程である第2の工程において、前記記憶領域に保存された前記判定結果を用いて前記問題サイズを特定し、特定した前記問題サイズに基づき前記第2の工程の前記特定の処理を実行する実行部と、
を有する格納装置。
1 情報処理装置 101 格納処理部
103 復元処理部 105 問題処理部
110 入力データ格納部 111 作業データ格納部
113 管理データ格納部 114 出力データ格納部

Claims (5)

  1. コンピュータに、
    接尾辞の配列を決定する再帰処理の程における処理対象のサイズであって、前記再帰処理の第1工程においては設定値であり前記再帰処理の第i工程(iは2以上の自然数)においては第i−1工程の状態に基づき規定される問題サイズが、工程において使用可能な連続領域の最大サイズである上限サイズと一致するか判定し、
    前記上限サイズを所定の数で割った場合の剰余を記憶領域に保存し、
    前記問題サイズが前記上限サイズに一致する場合には一致することを表す判定結果を、前記問題サイズが前記上限サイズに一致しない場合には一致しないことを表す判定結果と前記問題サイズとを前記記憶領域に保存し、
    前記第i工程における問題サイズを復元する場合には、前記記憶領域に保存された前記判定結果が一致することを表す場合には前記剰余を用いて前記問題サイズを特定し、前記判定結果が一致しないことを表す場合には前記記憶領域から前記問題サイズを読み出す、
    処理を実行させる情報処理プログラム。
  2. 前記問題サイズを、前記記憶領域において、前記問題サイズと前記上限サイズとの差に相当する領域に保存する、
    請求項1記載の情報処理プログラム。
  3. 前記剰余を用いて前記問題サイズを特定する場合、
    前記第i工程より後の工程における上限サイズに前記所定の数を乗じた値と前記剰余とを用いて、前記問題サイズを特定する、
    請求項1又は2記載の情報処理プログラム。
  4. コンピュータが、
    接尾辞の配列を決定する再帰処理の程における処理対象のサイズであって、前記再帰処理の第1工程においては設定値であり前記再帰処理の第i工程(iは2以上の自然数)においては第i−1工程の状態に基づき規定される問題サイズが、工程において使用可能な連続領域の最大サイズである上限サイズと一致するか判定し、
    前記上限サイズを所定の数で割った場合の剰余を記憶領域に保存し、
    前記問題サイズが前記上限サイズに一致する場合には一致することを表す判定結果を、前記問題サイズが前記上限サイズに一致しない場合には一致しないことを表す判定結果と前記問題サイズとを前記記憶領域に保存し、
    前記第i工程における問題サイズを復元する場合には、前記記憶領域に保存された前記判定結果が一致することを表す場合には前記剰余を用いて前記問題サイズを特定し、前記判定結果が一致しないことを表す場合には前記記憶領域から前記問題サイズを読み出す、
    処理を実行する情報処理方法。
  5. 接尾辞の配列を決定する再帰処理の程における処理対象のサイズであって、前記再帰処理の第1工程においては設定値であり前記再帰処理の第i工程(iは2以上の自然数)においては第i−1工程の状態に基づき規定される問題サイズが、工程において使用可能な連続領域の最大サイズである上限サイズと一致するか判定し、前記上限サイズを所定の数で割った場合の剰余を記憶領域に保存し、前記問題サイズが前記上限サイズに一致する場合には一致することを表す判定結果を、前記問題サイズが前記上限サイズに一致しない場合には一致しないことを表す判定結果と前記問題サイズとを前記記憶領域に保存する保存処理部と、
    前記第i工程における問題サイズを復元する場合には、前記記憶領域に保存された前記判定結果が一致することを表す場合には前記剰余を用いて前記問題サイズを特定し、前記判定結果が一致しないことを表す場合には前記記憶領域から前記問題サイズを読み出す復元処理部と、
    を有する情報処理装置。
JP2017025400A 2017-02-14 2017-02-14 格納方法、格納装置および格納プログラム Active JP6961950B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017025400A JP6961950B2 (ja) 2017-02-14 2017-02-14 格納方法、格納装置および格納プログラム
US15/877,144 US20180232205A1 (en) 2017-02-14 2018-01-22 Apparatus and method for recursive processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017025400A JP6961950B2 (ja) 2017-02-14 2017-02-14 格納方法、格納装置および格納プログラム

Publications (2)

Publication Number Publication Date
JP2018132899A JP2018132899A (ja) 2018-08-23
JP6961950B2 true JP6961950B2 (ja) 2021-11-05

Family

ID=63105149

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017025400A Active JP6961950B2 (ja) 2017-02-14 2017-02-14 格納方法、格納装置および格納プログラム

Country Status (2)

Country Link
US (1) US20180232205A1 (ja)
JP (1) JP6961950B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019117865A1 (de) 2018-07-13 2020-01-16 Ngk Spark Plug Co., Ltd. Temperatursensor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440734A (en) * 1993-09-14 1995-08-08 International Business Machines Corporation System for MSD radix sort bin storage management
US8606772B1 (en) * 2011-01-26 2013-12-10 Trend Micro Incorporated Efficient multiple-keyword match technique with large dictionaries
US9619204B2 (en) * 2013-06-14 2017-04-11 Nvidia Corporation Method and system for bin coalescing for parallel divide-and-conquer sorting algorithms
US9824111B2 (en) * 2014-01-29 2017-11-21 International Business Machines Corporation Parallelized in-place radix sorting
US9823896B2 (en) * 2014-01-29 2017-11-21 International Business Machines Corporation Parallelized in-place radix sorting
US9946512B2 (en) * 2015-09-25 2018-04-17 International Business Machines Corporation Adaptive radix external in-place radix sort

Also Published As

Publication number Publication date
JP2018132899A (ja) 2018-08-23
US20180232205A1 (en) 2018-08-16

Similar Documents

Publication Publication Date Title
US8411855B1 (en) Size optimization for large elliptic curve cryptography scalar multiplication acceleration tables
CN108427575B (zh) 全流水结构sha-2消息扩展优化方法
KR102594657B1 (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
KR101801075B1 (ko) 데이터를 판독하고 기록하기 위한 방법, 장치 및 시스템
US11372929B2 (en) Sorting an array consisting of a large number of elements
US20120011166A1 (en) Skip list generation
CN111625180B (zh) 数据写入方法及装置、存储介质
CN110022203A (zh) 一种sm3加速方法和装置
CN117435855B (zh) 用于进行卷积运算的方法、电子设备和存储介质
CN111522811A (zh) 数据库的处理方法及装置、存储介质、终端
JP6961950B2 (ja) 格納方法、格納装置および格納プログラム
JP6812826B2 (ja) 格納方法、格納装置及び格納プログラム
US20120204181A1 (en) Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor
JPWO2015087651A1 (ja) メモリの使用可能期間を延ばすための装置、プログラム、記録媒体および方法
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
US11409646B2 (en) Method for releasing memory
CN116318660A (zh) 一种消息扩展与压缩方法及相关装置
JP2010107947A (ja) Shaアルゴリズム基盤のメッセージスケジュール演算方法、メッセージ圧縮演算方法及びこれを行う暗号装置
CN112800057B (zh) 一种指纹表管理方法及装置
CN111290787B (zh) 运算装置及运算方法
JP2007086951A (ja) ファイル分割処理方法及びファイル分割プログラム
KR20190143115A (ko) 블록체인 기반 데이터 관리 방법
JP2007218997A (ja) 素数生成装置、プログラム及び方法
CN117056068B (zh) ETL中JobEngine任务拆分方法
JP2013156698A (ja) クラスタリング装置及び方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210812

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210927

R150 Certificate of patent or registration of utility model

Ref document number: 6961950

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150