(57)【特許請求の範囲】
【請求項１】
装置が注文を処理して応答する方法であって、前記装置が、
前記注文を満たすための内部プロセスの初期のスケジューリングポリシと、前記注文の納期ポリシとを決定し、
ａ）前記初期のスケジューリングポリシと前記納期ポリシとに基づき、スケジューリングの決定及び納期見積を含むシミュレーションを実行し、
ｂ）前記シミュレーションの結果に対して機械学習プロセスを実行し、前記スケジューリングの決定の評価及び前記納期見積の評価に共通のスコアリング関数に従って前記スケジューリングの決定及び前記納期見積を評価することにより、前記初期のスケジューリングポリシ及び前記納期ポリシを更新し、
最終的なスケジューリングポリシ及び前記納期ポリシが決定されるまで、前記ａ）及びｂ）を繰り返し実行し、
前記注文に応答して、前記最終的なスケジューリングポリシ及び前記納期ポリシを出力する、ことを含む方法。
【請求項２】
請求項１に記載の方法であって、
前記内部プロセスは生産プロセスであり、
前記注文に応答して前記最終的なスケジューリングポリシ及び前記納期ポリシを出力することは、前記納期ポリシで前記注文に応答し、前記最終的なスケジューリングポリシに従って生産プロセスを実行する１または複数の機械に前記最終的なスケジューリングポリシをディスパッチすることを含む、方法。
【請求項３】
請求項１に記載の方法であって、
前記初期のスケジューリングポリシは、前記注文に関連付けられた工場フロアの１または複数の機械の現在の生産ステータスから生成される、方法。
【請求項４】
請求項１に記載の方法であって、
前記注文が、複数のエージェントから発行された複数の注文を含む、方法。
【請求項５】
請求項１に記載の方法であって、
前記スコアリング関数が、前記シミュレーションにより決定される見積納期及び実際の納入日に基づいて重み付けされるコスト関数である、方法。
【請求項６】
請求項１に記載の方法であって、
前記シミュレーションの結果は、シミュレートされた前記注文の状態及び前記注文を処理する工場フロアの状態を含む、方法。
【請求項７】
コンピュータに、注文の処理及び応答を実行させるプログラムであって、
前記注文を満たすための内部プロセスの初期のスケジューリングポリシと、前記注文の納期ポリシとを決定し、
ａ）前記初期のスケジューリングポリシと前記納期ポリシとに基づき、スケジューリングの決定及び納期見積を含むシミュレーションを実行し、
ｂ）前記シミュレーションの結果に対して機械学習プロセスを実行し、前記スケジューリングの決定の評価及び前記納期見積の評価に共通のスコアリング関数に従って前記スケジューリングの決定及び前記納期見積を評価することにより、前記初期のスケジューリングポリシ及び前記納期ポリシを更新し、
最終的なスケジューリングポリシ及び前記納期ポリシが決定されるまで、前記ａ）及びｂ）を繰り返し実行し、
前記注文に応答して、前記最終的なスケジューリングポリシ及び前記納期ポリシを出力する、ことを前記コンピュータに実行させるプログラム。
【請求項８】
請求項７に記載のプログラムであって、
前記内部プロセスは生産プロセスであり、
前記注文に応答して前記最終的なスケジューリングポリシ及び前記納期ポリシを出力することは、前記納期ポリシで前記注文に応答し、前記最終的なスケジューリングポリシに従って生産プロセスを実行する１または複数の機械に前記最終的なスケジューリングポリシをディスパッチすることを含む、プログラム。
【請求項９】
請求項７に記載のプログラムであって、
前記初期のスケジューリングポリシは、前記注文に関連付けられた工場フロアの１または複数の機械の現在の生産ステータスから生成される、プログラム。
【請求項１０】
請求項７に記載のプログラムであって、
前記注文が、複数のエージェントから発行された複数の注文を含む、プログラム。
【請求項１１】
請求項７に記載のプログラムであって、
前記スコアリング関数が、前記シミュレーションにより決定される見積納期及び実際の納入日に基づいて重み付けされるコスト関数である、プログラム。
【請求項１２】
請求項７に記載のプログラムであって、
前記シミュレーションの結果は、シミュレートされた前記注文の状態及び前記注文を処理する工場フロアの状態を含む、プログラム。
【請求項１３】
工場フロアの１または複数の機械と、
前記１または複数の機械とプログラマブルロジックコントローラによって通信可能に接続された装置と、を含み、
前記装置は、プロセッサを含み、
前記プロセッサは、
注文を満たすための内部プロセスの初期のスケジューリングポリシと、前記注文の納期ポリシとを決定し、
ａ）前記初期のスケジューリングポリシと前記納期ポリシとに基づき、スケジューリングの決定及び納期見積を含むシミュレーションを実行し、
ｂ）前記シミュレーションの結果に対して機械学習プロセスを実行し、前記スケジューリングの決定の評価及び前記納期見積の評価に共通のスコアリング関数に従って前記スケジューリングの決定及び前記納期見積を評価することにより、前記初期のスケジューリングポリシ及び前記納期ポリシを更新し、
最終的なスケジューリングポリシ及び前記納期ポリシが決定されるまで、前記ａ）及びｂ）を繰り返し実行し、
前記注文に応答して、前記最終的なスケジューリングポリシ及び前記納期ポリシを出力する、システム。
【請求項１４】
請求項１３に記載のシステムであって、
前記内部プロセスは生産プロセスであり、
前記プロセッサは、前記納期ポリシで前記注文に応答し、前記最終的なスケジューリングポリシに従って生産プロセスを実行する１または複数の機械に前記最終的なスケジューリングポリシをディスパッチすることによって、前記注文に応答して前記最終的なスケジューリングポリシ及び前記納期ポリシを出力する、システム。
【請求項１５】
請求項１３に記載のシステムであって、
前記初期のスケジューリングポリシは、前記注文に関連付けられた工場フロアの１または複数の機械の現在の生産ステータスから生成される、システム。
【請求項１６】
請求項１３に記載のシステムであって、
前記注文が、複数のエージェントから発行された複数の注文を含む、システム。
【請求項１７】
請求項１３に記載のシステムであって、
前記スコアリング関数が、前記シミュレーションにより決定される見積納期及び実際の納入日に基づいて重み付けされるコスト関数である、システム。
【請求項１８】
請求項１３に記載のシステムであって、
前記シミュレーションの結果は、シミュレートされた前記注文の状態及び前記注文を処理する工場フロアの状態を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、注文を処理して応答する方法に関する。
【背景技術】
【０００２】
納期は生産スケジュールと顧客満足度に影響するため、特に受注生産の場合、納期見積は工場及び製造システムにおける重要な活動である。工場が顧客から注文を受け取ると、工場管理システムは製造現場の能力に基づいて顧客に納期を返信し、生産ラインで実行するためのジョブを生成して注文を履行する。このような場合、ジョブは複数のプロセスを経て最終製品を生成できるインスタンスである。通常、工場には納期を決定するための内部ポリシまたはルールがある。早い納期の見積は顧客を満足させることができるが、納期を過ぎた納入のリスクが高まる。
【０００３】
工場及び製造システムにおける別の重要な活動は、そのようなジョブの処理タイミングを決定する生産スケジューリングである。より正確には、生産スケジューリングは、各ジョブが工場内のどの機械でいつ処理されるかを指定する。工場のリソース、機械、及びオペレータが限られている状況では、生産スケジューリングが生産サイクルタイムに重大な影響を与える可能性がある。納期見積と同様に、工場は生産スケジュールを決定するための内部ポリシまたはルールを持つことができる。適切なスケジューリングにより全体のサイクルタイムを短縮できる場合、納期を過ぎた納入のリスクが減少する。
【０００４】
関連技術の実装において、生産ラインを垂直にシミュレートする工場エミュレーションの結果に基づいて納期返答を生成する方法がある。ただし、将来すべての可能なケースをシミュレートすることはできない。シミュレーションが可能なケースのサブセットのみを対象とする場合でも、必要な計算は大きく、そのような関連技術の実装では、所望の期間内に納期返答を生成することは困難である。
【０００５】
関連技術の実装において、機械学習モデルに基づいてリードタイムを推定し、推定結果を使用して納期返答を生成する方法がある。関連技術の実装の利点は、計算時間を短縮できることである。しかしながら、そのような関連技術の実装は、生産スケジューリングルールがリードタイムを推定するために固定されていると想定している。
【０００６】
関連技術の実装において、最適な生産スケジューリングを検索する方法がある。基本的に、そのような関連技術の実装は、納期が与えられている状況下で最適なポリシを検索する。したがって、最適な納期を検索するには事前にスケジューリングポリシが必要であり、スケジューリングには事前に納期割り当てポリシが必要である。納期見積とスケジューリングは相互に依存している。納期とスケジューリングの両方に対して適切なポリシを取得するには、２つのソリューションを同時に考慮する必要がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−３５１５２３号公報
【発明の概要】
【０００８】
関連技術では、納期とスケジューリングを一緒に考慮するものがない。実施例は、納期の割り当てとスケジューリングのポリシを一緒に（たとえば同時に）決定することを対象としている。
【０００９】
上記問題を解決するために、本明細書で説明する実施例は、工場の生産ライン及び注文の到着をシミュレートする仮想環境を含む。実施例では、仮想環境で行われた決定の試行を通じて、納期見積とスケジューリングのポリシを学習する。納期見積及びスケジューリングプロセスは、協調的決定プロセスとしてモデル化される。実施例では、シミュレーション環境でのフィードバックに基づいて両方のポリシを同時に更新することにより、最適なポリシを検索する。フィードバックは、遅滞などの改善すべき目標指標に関して、各決定がどのように行われたか（たとえば、良い／悪い）を反映する。仮想環境で納期見積及びスケジューリングのポリシを学習した後、ポリシは実際の稼働しているシステムにインストールされる。これにより、ポリシにより、工場または生産システムがリアルタイムで適切な決定を実行できるようになる。
【００１０】
本開示のいくつかの態様は、注文を処理して応答する方法を含むことができる。この方法は、前記注文を満たすための内部プロセスの初期のスケジューリングポリシと、前記注文の納期ポリシとを決定し、a）前記初期のスケジューリングポリシと前記納期ポリシに基づき、スケジューリングの決定及び納期見積を含むシミュレーションを実行し、b）前記シミュレーションの結果に対して機械学習プロセスを実行し、前記スケジューリングの決定の評価及び前記納期見積の評価に共通のスコアリング関数に従って前記スケジューリングの決定及び前記納期見積を評価することにより、前記初期のスケジューリングポリシ及び前記納期ポリシを更新し、最終的なスケジューリングポリシ及び前記納期ポリシが決定されるまで、前記a）及びb）を繰り返し実行し、前記注文に応答して、前記最終的なスケジューリングポリシ及び前記納期ポリシを出力する、ことを含む。
【００１１】
本開示のいくつかの態様は、コンピュータに処理を実行させるプログラムまたはそのプログラムを格納するコンピュータ読み取り可能な非一過性記憶媒体を含むことができる。コンピュータが実行する処理は、注文を処理して応答するためのものであって、前記注文を満たすための内部プロセスの初期のスケジューリングポリシと、前記注文の納期ポリシとを決定し、a）前記初期のスケジューリングポリシと前記納期ポリシに基づき、スケジューリングの決定及び納期見積を含むシミュレーションを実行し、b）前記シミュレーションの結果に対して機械学習プロセスを実行し、前記スケジューリングの決定の評価及び前記納期見積の評価に共通のスコアリング関数に従って前記スケジューリングの決定及び前記納期見積を評価することにより、前記初期のスケジューリングポリシ及び前記納期ポリシを更新し、最終的なスケジューリングポリシ及び前記納期ポリシが決定されるまで、前記a）及びb）を繰り返し実行し、前記注文に応答して、前記最終的なスケジューリングポリシ及び前記納期ポリシを出力する、ことを含む。
【００１２】
本開示のいくつかの態様は、システムを含むことができる。システムは、注文を満たすための内部プロセスの初期のスケジューリングポリシと、前記注文の納期ポリシとを決定する手段、a）前記初期のスケジューリングポリシと前記納期ポリシに基づき、スケジューリングの決定及び納期見積を含むシミュレーションを実行する手段、b）前記シミュレーションの結果に対して機械学習プロセスを実行し、前記スケジューリングの決定の評価及び前記納期見積の評価に共通のスコアリング関数に従って前記スケジューリングの決定及び前記納期見積を評価することにより、前記初期のスケジューリングポリシ及び前記納期ポリシを更新する手段、最終的なスケジューリングポリシ及び前記納期ポリシが決定されるまで、前記a）及びb）を繰り返し実行し、前記注文に応答して、前記最終的なスケジューリングポリシ及び前記納期ポリシを出力する手段、を含む。
【００１３】
本開示のいくつかの態様は、工場フロアの１または複数の機械と、前記1または複数の機械とプログラマブルロジックコントローラによって通信可能に接続された装置とを含む。装置は、プロセッサを含み、プロセッサは、装置に受信された注文に応答して、前記注文を満たすための内部プロセスの初期のスケジューリングポリシと、前記注文の納期ポリシとを決定し、a）前記初期のスケジューリングポリシと前記納期ポリシに基づき、スケジューリングの決定及び納期見積を含むシミュレーションを実行し、b）前記シミュレーションの結果に対して機械学習プロセスを実行し、前記スケジューリングの決定の評価及び前記納期見積の評価に共通のスコアリング関数に従って前記スケジューリングの決定及び前記納期見積を評価することにより、前記初期のスケジューリングポリシ及び前記納期ポリシを更新し、最終的なスケジューリングポリシ及び前記納期ポリシが決定されるまで、前記a）及びb）を繰り返し実行し、前記注文に応答して、前記最終的なスケジューリングポリシ及び前記納期ポリシを出力する、ように構成される。
【図面の簡単な説明】
【００１４】
【図１】本明細書で説明される実施例が対象とする動作の例示的な範囲を示す。
【図２】実施例による、システムアーキテクチャの例を示す。
【図３】実施例による、ＤＤＰＳ最適化モジュールにおける納期見積り及びスケジューリングのポリシを学習するためのフローチャートの例を示している。
【図４】実施例に従って、２つのエージェントがシミュレーション環境との相互作用を通じてポリシを学習する方法を示している。シ
【図５】実施例による、納期見積のダッシュボードの例を示している。
【図６】実施例による、生産スケジューリングのためのダッシュボードの例を示している。
【図７】実施例による、システムの例示的な物理的構造を示す。
【図８】図７に示すコンピューティング装置など、いくつかの実施例での使用に適した例示的なコンピュータ装置を備えた例示的なコンピューティング環境を示している。
【発明を実施するための形態】
【００１５】
以下の詳細な説明は、本出願の図及び実施例のさらなる詳細を与える。参照番号と図の間の冗長要素の説明は、説明の明確のために省略されている。説明全体で使用される用語は例として提供されており、限定することを意図したものではありない。例えば、「自動」という用語の使用は、本発明の実装を行う当業者の所望の実装に応じて、実装の特定の側面に対する完全自動またはユーザまたは管理者の制御を伴う半自動実装を含み得る。選択は、ユーザがユーザインターフェースまたはその他の入力手段を介して実行するか、目的のアルゴリズムを使用して実装できる。本明細書で説明される実施例は、単独でまたは組み合わせて利用することができ、実施例の機能は、所望の実装形態による任意の手段を通じて実装することができる。
【００１６】
図１は、本明細書で説明される実施例が対象とする動作の例示的な範囲を示す。注文が顧客１００から到着すると、スケジューラ１１０は、納期見積機能１１１を使用して、注文の納期を見積り、顧客１００にその日付を返答する必要がある。スケジューラ１１０は、各ジョブを、製造現場１２０の各プロセスでいつ実行するかを決定するスケジューリング１１２も管理する。注文は次々に到着する可能性があるが、スケジューラ１１０は、実際に到着するまで注文情報について必ずしも知る必要はない。スケジューラ１１０が顧客１００に納期を返答すると、ジョブが注文に対して発行され、製造現場１２０に発出される。一連のプロセス１２１がジョブに適用されて最終製品を製造し、プロセス１２１はスケジュール１３０に従って適用される。スケジュール１３０は、実行されるプロセス１２１のシーケンス及びタイミングを示す。プロセスフローは製品によって異なる。さまざまな最終製品には、プロセスと処理時間の点でさまざまなフローがありえる。
【００１７】
表１は、製品とプロセスフローとの間の関連付けの例を示している。たとえば、製品Ｐｒｄ００１１を作成するには、最初にプロセスＰ０１０が１０分間実行され、Ｐ０２０が１５分間実行される。実施例では、特定のプロセスを実行する機械が複数あり、機械を複数のプロセスで共有できるが、機械を同時に使用できるプロセスは１つだけであると想定できる。この想定は従来のジョブショッププロセスに適合するが、実施例はジョブショッププロセスに限定されず、所望の実装に従って他のプロセスに拡張することができる。たとえば、実施例はフローショッププロセスに適用できる。
【００１８】
【表１】
0006887546.tif 000002
【００１９】
図２は、実施例による、システムアーキテクチャの例を示す。実施例は、工場２１０内の既存のシステムの上に納期スケジューリング管理（ＤＤＳＭ）システムを提供することができる。実施例では、工場２１０は、企業資源計画（ＥＲＰ）システム２２０の機能を容易とするコンピュータシステムで顧客注文２２１を管理すると想定される。また、工場がその生産ステータス２３１をトレースし、コンピュータシステムを介して操作を指示すことも想定されており、これは製造実行システム（ＭＥＳ）２３０の一般的な機能である。
【００２０】
納期生産スケジューリング（ＤＤＰＳ）システム２４０は、注文に関する工場における履歴データ２４１及び生産ステータス２４２を格納し、これにより、ＤＤＰＳが過去のイベントを再現するシミュレーションモデルを構築するのを容易にする。ＤＤＰＳ最適化モジュール２５０は、シミュレーション環境での納期見積及びスケジューリングのためのポリシを学習する機能２５１を提供する。ＤＤＰＳは、学習したポリシを既存のシステムに適用する機能２５２も提供する。
【００２１】
見積ポリシ２６０は、注文情報及び現在の生産ステータスを入力として受け取り、工場が新しい注文を受け取ったときに顧客に返答すべき納期を出力する機能を提供する。スケジューリングポリシ２６１は、現在の生産ステータスを入力として受け取り、ディスパッチ決定を出力する機能を提供する。ディスパッチ決定は、キュー内のどのジョブが利用可能な機械によって実行されるかを決定する。決定のタイミングは、実装方法によって異なる。例えば、その方法は、スケジューラが事前に設定された間隔（例えば１０分ごと）に従って定期的に決定を下せるように実装できる。別のオプションは、特定のイベントが発生したときにのみ決定を下す。イベントは機械でのジョブを終了することができ、機械は使用可能になる。どちらの場合でも、ポリシは、現在の生産ステータスを考慮して、特定の機械でどのジョブを実行するかを決定する。そのような学習されたポリシは、ＥＲＰ２２０やＭＥＳ２３０などの既存のシステムを介して実際の工場運用に適用される。
【００２２】
表２は、注文情報２２１の例を示す。注文識別子（ＩＤ）は、注文の一意の識別を示す。顧客は注文を要求した者を示す。製品は、顧客が要求した最終製品を示し、目的の実装に従って、製品タイプ、製品名、または製品番号で説明することができる。数量は、顧客が製品に対して要求した量を示す。その顧客が希望する納期を要求できる状況では、注文情報にそのような情報を含めることができる。さらに、顧客が希望する納期を提供できない状況では、実施例はより早い納期が望ましいと想定することができる。注文情報２２１は、注文に関する追加情報（例えば、製品のサイズ）を含むことができ、所望の実装に従って変更することができる。典型的な工場では、ＥＲＰシステム２２０は表２に記載されている情報を管理する。
【００２３】
【表２】
0006887546.tif 000003
【００２４】
表３は、生産ステータス２３１の例を示している。注文ＩＤは、注文情報２２１に格納されているＩＤである。典型的な工場は、生産ラインにおける動作の単位としてジョブを発行し、ジョブを顧客の注文に関連付ける。一般性を失わずに、実施例では、注文ＩＤを使用してジョブを説明する。見積納期は、納期見積の結果として工場が顧客に返信した納期である。プロセスは、ジョブが配置されている現在の段階を表す。ステータスは、ジョブの現在のステータスを示す（たとえば、実行を待機している、機械で実行中である、など）。機械は、使用可能になったときにジョブを実行できる機械、または現在ジョブを実行している機械を提供する。この例では、注文ＵＳ＿２０１８−０１１０３に関連付けられたジョブを２０１９／０９／２２までに納入する必要があり、現在、そのジョブは、機械Ｍ０１１によるＰ０１０の実行を待っている。典型的な工場では、ここで説明する情報はＭＥＳ２３０によって管理される。
【００２５】
【表３】
0006887546.tif 000004
【００２６】
図３は、実施例による、ＤＤＰＳ最適化モジュール２５０における納期見積り及びスケジューリングのポリシを学習するためのフローチャートの例を示している。
【００２７】
３００において、モジュールは、注文の履歴データ及び生産ステータスを収集する。これを行うには、ＥＲＰ及びＭＥＳシステムからバッチデータを転送するか、それらのシステムからスナップショットをリアルタイムで取得し、一定期間スナップショットを保存する。履歴データに必要な期間は、顧客の注文と生産の種類によって異なり、目的の実装に合わせて適宜調整できる。
【００２８】
３０１で、モジュールは、離散事象シミュレーション（ＤＥＳ）を使用して、注文到着及び生産ラインのシミュレーション環境を構築する。ＤＥＳは、確率的離散イベントをシミュレートする一般的なツールであり、生産ラインでの離散プロセスのシミュレーションに広く使用されている。表１で説明されているプロセスフローと機械のリストを含む生産ラインに関する十分な知識があれば、実施例は、生産ラインでイベントを仮想的に生成するシミュレータを構築できる。イベントには、プロセスへのジョブの到着、開始動作、終了動作などが含まれる。実施例は、履歴注文情報から、製品、数量、及び要求された納期についての注文の到着率などの注文傾向を抽出できる。抽出された傾向は、シミュレータに送られ、実際の注文傾向を反映した仮想注文が生成される。この段階で作成されたシミュレータは、ポリシを学習するために使用される。
【００２９】
３０２で、ＤＤＰＳは初期ポリシを設定する。ＤＤＰＳはこの時点ではまだポリシを学習していないため、ＤＤＰＳはなんらかのベースラインから開始する必要がある。実施例では、現在の状態に関係なくランダムな決定を出力する初期ベースラインとしてランダムポリシを使用できる。このようなベースラインには、注文情報と生産ステータスを含めることができる。別の実施例では、工場の現在の生産ステータスから、当該工場で実際に使用されているポリシをベースラインとして利用できる。たとえば、工場には注文を受けてから１０日後に納期を設定するというルールがある。このルールは、納期見積の初期ポリシとして使用される。たとえば、工場には、先入れ先出し（ＦＩＦＯ）ルールに従ってジョブがプロセスにおけるキューから選択されるというルールを設定できる。このような場合、そのルールはスケジューリングの初期ポリシとして使用される。
【００３０】
３０３で、ＤＤＰＳは、シミュレーションの複数回の実行を通じてポリシを継続的に更新する。シミュレータは、３０１で抽出された傾向に基づいて仮想注文を生成する。シミュレータが注文の到着や機械が利用可能になるなどのイベントを発行するたびに、ＤＤＰＳモジュールは現在のポリシに基づいて決定を行う。次に、シミュレータは時計を進め、行われた決定に基づいて次のイベントを生成する。シミュレーション結果は、現在の状況がどれだけ良いか悪いかに関するＤＤＰＳフィードバックを提供する。フィードバックは、下記で説明するメトリックによって定量化される。ＤＤＰＳがフィードバックを受け取ると、ＤＤＰＳはそれに基づいてポリシを更新する。この更新プロセスは、機械学習方法の１つである強化学習と呼ばれるフレームワークに従って実行できる。
【００３１】
３０４で、ＤＤＰＳモジュールは、前のステップで学習されたポリシを出力する。
【００３２】
納期見積及びスケジューリングのポリシを更新するメカニズムの詳細は以下の通りである。前述のように、ＤＤＰＳモジュールは強化学習（ＲＬ）を使用してポリシを更新する。ＲＬはエージェントを定義する。これは、ポリシに従ってアクションを実行し、環境と対話する主体である。ＤＤＰＳは２種類のエージェントを定義する。１つは納期見積用で、もう１つはスケジューリング用である。
【００３３】
ＲＬは、現在の状況と状態を表す。ＤＤＰＳは、２つの要因によって状態を表し、注文ｊの注文状態Ｓjとグローバルな製造現場の状態のＳgである。Ｓjには、製品、数量、要求納期などが含まれる。Ｓgには、各プロセスにおいてスタックしているジョブの数、各機械で作業中のジョブなどを進行中の作業を含めることができる。後で使用するために、キー定義の表記を次のように要約する。
【００３４】
ｊ ：ジョブインデックス
ｒj：ジョブｊの到着時刻
ｄj：ジョブｊの見積納期
Ｃj：ジョブｊの完了時
ａj：ジョブｊの要求納期
Ｅj＝ｍａｘ（０，ｄj−Ｃj）：ジョブｊの納期前倒し
Ｔj＝ｍａｘ（０，Ｃj−ｄj）：ジョブｊの納期遅れ
Ｌj＝ｄj−ｒj              ：ジョブｊのリードタイム
Ｄj＝ｍａｘ（０，ｄj−ａj）：ジョブｊの遅延
【００３５】
エージェントには、状態を行動にマップするポリシがある。ＤＤＰＳは、エージェントタイプに基づいて２種類の行動を定義する。納期見積エージェントの行動は、新しい注文が与えられた場合に、納期ｄjを選択することである。納期見積のポリシを形式化する１つの方法は、リードタイム推定関数ｆ（ｓj、ｓg；θq）を導入することであり、状態Ｓgで注文ｊを完了するのにかかる時間を推定する。θqは、関数を決定するパラメーターのセットである。納期ｄjは、次のように与えられる。
ｄj＝ｒj＋ｆ（ｓj，ｓg；θq）
【００３６】
ここで、ｒjは注文ｊが到着した日付である。スケジューリングエージェントの行動は、その時点で使用可能な機械で実行する次のジョブを選択することである。選択を形式化する１つの方法は、ジョブ優先度関数ｇ（ｓj，ｓg；θs）を導入することである。これは、生産現場の状態Ｓgが与えられたジョブ（注文）ｊに重みを割り当てる。θsは、ジョブ優先度関数の機能を決定するパラメーターのセットである。キュー内のジョブのリストを指定すると、エージェントは優先度関数に従って、それらの中で最も重みの大きい次のジョブを選択する。数学的には、
ａｒｇｍａｘjｇ（ｓj，ｓg；θs）
が次のジョブとして選択される。ｊはキュー内の任意の順序を取る。
【００３７】
ＲＬは、環境からのフィードバックとして報酬を受け取る。ＤＤＰＳエージェントの報酬を定義するオプションがいくつかある。顧客が自分で納期を要求する余地がない場合、コスト関数は次のように定義できる。
ωLＬj＋ωEＥj＋ωTＴj
【００３８】
ここで、ωL、ωE、ωTは事前に定義された定数である。最初の項は、注文が到着してから見積納期までの時間を表す。値が小さいほど、見積納期が到着日に近いこと、つまり顧客の待ち時間が短いことを示す。最後の２つの項は、見積納期と実際の納入日の差を表す。小さい値は、納入が工場の約束した日付に近いことを示す。要約すると、コスト関数を小さくすることは、より早い納期と遅滞または前倒しのない納入とを約束することを意味する。
【００３９】
顧客が納期を要求できる場合、コスト関数は、その要求日を次のように考慮して形式化することができる。
ωDＤj＋ωEＥj＋ωTＴj
【００４０】
ここで、ωD、ωE、ωTは事前に定義された定数である。最初の項は、顧客が要求した納期から見積納期までの時間を表す。これにより、納期が顧客の好みにどれだけ合致するかが定量化される。残りの項は前のケースと同じである。コスト関数を負とすることにより、コスト関数を報酬に変換できる。
【００４１】
図４は、実施例に従って、２つのエージェントがシミュレーション環境との相互作用を通じてポリシを学習する方法を示している。シミュレータ４００が納期見積またはジョブディスパッチに関連するイベントを発行するときはいつでも、関連するエージェント４１０は現在のポリシに基づいて行動を起こす。実行された行動は、シミュレーション環境４００における環境の状態を変更し、フィードバックを生成する。報酬に基づいて、エージェントはそれらのポリシを更新する。同じ報酬を共有することで、エージェントは同じ目標に向けてポリシを更新できる。
【００４２】
以下に説明するように、学習したポリシを使用して、実際の工場運用に関する決定を下す。ＤＤＰＳモジュールが納期見積とスケジューリングのポリシを学習すると、ポリシ適用モジュールは学習したポリシを既存のシステムと統合する。統合の１つの方法は、スケジューラが推奨行動の結果を確認し、ＥＲＰ、ＭＥＳなどの既存のシステムを介して実際の決定を下せるようにする、ダッシュボードシステムを使用することである。
【００４３】
図５は、実施例による、納期見積のダッシュボードの例を示している。上部パネル５０１は、工場に到着し、関連情報とともに見積が必要な注文のリストを提供する。スケジューラが注文を選択すると、適用モジュールは、既存のシステムからジョブ情報と現在の生産ステータスを抽出し、学習したポリシを適用できる形式に変換する。次に、適用モジュールはポリシを適用して、見積納期を取得する。結果は下部パネル５０２に示されている。
【００４４】
図６は、実施例による、生産スケジューリングのためのダッシュボードの例を示している。左上のパネル６０１は、工場内の機械のステータスを示している。スケジューラが次のジョブの割り当てを待っているプロセスを選択すると、そのプロセスのジョブが右上のパネル６０２に表示される。適用モジュールは現在の生産ステータスを抽出し、学習したポリシを適用する。次のジョブの出力結果は下部パネル６０３に表示される。スケジューラは出力を確認でき、問題がなければ、スケジューラは結果に基づいてディスパッチオプションを選択できる。問題がある場合、スケジューラはオプションをキャンセルできる。どちらの場合でも、決定はＭＥＳ２３０に送信される。
【００４５】
本明細書で説明する実施例を通じて、納期見積及び生産スケジューリングのポリシを同時に学習することができる。
【００４６】
図７は、実施例による、システムの例示的な物理的構造を示す。工場７０１には、製造プロセスを実行するように構成された設備７０５やロボットアーム７０４などの１つまたは複数の機械を含むラインがある。これらは、例えば、部品の積み込みコンポーネント、部品の積み下ろしコンポーネント、部品の組み立てコンポーネントなどである。例えば、製造プロセス例は、設備７０５が製品７０８を処理し、ロボットアーム７０４がスケジュールに従って製品７０８を運ぶプロセスを含むことができる。必要な実装に応じて、複数の種類またはタイプの製品を同時に処理できる。ロボットアーム７０４及び設備７０５は、プログラマブルロジックコントローラ（ＰＬＣ）７０９によって制御できる。労働者７０２は、プログラマブルロジックコントローラ７０９に接続されたコンピューティング装置７０３に納期及びスケジューリングのポリシをディスパッチする。ラインでは、実施例に従って、製品管理システムによって製品の積み込み７０６及び積み下ろし７０７が管理される。所望の実装に応じて、カメラシステム７１０は工場フロア７０１を監視してもよい。
【００４７】
図８は、図７に示すコンピューティング装置７０３など、いくつかの実施例での使用に適した例示的なコンピュータ装置を備えた例示的なコンピューティング環境を示している。コンピュータ装置は、図２に示すシステム及びそのすべての機能を可能とするように構成され、また、図５及び６に示されるようなインターフェースを提供するように構成される。そのような実施例において、コンピューティング装置７０３は、図７に示されるように、ネットワークを介して工場フロアの１つ以上の機械に関連付けられた１以上のプログラマブルロジックコントローラ（ＰＬＣ）に接続される。
【００４８】
コンピューティング環境８００のコンピュータ装置８０５は、１つ以上の処理ユニット、コア、またはプロセッサ８１０、メモリ８１５（例えば、ＲＡＭ、ＲＯＭなど）、内部ストレ−ジ８２０（例えば、磁気ストレ−ジ、光学ストレ−ジ、ソリッドステ−トストレ−ジ及び／または有機ストレ−ジ）、及び／またはＩ／Ｏインタ−フェ−ス８２５を含むことができる。これらのいずれも、情報を通信するための通信機構またはバス８３０に結合されるか、コンピュ−タ装置８０５に埋め込まれることができる。Ｉ／Ｏインタ−フェース８２５も、目的の実装に応じて、カメラからの画像を受信し、またはプロジェクタやディスプレイに画像を与えるように構成される。
【００４９】
コンピュータ装置８０５は、入力／ユ−ザインタ−フェース８３５及び出力デバイス／インタ−フェ−ス８４０に通信可能に結合され得る。入力／ユ−ザインタ−フェース８３５及び出力デバイス／インタ−フェ−ス８４０のいずれか一方または両方は、有線または無線インタ−フェ−スであり、取り外し可能であり得る。入力／ユ−ザインタ−フェ−ス８３５には、入力を与えるために使用できる物理的または仮想的なデバイス、コンポーネント、センサ、またはインタ−フェ−スを含めることができる（たとえば、ボタン、タッチスクリ−ンインタ−フェ−ス、キ−ボ−ド、ポインティング／カーソルコントロール、マイク、カメラ、点字、モ−ションセンサ、光学式リ−ダなど）。出力デバイス／インタ−フェ−ス８４０は、ディスプレイ、テレビ、モニタ、プリンタ、スピ−カ、点字などを含み得る。いくつかの実施例では、入力／ユーザインタ−フェ−ス８３５及び出力デバイス／インタ−フェ−ス８４０は、コンピュ−タ装置８０５に埋め込まれるか、または物理的に結合され得る。他の例では、他のコンピュータ装置は、コンピュータ装置８０５の入力／ユ−ザインタ−フェ−ス８３５および出力デバイス／インタ−フェ−ス８４０として機能するか、それらの機能を提供することができる。
【００５０】
コンピュータ装置８０５の例は、これらに限定されないが、高度にモバイルな装置（例えば、スマートフォン、車両及び他の機械の装置、人間及び動物によって運ばれる装置など）、モバイル装置（例えば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオなど）、及びモバイル向けに設計されていないデバイス（デスクトップコンピュータ、他のコンピュータ、情報キオスク、１つ以上のプロセッサが埋め込まれている及び／または結合されているテレビ、ラジオなど）、が含まれ得る。
【００５１】
コンピュータ装置８０５は、外部ストレージ８４５及びネットワーク８５０に通信可能に（例えば、Ｉ／Ｏインターフェース８２５を介して）結合し、同一または異なる構成のコンピュータ装置を含む、任意の数のネットワーク化されたコンポーネント、装置、及びシステムと通信することができる。コンピュータ装置８０５または接続されたコンピュータ装置は、サーバ、クライアント、シンサーバ、一般機械、専用機械、または別の名称の装置として、機能する、サービスを与える、またはそれらとして参照され得る。
【００５２】
Ｉ／Ｏインターフェース８２５は、任意の通信またはＩ／Ｏのプロトコルまたは規格（例えば、イーサネット、８０２．１１ｘ、ユニバーサルシステムバス、ＷｉＭａｘ、モデム、携帯電話ネットワーク等）を使用する有線及び／または無線インターフェースを含むことができ（これらに限定されない）、コンピューティング環境８００内の少なくともすべての接続コンポーネント、デバイス、及びネットワークと情報をやり取りすることができる。ネットワーク８５０は、任意のネットワークまたはネットワークの組み合わせ（たとえば、インターネット、ローカルエリアネットワーク、広域ネットワーク、電話ネットワーク、携帯電話ネットワーク、衛星ネットワークなど）であり得る。
【００５３】
コンピュータ装置８０５は、一過性媒体及び非一過性媒体を含むコンピュータ使用可能またはコンピュータ可読媒体を使用する及び／または使用して通信することができる。一過性媒体には、伝送媒体（金属ケーブル、光ファイバなど）、信号、搬送波などが含まれる。非過性媒体には、磁気媒体（ディスクやテープなど）、光学媒体（ＣＤ  ＲＯＭ、デジタルビデオディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスクなど）、ソリッドステート媒体（ＲＡＭ、ＲＯＭ、フラッシュメモリ、ソリッドステートストレージなど）、及びその他の不揮発性ストレージまたはメモリが含まれる。
【００５４】
コンピュータ装置８０５を使用して、いくつかの例示的なコンピューティング環境において、技術、方法、アプリケーション、プロセス、またはコンピュータ実行可能命令を実装することができる。コンピュータで実行可能な命令は、一過性媒体から取得し、非一過性媒体に格納して取得できる。実行可能命令は、プログラミング、スクリプト、及び機械言語（Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｐｙｔｈｏｎ、Ｐｅｒｌ、Ｊａｖａ  Ｓｃｒｉｐｔなど）の１つまたは複数から生成できる。
【００５５】
プロセッサ８１０は、任意のオペレーティングシステム（ＯＳ）（図示せず）の下で、ネイティブ環境または仮想環境で実行でき、中央処理装置（ＣＰＵ）、またはソフトウェア及びハードウェアプロセッサの組み合わせなどの、物理ハードウェアプロセッサの形態であり得る。論理ユニット８６０、アプリケーションプログラミングインタ−フェ−ス（ＡＰＩ）ユニット８６５、入力ユニット８７０、出力ユニット８７５、及び、異なるユニットが相互に、ＯＳと、そして他のアプリケーション（図示せず）と通信するユニット間通信メカニズム８９５を含む、１つ以上のアプリケーションを展開できる。説明されているユニット及び要素は、設計、機能、構成、または実装がさまざまであり、提供された説明に限定されない。
【００５６】
いくつかの実施例では、情報または実行命令がＡＰＩユニット８６５によって受信されると、１つまたは複数の他のユニット（たとえば、論理ユニット８６０、入力ユニット８７０、出力ユニット８７５）に通信され得る。いくつかの例では、論理ユニット８６０は、ユニット間の情報フローを制御し、上記のいくつかの実施例においてＡＰＩユニット８６５、入力ユニット８７０、出力ユニット８７５によって提供されるサービスを指示すように構成され得る。たとえば、１つまたは複数のプロセスまたは実装のフローは、論理ユニット８６０単独またはＡＰＩユニット８６５と連動して制御されてもよい。入力ユニット８７０は、実施例で説明された計算の入力を取得するように構成されてもよい。出力ユニット８７５は、実施例で説明される計算に基づいて出力を与えるように構成され得る。
【００５７】
メモリ８１５は、表１〜３に示されているような管理情報を格納するように構成することができる。
【００５８】
プロセッサ８１０は、図３の３０２に示すように、コンピューティング装置７０３などの装置によって受信された注文に応じて、注文を満たすための内部プロセスの初期のスケジューリングポリシと、注文の納期ポリシを決定し、ａ）図３の３０３に示すように、初期のスケジューリングポリシと納期ポリシに基づき、スケジューリングの決定及び納期見積を含むシミュレーションを実行し、ｂ）図３の３０３での強化学習及び強化学習の本明細書での実施例に関して説明したように、シミュレーションの結果に対して機械学習プロセスを実行し、スケジューリングの決定の評価及び納期見積の評価に共通のスコアリング関数に従ってスケジューリングの決定及び納期見積を評価することにより、スケジューリングポリシ及び納期ポリシを更新し、図３の３０３及び図４に示すように、最終的なスケジューリングポリシ及び前記納期ポリシが決定されるまで、a）及びb）を繰り返し実行し、図３の３０４並びに図５及び６のユーザインターフェースに示すように、注文に応じて、最終的なスケジューリングポリシ及び納期ポリシを出力する、ように構成することができる。
【００５９】
図７で説明したように、内部プロセスは生産プロセスを含むことができ、図５及び６に示すように、プロセッサ８１０は、納期ポリシで注文に応答し、最終的なスケジューリングポリシに従って生産プロセスを実行する１つ以上の機械に最終的なスケジューリングポリシをディスパッチすることによって、注文に応答して最終的なスケジューリングポリシ及び納期ポリシを出力するように、構成することができる。ここでは、最終的なスケジューリングポリシが決定されると、図６のユーザインターフェースにより、ネットワーク及びＰＬＣを介して、図７に示すように１または複数の機械に対してディスパッチされ、対応する機械によって実行され得る。
【００６０】
初期のスケジューリングポリシは、図２及び図３に関して説明し、表１〜３で示すように、注文に関連付けられた工場フロアの１または複数の機械の現在の生産ステータスから生成される。
【００６１】
図４に示すように、複数のエージェントから発行された複数の注文があり得る。エージェントは、コンピューティング装置７０３に注文を提出する外部エンティティ（例えば、他のコンピューティング装置）を含むことができる。そのような実施例では、シミュレーションは、図２及び表１〜３において説明した注文履歴を考慮しながら、図３の３００及び３０１に示すように現在の未処理注文に従って構築することができる。
【００６２】
強化学習の実装に関して図３を参照して説明したように、スコアリング関数は、シミュレーションによって決定される見積納期と実際の納期に基づいて重み付けされたコスト関数とすることができる。
【００６３】
所望の実装に応じて、シミュレーションの結果は、図３の３０４、図５及び図６に示されるように、シミュレートされた注文の状態及び注文を処理する工場フロアの状態を含むことができる。
【００６４】
詳細な説明のいくつかの部分は、コンピュータ内の動作のアルゴリズム及び記号的表現に関して提示されている。これらのアルゴリズム記述及び記号的表現は、データ処理技術の当業者が、その革新の本質を他の当業者に伝えるために使用する手段である。アルゴリズムは、目的の最終状態または結果に至る一連の定義済みステップでる。実施例では、実行されるステップは、具体的な結果を得るために具体的な量を物理的に操作する必要がある。
【００６５】
議論から明らかなように、以下のことが理解される。説明全体を通して、「処理」、「演算」、「計算」、「決定」、「表示」などの用語を利用する議論は、コンピュータシステムまたは他の情報処理装置の動作及び処理を含むことができる。これら装置は、コンピュータシステムのレジスタ及びメモリ内の物理（電子）量として表されるデータを、コンピュータシステムのメモリ、レジスタ、その他の情報ストレージ、送信または表示デバイス内の物理量として同様に表される他のデータに操作及び変換する。
【００６６】
実施例はまた、本明細書のオペレーションを実行するための装置に関連してもよい。この装置は、必要な目的のために特別に構築されてもよいし、１以上のコンピュータプログラムによって選択的に起動または再構成される１以上の汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、コンピュータ可読記憶媒体またはコンピュータ可読信号媒体などのコンピュータ可読媒体に格納されてもよい。コンピュータ可読記憶媒体は、限定ではないが、電子情報を保存するための、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイス及びドライブ、またはその他の適切な有形または非一過性の媒体などの有形媒体を含み得る。コンピュータ可読信号媒体には、搬送波などの媒体が含まれ得る。本明細書で提示されるアルゴリズム及び表示は、特定のコンピュータまたは他の装置に本質的に関連するものではない。コンピュータプログラムには、目的の実装のオペレーションを実行する命令を含む純粋なソフトウェア実装を含めることができる。
【００６７】
本明細書の例に従って、様々な汎用システムをプログラム及びプログラムモジュールとともに使用することができ、または所望の方法ステップを実行するための専用の装置を構築することがより適切であることが判明する場合がある。さらに、実施例は、特定のプログラミング言語を参照して説明されていない。様々なプログラミング言語を使用して、本明細書で説明する実施例の教示を実装できることが理解される。プログラミング言語の命令は、１以上の処理デバイス、たとえば中央処理装置（ＣＰＵ）、プロセッサ、またはコントローラによって実行されてよい。
【００６８】
当技術分野で知られているように、上記オペレーションは、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組み合わせによって実行することができる。実施例のさまざまな態様は、回路及び論理デバイス（ハードウェア）を使用して実装できるが、他の態様は、プロセッサによって実行されるとプロセッサに本願の実装を実行する方法を実行させる、機械可読媒体（ソフトウェア）に格納された命令を使用して実装できる。さらに、本願のいくつかの実施例は、ハードウェアのみで実行されてもよく、他の実施例は、ソフトウェアのみで実行されてもよい。さらに、説明されているさまざまな機能は、単一のユニットで実行することも、さまざまな方法で多数のコンポーネントに分散させることもできる。ソフトウェアによって実行される場合、これらの方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。必要に応じて、命令は圧縮及び／または暗号化された形式で媒体に保存できる。
【００６９】
さらに、本願の他の実装は、本願の教示の仕様及び実施を考慮することにより、当業者には明らかであろう。説明した実施例の様々な態様及び／または構成要素は、単独でまたは任意の組み合わせで使用することができる。本明細書及び実施例は、例としてのみ考慮されることが意図されており、本願の真の範囲及び精神は、添付の特許請求の範囲によって示される。
【符号の説明】
【００７０】
１００  顧客
１１０  スケジューラ
１１１  納期見積機能
１２０  製造現場
１２１  プロセス
１３０  スケジュール
２１０  工場
２２０  企業資源計画（ＥＲＰ）システム
２３０  製造実行システム（ＭＥＳ）
２４０  納期生産スケジューリング（ＤＤＰＳ）システム
２４１  注文履歴
２４２  生産ステータス
２５０  ＤＤＰＳ最適化モジュール
２５１  ポリシを学習する機能
２５２  学習したポリシを既存のシステムに適用する機能
２６０  見積ポリシ
２６１  スケジューリングポリシ
７０１  工場
７０３  コンピューティング装置
７０４  ロボットアーム
７０５  た設備
７０８  製品
７０９  プログラマブルロジックコントローラ（ＰＬＣ）
７１０  カメラシステム
８０５  コンピュータ装置
８１０  プロセッサ
８１５  メモリ
８２０  内部ストレ−ジ
８３５  入力／ユ−ザインタ−フェース
８４０  出力デバイス／インタ−フェ−ス
【図１】
0006887546.tif 000005
【図２】
0006887546.tif 000006
【図３】
0006887546.tif 000007
【図４】
0006887546.tif 000008
【図５】
0006887546.tif 000009
【図６】
0006887546.tif 000010
【図７】
0006887546.tif 000011
【図８】
0006887546.tif 000012