(57)【要約】【課題】計算に必要なデータ、リソース及びシミュレーションモデルを共有することが可能なシミュレーションシステム、シミュレーション方法及びプログラムを提供する【解決手段】シミュレーションシステム１００は、予め定義されたデータ構造を有する入力データを提供するデータソース１２１乃至１２７、シミュレーションモデルの入力を受け付けるモデル入力部１１３、シミュレーションモデルの実行に必要な入力データをデータソース１２１乃至１２７から取得するモデル制御部１３１、シミュレーションモデルによる計算を実行し、計算結果として出力データを生成する計算処理制御部１３３、出力データを出力する結果出力部１４１とを有する。【選択図】図１
2018010381.tif 000002
【特許請求の範囲】
【請求項１】
予め定義されたデータ構造を有する入力データを提供するデータソースと、
シミュレーションモデルの入力を受け付けるモデル入力部と、
前記シミュレーションモデルの実行に必要な前記入力データを前記データソースから取得するモデル制御部と、
前記シミュレーションモデルによる計算を実行し、計算結果として出力データを生成する計算処理制御部と、
前記出力データを出力する結果出力部と、を有する
シミュレーションシステム。
【請求項２】
前記データ構造を有するユーザデータの入力を受け付けるユーザデータ入力部をさらに有し、
前記データソースは、前記ユーザデータを格納するユーザデータ格納部を含む
請求項１記載のシミュレーションシステム。
【請求項３】
前記計算処理制御部は、前記データ構造を有する出力データを出力し、
前記データソースは、前記出力データを格納する結果データ格納部を含む
請求項１記載のシミュレーションシステム。
【請求項４】
前記データソースは、外部から取得したデータを前記データ構造を有する前記入力データとして提供する外部データ参照部を含む
請求項１記載のシミュレーションシステム。
【請求項５】
前記モデル制御部は、前記データソースに含まれる複数の前記入力データ提供手段それぞれから前記入力データを取得するデータアクセス共通インターフェースを有する
請求項１記載のシミュレーションシステム。
【請求項６】
前記シミュレーションモデルは、前記入力データを取得するためのメソッド呼出しを含み、
前記モデル制御部は、前記メソッド呼出しに応じて前記入力データを前記データソースから取得する
請求項１記載のシミュレーションシステム。
【請求項７】
前記計算処理制御部は、前記計算に必要なリソースを動的に割り当てる
請求項１記載のシミュレーションシステム。
【請求項８】
コンピュータが、
シミュレーションモデルの入力を受け付けるモデル入力ステップと、
前記シミュレーションモデルの実行に必要な、予め定義されたデータ構造を有する入力データを、データソースから取得するモデル制御ステップと、
前記シミュレーションモデルによる計算を実行し、計算結果として出力データを生成する計算処理制御ステップと、
前記出力データを出力する結果出力ステップと、を有する
シミュレーション方法。
【請求項９】
コンピュータに請求項８記載のシミュレーション方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシミュレーションシステム、シミュレーション方法及びプログラムに関し、特に計算に必要なデータ及びリソースを共有する技術に関する。
【背景技術】
【０００２】
一般に、シミュレーション対象ごとに異なるシミュレータが作成及び使用される。そして従来は、シミュレータが扱うことのできるデータの形式もシミュレータ毎に異なることが一般的であった。そのため、複数の異なるシミュレータを用いてシミュレーションを実施しようとするユーザは、シミュレータごとにそれぞれ異なる形式の入力データを準備する必要があった。また、各シミュレータがシミュレーション結果として出力するデータの形式もまちまちであったため、異なる複数のシミュレータを連携させることが困難であった。複数の異なるシミュレータを連携させようとすれば、例えばシミュレータのユーザ同士が事前にデータの形式や受渡方法等を綿密に取決めておくなど、特別な準備と運用上の工夫とが必要とされていた。
【０００３】
加えて、従来は、シミュレーションを実施するユーザ（典型的には研究者）が、自身の専門とは異なる分野のシミュレータを利用することにも困難性があった。一般に、シミュレーションモデルはユーザの研究分野に関する専門的知見に基づいて作成されるが、従来、専門分野の垣根を超えてそのような知見が共有されることは稀であった。そのため、異なる研究分野に属するユーザ同士がシミュレーションモデルやその計算結果を共同で利用することも困難とされていた。
【０００４】
この点、特許文献１には、あるサービスの出力データが、他のサービスの入力データとなりうるか否かを評価し、サービス設計者に提示するシステムが開示されている。
【０００５】
また、特許文献２には、複数のシミュレーションモデルが、シミュレーションに伴って発生するデータを共通基盤に蓄積するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３３４６２７号公報
【特許文献２】特開２００３−０９９６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１は、入出力データの形式がサービス間で相違するため、複数のサービスを連携させることが困難であるという課題を示している。しかしながら、特許文献１は、そのデータ形式の異同を評価する手法を提示するにとどまっており、データ形式の相違を解消するための抜本的な方法を開示していない。
【０００８】
また、特許文献２は、複数のシミュレータがアクセスできる共通基盤に言及している。しかしながら、その共通基盤は単に各シミュレータがログを記録するために用いられるにとどまっており、各シミュレータ間の連携方法は開示されていない。
【０００９】
本発明は、このような問題点を解決するためになされたものであり、計算に必要なデータ及びリソースを共有することが可能なシミュレーションシステム、シミュレーション方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一実施形態に係るシミュレーションシステムは、予め定義されたデータ構造を有する入力データを提供するデータソースと、シミュレーションモデルの入力を受け付けるモデル入力部と、前記シミュレーションモデルの実行に必要な前記入力データを前記データソースから取得するモデル制御部と、前記シミュレーションモデルによる計算を実行し、計算結果として出力データを生成する計算処理制御部と、を有するものである。
【００１１】
本発明の他の実施形態に係るシミュレーションシステムは、前記データ構造を有するユーザデータの入力を受け付けるユーザデータ入力部をさらに有し、前記データソースは、前記ユーザデータを格納するユーザデータ格納部を含むものである。
【００１２】
本発明の他の実施形態に係るシミュレーションシステムは、前記計算処理制御部は、前記データ構造を有する出力データを出力し、前記データソースは、前記出力データを格納する結果データ格納部を含むものである。
【００１３】
本発明の他の実施形態に係るシミュレーションシステムは、前記データソースは、外部から取得したデータを前記データ構造を有する前記入力データとして提供する外部データ参照部を含むものである。
【００１４】
本発明の他の実施形態に係るシミュレーションシステムは、前記モデル制御部は、前記データソースに含まれる複数の前記入力データ提供手段それぞれから前記入力データを取得するデータアクセス共通インターフェースを有するものである。
【００１５】
本発明の他の実施形態に係るシミュレーションシステムは、前記シミュレーションモデルは、前記入力データを取得するためのメソッド呼出しを含み、前記モデル制御部は、前記メソッド呼出しに応じて前記入力データを前記データソースから取得するものである。
【００１６】
本発明の他の実施形態に係るシミュレーションシステムは、前記計算処理制御部は、前記計算に必要なリソースを動的に割り当てるものである。
【００１７】
本発明の他の実施形態に係るシミュレーション方法は、コンピュータが、シミュレーションモデルの入力を受け付けるモデル入力ステップと、前記シミュレーションモデルの実行に必要な、予め定義されたデータ構造を有する入力データを、データソースから取得するモデル制御ステップと、前記シミュレーションモデルによる計算を実行し、計算結果として出力データを生成する計算処理制御ステップと、前記出力データを出力する結果出力ステップと、を有するものである。
【００１８】
本発明の他の実施形態に係るプログラムは、コンピュータに上記シミュレーション方法を実行させるためのプログラムである。
【発明の効果】
【００１９】
本発明により、計算に必要なデータ及びリソースを共有することが可能なシミュレーションシステム、シミュレーション方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態にかかるシミュレーションシステム１００の構成を示す図である。
【図２】シミュレーションシステム１００におけるデータの流れを示す図である。
【図３】シミュレーションシステム１００におけるデータの流れを示す図である。
【図４】シミュレーションシステム１００の動作を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。まず、図１を用いて、本発明の実施の形態にかかるシミュレーションシステム１００の構成について説明する。
【００２２】
シミュレーションシステム１００は、ユーザデータ入力部１１１、モデル入力部１１３、ユーザデータ格納部１２１、内部データ格納部１２３、外部データ参照部１２５、結果データ格納部１２７、モデル制御部１３１、計算処理制御部１３３、結果出力部１４１を有する。
【００２３】
シミュレーションシステム１００は、典型的には中央処理装置、記憶装置及び入出力装置を備え、中央処理装置が記憶装置に予め格納されたプログラムを読み出して実行することにより上述の各処理部を論理的に実現する１又は複数の情報処理装置である。シミュレーションシステム１００は、好ましくはネットワークを介してユーザに情報処理サービスを提供するクラウドサービスとして構成される。
【００２４】
ユーザデータ入力部１１１は、図示しないユーザ端末とネットワーク等を介して接続され、ユーザ端末から送信されたユーザデータを受信する。ユーザデータとは、シミュレーションモデルに対して入力可能なデータの１つであって、ユーザ自身により作成されたものをいう。ユーザデータ入力部１１１は、受信したユーザデータをユーザデータ格納部１２１に格納する。
【００２５】
ユーザデータ格納部１２１は、ユーザデータ入力部１１１が受信したユーザデータを格納する記憶領域である。
【００２６】
内部データ格納部１２３は、予め準備された種々の入力データを格納する記憶領域である。
【００２７】
外部データ参照部１２５は、ネットワーク等を介して外部公開データを取得する。外部公開データとは、典型的にはセンサネットワーク、ＩｏＴシステム又は第三者が運営するサービス等が提供する入力データであって、例えば交通、気象その他のリアルタイムデータ又は統計データ等が含まれ得る。外部データ参照部１２５は、これらの外部公開データをオンデマンドで又は所定のタイミングで取得し、必要に応じ記憶領域に格納する。また、外部公開データがシミュレーションモデルに入力可能な形式でない場合、外部データ参照部１２５が外部公開データをシミュレーションモデルに入力可能な形式に変換しても良い。
【００２８】
結果データ格納部１２７は、シミュレーションモデルによる計算結果である出力データを格納する。
【００２９】
ここで、ユーザデータ格納部１２１、内部データ格納部１２３、外部データ参照部１２５、結果データ格納部１２７は全て、予め定義された共通の形式に従って作成されたデータを入力又は出力する。このようにすることで、シミュレーションシステム１００においては、シミュレーションモデルに入力されるデータ及びシミュレーションモデルから出力されるデータの構造が規格化される。例えば、規格化されたデータ構造は１以上の変数を含むものとし、各変数の型やサイズ、及び各変数にどのような値をセットすべきかといった規約が予め定義されているものとする。この場合、入力データ及び出力データは、これらの変数に具体的な値が格納されたデータセットとして実現される。これにより、図２に示すように、ユーザデータに代表される入力データを様々なシミュレーションモデルに入力したり、あるシミュレーションモデルからの出力データを他のシミュレーションモデルに対する入力データとして使用したりすることが可能となる。すなわち、入出力データの構造を規格化することで、様々なシミュレーションモデル間でのデータの流通を実現することができる。
【００３０】
シミュレーションモデル間でのデータ流通の一例として津波避難のシミュレーション例を示す。まず、津波に関するシミュレーションで利用可能なデータ構造Ａを予め定義する。データ構造Ａは、津波の到達タイミングを示す変数や津波の大きさを示す変数などを含むものとする。津波シミュレーションモデルが、地盤の断層パラメータ等を入力として津波の挙動の予測計算を実施し、予測結果としてデータａ１を出力する。データａ１はデータ構造Ａに従って作成されたデータセットである。次に、避難シミュレーションモデルが、データａ１を入力として人々の避難行動の予測計算を実施し、予測結果を出力する。このように、シミュレーションシステム１００によれば、津波シミュレーションモデルと避難シミュレーションモデルとがデータａ１を介して連携する。津波シミュレーションモデルと避難シミュレーションモデルという全く異なる研究分野の専門的知見に基づいて作成されたシミュレーションモデル同士であっても、予め設計された共通のデータ構造を媒介として連携させることができる。
【００３１】
また、例えば街区や建物内における人々の避難行動、道路上における交通行動、店舗内動線等はいずれも異なるシミュレーションモデルを用いて予測できる。しかしながら、これらのモデルにおけるシミュレーション手法はいずれも人々の空間的な行動を予測し、地理空間における道路や建物の位置、標高等のデータ等に規律されるという共通点がある。このような場合は、例えば座標を用いて地理空間を記述したデータ構造Ｂを予め定義し、データ構造Ｂに従う入出力データを媒体とすることで、上述のシミュレーションモデルを空間的に連携させることができる。
【００３２】
モデル入力部１１３は、図示しないユーザ端末とネットワーク等を介して接続され、ユーザ端末から送信されたシミュレーションモデルを受信する。シミュレーションモデルとは、所定の形式の入力データを使用し、予め定義された手続や計算式等によって何らかの事象を予測し、予測結果を出力データとして出力するプログラムである。モデル入力部１１３は、受信したシミュレーションモデルをモデル制御１３１に引渡す。
【００３３】
モデル制御部１３１は、シミュレーションモデルを解釈して計算に必要な入力データを特定する。また、モデル制御部１３１はデータアクセス共通インターフェースを含み、このインターフェースを使用してユーザデータ格納部１２１、内部データ格納部１２３、外部データ参照部１２５又は結果データ格納部１２７から必要な入力データを取得する。モデル制御部１３１は、取得したシミュレーションモデル及び入力データを計算処理制御部１３３に引渡す。
【００３４】
図３を用いて、データアクセス共通インターフェースの一例について更に説明する。この例のデータアクセス共通インターフェースは、ユーザデータ格納部１２１、内部データ格納部１２３、外部データ参照部１２５及び結果データ格納部１２７等のデータソースからそれぞれどのような入力データを取得可能であるかを示す情報（シミュレーションパラメータ）を管理している。また、データアクセス共通インターフェースはこれらのデータソースにアクセスし、データソース毎に予め定められた手順を用いて入力データ（シミュレーション利用データ）を取得することができる。データアクセス共通インターフェースは、例えばデータソースがリレーショナルデータベース等で構成されていればＳＱＬを用いてデータを抽出し、あるいは外部サイトによる公開データを取得したい場合は外部データ参照部１２５に指令して当該サイトのＵＲＬからデータを取得させる。
【００３５】
一方、シミュレーションモデルは、データ取得メソッド（図３の例では“ＤａｔａＡｃｃｅｓｓ．ｇｅｔＤａｔａ”）を呼び出すことで入力データを取得する。モデル制御部１３１は、シミュレーションモデルからデータ取得メソッドが呼び出されると、データアクセス共通インターフェースに該当する入力データを取得させる。データアクセス共通インターフェースは上述の手順で入力データを取得する。このように、本実施の形態によれば、シミュレーションモデルは実際のデータの所在場所を意識することなく所望の入力データを取得できる。換言すれば、ユーザは入力データの所在を意識することなくシミュレーションモデルを作成できる。そして、上述のように入力データは規格化されているので、どのようなデータソースから取得された入力データであっても、ユーザは統一された方法で入力データを取扱うことができる。
【００３６】
計算処理制御部１３３は、シミュレーションモデル及び入力データを用いて計算を実行する。計算処理制御部１３３は、好ましくは複数の計算機を備え、これらの計算資源を用いて計算を実行する。計算処理制御部１３３は、例えば並列処理やオートスケールといった公知の技術により、シミュレーションモデルの実行数や処理内容に応じて自動的に計算リソースの配分及び融通を行うことができる。この場合、ユーザはシミュレーションに必要な計算リソースを意識する必要がない。
【００３７】
従来、ユーザはシミュレーションの実行に必要な多大な計算資源を自ら用意する必要があった。一般にシミュレーションモデルが複雑になるほど計算時間は長くなる。多数の計算機を用意すれば計算時間の短縮は可能であるが、定常的に利用するわけではない計算環境を整備及び維持することは、ユーザにとって過大な負担であった。一方、本実施の形態にかかるシミュレーションシステム１００は、複数のユーザが共同利用できる計算資源を備える。そして、各ユーザが要求する計算の内容に応じて必要な計算資源を動的に融通する。したがって、ユーザは目的や予算に応じ必要とするだけの計算資源を利用することができる。
【００３８】
計算処理制御部１３３は、計算結果である出力データを結果データ格納部１２７に格納する。出力データもまた規格化されたデータ構造に従って作成される。
【００３９】
結果出力部１４１は、結果データ格納部１２７に格納された出力データを外部に出力する。例えば出力データをマップ表示、グラフ表示、数値表示等の形でディスプレイ等に表示しても良い。あるいは出力データをテキスト又は他の任意のファイル形式で出力しても良い。
【００４０】
つづいて、図４のフローチャートを用いて、シミュレーションシステム１００の動作について説明する。
【００４１】
Ｓ１０１：モデル入力
モデル入力部１１３は、ユーザ端末から送信されたシミュレーションモデルを受信する。上述のように、典型的なシミュレーションモデルは、入力データを取得するための指令を含んでいる。
【００４２】
Ｓ１０２：ユーザデータ入力
ユーザデータ入力部１１１は、ユーザ端末からユーザデータが送信されたならばこれを受信し、ユーザデータ格納部１２１に格納する。上述のように、ユーザデータは予め定義された所定のデータ構造を備えるデータである。
【００４３】
Ｓ１０３：シミュレーション利用データ取得
モデル制御部１３１は、モデル入力部１１３が受信したシミュレーションモデルを解釈して、計算に必要な入力データを特定する。典型的には、モデル制御部１３１は、シミュレーションモデルに記述された上述の指令に基づいて取得すべき入力データを特定できる。データアクセス共通インターフェースが、ユーザデータ格納部１２１、内部データ格納部１２３、外部データ参照部１２５及び結果データ格納部１２７等のデータソースにアクセスして必要な入力データを取得する。上述のように、取得される入力データは予め定義された所定のデータ構造を備えている。
【００４４】
Ｓ１０４：シミュレーション実行
計算処理制御部１３３は、シミュレーションモデル及びデータアクセス共通インターフェースが取得した入力データを用いて計算を実行する。この際、計算処理制御部１３３は計算処理に必要な計算資源を動的に割当てることが好ましい。
【００４５】
Ｓ１０５：シミュレーション結果データ格納
計算処理制御部１３３は、計算結果である出力データを結果データ格納部１２７に格納する。上述のように、格納される出力データも予め定義された所定のデータ構造を備えている。結果データ格納部１２７に格納されたデータは、他のシミュレーションモデルに対する入力データとしても利用可能となる。
【００４６】
Ｓ１０６：結果出力
結果出力部１４１は、結果データ格納部１２７に格納された出力データを外部に出力する。
【００４７】
本実施の形態においては、ユーザデータ格納部１２１、内部データ格納部１２３、外部データ参照部１２５、結果データ格納部１２７は全て、共通の形式に従って作成された入力データを供給する。これにより、シミュレーションシステム１００のプラットフォーム上で実行されるシミュレーションモデルは、規格化された入出力データを用いることになる。これにより、様々なシミュレーションモデル間でのデータの流通を実現することができ、ユーザ間の連携を促進できる。
【００４８】
また、本実施の形態においては、計算処理制御部１３３が、計算処理に必要な計算リソースを自動的に配分及び融通する。これにより、ユーザは計算リソースを意識することなくシミュレーションを実行することができる。
【００４９】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【００５０】
例えば、ユーザデータ格納部１２１、内部データ格納部１２３、外部データ参照部１２５又は結果データ格納部１２７は、入力データだけでなく、様々なシミュレーションモデルから呼出し可能な組込み関数及び計算ライブラリ等を提供しても良い。典型的にはデータアクセス共通インターフェースが入力データと同様の手順でこれらのモジュールを取得できる。
【００５１】
また、ユーザデータ格納部１２１、内部データ格納部１２３又は結果データ格納部１２７は、ユーザが作成したシミュレーションモデルを提供しても良い。典型的にはモデル制御部１３１が、モデル入力部１１３から入力されたシミュレーションモデルをこれらの格納部のいずれかに格納する。そして、シミュレーションシステム１００は、過去に作成されたシミュレーションモデルを検索するためのインターフェースを備えることで、ユーザが所望のシミュレーションモデルを発見できるよう構成されても良い。これにより、あるユーザが自らの研究分野の専門的知見にもとづいて作成したシミュレーションモデルを、他の分野のユーザも利用できるようになる。すなわち、異なる研究分野に属するユーザ間でシミュレーションモデルを流通させることができる。
【００５２】
また、上述の実施の形態では、本発明を主にハードウェア構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００５３】
１００  シミュレーションシステム
１１１  ユーザデータ入力部
１１３  モデル入力部
１２１  ユーザデータ格納部
１２３  内部データ格納部
１２５  外部データ参照部
１２７  結果データ格納部
１３１  モデル制御部
１３３  計算処理制御部
１４１  結果出力部
【図１】
2018010381.tif 000003
【図２】
2018010381.tif 000004
【図３】
2018010381.tif 000005
【図４】
2018010381.tif 000006