JP2015108991A - 演算要素管理装置および演算要素管理プログラム - Google Patents
演算要素管理装置および演算要素管理プログラム Download PDFInfo
- Publication number
- JP2015108991A JP2015108991A JP2013251700A JP2013251700A JP2015108991A JP 2015108991 A JP2015108991 A JP 2015108991A JP 2013251700 A JP2013251700 A JP 2013251700A JP 2013251700 A JP2013251700 A JP 2013251700A JP 2015108991 A JP2015108991 A JP 2015108991A
- Authority
- JP
- Japan
- Prior art keywords
- bit string
- calculation
- block
- calculation formula
- bit
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】計算式要素取得部120は、入力計算式101の左辺に含まれる演算要素であるソース要素と、入力計算式101の右辺に含まれる演算要素であるターゲット要素とを取得する。演算要素管理部150は、ターゲット要素と同じ演算要素に対応付けられたブロック番号とビット番号とを演算要素管理テーブル220から取得し、取得したブロック番号とビット番号とに基づいてソース要素の接続ビット列を生成する。演算要素ビット列管理部170はソース要素の接続ビット列に基づいてブロックビット列を生成し、生成したブロックビット列と、取得されたブロック番号と、ソース要素を識別する演算要素番号とを接続ビット列テーブル230に登録する。
【選択図】図1
Description
従来の階層構造の管理方法では、要素の親と子の対応表(親子関係)を管理することによって、関連する要素を巡回的に探索している(例えば、特許文献1)。また、親子関係の管理において、ルートの要素からのパスおよび順番を管理することによって、探索を効率化する方法も提案されている(例えば、特許文献2)。
演算要素を識別する演算要素番号と前記演算要素に割り当てるブロック番号と前記演算要素に割り当てるビット番号とを対応付ける演算要素管理テーブルと、前記演算要素番号と子の演算要素を特定するための接続ビット列から生成されるブロックビット列と前記ブロックビット列を識別するブロック番号とを対応付ける接続ビット列テーブルとを記憶するテーブル記憶部と、
入力計算式の左辺に含まれる演算要素であるソース要素と、前記入力計算式の右辺に含まれる演算要素であるターゲット要素とを取得する計算式要素取得部と、
前記ターゲット要素と同じ演算要素に対応付けられたブロック番号とビット番号とを前記演算要素管理テーブルから取得し、取得した前記ブロック番号と前記ビット番号とに基づいて前記ソース要素の前記接続ビット列を生成する演算要素管理部と、
前記ソース要素の前記接続ビット列に基づいて前記ブロックビット列を生成し、生成した前記ブロックビット列と、取得された前記ブロック番号と、前記ソース要素を識別する演算要素番号とを前記接続ビット列テーブルに登録する演算要素ビット列登録部とを備える。
多階層計算式に用いられる複数の演算要素の親子関係を容易に管理するための形態について説明する。
実施の形態1における多階層計算式管理装置100の機能構成について、図1に基づいて説明する。
多階層計算式は、親子関係を持つ複数の演算要素を用いた計算式である。
例えば、{f1}={f2}+{f3}という多階層計算式がある場合、多階層計算式によって算出される演算要素f1、つまり、左辺にある演算要素f1が親の演算要素である。また、多階層計算式に含まれる残りの演算要素f2、f3、つまり、右辺にある演算要素f2、f3が子の演算要素である。
さらに、{f2}={f4}+{f5}という多階層計算式がある場合、演算要素f2、f3、f4、f5は演算要素f1の子孫の演算要素であり、演算要素f1、f2は演算要素f4、f5の祖先の演算要素である。
なお、{f3}=[a1]+[a2]であり、{f4}=[a3]+[a4]であり、{f5}=[a5]+[a6]である場合、演算要素f1の値はf1=[a1]+[a2]+[a3]+[a4]+[a5]+[a6]を計算することによって得られる。
実施の形態1において、{}内に記された符号は演算要素を識別し、[]内に記された符号は変数(変数要素ともいう)を識別する。
さらに、多階層計算式管理装置100は、演算要素ビット列管理部170と、計算式記憶部190(テーブル記憶部の一例)とを備える。
計算式要素取得部120は、入力計算式101から親の演算要素と子の演算要素とを取得する。以下、入力計算式101から取得される親の演算要素をソース要素といい、入力計算式101から取得される子の演算要素をターゲット要素という。
整合性検証部130は、入力計算式101が整合性がある多階層計算式であるか否かを判定する。
計算式管理部140は、整合性がある入力計算式101を計算式テーブル210に登録する。
演算要素管理部150は、ソース要素を演算要素管理テーブル220に登録する。
計算式出力部160は、登録された入力計算式101に関する情報を出力する。
演算要素ビット列管理部170の詳細については後述する。
例えば、計算式記憶部190は、入力計算式101と、計算式テーブル210と、演算要素管理テーブル220と、接続ビット列テーブル230と、到達ビット列テーブル240とを記憶する。
計算式テーブル210は、多階層計算式を管理するためのテーブルである。
演算要素管理テーブル220は、演算要素を管理するためのテーブルである。
接続ビット列テーブル230は、接続ビット列を管理するためのテーブルである。接続ビット列は演算要素の子要素(子の演算要素)を特定するためのビット列である。
到達ビット列テーブル240は、到達ビット列を管理するためのテーブルである。到達ビット列は演算要素の子孫要素(子孫の演算要素)を特定するためのビット列である。
実施の形態1における階層図161と接続ビット列162と到達ビット列163の一例について、図2に基づいて説明する。
階層図161が表す親子関係は、接続ビット列162および到達ビット列163で表すことができる。
接続ビット列162は、演算要素の子要素をビット値で示している。例えば、1番の演算要素の接続ビット列「01100000」において、2番目と3番目のビットのビット値が1である。つまり、この接続ビット列は1番の演算要素の子要素が2番と3番の演算要素であることを示している。
到達ビット列163は、演算要素の子孫要素をビット値で示している。例えば、1番の演算要素の到達ビット列「01111111」において、2番目から8番目のビットのビット値が1である。つまり、この到達ビット列は1番の演算要素の子孫要素が2番から8番の演算要素であることを示している。
実施の形態1における演算要素ビット列管理部170の機能構成について、図3に基づいて説明する。
演算要素ビット列登録部171は、入力計算式101に含まれるソース要素の子要素(ターゲット要素)を特定するための接続ビット列を接続ビット列テーブル230に登録する。また、演算要素ビット列登録部171は、ソース要素の子孫要素を特定するための到達ビット列を到達ビット列テーブル240に登録する。
到達ビット列生成部172は、ソース要素の到達ビット列を生成する。
子孫要素番号取得部173は、演算要素(ソース要素を含む)の子孫要素(子要素を含む)を識別する演算要素番号を接続ビット列テーブル230または到達ビット列テーブル240から取得する。
親要素番号取得部174は、演算要素(ソース要素を含む)の親要素を識別する演算要素番号を接続ビット列テーブル230から取得する。
実施の形態1における計算式テーブル210の一例について、図4に基づいて説明する。
ソース要素番号は、多階層計算式のソース要素を識別する番号である。
ソース要素名は、多階層計算式のソース要素を識別する名称である。
実施の形態1における演算要素管理テーブル220の一例について、図5に基づいて説明する。
演算要素番号は、演算要素を識別する番号である。
ブロック番号は、接続ビット列(または到達ビット列)を分割して生成される複数のブロックビット列のうち、当該演算要素に対応付けられるビットが含まれるブロックビット列を識別する番号である。
ビット番号は、当該ブロックビット列に含まれる複数のビットのうち、当該演算要素に対応付けられるビットを識別する番号である。
また、演算要素管理テーブル220は、接続ビット列(ま多は到達ビット列)の2番目のブロックビット列の1番目のビット値を、10001番の演算要素に対応付けている(7行目を参照)。
実施の形態1における接続ビット列テーブル230の一例について、図6に基づいて説明する。
演算要素番号は、演算要素を識別する番号である。
ブロック番号は、ブロックビット列を識別する番号である。
反転フラグは、ブロックビット列に含まれる各ビット値が反転されているか否かを表すフラグ値を示す。以下、ブロックビット列に含まれる各ビット値が反転されていることを意味するフラグ値を反転フラグ値という。また、ブロックビット列に含まれる各ビット値が反転されていないことを意味するフラグ値を非反転フラグ値という。実施の形態1において反転フラグ値は1であり、非反転フラグ値は0である。但し、反転フラグ値が0であり、非反転フラグ値が1であっても構わない。
ブロックビット列は、接続ビット列を構成する複数のブロックビット列のうち、ブロック番号によって識別されるブロックビット列を示す。但し、反転フラグが反転フラグ値を示す場合、ブロックビット列に含まれる各ビット値は反転されている。また、最終ビットを含む後半部分の各ビット値が0である場合、その後半部分の各ビット値は省略される。但し、ビット値が1である場合にビット値を省略しても構わない。各なお、接続ビット列テーブル230のブロックビット列のデータサイズは可変長である。
1番の演算要素の接続ビット列に含まれる1番目のブロックビット列の先頭の3ビットは「011」である。
また、1番目のブロックビット列の後半の5ビットは「00000」である。この5ビットはビット値が0であるため省略されている。
さらに、1番目の演算要素の接続ビット列に含まれる2番目からN番目のブロックビット列のビット値は0である。これらのブロックビット列はビット値が0であるため省略されている。
つまり、1番目の演算要素の接続ビット列は「01100000・・・0」である。
同様に、2番目の演算要素の接続ビット列は「00011000・・・0」である。
また、1番目のブロックビット列の後半の3ビットは「111」である。この3ビットは反転後のビット値が0であるため省略されている。
さらに、3番目の演算要素の接続ビット列に含まれる2番目からN番目のブロックビット列のビット値は0である。これらのブロックビット列はビット列が0であるため省略されている。
つまり、3番目の演算要素の接続ビット列は「000001110・・・0」である。
図7に示すように到達ビット列テーブル240は、接続ビット列テーブル230(図6参照)と同様の構成である。
但し、到達ビット列テーブル240のブロックビット列は、到達ビット列を構成する複数のブロックビット列のうち、ブロック番号によって識別されるブロックビット列を示す。
1番目の演算要素の到達ビット列は「011111110・・・0」である。
2番目の演算要素の到達ビット列は「000110000・・・0」である。
3番目の演算要素の到達ビット列は「000001110・・・0」である。
実施の形態1における多階層計算式管理方法について、図8に基づいて説明する。
そして、多階層計算式管理装置100の計算式入力部110は、入力された多階層計算式を入力計算式101として取得する。
S110の後、処理はS120に進む。
入力計算式101が{F3}={F1}+{F2}である場合、計算式要素取得部120は、入力計算式101の左辺に含まれる{}内のF3をソース要素名として取得する。また、計算式要素取得部120は、入力計算式101の右辺に含まれる{}内のF1、F2を演算要素名として取得する。
入力計算式101が{F1}=[A1]+[A2]+[A3]である場合、計算式要素取得部120は入力計算式101の左辺に含まれる{}内のF1をソース要素名として取得する。但し、入力計算式101の右辺には演算要素を表す{}が無いため、計算式要素取得部120は演算要素名を取得できない。[A1]、[A2]、[A3]は、多階層計算式で表される演算要素ではなく、数値を表す変数要素である。
S120の後、処理はS130に進む。
ソース要素およびソース要素の祖先要素(親を含む祖先の演算要素)がターゲット要素の子孫要素(子を含む子孫の演算要素)に含まれなければ、入力計算式101に整合性がある。
または、ターゲット要素およびターゲット要素の子孫要素がソース要素の祖先要素に含まれなければ、入力計算式101に整合性がある。
S130の後、処理はS139に進む。
図9において、Anc(A)はソース要素Aの祖先要素の集合であり、Desc(B)はターゲット要素Bの子孫要素の集合である。ソース要素Aとターゲット要素Bとを除いた残りの演算要素の要素番号は省略している。
ターゲット要素Bの子孫要素の重合Desc(B)にソース要素Aの祖先要素の集合Anc(A)が含まれる場合、ソース要素Aとターゲット要素Bとの間でループの関係が生じてしまう。そのため、ソース要素Aとターゲット要素Bとを含む入力計算式101には整合性がない。
一方で、ターゲット要素Bの子孫要素の重合Desc(B)にソース要素Aの祖先要素の集合Anc(A)が含まれない場合、ソース要素Aとターゲット要素Bとの間でループの関係が生じない。そのため、ソース要素Aとターゲット要素Bとの関係において入力計算式101に整合性がある。
実施の形態1における整合性検証処理(S130)について、図10に基づいて説明する。
ターゲット要素名が取得された場合(YES)、処理はS132に進む。
ターゲット要素名が取得されなかった場合(NO)、整合性検証処理(S130)は終了する。この場合、入力計算式101に整合性がある。
ソース要素名と同じ名称が計算式テーブル210に登録されていない場合、取得されるソース要素番号は無い。
S132の後、処理はS133に進む。
以下、S132で選択されたターゲット要素名を単にターゲット要素名という。
S133の後、処理はS134に進む。
ターゲット要素名と名称が同じであるソース要素名が登録されている場合(YES)、処理はS135に進む。
ターゲット要素名と名称が同じであるソース要素名が登録されていない場合(NO)、整合性検証処理(S130)は終了する。この場合、不明なターゲット要素が入力計算式101に含まれるため、入力計算式101に整合性がない。
以下、S135で取得される演算要素番号の集合をターゲット要素の子孫要素集合という。
S135の後、処理はS136に進む。
ターゲット要素の子孫要素集合にソース要素番号が含まれる場合(YES)、整合性検証処理(S130)は終了する。この場合、入力計算式101に整合性がない。
ターゲット要素の子孫要素集合にソース要素番号が含まれない場合(NO)、処理はS137に進む。
未選択であるターゲット要素番号がある場合(YES)、処理はS133に戻る。
未選択であるターゲット要素番号がない場合(NO)、整合性検証処理(S130)は終了する。
図8に戻り、S139から説明を続ける。
入力計算式101に整合性がある場合(YES)、処理はS140に進む。
入力計算式101に整合性がない場合(NO)、計算式出力部160は入力計算式101に整合性がないことを示すエラーメッセージを表示し、多階層計算式管理方法の処理は終了する。
入力計算式101のソース要素名が計算式テーブル210に登録されている場合、計算式管理部140は、多階層計算式を入力計算式101に更新する。
入力計算式101のソース要素名が計算式テーブル210に登録されていない場合、計算式管理部140は、計算式テーブル210に新たなレコードを生成し、ソース要素番号と入力計算式101のソース要素名と入力計算式101(多階層計算式)とを新たなレコードに設定する。ソース要素番号は、計算式テーブル210に含まれる最大のソース要素番号に1を加算した番号である。
S140の後、処理はS150に進む。
演算要素管理処理(S150)については後述する。
S150の後、処理はS160に進む。
例えば、計算式出力部160は、入力計算式101と入力計算式101が登録されたことを示す登録メッセージとを表示する。また、計算式出力部160は、演算要素管理テーブル220と接続ビット列テーブル230と到達ビット列テーブル240とに基づいて、入力計算式101のソース要素およびターゲット要素に関する階層図161(図2、図9参照)を生成する。そして、計算式出力部160は階層図161を表示する。
S160の後、多階層計算式管理方法の処理は終了する。
実施の形態1における演算要素管理処理(S150)について、図11および図12に基づいて説明する。
演算要素管理部150は、取得したソース要素番号を演算要素管理テーブル220(図5参照)に登録する。但し、ソース要素番号と同じ演算要素番号が演算要素管理テーブル220に登録済みである場合、演算要素管理部150はソース要素番号を新たに登録しなくてよい。
ソース要素番号を登録する場合、演算要素管理部150は、演算要素管理テーブル220に新たなレコードを生成し、ソース要素番号(演算要素番号)とブロック番号とビット番号とを新たなレコードに設定する。
設定するビット番号は、演算要素管理テーブル220に含まれる最大の演算要素番号に対応付けられているビット番号に1を加算した番号である。但し、1を加算した番号がブロック長を超えた場合、設定するビット番号は1である。
設定するブロック番号は、演算要素管理テーブル220に含まれる最大のブロック番号と同じ番号である。但し、設定するビット番号が1である場合、設定するブロック番号は最大のブロック番号に1を加算した番号である。
S1501の後、処理はS1510に進む。
演算要素管理部150は、取得したターゲット要素番号に対応付けられたブロック番号とビット番号とを、演算要素管理テーブル220から取得する。
演算要素管理部150は、取得したブロック番号とビット番号とを用いて、ソース要素の接続ビット列を生成する。
例えば、ターゲット要素が1つであり、ターゲット要素のブロック番号が1であり、ターゲット要素のビット番号が2である場合、ソース要素の接続ビット列は「010・・・0」である。
S1510の後、処理はS1511に進む。
S1511の後、処理はS1512に進む。
以下、更新要素集合に含まれる演算要素番号(ソース要素番号を含む)を更新要素番号といい、更新要素番号によって識別される演算要素を更新要素という。
S1512の後、処理はS1520に進む。
S1520の後、処理はS1521に進む。
以下、S1521で取得される演算要素番号の集合を更新要素の子要素集合という。
S1521の後、処理はS1522に進む。
S1522の後、処理はS1523に進む。
S1523の後、処理はS1530に進む。
以下、S1530で取得される演算要素番号の集合を更新要素の親要素集合という。
S1530の後、処理はS1531に進む。
S1531の後、処理はS1532に進む。
未選択の更新要素番号がある場合(YES)、処理はS1520に戻る。
未選択の更新要素番号がない場合(NO)、演算要素管理処理(S150)は終了する。
実施の形態1における演算要素ビット列登録処理について、図13に基づいて説明する。
演算要素ビット列登録処理はS1511(図11参照)とS1523(図12参照)で実行される。
S1511ではソース要素の接続ビット列が接続ビット列テーブル230に登録され、S1523では更新要素の到達ビット列が到達ビット列テーブル240に登録される。
図13において、S1511のソース要素またはS1523の更新要素を対象要素といい、S1511の接続ビット列またはS1523の到達ビット列を対象ビット列という。また、S1511の接続ビット列テーブル230またはS1523の到達ビット列テーブル240を対象テーブルという。
例えば、対象ビット列が16ビットのビット列「0010111001111111」であり、対象ビット列のブロック長が8ビットである場合、演算要素ビット列登録部171は対象ビット列を2個のブロックビット列「00101110」「01111111」に分割する。
S210の後、処理はS211に進む。
以下、S211で選択されるブロックビット列を単にブロックビット列という。
S211の後、処理はS212に進む。
最終ビットのビット値が1である場合、演算要素ビット列登録部171はブロックビット列の各ビット値を反転する。
最終ビットのビット値が0である場合、演算要素ビット列登録部171はブロックビット列の各ビット値を反転しない。
これにより、ブロックビット列の最終ビットのビット値は0になる。
例えば、ブロックビット列「00101110」の最終ビットのビット値は0であるため、演算要素ビット列登録部171は、ブロックビット列の各ビット値を反転しない。
また、ブロックビット列「01111111」の最終ビットのビット値は1であるため、演算要素ビット列登録部171はブロックビット列の各ビット値を反転する。各ビット値を反転後のブロックビット列は「10000000」である。
S212の後、処理はS213に進む。
例えば、演算要素ビット列登録部171は、ブロックビット列「00101110」の最終ビットをトリムする。トリム後のブロックビット列は「0010111」である。
また、演算要素ビット列登録部171は、ブロックビット列「01111111」の後半7ビットをトリムする。トリム後のブロックビット列は「1」である。
S213の後、処理はS214に進む。
S214の後、処理はS215に進む。
未選択のブロックビット列がある場合(YES)、処理はS211に戻る。
未選択のブロックビット列がNい場合(NO)、演算要素ビット列登録処理は終了する。
実施の形態1における到達ビット列生成処理について、図14に基づいて説明する。
到達ビット列生成処理はS1522(図12参照)で実行される。S1522では、更新要素の子要素集合に基づいて更新要素の到達ビット列が生成される。
図14において、更新要素の子要素集合を対象要素集合といい、更新要素の子要素を対象要素といい、対象要素の演算要素番号を対象要素番号という。
以下、S220で選択される対象要素番号を単に対象要素番号という。また、S220で選択される対象要素番号によって識別される対象要素を単に対象要素という。
S220の後、処理はS221に進む。
S221の後、処理はS222に進む。
到達ビット列生成部172は、ブロックビット列毎にブロックビット列がブロック長と同じサイズになるようにブロックビット列の末尾にビット値が0であるビットを付加する。例えば、ブロック長が8ビットであり、ブロックビット列が「00011」である場合、到達ビット列生成部172はビット値が0である3ビットを付加してブロックビット列を「00011000」にする。
到達ビット列生成部172は、ビット値が判定されているブロックビット列のビット値を判定する。このとき、到達ビット列生成部172はブロックビット列に対応付けられた反転フラグに基づいてビット値が判定しているか否かを判定する。
S222の後、処理はS223に進む。
未選択の対象要素がある場合(YES)、処理はS220に戻る。
未選択の対象要素がない場合(NO)、処理はS224に進む。
例えば、対象要素集合に含まれる対象要素が第一の演算要素および第二の演算要素である場合、到達ビット列生成部172は、第一の演算要素のn番目のブロックビット列と第二の演算要素のn番目のブロックビット列とをグルーピングする。
S224の後、処理はS225に進む。
例えば、第一のブロックビット列「00011000」と第二のブロックビット列「00000111」がブロックビット列グループを構成する場合、ブロックビット列グループの論理和は「00011111」である。
S225の後、処理はS226に進む。
S226の後、到達ビット列生成処理は終了する。
SELECT bit_or(ビット列)
FROM
(SELECT 演算要素ID,ブロック番号,到達可能ビット列
FROM 到達可能関係記憶部
WHERE ビット値フラグ = 1
)AS T1,
(SELECT 演算要素ID,ブロック番号,到達可能ビット列 # B‘111111111’
FROM 到達可能関係記憶部
WHERE ビット値フラグ = 0
)AS T2
GROUP BY ブロック番号
実施の形態1における子孫要素番号取得処理について、図15に基づいて説明する。
子孫要素番号取得処理はS135(図10参照)およびS1521(図12参照)で実行される。S135ではターゲット要素の子孫要素集合が取得され、S1521では更新要素の子要素集合が取得される。
図15において、S135のターゲット要素またはS1521の更新要素を対象要素といい、対象要素を識別する演算要素番号を対象要素番号という。
例えば、S135で子孫要素集合を取得する場合、子孫要素番号取得部173は、対象要素のブロックビット列などを到達ビット列テーブル240(図7参照)から取得する。
また、S1521で子要素集合を取得する場合、子孫要素番号取得部173は、対象要素のブロックビット列などを接続ビット列テーブル230(図6参照)から取得する。
S230の後、処理はS231に進む。
S231の後、処理はS232に進む。
ビット値が1であるビットのビット番号が子孫要素のビット番号である。また、子孫要素のビット番号が取得されたブロックビット列のブロック番号が子要素のブロック番号である。
S232の後、処理はS233に進む。
演算要素番号=(ブロック番号−1)×ブロック長+ビット番号
例えば、ブロック番号が2であり、ブロック長が8であり、ビット番号が3である場合、対象要素の子孫要素の演算要素番号は11(=(2−1)×8+3)である。
S233で算出される1つ以上の演算要素番号が子孫要素集合または子要素集合である。
S233の後、子孫要素番号取得処理は終了する。
実施の形態1における親要素番号取得処理について、図16に基づいて説明する。
親要素番号取得処理はS1530(図12参照)で実行される。S1530では更新要素の親要素集合が取得される。
図16において、S1530の更新要素を対象要素といい、対象要素を識別する演算要素番号を対象要素番号という。
S240の後、処理はS241に進む。
S241の後、処理はS242に進む。
S242の後、処理はS243に進む。
S243の後、処理はS244に進む。
S244で取得される演算要素番号が対象要素の親要素番号である。
S244の後、親要素番号取得処理は終了する。
実施の形態1における多階層計算式管理装置100のハードウェア構成の一例について、図17に基づいて説明する。但し、多階層計算式管理装置100のハードウェア構成は図17に示す構成と異なる構成であってもよい。
演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905はバス909に接続している。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリまたはハードディスク装置である。
主記憶装置903は、例えば、RAM(Random Access Memory)である。
通信装置904は、有線または無線でインターネット、LAN(ローカルエリアネットワーク)、電話回線網またはその他のネットワークを介して通信を行う。
入出力装置905は、例えば、マウス、キーボード、ディスプレイ装置である。
例えば、オペレーティングシステム(OS)が補助記憶装置902に記憶される。また、「〜部」として説明している機能を実現するプログラムが補助記憶装置902に記憶される。そして、OSおよび「〜部」として説明している機能を実現するプログラムは主記憶装置903にロードされ、演算装置901によって実行される。「〜部」は「〜処理」「〜工程」と読み替えることができる。
多階層計算式管理装置100は、整合性の検証を短時間で実行するために必要な到達可能関係および接続関係をブロック化したビット列を用いて管理している。さらに、多階層計算式管理装置100は、必要な範囲のビット列に対してビット列を反転およびトリムしている。さらに、多階層計算式管理装置100は、計算式が修正された場合でも、変更の影響が無い下位の到達可能関係を用いた単純なビット列の論理演算によって、到達可能関係を更新する。
実施の形態1は、例えば、以下のような効果を奏する。
計算式が多階層、かつ、大規模になった場合でも、多階層計算式管理装置100はデータ量を削減し、演算の関係性を管理することができる。また、多階層計算式管理装置100は、関係性をブロック化したビット列を用いて管理しているので、到達可能関係または接続関係を検索し、更新箇所を限定し、整合性検証および更新にかかる時間を短縮することができる。
また、多階層計算式管理装置100は、ビット演算の組み合わせによって到達可能行列の検索および更新を行うため、高速に演算することができる。
つまり、多階層計算式管理装置100は、実施の形態1で説明した構成要素の一部を備えなくても構わない。また、多階層計算式管理装置100は、実施の形態1で説明していない構成要素を備えても構わない。
実施の形態1に係る方法およびプログラムは、実施の形態1においてフローチャート等を用いて説明した処理手順と一部異なる処理手順で実現されても構わない。
Claims (7)
- 演算要素を識別する演算要素番号と前記演算要素に割り当てるブロック番号と前記演算要素に割り当てるビット番号とを対応付ける演算要素管理テーブルと、前記演算要素番号と子の演算要素を特定するための接続ビット列から生成されるブロックビット列と前記ブロックビット列を識別するブロック番号とを対応付ける接続ビット列テーブルとを記憶するテーブル記憶部と、
入力計算式の左辺に含まれる演算要素であるソース要素と、前記入力計算式の右辺に含まれる演算要素であるターゲット要素とを取得する計算式要素取得部と、
前記ターゲット要素と同じ演算要素に対応付けられたブロック番号とビット番号とを前記演算要素管理テーブルから取得し、取得した前記ブロック番号と前記ビット番号とに基づいて前記ソース要素の前記接続ビット列を生成する演算要素管理部と、
前記ソース要素の前記接続ビット列に基づいて前記ブロックビット列を生成し、生成した前記ブロックビット列と、取得された前記ブロック番号と、前記ソース要素を識別する演算要素番号とを前記接続ビット列テーブルに登録する演算要素ビット列登録部と
を備えることを特徴とする演算要素管理装置。 - 前記演算要素ビット列登録部は、
前記ソース要素の前記接続ビット列を分割して暫定のブロックビット列を生成し、前記暫定のブロックビット列の後半部分のビット値が削除ビット値であれば前記暫定のブロックビット列から前記後半部分を削除することによって前記ブロックビット列を生成する
ことを特徴とする請求項1記載の演算要素管理装置。 - 前記演算要素ビット列登録部は、
前記暫定のブロックビット列の後半部分のビット値が削除ビット値でなければ前記暫定のブロックビット列のビット値を反転し、反転後の前記暫定のブロックビット列から前記後半部分を削除することによって前記ブロックビット列を生成する
ことを特徴とする請求項2記載の演算要素管理装置。 - 前記演算要素管理装置は子孫要素取得部と到達ビット列生成部とを備え、
前記テーブル記憶部は、前記演算要素番号と子孫の演算要素を特定するための到達ビット列から生成されるブロックビット列と前記ブロックビット列を識別するブロック番号とを対応付ける到達ビット列テーブルを記憶し、
前記子孫要素取得部は、前記接続ビット列テーブルから前記ソース要素の前記ブロックビット列を取得し、取得した前記ブロックビット列に基づいて前記ソース要素の子の演算要素を識別する子要素番号を算出し、
前記到達ビット列生成部は、前記到達ビット列テーブルから前記子要素番号と同じ演算要素番号に対応付けられた前記ブロックビット列を取得し、取得した前記ブロックビット列に基づいて前記ソース要素の前記到達ビット列を生成し、
前記演算要素ビット列登録部は、前記到達ビット列テーブルに登録するブロックビット列を前記ソース要素の前記到達ビット列に基づいて生成し、生成した前記ブロックビット列と、生成した前記ブロックビット列を識別するブロック番号と、前記ソース要素を識別する前記演算要素番号とを前記到達ビット列テーブルに登録する
ことを特徴とする請求項1から請求項3のいずれかに記載の演算要素管理装置。 - 前記演算要素管理装置は整合性検証部と計算式管理部と計算式記憶部とを備え、
前記子孫要素取得部は、前記到達ビット列テーブルから前記ソース要素の前記ブロックビット列を取得し、取得した前記ソース要素の前記ブロックビット列に基づいて前記ソース要素の子孫の演算要素を識別する子孫要素番号を算出し、
前記整合性検証部は、前記子孫要素番号に基づいて前記入力計算式が正しい計算式であるか否かを判定し、
前記計算式管理部は、前記入力計算式が正しい計算式であると判定された場合に前記入力計算式を前記計算式記憶部に登録する
ことを特徴とする請求項4に記載の演算要素管理装置。 - 前記整合性検証部は、前記子孫要素番号によって識別される前記演算要素が前記ソース要素である場合に前記入力計算式が正しい計算式でないと判定する
ことを特徴する請求項5に記載の演算要素管理装置。 - 演算要素管理テーブルと接続ビット列テーブルとを用いる演算要素管理プログラムであって、
前記演算要素管理テーブルは、演算要素を識別する演算要素番号と前記演算要素に割り当てるブロック番号と前記演算要素に割り当てるビット番号とを対応付けるテーブルであり、
前記接続ビット列テーブルは、前記演算要素番号と子の演算要素を特定するための接続ビット列から生成されるブロックビット列と前記ブロックビット列を識別するブロック番号とを対応付けるテーブルであり、
入力計算式の左辺に含まれる演算要素であるソース要素と、前記入力計算式の右辺に含まれる演算要素であるターゲット要素とを取得する計算式要素取得処理と、
前記ターゲット要素と同じ演算要素に対応付けられたブロック番号とビット番号とを前記演算要素管理テーブルから取得し、取得した前記ブロック番号と前記ビット番号とに基づいて前記ソース要素の前記接続ビット列を生成する演算要素管理処理と、
前記ソース要素の前記接続ビット列に基づいて前記ブロックビット列を生成し、生成した前記ブロックビット列と、取得された前記ブロック番号と、前記ソース要素を識別する演算要素番号とを前記接続ビット列テーブルに登録する演算要素ビット列登録処理と
をコンピュータに実行させるための演算要素管理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013251700A JP6214366B2 (ja) | 2013-12-05 | 2013-12-05 | 演算要素管理装置および演算要素管理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013251700A JP6214366B2 (ja) | 2013-12-05 | 2013-12-05 | 演算要素管理装置および演算要素管理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015108991A true JP2015108991A (ja) | 2015-06-11 |
JP6214366B2 JP6214366B2 (ja) | 2017-10-18 |
Family
ID=53439289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013251700A Expired - Fee Related JP6214366B2 (ja) | 2013-12-05 | 2013-12-05 | 演算要素管理装置および演算要素管理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6214366B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06187438A (ja) * | 1992-12-21 | 1994-07-08 | Tokyo Gas Co Ltd | 座標データの圧縮・復元装置 |
JPH10247907A (ja) * | 1997-03-05 | 1998-09-14 | Kokusai Denshin Denwa Co Ltd <Kdd> | Osi管理における管理情報ベースのアクセス制御方法 |
JP2003303122A (ja) * | 2002-04-12 | 2003-10-24 | Ricoh Co Ltd | データ管理装置、プログラム及び記録媒体 |
JP2010055580A (ja) * | 2008-08-29 | 2010-03-11 | Hitachi Ltd | 環境情報集計装置、環境情報集計方法および環境情報集計プログラム |
-
2013
- 2013-12-05 JP JP2013251700A patent/JP6214366B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06187438A (ja) * | 1992-12-21 | 1994-07-08 | Tokyo Gas Co Ltd | 座標データの圧縮・復元装置 |
JPH10247907A (ja) * | 1997-03-05 | 1998-09-14 | Kokusai Denshin Denwa Co Ltd <Kdd> | Osi管理における管理情報ベースのアクセス制御方法 |
JP2003303122A (ja) * | 2002-04-12 | 2003-10-24 | Ricoh Co Ltd | データ管理装置、プログラム及び記録媒体 |
JP2010055580A (ja) * | 2008-08-29 | 2010-03-11 | Hitachi Ltd | 環境情報集計装置、環境情報集計方法および環境情報集計プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6214366B2 (ja) | 2017-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6916403B2 (ja) | データへの論理的妥当性検査規則の指定および適用 | |
US10313177B2 (en) | Data lineage summarization | |
JP6427592B2 (ja) | データ型に関連するデータプロファイリング操作の管理 | |
JP6357162B2 (ja) | 位置情報を用いたデータのプロファイリング | |
US20240078229A1 (en) | Generating, accessing, and displaying lineage metadata | |
CN102460404B (zh) | 生成混淆数据 | |
CN107430611B (zh) | 过滤数据沿袭图 | |
KR102201510B1 (ko) | 데이터 운영을 위한 메모리 및 스토리지 공간 관리 | |
Brazeau et al. | An algorithm for morphological phylogenetic analysis with inapplicable data | |
KR102240137B1 (ko) | 데이터베이스 키 식별 | |
JP2013525881A5 (ja) | ||
JP2010027058A (ja) | コンピュータによって実現される方法、コンピュータ読取可能媒体およびデータベースから情報を抽出するための装置 | |
JP2019091475A (ja) | データ系統図のフィルタリング | |
US11194840B2 (en) | Incremental clustering for enterprise knowledge graph | |
WO2018059298A1 (zh) | 模式挖掘方法、高效用项集挖掘方法及相关设备 | |
CN110945559B (zh) | 用于时间事件数据序列的优化视觉概要的方法和系统 | |
JP2013149061A (ja) | 文書類似性評価システム、文書類似性評価方法およびコンピュータ・プログラム | |
JP6567043B2 (ja) | 階層的なエンティティのための計算の管理 | |
JP6214366B2 (ja) | 演算要素管理装置および演算要素管理プログラム | |
WO2024000897A1 (zh) | 一种基于区块链的数字资产合成方法及装置 | |
WO2016177047A1 (zh) | 一种日志的展示方法及装置 | |
Kolias et al. | A Covering Classification Rule Induction Approach for Big Datasets | |
US11770413B2 (en) | Domain-independent resource security and management | |
Pintér et al. | Comparison of Source Code Storage Methods | |
CN113987004A (zh) | 一种模型的训练方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161104 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170808 |
|
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: 20170822 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170919 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6214366 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |