(57)【要約】【課題】シミュレータから出力されたデータを自動的に一元管理することが可能なデータ管理装置を提供する。【解決手段】データ管理装置１０は、データ取得部１２と、データ型判定部１４と、データ管理部１６とを有する。データ取得部１２は、シミュレータ２０からシミュレーションデータを取得する。データ型判定部１４は、データ取得部１２によって取得されたシミュレーションデータに関する文字列に基づいて、シミュレーションデータのデータ型を判定する。データ管理部１６は、データ型判定部１４によって判定されたデータ型に応じた管理方法で、シミュレーションデータを管理する。【選択図】図１
2020021172.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのシミュレータからシミュレーションに関する第１のデータを取得するデータ取得手段と、
前記データ取得手段によって取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定するデータ型判定手段と、
前記データ型判定手段によって判定されたデータ型に応じた管理方法で、前記第１のデータを管理するデータ管理手段と
を有するデータ管理装置。
【請求項２】
予め定められたアルゴリズムを用いて前記シミュレータで実行されるシミュレーションに関するパラメータを決定する少なくとも１つの演算装置に、前記データ管理手段によって管理された前記第１のデータのうち前記アルゴリズムに適合するデータ型の前記第１のデータを送信する送信手段
をさらに有する請求項１に記載のデータ管理装置。
【請求項３】
前記データ型判定手段は、前記第１のデータの拡張子を用いて、前記第１のデータのデータ型を判定する
請求項１又は２に記載のデータ管理装置。
【請求項４】
前記データ型判定手段は、前記第１のデータを構成する文字列が数値として扱えるか否かに応じて、前記第１のデータのデータ型を判定する
請求項１〜３のいずれか１項に記載のデータ管理装置。
【請求項５】
前記第１のデータのサイズが予め定められた閾値以上であるか否かを判定するデータサイズ判定手段と、
前記第１のデータのサイズが前記閾値以上でない場合に、前記第１のデータのメタデータを抽出するメタデータ抽出手段と
をさらに有し、
前記データ管理手段は、前記メタデータを格納することで、サイズが前記閾値以上でない前記第１のデータを管理する
請求項１〜４のいずれか１項に記載のデータ管理装置。
【請求項６】
シミュレーションを実行する少なくとも１つのシミュレータと、
前記シミュレータによるシミュレーションに関する第１のデータを管理するデータ管理装置と、
前記シミュレーションに関するパラメータを決定する演算装置と
を有し、
前記データ管理装置は、
前記シミュレータから前記第１のデータを取得するデータ取得手段と、
前記データ取得手段によって取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定するデータ型判定手段と、
前記データ型判定手段によって判定されたデータ型に応じた管理方法で、前記第１のデータを管理するデータ管理手段と
を有し、
前記演算装置は、前記データ管理手段によって管理された前記第１のデータを用いて、前記パラメータを決定し、
前記シミュレータは、前記演算装置によって決定された前記パラメータを用いて、再度、前記シミュレーションを実行する
シミュレーションシステム。
【請求項７】
少なくとも１つのシミュレータからシミュレーションに関する第１のデータを取得し、
前記取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定し、
前記判定されたデータ型に応じた管理方法で、前記第１のデータを管理する
データ管理方法。
【請求項８】
予め定められたアルゴリズムを用いて前記シミュレータで実行されるシミュレーションに関するパラメータを決定する少なくとも１つの演算装置に、前記管理された前記第１のデータのうち前記アルゴリズムに適合するデータ型の前記第１のデータを送信する
請求項７に記載のデータ管理方法。
【請求項９】
少なくとも１つのシミュレータからシミュレーションに関する第１のデータを取得するステップと、
前記取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定するステップと、
前記判定されたデータ型に応じた管理方法で、前記第１のデータを管理するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理装置、データ管理方法及びプログラム、並びに、シミュレーションシステムに関する。
【背景技術】
【０００２】
ネットワーク等を介して大量のデータを取得して、取得されたデータを用いて何らかの処理を行う技術がある。この技術に関連し、特許文献１は、大規模データから出現頻度の高い複合語を抽出する情報処理装置を開示する。特許文献１にかかる情報処理装置は、データ管理装置からブログテキストやＷｅｂページのデータといった大規模データを取得する。特許文献１にかかる情報処理装置は、大規模データに対して形態素解析を行い、解析結果として得た形態素及び／又は形態素の集合である形態素列の出現頻度値を算出し、算出した出現頻度値に基づき、複合語の候補となる文字群を抽出する。そして、特許文献１にかかる情報処理装置は、抽出された文字群を所定の記憶領域に保持し、保持された文字群から、有効な複合語を判定するための条件を満たす文字群を、出現頻度の高い文字群として抽出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１４１７８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
各種のシミュレーションを行う少なくとも１つのシミュレータから出力されるデータ（シミュレーションデータ）をデータベースに格納して統合的に管理することを想定する。このシミュレーションデータは、多種多様なものであって、そのデータ型も様々である。ここで、特許文献１にかかる技術では、取得される大規模データは、テキストデータ（文字列型）であることが前提となっている。したがって、特許文献１にかかる技術では、多種多様なデータ型のシミュレーションデータをデータベースに格納して一元管理する場合、データ型をユーザが指定した上で、データベースに格納する必要があった。
【０００５】
本開示の目的は、このような課題を解決するためになされたものであり、シミュレータから出力されたデータを自動的に一元管理することが可能なデータ管理装置、データ管理方法及びプログラム、並びに、シミュレーションシステムを提供することにある。
【課題を解決するための手段】
【０００６】
本開示にかかるデータ管理装置は、少なくとも１つのシミュレータからシミュレーションに関する第１のデータを取得するデータ取得手段と、前記データ取得手段によって取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定するデータ型判定手段と、前記データ型判定手段によって判定されたデータ型に応じた管理方法で、前記第１のデータを管理するデータ管理手段とを有する。
【０００７】
また、本開示にかかるシミュレーションシステムは、シミュレーションを実行する少なくとも１つのシミュレータと、前記シミュレータによるシミュレーションに関する第１のデータを管理するデータ管理装置と、前記シミュレーションに関するパラメータを決定する演算装置とを有し、前記データ管理装置は、前記シミュレータから前記第１のデータを取得するデータ取得手段と、前記データ取得手段によって取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定するデータ型判定手段と、前記データ型判定手段によって判定されたデータ型に応じた管理方法で、前記第１のデータを管理するデータ管理手段とを有し、前記演算装置は、前記データ管理手段によって管理された前記第１のデータを用いて、前記パラメータを決定し、前記シミュレータは、前記演算装置によって決定された前記パラメータを用いて、再度、前記シミュレーションを実行する。
【０００８】
また、本開示にかかるデータ管理方法は、少なくとも１つのシミュレータからシミュレーションに関する第１のデータを取得し、前記取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定し、前記判定されたデータ型に応じた管理方法で、前記第１のデータを管理する。
【０００９】
また、本開示にかかるプログラムは、少なくとも１つのシミュレータからシミュレーションに関する第１のデータを取得するステップと、前記取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定するステップと、前記判定されたデータ型に応じた管理方法で、前記第１のデータを管理するステップとをコンピュータに実行させる。
【発明の効果】
【００１０】
本開示によれば、シミュレータから出力されたデータを自動的に一元管理することが可能なデータ管理装置、データ管理方法及びプログラム、並びに、シミュレーションシステムを提供できる。
【図面の簡単な説明】
【００１１】
【図１】本開示の実施の形態にかかるシミュレーションシステムの概要を示す図である。
【図２】実施の形態１にかかるシミュレーションシステムの構成を示す図である。
【図３】実施の形態１にかかるデータ管理装置の構成を示す図である。
【図４】実施の形態１にかかるシミュレータの構成を示す図である。
【図５】実施の形態１にかかる演算装置の構成を示す図である。
【図６】実施の形態１にかかるシミュレーションシステムにおける処理の流れを示すシーケンス図である。
【図７】実施の形態１にかかるデータ管理装置によって実行されるデータ管理方法を示すフローチャートである。
【図８】実施の形態１にかかるデータ管理装置によって行われるデータ型判定処理を示すフローチャートである。
【図９】実施の形態１にかかるデータ管理部におけるデータベースの階層構造を視覚的に例示した図である。
【発明を実施するための形態】
【００１２】
（本開示にかかる実施の形態の概要）
本開示の実施形態の説明に先立って、本開示にかかる実施の形態の概要について説明する。図１は、本開示の実施の形態にかかるシミュレーションシステム１の概要を示す図である。シミュレーションシステム１は、データ管理装置１０と、少なくとも１つのシミュレータ２０と、少なくとも１つの演算装置４０とを有する。データ管理装置１０、シミュレータ２０及び演算装置４０は、例えばコンピュータとしての機能を有する。
【００１３】
シミュレータ２０は、シミュレーションを実行する。データ管理装置１０は、シミュレータ２０によるシミュレーションに関するシミュレーションデータ（第１のデータ）を管理する。演算装置４０は、シミュレーションに関するパラメータを決定する。なお、演算装置４０による演算処理は、例えば人工知能（ＡＩ；Artificial Intelligence）、データ同化、または、統計的な手法等を用いて実現され得るが、これに限定されない。
【００１４】
データ管理装置１０は、データ取得部１２と、データ型判定部１４と、データ管理部１６とを有する。データ取得部１２は、データ取得手段として機能する。データ型判定部１４は、データ型判定手段として機能する。データ管理部１６は、データ管理手段として機能する。
【００１５】
データ取得部１２は、シミュレータ２０からシミュレーションデータを取得する。データ型判定部１４は、データ取得部１２によって取得されたシミュレーションデータに関する文字列に基づいて、シミュレーションデータのデータ型を判定する。ここで、「シミュレーションデータに関する文字列」とは、例えば、シミュレーションデータのデータファイルの拡張子、及び、シミュレーションデータに含まれる文字列（つまりシミュレーションデータの中身の文字列）を含むが、これに限定されない。データ管理部１６は、データ型判定部１４によって判定されたデータ型に応じた管理方法で、シミュレーションデータを管理する。ここで、データ型は、例えば、画像（バイナリ）型、文字列型及び数値型等を含むが、これらに限定されない。
【００１６】
演算装置４０は、データ管理部１６によって管理されたシミュレーションデータを用いて、シミュレーションに関するパラメータを決定する。シミュレータ２０は、演算装置４０によって決定されたパラメータを用いて、再度、シミュレーションを実行する。
【００１７】
上記のように、本実施の形態にかかるデータ管理装置１０は、シミュレータ２０から取得されたシミュレーションデータのデータ型を判定し、判定されたデータ型に応じた管理方法で、シミュレーションデータを管理する。これにより、本実施の形態にかかるデータ管理装置１０は、多種多様なシミュレーションデータのデータ型を自動的に判定して、これらのシミュレーションデータを、そのデータ型に適した管理方法で管理することができる。したがって、本実施の形態にかかるデータ管理装置１０は、シミュレータから出力された多種多様な形式のデータを自動的に一元管理することが可能となる。なお、データ管理装置１０で実行されるデータ管理方法及びデータ管理方法を実行するプログラムを用いても、シミュレータから出力されたデータを自動的に一元管理することが可能となる。
【００１８】
さらに、データ管理装置１０を有するシミュレーションシステム１では、シミュレーションデータが、そのデータ型に適した管理方法で管理される。これにより、データ管理装置１０は、演算装置４０等の他のノードによって効率的に利用可能な態様で、シミュレーションデータを管理することができる。したがって、演算装置４０は、その演算（アルゴリズム）に適したデータ型のシミュレーションデータを用いて、シミュレーションに関するパラメータを、適切に決定することができる。したがって、本実施の形態にかかるシミュレーションシステム１は、シミュレータ２０によるシミュレーションの精度を向上させることが可能となる。
【００１９】
（実施の形態１）
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００２０】
図２は、実施の形態１にかかるシミュレーションシステム１の構成を示す図である。シミュレーションシステム１は、ユーザインタフェース４（ＵＩ；User Interface）、シミュレータ２０、データ管理装置１００、演算装置４０、データ除去装置６０、ネットワークエッジ７０、及びデータ監視装置８０を有する。ユーザインタフェース４は、シミュレータ２０と通信可能に接続されている。シミュレータ２０、データ管理装置１００、演算装置４０、データ除去装置６０、ネットワークエッジ７０、及びデータ監視装置８０は、インターネット等のネットワーク２を介して、互いに通信可能に接続されていてもよい。また、シミュレータ２０、データ管理装置１００、演算装置４０、データ除去装置６０、ネットワークエッジ７０、及びデータ監視装置８０は、プロセッサ、メモリ、Ｉ／Ｏ（Input／Output）、ユーザインタフェース等を有するコンピュータとしての機能を有しうる。
【００２１】
ユーザインタフェース４は、ユーザ、または、コンピュータ制御による操作に応じて、シミュレータ２０に対して、自動でシミュレーションを実行する旨の指示を送信する。なお、ユーザインタフェース４によって送信される指示には、シミュレーションで使用されるモデルに入力される入力値（初期値）が含まれてもよい。
【００２２】
シミュレータ２０は、ユーザインタフェース４からの指示に応じて、自動的にシミュレーションを実行する。シミュレータ２０は、モデルに従いシミュレーションを行う。シミュレータ２０は、実行されたシミュレーションに関するデータであるシミュレーションデータを、データ管理装置１００に対して、自動的に送信する。シミュレータ２０については、図４等を参照しながら後述する。ここで、「シミュレーションデータ」は、データファイルであって、モデルの入力値、シミュレーション結果を示すデータ、及び、モデルを示すデータを含み得る。なお、シミュレータ２０は、例えばボット（Ｂｏｔ）等の自動化プログラムによって制御されてもよい。
【００２３】
データ管理装置１００は、図１のデータ管理装置１０に対応する。データ管理装置１００は、データベースを有する。データ管理装置１００は、上述したように、シミュレータ２０から取得されたシミュレーションデータのデータ型を判定し、判定されたデータ型に応じた管理方法で、シミュレーションデータを管理する。データ管理装置１００については、図３等を参照しながら後述する。なお、データ管理装置１００は、複数のコンピュータ装置がネットワークで接続されて構成されたクラスタシステムで実現されてもよい。
【００２４】
演算装置４０は、上述したように、データ管理装置１００によって管理されたシミュレーションデータを用いて、例えば人工知能、データ同化、または、統計的な手法等により、シミュレータ２０によって実行されるシミュレーションに関するパラメータを決定する。演算装置４０については、図５等を参照しながら後述する。なお、「シミュレーションに関するパラメータ」は、モデルを記述する解析式（関数）、モデルを記述する解析式を構成する変数及び定数、モデルに入力される入力値、及びモデルの出力値を含み得る。シミュレータ２０は、演算装置４０によって決定されたパラメータを用いて、再度、シミュレーションを実行する。これにより、シミュレータ２０によるシミュレーションの精度が向上し得る。
【００２５】
データ除去装置６０は、データ管理装置１００によって管理されるシミュレーションデータのうち、不要となるデータを除去する（データクレンジング）。例えば、データ除去装置６０は、シミュレーションの精度の向上に寄与する可能性の低いデータを除去する。ここで、データ除去装置６０は、例えば、機械学習によってシミュレーションデータを分析して、不要なデータを判定してもよい。演算装置４０は、データクレンジングがなされたシミュレーションデータを取得し得る。
【００２６】
ネットワークエッジ７０は、シミュレーションにて対象としている事象の、実際のデータ（実データ）を生成する。つまり、ネットワークエッジ７０は、実データ生成装置としての機能を有する。なお、ネットワークエッジ７０は、例えば、モデルを実装した実機、実機を観測しているセンサ、または、実機を監視している監視装置等であってもよい。ネットワークエッジ７０は、生成された実データを、演算装置４０に送信する。
【００２７】
データ監視装置８０は、例えばブロックチェーンとしての機能を有し得る。データ監視装置８０は、例えば、ウェブ（Ｗｅｂ）等のネットワーク上のデータの整合性、及びデータの改ざんの防止等を管理する。
【００２８】
図３は、実施の形態１にかかるデータ管理装置１００の構成を示す図である。データ管理装置１００は、主要なハードウェア構成として、制御部１０２と、記憶部１０４と、通信部１０６と、インタフェース部１０８（ＩＦ；Interface）とを有する。制御部１０２、記憶部１０４、通信部１０６及びインタフェース部１０８は、データバスなどを介して相互に接続されている。
【００２９】
制御部１０２は、例えばＣＰＵ（Central Processing Unit）等のプロセッサである。制御部１０２は、制御処理及び演算処理等を実行する機能を有する。記憶部１０４は、例えばメモリ又はハードディスク等の記憶デバイスである。記憶部１０４は、例えばＲＯＭ（Read Only Memory）又はＲＡＭ（Random Access Memory）等である。記憶部１０４は、制御部１０２によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。また、記憶部１０４は、処理データ等を一時的に記憶するための機能を有する。記憶部１０４は、データベースを含み得る。
【００３０】
通信部１０６は、他の装置（例えばシミュレータ２０及び演算装置４０等）とネットワーク２を介して通信を行うために必要な処理を行う。通信部１０６は、通信ポート、ルータ、ファイアウォール等を含み得る。インタフェース部１０８は、例えばユーザインタフェース（ＵＩ；User Interface）である。インタフェース部１０８は、キーボード、タッチパネル又はマウス等の入力装置と、ディスプレイ又はスピーカ等の出力装置とを有する。インタフェース部１０８は、ユーザ（オペレータ）によるデータの入力の操作を受け付け、ユーザに対して情報を出力する。インタフェース部１０８は、データ管理装置１００におけるデータベースの構造（階層）を示す図などを表示してもよい。
【００３１】
また、データ管理装置１００は、データ格納部１１０、データ取得部１１２、データサイズ判定部１１４、及びメタデータ抽出部１１６を有する。また、データ管理装置１００は、データ型判定部１２０、管理方法決定部１３０、データ管理部１４０、データ要求受信部１５０及びデータ送信部１５２を有する。以下、上述したデータ格納部１１０等を、「構成要素」と称することがある。データ格納部１１０、データ取得部１１２、データサイズ判定部１１４及びメタデータ抽出部１１６は、それぞれ、データ格納手段、データ取得手段、データサイズ判定手段及びメタデータ抽出手段として機能する。また、データ型判定部１２０、管理方法決定部１３０及びデータ管理部１４０は、それぞれ、データ型判定手段、管理方法決定手段及びデータ管理手段として機能する。また、データ要求受信部１５０及びデータ送信部１５２は、それぞれ、データ要求受信手段及びデータ送信手段として機能する。
【００３２】
また、データ取得部１１２は、図１に示したデータ取得部１２に対応する。データ型判定部１２０は、図１に示したデータ型判定部１４に対応する。データ管理部１４０は、図１に示したデータ管理部１６に対応する。
【００３３】
なお、各構成要素は、例えば、制御部１０２の制御によって、プログラムを実行させることによって実現できる。より具体的には、各構成要素は、記憶部１０４に格納されたプログラムを、制御部１０２が実行することによって実現され得る。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。また、各構成要素は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組み合わせ等により実現してもよい。また、各構成要素は、例えばＦＰＧＡ（field-programmable gate array）又はマイコン（Micro Computer）等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。このことは、後述する他の装置（シミュレータ２０及び演算装置４０等）の構成要素についても同様である。
【００３４】
データ管理装置１００の各構成要素の具体的な機能については後述する。なお、データ管理部１４０は、データベース（ＤＢ；database）として機能する。データ管理部１４０は、例えばＨａｄｏｏｐに準拠し、データを分散処理可能に格納及び管理し得る。この場合、データ管理部１４０は、ＨＤＦＳ（Hadoop Distributed File System）で実現されてもよい。一方、データ格納部１１０は、ディレクトリとして機能する。データ格納部１１０は、データベースに格納されないデータ（例えば画像データ等）を格納する。なお、このデータ格納部１１０は、データ管理装置１００と物理的に別個のストレージ装置として実現してもよい。
【００３５】
図４は、実施の形態１にかかるシミュレータ２０の構成を示す図である。シミュレータ２０は、主要なハードウェア構成として、制御部２１と、記憶部２２と、通信部２３と、インタフェース部２４とを有する。制御部２１、記憶部２２、通信部２３及びインタフェース部２４は、データバスなどを介して相互に接続されている。
【００３６】
制御部２１は、例えばＣＰＵ等のプロセッサである。制御部２１は、制御処理及び演算処理等を実行する機能を有する。記憶部２２は、例えばメモリ又はハードディスク等の記憶デバイスである。記憶部２２は、例えばＲＯＭ又はＲＡＭ等である。記憶部２２は、制御部２１によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。また、記憶部２２は、処理データ等を一時的に記憶するための機能を有する。
【００３７】
通信部２３は、他の装置とネットワーク２を介して通信を行うために必要な処理を行う。通信部２３は、通信ポート、ルータ、ファイアウォール等を含み得る。インタフェース部２４は、例えばユーザインタフェースである。インタフェース部２４は、キーボード、タッチパネル又はマウス等の入力装置と、ディスプレイ又はスピーカ等の出力装置とを有する。インタフェース部２４は、ユーザ（オペレータ）によるデータの入力の操作を受け付け、ユーザに対して情報を出力する。インタフェース部２４は、シミュレーション結果を示す図などを表示してもよい。なお、図２に示したユーザインタフェース４は、インタフェース部２４によって実現されてもよい。
【００３８】
また、シミュレータ２０は、シミュレーション実行部２６、シミュレーションデータ送信部２８及びアルゴリズム実行結果受信部３０を有する。シミュレーション実行部２６は、例えば、シミュレーションＡ実行部２６Ａ、シミュレーションＢ実行部２６Ｂ、シミュレーションＣ実行部２６Ｃ、シミュレーションＤ実行部２６Ｄ及びシミュレーションＥ実行部２６Ｅを有してもよい。シミュレーション実行部２６、シミュレーションデータ送信部２８及びアルゴリズム実行結果受信部３０は、それぞれ、シミュレーション実行手段、シミュレーションデータ送信手段及びアルゴリズム実行結果受信手段として機能する。シミュレーション実行部２６、シミュレーションデータ送信部２８及びアルゴリズム実行結果受信部３０の動作については、後述する。
【００３９】
なお、シミュレータ２０は、シミュレーションＡ実行部２６Ａ〜シミュレーションＥ実行部２６Ｅをそれぞれ有する、複数の物理的に別個の装置で構成されてもよい。また、シミュレーションＡ実行部２６Ａ〜シミュレーションＥ実行部２６Ｅは、それぞれ、互いに異なるシミュレーションＡ〜Ｅを実行し得る。例えば、シミュレーションＡ実行部２６Ａは、シミュレーションＡとして構造解析（強度解析）シミュレーションを実行してもよい。シミュレーションＢ実行部２６Ｂは、シミュレーションＢとして流体シミュレーションを実行してもよい。シミュレーションＣ実行部２６Ｃは、シミュレーションＣとして電磁界シミュレーションを実行してもよい。シミュレーションＤ実行部２６Ｄは、シミュレーションＤとして気象予報シミュレーションを実行してもよい。シミュレーションＥ実行部２６Ｅは、シミュレーションＥとして生産管理シミュレーションを実行してもよい。
【００４０】
図５は、実施の形態１にかかる演算装置４０の構成を示す図である。演算装置４０は、主要なハードウェア構成として、制御部４１と、記憶部４２と、通信部４３と、インタフェース部４４とを有する。制御部４１、記憶部４２、通信部４３及びインタフェース部４４は、データバスなどを介して相互に接続されている。制御部４１、記憶部４２、通信部４３及びインタフェース部４４の機能は、それぞれ、制御部２１、記憶部２２、通信部２３及びインタフェース部２４の機能と実質的に同様であるので、説明を省略する。
【００４１】
演算装置４０は、アルゴリズム実行部４６、シミュレーションデータ取得部４８及びアルゴリズム実行結果送信部５０を有する。アルゴリズム実行部４６は、例えば、アルゴリズムＡ実行部４６Ａ、アルゴリズムＢ実行部４６Ｂ及びアルゴリズムＣ実行部４６Ｃを有してもよい。アルゴリズム実行部４６、シミュレーションデータ取得部４８及びアルゴリズム実行結果送信部５０は、それぞれ、アルゴリズム実行手段、シミュレーションデータ取得手段及びアルゴリズム実行結果送信手段として機能する。アルゴリズム実行部４６、シミュレーションデータ取得部４８及びアルゴリズム実行結果送信部５０の動作については、後述する。
【００４２】
なお、演算装置４０は、アルゴリズムＡ実行部４６Ａ、アルゴリズムＢ実行部４６Ｂ及びアルゴリズムＣ実行部４６Ｃをそれぞれ有する、複数の物理的に別個の装置、または、仮想的に別個の装置で構成されてもよい。また、アルゴリズムＡ実行部４６Ａ、アルゴリズムＢ実行部４６Ｂ及びアルゴリズムＣ実行部４６Ｃは、それぞれ、互いに異なるアルゴリズムＡ〜Ｃを実行し得る。また、アルゴリズムＡ〜Ｃは、それぞれ、扱うことができるデータ型が異なり得る。
【００４３】
例えば、アルゴリズムＡ実行部４６Ａは、アルゴリズムＡとして探索アルゴリズムを実行してもよい。アルゴリズムＢ実行部４６Ｂは、アルゴリズムＢとして学習アルゴリズムを実行してもよい。アルゴリズムＣ実行部４６Ｃは、アルゴリズムＣとしてデータ同化アルゴリズムを実行してもよい。探索アルゴリズムは、例えば、遺伝的アルゴリズム、焼きなまし法又はベイズ最適化等の、メタヒューリスティクスアルゴリズムであってもよい。学習アルゴリズムは、深層ニューラルネットワーク又はベイジアンニューラルネットワーク等であってもよい。データ同化アルゴリズムは、粒子フィルタ又はカルマンフィルタ等を用いたアルゴリズムであってもよい。
【００４４】
図６は、実施の形態１にかかるシミュレーションシステム１における処理の流れを示すシーケンス図である。まず、シミュレータ２０は、シミュレーションを実行する（ステップＳ１００）。具体的には、シミュレータ２０のシミュレーション実行部２６は、ユーザインタフェース４からの指示に応じて、シミュレーションを実行する。
【００４５】
そして、シミュレータ２０のシミュレーションデータ送信部２８は、シミュレーションの結果を含むシミュレーションデータ（Ｓｉｍデータ）を、データ管理装置１００に送信する（ステップＳ１１２）。ここで、上述したように、シミュレータ２０からデータ管理装置１００に送信されるシミュレーションデータは、多種多様な形式のデータであり得る。データ管理装置１００は、後述するように、シミュレーションデータを管理する（ステップＳ１２０）。
【００４６】
図７は、実施の形態１にかかるデータ管理装置１００によって実行されるデータ管理方法（Ｓ１２０）を示すフローチャートである。データ取得部１１２は、シミュレータ２０から、シミュレーションデータを取得する（ステップＳ１２２）。ここで、データ取得部１１２がシミュレータ２０から受信するのは、シミュレーションデータの生データであり得る。シミュレーションデータの形式（データ型）は、シミュレーションごと（シミュレーションＡ〜Ｅごと）に異なり得る。さらに、シミュレーションデータは、同じシミュレーションであっても、シミュレーションの段階に応じて異なり得る。したがって、データ取得部１１２は、多種多様な形式のシミュレーションデータ（生データ）を取得する。
【００４７】
次に、データサイズ判定部１１４は、Ｓ１２２で取得されたシミュレーションデータのデータサイズが、予め定められた閾値以上であるか否かを判定する（ステップＳ１２４）。ここで、閾値は、データ管理装置１００によって管理されるデータ（管理データ）についてＨａｄｏｏｐ等により分散処理を行うときの、並行に処理を行う各リソースの容量に応じて定められる。例えば、閾値は数１００メガバイトであるが、これに限られない。
【００４８】
シミュレーションデータ（生データ）のデータサイズが閾値以上でない（つまり閾値未満である）場合（Ｓ１２４のＮＯ）、管理方法決定部１３０は、メタデータをデータベースに格納することで、このシミュレーションデータを管理すると決定する。メタデータは、シミュレーションデータに関連付けされているデータであり、例えば、該シミュレーションデータが格納されているファイル名、当該ファイルが作成された日時、または、当該データに含まれているキーワード等のデータである。したがって、メタデータ抽出部１１６は、このシミュレーションデータのメタデータを抽出する（ステップＳ１２６）。そして、データ管理部１４０（データベース）は、Ｓ１２６の処理で抽出されたメタデータを格納する（ステップＳ１２８）。このとき、データサイズが閾値未満であるシミュレーションデータは、ディレクトリであるデータ格納部１１０に格納される。これにより、データ管理部１４０は、メタデータを格納することで、データサイズが閾値以上でないシミュレーションデータを管理することとなる。
【００４９】
ここで、データサイズが閾値未満であるシミュレーションデータは、例えば、ＣＳＶ（Comma Separated Value）データであり得る。また、Ｓ１２６の処理で抽出されるメタデータは、対応するシミュレーションデータがどのシミュレーションに関するものかを示す識別子を含んでもよい。また、このメタデータは、対応するシミュレーションデータが格納されたディレクトリの保存先パスを含んでもよい。また、データサイズが閾値未満であるシミュレーションデータのデータ型の判定は、ユーザがそのデータファイルを開くことで行ってもよいし、後述するデータ型判定処理（Ｓ１３０）を用いて行ってもよい。また、データサイズが閾値未満であるシミュレーションデータは、データ送信部１５２によって、判定されたデータ型に応じたアルゴリズム（アルゴリズムＡ〜Ｃ）を実行するアルゴリズム実行部４６の構成要素に対して送信され得る。
【００５０】
なお、このように、データサイズが閾値未満であるシミュレーションデータについて、メタデータを格納することにより管理するのは、処理の効率化のためである。つまり、データ管理部１４０（データベース）は、上述したように、分散処理に適用可能に構成され得る。したがって、データ管理部１４０にこのシミュレーションデータを格納してしまうと、並行処理を行う各リソースの容量よりもデータサイズが小さいにも関わらず、このシミュレーションデータについて分散処理が行われてしまう。小さいデータサイズの場合には分散処理によるオーバーヘッドが顕在化されてしまうため、高い分散効率を達成することが難しく、リソースを無駄に使用してしまっている可能性がある。したがって、データサイズが閾値未満であるシミュレーションデータについて、メタデータを格納することで管理することにより、リソースの無駄な使用を抑制することが可能となる。
【００５１】
一方、シミュレーションデータ（生データ）のデータサイズが閾値以上である場合（Ｓ１２４のＹＥＳ）、データ管理装置１００（データ型判定部１２０）は、そのシミュレーションデータのデータ型を判定する（ステップＳ１３０）。そして、データ管理部１４０は、Ｓ１３０の処理で判定されたデータ型に応じて、シミュレーションデータを管理する（ステップＳ１５０）。
【００５２】
図８は、実施の形態１にかかるデータ管理装置１００によって行われるデータ型判定処理（Ｓ１３０）を示すフローチャートである。データ型判定部１２０は、シミュレーションデータのデータファイルの拡張子を判定する（ステップＳ１３２）。拡張子が「ｊｐｇ」又は「ｐｎｇ」等の、画像データ（バイナリデータ）に関するものである場合（Ｓ１３２の「画像データ」）、管理方法決定部１３０は、このシミュレーションデータを、画像型に応じた管理方法で管理すると決定する。この場合、管理方法決定部１３０は、そのシミュレーションデータを、データ管理部１４０に格納しないで、データ格納部１１０に画像として格納すると決定する。そして、管理方法決定部１３０は、画像であるシミュレーションデータのデータ格納部１１０における保存先のディレクトリのパス（保存先パス）をデータ管理部１４０が格納することで、そのシミュレーションデータを管理すると決定する。したがって、データ格納部１１０は、画像型であるシミュレーションデータを格納する。データ管理部１４０は、このシミュレーションデータの保存先パスを格納する（ステップＳ１３４）。これにより、データ管理部１４０は、画像型に応じた管理方法で、このシミュレーションデータを管理する（Ｓ１５０）。このように、データ型判定部１２０は、まず、シミュレーションデータのデータファイルの拡張子を判定することで、簡単に、データ型が画像型か否かを判定することが可能となる。
【００５３】
一方、拡張子が「ｃｓｖ」又は「ｔｘｔ」等の、アスキーデータ（テキストデータ）に関するものである場合（Ｓ１３２の「アスキーデータ」）、データ型判定部１２０は、このシミュレーションデータのデータ型が文字列型又は数値型であると判定する。そして、管理方法決定部１３０は、このシミュレーションデータを、文字列型又は数値型に応じた管理方法で管理すると決定する。この場合、まず、データ管理部１４０は、シミュレーションデータにおいて区切り文字（コンマ、タブ又はスペース等）で区切られたデータ（文字列又は数値）を文字列として一時的に格納する（ステップＳ１３６）。これにより、区切り文字で区切られたデータを管理することが容易となる。また、これにより、このデータを高速に読み出すことが可能となる。
【００５４】
データ型判定部１２０は、Ｓ１３６で格納されたデータに関するシミュレーションと同じシミュレーションが所定回数繰り返されることで、同じシミュレーションに関するデータが所定量格納されたか否かを判定する（ステップＳ１３８）。なお、シミュレータ２０から取得されたシミュレーションデータにはシミュレーションを識別する識別子が付加されていてもよく、データ型判定部１２０は、その識別子を参照して、「同じシミュレーション」を判断してもよい。ここで、「所定量」とは、例えば、シミュレーションを１００回繰り返すことによって得られるデータ量であるが、これに限定されない。所定量のデータが格納されていない場合（Ｓ１３８のＮＯ）、Ｓ１３２及びＳ１３６の処理が繰り返される。
【００５５】
一方、所定量のデータが格納された場合（Ｓ１３８のＹＥＳ）、データ型判定部１２０は、Ｓ１３６の処理で一時的に格納されたデータ（文字列）が数値として扱えるか否かを判定する（ステップＳ１４０）。具体的には、データ型判定部１２０は、格納された所定量のデータを全て和算することが可能か否かを判定する。データ型判定部１２０は、格納された所定量のデータを全て和算することが可能である場合、格納されたデータが数値として扱えると判定する。なお、格納された所定量のデータを全て和算することが可能であるか否かの判定は、一般的な表計算と同様の手法で行われてもよく、所定量のデータを全て和算できない場合は、エラー処理となる。また、Ｓ１３８の処理で所定量のデータが格納されたかを判定するのは、所定量のデータを格納しないと、和算できるか否かを判定できないからである。つまり、データ量が少ないと、格納されていたデータが偶然数字のみであった場合に、そのデータが本当に和算できるのか（数値として扱えるのか）判断できないからである。言い換えると、Ｓ１３８にかかる「所定量」は、Ｓ１４０の処理におけるデータの和算可能か否かの判断を確実に行うことができる程度に、予めユーザ等によって設定され得る。
【００５６】
格納されたデータが数値として扱えると判定された場合（Ｓ１４０のＹＥＳ）、管理方法決定部１３０は、このシミュレーションデータを、数値型に応じた管理方法で管理すると決定する。したがって、データ管理部１４０は、上述した区切り文字で区切られたデータを、数値として格納する（ステップＳ１４２）。このとき、この数値に対して、桁数等に応じて整数型又は小数型（浮動小数点型等）の変換を行ってもよい。
【００５７】
一方、格納されたデータが数値として扱えないと判定された場合（Ｓ１４０のＮＯ）、管理方法決定部１３０は、このシミュレーションデータを、文字列型に応じた管理方法で管理すると決定する。したがって、データ管理部１４０は、上述した区切り文字で区切られたデータを、文字列として格納する（ステップＳ１４４）。このように、データ型判定部１２０は、シミュレーションデータを構成するデータ（文字列）が数値として扱えるか否かを判定することで、シミュレーションデータのデータ型が文字列型であるか数値型であるかを、簡単且つ確実に判定することが可能となる。
【００５８】
図９は、実施の形態１にかかるデータ管理部１４０におけるデータベースの階層構造を視覚的に例示した図である。図９に示した例において、データ管理部１４０におけるデータベースは、階層＃１〜階層＃３の３つの階層で構成されている。階層＃１が最も上位の階層であり、階層＃３が最も深い階層である。
【００５９】
階層＃１は、シミュレーションの識別子であるシミュレーション名を格納する。図９の例では、シミュレーション名「ＸＸＸＸ」，「ＹＹＹＹ」及び「ＺＺＺＺ」等が格納されている。階層＃２は、階層＃１に示されたシミュレーション（図９の例では「ＸＸＸＸ」）に対応するシミュレーションデータの生データの保存先を格納する。具体的には、階層＃２には、シミュレーション「ＸＸＸＸ」の実行日時と、そのときに実行されて得られたシミュレーションデータの生データの保存先パス＃１とが対応付けられて格納されている。
【００６０】
階層＃３は、階層＃１に示されたシミュレーション（図９の例では「ＸＸＸＸ」）に対応するデータを格納する。つまり、階層＃３に示されるデータは、データベース（データ管理部１４０）内のデータに対応する。例えば、階層＃３には、「データ＃１（画像）」の項目の列に、画像のデータ格納部１１０における保存先を示す「保存先パス＃Ｘ」，「保存先パス＃Ｙ」，「保存先パス＃Ｚ」が格納されている。また、階層＃３には、「データ＃２（文字列）」の項目の列に、文字列「ＡＢＣＤＥＦ」，「ＤＤＥＦ」，「ＡＤＥＦ」が格納されている。また、階層＃３には、「データ＃３（数値）」の項目の列に、数値「１２３４」，「１３４」，「１２４」が格納されている。同様に、階層＃３には、「データ＃４（数値）」及び「データ＃５（数値）」の項目の列に、数値が格納されている。
【００６１】
ここで、階層＃３において、各行における各列のデータそれぞれは、互いに関連し得る。例えば、１つの行は、１回のシミュレーションで得られたデータに対応し得る。例えば、「データ＃２」（１行目の例では「ＡＢＣＤＥＦ」）は、データ＃１における保存先パス（１行目の例では「保存先パス＃Ｘ」）で指定されたディレクトリに格納された画像の属性を示してもよい。また、「データ＃３」（１行目の例では「１２３４）及び「データ＃４」（１行目の例では「５６７８」）は、データ＃１における保存先パス（１行目の例では「保存先パス＃Ｘ」）で指定されたディレクトリに格納された画像の解像度を示してもよい。また、シミュレーションデータに画像が含まれていない場合、データ＃１の項目は空欄であり得る。
【００６２】
説明は図６に戻り、演算装置４０のシミュレーションデータ取得部４８は、実行されるアルゴリズムに適合するデータ型のシミュレーションデータを、データ管理装置１００に要求する（ステップＳ１６０）。例えば、アルゴリズムＡ実行部４６ＡがアルゴリズムＡを実行する場合、シミュレーションデータ取得部４８は、アルゴリズムＡに適合するデータ型のシミュレーションデータを要求する旨の指示（データ要求指示）を、データ管理装置１００に送信する。データ管理装置１００のデータ要求受信部１５０は、シミュレーションデータ取得部４８によって送信されたデータ要求指示を受信する。
【００６３】
ここで、データ要求指示には、図９に示した、階層＃３のデータ（図９の例ではデータ＃１〜５）を指定する情報が含まれ得る。例えば、アルゴリズムＡに適合するデータ型が数値型である場合、アルゴリズムＡが実行されるときに送信されるデータ要求指示は、データ＃３，４，５の少なくとも１つを指定する。アルゴリズムＢに適合するデータ型が画像型である場合、アルゴリズムＢが実行されるときに送信されるデータ要求指示は、データ＃１を指定する。アルゴリズムＣに適合するデータ型が数値型である場合、アルゴリズムＣが実行されるときに送信されるデータ要求指示は、データ＃３，４，５の少なくとも１つを指定する。このように、演算装置４０は、階層＃３のデータの少なくともいずれかを指定することによって、シミュレーションデータを高速に取得することができる。
【００６４】
データ管理装置１００は、データ要求指示に応じて、実行されるアルゴリズムに適合するデータ型のシミュレーションデータを、演算装置４０に送信する（ステップＳ１６２）。具体的には、データ要求受信部１５０がデータ要求指示を受信すると、データ送信部１５２は、受信されたデータ要求指示で指定された階層＃３のデータ（データ＃１〜＃５等）を、演算装置４０に送信する。これにより、シミュレーションデータ取得部４８は、実行されるアルゴリズムに適合するデータ型のシミュレーションデータを取得する。
【００６５】
演算装置４０は、取得されたシミュレーションデータを用いて、アルゴリズムを実行する（ステップＳ１７０）。これにより、アルゴリズム実行部４６は、シミュレーションに関するパラメータを決定する。なお、アルゴリズム実行部４６の処理の具体例については後述する。
【００６６】
そして、演算装置４０のアルゴリズム実行結果送信部５０は、アルゴリズムの実行結果を、シミュレータ２０に送信する（ステップＳ１８０）。ここで、アルゴリズム実行結果は、決定されたパラメータを含む。シミュレータ２０のアルゴリズム実行結果受信部３０は、アルゴリズムの実行結果を受信する。このとき、アルゴリズム実行結果送信部５０は、実行されたアルゴリズムによっては、データ管理装置１００にアルゴリズムの実行結果を送信してもよい。
【００６７】
そして、Ｓ１００〜Ｓ１８０の処理が繰り返される。このとき、シミュレータ２０は、受信されたアルゴリズムの実行結果に含まれるパラメータを用いて、再度、シミュレーションを実行する（Ｓ１００）。具体例については後述する。
【００６８】
実施の形態１にかかるデータ管理装置１００は、上述したように、シミュレータ２０から取得したシミュレーションデータのデータ型を判定して、シミュレーションデータを管理している。これにより、実施の形態１にかかるデータ管理装置１００は、シミュレータ２０から出力されたデータを自動的に一元管理することが可能となる。したがって、他のノード（演算装置４０等）は、データ管理装置１００によって管理されたデータを効率的に使用することが可能となる。
【００６９】
特に、実施の形態１にかかる演算装置４０は、上記のように管理されたシミュレーションデータを用いて、効率的に、シミュレータ２０によるシミュレーションに関するパラメータを決定するように構成されている。これにより、演算装置４０は、シミュレータ２０におけるシミュレーションの精度を向上させることができる。言い換えると、実施の形態１にかかるシミュレーションシステム１は、データ管理装置１００がシミュレータ２０から出力されたデータを自動的に一元管理することにより、シミュレーションの精度を向上させることが可能となる。
【００７０】
例えば、アルゴリズムＡに適合しているデータ型が「数値型」であり、アルゴリズムＡは、シミュレーションＡ，Ｂ，Ｃのパラメータを決定し得るように構成されているとする。このケースにおいて、シミュレーションデータがデータ型に応じて管理されていないとすると、アルゴリズムＡ実行部４６Ａに誤って「画像型」のシミュレーションデータが入力されてしまう可能性がある。しかしながら、アルゴリズムＡ実行部４６Ａは「画像型」のシミュレーションデータを適切に処理できない。したがって、アルゴリズムＡ実行部４６Ａは、適切にアルゴリズムＡを実行することができない。よって、シミュレーションＡ，Ｂ，Ｃのパラメータが適切に決定されないので、シミュレーションＡ，Ｂ，Ｃの精度を向上させることは困難である。
【００７１】
また、例えば、アルゴリズムＢに適合しているデータ型が「画像型」であり、アルゴリズムＢは、シミュレーションＡ，Ｂ，Ｃのパラメータを決定し得るように構成されているとする。このケースにおいて、シミュレーションデータがデータ型に応じて管理されていないとすると、アルゴリズムＢ実行部４６Ｂに誤って「文字列型」のシミュレーションデータが入力されてしまう可能性がある。しかしながら、アルゴリズムＢ実行部４６Ｂは「文字列型」のシミュレーションデータを適切に処理できない。したがって、アルゴリズムＢ実行部４６Ｂは、適切にアルゴリズムＢを実行することができない。よって、シミュレーションＡ，Ｂ，Ｃのパラメータが適切に決定されないので、シミュレーションＡ，Ｂ，Ｃの精度を向上させることは困難である。
【００７２】
また、例えば、アルゴリズムＣに適合しているデータ型が「数値型」であり、アルゴリズムＣは、シミュレーションＤ，Ｅのパラメータを決定し得るように構成されているとする。このケースにおいて、シミュレーションデータがデータ型に応じて管理されていないとすると、アルゴリズムＣ実行部４６Ｃに誤って「画像型」のシミュレーションデータが入力されてしまう可能性がある。しかしながら、アルゴリズムＣ実行部４６Ｃは「画像型」のシミュレーションデータを適切に処理できない。したがって、アルゴリズムＣ実行部４６Ｃは、適切にアルゴリズムＣを実行することができない。よって、シミュレーションＡ，Ｂ，Ｃのパラメータが適切に決定されないので、シミュレーションＡ，Ｂ，Ｃの精度を向上させることは困難である。
【００７３】
一方、実施の形態１にかかるデータ管理装置１００は、上述したように、シミュレータ２０から取得したシミュレーションデータのデータ型を判定して、シミュレーションデータを管理している。したがって、演算装置４０は、適切に、アルゴリズムＡ，Ｂ，Ｃを実行することができる。上記の例では、アルゴリズムＡ実行部４６Ａは、「数値型」のシミュレーションデータを取得して、アルゴリズムＡを実行できる。アルゴリズムＢ実行部４６Ｂは、「画像型」のシミュレーションデータを取得して、アルゴリズムＢを実行できる。アルゴリズムＣ実行部４６Ｃは、「数値型」のシミュレーションデータを取得して、アルゴリズムＣを実行できる。したがって、演算装置４０は、適切に、シミュレータ２０によるシミュレーションに関するパラメータを決定するように構成されている。これにより、演算装置４０は、シミュレータ２０におけるシミュレーションの精度を向上させることができる。
【００７４】
（アルゴリズムの具体例）
次に、演算装置４０が探索アルゴリズムを実行する場合のシミュレーションシステム１の処理の具体例について説明する。
アルゴリズムＡ実行部４６Ａが、アルゴリズムＡとして探索アルゴリズムを実行する。そして、アルゴリズムＡが、シミュレーションＡ（構造解析シミュレーション）、シミュレーションＢ（流体シミュレーション）又はシミュレーションＣ（電磁界シミュレーション）に関するパラメータを決定するとする。以下の説明では、アルゴリズムＡ実行部４６Ａが、シミュレーションＡ（構造解析シミュレーション）に関するパラメータを決定する例について述べるが、シミュレーションＢ，Ｃについても同様である。
【００７５】
シミュレータ２０は、シミュレーションＡとして構造解析シミュレーションを実行し（Ｓ１００）、シミュレーションデータをデータ管理装置１００に送信する（Ｓ１１２）。データ管理装置１００は、上述した方法で、シミュレーションデータを、データ型に応じて管理する（Ｓ１２０）。ここで、図９に例示した階層＃３において、シミュレーションＡに関するパラメータとして、シミュレーションＡの入力（説明変数）である入力値Ｘ１及びシミュレーション結果（目的変数）である出力値Ｙ１が、データ型に応じて管理され得る。つまり、シミュレーションデータには、入力値及び出力値が含まれている。なお、シミュレーションＡの入力値は、設計パラメータであり得る。シミュレーションＡの出力値は、強度であり得る。なお、入力値及び出力値は、複数の成分（次元）からなるベクトル形式であってもよい（後述する例においても同様）。ここで、入力値及び出力値のデータ型は、アルゴリズムＡ（探索アルゴリズム）に適したデータ型である。
【００７６】
アルゴリズムＡ実行部４６Ａが探索アルゴリズムを実行するとき、シミュレーションデータ取得部４８は、シミュレーションＡに対応するデータをデータ管理装置１００に要求する（Ｓ１６０）。データ管理装置１００（データ送信部１５２）は、シミュレーションＡに関するパラメータとして、入力値Ｘ１及び出力値Ｙ１を演算装置４０に送信する（Ｓ１６２）。
【００７７】
そして、アルゴリズムＡ実行部４６Ａは、探索アルゴリズムを実行する（Ｓ１７０）。具体的には、アルゴリズムＡ実行部４６Ａは、メタヒューリスティクスアルゴリズム等の探索アルゴリズムを実行して、入力値Ｘ１及び出力値Ｙ１から、より目的に近づくような（例えば、より高い強度となるような）出力が得られる入力値Ｘ２を探索する。そして、演算装置４０（アルゴリズム実行結果送信部５０）は、アルゴリズム実行結果として入力値Ｘ２を、シミュレータ２０に送信する（Ｓ１８０）。シミュレータ２０は、入力値Ｘ２を入力値として用いて、再度、構造解析シミュレーションを行う（Ｓ１００）。このようにして、シミュレーションＡ実行部２６Ａは、効率的に、必要な強度条件を満たすような目的設計パラメータを探索することができる。
【００７８】
次に、演算装置４０が学習アルゴリズムを実行する場合のシミュレーションシステム１の処理の具体例について説明する。
アルゴリズムＢ実行部４６Ｂが、アルゴリズムＢとして学習アルゴリズムを実行する。そして、アルゴリズムＢが、シミュレーションＡ（構造解析シミュレーション）、シミュレーションＢ（流体シミュレーション）又はシミュレーションＣ（電磁界シミュレーション）に関するパラメータを決定するとする。以下の説明では、アルゴリズムＢ実行部４６Ｂが、シミュレーションＢ（流体シミュレーション）に関するパラメータを決定する例について述べるが、シミュレーションＡ，Ｃについても同様である。
【００７９】
シミュレータ２０は、シミュレーションＢとして流体シミュレーションを実行する（Ｓ１００）。このとき、流体シミュレーションで使用されるモデルｆ１を表す関数を、Ｙ＝ｆ１（Ｘ）とする。ここで、入力値Ｘは、シミュレーションＢの入力（説明変数）であり、出力値Ｙは、シミュレーション結果（目的変数）である。なお、シミュレーションＢの入力値は、設計パラメータであり得る。シミュレーションＢの出力値は、流速であり得る。
【００８０】
シミュレーションデータをデータ管理装置１００に送信する（Ｓ１１２）。データ管理装置１００は、上述した方法で、シミュレーションデータを、データ型に応じて管理する（Ｓ１２０）。ここで、図９に例示した階層＃３において、シミュレーションＢに関するパラメータとして、入力値Ｘ及び出力値Ｙが、データ型に応じて管理され得る。つまり、シミュレーションデータには、入力値及び出力値が含まれている。ここで、入力値及び出力値のデータ型は、アルゴリズムＢ（学習アルゴリズム）に適したデータ型である。そして、シミュレータ２０は、複数回、シミュレーションＢを実行して、学習アルゴリズムに必要な数のデータをデータ管理装置１００に送信する。つまり、学習アルゴリズムを実行可能な量のデータが取得できるまで、Ｓ１００〜Ｓ１２０の処理が繰り返される。
【００８１】
アルゴリズムＢ実行部４６Ｂが学習アルゴリズムを実行するとき、シミュレーションデータ取得部４８は、シミュレーションＢに対応するデータをデータ管理装置１００に要求する（Ｓ１６０）。データ管理装置１００（データ送信部１５２）は、シミュレーションＢに関するパラメータとして、所定数の入力値Ｘ及び出力値Ｙの組を演算装置４０に送信する（Ｓ１６２）。
【００８２】
そして、アルゴリズムＢ実行部４６Ｂは、学習アルゴリズムを実行する（Ｓ１７０）。具体的には、アルゴリズムＢ実行部４６Ｂは、ニューラルネットワーク等の学習アルゴリズムを実行して、多数の入力値Ｘ及び出力値Ｙの組から、より適した関数（解析式）ｆ２（Ｘ）を決定する。そして、演算装置４０（アルゴリズム実行結果送信部５０）は、アルゴリズム実行結果として関数ｆ２（Ｘ）を、シミュレータ２０に送信する（Ｓ１８０）。シミュレータ２０は、関数ｆ２（Ｘ）をモデルとして用いて、再度、流体シミュレーションを行う（Ｓ１００）。このようにして、シミュレーションＢ実行部２６Ｂは、効率的に、必要な流速条件を満たすような目的設計パラメータを探索することができる。なお、学習アルゴリズムに上述した探索アルゴリズムを組み合わせてもよい。これにより、さらに効率的に、目的設計パラメータを探索することができる。
【００８３】
次に、演算装置４０がデータ同化アルゴリズムを実行する場合のシミュレーションシステム１の処理の具体例について説明する。
アルゴリズムＣ実行部４６Ｃが、アルゴリズムＣとしてデータ同化アルゴリズムを実行する。そして、アルゴリズムＣが、シミュレーションＤ（気象予報シミュレーション）又はシミュレーションＥ（生産管理シミュレーション）に関するパラメータを決定するとする。以下の説明では、アルゴリズムＣ実行部４６Ｃが、シミュレーションＥ（生産管理シミュレーション）に関するパラメータを決定する例について述べるが、シミュレーションＤについても同様である。なお、アルゴリズムＣは、シミュレーションＡ（構造解析シミュレーション）、シミュレーションＢ（流体シミュレーション）又はシミュレーションＣ（電磁界シミュレーション）についてのパラメータを決定してもよい。
【００８４】
シミュレータ２０は、シミュレーションＥとして生産管理シミュレーションを実行する（Ｓ１００）。このとき、生産管理シミュレーションで使用されるモデルを表す関数を、説明の明確化のため、単純にＹ＝ａＸ＋ｂとする。ここで、入力値Ｘは、シミュレーションＥの入力（説明変数）であり、出力値Ｙは、シミュレーション結果（目的変数）である。なお、シミュレーションＥの入力値は、生産工程の順序又は設備数等の設計パラメータであり得る。シミュレーションＥの出力値は、稼働時間又は稼働率等であり得る。シミュレーションＥにおいて、モデルは、説明の便宜上、入力値Ｘと、出力値Ｙとの関係性を概念的に表している。この場合に、シミュレーションＥは、必ずしも、モデルを明示的に取得するわけではない。また、モデルは、線形であるとは限らず、非線形であってもよい。
【００８５】
シミュレーションデータをデータ管理装置１００に送信する（Ｓ１１２）。データ管理装置１００は、上述した方法で、シミュレーションデータを、データ型に応じて管理する（Ｓ１２０）。ここで、図９に例示した階層＃３において、シミュレーションＥに関するパラメータとして、入力値Ｘ及び出力値Ｙが、データ型に応じて管理され得る。つまり、シミュレーションデータには、入力値及び出力値が含まれている。ここで、入力値及び出力値のデータ型は、アルゴリズムＣ（データ同化アルゴリズム）に適したデータ型である。また、このケースでは、データ管理装置１００は、ネットワークエッジ７０から実データ（ｘ，ｙ）も取得して、シミュレーションデータと同様に管理し得る。なお、入力値ｘ及び出力値ｙは、それぞれ、入力値Ｘ及び出力値Ｙに対応する実データである。
【００８６】
アルゴリズムＣ実行部４６Ｃがデータ同化アルゴリズムを実行してシミュレーションＥに関するパラメータを決定するとき、シミュレーションデータ取得部４８は、シミュレーションＥに対応するデータをデータ管理装置１００に要求する（Ｓ１６０）。データ管理装置１００（データ送信部１５２）は、シミュレーションＥに関するパラメータとして、シミュレーションデータ（Ｘ，Ｙ）を演算装置４０に送信する（Ｓ１６２）。さらに、データ管理装置１００（データ送信部１５２）は、実データ（ｘ，ｙ）も演算装置４０に送信する
【００８７】
そして、アルゴリズムＣ実行部４６Ｃは、データ同化アルゴリズムを実行する（Ｓ１７０）。具体的には、アルゴリズムＣ実行部４６Ｃは、カルマンフィルタ等を用いるデータ同化アルゴリズムを実行して、シミュレーションデータ（Ｘ，Ｙ）と実データ（ｘ，ｙ）との誤差から、実データをより適切に再現する、関数Ｙ＝ａＸ＋ｂのパラメータａ，ｂを決定する。そして、演算装置４０（アルゴリズム実行結果送信部５０）は、アルゴリズム実行結果としてパラメータａ，ｂを、シミュレータ２０に送信する（Ｓ１８０）。シミュレータ２０は、パラメータａ，ｂを用いた関数で表されるモデルを用いて、再度、生産管理シミュレーションを行う（Ｓ１００）。このようにして、シミュレーションＥ実行部２６Ｂは、効率的に、必要な条件を満たすような生産管理パラメータを推定することができる。
【００８８】
（変形例）
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したフローチャートにおいて、各処理（ステップ）の順序は、適宜、変更可能である。また、複数ある処理（ステップ）のうちの１つ以上は、省略されてもよい。
【００８９】
例えば、図７に示されたＳ１２４〜Ｓ１２８の処理は、省略されてもよい。つまり、データサイズに関わらず、データ型の判別処理（Ｓ１３０）を行ってもよい。また、図８に示されたＳ１３８の処理がなくてもＳ１４０の処理が可能であれば、Ｓ１３８の処理はなくてもよい。
【００９０】
また、図２に記載された装置のうち、データ除去装置６０、ネットワークエッジ７０及びデータ監視装置８０は、なくてもよい。一方、データ管理装置１００によって管理されるデータを使用する装置は、演算装置４０に限られない。例えば、シミュレータ２０が、データ管理装置１００によって管理されるデータを使用してもよい。あるいは、ネットワークエッジ７０又はデータ監視装置８０が、データ管理装置１００によって管理されるデータを使用してもよい。
【００９１】
また、シミュレーションシステム１を構成する装置の少なくとも２つが、同じ装置で構成されてもよい。特に、シミュレータ２０及び演算装置４０は、物理的に一体となった装置で実現されてもよい。一方、シミュレーションシステム１を構成する装置の少なくとも１つは、複数の装置で構成されてもよい。
【００９２】
また、上述した実施の形態において、データ型判定部１２０は、図８に例示した方法でシミュレーションデータのデータ型を判定するとしたが、このような構成に限られない。例えば、データ型判定部１２０は、図８に例示した処理とは別の、何らかの機械学習アルゴリズム等を用いて、データ型を判定してもよい。
【００９３】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００９４】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
少なくとも１つのシミュレータからシミュレーションに関する第１のデータを取得するデータ取得手段と、
前記データ取得手段によって取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定するデータ型判定手段と、
前記データ型判定手段によって判定されたデータ型に応じた管理方法で、前記第１のデータを管理するデータ管理手段と
を有するデータ管理装置。
（付記２）
予め定められたアルゴリズムを用いて前記シミュレータで実行されるシミュレーションに関するパラメータを決定する少なくとも１つの演算装置に、前記データ管理手段によって管理された前記第１のデータのうち前記アルゴリズムに適合するデータ型の前記第１のデータを送信する送信手段
をさらに有する付記１に記載のデータ管理装置。
（付記３）
前記データ型判定手段は、前記第１のデータの拡張子を用いて、前記第１のデータのデータ型を判定する
付記１又は２に記載のデータ管理装置。
（付記４）
前記データ型判定手段は、前記第１のデータを構成する文字列が数値として扱えるか否かに応じて、前記第１のデータのデータ型を判定する
付記１〜３のいずれか１項に記載のデータ管理装置。
（付記５）
前記第１のデータのサイズが予め定められた閾値以上であるか否かを判定するデータサイズ判定手段と、
前記第１のデータのサイズが前記閾値以上でない場合に、前記第１のデータのメタデータを抽出するメタデータ抽出手段と
をさらに有し、
前記データ管理手段は、前記メタデータを格納することで、サイズが前記閾値以上でない前記第１のデータを管理する
付記１〜４のいずれか１項に記載のデータ管理装置。
（付記６）
シミュレーションを実行する少なくとも１つのシミュレータと、
前記シミュレータによるシミュレーションに関する第１のデータを管理するデータ管理装置と、
前記シミュレーションに関するパラメータを決定する演算装置と
を有し、
前記データ管理装置は、
前記シミュレータから前記第１のデータを取得するデータ取得手段と、
前記データ取得手段によって取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定するデータ型判定手段と、
前記データ型判定手段によって判定されたデータ型に応じた管理方法で、前記第１のデータを管理するデータ管理手段と
を有し、
前記演算装置は、前記データ管理手段によって管理された前記第１のデータを用いて、前記パラメータを決定し、
前記シミュレータは、前記演算装置によって決定された前記パラメータを用いて、再度、前記シミュレーションを実行する
シミュレーションシステム。
（付記７）
前記データ型判定手段は、前記第１のデータの拡張子を用いて、前記第１のデータのデータ型を判定する
付記６に記載のシミュレーションシステム。
（付記８）
前記データ型判定手段は、前記第１のデータを構成する文字列が数値として扱えるか否かに応じて、前記第１のデータのデータ型を判定する
付記６又は７に記載のシミュレーションシステム。
（付記９）
前記第１のデータのサイズが予め定められた閾値以上であるか否かを判定するデータサイズ判定手段と、
前記第１のデータのサイズが前記閾値以上でない場合に、前記第１のデータのメタデータを抽出するメタデータ抽出手段と
をさらに有し、
前記データ管理手段は、前記メタデータを格納することで、サイズが前記閾値以上でない前記第１のデータを管理する
付記６〜８のいずれか１項に記載のシミュレーションシステム。
（付記１０）
少なくとも１つのシミュレータからシミュレーションに関する第１のデータを取得し、
前記取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定し、
前記判定されたデータ型に応じた管理方法で、前記第１のデータを管理する
データ管理方法。
（付記１１）
予め定められたアルゴリズムを用いて前記シミュレータで実行されるシミュレーションに関するパラメータを決定する少なくとも１つの演算装置に、前記管理された前記第１のデータのうち前記アルゴリズムに適合するデータ型の前記第１のデータを送信する
付記１０に記載のデータ管理方法。
（付記１２）
前記第１のデータの拡張子を用いて、前記第１のデータのデータ型を判定する
付記１０又は１１に記載のデータ管理方法。
（付記１３）
前記第１のデータを構成する文字列が数値として扱えるか否かに応じて、前記第１のデータのデータ型を判定する
付記１０〜１２のいずれか１項に記載のデータ管理方法。
（付記１４）
前記第１のデータのサイズが予め定められた閾値以上であるか否かを判定し、
前記第１のデータのサイズが前記閾値以上でない場合に、前記第１のデータのメタデータを抽出し、
前記メタデータを格納することで、サイズが前記閾値以上でない前記第１のデータを管理する
付記１０〜１３のいずれか１項に記載のデータ管理方法。
（付記１５）
少なくとも１つのシミュレータからシミュレーションに関する第１のデータを取得するステップと、
前記取得された前記第１のデータに関する文字列に基づいて、前記第１のデータのデータ型を判定するステップと、
前記判定されたデータ型に応じた管理方法で、前記第１のデータを管理するステップと
をコンピュータに実行させるプログラム。
【符号の説明】
【００９５】
１  シミュレーションシステム
１０  データ管理装置
１２  データ取得部
１４  データ型判定部
１６  データ管理部
２０  シミュレータ
２６  シミュレーション実行部
２８  シミュレーションデータ送信部
３０  アルゴリズム実行結果受信部
４０  演算装置
４６  アルゴリズム実行部
４８  シミュレーションデータ取得部
５０  アルゴリズム実行結果送信部
１００  データ管理装置
１１０  データ格納部
１１２  データ取得部
１１４  データサイズ判定部
１１６  メタデータ抽出部
１２０  データ型判定部
１３０  管理方法決定部
１４０  データ管理部
１５０  データ要求受信部
１５２  データ送信部
【図１】
2020021172.tif 000003
【図２】
2020021172.tif 000004
【図３】
2020021172.tif 000005
【図４】
2020021172.tif 000006
【図５】
2020021172.tif 000007
【図６】
2020021172.tif 000008
【図７】
2020021172.tif 000009
【図８】
2020021172.tif 000010
【図９】
2020021172.tif 000011