(57)【要約】      （修正有）【課題】処理時間の推定精度を高められる、処理時間推定装置、処理時間推定方法及びプログラムを提供する。【解決手段】処理時間推定装置１００が、処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定する処理時間要素推定部１９４と、処理の繰り返し回数及び前記１回あたりの処理時間に基づいて、要求される処理の実行時間を推定する処理時間推定部１９５とを備える。【選択図】図２
2019003567.tif 000002
【特許請求の範囲】
【請求項１】
処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定する処理時間要素推定部と、
前記処理の繰り返し回数及び前記１回あたりの処理時間に基づいて、要求される処理の実行時間を推定する処理時間推定部と
を備える処理時間推定装置。
【請求項２】
前記処理要求に対する処理結果の出力予定期限を示す期限情報を取得する期限情報取得部と、
前記出力予定期限、及び、推定された前記実行時間に基づいて、処理開始期限を決定する処理開始期限決定部と
を備える請求項１に記載の処理時間推定装置。
【請求項３】
処理要求期限が前記処理開始期限又はそれ以前の処理予約を受け付ける処理予約受付部
を備える請求項２に記載の処理時間推定装置。
【請求項４】
前記処理要求における処理対象データの内容に応じたデータ内容係数を取得するデータ内容係数取得部を備え、
前記処理時間要素推定部は、前記処理対象データ量に加えて、前記データ内容係数に基づいて、前記処理の繰り返し回数及び前記１回あたりの処理時間のうち少なくともいずれか一方を推定する、
請求項１から３の何れか一項に記載の処理時間推定装置。
【請求項５】
前記処理要求に対する処理アルゴリズムに応じた処理アルゴリズム係数を取得する処理アルゴリズム係数取得部を備え、
前記処理時間要素推定部は、前記処理対象データ量に加えて前記処理アルゴリズム係数に基づいて、前記処理の繰り返し回数及び前記１回あたりの処理時間のうち少なくともいずれか一方を推定する、
請求項１から４の何れか一項に記載の処理時間推定装置。
【請求項６】
処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定し、
前記処理の繰り返し回数及び前記１回あたりの処理時間に基づいて、要求される処理の実行時間を推定する
ことを含む、処理時間推定方法。
【請求項７】
コンピュータに、
処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定させ、
前記処理の繰り返し回数及び前記１回あたりの処理時間に基づいて、要求される処理の実行時間を推定させる
ためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理時間推定装置、処理時間推定方法及びプログラムに関する。
【背景技術】
【０００２】
処理のスケジューリングを行う場合など、処理時間を推定する必要がある場合がある。
例えば、特許文献１では、通信制御装置が通信のスケジューリングを行う際に、通信処理（通信のための処理）に要する時間を演算することが記載されている。この通信制御装置では、非定周期送信部が、任意の時刻で送信要求を発生し、定周期送信部が、定周期で送信要求を発生する。そして、スケジュール部は、送信要求のある非定周期送信部の通信処理に要する時間である通信処理時間を演算し、定周期送信部の定周期の残り時間を求め、通信処理時間と定周期の残り時間とを比較して、通信のスケジューリングを行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１７００３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
処理時間を推定する際、高精度に推定を行えることが好ましい。例えば、処理のスケジューリングを行う際、処理時間の推定精度がスケジューリングの精度に影響することが考えられる。
【０００５】
本発明は、上述の課題を解決することのできる処理時間推定装置、処理時間推定方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、処理時間推定装置は、処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定する処理時間要素推定部と、前記処理の繰り返し回数及び前記１回あたりの処理時間に基づいて、要求される処理の実行時間を推定する処理時間推定部とを備える。
【０００７】
本発明の第２の態様によれば、処理時間推定方法は、処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定し、前記処理の繰り返し回数及び前記１回あたりの処理時間に基づいて、要求される処理の実行時間を推定することを含む。
【０００８】
本発明の第３の態様によれば、プログラムは、コンピュータに、処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定させ、前記処理の繰り返し回数及び前記１回あたりの処理時間に基づいて、要求される処理の実行時間を推定させるためのプログラムである。
【発明の効果】
【０００９】
この発明によれば、処理時間の推定精度が高まることが期待される。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るサービス提供システムの装置構成を示す概略構成図である。
【図２】同実施形態に係る処理時間推定装置の機能構成を示す概略ブロック図である。
【図３】同実施形態に係るクライアントシステムが表示する処理予約登録画面の例を示す図である。
【図４】同実施形態に係る処理サーバ装置がデータ処理要求に対して行う処理の手順の例を示すフローチャートである。
【図５】同実施形態に係る処理サーバ装置がデータ処理を行う手順の例を示すフローチャートである。
【図６】同実施形態に係るデータ処理の予約の処理手順の第一例を示す図である。
【図７】同実施形態に係るデータ処理の予約の処理手順の第二例を示す図である。
【図８】本発明に係る処理時間推定装置の最小構成の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図１は、本発明の一実施形態に係るサービス提供システムの装置構成を示す概略構成図である。図１に示すように、サービス提供システム１は、処理時間推定装置１００と、処理サーバ装置２００と、第一通信ネットワーク３００とを備える。
【００１２】
また、処理サーバ装置２００と処理時間推定装置１００とは、第一通信ネットワーク３００を介して通信接続する。処理時間推定装置１００とクライアントシステム９１０とは、第二通信ネットワーク９２０を介して通信接続する。
サービス提供システム１が備える処理サーバ装置２００の数は、１つ以上であればよい。処理時間推定装置１００に通信接続するクライアントシステム９１０の数も１つ以上であればよい。
【００１３】
サービス提供システム１は、データ処理サービスを提供するシステムである。
処理時間推定装置１００は、サービス提供システム１における窓口として機能する。具体的には、処理時間推定装置１００は、クライアントシステム９１０からサービス提供要求及び処理対象のデータを受信し、処理サーバ装置２００に処理を振り分ける。
また、処理時間推定装置１００は、データ処理サービスの予約を受け付ける。予約を受ける際、処理時間推定装置１００が予約対象のデータ処理に要する処理時間を推定することで、処理結果回答期限から逆算して処理開始期限を算出することが可能になり、処理のスケジューリングを行うことが可能になる。
処理時間推定装置１００は、例えばワークステーション（Workstation）等のコンピュータを用いて構成される。
【００１４】
図２は、処理時間推定装置１００の機能構成を示す概略ブロック図である。図２に示すように、処理時間推定装置１００は、通信部１１０と、表示部１２０と、操作入力部１３０と、記憶部１８０と、制御部１９０とを備える。制御部１９０は、期限情報取得部１９１と、データ内容係数取得部１９２と、処理アルゴリズム係数取得部１９３と、処理時間要素推定部１９４と、処理時間推定部１９５と、処理開始期限決定部１９６と、処理予約受付部１９７とを備える。
【００１５】
通信部１１０は、他の機器と通信を行う。特に通信部１１０は、第二通信ネットワーク９２０を介してクライアントシステム９１０と通信接続する。通信部１１０は、クライアントシステム９１０からデータ処理要求を受信し、要求に対する回答として処理結果を送信する。また、通信部１１０は、クライアントシステム９１０との通信にて、データ処理サービスの予約を受ける。予約に際し、通信部１１０は、データ処理に要する処理時間の推定値、及び、処理開始期限のうち何れか一方又は両方をクライアントシステム９１０へ送信する。
【００１６】
また、通信部１１０は、第一通信ネットワーク３００を介して処理サーバ装置２００と通信接続する。通信部１１０は、処理サーバ装置２００へデータ処理要求を送信し、要求に対する回答として処理結果を受信する。処理サーバ装置２００が複数ある場合、通信部１１０は、処理時間推定装置１００が決定した送信先の処理サーバ装置２００へデータ処理要求を送信して処理結果を受信する。
【００１７】
表示部１２０は、例えば液晶パネル又はＬＥＤ（Light Emitting Diode、発光ダイオード）パネル等の表示画面を備え、各種画像を表示する。
操作入力部１３０は、例えばキーボード及びマウス等の入力デバイスを備え、ユーザ操作を受ける。
記憶部１８０は、各種データを記憶する。記憶部１８０は、処理時間推定装置１００が備える記憶デバイスを用いて構成される。
【００１８】
制御部１９０は、処理時間推定装置１００の各部を制御して各種処理を行う。制御部１９０は、処理時間推定装置１００が備えるＣＰＵ（Central Processing Unit、中央処理装置）が記憶部１８０からプログラムを読み出して実行することで構成される。
期限情報取得部１９１は、期限情報を取得する。ここでいう期限情報は、通信部１１０がクライアントシステム９１０から受信するデータ処理要求に対する処理結果の出力予定期限を示す情報である。以下では、データ処理要求を単に処理要求とも称する。
【００１９】
通信部１１０がクライアントシステム９１０から出力予定期限の情報を受信し、期限情報取得部１９１がクライアントシステム９１０からの受信データから出力予定期限の情報を抽出するようにしてもよい。この場合、クライアントシステム９１０が、出力予定期限の情報をデータ処理サービスの予約の情報に含めて送信するようにしてもよいし、別々に送信するようにしてもよい。
処理結果の出力予定期限が毎月同じ日時に定められている場合、記憶部１８０が出力予定期限の日時を記憶しておき、期限情報取得部１９１が記憶部１８０からその日時を読み出すようにしてもよい。
【００２０】
データ内容係数取得部１９２は、データ内容係数を取得する。ここでいうデータ内容係数は、処理要求における処理対象データの内容に応じた係数である。データ内容係数として、処理の難易度に基づく指標値を用いるようにしてもよい。例えば、データ内容係数として、データの内容から推定される処理の難易度に応じて決定される、標準の難易度の場合に対する処理時間の比の推定値を用いることができる。
【００２１】
例えば、クライアントシステム９１０のユーザであるサービス利用者が、予測される処理の難易度に基づいてデータ内容係数の値を決定し、決定された値をクライアントシステム９１０が処理時間推定装置１００へ送信するようにしてもよい。データ内容係数取得部１９２は、クライアントシステム９１０からの受信データから、データ内容係数（の値）を抽出する。
【００２２】
また、予約段階で処理対象データが得られている場合、通信部１１０が処理対象データを受信すると、処理時間推定装置１００の管理者が処理対象データを参照してデータ内容係数を決定し、記憶部１８０が処理対象データ毎にデータ内容係数を記憶しておくようにしてもよい。そして、処理時間推定装置１００が処理時間を算出する際に、データ内容係数取得部１９２が処理時間算出対象のデータに応じたデータ内容係数を記憶部１８０から読み出すようにしてもよい。
あるいはデータ内容係数取得部１９２が、処理対象データの分散又は標準偏差など予め定められた指標値に基づいて、データ内容係数を自動的に算出するようにしてもよい。あるいは処理時間推定装置１００又は他の装置が、機械学習を行ってデータ内容係数値を算出し、データ内容係数取得部１９２が、機械学習の結果得られたデータ内容係数値を取得するようにしてもよい。この場合、処理時間推定装置１００又は他の装置が、例えば
［処理時間］＝［係数１］＊データ１＋［係数２］＊データ２＋…
のような回帰式を、重回帰分析のように機械学習で生成するようにしてもよい。
【００２３】
処理アルゴリズム係数取得部１９３は、処理アルゴリズム係数を取得する。ここでいう処理アルゴリズム係数は、処理要求に対する処理アルゴリズムに応じた係数である。
例えば、処理アルゴリズム毎に処理アルゴリズム係数が予め定められ、記憶部１８０が予め処理アルゴリズム毎に処理アルゴリズム係数を記憶しておくようにしてもよい。そして、処理時間推定装置１００が処理時間を算出する際に、処理アルゴリズム係数取得部１９３が、適用予定の処理アルゴリズムに応じた処理アルゴリズム係数を記憶部１８０から読み出すようにしてもよい。あるいは処理時間推定装置１００又は他の装置が、機械学習を行って処理アルゴリズム係数値を算出し、処理アルゴリズム係数取得部１９３が、機械学習の結果得られた処理アルゴリズム係数値を取得するようにしてもよい。
適用予定の処理アルゴリズムは、例えば処理時間推定装置１００の管理者が操作入力部１３０からのユーザ操作にて指定する。あるいは、処理アルゴリズム係数取得部１９３が、処理対象データに基づいて自動的に、適用予定の処理アルゴリズムを決定するようにしてもよい。
【００２４】
処理時間要素推定部１９４は、予約登録を要求されている処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定する。ここでいう処理対象データ量は、処理対象データのデータ量である。ここでいう１回あたりの処理は、機械学習にて１つの解を求める処理である。ここでいう処理の繰り返しは、機械学習にて１つの解を求める処理を、判定基準を満たす解を得られるまで繰り返すことである。以下では、処理の繰り返し回数と１回あたりの処理時間とを総称して処理時間要素と表記する。
【００２５】
例えば処理時間要素推定部１９４は、過去のデータ処理それぞれにおける処理対象データ量、処理の繰り返し回数、及び、１回あたりの処理時間を示すデータを学習用データとして取得する。そして、処理時間要素推定部１９４は、今回の処理要求（予約登録を求められている処理要求）に対して処理サーバ装置２００が機械学習でデータ処理を行う場合の、処理の繰り返し回数及び１回あたりの処理時間を、機械学習で算出する。
【００２６】
例えば処理時間要素推定部１９４は、機械学習にて、処理対象データ量の入力を受けて処理の繰り返し回数を出力する関数、及び、処理対象データ量の入力を受けて１回あたりの処理時間を出力する関数を算出する。そして、処理時間要素推定部１９４は、予約登録を求められている処理要求における処理対象データ量を、得られた関数に入力して、処理の繰り返し回数及び１回あたりの処理時間を算出する。
例えば記憶部１８０が、過去のデータ処理におけるデータを学習用データとして予め記憶しておく。そして、処理時間要素推定部１９４は、記憶部１８０から学習用データを読み出して使用する。
【００２７】
処理時間要素推定部１９４が、処理対象データ量に加えてデータ内容係数に基づいて、処理の繰り返し回数及び１回あたりの処理時間のうち少なくともいずれか一方を推定するようにしてもよい。
例えば処理時間要素推定部１９４は、過去のデータ処理それぞれにおける処理対象データ量、データ内容係数、処理の繰り返し回数、及び、１回あたりの処理時間を示すデータを学習用データとして取得する。
【００２８】
この場合、例えば処理時間要素推定部１９４は、機械学習にて、処理対象データ量及びデータ内容係数の入力を受けて処理の繰り返し回数を出力する関数、及び、処理対象データ量及びデータ内容係数の入力を受けて１回あたりの処理時間を出力する関数を算出する。処理時間要素推定部１９４は、予約登録を要求されている処理要求における処理対象データ量、及び、予約登録を要求されている処理要求に対してデータ内容係数取得部１９２が取得したデータ内容係数を、得られた各関数に入力して、処理の繰り返し回数及び１回あたりの処理時間を算出する。
【００２９】
処理時間要素推定部１９４が、処理対象データ量に加えて処理アルゴリズム係数に基づいて、処理の繰り返し回数及び１回あたりの処理時間のうち少なくともいずれか一方を推定するようにしてもよい。
例えば処理時間要素推定部１９４は、過去のデータ処理それぞれにおける処理対象データ量、処理アルゴリズム係数、処理の繰り返し回数、及び、１回あたりの処理時間を示すデータを学習用データとして取得する。
【００３０】
この場合、例えば処理時間要素推定部１９４は、機械学習にて、処理対象データ量及び処理アルゴリズム係数の入力を受けて処理の繰り返し回数を出力する関数、及び、処理対象データ量及び処理アルゴリズム係数の入力を受けて１回あたりの処理時間を出力する関数を算出する。処理時間要素推定部１９４は、予約登録を要求されている処理要求における処理対象データ量、及び、予約登録を要求されている処理要求に対して処理アルゴリズム係数取得部１９３が取得した処理アルゴリズム係数を、得られた各関数に入力して、処理の繰り返し回数及び１回あたりの処理時間を算出する。
【００３１】
処理時間要素推定部１９４が、処理対象データ量に加えてデータ内容係数及び処理アルゴリズム係数に基づいて、処理の繰り返し回数及び１回あたりの処理時間のうち少なくともいずれか一方を推定するようにしてもよい。
例えば処理時間要素推定部１９４は、過去のデータ処理それぞれにおける処理対象データ量、データ内容係数、処理アルゴリズム係数、処理の繰り返し回数、及び、１回あたりの処理時間を示すデータを学習用データとして取得する。
【００３２】
この場合、例えば処理時間要素推定部１９４は、機械学習にて、処理対象データ量、データ内容係数及び処理アルゴリズム係数の入力を受けて処理の繰り返し回数を出力する関数、及び、処理対象データ量、データ内容係数及び処理アルゴリズム係数の入力を受けて１回あたりの処理時間を出力する関数を算出する。処理時間要素推定部１９４は、予約登録を要求されている処理要求における処理対象データ量、予約登録を要求されている処理要求に対してデータ内容係数取得部１９２が取得したデータ内容係数、及び、予約登録を要求されている処理要求に対して処理アルゴリズム係数取得部１９３が取得した処理アルゴリズム係数を、得られた各関数に入力して、処理の繰り返し回数及び１回あたりの処理時間を算出する。
【００３３】
処理時間要素推定部１９４が機械学習に用いるアルゴリズムは、特定のアルゴリズムに限定されない。例えば、処理時間要素推定部１９４が、ニューラルネットワーク、又は、一般化線形回帰のアルゴリズムを用いて機械学習を行うようにしてもよいが、これらに限らない。
【００３４】
処理時間推定部１９５は、処理時間要素推定部１９４が算出した処理の繰り返し回数、及び１回あたりの処理時間に基づいて、要求される処理（予約登録を要求されている処理要求における処理）の実行時間を推定する。
例えば処理時間推定部１９５は、処理の繰り返し回数と１回あたりの処理時間とを乗算した積に、データ転送時間及びデータ変換時間など機械学習の実行以外の時間を加算した時間を実行時間として算出する。
機械学習の実行以外の時間は、例えば処理時間推定部１９５が、処理対象データ量に所定の係数を乗算して算出する。
【００３５】
処理開始期限決定部１９６は、予約登録を要求されている処理要求に対する処理結果の出力予定期限、及び、処理時間推定部１９５が推定した実行時間に基づいて、処理開始期限を決定する。
例えば、処理開始期限決定部１９６は、出力予定期限から実行時間だけ遡った時期を処理開始期限に決定する。あるいは処理開始期限決定部１９６が、出力予定期限から実行時間だけ遡った時期から、さらに所定の余裕分の期間だけ遡った時期を処理開始時期に決定するようにしてもよい。
【００３６】
処理予約受付部１９７は、処理要求期限が処理開始期限又はそれ以前の処理予約を受け付ける。この点について図３を参照して説明する。
図３は、クライアントシステム９１０が表示する処理予約登録画面の例を示す図である。図３の例で、クライアントシステム９１０は、納品期限欄と、推定処理時間欄と、処理開始期限欄と、処理要求期限欄と、予約登録ボタンと、キャンセルボタンとを含む処理予約登録画面を表示している。
【００３７】
納品期限欄は、データ処理要求に対する処理結果の回答予定期限の表示欄である。この回答予定期限を納品期限とも称する。
推定処理時間欄は、処理時間推定部１９５が推定した処理実行時間推定値の表示欄である。
処理開始期限欄は、処理開始期限決定部１９６が決定した処理開始期限の表示欄である。
【００３８】
処理要求期限欄は、処理要求期限の入力欄である。サービス利用者は、処理要求期限を処理開始期限またはそれ以前の時期に決定する。例えば、処理要求期限から処理開始期限までの期間に応じてサービス利用料金が異なる場合、サービス利用者は、処理対象データを料金が安い期間中に準備可能であれば、その期間中の処理要求期限を設定し、設定した期限までに処理を要求することで安い料金の適用を受けられる。
【００３９】
ここで、サービス提供者が、サービス利用者からの処理要求に対し、クラウドで仮想マシンを提供している事業者から仮想マシンを借りて処理を行う場合を考える。
例えばクラウドで仮想マシンを提供している事業者が複数ある場合、事業者毎に料金が異なることが考えられる。このような場合、スケジュールに余裕がないと、料金の安い事業者の仮想マシンが使用中で借りられず、料金の高い事業者の仮想マシンを借りる必要が生じることが考えられる。これに対し、スケジュールに余裕を持って仮想マシンを借りることができれば、料金の安い事業者の仮想マシンを予約するか、あるいは、料金の安い事業者の仮想マシンに空きがあるときに、その仮想マシンを借りて処理を行うことができる。サービス提供者は、このような仮想マシンの利用料金の違いを、サービス利用者に対する料金に反映させることができる。
サービス提供者が、事業者にバッチ処理でサービス提供を依頼する場合も同様である。
【００４０】
予約登録ボタンは、処理要求期限欄に入力された処理要求期限にてデータ処理の予約を行うためのボタンアイコンである。
サービス利用者が処理要求期限を入力して予約登録ボタンを操作（例えばマウスクリック）すると、クライアントシステム９１０は、処理要求期限の情報を含む予約要求を処理時間推定装置１００へ送信する。処理時間推定装置１００の通信部１１０がこの予約要求を受信すると、処理予約受付部１９７は、処理要求期限が処理開始期限またはそれ以前の時期になっているか否かを判定する。
【００４１】
処理要求期限が処理開始期限またはそれ以前の時期になっている場合、処理予約受付部１９７は、予約を受け付ける。この場合、処理予約受付部１９７は、予約要求元及び処理要求期限など予約に関する情報を記憶部１８０に記憶させることで、予約を登録する。
処理要求期限が処理開始期限より後の時期になっている場合、処理予約受付部１９７は、予約を受け付けない。この場合、処理予約受付部１９７は、通信部１１０を介してクライアントシステム９１０へ、予約を受け付けなかった旨の通知を送信して予約のやり直しを促す。
キャンセルボタンは、処理予約を中止するためのボタンアイコンである。サービス利用者がキャンセルボタンを操作（例えばマウスクリック）すると、クライアントシステム９１０は処理予約登録画面の表示を終了して前画面へ戻る。
【００４２】
処理予約受付部１９７が、処理開始期限決定部１９６が決定した処理開始期限を処理要求期限として自動的に予約を登録するようにしてもよい。この場合、処理予約受付部１９７が通信部１１０を介してクライアントシステム９１０へ登録内容を送信し、クライアントシステム９１０が登録内容を表示することでサービス利用者に通知するようにしてもよい。
【００４３】
処理サーバ装置２００は、サービス提供システム１が提供するデータ処理サービスにおけるデータ処理を実行する。処理サーバ装置２００は、例えばメインフレーム（Mainframe）又はワークステーション等のコンピュータを用いて構成される。
処理サーバ装置２００が実行するデータ処理の分野及び内容は特定の分野及び内容に限定されない。
例えば、医療分野において、処理サーバ装置２００がカルテ又はレセプト情報から薬剤の使用状況を抽出して薬剤の消費量あるいは在庫状況を予測するようにしてもよい。あるいは、製造分野において、処理サーバ装置２００が工場の生産管理情報から材料の使用量を抽出して在庫状況を予測する、あるいは、発注タイミングを提案するようにしてもよい。
【００４４】
クライアントシステム９１０は、サービス提供システム１に対してサービス提供を要求する。具体的には、クライアントシステム９１０はデータ処理要求を処理時間推定装置１００に送信し、要求に対する応答にて処理結果を受信する。クライアントシステム９１０は、例えばパソコン（Personal Computer；ＰＣ）又はワークステーション等のコンピュータを用いて構成される。
【００４５】
第一通信ネットワーク３００は、処理時間推定装置１００と処理サーバ装置２００との通信を仲介する通信ネットワークである。
第二通信ネットワーク９２０は、処理時間推定装置１００とクライアントシステム９１０との通信を仲介する通信ネットワークである。
第一通信ネットワーク３００、第二通信ネットワーク９２０の種類はいずれも特定の種類に限定されない。一例として、第一通信ネットワーク３００はサービス提供システム１専用のＬＡＮ（Local Area Network）であってもよく、第二通信ネットワーク９２０はインターネット（Internet）であってもよいが、これらに限定されない。
また、第一通信ネットワーク３００及び第二通信ネットワーク９２０が１つの通信ネットワークとして構成されていてもよい。
【００４６】
次に、図４〜図７を参照してサービス提供システム１の動作について説明する。
図４は、処理サーバ装置２００がデータ処理要求に対して行う処理の手順の例を示すフローチャートである。処理サーバ装置２００は、処理時間推定装置１００からデータ処理要求を受信すると図４の処理を開始する。
【００４７】
（ステップＳ１１１）
処理サーバ装置２００は、処理対象データを取得する。具体的には、処理サーバ装置２００は、処理対象データを含むデータ処理要求を処理時間推定装置１００から受信する。そして、処理サーバ装置２００は、受信したデータ処理要求から処理対象データを読み出す。
ステップＳ１１１の後、ステップＳ１１２へ進む。
【００４８】
（ステップＳ１１２）
処理サーバ装置２００は、処理対象データに対して前処理を行う。例えば、処理サーバ装置２００は、処理対象データを処理し易いデータ形式に変換する。
ステップＳ１１２の後、ステップＳ１１３へ進む。
【００４９】
（ステップＳ１１３）
処理サーバ装置２００は、機械学習にてデータ処理を行う。
ステップＳ１１３の後、ステップＳ１１４へ進む。
（ステップＳ１１４）
処理サーバ装置２００は、ステップＳ１１３でのデータ処理の結果を処理時間推定装置１００へ通知（送信）する。
ステップＳ１１４の後、図４の処理を終了する。
【００５０】
図５は、処理サーバ装置２００がデータ処理を行う手順の例を示すフローチャートである。図５の処理で、処理サーバ装置２００は、機械学習にてデータ処理を行う。
処理サーバ装置２００は、図４のステップＳ１１３で図５の処理を行う。
（ステップＳ１２１）
処理サーバ装置２００は、モデル構築用データセット、及び、モデル検証用データセットを決定する。具体的には、処理サーバ装置２００は、処理対象データをモデル構築用データセットとモデル検証用データセットとに分割する。
【００５１】
例えば、処理サーバ装置２００は、処理対象データとして、説明変数値及び目的変数値を示す複数の学習用データ（学習用データセット）を取得する。そして、処理サーバ装置２００は、取得した学習用データセットのうち、例えば１割のデータなど幾つかのデータを検証用データセットに決定し、残りのデータをモデル構築用データセットに決定する。
ここでいう目的変数は、データ処理における取得対象の値を示す変数、すなわち、データ処理結果を示す変数である。ここでいう説明変数は、データ処理結果を算出する元となる値を示す変数である。
ステップＳ１２１の後、ステップＳ１２２へ進む。
【００５２】
（ステップＳ１２２）
処理サーバ装置２００は、解探索のステップ幅など機械学習における各種パラメータの値を初期設置する。ここでのパラメータ値の初期設定方法は、特定の方法に限定されない。例えば、処理サーバ装置２００が、パラメータの初期設定値をランダムに決定するようにしてもよいし、予め定められている値に決定するようにしてもよいし、前回の学習結果に基づいて決定するようにしてもよい。
ステップＳ１２２の後、ステップＳ１２３へ進む。
【００５３】
（ステップＳ１２３）
処理サーバ装置２００は、モデル構築用データセットを用いて機械学習アルゴリズムを実行し、学習結果を取得する。例えば、処理サーバ装置２００は、説明変数値の入力を受けて目的変数値を出力する関数を学習結果として算出する。
ステップＳ１２３の後、ステップＳ１２４へ進む。
【００５４】
（ステップＳ１２４）
処理サーバ装置２００は、ステップＳ１２３で得られた学習結果を、モデル検証用データセットを用いて評価する。
例えば、処理サーバ装置２００は、学習結果として得られた関数にモデル検証用データに含まれる説明変数値を入力し、得られた目的変数値とモデル検証用データに含まれる説明変数値との差の大きさ（差の絶対値）を算出する。処理サーバ装置２００は、モデル検証用データセットに含まれるモデルデータの各々について、かかる差の大きさを算出し、得られた差の大きさ平均値を、学習結果の評価値として算出する。
【００５５】
（ステップＳ１２５）
処理サーバ装置２００は、ステップＳ１２４で得られた評価値に基づいて合否の判定を行う。具体的には、処理サーバ装置２００は、ステップＳ１２４で得られた評価値と閾値とを比較する。評価値が閾値以下である場合、処理サーバ装置２００は、学習結果を合格と評価する。一方、評価値が閾値より大きい場合、処理サーバ装置２００は、学習結果を不合格と評価する。
【００５６】
ステップＳ１２５で学習結果を合格と評価した場合（ステップＳ１２５：ＹＥＳ）、図５の処理を終了し、図４の処理へ戻る。
一方、ステップＳ１２５で学習結果を不合格と評価した場合（ステップＳ１２５：ＮＯ）、ステップＳ１３１へ進む。
【００５７】
（ステップＳ１３１）
処理サーバ装置２００は、機械学習における各種パラメータの値を更新する。
ステップＳ１３１の後、ステップＳ１２３へ戻る。
ステップＳ１２１からＳ１２５までの一連の処理、ステップＳ１３１からＳ１２５までの一連の処理は、それぞれ機械学習における一回の処理の例に該当する。
処理サーバ装置２００が図５の処理に用いる学習アルゴリズムは特定のアルゴリズムに限定されず、図５のように学習結果を評価して処理を繰り返すことが可能なものであればよい。
【００５８】
図６は、データ処理の予約の処理手順の第一例を示す図である。図６は、データ処理の予約に成功する場合の処理手順の例を示す。
図６の処理で、クライアントシステム９１０は、予約の登録を要求するユーザ操作を受け（シーケンスＳ２１１）、時期情報要求を処理時間推定装置１００へ送信する（シーケンスＳ２１２）。ここでいう時期情報要求は、図３に例示される処理予約登録画面に表示する情報の要求である。
【００５９】
処理時間推定装置１００では、通信部１１０が時期情報要求を受信すると、期限情報取得部１９１が期限情報を取得する（シーケンスＳ２２１）。上述したように期限情報は、データ処理要求に対する処理結果の出力予定期限を示す情報である。
また、処理時間要素推定部１９４及び処理時間推定部１９５は、データ処理に要する処理時間を上記のように機械学習にて算出する（シーケンスＳ２２２）。通信部１１０が、予約対象のデータ処理におけるデータ量の情報を含む時期情報予約を受信し、処理時間要素推定部１９４がこのデータ量の情報に基づいて処理時間要素を算出するようにしてもよい。あるいは、処理時間要素推定部１９４が、過去のデータ処理におけるデータ量に基づいて予約対象のデータ処理におけるデータ量を推定するようにしてもよい。
【００６０】
次に、処理開始期限決定部１９６が、上記のように出力予定期限及び処理時間に基づいて処理開始期限を決定する（シーケンスＳ２２３）。
そして、通信部１１０が、時期情報要求に対する回答として処理時間及び処理開始期限を示す情報をクライアントシステム９１０へ送信する（シーケンスＳ２２４）。クライアントシステム９１０が出力予定期限を記憶していない場合、通信部１１０はさらに期限情報（出力予定期限を示す情報）をクライアントシステム９１０へ送信する。
【００６１】
処理時間推定装置１００からの回答（時期情報）を受信したクライアントシステム９１０は、図３に例示される処理登録画面を表示し（シーケンスＳ２３１）、処理要求期限の入力を受け付ける（シーケンスＳ２３２）。そして、クライアントシステム９１０は、処理要求期限を示す情報を含む予約登録要求を処理時間推定装置１００へ送信する（シーケンスＳ２３３）。
【００６２】
処理時間推定装置１００では、通信部１１０が予約登録要求を受信すると、処理予約受付部１９７が、予約の可否を判定する（シーケンスＳ２４１）。処理予約受付部１９７は、予約登録要求から処理要求期限を読み出し、処理開始期限と比較する。処理要求期限が処理開始期限またはそれ以前である場合、処理予約受付部１９７は予約可能と判定する。一方、処理要求期限が処理開始期限よりも後である場合、処理予約受付部１９７は予約不可と判定する。
図６の例では、処理時間推定装置１００は予約可能と判定している。
【００６３】
シーケンスＳ２４１で予約可能と判定した処理予約受付部１９７は、予約登録を行う（シーケンスＳ２４２）。上記のように処理予約受付部１９７は、予約要求元及び処理要求期限など予約に関する情報を記憶部１８０に記憶させることで、予約を登録する。
予約登録を完了すると、処理予約受付部１９７は、通信部１１０を介して予約登録元のクライアントシステム９１０へ、予約登録完了通知を送信する（シーケンスＳ２４３）。
予約登録完了通知を受信したクライアントシステム９１０は、予約登録が完了した旨を表示する（シーケンスＳ２５１）。
シーケンスＳ２５１の後、図６の処理を終了する。この場合、処理時間推定装置１００、クライアントシステム９１０共に、データ処理の予約の処理を終了する。
【００６４】
図７は、データ処理の予約の処理手順の第二例を示す図である。図７は、データ処理の予約に失敗する場合の処理手順の例を示す。
図７のシーケンスＳ３１１〜Ｓ３３３は、図６のシーケンスＳ２１１〜Ｓ２３３と同様である。
シーケンスＳ３３３でクライアントシステム９１０が送信した予約登録要求を通信部１１０が受信すると、処理予約受付部１９７が、予約の可否を判定する（シーケンスＳ３４１）。処理予約受付部１９７が予約の可否を判定する方法は、図６のシーケンスＳ２４１の場合と同様である。シーケンスＳ３４１で処理予約受付部１９７は、シーケンスＳ２４１の場合とは異なり予約不可と判定している。
【００６５】
この場合、処理予約受付部１９７は、予約通知を行わず、通信部１１０を介してクライアントシステム９１０へ、予約拒否通知を送信する（シーケンスＳ３４２）。
予約拒否通知を受信したクライアントシステム９１０は、予約に失敗した旨、及び、処理要求期限を入力し直すよう促す通知を表示する（シーケンスＳ３５１）。
シーケンスＳ３５１の後、図７の処理を終了する。この場合、サービス利用者が処理要求期限を入力し直して予約登録ボタンを操作すると、処理時間推定装置１００及びクライアントシステム９１０は、図６のシーケンスＳ２４１及び図７のシーケンスＳ３４１に例示される予約可否の判定、およびその後の処理を行う。
【００６６】
以上のように、処理時間要素推定部１９４は、処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定する。処理時間推定部１９５は、処理の繰り返し回数及び１回あたりの処理時間に基づいて、要求される処理の実行時間を推定する。
これにより、処理時間推定装置１００では、処理時間（要求される処理の実行時間）の推定精度が高まることが期待される。特に、処理時間推定部１９５が、処理の繰り返し回数及び１回あたりの処理時間に基づくことで、処理の繰り返し回数及び１回あたりの処理時間の傾向を反映させて処理時間を推定することができる。この点で、処理時間推定装置１００によれば、単に処理対象データに基づく場合と比較して処理時間の推定精度が高まることが期待される。
【００６７】
期限情報取得部１９１は、処理要求に対する処理結果の出力予定期限を示す期限情報を取得する。処理開始期限決定部１９６は、処理結果の出力予定期限、及び、推定された実行時間に基づいて、処理開始期限を決定する。
これにより、処理時間推定装置１００は、処理結果の出力予定期限に間に合わせるための処理開始期限を提示することができる。この処理開始期限に基づいてスケジューリングを行うことで、出力予定期限までに処理結果を得られるようにスケジューリングを行うことができる。
【００６８】
また、処理予約受付部１９７は、処理要求期限が処理開始期限又はそれ以前の処理予約を受け付ける。
これにより、処理時間推定装置１００は、処理結果の出力予定期限に間に合わせるように処理予約を登録することができる。
【００６９】
また、データ内容係数取得部１９２は、処理要求における処理対象データの内容に応じたデータ内容係数を取得する。処理時間要素推定部１９４は、処理対象データ量に加えて、データ内容係数に基づいて、処理の繰り返し回数及び１回あたりの処理時間のうち少なくともいずれか一方を推定する。
これにより、処理時間推定装置１００は、処理時間の推定にデータの内容を反映させることができる。この点で、処理時間推定装置１００によれば、処理時間の推定精度が高まることが期待される。
【００７０】
また、処理アルゴリズム係数取得部１９３は、処理要求に対する処理アルゴリズムに応じた処理アルゴリズム係数を取得する。処理時間要素推定部１９４は、処理時間要素推定部は、処理対象データ量に加えて処理アルゴリズム係数に基づいて、処理の繰り返し回数及び１回あたりの処理時間のうち少なくともいずれか一方を推定する。
これにより、処理時間推定装置１００は、処理アルゴリズムに応じた処理時間を推定することができる。この点で、処理時間推定装置１００によれば、処理時間の推定精度が高まることが期待される。
【００７１】
次に、図８を参照して本発明の最小構成について説明する。
図８は、本発明に係る処理時間推定装置の最小構成の例を示す図である。図８に示す処理時間推定装置１０は、処理時間要素推定部１１と、処理時間推定部１２とを備える。
かかる構成にて、処理時間要素推定部１１は、処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び１回あたりの処理時間を推定する。処理時間推定部１２は、処理の繰り返し回数及び１回あたりの処理時間に基づいて、要求される処理の実行時間を推定する。
【００７２】
これにより、処理時間推定装置１０では、処理時間（要求される処理の実行時間）の推定精度が高まることが期待される。特に、処理時間推定部１２が、処理の繰り返し回数及び１回あたりの処理時間に基づくことで、処理の繰り返し回数及び１回あたりの処理時間の傾向を反映させて処理時間を推定することができる。この点で、処理時間推定装置１０によれば、単に処理対象データに基づく場合と比較して処理時間の推定精度が高まることが期待される。
【００７３】
なお、処理時間推定装置１００の全部または一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００７４】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００７５】
１  サービス提供システム
１０、１００  処理時間推定装置
１１、１９４  処理時間要素推定部
１２、１９５  処理時間推定部
１１０  通信部
１２０  表示部
１３０  操作入力部
１８０  記憶部
１９０  制御部
１９１  期限情報取得部
１９２  データ内容係数取得部
１９３  処理アルゴリズム係数取得部
１９６  処理開始期限決定部
１９７  処理予約受付部
２００  処理サーバ装置
３００  第一通信ネットワーク
９１０  クライアントシステム
９２０  第二通信ネットワーク
【図１】
2019003567.tif 000003
【図２】
2019003567.tif 000004
【図３】
2019003567.tif 000005
【図４】
2019003567.tif 000006
【図５】
2019003567.tif 000007
【図６】
2019003567.tif 000008
【図７】
2019003567.tif 000009
【図８】
2019003567.tif 000010