(57)【要約】【課題】計画の生成に使用する情報を更新するための再学習処理で使用する最適な計画履歴を自動的に選択する。【解決手段】事象を制御するための複数の処理の順番を規定した計画を管理する計算機システムであって、処理は事象の制御に関連する項目を含み、計画は、項目から算出されるパラメータ及び閾値から定義される制約条件、並びに、計画履歴における制約条件の適合性の傾向を表す乖離参考値から構成される計画パターンに基づいて生成され、計算機は、制約条件情報、計画パターン情報、並びに、計画履歴及び評価値を対応づけたデータを管理するための計画履歴情報を保持し、第一制約条件が更新された場合、評価値に基づいて、計画履歴情報から再利用計画履歴を選択し、再利用計画履歴及び制約条件に基づく再学習処理を実行することによって、計画パターン情報を更新する。【選択図】図１
2019212045.tif 000002
【特許請求の範囲】
【請求項１】
事象を制御するための複数の処理の順番を規定した計画を管理する計算機システムであって、
前記計算機システムは、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有する少なくとも一つの計算機を備え、
前記処理は、前記事象の制御に関連する項目を少なくとも一つ含み、
前記計画は、前記少なくとも一つの項目から算出されるパラメータ及び閾値から定義される制約条件、並びに、過去に生成された前記計画である計画履歴における前記制約条件の適合性の傾向を表す乖離参考値から構成される計画パターンに基づいて生成され、
前記少なくとも一つの計算機は、
前記制約条件を管理するための制約条件情報、前記計画パターンを管理するための計画パターン情報、並びに、前記計画履歴及び前記制約条件に基づいて算出される、前記計画の質を表す評価値を対応づけたデータを管理するための計画履歴情報を保持し、
前記制約条件情報に基づいて管理される第一制約条件が更新された場合、前記計画履歴の前記評価値に基づいて、前記計画履歴情報から再利用計画履歴を選択し、
前記再利用計画履歴及び前記制約条件に基づく再学習処理を実行することによって、前記計画パターン情報を更新することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記計画履歴情報に格納される各計画履歴に対して、前記計画履歴における前記第一制約条件の乖離の程度を表す乖離度を算出し、
前記計画履歴における前記第一制約条件の乖離度に基づいて、前記第一制約条件の一時乖離参考値を算出し、
前記第一制約条件の一時乖離参考値を前記計画パターン情報に格納することによって、前記計画パターン情報を更新し、
前記更新された計画パターン情報及び前記計画履歴に基づいて、前記計画履歴の一時評価値を算出し、
前記一時評価値に基づいて、前記計画履歴情報から前記再利用計画履歴を選択することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記複数の計画履歴の各々の前記第一制約条件の乖離度に基づいて、前記計画履歴情報から複数の更新用の計画履歴を選択し、
前記複数の更新用の計画履歴における前記第一制約条件の乖離度に基づいて、前記第一制約条件の一時乖離参考値を算出することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記再利用計画履歴及び前記更新された制約条件情報に基づいて、前記再利用計画履歴における前記制約条件の乖離度を算出し、
前記再利用計画履歴における前記制約条件の乖離度に基づいて、前記制約条件の乖離参考値を算出し、
前記制約条件の乖離参考値に基づいて、前記計画パターン情報を更新することを特徴とする計算機システム。
【請求項５】
事象を制御するための複数の処理の順番を規定した計画を管理する計算機システムにおける学習制御方法であって、
前記計算機システムは、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有する少なくとも一つの計算機を備え、
前記処理は、前記事象の制御に関連する項目を少なくとも一つ含み、
前記計画は、前記少なくとも一つの項目から算出されるパラメータ及び閾値から定義される制約条件、並びに、過去に生成された前記計画である計画履歴における前記制約条件の適合性の傾向を表す乖離参考値から構成される計画パターンに基づいて生成され、
前記少なくとも一つの計算機は、前記制約条件を管理するための制約条件情報、前記計画パターンを管理するための計画パターン情報、並びに、前記計画履歴及び前記制約条件に基づいて算出される、前記計画の質を表す評価値を対応づけたデータを管理するための計画履歴情報を保持し、
前記学習制御方法は、
前記少なくとも一つの計算機が、前記制約条件情報に基づいて管理される第一制約条件が更新された場合、前記計画履歴の前記評価値に基づいて、前記計画履歴情報から再利用計画履歴を選択する第１のステップと、
前記少なくとも一つの計算機が、前記再利用計画履歴及び前記制約条件に基づく再学習処理を実行することによって、前記計画パターン情報を更新する第２のステップと、を含むことを特徴とする学習制御方法。
【請求項６】
請求項５に記載の学習制御方法であって、
前記第１のステップは、
前記少なくとも一つの計算機が、前記計画履歴情報に格納される各計画履歴に対して、前記計画履歴における前記第一制約条件の乖離の程度を表す乖離度を算出する第３のステップと、
前記少なくとも一つの計算機が、前記計画履歴における前記第一制約条件の乖離度に基づいて、前記第一制約条件の一時乖離参考値を算出する第４のステップと、
前記少なくとも一つの計算機が、前記第一制約条件の一時乖離参考値を前記計画パターン情報に格納することによって、前記計画パターン情報を更新する第５のステップと、
前記少なくとも一つの計算機が、前記更新された計画パターン情報及び前記計画履歴に基づいて、前記計画履歴の一時評価値を算出する第６のステップと、
前記少なくとも一つの計算機が、前記一時評価値に基づいて、前記計画履歴情報から前記再利用計画履歴を選択する第７のステップと、を含むことを特徴とする学習制御方法。
【請求項７】
請求項６に記載の学習制御方法であって、
前記第４のステップは、
前記少なくとも一つの計算機が、前記複数の計画履歴の各々の前記第一制約条件の乖離度に基づいて、前記計画履歴情報から複数の更新用の計画履歴を選択するステップと、
前記少なくとも一つの計算機が、前記複数の更新用の計画履歴における前記第一制約条件の乖離度に基づいて、前記第一制約条件の一時乖離参考値を算出するステップと、を含むことを特徴とする学習制御方法。
【請求項８】
請求項７に記載の学習制御方法であって、
前記第２のステップは、
前記少なくとも一つの計算機が、前記再利用計画履歴及び前記更新された制約条件情報に基づいて、前記再利用計画履歴における前記制約条件の乖離度を算出するステップと、
前記少なくとも一つの計算機が、前記再利用計画履歴における前記制約条件の乖離度に基づいて、前記制約条件の乖離参考値を算出するステップと、
前記少なくとも一つの計算機が、前記制約条件の乖離参考値に基づいて、前記計画パターン情報を更新するステップと、を含むことを特徴とする学習制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、事象を制御するための処理の順番を規定した計画を生成する計算機システム及びその学習制御方法に関する。
【背景技術】
【０００２】
製品の製造計画、並び、業務システムの運用計画及び管理計画等の計画を事前に生成するためには、時間及び空間並びに設備及び人員等のリソースに関する制約を考慮する必要がある。
【０００３】
計画の生成には時間、知識、及び経験等が必要であるため、知識を有さないユーザが手動で計画を生成することは難しいことから、従来は、熟練者が手動で計画を生成していた。そのため、熟練者が生成する計画と同等の質の計画を自動的に生成する計算機又はシステムが求められている。
【０００４】
事前に判明していない暗黙知を制約条件として加えて計画を生成する技術として特許文献１に記載の技術が知られている。特許文献１には、「所定事象に関して作成された複数の作成済み計画の情報と、作成済み計画各々の作成に用いられた各利用情報とを格納した記憶装置と、所定事象に関して判明済みの制約条件と各利用情報とを所定アルゴリズムに適用して仮計画を複数作成し、各仮計画と該当仮計画に対応する作成済み計画との各組のうち、計画間の類似度が所定基準以下の非類似の組における作成済み計画とその利用情報とを所定アルゴリズムに適用し、計画間の非類似の要因に対応した新規制約条件を生成し、当該新規制約条件および判明済み制約条件を所定の計画生成手段に提供する制約生成処理を実行する演算装置を備える」計画作成支援装置が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−１８９０７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されているように、事前に判明している制約条件及び計画履歴を用いた学習処理を実行することによって、暗黙知が特定される。制約条件が変更された場合、再度、学習処理を実行する必要がある。本明細書では、二回目以降に実行される学習処理を再学習処理と記載する。
【０００７】
計画履歴は更新前の制約条件に基づいて生成された計画であるため、全ての計画履歴を再学習処理に用いることはできない。そのため、従来は、ユーザが、使用できる計画履歴を選択し、又は、新たな計画履歴を収集した上で、再学習処理を実行する必要がある。
【０００８】
計画履歴の選択及び計画履歴の収集には時間を要する。したがって、制約条件の変更に伴って、新たな計画を自動的かつ迅速に生成することが困難である。
【０００９】
本発明は、制約条件の更新に伴って、再学習処理に使用する計画履歴を自動的に選択し、再学習処理を実行する計算機システム及び方法を実現する。
【課題を解決するための手段】
【００１０】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、事象を制御するための複数の処理の順番を規定した計画を管理する計算機システムであって、前記計算機システムは、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有する少なくとも一つの計算機を備え、前記処理は、前記事象の制御に関連する項目を少なくとも一つ含み、前記計画は、前記少なくとも一つの項目から算出されるパラメータ及び閾値から定義される制約条件、並びに、過去に生成された前記計画である計画履歴における前記制約条件の適合性の傾向を表す乖離参考値から構成される計画パターンに基づいて生成され、前記少なくとも一つの計算機は、前記制約条件を管理するための制約条件情報、前記計画パターンを管理するための計画パターン情報、並びに、前記計画履歴及び前記制約条件に基づいて算出される、前記計画の質を表す評価値を対応づけたデータを管理するための計画履歴情報を保持し、前記制約条件情報に基づいて管理される第一制約条件が更新された場合、前記計画履歴の前記評価値に基づいて、前記計画履歴情報から再利用計画履歴を選択し、前記再利用計画履歴及び前記制約条件に基づく再学習処理を実行することによって、前記計画パターン情報を更新する。
【発明の効果】
【００１１】
本発明の一形態によれば、再学習処理に使用する計画履歴を自動的に選択し、迅速な再学習処理を実行することができる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】実施例１のシステムの構成例を示す図である。
【図２】実施例１の制約条件情報のデータ構造の一例を示す図である。
【図３】実施例１の計画履歴情報のデータ構造の一例を示す図である。
【図４】実施例１の計画のデータ構造の一例を示す図である。
【図５】実施例１の計画パターン情報のデータ構造の一例を示す図である。
【図６】実施例１の更新制御部が実行する処理を説明するフローチャートである。
【図７Ａ】実施例１の学習部が実行する処理を説明するフローチャートである。
【図７Ｂ】実施例１の学習部が実行する処理を説明するフローチャートである。
【図８】実施例１の計画生成部が実行する処理を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１４】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【００１５】
本明細書等における「第１」、「第２」、「第３」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【００１６】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例１】
【００１７】
図１は、実施例１のシステムの構成例を示す図である。
【００１８】
システムは、計算機１００及び対象システム１０５から構成される。計算機１００及び対象システム１０５は、直接又はネットワークを介して互いに接続される。ネットワークは、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。ネットワークの接続方式は有線又は無線のいずれでもよい。なお、計算機１００は、ネットワークを介して、ユーザが操作する端末と接続されてもよい。
【００１９】
対象システム１０５は、計画に基づいた事象の制御が行われるシステムである。対象システム１０５は、例えば、製品を製造する工場及び空調システム等である。
【００２０】
計算機１００は、対象システム１０５における事象を制御するための処理の順番を規定した計画を生成する。実施例１の計算機１００は、過去に生成された計画を学習し、学習結果及び制約条件に基づいて新たな計画を生成する。
【００２１】
対象システム１０５における事象の制御に関する熟練者は、一部の制約条件が満たされない場合でも事象を適切に制御できることを知識として保持しており、当該知識に基づいて一部の制約条件を満たさない計画を生成する。計算機１００は、前述の知識を取り入れた計画を生成するために、過去に生成された計画を用いて、違反が許容される制約条件及び違反の程度を学習する。計算機１００は学習結果を計画パターンとして保持する。計算機１００は、計画パターン及び制約条件に基づいて新規計画を生成する。
【００２２】
計算機１００は、ハードウェアとして、演算装置１１１、記憶装置１１２、ネットワークインタフェース１１３、及びＩＯインタフェース１１４を有する。各ハードウェアは、内部バスを介して互いに接続される。なお、計算機１００は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶媒体を有してもよい。
【００２３】
演算装置１１１は、プロセッサ等であり、記憶装置１１２に格納されるプログラムを実行する。演算装置１１１がプログラムにしたがって処理を実行することによって特定の機能を実現する機能部として動作する。以下の説明では、機能部を主語に処理を説明する場合、演算装置１１１が当該機能部を実現するプログラムを実行していることを示す。
【００２４】
記憶装置１１２は、メモリ等であり、演算装置１１１が実行するプログラム及びプログラムが使用する情報を格納する。また、記憶装置１１２は、プログラムが一時的に使用するワークエリアを含む。記憶装置１１２に格納されるプログラム及び情報については後述する。
【００２５】
ネットワークインタフェース１１３は、ネットワークを介して他の装置と接続するためのインタフェースである。ＩＯインタフェース１１４は、入力装置１０１及び出力装置１０２と接続するためのインタフェースである。
【００２６】
入力装置１０１は、例えば、キーボード、マウス等のポインティングデバイス、及びタッチパネル等の装置である。出力装置１０２は、例えば、ディスプレイ及びプリンタ等の装置である。
【００２７】
ここで、記憶装置１１２に格納されるプログラム及び情報について説明する。記憶装置１１２は、学習部１２０、計画生成部１２１、制約条件管理部１２２、及び更新制御部１２３を実現するプログラムを格納する。また、記憶装置１１２は、制約条件情報１３０、計画履歴情報１３１、及び計画パターン情報１３２を格納する。
【００２８】
制約条件情報１３０は、事象に関する制約条件を管理するための情報である。例えば、時間、空間、設備、及び人員等のリソースに関する制約条件及び製品の強度等の品質に関する制約条件が考えられる。制約条件情報１３０のデータ構造については図２を用いて説明する。
【００２９】
計画履歴情報１３１は、過去に生成された計画、すなわち、計画履歴を管理するための情報である。計画履歴情報１３１のデータ構造については図３を用いて説明する。
【００３０】
計画パターン情報１３２は、過去に生成された計画における、制約条件の適合性の傾向を表す情報である計画パターンを管理するための情報である。計画パターン情報１３２のデータ構造については図５を用いて説明する。
【００３１】
計画パターンは、各制約条件の乖離参考値の配列として表される。一つの制約条件の乖離参考値は、過去に生成された複数の計画における制約条件の適合性の傾向を表す指標であり、また、制約条件の重要性を表す指標でもある。一つの制約条件の乖離参考値は、計画履歴における一つの制約条件の乖離度に基づいて算出される。一つの制約条件の乖離度は、一つの計画における一つの制約条件の乖離の程度を示す指標である。
【００３２】
学習部１２０は、計画履歴に基づいて、計画の生成に用いる情報を生成又は更新するための学習処理を実行する。より具体的には、学習部１２０は、対象システム１０５の稼働前に学習処理を実行することによって計画パターン情報１３２を生成する。また、学習部１２０は、更新制御部１２３からの指示を受信した場合、再度、学習処理を実行することによって計画パターン情報１３２を更新する。以下の説明では、計画パターン情報１３２を更新するために実行される学習処理を再学習処理と記載する。
【００３３】
計画生成部１２１は、入力データを受信した場合、制約条件情報１３０及び計画パターン情報１３２に基づいて、計画を生成する。ここで、入力データは、実行順番が定められていない、対象システム１０５における事象を制御するための処理に関するデータ（処理データ）の集合である。計画生成部１２１は、適切な制御を実現するための処理順番を決定することによって計画を生成する。すなわち、計画は、処理順番が定められた処理データの集合である。
【００３４】
制約条件管理部１２２は、制約条件情報１３０を管理する。制約条件管理部１２２は、制約条件の追加、更新、及び削除等を行う。
【００３５】
更新制御部１２３は、学習処理を制御する。更新制御部１２３は、ネットワークインタフェース１１３又はＩＯインタフェース１１４を介して、学習実行要求及び制約条件更新要求を受信する。制約条件更新要求は、制約条件を更新するための要求であり、制約条件の識別情報及び更新内容を含む。更新内容は、例えば、新たな閾値として設定する値が考えられる。なお、条件式が更新内容として含まれてもよい。
【００３６】
なお、計算機１００が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【００３７】
図２は、実施例１の制約条件情報１３０のデータ構造の一例を示す図である。
【００３８】
制約条件情報１３０は、条件ＩＤ２０１、条件式２０２、及び閾値２０３から構成されるエントリを格納する。一つのエントリが一つの制約条件に対応する。
【００３９】
条件ＩＤ２０１は、制約条件を識別するための識別情報を格納するフィールドである。条件ＩＤ２０１には、例えば、番号が格納される。
【００４０】
条件式２０２は、制約条件として設定される条件式を格納するフィールドである。条件式は処理に関連する項目から算出されるパラメータ及び閾値を示す変数に基づいて定義される。
【００４１】
閾値２０３は、条件式の閾値として設定される値を格納するフィールドである。
【００４２】
図３は、実施例１の計画履歴情報１３１のデータ構造の一例を示す図である。
【００４３】
計画履歴情報１３１は、計画ＩＤ３０１、格納場所３０２、タイムスタンプ３０３、及び評価値３０４から構成されるエントリを格納する。一つのエントリが一つの計画履歴に対応する。
【００４４】
計画ＩＤ３０１は、計画を識別するための識別情報を格納するフィールドである。計画ＩＤ３０１には、例えば、番号が格納される。
【００４５】
格納場所３０２は、計画の格納場所を示す値を格納するフィールドである。格納場所３０２には、例えば、計画を格納する記憶領域のアドレスが格納される。
【００４６】
タイムスタンプ３０３は、計画が生成された時刻を格納するフィールドである。なお、タイムスタンプ３０３に格納される時刻は、システムが管理する時刻でもよいし、また、計算機１００が管理する時刻でもよい。
【００４７】
評価値３０４は、計画の質を表す指標である評価値を格納するフィールドである。満たす制約条件の数が多いほど質が高い計画、すなわち、適切な計画として扱う。また、計画履歴に類似する計画を質が高い計画として扱ってもよい。この場合、評価値は、計画履歴との類似性を示す指標として用いることができる。
【００４８】
ここで、計画のデータ構造について説明する。図４は、実施例１の計画のデータ構造の一例を示す図である。
【００４９】
計画４００は、順番４０１及び項目４０２から構成されるエントリを格納する。一つのエントリが一つの処理（処理データ）に対応する。
【００５０】
順番４０１は、処理の実行順番を格納するフィールドである。
【００５１】
項目４０２は、処理に関連する項目を格納するフィールド群である。項目４０２には、一つ以上のフィールドが含まれる。図４に示す項目４０２は、材料番号、重さ、及び長さのフィールドを含む。
【００５２】
図５は、実施例１の計画パターン情報１３２のデータ構造の一例を示す図である。
【００５３】
計画パターン情報１３２は、条件ＩＤ５０１及び乖離参考値５０２から構成されるエントリを格納する。一つのエントリが一つの制約条件の乖離参考値に対応する。条件ＩＤ５０１は、条件ＩＤ２０１と同一のフィールドである。
【００５４】
乖離参考値５０２は、条件ＩＤ５０１に対応する制約条件の乖離参考値を格納するフィールドである。一つの制約条件の乖離参考値は、計画の制約条件の乖離度に基づいて算出される。乖離度は、制約条件の乖離が大きい計画の場合、大きい値となり、制約条件の乖離が小さい計画の場合、小さい値となる。なお、制約条件を満たす計画の乖離度は「０」となる。
【００５５】
ここで、実施例１の発明の概要について説明する。まず、乖離参考値及び評価値の関係について説明する。実施例１では、式（１）を用いて計画の評価値が算出される。
【００５６】
【数１】
2019212045.tif 000003
【００５７】
（乖離度）ｉは、一つの計画における識別情報が「ｉ」である制約条件の乖離度を表す。（乖離参考値）ｉは、計画パターンにおける識別情報が「ｉ」である制約条件の乖離参考値を表す。
【００５８】
制約条件の乖離度は以下のような処理に基づいて算出される。
【００５９】
（算出手順１）計算機１００は、一つの計画履歴に含まれる処理データを用いて、制約条件で定義されたパラメータの値を算出する。計算機１００は、パラメータの値及び閾値の比較結果に基づいて、制約条件を満たすか否かを判定する。
【００６０】
（算出手順２）制約条件を満たすと判定された場合、計算機１００は、乖離度として「０」を算出する。制約条件を満たさないと判定された場合、計算機１００は、パラメータの値及び閾値の差の絶対値、及びパラメータの値及び閾値の比等を乖離度として算出する。
【００６１】
また、実施例１では、式（２）を用いて乖離参考値が算出される。
【００６２】
【数２】
2019212045.tif 000004
【００６３】
ｐｅｒｃｅｎｔｉｌｅは、配列及び率から値が定まるパーセンタイル関数である。ｄ（ｉ）は各計画履歴における識別情報が「ｉ」である制約条件の乖離度の配列を表し、ｐはパーセンタイル演算のパラメータを表す。ｃはｄ（ｉ）の要素数を表す。ｎはｄ（ｉ）の中で識別情報が「ｉ」である制約条件を満たさなかった計画履歴の数、すなわち、値が「０」ではない要素の数を表す。
【００６４】
なお、前述の評価値、乖離度、及び乖離参考値の算出方法は一例であって、本発明は各値の算出方法に限定されない。
【００６５】
実施例１の計算機１００は、評価値に基づいて、制約条件の更新に伴う再学習処理に使用する計画履歴を選択する。
【００６６】
制約条件の更新に伴って、乖離度及び乖離参考値は更新されるため、評価値も更新される。そのため、更新された評価値を用いて計画履歴を選択する必要がある。しかし、乖離度及び乖離参考値は、更新された制約条件及び選択された計画履歴に基づいて算出される。前述のように、計画履歴、評価値、及び乖離参考値は、互いに依存した関係であるため、評価値に基づいて計画履歴を選択するためには工夫が必要となる。
【００６７】
以下、前述した機能を実現する処理について説明する。まず、計算機１００が実行する処理の概要を説明する。
【００６８】
計算機１００は、対象システム１０５の計画を生成する前に、予め、学習処理を実行する。学習処理によって、計画パターン情報１３２が生成される。計算機１００は、入力データを受信した場合、制約条件情報１３０及び計画パターン情報１３３に基づいて、入力データから計画を生成する。
【００６９】
計算機１００は、制約条件の更新要求を受信した場合、計画履歴情報１３１から再学習処理に使用する計画履歴を選択し、選択された計画履歴を用いて再学習処理を実行する。以下の説明では、再学習処理に使用する計画履歴を再利用計画履歴とも記載する。計算機１００は、再利用計画履歴を以下のような手順で選択する。
【００７０】
（手順１）計算機１００は、各計画履歴について、更新された制約条件の乖離度を算出し、当該乖離度が小さい計画履歴を更新用の計画履歴として選択する。計算機１００は、更新用の計画履歴の更新対象の制約条件の乖離度に基づいて、更新された制約条件の一時乖離参考値を算出する。
【００７１】
（手順２）計算機１００は、更新された制約条件の一時乖離参考値及び他の制約条件の乖離参考値に基づいて、一時評価値を算出する。計算機１００は、一時評価値に基づいて、再利用計画履歴を選択する。以下、各処理の詳細について説明する。
【００７２】
図６は、実施例１の更新制御部１２３が実行する処理を説明するフローチャートである。
【００７３】
更新制御部１２３は、外部から指示を受信した場合、以下で説明する処理を開始する。
【００７４】
更新制御部１２３は、受信した指示が制約条件更新要求であるか否かを判定する（ステップＳ１０１）。
【００７５】
受信した指示が制約条件更新要求ではないと判定された場合、すなわち、受信した指示が学習実行要求であると判定された場合、更新制御部１２３は、学習部１２０に学習実行要求を出力し（ステップＳ１０９）、処理を終了する。
【００７６】
受信した指示が制約条件更新要求であると判定された場合、更新制御部１２３は、制約条件管理部１２２に制約条件更新要求を出力し、また、学習部１２０に仮更新要求を出力する（ステップＳ１０２）。その後、更新制御部１２３は、学習部１２０から更新完了通知を受信するまで、待ち状態に移行する。仮更新要求には、更新対象の制約条件の情報が含まれる。更新対象の制約条件の情報は、例えば、更新対象の制約条件の識別情報のリストである。
【００７７】
次に、更新制御部１２３は、学習部１２０から更新完了通知を受信したか否かを判定する（ステップＳ１０３）。
【００７８】
学習部１２０から更新完了通知を受信していないと判定された場合、更新制御部１２３は、一定時間経過した後、ステップＳ１０３に戻る。
【００７９】
学習部１２０から更新完了通知を受信したと判定された場合、更新制御部１２３は、計画履歴のループ処理を開始する（ステップＳ１０４）。
【００８０】
具体的には、更新制御部１２３は、計画履歴情報１３１からターゲット計画履歴を選択する。後述するように、更新完了通知を受信した時点では、更新された制約条件に基づいて計画パターン情報１３２が更新されている。
【００８１】
次に、更新制御部１２３は、ターゲット計画履歴の一時評価値を算出する（ステップＳ１０５）。
【００８２】
具体的には、更新制御部１２３は、ターゲット計画履歴について、各制約条件の乖離度を算出する。更新制御部１２３は、計画パターン情報１３２から各制約条件の乖離参考値を取得する。計画生成部１２１は、各制約条件の乖離度及び一時乖離参考値を式（１）に代入することによって一時評価値を算出する。
【００８３】
次に、更新制御部１２３は、全ての計画履歴の処理が完了したか否かを判定する（ステップＳ１０６）。
【００８４】
全ての計画履歴の処理が完了していないと判定された場合、更新制御部１２３は、ステップＳ１０４に戻り、新たなターゲット計画履歴を選択する。
【００８５】
全ての計画履歴の処理が完了したと判定された場合、更新制御部１２３は、一時評価値に基づいて、再利用計画履歴を選択する（ステップＳ１０７）。
【００８６】
具体的には、更新制御部１２３は、計画履歴の一時評価値の平均値及び標準偏差を算出する。更新制御部１２３は、一時評価値が、一時評価値の平均値及び標準偏差の合計値以下である計画履歴を、再利用計画履歴として選択する。
【００８７】
次に、更新制御部１２３は、学習部１２０に、再利用計画履歴の情報を含む更新要求を出力し（ステップＳ１０８）、処理を終了する。更新要求に含まれる再利用計画履歴の情報は、例えば、再利用計画履歴の識別情報のリストである。
【００８８】
なお、更新制御部１２３は、再利用計画履歴として選択されたなかった計画履歴を計画履歴情報１３１から削除してもよい。このとき、更新制御部１２３は、削除される計画履歴をアーカイブとして保持してもよい。
【００８９】
なお、更新制御部１２３は、学習部１２０によって計画パターン情報１３２が更新された後、更新された計画パターン情報１３２及び再利用計画履歴における制約条件の乖離度に基づいて、新たな評価値を算出する。更新制御部１２３は、計画履歴情報１３１の各エントリの評価値３０４に算出した評価値を設定する。
【００９０】
図７Ａ及び図７Ｂは、実施例１の学習部１２０が実行する処理を説明するフローチャートである。
【００９１】
学習部１２０は、要求を受信した場合、以下で説明する処理を実行する。
【００９２】
学習部１２０は、受信した要求が学習実行要求であるか否かを判定する（ステップＳ２０１）。
【００９３】
受信した要求が学習実行要求であると判定された場合、学習部１２０は、計画履歴のループ処理を開始する（ステップＳ２０２）。
【００９４】
具体的には、学習部１２０は、計画履歴情報１３１からターゲット計画履歴を一つ選択する。
【００９５】
次に、学習部１２０は、制約条件のループ処理を開始する（ステップＳ２０３）。
【００９６】
具体的には、学習部１２０は、制約条件情報１３０からターゲット制約条件を一つ選択する。
【００９７】
次に、学習部１２０は、ターゲット計画履歴におけるターゲット制約条件の乖離度を算出する（ステップＳ２０４）。具体的には、以下のような処理が実行される。
【００９８】
学習部１２０は、ターゲット計画履歴に含まれる処理データを用いて、ターゲット制約条件で定義されたパラメータの値を算出する。学習部１２０は、パラメータの値及び閾値の比較結果に基づいて、ターゲット制約条件を満たすか否かを判定する。
【００９９】
ターゲット制約条件を満たすと判定された場合、学習部１２０は、乖離度として「０」を算出する。ターゲット制約条件を満たさないと判定された場合、学習部１２０は、パラメータの値及び閾値の差の絶対値、又は、パラメータの値及び閾値の比等を乖離度として算出する。
【０１００】
このように、一つの計画履歴に対して、各制約条件の乖離度の配列が生成される。以上がステップＳ２０４の処理の説明である。
【０１０１】
次に、学習部１２０は、全ての制約条件の処理が完了したか否かを判定する（ステップＳ２０５）。すなわち、ターゲット計画履歴の全ての制約条件に対する乖離度が算出されたか否かが判定される。
【０１０２】
全ての制約条件の処理が完了していないと判定された場合、学習部１２０は、ステップＳ２０３に戻り、新たなターゲット制約条件を選択する。
【０１０３】
全ての制約条件の処理が完了したと判定された場合、学習部１２０は、全ての計画履歴の処理が完了したか否かを判定する（ステップＳ２０６）。
【０１０４】
全ての計画履歴の処理が完了していないと判定された場合、学習部１２０は、ステップＳ２０２に戻り、新たなターゲット計画履歴を選択する。
【０１０５】
全ての計画履歴の処理が完了したと判定された場合、学習部１２０は、計画パターン情報１３２を生成し（ステップＳ２０７）、その後、処理を終了する。具体的には、以下のような処理が実行される。
【０１０６】
学習部１２０は、全ての計画履歴の各制約条件の乖離度を式（２）に代入して、各制約条件の乖離参考値を算出する。
【０１０７】
学習部１２０は、計画パターン情報１３２を生成し、計画パターン情報１３２に制約条件の数だけエントリを生成する。学習部１２０は、生成された各エントリの条件ＩＤ５０１に制約条件の識別情報を設定し、また、各エントリの乖離参考値５０２に制約条件に対応する乖離参考値を設定する。以上がステップＳ２０７の処理の説明である。
【０１０８】
ステップＳ２０１において、受信した要求が学習実行要求でないと判定された場合、学習部１２０は、受信した要求が仮更新要求であるか否かを判定する（ステップＳ２０８）。
【０１０９】
受信した要求が仮更新要求であると判定された場合、学習部１２０は、計画履歴のループ処理を開始する（ステップＳ２０９）。
【０１１０】
具体的には、学習部１２０は、制約条件情報１３０及び仮更新要求に含まれる更新対象の制約条件の情報に基づいて、ターゲット計画履歴を一つ選択する。
【０１１１】
次に、学習部１２０は、更新対象の制約条件のループ処理を開始する（ステップＳ２１０）。
【０１１２】
具体的には、学習部１２０は、更新対象の制約条件の中からターゲット制約条件を一つ選択する。
【０１１３】
次に、学習部１２０は、ターゲット計画履歴におけるターゲット制約条件の乖離度を算出する（ステップＳ２１１）。制約条件の乖離度の算出方法は、ステップＳ２０４と同一である。
【０１１４】
次に、学習部１２０は、全ての更新対象の制約条件の処理が完了したか否かを判定する（ステップＳ２１２）。すなわち、ターゲット計画履歴の全ての更新対象の制約条件に対する乖離度が算出されたか否かが判定される。
【０１１５】
全ての更新対象の制約条件の処理が完了していないと判定された場合、学習部１２０は、ステップＳ２１０に戻り、新たなターゲット制約条件を選択する。
【０１１６】
全ての更新対象の制約条件の処理が完了したと判定された場合、学習部１２０は、全ての計画履歴の処理が完了したか否かを判定する（ステップＳ２１３）。
【０１１７】
全ての計画履歴の処理が完了していないと判定された場合、学習部１２０は、ステップＳ２０９に戻り、新たなターゲット計画履歴を選択する。
【０１１８】
全ての計画履歴の処理が完了したと判定された場合、学習部１２０は、更新対象の制約条件の乖離度に基づいて更新用の計画履歴を選択する（ステップＳ２１４）。
【０１１９】
具体的には、学習部１２０は、更新対象の制約条件の乖離度が小さい順に、所定の数の計画履歴を、更新用の計画履歴として選択する。更新対象の制約条件が複数存在する場合、学習部１２０は、各更新対象の制約条件の乖離度の合計値が小さい順に、所定の数の計画履歴を、更新用の計画履歴として選択する。なお、選択する計画履歴の数は、予め設定されているものとする。ただし、選択する計画履歴の数は任意のタイミングで更新できる。
【０１２０】
次に、学習部１２０は、更新用の計画履歴における更新対象の制約条件の乖離度に基づいて、更新対象の制約条件の一時乖離参考値を算出する（ステップＳ２１５）。乖離参考値の算出方法は、ステップＳ２０７で用いた算出方法と同様である。ただし、更新用の計画履歴の乖離度のみを用いて更新対象の制約条件の一時乖離参考値が算出される点が異なる。学習部１２０は、計画パターン情報１３２を参照して、更新対象の制約条件のエントリの乖離参考値５０２に算出された一時乖離参考値を上書きする。
【０１２１】
次に、学習部１２０は、更新制御部１２３に更新完了通知を出力し（ステップＳ２１６）、その後、処理を終了する。
【０１２２】
ステップＳ２０８において、受信した要求が仮更新要求でないと判定された場合、すなわち、受信した要求が更新要求であると判定された場合、学習部１２０は、再利用計画履歴のループ処理を開始する（ステップＳ２１７）。
【０１２３】
具体的には、学習部１２０は、再利用計画履歴の中からターゲット計画履歴を一つ選択する。
【０１２４】
次に、学習部１２０は、制約条件のループ処理を開始する（ステップＳ２１８）。
【０１２５】
具体的には、学習部１２０は、制約条件情報１３０からターゲット制約条件を一つ選択する。
【０１２６】
次に、学習部１２０は、ターゲット計画履歴におけるターゲット制約条件の乖離度を算出する（ステップＳ２１９）。乖離度の算出方法は、ステップＳ２０４で用いた算出方法と同様である。
【０１２７】
次に、学習部１２０は、全ての制約条件の処理が完了したか否かを判定する（ステップＳ２２０）。
【０１２８】
全ての制約条件の処理が完了していないと判定された場合、学習部１２０は、ステップＳ２１８に戻り、新たなターゲット制約条件を選択する。
【０１２９】
全ての制約条件の処理が完了したと判定された場合、学習部１２０は、全ての再利用計画履歴の処理が完了したか否かを判定する（ステップＳ２２１）。
【０１３０】
全ての再利用計画履歴の処理が完了していないと判定された場合、学習部１２０は、ステップＳ２１７に戻り、再利用計画履歴の中から新たなターゲット計画履歴を選択する。
【０１３１】
全ての再利用計画履歴の処理が完了したと判定された場合、学習部１２０は、計画パターン情報１３２を更新し（ステップＳ２２２）、その後、処理を終了する。
【０１３２】
具体的には、学習部１２０は、各制約条件の乖離度に基づいて、各制約条件の乖離参考値を算出する。学習部１２０は、計画パターン情報１３２を参照し、全ての制約条件に対応するエントリの乖離参考値５０２に算出された乖離参考値を上書きする。
【０１３３】
図８は、実施例１の計画生成部１２１が実行する処理を説明するフローチャートである。
【０１３４】
計算機１００は、ネットワークインタフェース１０３又はＩＯインタフェース１０４を介して入力データを受信した場合、以下で説明する処理を開始する。
【０１３５】
計画生成部１２１は、入力データを取得し（ステップＳ３０１）、制約条件情報１３０、計画パターン情報１３２、及び入力データに基づいて処理の順番を決定することによって、新規計画を生成する（ステップＳ３０２）。一つの入力データに対して生成される新規計画の数は二つ以上でもよい。
【０１３６】
計画生成部１２１は、原則、全ての制約条件を満たす新規計画を生成する。ただし、実施例１の計画生成部１２１は、計画パターン情報１３２に基づいて、一部の制約条件を満たしていない新規計画を生成する。例えば、計画生成部１２１は、制約条件の閾値に乖離参考値を加算又は乗算することによって、制約条件を補正し、補正された制約条件に基づいて新規計画を生成する。これによって、乖離度が大きい制約条件を満たしていない計画が生成される。
【０１３７】
計画の生成方法は、例えば、数理計画法及び線形計画法等を用いることが考えられる。なお、本発明は計画の生成方法に限定されない。計画の生成方法は、制約条件及び生成する計画に応じて選択することができる。
【０１３８】
次に、計画生成部１２１は、新規計画のループ処理を開始する（ステップＳ３０３）。
【０１３９】
具体的には、計画生成部１２１は、新規計画の中からターゲット新規計画を選択する。
【０１４０】
次に、計画生成部１２１は、ターゲット新規計画の評価値を算出する（ステップＳ３０４）。
【０１４１】
具体的には、計画生成部１２１は、ターゲット新規計画について、各制約条件の乖離度を算出する。計画生成部１２１は、計画パターン情報１３２から各制約条件の乖離参考値を取得する。計画生成部１２１は、各制約条件の乖離度及び乖離参考値を式（１）に代入することによって評価値を算出する。
【０１４２】
次に、計画生成部１２１は、全ての新規計画について処理が完了したか否かを判定する（ステップＳ３０５）。
【０１４３】
全ての新規計画について処理が完了していないと判定された場合、計画生成部１２１は、ステップＳ３０３に戻り、新たなターゲット新規計画を選択する。
【０１４４】
全ての新規計画について処理が完了したと判定された場合、計画生成部１２１は、評価値に基づいて出力する新規計画を選択する（ステップＳ３０６）。
【０１４５】
例えば、計画生成部１２１は、評価値が最も大きい新規計画を選択する。また、計画生成部１２１は、評価値が高い順に所定の数の新規計画を選択する。
【０１４６】
次に、計画生成部１２１は、選択された新規計画を出力する（ステップＳ３０７）。その後、計画生成部１２１は、処理を終了する。
【０１４７】
このとき、計画生成部１２１は、新規計画の履歴を計画履歴情報１３１に格納する。なお、生成された全ての新規計画の履歴を計画履歴情報１３１に格納してもよいし、選択された新規計画の履歴を計画履歴情報１３１に格納してもよい。
【０１４８】
実施例１によれば、計算機１００は、制約条件が更新された場合、計画履歴の中から再学習に使用する計画履歴を自動的に選択することができる。これによって、制約条件の更新に伴う再学習処理を迅速に実行することができる。また、一時評価値に基づいて選択された再利用計画履歴を用いた再学習処理を実行することによって、計画の質の低下を防止することができる。
【０１４９】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１５０】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１５１】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１５２】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【０１５３】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１５４】
１００  計算機
１０１  入力装置
１０２  出力装置
１０３  ネットワークインタフェース
１０４  ＩＯインタフェース
１０５  対象システム
１１１  演算装置
１１２  記憶装置
１１３  ネットワークインタフェース
１１４  ＩＯインタフェース
１２０  学習部
１２１  計画生成部
１２２  制約条件管理部
１２３  更新制御部
１３０  制約条件情報
１３１  計画履歴情報
１３２  計画パターン情報
【図１】
2019212045.tif 000005
【図２】
2019212045.tif 000006
【図３】
2019212045.tif 000007
【図４】
2019212045.tif 000008
【図５】
2019212045.tif 000009
【図６】
2019212045.tif 000010
【図７Ａ】
2019212045.tif 000011
【図７Ｂ】
2019212045.tif 000012
【図８】
2019212045.tif 000013