(57)【要約】  多数の異なる入力を持つ処理ブロックに対して、多数の入力の取りうる値の総組み合わせ数が非常に多くなることで再利用性が低いという課題を解決する。処理セット選択部は、入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、入力群より少ない組み合わせ数の新入力群と新入力群に対する新処理ブロックとを作る。再利用実行部は、新入力群に対して演算する新処理ブロックと新処理ブロックが出力する出力群とに対して、新入力群と出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ新処理ブロックを実行し、紐付け結果に登録する。
2017204139.tif 000002
【特許請求の範囲】
【請求項１】
入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、前記入力群より少ない組み合わせ数の新入力群と前記新入力群に対する新処理ブロックとを作る処理セット選択部と、
前記新入力群に対して演算する前記新処理ブロックと前記新処理ブロックが出力する出力群とに対して、前記新入力群と出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら前記紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ前記新処理ブロックを実行し、前記紐付け結果に登録する再利用実行部と、
を有するデータ処理装置。
【請求項２】
前記処理セット選択部は、多数の入力群と処理ブロックと出力とで構成される処理セットを列挙し、比較対象すべき処理セットをグループ化し、各グループ内で再利用指標値が最大の処理セットを選択し、グループ間で再利用指標値を最大化する共通処理セットを選択し、
前記再利用実行部は、前記新入力群の値の組み合わせに対する出力を入出力テーブルとして用意し、前記入出力テーブルの中に新入力群の値の組み合わせと全て同じ値であるものがあるかを判定し、前記判定で真と判定された場合には、該新入力群の値の組み合わせに対する出力を前記入出力テーブルから引いて該新処理ブロックの出力とし、前記判定で偽と判定された場合には、前記新処理ブロックを実行して出力とするとともに、前記新入力群の値の組み合わせと該出力とを前記入出力テーブルに登録する、
請求項１に記載のデータ処理装置。
【請求項３】
前記処理セット選択部は、多数の入力群と処理ブロックと出力とで構成される処理セットを列挙し、比較対象すべき処理セットをグループ化し、各グループ内で再利用指標値が最大の処理セットを選択し、グループ間で再利用指標値を最大化する共通処理セットを選択し、
前記再利用実行部は、前記新入力群の取りうる値に対して該新処理ブロックをプログラム実行前に事前実行し、前記新入力群の値の組み合わせをキーとして複数の出力を結果テーブルとして記憶領域上に保存し、前記新処理ブロック内部では前記新入力群の値の組み合わせをキーとして前記結果テーブルから出力を引く、
請求項１に記載のデータ処理装置。
【請求項４】
前記処理セット選択部は、
プログラムに対してデータフロー解析を行い、解析されたデータフローの一つ以上の接続されたエッジを対象処理セットとして列挙する処理セット列挙部と、
各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求め、各処理セットの各入力の値数の積算で組み合わせ数を算出し、同一出力となる集合の中で最も外側の処理セットの組み合わせ数を対象処理セットの組み合わせ数で除算した結果を該処理セットの前記再利用指標値とし、該再利用指標値が最も高い処理セットを選択する新処理セット選択判断部と、
を有する請求項２又は３に記載のデータ処理装置。
【請求項５】
前記処理セット選択部は、
プログラムに対してデータフロー解析を行い、解析されたデータフローの一つ以上の接続されたエッジを対象処理セットとして列挙する処理セット列挙部と、
各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求め、各処理セットの各入力の値数の積算で組み合わせ数を算出し、各処理セットの処理ブロックのコストを算出し、前記組み合わせ数を積算して処理セットのコストを算出し、同一出力と集合の中で最も外側の処理セットのコストを対象処理セットの組み合わせ数で除算した結果を該処理セットの前記再利用指標値とし、該再利用指標値が最も高い処理セットを選択する新処理セット選択判断部と、
を有する請求項２又は３に記載のデータ処理装置。
【請求項６】
前記処理セット選択部は、
多数の処理セットから特徴を抽出し、共通化できる特徴に対して新入力を定義する新入力定義部と、
定義された新入力を使う新処理セットを定義する新処理セット定義部と、
元の処理セット群と新共通化処理セットから前記再利用指標値を算出し、新共通化処理セットの利用を前記再利用指標値がある閾値以上であるかで判断し、元の処理セットを新処理セットに置き換える新処理セット利用部と、
を有する請求項２又は３に記載のデータ処理装置。
【請求項７】
処理セット選択部が、入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、前記入力群より少ない組み合わせ数の新入力群と前記新入力群に対する新処理ブロックとを作り、
再利用実行部が、前記新入力群に対して演算する前記新処理ブロックと前記新処理ブロックが出力する出力群とに対して、前記新入力群と出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら前記紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ前記新処理ブロックを実行し、前記紐付け結果に登録する、
を有するデータ処理方法。
【請求項８】
前記処理セット選択部が、多数の入力群と処理ブロックと出力とで構成される処理セットを列挙し、比較対象すべき処理セットをグループ化し、各グループ内で再利用指標値が最大の処理セットを選択し、グループ間で再利用指標値を最大化する共通処理セットを選択し、
前記再利用実行部が、前記新入力群の値の組み合わせに対する出力を入出力テーブルとして用意し、前記入出力テーブルの中に新入力群の値の組み合わせと全て同じ値であるものがあるかを判定し、前記判定で真と判定された場合には、該新入力群の値の組み合わせに対する出力を前記入出力テーブルから引いて該新処理ブロックの出力とし、前記判定で偽と判定された場合には、前記新処理ブロックを実行して出力とするとともに、前記新入力群の値の組み合わせと該出力とを前記入出力テーブルに登録する、
請求項７に記載のデータ処理方法。
【請求項９】
前記処理セット選択部が、多数の入力群と処理ブロックと出力とで構成される処理セットを列挙し、比較対象すべき処理セットをグループ化し、各グループ内で再利用指標値が最大の処理セットを選択し、グループ間で再利用指標値を最大化する共通処理セットを選択し、
前記再利用実行部が、前記新入力群の取りうる値に対して該新処理ブロックをプログラム実行前に事前実行し、前記新入力群の値の組み合わせをキーとして複数の出力を結果テーブルとして記憶領域上に保存し、前記新処理ブロック内部では前記新入力群の値の組み合わせをキーとして前記結果テーブルから出力を引く、
請求項７に記載のデータ処理方法。
【請求項１０】
前記処理セット選択部では、
処理セット列挙部が、プログラムに対してデータフロー解析を行い、解析されたデータフローの一つ以上の接続されたエッジを対象処理セットとして列挙し、
新処理セット選択判断部が、各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求め、各処理セットの各入力の値数の積算で組み合わせ数を算出し、同一出力となる集合の中で最も外側の処理セットの組み合わせ数を対象処理セットの組み合わせ数で除算した結果を該処理セットの前記再利用指標値とし、該再利用指標値が最も高い処理セットを選択する、
請求項８又は９に記載のデータ処理方法。
【請求項１１】
前記処理セット選択部では、
処理セット列挙部が、プログラムに対してデータフロー解析を行い、解析されたデータフローの一つ以上の接続されたエッジを対象処理セットとして列挙し、
新処理セット選択判断部が、各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求め、各処理セットの各入力の値数の積算で組み合わせ数を算出し、各処理セットの処理ブロックのコストを算出し、前記組み合わせ数を積算して処理セットのコストを算出し、同一出力と集合の中で最も外側の処理セットのコストを対象処理セットの組み合わせ数で除算した結果を該処理セットの前記再利用指標値とし、該再利用指標値が最も高い処理セットを選択する、
請求項８又は９に記載のデータ処理方法。
【請求項１２】
前記処理セット選択部では、
新入力定義部が、多数の処理セットから特徴を抽出し、共通化できる特徴に対して新入力を定義し、
新処理セット定義部が、定義された新入力を使う新処理セットを定義し、
新処理セット利用部が、元の処理セット群と新共通化処理セットから前記再利用指標値を算出し、新共通化処理セットの利用を前記再利用指標値がある閾値以上であるかで判断し、元の処理セットを新処理セットに置き換える、
請求項８又は９に記載のデータ処理方法。
【請求項１３】
コンピュータを、
入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、前記入力群より少ない組み合わせ数の新入力群と前記新入力に対する新処理ブロックを作る処理セット選択手段、および
前記新入力群に対して演算する前記新処理ブロックと前記新処理ブロックが出力する出力群とに対して、前記新入力群と前記出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら前記紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ前記新処理ブロックを実行し、前記紐付け結果に登録する再利用実行手段、
として機能させるデータ処理プログラムを記録したプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを高速に処理可能なデータ処理装置に関し，特に演算結果の再利用を行うデータ処理装置、データ処理方法、およびプログラム記録媒体に関する。
【背景技術】
【０００２】
一般的にプログラムは、関数やループなどの複数の処理（以下、「処理セット」と呼ぶ）を、直列関係とネスト関係とを組み合わせることで構成されている。各処理セットは、多数の入力（以下、「入力群」と呼ぶ）と、演算を実行する処理ブロックと、該処理ブロックでの演算結果である出力と、から成る。【０００３】
図１は、一般的なプログラムの構成を示す図である。図１に示したプログラムは、６つの処理セット（処理セット１〜処理セット６）から成る。処理セット３は、処理セット４と処理セット５とを含む。すなわち、処理セット３の中に、処理セット４と処理セット５とがネストされている。図１に示されるように、プログラムは、処理セット１、処理セット２、処理セット３、および処理セット６が直列に接続されている。【０００４】
図１に示す例では、処理セット１は、入力群１と、処理ブロック１と、出力１とから成る。【０００５】
単一の処理セットは多数の入力を参照して演算を行う。そのために、処理ブロックの内部では多数の途中結果が生成されることが多い。また、関数のような処理セットは異なるプログラム箇所から多数回実行される。そのために、プログラム全体で見た場合には同一の入力群に対して同一の演算を実行する場合がある。このようなプログラムを高速に処理するためには、高い演算結果の再利用性が重要である。【０００６】
特許文献１は、演算結果を再利用するデータ処理装置の一例を記載している。詳述すると、特許文献１に開示されたデータ処理装置は、再利用対象となるループの開始アドレス、終了アドレス、入出力のアドレスを記憶しておき、デコードした命令列がループであった場合に該ループに関して記憶された開始アドレス、終了アドレス、入出力のアドレスが完全に一致した場合に記憶された出力値を該ループの出力とする。【０００７】
特許文献２は、値再利用（メモ化：Memoization）の際、実行結果を保存しておくメモリに保持させるデータのビット長を短縮させることにより、値再利用の効率を改善させた「コンパイル処理装置」を開示している。特許文献２に開示されたコンパイル処理装置は、ソースプログラム記憶部と、再利用命令判別部と、ハッシュ関数決定部と、機械語プログラム生成部と、オブジェクトプログラム記憶部とを備える。ソースプログラム記憶部は、コンパイルを行うソースプログラムであって、実行結果が再び利用される再利用区間が含まれるソースプログラムを記憶する。再利用命令判別部は、ソースプログラム記憶部から読み出したソースプログラムを解析して、再利用命令が含まれるプログラムを生成する。【０００８】
再利用命令判別部は、再利用候補区間抽出部と、再利用候補区間解析部と、再利用度生成部と、再利用命令変換部とを備える。再利用候補区間抽出部は、複数の命令区間のうち、実行結果を再利用する再利用区間の候補となる再利用候補区間をプログラムから抽出する。コンパイル処理装置が処理する命令区間は関数またはループを想定している。再利用候補区間抽出部は、関数およびループなどの複数回呼び出される可能性がある命令区間を再利用候補区間として抽出する。再利用候補区間抽出部は、入力値が同じでも異なる実行結果になる関数などの実行結果が再利用できる可能性が無い関数を、再利用候補区間から除外する。入力値とは、関数またはループの実行に必要な値であって、引数で構成される値である。再利用候補区間解析部は、再利用候補区間抽出部により抽出された再利用候補区間に関する使用態様を解析する。再利用度生成部は、再利用候補区間解析部から供給された解析結果に基づいて、再利用候補区間の実行結果が再び利用される度合いを示す再利用度を生成する。再利用度生成部は、例えば、再利用候補区間の入力値の組合せに応じて再利用度を生成する。再利用候補区間の入力値の組合せが少ないほど再利用される度合いは高くなる。再利用度生成部は、関数の解析した結果に基づいて、入力値の組合せの数を分母とする再利用度を生成する。再利用命令変換部は、この再利用度の高い再利用候補区間から順に再利用区間として決定する。【０００９】
特許文献３は、値再利用（メモ化：Memoization）の際、実行結果を保存しておくメモリから実行結果を退避させることにより、値再利用の効率を改善させた「データ処理装置」を開示している。特許文献３に開示されたデータ処理装置は、バスを介して主記憶部と相互に接続されている。データ処理装置が処理を実行する命令区間は関数またはループであることを想定している。データ処理装置は、一次キャッシュと、プロセッサコアと、履歴管理部と、履歴変換部とを備える。一次キャッシュは、命令キャッシュおよびデータキャッシュを備える。命令キャッシュは、主記憶部から供給された再利用命令をプロセッサコアに供給する。再利用命令とは、命令区間のうち実行結果が再び利用される再利用区間を再び使用されない区間とを区別することによって、再利用区間が呼出された際に実行結果を再利用するための処理をデータ処理装置に行わせる命令である。【００１０】
プロセッサコアは、入力される命令が再利用区間を指定する再利用命令である場合において履歴管理部から実行結果が供給されないときは、この命令を実行した結果である実行結果をデータキャッシュおよび履歴管理部に出力する。履歴管理部は、再利用区間の実行結果を保持して管理する。履歴管理部は、プロセッサコアから供給された再利用区間の区間識別情報と入力値と実行結果とを実行履歴として保持する。履歴管理部は、プロセッサコアから関数またはループの開始アドレスおよび入力値が供給された場合には、この開始アドレスおよび入力値が含まれる実行履歴を検索する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００４−２５８９０５号公報
【特許文献２】特開２０１１−９６１５３号公報
【特許文献３】特開２０１１−３９８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１によれば、多数の異なる入力を持つ処理ブロックに対して多数の入力の取りうる値の総組み合わせ数が非常に多くなることで、再利用性が低いという課題がある。【００１３】
また、特許文献２では、コンパイル処理装置が処理する命令区間は関数またはループを想定している。したがって、特許文献２においては、プログラムの関数全体と関数の一部分を対象としておらず、例えば、図１の処理セット３に対して処理セット４や処理セット５となるような包含された関係を対象としていない。その結果、特許文献２では、再利用指標値が最大となる処理セットとして処理セット３を選択するという結果を生み出すことができない。【００１４】
特許文献３でも、データ処理装置が処理を実行する命令区間は関数またはループであることを想定している。したがって、特許文献３も特許文献２と同様の問題がある。また、特許文献３は、単に、開始アドレスおよび入力値が含まれる実行履歴を検索する履歴管理部を備えたデータ処理装置を開示しているに過ぎない。【００１５】
本発明の目的は、上述したいずれかの課題を解決する、データ処理装置、データ処理方法、およびプログラム記録媒体を提供することにある。
【課題を解決するための手段】
【００１６】
本発明のデータ処理装置は、入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、前記入力群より少ない組み合わせ数の新入力群と前記新入力群に対する新処理ブロックとを作る処理セット選択部と；新入力群に対して演算する新処理ブロックとその新処理ブロックが出力する出力群とに対して、新入力群と出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら前記紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ前記処理ブロックを実行し、前記紐付け結果に登録する再利用実行部と；を有する。【００１７】
本発明のデータ処理方法は、処理セット選択部が、入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、前記入力群より少ない組み合わせ数の新入力群と前記新入力群に対する新処理ブロックとを作り；再利用実行部が、新入力群に対して演算する新処理ブロックとその新処理ブロックが出力する出力群とに対して、新入力群と出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら前記紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ前記新処理ブロックを実行し、前記紐付け結果に登録する。【００１８】
本発明のプログラム記録媒体は、コンピュータを、入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、前記入力群より少ない組み合わせ数の新入力群と前記新入力群に対する新処理ブロックとを作る処理セット選択手段；および新入力群に対して演算する新処理ブロックとその新処理ブロックが出力する出力群とに対して、新入力群と出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら前記紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ前記新処理ブロックを実行し、前記紐付け結果に登録する再利用実行手段；として機能させるデータ処理プログラムを記録する。
【発明の効果】
【００１９】
本発明によれば、演算結果の再利用性を高めることができる。
【図面の簡単な説明】
【００２０】
【図１】一般的なプログラムの構成を示す図である。
【図２】本発明に係るデータ処理装置が適用される計算機のハードウェア構成を示すブロック図である。
【図３】本発明の第１の実施形態に係るデータ処理装置の構成を示すブロック図である。
【図４】図３に示された処理セット選択部の動作を説明するためのフローチャートである。
【図５】図３に示された再利用実行部の動作を説明するためのフローチャートである。
【図６】図５のステップS106で利用される入出力テーブルの例を示す図である。
【図７】本発明の第２の実施形態に係る再利用実行部の動作を説明するためのフローチャートである。
【図８】生成される再利用実行プログラムの例を示す図である。
【図９】本発明の第３の実施形態に係るデータ処理装置の構成を示すブロック図である。
【図１０】図９に示した処理セット列挙部の動作を説明するためのフローチャートである。
【図１１】図９に示した第３の実施形態のデータ処理装置で実行されるプログラム例を示す図である。
【図１２】図１１に示したプログラムに対するデータフロー解析結果の例を示す図である。
【図１３】データフロー結果から処理セットＡを列挙する例を示す図である。
【図１４】データフロー結果から処理セットＢを列挙する例を示す図である。
【図１５】データフロー結果から処理セットＣを列挙する例を示す図である。
【図１６】各処理セットの入力群と出力を表としたもの示す図である。
【図１７】図９に示した新処理セット選択判断部の動作を説明するためのフローチャートである。
【図１８】処理セットごとの組み合わせ数の算出方法を示す図である。
【図１９】本発明の第４の実施形態に係る新処理セット選択判断部の動作を説明するためのフローチャートである。
【図２０】本発明の第４の実施形態のコストを考慮した選択方法の例を示す図である。
【図２１】本発明の第５の実施形態に係るデータ処理装置の構成を示すブロック図である。
【図２２】図２１に示した処理セット選択部の動作を説明するためのフローチャートである。
【図２３】図２１に示したデータ処理装置で実行される、対象とする部分プログラムの例を示す図である。
【図２４】図２１に示した新入力定義部が図２２のステップS501で特徴を挙げる例を示す図である。
【図２５】図２１に示した新入力定義部が図２２のステップS501で特徴から共通化できる特徴を見つけ出す例を示す図である。
【図２６】図２１に示した新処理セット定義部が図２２のステップS502で共通特徴から新処理セットを作る例を示す図である。
【図２７】図２１に示した新処理セット利用部が、図２２のステップS503で元の処理セットと新処理セットとから再利用評価値を算出する過程を示す図である。
【図２８】図２１に示した新処理セット利用部が、図２２のステップS503で元の処理セットと新処理セットから再利用評価値を算出する過程を示す図である。
【図２９】事前実行した場合の図２１に示した再利用実行部での実現例を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し，重複する説明を省略する場合がある。
【００２２】
まず、図２を参照して、本発明に係るデータ処理装置１００（後述する）が適用される計算機３０００のハードウェア構成について説明する。
【００２３】
計算機３０００は、演算処理装置３００１と、記憶装置３００２とを備える。尚、図示はしないが、計算機３０００は、入力装置と出力装置とを備えている。計算機３０００を構成するこれらの構成要素は、任意の通信手段（例えば、通信バスや通信ネットワーク等）により、相互に通信可能に接続されている。以下、それぞれの構成要素についての概要を説明する。
【００２４】
演算処理装置３００１は、後述する記憶装置３００２に記憶されたデータに対して任意の演算処理を実行可能な、専用又は汎用のプロセッサ（ＣＰＵ（central processing unit）等）である。演算処理装置３００１は、例えば、記憶装置３００２に記憶された任意のソフトウェア・プログラム（コンピュータ・プログラム、以下単に「プログラム」と称する場合がある）を実行可能であってもよい。なお、プログラムは、記憶装置３００２に限定されず、計算機３０００の内外の任意の装置（不図示）に保持されてもよい。この場合、必要に応じて演算処理装置３００１が当該プログラムを読み出して実行する。
【００２５】
記憶装置３００２は、任意のデータを記憶可能な記憶デバイス（メモリ）である。記憶装置３００２は、半導体記憶装置等により実現された揮発性あるいは不揮発性のメモリデバイスにより実現されてもよい。なお、記憶装置３００２は、上記に限定されず、任意の記憶デバイス（例えば、磁気記憶デバイス、光磁気記憶デバイス、光記憶デバイス等）により実現可能である。
【００２６】
入力装置は、計算機３０００に対して任意のデータを入力可能な装置である。入力装置は、計算機３０００の構成に応じて、任意の入力装置を用いて実現可能である。即ち、入力装置は、例えば、ネットワークを介して任意のデータを入力可能なネットワークデバイスでもよい。また、入力装置は、計算機３０００のユーザが直接データを入力可能な、インタフェース装置であってもよい。また、入力装置は、例えば、任意の記憶媒体（記録媒体）を介してデータを入力可能な、記憶媒体（記録媒体）の読み込みデバイスであってもよい。
【００２７】
出力装置は、計算機３０００での処理結果（演算結果）を出力可能な装置である。出力装置は、例えば、プリンタやＬＣＤ（液晶ディスプレイ）等からなってよい。
【００２８】
［第１の実施形態］
本発明の第１の実施形態について説明する。
【００２９】
［構成の説明］
図３は、本発明の第１の実施形態に係るデータ処理装置１００の構成を示すブロック図である。本第１の実施の形態では、データ処理装置１００は、処理セット選択部１０１と再利用実行部１０２とから成る。
【００３０】
処理セット選択部１０１は、入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、入力群より少ない組み合わせ数の新入力群と新入力群に対する新処理ブロックとを作る。
【００３１】
再利用実行部１０２は、新入力群に対して演算する新処理ブロックとその新処理ブロックが出力する出力群とに対して、新入力群と出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ新処理ブロックを実行し、紐付け結果に登録する。
【００３２】
［動作の説明］
次に、図４、図５のフローチャートを参照して、本第１の実施形態のデータ処理装置１００の動作について詳細に説明する。
【００３３】
図４は、処理セット選択部１０１の動作を説明するためのフローチャートである。
【００３４】
まず、処理セット選択部１０１は、多数の入力群と処理ブロックと出力とで構成される処理セットを列挙する（ステップS101）。引き続いて、処理セット選択部１０１は、比較対象すべき処理セットをグループ化する（ステップS102）。
【００３５】
次に、処理セット選択部１０１は、各グループ内で再利用指標値が最大の処理セット（新入力群・新処理ブロック・新出力）を選択する（ステップS103）。引き続いて、処理セット選択部１０１は、グループ間で再利用指標値を最大化する共通処理セット（新入力群・新処理ブロック・新出力）を選択する（ステップS104）。これで、処理セット選択部１０１の処理は終了となる。
【００３６】
図５は、再利用実行部１０２の動作を説明するためのフローチャートである。
【００３７】
まず、再利用実行部１０２は、新入力群の値の組み合わせに対する出力を入出力テーブルとして用意する（ステップS105）。引き続いて、再利用実行部１０２は、入出力テーブルの中に新入力群の値の組み合わせと全て同じ値であるものがあるかを判定する（ステップS106）。
【００３８】
判定結果が真なら、再利用実行部１０２は、該新入力群の値の組み合わせに対する出力を入出力テーブルから引き、該新処理ブロックの出力とする（ステップS107）。その後、再利用実行部１０２は、処理を終了する。
【００３９】
一方、判定結果が偽なら、再利用実行部１０２は、一つでも異なれば新処理ブロックを実行して出力とするとともに、新入力群の値の組み合わせと該出力を入出力テーブルに登録する（ステップS108）。その後、再利用実行部１０２は、処理を終了する。
【００４０】
図６は、上記ステップS106で利用される入出力テーブルの例を示す図である。本例では、入力１，入力２，入力３に対する処理ブロックの演算結果が出力となる。つまり、ステップS106では、再利用実行部１０２は、入力１，入力２，入力３の各値が入出力テーブル中のいずれかと同値であるかを判断する。
【００４１】
［第１の実施形態の効果の説明］
次に、本第１の実施形態の効果について説明する。
【００４２】
本第１の実施形態では、入力群の一部から定義される一時変数を用いた新入力群と該新入力群に応じた新処理ブロックによる演算結果を出力する新処理セットとを作成することで、元々の入力群の値の組み合わせ数より少ない組み合わせ数の新入力群によって再利用性を向上できる。
【００４３】
［第２の実施形態］
本発明の第２の実施形態について説明する。
【００４４】
［構成の説明］
本第２の実施形態のデータ処理装置の構成は、図３に図示した上記第１の実施形態のデータ処理装置１００と同じである。
【００４５】
本第２の実施形態のデータ処理装置は、上記第１の実施形態のデータ処理装置１００の再利用実行部１０２の動作が後述するように異なる。
【００４６】
［動作の説明］
図７のフローチャートを参照して、本第２の実施形態のデータ処理装置１００の再利用実行部１０２の動作について詳細に説明する。
【００４７】
図７は、第２の実施形態に係る再利用実行部１０２の動作を説明するためのフローチャートである。
【００４８】
まず、再利用実行部１０２は、新入力群の取りうる値に対して該新処理ブロックをプログラム実行前に事前実行し、新入力群の値の組み合わせをキーとして複数の出力を結果テーブルとして記憶領域上に保存する（ステップS201）。
【００４９】
引き続いて、再利用実行部１０２は、新処理ブロック内部では前記新入力群の値の組み合わせをキーとして結果テーブルから出力を引く（ステップS202）。その後、再利用実行部１０２は、処理を終了する。
【００５０】
図８は、生成される再利用実行プログラムの例を示す図である。本例では、元プログラム201から事前実行プログラム202と再利用実行プログラム203とを作る例を示している。
【００５１】
図７のステップS201によって、再利用実行部１０２は、事前実行プログラム202を作り、入力１（dno2），入力２（n），入力３（m）を使った演算された関数の出力結果を結果テーブル（tbl1）として記憶領域上に保存する。
【００５２】
図７のステップS202によって、再利用実行部１０２は、再利用実行プログラム203を作り、入力１（dno2），入力２（n），入力３（m）をキーとして結果テーブル（tbl1）から出力結果を参照する。
【００５３】
［第２の実施形態の効果の説明］
次に、本第２の実施形態の効果について説明する。
【００５４】
本第２の実施形態では、分岐無しで再利用性を向上できるため、より高速にプログラムを実行できる。
【００５５】
［第３の実施形態］
本発明の第３の実施形態について説明する。
【００５６】
［構成の説明］
図９は、本発明の第３の実施形態に係るデータ処理装置１００Ａの構成を示すブロック図である。本第３の実施の形態では、データ処理装置１００Ａの処理セット選択部１０１は、処理セット列挙部３０１と新処理セット選択判断部３０２とから成る。
【００５７】
［動作の説明］
図１０は、処理セット列挙部３０１の動作を説明するためのフローチャートである。
【００５８】
先ず、処理セット列挙部３０１は、プログラムに対してデータフロー解析を行う（ステップS301）。引き続いて、処理セット列挙部３０１は、データフローを一つ以上の接続されたエッジを対象処理セットとして列挙する（ステップS302）。その後、処理セット列挙部３０１は、処理を終了する。
【００５９】
図１１は、本第３の実施形態のデータ処理装置１００Ａで実行されるプログラム例を示す図である。
【００６０】
入力群はn,m,*d（ポインタ）となっている。処理ブロックは行番号S1からS11の流れで演算が行われる。出力はs2となっている。
【００６１】
図１２は、図１１に示したプログラムに対するデータフロー解析結果の例を示す図である。
【００６２】
図１３、図１４、および図１５は、それぞれ、データフロー解析結果（図１２）から処理セットＡ、Ｂ、およびＣを列挙する例を示す図である。点線で囲まれたブロックが処理セットの例である。
【００６３】
図１６は、各処理セットＡ、Ｂ、およびＣの入力群と出力とを表としたものを示す図である。処理セットＡ、Ｂ、およびＣごとに多数の入力と出力との組み合わせが存在する。
【００６４】
図１７は、新処理セット選択判断部３０２の動作を説明するためのフローチャートである。
【００６５】
先ず、新処理セット選択判断部３０２は、各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求める（ステップS303）。引き続いて、新処理セット選択判断部３０２は、各処理セットの各入力の値数の積算で組み合わせ数を算出する（ステップS304）。
【００６６】
その後、新処理セット選択判断部３０２は、同一出力となる集合の中で最も外側の処理セットの組み合わせ数を対象処理セットの組み合わせ数で除算した結果を該処理セットの再利用指標値とし、再利用指標値が最も高い処理セットを選択する（ステップS305）。その後、新処理セット選択判断部３０２は、処理を終了する。
【００６７】
図１８は、処理セットＡ、Ｂ、およびＣごとの入力組み合わせ数の算出方法を示す図である。
【００６８】
入力組み合わせ数は各入力の値数の積算から算出している。値数が不明な場合は何かしらの定数値を設定する。本例では*dの値数を100としている。
【００６９】
［第３の実施形態の効果の説明］
次に、本第３の実施形態の効果について説明する。
【００７０】
本第３の実施形態では、処理セットに対して最も組み合わせ数が少なく、再利用性の高い処理セットを選択できる。
【００７１】
［第４の実施形態］
本発明の第４の実施形態について説明する。
【００７２】
［構成の説明］
本第４の実施形態のデータ処理装置の構成は、図９に図示した上記第３の実施形態のデータ処理装置１００Ａと同じである。
【００７３】
本第４の実施形態のデータ処理装置は、上記第３の実施形態のデータ処理装置１００Ａの新処理セット選択判断部３０２の動作が後述するように異なる。
【００７４】
［動作の説明］
図１９のフローチャートを参照して、本第４の実施形態のデータ処理装置１００Ａの新処理セット選択判断部３０２の動作について詳細に説明する。
【００７５】
図１９は、第４の実施形態に係る新処理セット選択判断部３０２の動作を説明するためのフローチャートである。
【００７６】
先ず、新処理セット選択判断部３０２は、各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求める（ステップS401）。引き続いて、新処理セット選択判断部３０２は、各処理セットの各入力の値数の積算で組み合わせ数を算出する（ステップS402）。
【００７７】
次に、新処理セット選択判断部３０２は、各処理セットの処理ブロックのコストを算出し、前記組み合わせ数を積算して処理セットのコストを算出する（ステップS403）。
【００７８】
その後、新処理セット選択判断部３０２は、同一出力の集合の中で最も外側の処理セットのコストを対象処理セットのコストで除算した結果を該処理セットの再利用指標値とし、再利用指標値が最も高い処理セットを選択する（ステップS404）。その後、新処理セット選択判断部３０２は、処理を終了する。
【００７９】
図２０は、本第４の実施形態のコストを考慮した選択方法の例を示す図である。図２０において、左側が最も外側の処理セットを示し、右側がある処理セットを示す。
【００８０】
左側の処理セットのコストは、処理ブロックのコストが100で組み合わせ数が10000から、全体コストは1000000となる。
【００８１】
右側において、上の処理セットのコストは、処理ブロックのコストが10で組み合わせ数が10000から、上の処理セットの全体コストは100000となる。下の処理セットのコストは、処理ブロックのコストが90で組み合わせ数が1000から、下の処理セットの全体コストは190000となる。
【００８２】
右側の処理セットの再利用指標値は1000000÷190000から5.2が求まる。
【００８３】
本例では、左側の処理セットと右側の処理セットのみが存在し、右側の処理セットが選択される。
【００８４】
［第４の実施形態の効果の説明］
次に、本第４の実施形態の効果について説明する。
【００８５】
本第４の実施形態では、再利用性が高く、高速化効果の高い箇所を優先的に選択できる。
【００８６】
［第５の実施形態］
本発明の第５の実施形態について説明する。
【００８７】
［構成の説明］
図２１は、本発明の第５の実施形態に係るデータ処理装置１００Ｂの構成を示すブロック図である。本第５の実施形態では、データ処理装置１００Ｂの処理セット選択部１０１は、新入力定義部５０１と新処理セット定義部５０２と新処理セット利用部５０３とから成る。
【００８８】
［動作の説明］
図２２は、本第５の実施形態に係る処理セット選択部１０１の動作を説明するためのフローチャートである。
【００８９】
先ず、新入力定義部５０１は、多数の処理セットから特徴を抽出し、共通化できる特徴に対して新入力を定義する（ステップS501）。
【００９０】
引き続いて、新処理セット定義部５０２は、定義された新入力を使う新処理セットを定義する（ステップS502）。ここでの定義は、新入力、新処理ブロック、および新出力である。
【００９１】
次に、新処理セット利用部５０３は、元の処理セット群と新共通化処理セットから再利用指標値を算出し、新共通化処理セットの利用を再利用指標値がある閾値以上であるかで判断し、元の処理セットを新処理セットに置き換える（ステップS503）。その後、処理セット選択部１０１は、処理を終了する。
【００９２】
図２３は、本第５の実施形態のデータ処理装置１００Ｂで実行される、対象とする部分プログラムの一例を示す図である。
【００９３】
図２４は、新入力定義部５０１がステップS501で特徴を挙げる例を示す図である。
【００９４】
図２５は、新入力定義部５０１がステップS501で特徴から共通化できる特徴を見つけ出す例を示す図である。
【００９５】
図２６は、新処理セット定義部５０２がステップS502で共通特徴から新処理セットを作る例を示す図である。
【００９６】
図２７および図２８は、新処理セット利用部５０３が、ステップS503で元の処理セットと新処理セットとから再利用評価値を算出する過程を示す図である。
【００９７】
図２９は、事前実行した場合の再利用実行部１０２での実現例を示す図である。
【００９８】
［第５の実施形態の効果の説明］
次に、本第５の実施形態の効果について説明する。
【００９９】
本第５の実施形態では、多数の処理セット間で共通に再利用を実施できる。
【０１００】
［発明の効果の説明］
次に、本発明の効果について説明する。
【０１０１】
本発明によれば、元々の入力群より少ない組み合わせ数の新入力群を作成し、該新入力群に対する新処理ブロックの出力を紐づけて記憶するため、元々の入力群がとりうる値の組み合わせ数より少ない組み合わせ数で出力を再利用できることで再利用性を高めることができる。
【０１０２】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、複数の構成要素の適宜な組合せにより種々の発明を形成できる。
【０１０３】
尚、データ処理装置の各部は、ハードウェアとソフトウェアとの組み合わせを用いて実現すればよい。ハードウェアとソフトウェアとを組み合わせた形態では、ＲＡＭ（random access memory）にデータ処理プログラムが展開され、該データ処理プログラムに基づいて制御部（ＣＰＵ（central processing unit））等のハードウェアを動作させることによって、各部を各種手段として実現する。また、該データ処理プログラムは、記録媒体に記録されて頒布されても良い。当該記録媒体に記録されたデータ処理プログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、制御部等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。
【０１０４】
上記実施の形態を別の表現で説明すれば、データ処理装置として動作させるコンピュータを、ＲＡＭに展開されたデータ処理プログラムに基づき、処理セット選択部１０１および再利用実行部１０２として動作させることで実現することが可能である。
【０１０５】
また、本発明の具体的な構成は前述の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の変更があってもこの発明に含まれる。
【０１０６】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１０７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１０８】
（付記１）
入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、前記入力群より少ない組み合わせ数の新入力群と前記新入力群に対する新処理ブロックとを作る処理セット選択部と、
前記新入力群に対して演算する前記新処理ブロックと前記新処理ブロックが出力する出力群とに対して、前記新入力群と出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら前記紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ前記新処理ブロックを実行し、前記紐付け結果に登録する再利用実行部と、
を有するデータ処理装置。
【０１０９】
（付記２）
前記処理セット選択部は、多数の入力群と処理ブロックと出力とで構成される処理セットを列挙し、比較対象すべき処理セットをグループ化し、各グループ内で再利用指標値が最大の処理セットを選択し、グループ間で再利用指標値を最大化する共通処理セットを選択し、
前記再利用実行部は、前記新入力群の値の組み合わせに対する出力を入出力テーブルとして用意し、前記入出力テーブルの中に新入力群の値の組み合わせと全て同じ値であるものがあるかを判定し、前記判定で真と判定された場合には、該新入力群の値の組み合わせに対する出力を前記入出力テーブルから引いて該新処理ブロックの出力とし、前記判定で偽と判定された場合には、前記新処理ブロックを実行して出力とするとともに、前記新入力群の値の組み合わせと該出力とを前記入出力テーブルに登録する、
付記１に記載のデータ処理装置。
【０１１０】
（付記３）
前記処理セット選択部は、多数の入力群と処理ブロックと出力とで構成される処理セットを列挙し、比較対象すべき処理セットをグループ化し、各グループ内で再利用指標値が最大の処理セットを選択し、グループ間で再利用指標値を最大化する共通処理セットを選択し、
前記再利用実行部は、前記新入力群の取りうる値に対して該新処理ブロックをプログラム実行前に事前実行し、前記新入力群の値の組み合わせをキーとして複数の出力を結果テーブルとして記憶領域上に保存し、前記新処理ブロック内部では前記新入力群の値の組み合わせをキーとして前記結果テーブルから出力を引く、
付記１に記載のデータ処理装置。
【０１１１】
（付記４）
前記処理セット選択部は、
プログラムに対してデータフロー解析を行い、解析されたデータフローの一つ以上の接続されたエッジを対象処理セットとして列挙する処理セット列挙部と、
各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求め、各処理セットの各入力の値数の積算で組み合わせ数を算出し、同一出力となる集合の中で最も外側の処理セットの組み合わせ数を対象処理セットの組み合わせ数で除算した結果を該処理セットの前記再利用指標値とし、該再利用指標値が最も高い処理セットを選択する新処理セット選択判断部と、
を有する付記２又は３に記載のデータ処理装置。
【０１１２】
（付記５）
前記処理セット選択部は、
プログラムに対してデータフロー解析を行い、解析されたデータフローの一つ以上の接続されたエッジを対象処理セットとして列挙する処理セット列挙部と、
各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求め、各処理セットの各入力の値数の積算で組み合わせ数を算出し、各処理セットの処理ブロックのコストを算出し、前記組み合わせ数を積算して処理セットのコストを算出し、同一出力と集合の中で最も外側の処理セットのコストを対象処理セットの組み合わせ数で除算した結果を該処理セットの前記再利用指標値とし、該再利用指標値が最も高い処理セットを選択する新処理セット選択判断部と、
を有する付記２又は３に記載のデータ処理装置。
【０１１３】
（付記６）
前記処理セット選択部は、
多数の処理セットから特徴を抽出し、共通化できる特徴に対して新入力を定義する新入力定義部と、
定義された新入力を使う新処理セットを定義する新処理セット定義部と、
元の処理セット群と新共通化処理セットから前記再利用指標値を算出し、新共通化処理セットの利用を前記再利用指標値がある閾値以上であるかで判断し、元の処理セットを新処理セットに置き換える新処理セット利用部と、
を有する付記２又は３に記載のデータ処理装置。
【０１１４】
（付記７）
処理セット選択部が、入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、前記入力群より少ない組み合わせ数の新入力群と前記新入力群に対する新処理ブロックとを作り、
再利用実行部が、前記新入力群に対して演算する前記新処理ブロックと前記新処理ブロックが出力する出力群とに対して、前記新入力群と出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら前記紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ前記新処理ブロックを実行し、前記紐付け結果に登録する、
を有するデータ処理方法。
【０１１５】
（付記８）
前記処理セット選択部が、多数の入力群と処理ブロックと出力とで構成される処理セットを列挙し、比較対象すべき処理セットをグループ化し、各グループ内で再利用指標値が最大の処理セットを選択し、グループ間で再利用指標値を最大化する共通処理セットを選択し、
前記再利用実行部が、前記新入力群の値の組み合わせに対する出力を入出力テーブルとして用意し、前記入出力テーブルの中に新入力群の値の組み合わせと全て同じ値であるものがあるかを判定し、前記判定で真と判定された場合には、該新入力群の値の組み合わせに対する出力を前記入出力テーブルから引いて該新処理ブロックの出力とし、前記判定で偽と判定された場合には、前記新処理ブロックを実行して出力とするとともに、前記新入力群の値の組み合わせと該出力とを前記入出力テーブルに登録する、
付記７に記載のデータ処理方法。
【０１１６】
（付記９）
前記処理セット選択部が、多数の入力群と処理ブロックと出力とで構成される処理セットを列挙し、比較対象すべき処理セットをグループ化し、各グループ内で再利用指標値が最大の処理セットを選択し、グループ間で再利用指標値を最大化する共通処理セットを選択し、
前記再利用実行部が、前記新入力群の取りうる値に対して該新処理ブロックをプログラム実行前に事前実行し、前記新入力群の値の組み合わせをキーとして複数の出力を結果テーブルとして記憶領域上に保存し、前記新処理ブロック内部では前記新入力群の値の組み合わせをキーとして前記結果テーブルから出力を引く、
付記７に記載のデータ処理方法。
【０１１７】
（付記１０）
前記処理セット選択部では、
処理セット列挙部が、プログラムに対してデータフロー解析を行い、解析されたデータフローの一つ以上の接続されたエッジを対象処理セットとして列挙し、
新処理セット選択判断部が、各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求め、各処理セットの各入力の値数の積算で組み合わせ数を算出し、同一出力となる集合の中で最も外側の処理セットの組み合わせ数を対象処理セットの組み合わせ数で除算した結果を該処理セットの前記再利用指標値とし、該再利用指標値が最も高い処理セットを選択する、
付記８又は９に記載のデータ処理方法。
【０１１８】
（付記１１）
前記処理セット選択部では、
処理セット列挙部が、プログラムに対してデータフロー解析を行い、解析されたデータフローの一つ以上の接続されたエッジを対象処理セットとして列挙し、
新処理セット選択判断部が、各入力の個別組み合わせ数を、参照する変数と該入力の定義処理内容とから求め、各処理セットの各入力の値数の積算で組み合わせ数を算出し、各処理セットの処理ブロックのコストを算出し、前記組み合わせ数を積算して処理セットのコストを算出し、同一出力と集合の中で最も外側の処理セットのコストを対象処理セットの組み合わせ数で除算した結果を該処理セットの前記再利用指標値とし、該再利用指標値が最も高い処理セットを選択する、
付記８又は９に記載のデータ処理方法。
【０１１９】
（付記１２）
前記処理セット選択部では、
新入力定義部が、多数の処理セットから特徴を抽出し、共通化できる特徴に対して新入力を定義し、
新処理セット定義部が、定義された新入力を使う新処理セットを定義し、
新処理セット利用部が、元の処理セット群と新共通化処理セットから前記再利用指標値を算出し、新共通化処理セットの利用を前記再利用指標値がある閾値以上であるかで判断し、元の処理セットを新処理セットに置き換える、
付記８又は９に記載のデータ処理方法。
【０１２０】
（付記１３）
コンピュータを、
入力群に対して演算を行う処理ブロックとその処理ブロックが出力する出力群とから成る処理セットに対して、前記入力群より少ない組み合わせ数の新入力群と前記新入力に対する新処理ブロックを作る処理セット選択手段、および
前記新入力群に対して演算する前記新処理ブロックと前記新処理ブロックが出力する出力群とに対して、前記新入力群と前記出力群とを紐付ける紐付け結果を用意し、同じ入力群の値なら前記紐付け結果から得た出力群を出力とし、同じ入力群の値でなければ前記新処理ブロックを実行し、前記紐付け結果に登録する再利用実行手段、
として機能させるデータ処理プログラムを記録したプログラム記録媒体。
【０１２１】
この出願は、２０１６年５月２３日に出願された日本出願特願２０１６−１０２２８５号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１２２】
本発明によれば、多数のセンサデータ中の任意２点のセンサデータ間の相関関係を、複数パラメータの中で最適なパラメータ組み合わせと共に探索する全相関関係算出処理プログラムを高速化する用途に適用できる。
【符号の説明】
【０１２３】
１００、１００Ａ、１００Ｂ    データ処理装置
１０１    処理セット選択部
１０２    再利用実行部
３０１    処理セット列挙部
３０２    新処理セット選択判断部
５０１    新入力定義部
５０２    新処理セット定義部
５０３    新処理セット利用部
３０００    計算機
３００１    演算処理装置
３００２    記憶装置
【図１】
2017204139.tif 000003
【図２】
2017204139.tif 000004
【図３】
2017204139.tif 000005
【図４】
2017204139.tif 000006
【図５】
2017204139.tif 000007
【図６】
2017204139.tif 000008
【図７】
2017204139.tif 000009
【図８】
2017204139.tif 000010
【図９】
2017204139.tif 000011
【図１０】
2017204139.tif 000012
【図１１】
2017204139.tif 000013
【図１２】
2017204139.tif 000014
【図１３】
2017204139.tif 000015
【図１４】
2017204139.tif 000016
【図１５】
2017204139.tif 000017
【図１６】
2017204139.tif 000018
【図１７】
2017204139.tif 000019
【図１８】
2017204139.tif 000020
【図１９】
2017204139.tif 000021
【図２０】
2017204139.tif 000022
【図２１】
2017204139.tif 000023
【図２２】
2017204139.tif 000024
【図２３】
2017204139.tif 000025
【図２４】
2017204139.tif 000026
【図２５】
2017204139.tif 000027
【図２６】
2017204139.tif 000028
【図２７】
2017204139.tif 000029
【図２８】
2017204139.tif 000030
【図２９】
2017204139.tif 000031
【国際調査報告】
2017204139.tif 000032
2017204139.tif 000033
2017204139.tif 000034
2017204139.tif 000035