(57)【要約】【課題】有限の記憶領域の容量を効率的に用いて、シミュレーションの高速化を実現する。【解決手段】入力値に基づいて、状態遷移後のオブジェクトに関連する出力値を算出するステップ処理を繰り返し実行するシミュレーションであり、計算機はステップ処理の結果を格納する履歴を管理するための履歴管理情報を保持し、シミュレーション制御方法は、計算機が、第一入力値を受け付けた場合、利用可能な履歴が存在するか否かを判定するステップと、利用可能な履歴が存在する場合、履歴を取得し、履歴に格納される出力値を第一出力値として算出するステップと、利用可能な履歴が存在しない場合、ステップ処理を実行して第一出力値を算出するステップと、履歴管理情報から履歴を削除するステップと、を含む。【選択図】図１
2019197465.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトの状態遷移をシミュレーションする計算機システムにおけるシミュレーション制御方法であって、
前記計算機システムは、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを有する複数の計算機を備え、
前記シミュレーションは、入力値に基づいて、状態遷移後の前記オブジェクトに関連する出力値を算出するステップ処理を、終了条件が満たされるまで繰り返し実行する処理であり、
少なくとも一つの計算機は、前記ステップ処理の結果を格納する履歴を管理するための履歴管理情報を保持し、
前記履歴は、前記入力値及び前記出力値を格納し、
前記シミュレーション制御方法は、
少なくとも一つの計算機が、第一入力値を受け付けた場合、前記履歴管理情報を参照し、利用可能な履歴が存在するか否かを判定する第１のステップと、
前記利用可能な履歴が存在すると判定された場合、前記少なくとも一つの計算機が、前記履歴管理情報から前記第一入力値と同一の入力値である前記履歴を取得し、前記取得された履歴に格納される前記出力値を第一出力値として算出する第２のステップと、
前記利用可能な履歴が存在しないと判定された場合、前記少なくとも一つの計算機が、前記第一入力値に基づいて前記ステップ処理を実行することによって前記第一出力値を算出する第３のステップと、
前記少なくとも一つの計算機が、前記履歴管理情報のデータ量に基づいて、前記履歴管理情報から前記履歴を削除する第４のステップと、
を含むことを特徴とするシミュレーション制御方法。
【請求項２】
請求項１に記載のシミュレーション制御方法であって、
前記第４のステップは、
前記少なくとも一つの計算機が、前記履歴管理情報のデータ量に基づいて、前記履歴管理情報から前記履歴を削除する必要があるか否かを判定するステップと、
前記履歴管理情報から前記履歴を削除する必要がないと判定された場合、前記少なくとも一つの計算機が、前記第一入力値及び前記第一出力値を格納する前記履歴を前記履歴管理情報に登録するステップと、
前記履歴管理情報から前記履歴を削除する必要があると判定された場合、前記少なくとも一つの計算機が、前記履歴管理情報から所定の数の前記履歴を削除し、前記第一入力値及び前記第一出力値を格納する前記履歴を前記履歴管理情報に登録するステップと、
を含むことを特徴とするシミュレーション制御方法。
【請求項３】
請求項２に記載のシミュレーション制御方法であって、
前記履歴は、履歴の新しさを示す時間情報を格納し、
前記第２のステップは、前記少なくとも一つの計算機が、前記取得された履歴に格納される前記時間情報を更新するステップを含み、
前記第４のステップは、前記少なくとも一つの計算機が、前記時間情報に基づいて、前記履歴管理情報から前記所定の数の履歴を古い順に削除するステップを含むことを特徴とするシミュレーション制御方法。
【請求項４】
請求項３に記載のシミュレーション制御方法であって、
前記少なくとも一つの計算機は、前記時間情報が同一である前記履歴のリストを管理するための履歴容量管理情報を保持し、
前記第４のステップは、
前記少なくとも一つの計算機が、前記履歴容量管理情報を参照して、前記時間情報が最も古い前記履歴のリストを特定するステップと、
前記少なくとも一つの計算機が、前記特定された履歴のリストに基づいて、前記履歴管理情報から前記所定の数の履歴を削除するステップと、を含むことを特徴とするシミュレーション制御方法。
【請求項５】
請求項４に記載のシミュレーション制御方法であって、
前記時間情報は、前記シミュレーションの実行サイクルの順番を示す値であることを特徴とするシミュレーション制御方法。
【請求項６】
請求項４に記載のシミュレーション制御方法であって、
前記履歴は、前記入力値をキーとし、前記出力値及び前記時間情報をバリューとするキーバリュー形式のデータであることを特徴とするシミュレーション制御方法。
【請求項７】
オブジェクトの状態遷移をシミュレーションする計算機システムであって、
前記計算機システムは、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを有する複数の計算機を備え、
前記シミュレーションは、入力値に基づいて、状態遷移後の前記オブジェクトに関連する出力値を算出するステップ処理を、終了条件が満たされるまで繰り返し実行する処理であり、
前記計算機システムは、
前記シミュレーションの実行を管理するシミュレーション実行管理部と、
前記ステップ処理を実行するシミュレーション実行部と、を備え、
前記シミュレーション実行管理部は、前記ステップ処理の結果を格納する履歴を管理するための履歴管理情報を管理し、
前記履歴は、前記入力値及び前記出力値を格納し、
前記シミュレーション実行管理部は、
第一入力値を受け付けた場合、前記履歴管理情報を参照し、利用可能な履歴が存在するか否かを判定し、
前記利用可能な履歴が存在すると判定された場合、前記履歴管理情報から前記第一入力値と同一の入力値である前記履歴を取得し、前記取得された履歴に格納される前記出力値を第一出力値として算出し、
前記利用可能な履歴が存在しないと判定された場合、前記第一入力値を含む前記ステップ処理の実行要求を送信して、前記シミュレーション実行部によって算出された前記第一出力値を取得し、
前記履歴管理情報のデータ量に基づいて、前記履歴管理情報から前記履歴を削除することを特徴とする計算機システム。
【請求項８】
請求項７に記載の計算機システムであって、
前記シミュレーション実行管理部は、
前記履歴管理情報のデータ量に基づいて、前記履歴管理情報から前記履歴を削除する必要があるか否かを判定し、
前記履歴管理情報から前記履歴を削除する必要がないと判定された場合、前記第一入力値及び前記第一出力値を格納する前記履歴を前記履歴管理情報に登録し、
前記履歴管理情報から前記履歴を削除する必要があると判定された場合、前記履歴管理情報から所定の数の前記履歴を削除し、前記第一入力値及び前記第一出力値を格納する前記履歴を前記履歴管理情報に登録することを特徴とする計算機システム。
【請求項９】
請求項８に記載の計算機システムであって、
前記履歴は、履歴の新しさを示す時間情報を格納し、
前記シミュレーション実行管理部は、
前記履歴管理情報から前記第一入力値と同一の入力値である前記履歴を取得した後、前記履歴管理情報に格納される、前記取得された履歴の前記時間情報を更新し、
前記履歴管理情報から前記履歴を削除する場合、前記時間情報に基づいて、前記履歴管理情報から前記所定の数の履歴を古い順に削除することを特徴とする計算機システム。
【請求項１０】
請求項９に記載の計算機システムであって、
前記シミュレーション実行管理部は、
前記時間情報が同一である前記履歴のリストを管理するための履歴容量管理情報を管理し、
前記履歴管理情報から前記履歴を削除する場合、前記履歴容量管理情報を参照して、前記時間情報が最も古い前記履歴のリストを特定し、前記特定された履歴のリストに基づいて、前記履歴管理情報から前記所定の数の履歴を削除することを特徴とする計算機システム。
【請求項１１】
請求項１０に記載の計算機システムであって、
前記時間情報は、前記シミュレーションの実行サイクルの順番を示す値であることを特徴とする計算機システム。
【請求項１２】
請求項１０に記載の計算機システムであって、
前記履歴は、前記入力値をキーとし、前記出力値及び前記時間情報をバリューとするキーバリュー形式のデータであることを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションの制御方法に関する。
【背景技術】
【０００２】
装置等のオブジェクトを制御するためのモデルを得るために行われる機械学習では、学習用のデータが大量に必要となる。そのため、シミュレーションを多数回実行して、学習用のデータを生成することが求められる。
【０００３】
機械学習及びシミュレーションを実行するシステムは、オブジェクトの状態遷移に関するシミュレーションによって算出された学習用のデータを用いて機械学習を実行し、また、機械学習から得られたモデルに基づいて算出された入力値を用いてシミュレーションを実行する。このようにシミュレーション及び機械学習が再帰的に実行される。一回のシミュレーションでは、入力値から所定の演算を実行して出力値を算出するステップ処理が多数回実行される。したがって、最適なモデルを構築するためには計算時間が膨大になる。
【０００４】
入力値は機械的に生成されるため、重複した入力値を用いたステップ処理を含むシミュレーションが実行される。したがって、過去に実行されたステップ処理の結果を再利用することによって、シミュレーションの計算時間を短縮できる。
【０００５】
例えば、シミュレーションの結果を再利用する技術として特許文献１の技術が知られている。特許文献１には、「シミュレーションプロセスから供給されるコマンド情報及びそのコマンドに対応するシミュレーション結果情報を格納するシミュレーション結果情報格納可能手段、入力されるシミュレーション命令に対応するコマンド列を作成するコマンド列作成手段並びに、前記シミュレーション結果情報格納手段に格納されているシミュレーション結果情報を利用して処理できるかどうかについて前記コマンド列の各コマンドを分類して利用できない部分のあるコマンドを前記シミュレーションプロセスに供給するコマンド分類手段を備える」ことが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−４５０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の技術では、シミュレーションの結果を格納する記憶領域の容量が考慮されていない。したがって、全てのシミュレーションの結果を格納するためには、容量が大きい記憶装置が必要となる。しかし、システムにおいて使用可能な記憶領域の容量は有限であるため、全てのシミュレーションの結果を格納することはできない。
【０００８】
本発明は、記憶領域の容量を考慮してシミュレーションの結果を保存し、かつ、シミュレーションの高速化を実現するシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、オブジェクトの状態遷移をシミュレーションする計算機システムにおけるシミュレーション制御方法であって、前記計算機システムは、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを有する複数の計算機を備え、前記シミュレーションは、入力値に基づいて、状態遷移後の前記オブジェクトに関連する出力値を算出するステップ処理を、終了条件が満たされるまで繰り返し実行する処理であり、少なくとも一つの計算機は、前記ステップ処理の結果を格納する履歴を管理するための履歴管理情報を保持し、前記履歴は、前記入力値及び前記出力値を格納し、前記シミュレーション制御方法は、少なくとも一つの計算機が、第一入力値を受け付けた場合、前記履歴管理情報を参照し、利用可能な履歴が存在するか否かを判定する第１のステップと、前記利用可能な履歴が存在すると判定された場合、前記少なくとも一つの計算機が、前記履歴管理情報から前記第一入力値と同一の入力値である前記履歴を取得し、前記取得された履歴に格納される前記出力値を第一出力値として算出する第２のステップと、前記利用可能な履歴が存在しないと判定された場合、前記少なくとも一つの計算機が、前記第一入力値に基づいて前記ステップ処理を実行することによって前記第一出力値を算出する第３のステップと、前記少なくとも一つの計算機が、前記履歴管理情報のデータ量に基づいて、前記履歴管理情報から前記履歴を削除する第４のステップと、を含むことを特徴とする。
【発明の効果】
【００１０】
本発明の一形態によれば、記憶領域の容量を考慮してシミュレーションの結果（履歴）を保存でき、また、シミュレーションの高速化を実現できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】実施例１の計算機システムのハードウェア構成を示す図である。
【図２】実施例１のシミュレーションシステムのソフトウェア構成を示す図である。
【図３】実施例１の計算機システムにおけるモジュール間のデータの入出力を説明する図である。
【図４】実施例１の初期状態情報のデータ構造の一例を示す図である。
【図５】実施例１の状態情報のデータ構造の一例を示す図である。
【図６】実施例１のパラメータ情報のデータ構造の一例を示す図である。
【図７】実施例１のシミュレーション実行結果情報のデータ構造の一例を示す図である。
【図８】実施例１の履歴管理情報のデータ構造の一例を示す図である。
【図９】実施例１の履歴容量管理情報のデータ構造の一例を示す図である。
【図１０】実施例１の参照情報のデータ構造の一例を示す図である。
【図１１】実施例１のシミュレーション実行管理サーバのシミュレーション実行管理モジュールが実行する処理の一例を説明するフローチャートである。
【図１２】実施例１のシミュレーション実行管理サーバの容量管理モジュールが実行する処理の一例を説明するフローチャートである。
【図１３】実施例１の機械学習実行サーバがパラメータの算出要求を受信した場合に実行する処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明に係る実施例を添付図面を用いて説明する。各図において共通の構成については同一の参照符号が付されている。
【実施例１】
【００１３】
図１は、実施例１の計算機システムのハードウェア構成を示す図である。
【００１４】
計算機システムは、オブジェクトの状態遷移をシミュレーションする。実施例１のシミュレーションでは、入力値に基づいて、状態遷移後のオブジェクトに関連する一意な出力値を算出するステップ処理が、終了条件が満たされるまで繰り返し実行される。
【００１５】
実施例１のステップ処理は、オブジェクトの状態値及びオブジェクトに関連するパラメータが入力値として入力され、状態遷移後のオブジェクトの状態値が出力値として算出される処理を想定する。なお、本発明は、ステップ処理における入力値及び出力値の関係性に限定されない。以下の説明では、入力値に含まれる状態値を入力状態値と記載し、出力値として出力される状態値を出力状態値と記載する。入力状態値及び出力状態値を区別しない場合、状態値と記載する。
【００１６】
図１に示す計算機システムは、シミュレーション実行管理サーバ１００、データ管理サーバ１１０、機械学習実行サーバ１２０、シミュレーション実行サーバ１３０、及びユーザ端末１４０から構成される。各装置はネットワーク１９０を介して接続される。なお、ネットワーク１９０の種類としては、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等が考えられる。また、ネットワーク１９０の接続方式は、有線又は無線のいずれでもよい。
【００１７】
シミュレーション実行管理サーバ１００は、シミュレーションの入力値を受信し、また、ステップ処理の結果を保存する。実施例１ではステップ処理の結果を管理するためのデータを履歴と記載する。シミュレーション実行管理サーバ１００は、ハードウェアとして、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４を有する。各ハードウェアは内部バス等を介して接続される。
【００１８】
ＣＰＵ１０１は、メモリ１０２に格納されるプログラムを実行する。ＣＰＵ１０１がプログラムにしたがって処理を実行することによって、所定の機能を有するモジュールとして動作する。以下の説明では、モジュールを主語に処理を説明する場合、ＣＰＵ１０１が、当該モジュールを実現するプログラムを実行していることを表す。
【００１９】
メモリ１０２は、ＣＰＵ１０１が実行するプログラム及び当該プログラムに必要な情報を格納する。また、メモリ１０２は、プログラムが一時的に使用するワークエリアを含む。
【００２０】
ストレージ装置１０３は、データを永続的に格納する。ストレージ装置１０３は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶媒体、又は不揮発性メモリ等が考えられる。なお、メモリ１０２に格納されるプログラム及び情報は、ストレージ装置１０３に格納されてもよい。この場合、ＣＰＵ１０１は、ストレージ装置１０３からプログラム及び情報を読み出し、メモリ１０２にプログラム及び情報をロードし、また、メモリ１０２にロードされたプログラムを実行する。
【００２１】
ネットワークインタフェース１０４は、ネットワークを介して他の装置と接続する。
【００２２】
データ管理サーバ１１０は、各種データを管理する。データ管理サーバ１１０は、ハードウェアとして、ＣＰＵ１１１、メモリ１１２、ストレージ装置１１３、及びネットワークインタフェース１１４を有する。各ハードウェアは内部バス等を介して接続される。
【００２３】
ＣＰＵ１１１、メモリ１１２、ストレージ装置１１３、及びネットワークインタフェース１１４は、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４と同様のハードウェアである。
【００２４】
機械学習実行サーバ１２０は、機械学習を実行し、また、機械学習の結果を用いた演算を実行する。機械学習実行サーバ１２０は、ハードウェアとして、ＣＰＵ１２１、メモリ１２２、ストレージ装置１２３、及びネットワークインタフェース１２４を有する。各ハードウェアは内部バス等を介して接続される。
【００２５】
ＣＰＵ１２１、メモリ１２２、ストレージ装置１２３、及びネットワークインタフェース１２４は、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４と同様のハードウェアである。
【００２６】
シミュレーション実行サーバ１３０は、シミュレーションを実行する。シミュレーション実行サーバ１３０は、ハードウェアとして、ＣＰＵ１３１、メモリ１３２、ストレージ装置１３３、及びネットワークインタフェース１３４を有する。各ハードウェアは内部バス等を介して接続される。
【００２７】
ＣＰＵ１３１、メモリ１３２、ストレージ装置１３３、及びネットワークインタフェース１３４は、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４と同様のハードウェアである。
【００２８】
ユーザ端末１４０は、ユーザが使用する端末である。ユーザは、ユーザ端末１４０を用いて、機械学習及びシミュレーションの実行を指示する。ユーザ端末１４０は、ハードウェアとして、ＣＰＵ１４１、メモリ１４２、ストレージ装置１４３、ネットワークインタフェース１４４、入力装置１４５、及び出力装置１４６を有する。各ハードウェアは内部バス等を介して接続される。
【００２９】
ＣＰＵ１４１、メモリ１４２、ストレージ装置１４３、及びネットワークインタフェース１４４は、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４と同様のハードウェアである。
【００３０】
入力装置１４５は、データ等を入力するための装置であり、キーボード、マウス、及びタッチパネル等を含む。
【００３１】
出力装置１４６は、データ等を出力するための装置であり、ディスプレイ及びタッチパネル等を含む。
【００３２】
図２は、実施例１のシミュレーションシステムのソフトウェア構成を示す図である。
【００３３】
データ管理サーバ１１０は、履歴管理情報２１１及び履歴容量管理情報２１２を保持する。
【００３４】
履歴管理情報２１１は、履歴を管理するための情報である。履歴容量管理情報２１２は、保存されている履歴のデータ量を管理するための情報である。履歴管理情報２１１のデータ構造については図３を用いて説明する。また、履歴容量管理情報２１２のデータ構造については図４を用いて説明する。
【００３５】
シミュレーション実行管理サーバ１００は、シミュレーション実行管理モジュール２０１及び容量管理モジュール２０２を実現するプログラムを保持する。
【００３６】
シミュレーション実行管理モジュール２０１は、シミュレーションの制御を行う。具体的には、シミュレーション実行管理モジュール２０１は、シミュレーションにおけるステップ処理の実行時に、履歴を利用できるか否かを判定する。履歴を利用できない場合、シミュレーション実行管理モジュール２０１は、シミュレーション実行サーバ１３０にステップ処理の実行を指示する。履歴を利用できる場合、シミュレーション実行管理モジュール２０１は、ステップ処理の実行を指示することなく履歴に含まれる出力値を応答する。
【００３７】
容量管理モジュール２０２は、データ量が閾値より小さくなるように履歴管理情報２１１を管理する。
【００３８】
機械学習実行サーバ１２０は、シミュレーションの結果に基づいて機械学習を実行する機械学習実行モジュール２２１を実現するプログラムを保持する。
【００３９】
実施例１の機械学習実行モジュール２２１は、機械学習を実行することによって、入力状態値からステップ処理で使用するパラメータを算出するためのモデルを生成する。また、機械学習実行モジュール２２１は、入力状態値が入力された場合、モデルを用いてパラメータを算出する。
【００４０】
シミュレーション実行サーバ１３０は、シミュレーションを実行するシミュレーション実行モジュール２３１を実現するプログラムを保持する。
【００４１】
ユーザ端末１４０は、シミュレーション実行管理サーバ１００等に対する操作を行うアプリケーション２４１を実現するプログラムを保持する。
【００４２】
図３は、実施例１の計算機システムにおけるモジュール間のデータの入出力を説明する図である。
【００４３】
シミュレーション実行管理サーバ１００は、ユーザ端末１４０のアプリケーション２４１からシミュレーションの実行要求を受け付けた場合、シミュレーション実行管理モジュール２０１を呼び出す。シミュレーションの実行要求には、入力状態値を格納する初期状態情報３０１が含まれる。
【００４４】
シミュレーション実行管理モジュール２０１は、初期状態情報３０１を状態情報３０２に設定し、状態情報３０２を含むパラメータの算出要求を機械学習実行サーバ１２０に送信する。
【００４５】
機械学習実行サーバ１２０は、パラメータの算出要求を受信した場合、機械学習実行モジュール２２１を呼び出す。機械学習実行モジュール２２１は、状態情報３０２に格納される入力状態値をモデルに入力することによって、パラメータを算出する。機械学習実行モジュール２２１は、シミュレーション実行管理サーバ１００に、算出されたパラメータを格納するパラメータ情報３０３を送信する。
【００４６】
シミュレーション実行管理サーバ１００のシミュレーション実行管理モジュール２０１は、パラメータ情報３０３を受信した場合、データ管理サーバ１１０が管理する履歴管理情報２１１にアクセスし、利用可能な履歴が存在するか否かを判定する。
【００４７】
利用可能な履歴が存在する場合、シミュレーション実行管理モジュール２０１は、履歴を取得するために、参照情報３０４を含む履歴の読出要求を容量管理モジュール２０２に送信する。容量管理モジュール２０２は、参照情報３０４に基づいて履歴管理情報２１１から履歴を読み出し、当該履歴に含まれる入力状態値、パラメータ、及び出力状態値を格納するシミュレーション実行結果情報３０５をシミュレーション実行管理モジュール２０１に送信する。また、容量管理モジュール２０２は、参照情報３０４に基づいて履歴容量管理情報２１２を更新する。
【００４８】
利用可能な履歴が存在しない場合、シミュレーション実行管理モジュール２０１は、シミュレーション実行サーバ１３０に、状態情報３０２及びパラメータ情報３０３を含むステップ処理の実行要求を送信する。
【００４９】
シミュレーション実行サーバ１３０は、ステップ処理の実行要求を受信した場合、シミュレーション実行モジュール２３１を呼び出す。シミュレーション実行モジュール２３１は、ステップ処理を実行する。実施例１では、ステップ処理の結果として新たな状態値（出力状態値）が算出される。シミュレーション実行モジュール２３１は、シミュレーション実行管理サーバ１００に、出力状態値を含む履歴を格納するシミュレーション実行結果情報３０５を送信する。
【００５０】
シミュレーション実行管理サーバ１００は、シミュレーション実行結果情報３０５を受信した場合、容量管理モジュール２０２を呼び出す。容量管理モジュール２０２は、受信したシミュレーション実行結果情報３０５から生成される履歴を履歴管理情報２１１に格納し、また、履歴容量管理情報２１２を更新する。
【００５１】
履歴管理情報２１１に履歴を追加する場合、容量管理モジュール２０２は、履歴管理情報２１１のデータ量に基づいて、履歴管理情報２１１から履歴を削除する必要があるか否かを判定する。履歴管理情報２１１から履歴を削除する必要があると判定された場合、容量管理モジュール２０２は、履歴容量管理情報２１２に基づいて削除する履歴を選択し、履歴管理情報２１１から選択された履歴を削除する。
【００５２】
また、容量管理モジュール２０２は、シミュレーション実行管理モジュール２０１に、シミュレーション実行結果情報３０５を送信する。
【００５３】
シミュレーション実行管理モジュール２０１は、シミュレーション実行結果情報３０５を受信した場合、シミュレーション実行結果情報３０５に含まれる出力状態値を格納する状態情報３０２を設定し、状態情報３０２を含むパラメータの算出要求を機械学習実行サーバ１２０に送信する。
【００５４】
実施例１の計算機システムでは、格納される履歴のデータ量が閾値より大きくならないように履歴を管理することによって、限られた履歴を用いてシミュレーションを効率的に実行できる。
【００５５】
次に、図３に示した情報のデータ構造について説明する。ここでは、装置の制御に関するシミュレーションを行う場合を例に各情報のデータ構造について説明する。座標、速度、角度、及び角速度を状態値とし、また、加速度をパラメータとして扱うシミュレーションを想定する。
【００５６】
図４は、実施例１の初期状態情報３０１のデータ構造の一例を示す図である。
【００５７】
初期状態情報３０１は、状態値の初期値を格納するフィールドから構成される。図４に示す初期状態情報３０１は、座標ｘ４０１、速度ｖ４０２、角度ｐｈｉ４０３、及び角速度ｏｍｅｇａ４０４から構成される。なお、状態値の数はシミュレーションの対象に応じて任意に設定できる。
【００５８】
図５は、実施例１の状態情報３０２のデータ構造の一例を示す図である。
【００５９】
状態情報３０２は、入力値を構成する入力状態値を格納するフィールドから構成される。状態情報３０２は、初期状態情報３０１と同一のデータ構造である。図５に示す状態情報３０２は、座標ｘ５０１、速度ｖ５０２、角度ｐｈｉ５０３、及び角速度ｏｍｅｇａ５０４から構成される。座標ｘ５０１、速度ｖ５０２、角度ｐｈｉ５０３、及び角速度ｏｍｅｇａ５０４は、座標ｘ４０１、速度ｖ４０２、角度ｐｈｉ４０３、及び角速度ｏｍｅｇａ４０４と同一のフィールドである。
【００６０】
図６は、実施例１のパラメータ情報３０３のデータ構造の一例を示す図である。
【００６１】
パラメータ情報３０３は、入力値を構成するパラメータを格納するフィールドから構成される。図６に示すパラメータ情報３０３は、加速度ａ６０１から構成される。なお、パラメータの数はシミュレーションの対象に応じて任意に設定できる。
【００６２】
図７は、実施例１のシミュレーション実行結果情報３０５のデータ構造の一例を示す図である。
【００６３】
シミュレーション実行結果情報３０５は、入力値及び出力値を格納するフィールドから構成される。図７に示すシミュレーション実行結果情報３０５は、入力値を格納するフィールドである座標ｘ７０１、速度ｖ７０２、角度ｐｈｉ７０３、及び角速度ｏｍｅｇａ７０４と、出力値を格納するフィールドである座標ｘ２７０５、速度ｖ２７０６、角度ｐｈｉ２７０７、及び角速度ｏｍｅｇａ２７０８とから構成される。
【００６４】
図８は、実施例１の履歴管理情報２１１のデータ構造の一例を示す図である。
【００６５】
履歴管理情報２１１は、ＩＤ８０１、ｋｅｙ８０２、及びｖａｌｕｅ８０３から構成されるエントリを一つ以上格納する。一つのエントリが一つの履歴に対応する。
【００６６】
ＩＤ８０１は、履歴を一意に識別するための識別情報である。ＩＤ８０１には、例えば、番号が格納される。
【００６７】
ｋｅｙ８０２は、履歴を検索する場合に検索キーとして使用する値を格納するフィールド群である。実施例１のｋｅｙ８０２には、入力状態値を格納する座標ｘ８１１、速度ｖ８１２、角度ｐｈｉ８１３、及び角速度ｏｍｅｇａ８１４と、パラメータを格納する加速度ａ８１５が含まれる。
【００６８】
ｖａｌｕｅ８０３は、ステップ処理の結果を格納するフィールド群である。実施例１のｖａｌｕｅ８０３には、出力状態値を格納する座標ｘ２８２１、速度ｖ２８２２、角度ｐｈｉ２８２３、角速度ｏｍｅｇａ２８２４、及び実行サイクルｔ＿ｃｎｔ８２５が含まれる。
【００６９】
実行サイクルｔ＿ｃｎｔ８２５は、エントリに対応するステップ処理を実行したシミュレーションの中で時系列が最も現在に近いシミュレーションの実行順番を格納するフィールドである。例えば、実行サイクルｔ＿ｃｎｔ８２５が「１」である場合、１回目のシミュレーションにおいて実行されたステップ処理の結果を含む履歴であることを示す。２回目及び４回目のシミュレーション処理において実行されたステップ処理の結果を含む履歴に対応するエントリの実行サイクルｔ＿ｃｎｔ８２５には「４」が格納される。
【００７０】
実施例１では、履歴の新しさを示す時間情報として実行サイクルｔ＿ｃｎｔ８２５を用いている。なお、履歴の新しさを示す時間情報は、実行サイクルｔ＿ｃｎｔ８２５以外の情報でもよい。
【００７１】
図９は、実施例１の履歴容量管理情報２１２のデータ構造の一例を示す図である。
【００７２】
履歴容量管理情報２１２は、履歴管理情報２１１に基づいて生成されるデータである。具体的には、図９に示すように、履歴容量管理情報２１２は、実行サイクルと履歴の識別情報のリストとを対応づけたデータ構造である。
【００７３】
なお、矩形の番号は実行サイクルを表す。円の番号は履歴の識別情報を表す。枠９０１は、シミュレーションの実行サイクルの列を表す。枠９０２は、実行サイクルに対応づけられる履歴のリストを表す。
【００７４】
図９に示すような形式で履歴を管理することによって、利用されていない履歴を把握することができる。
【００７５】
図１０は、実施例１の参照情報３０４のデータ構造の一例を示す図である。
【００７６】
参照情報３０４は、履歴に含まれるｋｅｙ８０２から構成される。図１０に示す参照情報３０４は、座標ｘ１００１、速度ｖ１００２、角度ｐｈｉ１００３、角速度ｏｍｅｇａ１００４、加速度ａ１００５、及び実行サイクルｔ＿ｃｎｔ１００６から構成される。座標ｘ１００１、速度ｖ１００２、角度ｐｈｉ１００３、角速度ｏｍｅｇａ１００４、及び加速度ａ１００５は、座標ｘ８１１、速度ｖ８１２、角度ｐｈｉ８１３、角速度ｏｍｅｇａ８１４、及び加速度ａ８１５と同一のフィールドである。
【００７７】
実行サイクルｔ＿ｃｎｔ１００６は、現在実行されているシミュレーションの実行サイクルを格納するフィールドである。
【００７８】
図１１は、実施例１のシミュレーション実行管理サーバ１００のシミュレーション実行管理モジュール２０１が実行する処理の一例を説明するフローチャートである。
【００７９】
シミュレーション実行管理サーバ１００は、初期状態情報３０１を含むシミュレーション実行要求をユーザ端末１４０から受信した場合、以下で説明する処理を開始する。
【００８０】
まず、シミュレーション実行管理モジュール２０１は、内部変数として保持する実行サイクルを更新する（ステップＳ１１０１）。
【００８１】
具体的には、シミュレーション実行管理モジュール２０１は、実行サイクルとして保持している値に１を加算する。なお、実行サイクルの初期値は０に設定されているものとする。
【００８２】
次に、シミュレーション実行管理モジュール２０１は、シミュレーション実行要求に含まれる初期状態情報３０１を取得し、状態情報３０２として設定する（ステップＳ１１０２）。
【００８３】
次に、シミュレーション実行管理モジュール２０１は、機械学習実行サーバ１２０に状態情報３０２を含むパラメータの算出要求を送信する（ステップＳ１１０３）。その後、シミュレーション実行管理モジュール２０１は、機械学習実行サーバ１２０からの応答を受信するまで待ち状態に移行する。なお、機械学習実行サーバ１２０が実行する処理の詳細は図１３を用いて説明する。
【００８４】
シミュレーション実行管理モジュール２０１は、機械学習実行サーバ１２０からパラメータ情報３０３を受信した場合（ステップＳ１１０４）、履歴管理情報２１１に利用可能な履歴が存在するか否かを判定する（ステップＳ１１０５）。
【００８５】
具体的には、シミュレーション実行管理モジュール２０１は、状態情報３０２及びパラメータ情報３０３を含む検索要求をデータ管理サーバ１１０に送信する。なお、検索要求は、容量管理モジュール２０２を介して送信されてもよい。
【００８６】
データ管理サーバ１１０は、履歴管理情報２１１を参照し、ｋｅｙ８０２の値が状態情報３０２及びパラメータ情報３０３の組合せと一致するエントリを検索する。エントリが存在する場合、データ管理サーバ１１０は、利用可能な履歴が存在する旨をシミュレーション実行管理サーバ１００に通知する。エントリが存在しない場合、データ管理サーバ１１０は、利用可能な履歴が存在しない旨をシミュレーション実行管理サーバ１００に通知する。
【００８７】
利用可能な履歴が存在すると判定された場合、シミュレーション実行管理モジュール２０１は、容量管理モジュール２０２に、参照情報３０４を含む履歴の読出要求を送信する（ステップＳ１１０６）。シミュレーション実行管理モジュール２０１は、シミュレーション実行結果情報３０５を受信するまで待ち状態に移行する。
【００８８】
利用可能な履歴が存在しないと判定された場合、シミュレーション実行管理モジュール２０１は、シミュレーション実行サーバ１３０に、状態情報３０２及びパラメータ情報３０３を含む実行要求を送信する（ステップＳ１１０７）。シミュレーション実行管理モジュール２０１は、シミュレーション実行結果情報３０５を受信するまで待ち状態に移行する。
【００８９】
シミュレーション実行サーバ１３０のシミュレーション実行モジュール２３１は、状態情報３０２及びパラメータ情報３０３を入力値とするステップ処理を実行することによって、出力値を算出する。シミュレーション実行モジュール２３１は、シミュレーション実行管理サーバ１００に、出力値を格納するシミュレーション実行結果情報３０５を送信する。
【００９０】
シミュレーション実行管理モジュール２０１は、シミュレーション実行結果情報３０５を受信した場合（ステップＳ１１０８）、シミュレーション実行結果情報３０５に基づいて状態情報３０２を更新する（ステップＳ１１０９）。
【００９１】
具体的には、シミュレーション実行管理モジュール２０１は、シミュレーション実行結果情報３０５に格納される出力状態値を新たな入力状態値として、状態情報３０２に設定する。
【００９２】
次に、シミュレーション実行管理モジュール２０１は、シミュレーションの終了条件を満たすか否かを判定する（ステップＳ１１１０）。例えば、シミュレーション実行管理モジュール２０１は、実行サイクルが閾値より大きい場合、シミュレーションの終了条件を満たすと判定する。なお、本発明はシミュレーションの終了条件に限定されない。
【００９３】
シミュレーションの終了条件を満たさないと判定された場合、シミュレーション実行管理モジュール２０１は、ステップＳ１１０３に戻り、同様の処理を実行する。
【００９４】
シミュレーションの終了条件を満たすと判定された場合、シミュレーション実行管理モジュール２０１は、処理を終了する。
【００９５】
実施例１では、シミュレーション実行管理サーバ１００は、データ管理サーバ１１０にアクセスして、利用可能な履歴を検索する。利用可能な履歴が存在する場合、シミュレーション実行管理サーバ１００は、履歴管理情報２１１から当該履歴を読み出す。これによって、ステップ処理を実行することなく出力値を取得できる。シミュレーション実行管理サーバ１００とデータ管理サーバ１１０との間で通信が発生するが、当該通信によって発生するシミュレーションの遅延は、ステップ処理に要する時間より十分小さい。したがって、シミュレーションの高速化を実現できる。
【００９６】
図１２は、実施例１のシミュレーション実行管理サーバ１００の容量管理モジュール２０２が実行する処理の一例を説明するフローチャートである。
【００９７】
容量管理モジュール２０２は、外部入力を受け付けた場合、以下で説明する処理を開始する。
【００９８】
容量管理モジュール２０２は、外部入力が履歴の読出要求であるか否かを判定する（ステップＳ１２０１）。
【００９９】
外部入力が履歴の読出要求であると判定された場合、容量管理モジュール２０２は、データ管理サーバに、履歴の読出要求を送信することによって履歴を読み出す（ステップＳ１２０２）。
【０１００】
なお、データ管理サーバ１１０は、履歴の読出要求を受信した場合、以下のような処理を実行する。データ管理サーバ１１０は、ｋｅｙ８０２が参照情報３０４と一致するエントリを検索し、検索されたエントリを読み出す。また、データ管理サーバ１１０は、容量管理モジュール２０２に読み出されたエントリを送信する。
【０１０１】
次に、容量管理モジュール２０２は、データ管理サーバ１１０に履歴容量管理情報２１２の更新要求を送信することによって、履歴容量管理情報２１２を更新する（ステップＳ１２０３）。その後、容量管理モジュール２０２は処理を終了する。履歴容量管理情報２１２の更新要求には、ステップＳ１２０２において検索されたエントリのＩＤ８０１、及び参照情報３０４の実行サイクルｔ＿ｃｎｔ１００６が含まれる。
【０１０２】
なお、データ管理サーバ１１０は、履歴容量管理情報２１２の更新要求を受信した場合、以下のような（更新処理１）及び（更新処理２）を実行する。
【０１０３】
（更新処理１）データ管理サーバ１１０は、履歴管理情報２１１を参照し、ＩＤ８０１が履歴容量管理情報２１２の更新要求に含まれるＩＤ８０１に一致するエントリを検索する。データ管理サーバ１１０は、検索されたエントリの実行サイクルｔ＿ｃｎｔ８２５に、履歴容量管理情報２１２の更新要求に含まれる実行サイクルｔ＿ｃｎｔ１００６を設定する。
【０１０４】
（更新処理２）データ管理サーバ１１０は、実行サイクルｔ＿ｃｎｔ８２５が同一の履歴のグループを生成する。データ管理サーバ１１０は、グループに含まれる履歴をＩＤ８０１の小さい順に連結することによって履歴の列を生成する。これによって、枠９０２に対応する履歴のリストが生成される。データ管理サーバ１１０は、実行サイクルｔ＿ｃｎｔ８２５を小さい順に連結する。以上の処理によって、図９に示すような履歴容量管理情報２１２が生成される。
【０１０５】
外部入力が読出要求でないと判定された場合、容量管理モジュール２０２は、外部入力がシミュレーション実行結果情報３０５であるか否かを判定する（ステップＳ１２０４）。
【０１０６】
外部入力がシミュレーション実行結果情報３０５でないと判定された場合、容量管理モジュール２０２は、外部入力に基づいて任意の処理を実行する（ステップＳ１２０５）。その後、容量管理モジュール２０２は処理を終了する。なお、本発明は、任意の処理の内容及び種別に限定されない。
【０１０７】
外部入力がシミュレーション実行結果情報３０５であると判定された場合、容量管理モジュール２０２は、履歴管理情報２１１のデータ量が閾値以上であるか否かを判定する（ステップＳ１２０６）。なお、閾値は、データ管理サーバ１１０の記憶領域の容量等に基づいて自動的に設定されてもよいし、また、ユーザが手動で設定してもよい。また、閾値は任意のタイミングで更新できる。
【０１０８】
履歴管理情報２１１のデータ量が閾値より小さいと判定された場合、容量管理モジュール２０２はステップＳ１２０８に進む。
【０１０９】
履歴管理情報２１１のデータ量が閾値以上であると判定された場合、容量管理モジュール２０２は、データ管理サーバ１１０に履歴の削除要求を送信することによって履歴管理情報２１１から履歴を削除する（ステップＳ１２０７）。その後、容量管理モジュール２０２はステップＳ１２０８に進む。
【０１１０】
なお、データ管理サーバ１１０は、エントリの削除要求を受信した場合、以下のような処理を実行する。データ管理サーバ１１０は、履歴容量管理情報２１２を参照し、最も古いシミュレーションに対応づけられる履歴を特定する。すなわち、データ管理サーバ１１０は、実行サイクルが最も小さい履歴のリストを特定する。データ管理サーバ１１０は、履歴管理情報２１１を参照し、ＩＤ８０１が特定されたリストに含まれる履歴の識別情報に一致するエントリを削除する。データ管理サーバ１１０は、履歴管理情報２１１のデータ量が閾値より小さくなるまで同様の処理を実行する。
【０１１１】
ステップＳ１２０７の処理を実行することによって、履歴の中から、過去に生成され、かつ、利用回数が少ない履歴を優先的に削除することができる。以上がステップＳ１２０７の処理の説明である。
【０１１２】
ステップＳ１２０８では、容量管理モジュール２０２は、履歴の登録要求をデータ管理サーバ１１０に送信することによって、履歴管理情報２１１に履歴を登録する（ステップＳ１２０８）。その後、容量管理モジュール２０２は、ステップＳ１２０９に進む。履歴の登録要求には、シミュレーション実行結果情報３０５が含まれる。
【０１１３】
なお、データ管理サーバ１１０は、履歴の登録要求を受信した場合、以下のような処理を実行する。データ管理サーバ１１０は、履歴管理情報２１１にエントリを追加し、追加されたエントリのＩＤ８０１に識別番号を設定する。データ管理サーバ１１０は、追加されたエントリのｋｅｙ８０２及びｖａｌｕｅ８０３に、シミュレーション実行結果情報３０５の値を設定する。
【０１１４】
ステップＳ１２０９では、容量管理モジュール２０２は、シミュレーション実行結果情報３０５をシミュレーション実行管理モジュール２０１に送信する（ステップＳ１２０９）。その後、容量管理モジュール２０２は処理を終了する。
【０１１５】
履歴管理情報２１１から履歴を読み出した場合、容量管理モジュール２０２は、当該履歴に含まれる入力値及び出力値を格納するシミュレーション実行結果情報３０５をシミュレーション実行管理モジュール２０１に送信する。シミュレーション実行サーバ１３０からシミュレーション実行結果情報３０５を受信した場合、容量管理モジュール２０２は、当該シミュレーション実行結果情報３０５をシミュレーション実行管理モジュール２０１に転送する。
【０１１６】
ステップＳ１２０２の処理によって、履歴の利用に伴って実行サイクル及び履歴の対応関係が更新される。一方、履歴が利用されない場合、実行サイクル及び履歴の対応関係は更新されない。
【０１１７】
ステップＳ１２０７では、実行サイクル及び履歴の対応関係に基づいて、最も古い実行サイクルに対応づけられる履歴が削除される。これによって、最近生成された履歴及び最近使用された履歴を優先的に履歴管理情報２１１に格納できる。また、実行サイクル単位で履歴を削除することによって、管理コストをかけずに容易に記憶領域を確保することができる。
【０１１８】
図１３は、実施例１の機械学習実行サーバ１２０がパラメータの算出要求を受信した場合に実行する処理の一例を説明するフローチャートである。
【０１１９】
機械学習実行サーバ１２０の機械学習実行モジュール２２１は、シミュレーション実行管理サーバ１００から状態情報３０２を含むパラメータの算出要求を受信した場合、以下で説明する処理を開始する。
【０１２０】
まず、機械学習実行モジュール２２１は、機械学習によって得られたモデルに状態情報３０２を入力することによって、パラメータを算出する（ステップＳ１３０１）。
【０１２１】
次に、機械学習実行サーバ１２０は、シミュレーション実行管理サーバ１００に、算出されたパラメータを格納するパラメータ情報３０３を送信する（ステップＳ１３０２）。その後、機械学習実行モジュール２２１は処理を終了する。
【０１２２】
なお、実施例１では、機械学習実行モジュール２２１がパラメータを算出する機能を有しているが、シミュレーション実行管理モジュール２０１等の他のモジュールが当該機能を有してもよい。
【０１２３】
実施例１によれば、シミュレーション実行管理サーバ１００は、シミュレーションにおけるステップ処理の実行時に、過去に実行されたステップ処理の結果を格納する履歴を利用することによって、ステップ処理を実行することなく出力値を取得できる。これによって、シミュレーション全体の処理速度を向上させることができ、また、計算機リソースの使用量を抑えることができる。
【０１２４】
また、シミュレーション実行管理サーバ１００は、履歴を格納するため記憶領域の容量が不足した場合、履歴の使用実績に基づいて履歴を削除する。これによって、有用な履歴がデータ管理サーバ１１０に格納されるように制御できる。
【０１２５】
以上で説明した構成によって、有限である記憶領域の容量を効率的に使用して、高速なシミュレーションを実現できる。
【０１２６】
なお、実施例１では、物理的な計算機を用いて各サーバを実現しているが、仮想化技術を用いて各サーバを実現してもよい。また、各サーバが有する機能を一つの計算機に集約してもよい。例えば、シミュレーション実行管理サーバ１００、機械学習実行サーバ１２０、及びシミュレーション実行サーバ１３０を一つの計算機に集約してもよい。また、シミュレーション実行管理サーバ１００及びデータ管理サーバ１１０を一つの計算機に集約してもよい。
【０１２７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１２８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるＣＰＵが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１２９】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１３０】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるＣＰＵが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１３１】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１３２】
１００  シミュレーション実行管理サーバ
１１０  データ管理サーバ
１２０  機械学習実行サーバ
１３０  シミュレーション実行サーバ
１４０  ユーザ端末
１０１、１１１、１２１、１３１、１４１  ＣＰＵ
１０２、１１２、１２２、１３２、１４２  メモリ
１０３、１１３、１２３、１３３、１４３  ストレージ装置
１０４、１１４、１２４、１３４、１４４  ネットワークインタフェース
１４５  入力装置
１４６  出力装置
１９０  ネットワーク
２０１  シミュレーション実行管理モジュール
２０２  容量管理モジュール
２１１  履歴管理情報
２１２  履歴容量管理情報
２２１  機械学習実行モジュール
２３１  シミュレーション実行モジュール
２４１  アプリケーション
３０１  初期状態情報
３０２  状態情報
３０３  パラメータ情報
３０４  参照情報
３０５  シミュレーション実行結果情報
【図１】
2019197465.tif 000003
【図２】
2019197465.tif 000004
【図３】
2019197465.tif 000005
【図４】
2019197465.tif 000006
【図５】
2019197465.tif 000007
【図６】
2019197465.tif 000008
【図７】
2019197465.tif 000009
【図８】
2019197465.tif 000010
【図９】
2019197465.tif 000011
【図１０】
2019197465.tif 000012
【図１１】
2019197465.tif 000013
【図１２】
2019197465.tif 000014
【図１３】
2019197465.tif 000015