JP2015108991A - 演算要素管理装置および演算要素管理プログラム - Google Patents

演算要素管理装置および演算要素管理プログラム Download PDF

Info

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
Application number
JP2013251700A
Other languages
English (en)
Other versions
JP6214366B2 (ja
Inventor
貴雄 米田
Takao Yoneda
貴雄 米田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013251700A priority Critical patent/JP6214366B2/ja
Publication of JP2015108991A publication Critical patent/JP2015108991A/ja
Application granted granted Critical
Publication of JP6214366B2 publication Critical patent/JP6214366B2/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

【課題】多階層計算式に用いられる複数の演算要素の親子関係を容易に管理できるようにすることを目的とする。
【解決手段】計算式要素取得部120は、入力計算式101の左辺に含まれる演算要素であるソース要素と、入力計算式101の右辺に含まれる演算要素であるターゲット要素とを取得する。演算要素管理部150は、ターゲット要素と同じ演算要素に対応付けられたブロック番号とビット番号とを演算要素管理テーブル220から取得し、取得したブロック番号とビット番号とに基づいてソース要素の接続ビット列を生成する。演算要素ビット列管理部170はソース要素の接続ビット列に基づいてブロックビット列を生成し、生成したブロックビット列と、取得されたブロック番号と、ソース要素を識別する演算要素番号とを接続ビット列テーブル230に登録する。
【選択図】図1

Description

本発明は、親子関係を持つ複数の演算要素を含んだ多階層計算式を管理するための技術に関するものである。
センサ値または販売データなどを階層別に集計する場合には、下位の計算式を組み合わせて上位の計算式を定義する。このような多階層の要素の組み合わせで表現される計算式を編集する場合、計算式が展開可能であるかどうか確認(整合性の確認)する必要があり、整合性確認するにあたり、関連する計算式に含まれる計算式要素(以下、演算要素と呼ぶ)を探索する必要がある。センサ値とは電力計、温度計、水流計などである。販売データとは売上げ、販売個数などである。階層とは組織、配置などである。
従来の階層構造の管理方法では、要素の親と子の対応表(親子関係)を管理することによって、関連する要素を巡回的に探索している(例えば、特許文献1)。また、親子関係の管理において、ルートの要素からのパスおよび順番を管理することによって、探索を効率化する方法も提案されている(例えば、特許文献2)。
従来の親子関係を管理する方法では、要素の数が大量になると、管理対象が増え、探索対象の深さおよび要素数が増加する。このため、親子関係の管理に膨大なデータが必要であり、かつ、探索に時間がかかってしまう。また、ルートの要素からのパスおよび順番を管理する方法はルートの要素が単一であるため、複数のルートを持つ階層構造の親子関係を管理することができない。また、計算式の更新時には、関係するパスを全て変更しなければならず、更新処理に時間がかかってしまう。
特開2009−176052号公報 国際公開第2009−066442号
本発明は、多階層計算式に用いられる複数の演算要素の親子関係を容易に管理できるようにすることを目的とする。
本発明の演算要素管理装置は、
演算要素を識別する演算要素番号と前記演算要素に割り当てるブロック番号と前記演算要素に割り当てるビット番号とを対応付ける演算要素管理テーブルと、前記演算要素番号と子の演算要素を特定するための接続ビット列から生成されるブロックビット列と前記ブロックビット列を識別するブロック番号とを対応付ける接続ビット列テーブルとを記憶するテーブル記憶部と、
入力計算式の左辺に含まれる演算要素であるソース要素と、前記入力計算式の右辺に含まれる演算要素であるターゲット要素とを取得する計算式要素取得部と、
前記ターゲット要素と同じ演算要素に対応付けられたブロック番号とビット番号とを前記演算要素管理テーブルから取得し、取得した前記ブロック番号と前記ビット番号とに基づいて前記ソース要素の前記接続ビット列を生成する演算要素管理部と、
前記ソース要素の前記接続ビット列に基づいて前記ブロックビット列を生成し、生成した前記ブロックビット列と、取得された前記ブロック番号と、前記ソース要素を識別する演算要素番号とを前記接続ビット列テーブルに登録する演算要素ビット列登録部とを備える。
本発明によれば、多階層計算式に用いられる複数の演算要素の親子関係を容易に管理することができる。
実施の形態1における多階層計算式管理装置100の機能構成図である。 実施の形態1における階層図161と接続ビット列162と到達ビット列163の一例を示す図である。 実施の形態1における演算要素ビット列管理部170の機能構成図である。 実施の形態1における計算式テーブル210の一例を示す図である。 実施の形態1における演算要素管理テーブル220の一例を示す図である。 実施の形態1における接続ビット列テーブル230の一例を示す図である。 実施の形態1における到達ビット列テーブル240の一例を示す図である。 実施の形態1における多階層計算式管理方法を示すフローチャートである。 実施の形態1における階層図161の一例を示す図である。 実施の形態1における整合性検証処理(S130)のフローチャートである。 実施の形態1における演算要素管理処理(S150)のフローチャートである。 実施の形態1における演算要素管理処理(S150)のフローチャートである。 実施の形態1における演算要素ビット列登録処理のフローチャートである。 実施の形態1における到達ビット列生成処理のフローチャートである。 実施の形態1における子孫要素番号取得処理のフローチャートである。 実施の形態1における親要素番号取得処理のフローチャートである。 実施の形態1における多階層計算式管理装置100のハードウェア構成の一例を示す図である。
実施の形態1.
多階層計算式に用いられる複数の演算要素の親子関係を容易に管理するための形態について説明する。
図1は、実施の形態1における多階層計算式管理装置100の機能構成図である。
実施の形態1における多階層計算式管理装置100の機能構成について、図1に基づいて説明する。
多階層計算式管理装置100(演算要素管理装置の一例)は、多階層計算式を管理する装置である。
多階層計算式は、親子関係を持つ複数の演算要素を用いた計算式である。
例えば、{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は、計算式入力部110と、計算式要素取得部120と、整合性検証部130と、計算式管理部140と、演算要素管理部150と、計算式出力部160とを備える。
さらに、多階層計算式管理装置100は、演算要素ビット列管理部170と、計算式記憶部190(テーブル記憶部の一例)とを備える。
計算式入力部110は、多階層計算式管理装置100に入力された多階層計算式を取得する。以下、入力された多階層計算式を入力計算式101という。
計算式要素取得部120は、入力計算式101から親の演算要素と子の演算要素とを取得する。以下、入力計算式101から取得される親の演算要素をソース要素といい、入力計算式101から取得される子の演算要素をターゲット要素という。
整合性検証部130は、入力計算式101が整合性がある多階層計算式であるか否かを判定する。
計算式管理部140は、整合性がある入力計算式101を計算式テーブル210に登録する。
演算要素管理部150は、ソース要素を演算要素管理テーブル220に登録する。
計算式出力部160は、登録された入力計算式101に関する情報を出力する。
演算要素ビット列管理部170は、演算要素管理テーブル220と接続ビット列テーブル230と到達ビット列テーブル240とを管理する。
演算要素ビット列管理部170の詳細については後述する。
計算式記憶部190は、多階層計算式管理装置100が使用、生成または入出力するデータを記憶する。
例えば、計算式記憶部190は、入力計算式101と、計算式テーブル210と、演算要素管理テーブル220と、接続ビット列テーブル230と、到達ビット列テーブル240とを記憶する。
計算式テーブル210は、多階層計算式を管理するためのテーブルである。
演算要素管理テーブル220は、演算要素を管理するためのテーブルである。
接続ビット列テーブル230は、接続ビット列を管理するためのテーブルである。接続ビット列は演算要素の子要素(子の演算要素)を特定するためのビット列である。
到達ビット列テーブル240は、到達ビット列を管理するためのテーブルである。到達ビット列は演算要素の子孫要素(子孫の演算要素)を特定するためのビット列である。
計算式管理部140、演算要素管理部150および演算要素ビット列管理部170はリレーショナルデータベースシステム(RDBMS)などのデータベース管理システムを用いて実現することができる。
図2は、実施の形態1における階層図161と接続ビット列162と到達ビット列163の一例を示す図である。
実施の形態1における階層図161と接続ビット列162と到達ビット列163の一例について、図2に基づいて説明する。
階層図161は、1番から8番の演算要素の親子関係を表している。例えば、階層図161は、1番の演算要素の子要素が2番の演算要素と3番の演算要素であることを表している。また、階層図161は、1番の演算要素の子孫要素が2番から8番の演算要素であることを表している。
階層図161が表す親子関係は、接続ビット列162および到達ビット列163で表すことができる。
接続ビット列162は、演算要素の子要素をビット値で示している。例えば、1番の演算要素の接続ビット列「01100000」において、2番目と3番目のビットのビット値が1である。つまり、この接続ビット列は1番の演算要素の子要素が2番と3番の演算要素であることを示している。
到達ビット列163は、演算要素の子孫要素をビット値で示している。例えば、1番の演算要素の到達ビット列「01111111」において、2番目から8番目のビットのビット値が1である。つまり、この到達ビット列は1番の演算要素の子孫要素が2番から8番の演算要素であることを示している。
図3は、実施の形態1における演算要素ビット列管理部170の機能構成図である。
実施の形態1における演算要素ビット列管理部170の機能構成について、図3に基づいて説明する。
演算要素ビット列管理部170は、演算要素ビット列登録部171と、到達ビット列生成部172と、子孫要素番号取得部173(子孫要素取得部の一例)と、親要素番号取得部174(親要素取得部の一例)とを備える。
演算要素ビット列登録部171は、入力計算式101に含まれるソース要素の子要素(ターゲット要素)を特定するための接続ビット列を接続ビット列テーブル230に登録する。また、演算要素ビット列登録部171は、ソース要素の子孫要素を特定するための到達ビット列を到達ビット列テーブル240に登録する。
到達ビット列生成部172は、ソース要素の到達ビット列を生成する。
子孫要素番号取得部173は、演算要素(ソース要素を含む)の子孫要素(子要素を含む)を識別する演算要素番号を接続ビット列テーブル230または到達ビット列テーブル240から取得する。
親要素番号取得部174は、演算要素(ソース要素を含む)の親要素を識別する演算要素番号を接続ビット列テーブル230から取得する。
図4は、実施の形態1における計算式テーブル210の一例を示す図である。
実施の形態1における計算式テーブル210の一例について、図4に基づいて説明する。
計算式テーブル210は、多階層計算式とソース要素番号とソース要素名とを対応付けるテーブルである。
ソース要素番号は、多階層計算式のソース要素を識別する番号である。
ソース要素名は、多階層計算式のソース要素を識別する名称である。
図5は、実施の形態1における演算要素管理テーブル220の一例を示す図である。
実施の形態1における演算要素管理テーブル220の一例について、図5に基づいて説明する。
演算要素管理テーブル220は、演算要素番号とブロック番号とビット番号とを対応付けるテーブルである。
演算要素番号は、演算要素を識別する番号である。
ブロック番号は、接続ビット列(または到達ビット列)を分割して生成される複数のブロックビット列のうち、当該演算要素に対応付けられるビットが含まれるブロックビット列を識別する番号である。
ビット番号は、当該ブロックビット列に含まれる複数のビットのうち、当該演算要素に対応付けられるビットを識別する番号である。
演算要素管理テーブル220は、接続ビット列(または到達ビット列)の1番目のブロックビット列の1番目のビット値を、1番の演算要素に対応付けている(2行目を参照)。
また、演算要素管理テーブル220は、接続ビット列(ま多は到達ビット列)の2番目のブロックビット列の1番目のビット値を、10001番の演算要素に対応付けている(7行目を参照)。
図6は、実施の形態1における接続ビット列テーブル230の一例を示す図である。
実施の形態1における接続ビット列テーブル230の一例について、図6に基づいて説明する。
接続ビット列テーブル230は、演算要素番号とブロック番号と反転フラグとブロックビット列とを対応付けるテーブルである。
演算要素番号は、演算要素を識別する番号である。
ブロック番号は、ブロックビット列を識別する番号である。
反転フラグは、ブロックビット列に含まれる各ビット値が反転されているか否かを表すフラグ値を示す。以下、ブロックビット列に含まれる各ビット値が反転されていることを意味するフラグ値を反転フラグ値という。また、ブロックビット列に含まれる各ビット値が反転されていないことを意味するフラグ値を非反転フラグ値という。実施の形態1において反転フラグ値は1であり、非反転フラグ値は0である。但し、反転フラグ値が0であり、非反転フラグ値が1であっても構わない。
ブロックビット列は、接続ビット列を構成する複数のブロックビット列のうち、ブロック番号によって識別されるブロックビット列を示す。但し、反転フラグが反転フラグ値を示す場合、ブロックビット列に含まれる各ビット値は反転されている。また、最終ビットを含む後半部分の各ビット値が0である場合、その後半部分の各ビット値は省略される。但し、ビット値が1である場合にビット値を省略しても構わない。各なお、接続ビット列テーブル230のブロックビット列のデータサイズは可変長である。
接続ビット列に含まれるブロックビット列の数(ブロック数)がNであり、各ブロックビット列のサイズ(ブロック長)が8ビットである場合、接続ビット列テーブル230は以下のような接続ビット列を示している。
1番の演算要素の接続ビット列に含まれる1番目のブロックビット列の先頭の3ビットは「011」である。
また、1番目のブロックビット列の後半の5ビットは「00000」である。この5ビットはビット値が0であるため省略されている。
さらに、1番目の演算要素の接続ビット列に含まれる2番目からN番目のブロックビット列のビット値は0である。これらのブロックビット列はビット値が0であるため省略されている。
つまり、1番目の演算要素の接続ビット列は「01100000・・・0」である。
同様に、2番目の演算要素の接続ビット列は「00011000・・・0」である。
3番目の演算要素の接続ビット列に含まれる1番目のブロックビット列の先頭の5ビットは「11111」を反転した「00000」である。
また、1番目のブロックビット列の後半の3ビットは「111」である。この3ビットは反転後のビット値が0であるため省略されている。
さらに、3番目の演算要素の接続ビット列に含まれる2番目からN番目のブロックビット列のビット値は0である。これらのブロックビット列はビット列が0であるため省略されている。
つまり、3番目の演算要素の接続ビット列は「000001110・・・0」である。
図7は、実施の形態1における到達ビット列テーブル240の一例を示す図である。
図7に示すように到達ビット列テーブル240は、接続ビット列テーブル230(図6参照)と同様の構成である。
但し、到達ビット列テーブル240のブロックビット列は、到達ビット列を構成する複数のブロックビット列のうち、ブロック番号によって識別されるブロックビット列を示す。
到達ビット列に含まれるブロックビット列の数(ブロック数)がNであり、各ブロックビット列のサイズ(ブロック長)が8ビットである場合、到達ビット列テーブル240は以下のような到達ビット列を示している。
1番目の演算要素の到達ビット列は「011111110・・・0」である。
2番目の演算要素の到達ビット列は「000110000・・・0」である。
3番目の演算要素の到達ビット列は「000001110・・・0」である。
図8は、実施の形態1における多階層計算式管理方法を示すフローチャートである。
実施の形態1における多階層計算式管理方法について、図8に基づいて説明する。
S110において、管理者は新たに管理する多階層計算式を多階層計算式管理装置100に入力する。
そして、多階層計算式管理装置100の計算式入力部110は、入力された多階層計算式を入力計算式101として取得する。
S110の後、処理はS120に進む。
S120において、計算式要素取得部120は、ソース要素を識別するソース要素名と、ターゲット要素を識別するターゲット要素名とを入力計算式101から取得する。
入力計算式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に進む。
S130において、整合性検証部130は、入力計算式101に整合性があるか否かを判定する。整合性がある入力計算式101は正しい多階層計算式であり、整合性がない入力計算式101は正しくない多階層計算式である。
ソース要素およびソース要素の祖先要素(親を含む祖先の演算要素)がターゲット要素の子孫要素(子を含む子孫の演算要素)に含まれなければ、入力計算式101に整合性がある。
または、ターゲット要素およびターゲット要素の子孫要素がソース要素の祖先要素に含まれなければ、入力計算式101に整合性がある。
S130の後、処理はS139に進む。
図9は、実施の形態1における階層図161の一例を示す図である。
図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に整合性がある。
図10は、実施の形態1における整合性検証処理(S130)のフローチャートである。
実施の形態1における整合性検証処理(S130)について、図10に基づいて説明する。
S131において、整合性検証部130は、S120(図8参照)で入力計算式101からターゲット要素名が取得されたか否かを判定する。
ターゲット要素名が取得された場合(YES)、処理はS132に進む。
ターゲット要素名が取得されなかった場合(NO)、整合性検証処理(S130)は終了する。この場合、入力計算式101に整合性がある。
S132において、整合性検証部130は、S120で入力計算式101から取得されたソース要素名と同じ名称に対応付けられたソース要素番号を計算式テーブル210(図4参照)から取得する。このとき、計算式管理部140が整合性検証部130の代わりに計算式テーブル210からソース要素番号を取得しても構わない。
ソース要素名と同じ名称が計算式テーブル210に登録されていない場合、取得されるソース要素番号は無い。
S132の後、処理はS133に進む。
S133において、整合性検証部130は、入力計算式101から取得されたターゲット要素名のうち未選択のターゲット要素名を一つ選択する。
以下、S132で選択されたターゲット要素名を単にターゲット要素名という。
S133の後、処理はS134に進む。
S134において、整合性検証部130は、計算式テーブル210(図4参照)にターゲット要素名と名称が同じであるソース要素名が登録されているか否かを判定する。このとき、計算式管理部140が整合性検証部130の代わりに計算式テーブル210を参照してもよい。
ターゲット要素名と名称が同じであるソース要素名が登録されている場合(YES)、処理はS135に進む。
ターゲット要素名と名称が同じであるソース要素名が登録されていない場合(NO)、整合性検証処理(S130)は終了する。この場合、不明なターゲット要素が入力計算式101に含まれるため、入力計算式101に整合性がない。
S135において、整合性検証部130は、ターゲット要素の各子孫要素の演算要素番号を子孫要素番号取得部173から取得する。子孫要素番号取得部173は、到達ビット列テーブル240(図7参照)からターゲット要素の各子孫要素の演算要素番号を取得する。子孫要素番号取得部173が子孫要素の演算要素番号を取得する子孫要素番号取得処理については後述する。
以下、S135で取得される演算要素番号の集合をターゲット要素の子孫要素集合という。
S135の後、処理はS136に進む。
S136において、整合性検証部130は、ターゲット要素の子孫要素集合にソース要素番号が含まれるか否かを判定する。
ターゲット要素の子孫要素集合にソース要素番号が含まれる場合(YES)、整合性検証処理(S130)は終了する。この場合、入力計算式101に整合性がない。
ターゲット要素の子孫要素集合にソース要素番号が含まれない場合(NO)、処理はS137に進む。
S137において、整合性検証部130は、未選択であるターゲット要素番号があるか否かを判定する。
未選択であるターゲット要素番号がある場合(YES)、処理はS133に戻る。
未選択であるターゲット要素番号がない場合(NO)、整合性検証処理(S130)は終了する。
図8に戻り、S139から説明を続ける。
S139において、整合性検証部130は、S130の検証結果に基づいて、入力計算式101に整合性があるか否かを判定する。
入力計算式101に整合性がある場合(YES)、処理はS140に進む。
入力計算式101に整合性がない場合(NO)、計算式出力部160は入力計算式101に整合性がないことを示すエラーメッセージを表示し、多階層計算式管理方法の処理は終了する。
S140において、計算式管理部140は、入力計算式101を計算式テーブル210(図4参照)に以下のように登録する。
入力計算式101のソース要素名が計算式テーブル210に登録されている場合、計算式管理部140は、多階層計算式を入力計算式101に更新する。
入力計算式101のソース要素名が計算式テーブル210に登録されていない場合、計算式管理部140は、計算式テーブル210に新たなレコードを生成し、ソース要素番号と入力計算式101のソース要素名と入力計算式101(多階層計算式)とを新たなレコードに設定する。ソース要素番号は、計算式テーブル210に含まれる最大のソース要素番号に1を加算した番号である。
S140の後、処理はS150に進む。
S150において、演算要素管理部150は、入力計算式101に基づいて、演算要素管理テーブル220と接続ビット列テーブル230と到達ビット列テーブル240とを更新する。
演算要素管理処理(S150)については後述する。
S150の後、処理はS160に進む。
S160において、計算式出力部160は、登録された入力計算式101に関する情報を出力する。
例えば、計算式出力部160は、入力計算式101と入力計算式101が登録されたことを示す登録メッセージとを表示する。また、計算式出力部160は、演算要素管理テーブル220と接続ビット列テーブル230と到達ビット列テーブル240とに基づいて、入力計算式101のソース要素およびターゲット要素に関する階層図161(図2、図9参照)を生成する。そして、計算式出力部160は階層図161を表示する。
S160の後、多階層計算式管理方法の処理は終了する。
図11、図12は、実施の形態1における演算要素管理処理(S150)のフローチャートである。
実施の形態1における演算要素管理処理(S150)について、図11および図12に基づいて説明する。
S1501(図11参照)において、演算要素管理部150は、入力計算式101に含まれるソース要素名に対応付けられたソース要素番号を、計算式テーブル210(図4参照)から取得する。このとき、計算式管理部140が、演算要素管理部150の代わりにソース要素番号を取得してもよい。
演算要素管理部150は、取得したソース要素番号を演算要素管理テーブル220(図5参照)に登録する。但し、ソース要素番号と同じ演算要素番号が演算要素管理テーブル220に登録済みである場合、演算要素管理部150はソース要素番号を新たに登録しなくてよい。
ソース要素番号を登録する場合、演算要素管理部150は、演算要素管理テーブル220に新たなレコードを生成し、ソース要素番号(演算要素番号)とブロック番号とビット番号とを新たなレコードに設定する。
設定するビット番号は、演算要素管理テーブル220に含まれる最大の演算要素番号に対応付けられているビット番号に1を加算した番号である。但し、1を加算した番号がブロック長を超えた場合、設定するビット番号は1である。
設定するブロック番号は、演算要素管理テーブル220に含まれる最大のブロック番号と同じ番号である。但し、設定するビット番号が1である場合、設定するブロック番号は最大のブロック番号に1を加算した番号である。
S1501の後、処理はS1510に進む。
S1510(図11参照)において、演算要素管理部150は、入力計算式101に含まれるターゲット要素名に対応付けられたターゲット要素番号を、計算式テーブル210(図4参照)から取得する。このとき、計算式管理部140が、演算要素管理部150の代わりにソース要素番号とターゲット要素番号とを取得してもよい。
演算要素管理部150は、取得したターゲット要素番号に対応付けられたブロック番号とビット番号とを、演算要素管理テーブル220から取得する。
演算要素管理部150は、取得したブロック番号とビット番号とを用いて、ソース要素の接続ビット列を生成する。
例えば、ターゲット要素が1つであり、ターゲット要素のブロック番号が1であり、ターゲット要素のビット番号が2である場合、ソース要素の接続ビット列は「010・・・0」である。
S1510の後、処理はS1511に進む。
S1511において、演算要素管理部150は、演算要素ビット列登録部171を用いて、ソース要素の接続ビット列を接続ビット列テーブル230に登録する。演算要素ビット列登録部171が接続ビット列を登録する演算要素ビット列登録処理については後述する。
S1511の後、処理はS1512に進む。
S1512において、演算要素管理部150は、S1520(図12参照)以降の処理で用いる更新要素集合にソース要素番号を追加する。
以下、更新要素集合に含まれる演算要素番号(ソース要素番号を含む)を更新要素番号といい、更新要素番号によって識別される演算要素を更新要素という。
S1512の後、処理はS1520に進む。
S1520(図12参照)において、演算要素管理部150は、更新要素集合から未選択の更新要素番号を一つ選択する。
S1520の後、処理はS1521に進む。
S1521において、演算要素管理部150は、子孫要素番号取得部173を用いて、更新要素の各子要素の演算要素番号を取得する。子孫要素番号取得部173は、更新要素の各子要素の演算要素番号を接続ビット列テーブル230(図6参照)から取得する。子孫要素番号取得部173が子要素の演算要素番号を取得する子孫要素番号取得処理については後述する。
以下、S1521で取得される演算要素番号の集合を更新要素の子要素集合という。
S1521の後、処理はS1522に進む。
S1522において、演算要素管理部150は、到達ビット列生成部172を用いて、更新要素の到達ビット列を生成する。到達ビット列生成部172は、更新要素の子要素集合と到達ビット列テーブル240(図7参照)とに基づいて、更新要素の到達ビット列を生成する。到達ビット列生成部172が到達ビット列を生成する到達ビット列生成処理については後述する。
S1522の後、処理はS1523に進む。
S1523において、演算要素管理部150は、演算要素ビット列登録部171を用いて、更新要素の到達ビット列を到達ビット列テーブル240(図7参照)に登録する。演算要素ビット列登録部171が到達ビット列を登録する演算要素ビット列登録処理については後述する。
S1523の後、処理はS1530に進む。
S1530において、演算要素管理部150は、親要素番号取得部174を用いて、更新要素の各親要素の演算要素番号を取得する。親要素番号取得部174は、更新要素の各親要素の演算要素番号を接続ビット列テーブル230(図6参照)から取得する。親要素番号取得部174が親要素の演算要素番号を取得する親要素番号取得処理については後述する。
以下、S1530で取得される演算要素番号の集合を更新要素の親要素集合という。
S1530の後、処理はS1531に進む。
S1531において、演算要素管理部150は、更新要素の親要素集合を更新要素集合に追加する。
S1531の後、処理はS1532に進む。
S1532において、演算要素管理部150は、S1520で選択していない未選択の更新要素番号があるか否かを判定する。
未選択の更新要素番号がある場合(YES)、処理はS1520に戻る。
未選択の更新要素番号がない場合(NO)、演算要素管理処理(S150)は終了する。
図13は、実施の形態1における演算要素ビット列登録処理のフローチャートである。
実施の形態1における演算要素ビット列登録処理について、図13に基づいて説明する。
演算要素ビット列登録処理はS1511(図11参照)とS1523(図12参照)で実行される。
S1511ではソース要素の接続ビット列が接続ビット列テーブル230に登録され、S1523では更新要素の到達ビット列が到達ビット列テーブル240に登録される。
図13において、S1511のソース要素またはS1523の更新要素を対象要素といい、S1511の接続ビット列またはS1523の到達ビット列を対象ビット列という。また、S1511の接続ビット列テーブル230またはS1523の到達ビット列テーブル240を対象テーブルという。
S210において、演算要素ビット列登録部171は、対象ビット列のブロック長に基づいて、対象ビット列をブロック単位に分割する。
例えば、対象ビット列が16ビットのビット列「0010111001111111」であり、対象ビット列のブロック長が8ビットである場合、演算要素ビット列登録部171は対象ビット列を2個のブロックビット列「00101110」「01111111」に分割する。
S210の後、処理はS211に進む。
S211において、演算要素ビット列登録部171は、S210で得られた複数のブロックビット列から未選択のブロックビット列を一つ選択する。
以下、S211で選択されるブロックビット列を単にブロックビット列という。
S211の後、処理はS212に進む。
S212において、演算要素ビット列登録部171は、ブロックビット列の最終ビットのビット値が1であるか否かを判定する。
最終ビットのビット値が1である場合、演算要素ビット列登録部171はブロックビット列の各ビット値を反転する。
最終ビットのビット値が0である場合、演算要素ビット列登録部171はブロックビット列の各ビット値を反転しない。
これにより、ブロックビット列の最終ビットのビット値は0になる。
例えば、ブロックビット列「00101110」の最終ビットのビット値は0であるため、演算要素ビット列登録部171は、ブロックビット列の各ビット値を反転しない。
また、ブロックビット列「01111111」の最終ビットのビット値は1であるため、演算要素ビット列登録部171はブロックビット列の各ビット値を反転する。各ビット値を反転後のブロックビット列は「10000000」である。
S212の後、処理はS213に進む。
S213において、演算要素ビット列登録部171は、ブロックビット列のうちのビット値が0(削除ビット値の一例)である後半部分(最終ビットを含む)をトリムする。つまり、演算要素ビット列登録部171は、ビット値が0である後半部分を削除する。但し、ビット値が1である後半部分を削除しても構わない。
例えば、演算要素ビット列登録部171は、ブロックビット列「00101110」の最終ビットをトリムする。トリム後のブロックビット列は「0010111」である。
また、演算要素ビット列登録部171は、ブロックビット列「01111111」の後半7ビットをトリムする。トリム後のブロックビット列は「1」である。
S213の後、処理はS214に進む。
S214において、演算要素ビット列登録部171は、対象要素の演算番号と、ブロックビット列のブロック番号と、ビット値の反転の有無を示す反転フラグと、ブロックビット列とを対象テーブルに登録する。対象テーブルは、接続ビット列テーブル230(図6参照)または到達ビット列テーブル240(図7参照)である。
S214の後、処理はS215に進む。
S215において、演算要素ビット列登録部171は、S211で選択していない未選択のブロックビット列があるか否かを判定する。
未選択のブロックビット列がある場合(YES)、処理はS211に戻る。
未選択のブロックビット列がNい場合(NO)、演算要素ビット列登録処理は終了する。
図14は、実施の形態1における到達ビット列生成処理のフローチャートである。
実施の形態1における到達ビット列生成処理について、図14に基づいて説明する。
到達ビット列生成処理はS1522(図12参照)で実行される。S1522では、更新要素の子要素集合に基づいて更新要素の到達ビット列が生成される。
図14において、更新要素の子要素集合を対象要素集合といい、更新要素の子要素を対象要素といい、対象要素の演算要素番号を対象要素番号という。
S220において、到達ビット列生成部172は、対象要素集合から未選択の対象要素番号を一つ選択する。
以下、S220で選択される対象要素番号を単に対象要素番号という。また、S220で選択される対象要素番号によって識別される対象要素を単に対象要素という。
S220の後、処理はS221に進む。
S221において、到達ビット列生成部172は、対象要素番号と同じ演算要素番号に対応付けられた全てのブロックビット列を到達ビット列テーブル240(図7参照)から取得する。また、到達ビット列生成部172は、取得するブロックビット列毎にブロックビット列に対応付けられたブロック番号と反転フラグのフラグ値とを到達ビット列テーブル240から取得する。
S221の後、処理はS222に進む。
S222において、到達ビット列生成部172は、S221で取得された各ブロックビット列のビット値を以下のように復元する。
到達ビット列生成部172は、ブロックビット列毎にブロックビット列がブロック長と同じサイズになるようにブロックビット列の末尾にビット値が0であるビットを付加する。例えば、ブロック長が8ビットであり、ブロックビット列が「00011」である場合、到達ビット列生成部172はビット値が0である3ビットを付加してブロックビット列を「00011000」にする。
到達ビット列生成部172は、ビット値が判定されているブロックビット列のビット値を判定する。このとき、到達ビット列生成部172はブロックビット列に対応付けられた反転フラグに基づいてビット値が判定しているか否かを判定する。
S222の後、処理はS223に進む。
S223において、到達ビット列生成部172は、S220で選択していない未選択の対象要素があるか否かを判定する。
未選択の対象要素がある場合(YES)、処理はS220に戻る。
未選択の対象要素がない場合(NO)、処理はS224に進む。
S224において、到達ビット列生成部172は、各対象要素のブロックビット列をブロック番号毎にグルーピングする。以下、グルーピングされた1つ以上のブロックビット列をブロックビット列グループという。
例えば、対象要素集合に含まれる対象要素が第一の演算要素および第二の演算要素である場合、到達ビット列生成部172は、第一の演算要素のn番目のブロックビット列と第二の演算要素のn番目のブロックビット列とをグルーピングする。
S224の後、処理はS225に進む。
S225において、到達ビット列生成部172は、ブロック番号毎にブロックビット列グループの論理和を算出する。
例えば、第一のブロックビット列「00011000」と第二のブロックビット列「00000111」がブロックビット列グループを構成する場合、ブロックビット列グループの論理和は「00011111」である。
S225の後、処理はS226に進む。
S226において、到達ビット列生成部172は、ブロック番号毎のブロックビット列グループの論理和をブロック番号順に並べる。ブロック番号順に並べたブロックビット列グループの論理和が対象要素の到達ビット列である。
S226の後、到達ビット列生成処理は終了する。
到達ビット列テーブル240がリレーショナルデータベースシステム(RDBMS)を用いて管理されている場合、到達ビット列生成処理(図14参照)のS220からS225は、リレーショナルデータベースシステムに以下のようなクエリを発行することによって実行されても構わない。
SELECT bit_or(ビット列)
FROM
(SELECT 演算要素ID,ブロック番号,到達可能ビット列
FROM 到達可能関係記憶部
WHERE ビット値フラグ = 1
)AS T1,
(SELECT 演算要素ID,ブロック番号,到達可能ビット列 # B‘111111111’
FROM 到達可能関係記憶部
WHERE ビット値フラグ = 0
)AS T2
GROUP BY ブロック番号
図15は、実施の形態1における子孫要素番号取得処理のフローチャートである。
実施の形態1における子孫要素番号取得処理について、図15に基づいて説明する。
子孫要素番号取得処理はS135(図10参照)およびS1521(図12参照)で実行される。S135ではターゲット要素の子孫要素集合が取得され、S1521では更新要素の子要素集合が取得される。
図15において、S135のターゲット要素またはS1521の更新要素を対象要素といい、対象要素を識別する演算要素番号を対象要素番号という。
S230において、子孫要素番号取得部173は、対象要素のブロックビット列とブロック番号と反転フラグのフラグ値とを、接続ビット列テーブル230(図6参照)または到達ビット列テーブル240(図7参照)から取得する。対象要素番号と同じ演算要素番号に対応付けられたブロックビット列、ブロック番号および反転フラグのフラグ値が対象要素のブロックビット列、ブロック番号および反転フラグのフラグ値である。
例えば、S135で子孫要素集合を取得する場合、子孫要素番号取得部173は、対象要素のブロックビット列などを到達ビット列テーブル240(図7参照)から取得する。
また、S1521で子要素集合を取得する場合、子孫要素番号取得部173は、対象要素のブロックビット列などを接続ビット列テーブル230(図6参照)から取得する。
S230の後、処理はS231に進む。
S231において、子孫要素番号取得部173は、対象要素のブロックビット列のうち、ビット値が反転されているブロックビット列のビット値を反転する。ビット値が反転されているブロックビット列は、反転フラグ値を示す反転フラグに対応付けられたブロックビット列である。
S231の後、処理はS232に進む。
S232において、子孫要素番号取得部173は、対象要素のブロックビット列毎にブロックビット列から子孫要素のビット番号を取得し、子孫要素のブロック番号を取得する。
ビット値が1であるビットのビット番号が子孫要素のビット番号である。また、子孫要素のビット番号が取得されたブロックビット列のブロック番号が子要素のブロック番号である。
S232の後、処理はS233に進む。
S233において、子孫要素番号取得部173は、各子孫要素のブロック番号とビット番号とに基づいて、各子孫要素の演算要素番号を以下のように算出する。
演算要素番号=(ブロック番号−1)×ブロック長+ビット番号
例えば、ブロック番号が2であり、ブロック長が8であり、ビット番号が3である場合、対象要素の子孫要素の演算要素番号は11(=(2−1)×8+3)である。
S233で算出される1つ以上の演算要素番号が子孫要素集合または子要素集合である。
S233の後、子孫要素番号取得処理は終了する。
図16は、実施の形態1における親要素番号取得処理のフローチャートである。
実施の形態1における親要素番号取得処理について、図16に基づいて説明する。
親要素番号取得処理はS1530(図12参照)で実行される。S1530では更新要素の親要素集合が取得される。
図16において、S1530の更新要素を対象要素といい、対象要素を識別する演算要素番号を対象要素番号という。
S240において、親要素番号取得部174は、演算要素管理テーブル220(図5参照)から対象要素のブロック番号およびビット番号を取得する。対象要素番号と同じ演算要素番号に対応付けられたブロックブロック番号およびビット番号が、対象要素のブロック番号およびビット番号である。このとき、演算要素管理部150が親要素番号取得部174の代わりに対象要素のブロック番号およびビット番号を取得してもよい。
S240の後、処理はS241に進む。
S241において、親要素番号取得部174は、演算要素毎に対象要素のブロック番号と同じブロック番号に対応付けられたブロックビット列を接続ビット列テーブル230(図6参照)から取得する。
S241の後、処理はS242に進む。
S242において、親要素番号取得部174は、各演算要素のブロックビット列のうち、ビット値が反転されているブロックビット列のビット値を反転する。ビット値が反転されているブロックビット列は、反転フラグ値を示す反転フラグに対応付けられたブロックビット列である。
S242の後、処理はS243に進む。
S243において、親要素番号取得部174は、各演算要素のブロックビット列のうち、対象要素のビット番号によって識別されるビットのビット値が1であるブロックビット列を選択する。
S243の後、処理はS244に進む。
S244において、親要素番号取得部174は、S243で選択されたブロックビット列に対応付けられた演算要素番号を接続ビット列テーブル230から取得する。
S244で取得される演算要素番号が対象要素の親要素番号である。
S244の後、親要素番号取得処理は終了する。
S241からS244は、各対象要素のブロックビット列に対して正規表現を用いて実現することができる。例えば、Postgresのデータベースを用いる場合のlike式には‘_1____%’のように表記する。この例では、2ビット目が1であるブロックビット列を選択する正規表現を示している。そして、このような正規表現を適用してデータベースに問い合わせ、結果として演算要素番号を取得する。
図17は、実施の形態1における多階層計算式管理装置100のハードウェア構成の一例を示す図である。
実施の形態1における多階層計算式管理装置100のハードウェア構成の一例について、図17に基づいて説明する。但し、多階層計算式管理装置100のハードウェア構成は図17に示す構成と異なる構成であってもよい。
多階層計算式管理装置100は、演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905を備えるコンピュータである。
演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905はバス909に接続している。
演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリまたはハードディスク装置である。
主記憶装置903は、例えば、RAM(Random Access Memory)である。
通信装置904は、有線または無線でインターネット、LAN(ローカルエリアネットワーク)、電話回線網またはその他のネットワークを介して通信を行う。
入出力装置905は、例えば、マウス、キーボード、ディスプレイ装置である。
プログラムは、通常は補助記憶装置902に記憶されており、主記憶装置903にロードされ、演算装置901に読み込まれ、演算装置901によって実行される。
例えば、オペレーティングシステム(OS)が補助記憶装置902に記憶される。また、「〜部」として説明している機能を実現するプログラムが補助記憶装置902に記憶される。そして、OSおよび「〜部」として説明している機能を実現するプログラムは主記憶装置903にロードされ、演算装置901によって実行される。「〜部」は「〜処理」「〜工程」と読み替えることができる。
「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等の処理の結果を示す情報、データ、ファイル、信号値または変数値が主記憶装置903または補助記憶装置902に記憶される。また、多階層計算式管理装置100が使用するその他のデータが主記憶装置903または補助記憶装置902に記憶される。
実施の形態1において、例えば、以下のような多階層計算式管理装置100について説明した。
多階層計算式管理装置100は、整合性の検証を短時間で実行するために必要な到達可能関係および接続関係をブロック化したビット列を用いて管理している。さらに、多階層計算式管理装置100は、必要な範囲のビット列に対してビット列を反転およびトリムしている。さらに、多階層計算式管理装置100は、計算式が修正された場合でも、変更の影響が無い下位の到達可能関係を用いた単純なビット列の論理演算によって、到達可能関係を更新する。
実施の形態1は、例えば、以下のような効果を奏する。
計算式が多階層、かつ、大規模になった場合でも、多階層計算式管理装置100はデータ量を削減し、演算の関係性を管理することができる。また、多階層計算式管理装置100は、関係性をブロック化したビット列を用いて管理しているので、到達可能関係または接続関係を検索し、更新箇所を限定し、整合性検証および更新にかかる時間を短縮することができる。
また、多階層計算式管理装置100は、ビット演算の組み合わせによって到達可能行列の検索および更新を行うため、高速に演算することができる。
実施の形態1は、多階層計算式管理装置100の形態の一例である。
つまり、多階層計算式管理装置100は、実施の形態1で説明した構成要素の一部を備えなくても構わない。また、多階層計算式管理装置100は、実施の形態1で説明していない構成要素を備えても構わない。
実施の形態1に係る方法およびプログラムは、実施の形態1においてフローチャート等を用いて説明した処理手順と一部異なる処理手順で実現されても構わない。
100 多階層計算式管理装置、101 入力計算式、110 計算式入力部、120 計算式要素取得部、130 整合性検証部、140 計算式管理部、150 演算要素管理部、160 計算式出力部、170 演算要素ビット列管理部、171 演算要素ビット列登録部、172 到達ビット列生成部、173 子孫要素番号取得部、174 親要素番号取得部、190 計算式記憶部、210 計算式テーブル、220 演算要素管理テーブル、230 接続ビット列テーブル、240 到達ビット列テーブル、161 階層図、162 接続ビット列、163 到達ビット列、901 演算装置、902 補助記憶装置、903 主記憶装置、904 通信装置、905 入出力装置、909 バス。

Claims (7)

  1. 演算要素を識別する演算要素番号と前記演算要素に割り当てるブロック番号と前記演算要素に割り当てるビット番号とを対応付ける演算要素管理テーブルと、前記演算要素番号と子の演算要素を特定するための接続ビット列から生成されるブロックビット列と前記ブロックビット列を識別するブロック番号とを対応付ける接続ビット列テーブルとを記憶するテーブル記憶部と、
    入力計算式の左辺に含まれる演算要素であるソース要素と、前記入力計算式の右辺に含まれる演算要素であるターゲット要素とを取得する計算式要素取得部と、
    前記ターゲット要素と同じ演算要素に対応付けられたブロック番号とビット番号とを前記演算要素管理テーブルから取得し、取得した前記ブロック番号と前記ビット番号とに基づいて前記ソース要素の前記接続ビット列を生成する演算要素管理部と、
    前記ソース要素の前記接続ビット列に基づいて前記ブロックビット列を生成し、生成した前記ブロックビット列と、取得された前記ブロック番号と、前記ソース要素を識別する演算要素番号とを前記接続ビット列テーブルに登録する演算要素ビット列登録部と
    を備えることを特徴とする演算要素管理装置。
  2. 前記演算要素ビット列登録部は、
    前記ソース要素の前記接続ビット列を分割して暫定のブロックビット列を生成し、前記暫定のブロックビット列の後半部分のビット値が削除ビット値であれば前記暫定のブロックビット列から前記後半部分を削除することによって前記ブロックビット列を生成する
    ことを特徴とする請求項1記載の演算要素管理装置。
  3. 前記演算要素ビット列登録部は、
    前記暫定のブロックビット列の後半部分のビット値が削除ビット値でなければ前記暫定のブロックビット列のビット値を反転し、反転後の前記暫定のブロックビット列から前記後半部分を削除することによって前記ブロックビット列を生成する
    ことを特徴とする請求項2記載の演算要素管理装置。
  4. 前記演算要素管理装置は子孫要素取得部と到達ビット列生成部とを備え、
    前記テーブル記憶部は、前記演算要素番号と子孫の演算要素を特定するための到達ビット列から生成されるブロックビット列と前記ブロックビット列を識別するブロック番号とを対応付ける到達ビット列テーブルを記憶し、
    前記子孫要素取得部は、前記接続ビット列テーブルから前記ソース要素の前記ブロックビット列を取得し、取得した前記ブロックビット列に基づいて前記ソース要素の子の演算要素を識別する子要素番号を算出し、
    前記到達ビット列生成部は、前記到達ビット列テーブルから前記子要素番号と同じ演算要素番号に対応付けられた前記ブロックビット列を取得し、取得した前記ブロックビット列に基づいて前記ソース要素の前記到達ビット列を生成し、
    前記演算要素ビット列登録部は、前記到達ビット列テーブルに登録するブロックビット列を前記ソース要素の前記到達ビット列に基づいて生成し、生成した前記ブロックビット列と、生成した前記ブロックビット列を識別するブロック番号と、前記ソース要素を識別する前記演算要素番号とを前記到達ビット列テーブルに登録する
    ことを特徴とする請求項1から請求項3のいずれかに記載の演算要素管理装置。
  5. 前記演算要素管理装置は整合性検証部と計算式管理部と計算式記憶部とを備え、
    前記子孫要素取得部は、前記到達ビット列テーブルから前記ソース要素の前記ブロックビット列を取得し、取得した前記ソース要素の前記ブロックビット列に基づいて前記ソース要素の子孫の演算要素を識別する子孫要素番号を算出し、
    前記整合性検証部は、前記子孫要素番号に基づいて前記入力計算式が正しい計算式であるか否かを判定し、
    前記計算式管理部は、前記入力計算式が正しい計算式であると判定された場合に前記入力計算式を前記計算式記憶部に登録する
    ことを特徴とする請求項4に記載の演算要素管理装置。
  6. 前記整合性検証部は、前記子孫要素番号によって識別される前記演算要素が前記ソース要素である場合に前記入力計算式が正しい計算式でないと判定する
    ことを特徴する請求項5に記載の演算要素管理装置。
  7. 演算要素管理テーブルと接続ビット列テーブルとを用いる演算要素管理プログラムであって、
    前記演算要素管理テーブルは、演算要素を識別する演算要素番号と前記演算要素に割り当てるブロック番号と前記演算要素に割り当てるビット番号とを対応付けるテーブルであり、
    前記接続ビット列テーブルは、前記演算要素番号と子の演算要素を特定するための接続ビット列から生成されるブロックビット列と前記ブロックビット列を識別するブロック番号とを対応付けるテーブルであり、
    入力計算式の左辺に含まれる演算要素であるソース要素と、前記入力計算式の右辺に含まれる演算要素であるターゲット要素とを取得する計算式要素取得処理と、
    前記ターゲット要素と同じ演算要素に対応付けられたブロック番号とビット番号とを前記演算要素管理テーブルから取得し、取得した前記ブロック番号と前記ビット番号とに基づいて前記ソース要素の前記接続ビット列を生成する演算要素管理処理と、
    前記ソース要素の前記接続ビット列に基づいて前記ブロックビット列を生成し、生成した前記ブロックビット列と、取得された前記ブロック番号と、前記ソース要素を識別する演算要素番号とを前記接続ビット列テーブルに登録する演算要素ビット列登録処理と
    をコンピュータに実行させるための演算要素管理プログラム。
JP2013251700A 2013-12-05 2013-12-05 演算要素管理装置および演算要素管理プログラム Expired - Fee Related JP6214366B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 環境情報集計装置、環境情報集計方法および環境情報集計プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
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