(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-01
(45)【発行日】2024-08-09
(54)【発明の名称】生産スケジューリングのための深層強化学習
(51)【国際特許分類】
G06Q 10/067 20230101AFI20240802BHJP
G06Q 50/04 20120101ALI20240802BHJP
G06Q 10/0631 20230101ALI20240802BHJP
G05B 19/418 20060101ALI20240802BHJP
【FI】
G06Q10/067
G06Q50/04
G06Q10/0631
G05B19/418 Z
(21)【出願番号】P 2021521468
(86)(22)【出願日】2019-09-26
(86)【国際出願番号】 US2019053315
(87)【国際公開番号】W WO2020086214
(87)【国際公開日】2020-04-30
【審査請求日】2022-09-21
(32)【優先日】2018-10-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502141050
【氏名又は名称】ダウ グローバル テクノロジーズ エルエルシー
(74)【代理人】
【識別番号】100092783
【氏名又は名称】小林 浩
(74)【代理人】
【識別番号】100095360
【氏名又は名称】片山 英二
(74)【代理人】
【識別番号】100120134
【氏名又は名称】大森 規雄
(74)【代理人】
【識別番号】100187964
【氏名又は名称】新井 剛
(74)【代理人】
【識別番号】100104282
【氏名又は名称】鈴木 康仁
(72)【発明者】
【氏名】ハブス、クリスチャン
(72)【発明者】
【氏名】ワシック、ジョン、マーティン
【審査官】塩屋 雅弘
(56)【参考文献】
【文献】特開2009-258863(JP,A)
【文献】特開2003-084819(JP,A)
【文献】米国特許出願公開第2017/0185943(US,A1)
【文献】佐中 俊哉,化学プラントにおける生産スケジューリングシステム導入事例,経営の科学 オペレーションズ・リサーチ 第54巻 第11号 Communications of the Operations Research Society of Japan,日本,社団法人日本オペレーションズ・リサーチ学会,2009年11月,第54巻
【文献】大沼 寛紀 Hironori Onuma,化学プラント向け生産計画立案システムのテンプレート開発 Template of Production Planning System for Chemical Plant,日立TO技報 第10号 Hitachi East Japan Solutions Technical Report,株式会社日立東日本ソリューションズ,2004年12月17日,第10号
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G05B 19/418
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
1つ以上の製品要求を満たすために1つ以上の投入材料を利用して、生産施設で生産される1つ以上の製品の生産に関連する前記生産施設のモデルを決定することであって、各製品要求が、1つ以上の要求された時間に前記生産施設で利用可能になる前記1つ以上の製品のうちの1つ以上の要求された製品を指定し、前記生産施設の反応容器が処理温度の変更を行うように指示されたとき、前記モデルは、前記生産施設で前記製品の生産を変更することにより生じる誤差の表現を含む、決定することと、
前記生産施設のためのポリシーニューラルネットワークおよびバリューニューラルネットワークを決定することであって、前記ポリシーニューラルネットワークが、前記生産施設でスケジュールされる生産アクションを表すポリシー関数に関連付けられ、前記バリューニューラルネットワークが、前記生産アクションに基づいて、前記生産施設で生産された製品の利益を表すバリュー関数に関連付けられる、決定することと、
前記生産の前記モデルに基づいて、一定期間にわたって前記1つ以上の製品要求を満たす前記生産施設での前記生産アクションのスケジュールを生成するように、前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することであって、前記生産アクションの前記スケジュールが、前記1つ以上の要求された時間に基づいて決定された前記1つ以上の要求された製品の遅延生産によるペナルティに関連する、訓練することと、を含み、
前記生産アクションの前記スケジュールは、さらに前記製品の生産を変更することにて生じた誤差に関係し、前記バリュー関数は、前記生産アクションを行った後に生産された製品の利益、遅延生産によるペナルティ、及び前記製品の生産の変更により生じた誤差を表す、コンピュータ実装方法。
【請求項2】
前記ポリシー関数が、前記生産施設の1つ以上の状態を前記生産アクションにマッピングし、前記生産施設の前記1つ以上の状態のうちのある状態が、前記一定期間内の特定時間に前記1つ以上の製品の製品在庫、および前記特定時間に前記生産施設で利用可能な前記1つ以上の投入材料の投入材料在庫を表し、前記バリュー関数が、生産アクションを実行した後に生産された製品の利益、および前記遅延生産によるペナルティを表す、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することが、
前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークで、前記生産施設の前記1つ以上の状態のうちの特定状態に関連する入力を受信することと、
前記ポリシーニューラルネットワークを利用して、前記特定状態に基づいて、特定生産アクションをスケジュールすることと、
前記バリューニューラルネットワークを利用して、前記特定生産アクションの推定された利益を決定することと、
前記推定された利益に基づいて、前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを更新することと、を含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記推定された利益に基づいて前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを更新することが、
前記特定生産アクションのために実際の利益を決定することと、
前記推定された利益と前記実際の利益との間の利益誤差を決定することと、
前記利益誤差に基づいて、前記バリューニューラルネットワークを更新することと、を含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記ポリシーニューラルネットワークを利用して、前記特定状態に基づいて前記特定生産アクションをスケジュールすることが、
前記ポリシーニューラルネットワークを利用して、前記特定状態に基づいて、前記生産施設でスケジュールされる前記生産アクションの確率分布を決定することと、
前記生産アクションの前記確率分布に基づいて、前記特定生産アクションを決定することと、を含む、請求項3または請求項4のいずれかに記載のコンピュータ実装方法。
【請求項6】
前記ポリシーニューラルネットワークを利用して、前記特定状態に基づいて前記特定生産アクションをスケジュールした後、
前記特定生産アクションを実行するために使用される投入材料、および前記生産施設で受信された追加の投入材料を考慮するように、前記投入材料在庫を更新することと、
前記特定生産アクションによって生産された製品を考慮するように、前記製品在庫を更新することと、
少なくとも1つの製品要求の少なくとも一部が前記更新された製品在庫によって満たされているかどうかを決定することと、
少なくとも1つの製品要求の少なくとも一部が満たされていると決定した後、
前記少なくとも1つの製品要求の少なくとも一部を満たすために、1つ以上の出荷可能製品を決定することと、
前記1つ以上の出荷可能製品の出荷を考慮するように、前記製品在庫を再更新することと、
前記1つ以上の出荷可能製品の前記出荷に基づいて、前記1つ以上の製品要求を更新することとによって、前記特定生産アクションに基づいて、前記生産施設の前記モデルを更新することをさらに含む、請求項3~5のいずれか1項に記載のコンピュータ実装方法。
【請求項7】
前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することが、
1つ以上のモンテカルロ製品要求を生成するように、モンテカルロ技術を利用することと、
前記1つ以上のモンテカルロ製品要求を満たすために、前記生産施設の前記モデルに基づいて、前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することと、を含む、請求項1~6のいずれか1項に記載のコンピュータ実装方法。
【請求項8】
前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することが、
前記生産施設の1つ以上のモンテカルロ状態を生成するように、モンテカルロ技術を利用することであって、前記生産施設の各モンテカルロ状態が、前記一定期間内の特定時間に前記1つ以上の製品および前記1つ以上の投入材料の在庫を表す、利用することと、
前記1つ以上のモンテカルロ状態を満たすために、前記生産施設の前記モデルに基づいて、前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することと、を含む、請求項1~7のいずれか1項に記載のコンピュータ実装方法。
【請求項9】
前記ポリシー関数および前記バリュー関数を表すように前記ニューラルネットワークを訓練することが、強化学習技術を利用して、前記ポリシー関数および前記バリュー関数を表すように前記ニューラルネットワークを訓練することを含む、請求項1~8のいずれか1項に記載のコンピュータ実装方法。
【請求項10】
前記バリュー関数が、前記生産施設によって生産された1つ以上の製品の経済的価値、前記生産施設で生じた1つ以上のペナルティの経済的価値、前記生産施設によって利用される投入材料の経済的価値、前記1つ以上の要求された製品の出荷における遅滞の兆候、および前記1つ以上の要求された製品のための時間どおりの製品利用可能性のパーセンテージのうちの1つ以上を表す、請求項1~9のいずれか1項に記載のコンピュータ実装方法。
【請求項11】
前記生産アクションの前記スケジュールが、前記生産施設での製品の生産を変更することによって生じた誤差にさらに関係し、前記バリュー関数が、生産アクションを行った後に生産された製品の利益、遅延生産による前記ペナルティ、および生産の変更によって生じた前記誤差を表す、請求項1~10のいずれか1項に記載のコンピュータ実施方法。
【請求項12】
前記生産アクションの前記スケジュールが、計画期間中の生産活動の変更不可能な計画期間スケジュールを含み、生産活動の前記変更不可能な計画期間スケジュールが、前記計画期間中は変更不可能である、請求項1~11のいずれか1項に記載のコンピュータ実装方法。
【請求項13】
前記生産アクションの前記スケジュールが、毎日のスケジュールを含み、前記計画期間が、少なくとも7日間である、請求項12に記載のコンピュータ実装方法。
【請求項14】
前記1つ以上の製品が、1つ以上の化学製品を含む、請求項1~13のいずれか1項に記載のコンピュータ実装方法。
【請求項15】
コンピューティングデバイスであって、
1つ以上のプロセッサと、
データストレージであって、前記1つ以上のプロセッサによって実行されるときに、請求項1~14のいずれか1項に記載のコンピュータ実装方法を含む機能を前記コンピューティングデバイスに実行させる、コンピュータ実行可能命令がその上に格納されたデータストレージとを備える、コンピューティングデバイス。
【請求項16】
コンピューティングデバイスの1つ以上のプロセッサによって実行されるときに、請求項1~14のいずれか1項に記載のコンピュータ実装方法を含む機能を前記コンピューティングデバイスに実行させる、
プログラム。
【請求項17】
請求項16に記載のプログラムを記録した非一時的なコンピュータ可読媒体
。
【請求項18】
コンピューティングシステムであって、
請求項1~14のいずれか1項に記載のコンピュータ実施方法を実行するための手段を備える、コンピューティングシステム。
【請求項19】
コンピュータ実装方法であって、
コンピューティングデバイスで、1つ以上の製品要求を満たすために1つ以上の投入材料を利用して、生産施設で生産される1つ以上の製品の生産に関連する前記生産施設のモデルを決定することであって、各製品要求が、1つ以上の要求された時間に前記生産施設で利用可能になる前記1つ以上の製品のうちの1つ以上の要求された製品を指定し、前記生産施設の反応容器が処理温度の変更を行うように指示されたとき、前記モデルは、前記生産施設で前記製品の生産を変更することにより生じる誤差の表現を含む、決定することと、
訓練されたポリシーニューラルネットワークおよび訓練されたバリューニューラルネットワークを、一定期間にわたって前記1つ以上の製品要求を満たす前記生産施設での生産アクションのスケジュール、前記生産施設でスケジュールされる生産アクションを表すポリシー関数に関連付けられた前記訓練されたポリシーニューラルネットワーク、および前記生産アクションに基づいて前記生産施設で生産された製品の利益を表すバリュー関数に関連付けられた前記訓練されたバリューニューラルネットワークを生成するように利用することとを含み、
前記生産アクションの前記スケジュールは、さらに前記製品の生産を変更することにて生じた誤差に関係し、前記バリュー関数は、前記生産アクションを行った後に生産された製品の利益、遅延生産によるペナルティ、及び前記製品の生産の変更により生じた誤差を表す、コンピュータ実装方法。
【請求項20】
前記ポリシー関数が、前記生産施設の1つ以上の状態を前記生産アクションにマッピングし、前記生産施設の前記1つ以上の状態のうちのある状態が、特定時間に前記1つ以上の製品の製品在庫、および特定時間に前記生産施設で利用可能な1つ以上の投入材料の投入材料在庫を表し、前記バリュー関数が、生産アクションを実行した後に生産された製品の利益、および遅延生産による前記ペナルティを表す、請求項19に記載のコンピュータ実装方法。
【請求項21】
前記訓練されたポリシーニューラルネットワークおよび前記訓練されたバリューニューラルネットワークを利用することが、
前記生産施設の前記1つ以上の状態のうちの特定状態を決定することと、
前記訓練されたポリシーニューラルネットワークを利用して、前記特定状態に基づいて、特定生産アクションをスケジュールすることと、
前記訓練されたバリューニューラルネットワークを利用して、前記特定生産アクションの推定された利益を決定することと、を含む、請求項20に記載のコンピュータ実装方法。
【請求項22】
前記訓練されたポリシーニューラルネットワークを利用して、前記特定状態に基づいて前記特定生産アクションをスケジュールすることが、
前記訓練されたポリシーニューラルネットワークを利用して、前記特定状態に基づいて、前記生産施設でスケジュールされる前記生産アクションの確率分布を決定することと、
前記生産アクションの前記確率分布に基づいて、前記特定生産アクションを決定することと、を含む、請求項21に記載のコンピュータ実装方法。
【請求項23】
前記訓練されたポリシーニューラルネットワークを利用して、前記特定状態に基づいて、前記特定生産アクションをスケジュールした後、
前記特定生産アクションを実行するために使用される投入材料、および前記生産施設で受信された追加の投入材料を考慮するように、前記投入材料在庫を更新することと、
前記特定生産アクションによって生産された製品を考慮するように、前記製品在庫を更新することと、
少なくとも1つの製品要求の少なくとも一部が前記更新された製品在庫によって満たされているかどうかを判断することと、
少なくとも1つの製品要求の少なくとも一部が満たされていると決定した後、
前記少なくとも1つの製品要求の少なくとも一部を満たすために、1つ以上の出荷可能製品を決定することと、
前記1つ以上の出荷可能製品の出荷を考慮するように、前記製品在庫を再更新することと、
前記1つ以上の出荷可能製品の前記出荷に基づいて、前記1つ以上の製品要求を更新することとによって、前記特定生産アクションに基づいて、前記生産施設の前記モデルを更新することをさらに含む、請求項21または請求項22のいずれかに記載のコンピュータ実装方法。
【請求項24】
前記バリュー関数が、前記生産施設によって生産された1つ以上の製品の経済的価値、前記生産施設で生じた1つ以上のペナルティの経済的価値、前記生産施設によって利用される投入材料の経済的価値、前記1つ以上の要求された製品の出荷における遅滞の兆候、および前記1つ以上の要求された製品のための時間どおりの製品利用可能性のパーセンテージのうちの1つ以上を表す、請求項19~23のいずれか1項に記載のコンピュータ実装方法。
【請求項25】
前記生産アクションの前記スケジュールが、前記生産施設での製品の生産を変更することによって生じた誤差にさらに関係し、前記バリュー関数が、生産アクションを行った後に生産された製品の利益、遅延生産による前記ペナルティ、および生産の変更によって生じた前記誤差を表す、請求項19~24のいずれか1項に記載のコンピュータ実施方法。
【請求項26】
前記生産アクションの前記スケジュールが、計画期間中の生産活動の変更不可能な計画期間スケジュールを含み、生産活動の前記変更不可能な計画期間スケジュールが、前記計画期間中は変更不可能である、請求項19~25のいずれか1項に記載のコンピュータ実装方法。
【請求項27】
前記生産アクションの前記スケジュールが、毎日のスケジュールを含み、前記計画期間が、少なくとも7日間である、請求項26に記載のコンピュータ実装方法。
【請求項28】
前記1つ以上の製品が、1つ以上の化学製品を含む、請求項19~27のいずれか1項に記載のコンピュータ実装方法。
【請求項29】
前記生産施設でのアクションをスケジュールするように前記訓練されたポリシーニューラルネットワークおよび前記訓練されたバリューニューラルネットワークを利用した後、前記訓練されたニューラルネットワークで、前記訓練されたニューラルネットワークによってスケジュールされたアクションについてのフィードバックを受信することと、
前記スケジュールされたアクションに関連する前記フィードバックに基づいて、前記訓練されたニューラルネットワークを更新することと、をさらに含む、請求項19~28のいずれか1項に記載のコンピュータ実装方法。
【請求項30】
コンピューティングデバイスであって、
1つ以上のプロセッサと、
データストレージであって、前記1つ以上のプロセッサによって実行されるときに、請求項19~29のいずれか1項に記載のコンピュータ実装方法を含む機能を前記コンピューティングデバイスに実行させる、コンピュータ実行可能命令がその上に格納されたデータストレージとを備える、コンピューティングデバイス。
【請求項31】
コンピューティングデバイスの1つ以上のプロセッサによって実行されるときに、請求項19~29のいずれか1項に記載のコンピュータ実装方法を含む機能を前記コンピューティングデバイスに実行させる、
プログラム。
【請求項32】
請求項31に記載のプログラムを記録した、非一時的
コンピュータ可読媒体
。
【請求項33】
コンピューティングシステムであって、
請求項19~29のいずれか1項に記載のコンピュータ実施方法を実行するための手段を備える、コンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれる、2018年10月26日に出願された米国仮特許出願第62/750,986号に対する優先権を主張する。
【0002】
化学企業は、毎日、材料投入を製品に変換するために生産施設を使用することができる。これらの化学企業を運営することにおいて、資源配分に関する複雑な疑問は、どの化学製品を生産すべきか、それらの製品をいつ生産すべきか、およびこれらの製品の生産量をどれだけ生産すべきかに関して、質問および回答されなければならない。現在処分する量対在庫に保管する量そして期間はどれくらいかなど、在庫管理に関するさらなる疑問は、これらの決定に対する「より良い」回答が、化学企業の利益率を高めることができるためである。
【0003】
化学企業はまた、競争からの増加するプレッシャー、および競争力を維持するために、生産戦略の修正を余儀なくされる革新に直面している。さらに、これらの決定は、不確実性が大きいにもかかわらず行われ得る。生産遅滞、プラントの閉鎖または停止、注文の殺到、価格の変動、および需要の変化はすべて、以前は最適であったスケジュールを実行不可能にさえする不確実性の原因となり得る。
【0004】
化学企業が直面する資源配分の問題の解決策は、多くの場合、計算が困難であり、リアルタイム需要に対応するには長すぎる計算時間を産出する。スケジューリングの問題は、時間の処理方法、最適化の決定、およびその他のモデリング要素によって分類される。現在の2つの方法は、不確実性、堅牢な最適化、および確率的最適化を処理しながら、スケジューリングの問題を解決することができる。堅牢な最適化は、システムにおける不確実性の可能な成果の特定のセットに対して、スケジュールが実行可能であることを保証する。堅牢な最適化の例は、処理時間、需要、および原材料価格における不確実性がある連続時間状態タスクネットワーク(STN)としてモデル化された化学プロセスのスケジューリングに関与することができる。
【0005】
確率的最適化は、決定が下される段階において不確実性に対処することができ、その後、不確実性が明らかになり、新しい情報が与えられた場合に頼りになる決定を下すことができる。確率的最適化の一例は、安全在庫レベルを決定し、確率的需要に対して特定の顧客満足度レベルを維持するように、多段階の確率的最適化モデルの使用に関与する。別の確率的最適化の例は、決定に関連するリスクの原因となる一方、ローリングホライズン(rolling horizon)を使用いる化学バッチプロセスのスケジューリングに対処するように、2段階の確率的混合整数線形プログラムの使用に関与する。不確実性の下での最適化の長い歴史があるが、多くの手法は、高い計算コスト、不確実性の原因(内因性対外因性)、および不確実性の測定における複雑さのために実装が困難である。
【発明の概要】
【0006】
第1の例示的な実施形態は、コンピュータ実施方法に関与し得る。1つ以上の製品要求を満たすために1つ以上の投入材料を利用して、生産施設で生産される1つ以上の製品の生産に関連する生産施設のモデルは、決定されることができる。各製品要求は、1つ以上の要求された時間に生産施設で利用可能になる1つ以上の製品のうちの1つ以上の要求された製品を指定することができる。生産施設のためのポリシーニューラルネットワークおよびバリューニューラルネットワークは、決定されることができる。ポリシーニューラルネットワークは、生産施設でスケジュールされる生産アクションを表すポリシー関数に関連付けられることができる。バリューニューラルネットワークは、生産アクションに基づいて、生産施設で生産された製品の利益を表すバリュー関数に関連付けられることができる。ポリシーニューラルネットワークおよびバリューニューラルネットワークは、生産のモデルに基づいて、一定期間にわたって1つ以上の製品要求を満たす、生産施設での生産アクションのスケジュールを生成するように訓練されることができる。生産アクションのスケジュールは、1つ以上の要求された時間に基づいて決定された1つ以上の要求された製品の遅延生産によるペナルティに関連することができる。
【0007】
第2の例示的な実施形態は、コンピューティングデバイスに関与することができる。コンピューティングデバイスは、1つ以上のプロセッサと、データストレージとを含むことができる。データストレージは、1つ以上のプロセッサによって実行されるときに、第1の例示的な実施形態のコンピュータ実装方法を含むことができる機能をコンピューティングデバイスに実行させる、コンピュータ実行可能命令がその上に格納されることができる。
【0008】
第3の例示的な実施形態は、製造品に関与することができる。製造品は、コンピューティングデバイスの1つ以上のプロセッサによって実行されるときに、第1の例示的な実施形態のコンピュータ実装方法を含むことができる機能をコンピューティングデバイスに実行させる、その上に格納されたコンピュータ可読命令を有する1つ以上のコンピュータ可読媒体を含むことができる。
【0009】
第4の例示的な実施形態は、コンピューティングデバイスに関与することができる。コンピューティングデバイスは、第1の例示的な実施形態のコンピュータ実装方法を実行するための手段を含むことができる。
【0010】
第5の例示的な実施形態は、コンピュータ実施方法に関与することができる。コンピューティングデバイスは、生産施設に関連付けられた1つ以上の製品要求を受信することができ、各製品要求が、1つ以上の要求された時間に生産施設で利用可能である1つ以上の製品のうちの1つ以上の要求された製品を指定する。訓練されたポリシーニューラルネットワークおよび訓練されたバリューニューラルネットワークは、一定期間にわたって1つ以上の製品要求を満たす生産施設での生産アクションのスケジュール、生産施設でスケジュールされる生産アクションを表すポリシー関数に関連付けられた訓練されたポリシーニューラルネットワーク、および生産アクションに基づいて生産施設で生産された製品の利益を表すバリュー関数に関連付けられた訓練されたバリューニューラルネットワークを生成するように利用されることができ、生産アクションのスケジュールが、1つ以上の要求された時間に基づいて決定された1つ以上の要求された製品の遅延生産による、および生産施設での1つ以上の製品の生産の変更によるペナルティに関連する。
【0011】
第6の例示的な実施形態は、コンピューティングデバイスに関与することができる。コンピューティングデバイスは、1つ以上のプロセッサと、データストレージとを含むことができる。データストレージは、1つ以上のプロセッサによって実行されるときに、第5の例示的な実施形態のコンピュータ実装方法を含むことができる機能をコンピューティングデバイスに実行させる、コンピュータ実行可能命令がその上に格納されることができる。
【0012】
第7の例示的な実施形態は、製造品に関与することができる。製造品は、コンピューティングデバイスの1つ以上のプロセッサによって実行されるときに、第5の例示的な実施形態のコンピュータ実装方法を含むことができる機能をコンピューティングデバイスに実行させる、その上に格納されたコンピュータ可読命令を有する1つ以上のコンピュータ可読媒体を含むことができる。
【0013】
第8の例示的な実施形態は、コンピューティングデバイスに関与することができる。コンピューティングデバイスは、第5の例示的な実施形態のコンピュータ実装方法を実行するための手段を含むことができる。
【0014】
これらならびに他の実施形態、態様、利点、および代替案は、添付の図面を適切に参照しながら、以下の詳細な説明を読むことにより、当業者に明らかになるであろう。さらに、この概要および本明細書で提供される他の説明および図は、例としてのみ実施形態を説明することを意図しており、したがって、多くの変形が可能である。例えば、構造要素およびプロセスステップは、特許請求される実施形態の範囲内にとどまりながら、再配置、結合、分散、排除、または他の方法で変更することができる。
【図面の簡単な説明】
【0015】
【
図1】例示的な実施形態による、コンピューティングデバイスの概略図を示す。
【
図2】例示的な実施形態による、サーバデバイスクラスタの概略図を示す。
【
図3】例示的な実施形態による、人工ニューラルネットワーク(ANN)アーキテクチャを示す。
【
図4A】例示的な実施形態による、ANNの訓練を示す。
【
図4B】例示的な実施形態による、ANNの訓練を示す。
【
図5】例示的な実施形態による、ANNの強化学習を示す図を示す。
【
図6】例示的な実施形態による、例示的なスケジューリング問題を示す。
【
図7】例示的な実施形態による、エージェントを含むシステムを示す。
【
図8】例示的な実施形態による、
図7のシステムのためのモデルのブロック図である。
【
図9】例示的な実施形態による、
図7のシステムにおける生産施設のスケジュールを示す。
【
図10】例示的な実施形態による、
図7のシステムのエージェントの図である。
【
図11】例示的な実施形態による、アクション確率分布を生成する
図7のシステムのエージェントを示す図を示す。
【
図12】例示的な実施形態による、アクション確率分布を使用してスケジュールを生成する
図7のシステムのエージェントを示す図を示す。
【
図13】例示的な実施形態による、特定時間に実行されるような
図12のアクションのスケジュールを示す。 [
図13]例示的な実施形態による、特定時間に実行される
図7のシステムの生産施設のためのアクションの例示的なスケジュールを示す。
【
図14】例示的な実施形態による、
図7のエージェントを訓練している間に取得されたエピソードあたりの訓練報酬およびエピソードあたりの製品利用可能性のグラフを示す。
【
図15】例示的な実施形態による、生産施設での活動のスケジューリングにおけるニューラルネットワークおよび最適化モデル性能を比較するグラフを示す。
【
図16】例示的な実施形態による、生産施設での活動のスケジューリングにおけるニューラルネットワークおよび最適化モデル性能を比較する追加のグラフを示す。
【
図17】例示的な実施形態による、方法のためのフローチャートである。
【
図18】例示的な実施形態による、別の方法のためのフローチャートである。
【発明を実施するための形態】
【0016】
例示的な方法、デバイス、およびシステムを本明細書において説明する。本明細書では、「例」および「例示的」という用語は、「例、実例、または例証として機能する」ことを意味するために使用されることを理解されたい。「例」または「例示的」であるとして本明細書に説明される任意の実施形態または特徴は、そのように述べられない限り、必ずしも他の実施形態または特徴よりも好ましいまたは有利であると解釈されるべきではない。したがって、他の実施形態を利用することができ、本明細書において提示される主題の範囲から逸脱することなく、他の変更を行うことができる。
【0017】
したがって、本明細書に説明される例示的な実施形態は、限定することを意味するものではない。本明細書に概して説明され、図に示される本開示の態様は、多種多様な異なる構成で配置、置換、結合、分離、および設計され得ることが容易に理解されよう。例えば、「クライアント」コンポーネントと「サーバ」コンポーネントへの機能の分離は、様々な方法で発生し得る。
【0018】
さらに、文脈が別のことを示唆しない限り、各図に示されている特徴は、互いに組み合わせて使用され得る。したがって、図は、概して、1つ以上の全体的な実施形態の構成要素として見なされるべきであり、各実施形態にすべての図示された特徴が必要であるとは限らないことを理解されたい。
【0019】
さらに、本明細書または特許請求の範囲における要素、ブロック、またはステップの列挙は、明確にするためのものである。したがって、そのような列挙は、これらの要素、ブロック、またはステップが特定の配置に準拠する、または特定の順序で実行されることを要求または暗示するものとして解釈されるべきではない。
【0020】
以下の実施形態は、開示されたANN実装を使用し得る、例示的なコンピューティングデバイスおよびシステムのアーキテクチャおよび動作態様、ならびにそれらの特徴および利点を記載する。
【0021】
本明細書には、深層強化学習を使用して訓練された1つ以上のANNを有する計算エージェントを使用して、生産スケジューリングおよび計画問題を解決するための装置および方法が記載される。これらのスケジューリングおよび計画問題は、化学プラントで生産される化学物質、またはより概して、生産施設で生産された製品のための生産スケジューリングに関与することができる。化学プラントまたはその他の生産施設における生産スケジュールは、3つの質問、1)どの製品を製造するか?2)いつ製品を作るのか?および3)各製品をどれだけ作るか?を繰り返し行うと考えることができる。スケジューリングおよび計画中に、これらの質問は、コストの最小化、利益の最大化、メイクスパン(makespan)(すなわち、製品生産の開始と終了の間の時間差)の最小化、および/または1つ以上の他のメトリックに関して質問および回答されることができる。
【0022】
追加の複雑な問題は、生産施設でのスケジューリングおよび計画活動中に発生する可能性があり、例えば、動作安定性および顧客サービスは、互いに対立している。これは、需要の変化、製品の信頼性、価格設定、供給の信頼性、生産品質、メンテナンスなどに起因する不確実性によって悪化することがよくあり、製造業者は、生産資産を迅速に再スケジュールすることで対応する必要があり、将来においては生産施設でさらに困難を引き起こす可能性のある次善の解決につながる。
【0023】
スケジューリングおよび計画の結果は、生産の信頼性、需要、および優先順位の変化を取り巻く不確実性が大きいにもかかわらず、将来の期間、多くの場合7日間以上前の生産のスケジュールを含むことができる。追加的に、特定の顧客の行動またはプラントが役立たなければならない地域市場など、スケジューリングおよび計画中に数学的に表すことが難しい、複数の制約およびダイナミクスがある。化学製品のスケジューリングおよび計画のプロセスは、割引価格で販売される格外の材料を生産することができるタイプ変更の制限によって、さらに複雑にされる可能性がある。格外の生産自体は、非決定的である可能性があり、不十分なタイプの変更は、大幅な生産遅滞および潜在的シャットダウンの可能性がある。
【0024】
ANNは、不確実性を考慮するため本明細書で記載された深層強化学習手法を使用して訓練され、オンラインで動的なスケジューリングを達成する。その後、訓練されたANNは、生産スケジューリングのために使用されることができる。例えば、計算エージェントは、スケジューリングのために2つの多層ANN、状態が生産施設で生産された製品(例えば、化学プラントで生産された化学物質)の在庫に基づく場合、生産施設の状態のバリューを推定するためのバリュー関数を表すバリューANN、および生産施設での生産アクションをスケジュールするためのポリシー機能を表すポリシーANNを具体化して使用することができる。生成アクションの例は、時間t1、t2、t3...で生成するように、化学物質A、B、C...の各々の量に関連するアクションを含むが、これらに限定されない。エージェントは、生産施設のシミュレーションまたはモデルと対話して、在庫レベル、注文、生産データ、保守履歴に関する情報を取り込み、過去の需要パターンに従ってプラントをスケジュールすることができる。エージェントのANNは、ビジネス要件を満たすために生産施設を効果的にスケジュールする方法を学習するように、多数のシミュレーションにわたる深層強化学習を使用することができる。エージェントのバリューおよびポリシーANNは、連続変数を容易に表すことができ、以前のアプローチによって利用されたモデルベースの方法とは対照的に、モデルフリーの表現を通じてより一般化することができる。
【0025】
エージェントは、訓練されることができ、一旦訓練されると、生産施設PF1での生産活動をスケジュールするために利用されることができる。エージェントを訓練および利用するための手順を開始するために、生産施設PF1のモデルは、取得されることができる。モデルは、エンタープライズリソースプランニングシステムおよび他のソースから取得されたPF1についてのデータに基づくことができる。その後、1つ以上のコンピューティングデバイスは、深層学習のためのポリシーおよびバリュー関数を表すように、訓練されていないポリシーおよびバリューANNで事前設定されることができる。その後、1つ以上のコンピューティングデバイスは、深層強化学習アルゴリズムを使用して、ポリシーおよびバリューANNを訓練することができる。訓練は、1つ以上のハイパーパラメータ(例えば、学習率、ステップサイズ、割引係数)に基づくことができる。訓練中、ポリシーおよびバリューANNは、目的関数および/または主要業績評価指標(KPI)によって示される、十分なレベルの成功が達成されるまで、モデルに基づいて関連する決定を行うように、生産施設PF1のモデルと相互作用することができる。十分なレベルの成功がモデル上で達成されると、ポリシーおよびバリューANNは、ポリシーANNを使用してPF1の生産アクションを提供し、バリューANNを使用しPF1の生産アクションを評価するように、訓練されると見なされることができる。
【0026】
その後、訓練されたポリシーおよびバリューANNは、オプションでコピーされ、および/または運用している生産施設PF1に関連付けられたサーバ(複数可)として機能することができる、1つ以上のコンピューティングデバイスに移動されることができる。その後、ポリシーおよびバリューANNは、ANNが生産施設PF1での変更にリアルタイムで対応することができるように、1つ以上のコンピューティングデバイス(ANNが移動されなかった場合)またはサーバ(複数可)(ANNが移動された場合)によって実行されることができる。特に、ポリシーおよびバリューANNは、1つ以上の投入(原材料)材料に基づいて1つ以上の製品を生産するように、生産施設PF1で実行されることができる生産アクションのスケジュールを決定することができる。生産施設PF1は、PF1での通常のプロセスを通じて生産アクションのスケジュールを実装することができる。その後、実装されたスケジュールについてのフィードバックは、継続的な更新および学習を継続するように、訓練されたポリシーおよびバリューANN、および/または生産施設PF1のモデルに提供されることができる。
【0027】
追加的に、生産施設PF1での1つ以上のKPI(例えば、在庫コスト、製品バリュー、製品データの時間どおりの配達)は、訓練されたポリシーおよびバリューANNを評価するように使用されることができる。KPIが、訓練されたポリシーおよびバリューANNが適切に実行されていないことを示す場合、新しいポリシーおよびバリューANNは、本明細書で記載されるように訓練されることができ、新しく訓練されたポリシーおよびバリューANNは、以前のポリシーおよびバリューANNを置き換えることができる。
【0028】
本明細書で記載される強化学習技術は、化学製品、例えば、様々なグレードの低密度ポリエチレン(LDPE)を生産するために使用される単段多製品反応器などの生産施設の生産アクションを動的にスケジュールすることができる。本明細書で記載される強化学習手法は、システムにおける不確実性を捉えるための自然な表現を提供する。さらに、これらの強化学習手法は、両方の手法セットの利点を活用するように、モデルベースの最適化手法などの他の既存の手法と組み合わせられることができる。例えば、モデルベースの最適化手法は、ANN訓練中に「オラクル(oracle)」として使用されることができる。その後、ポリシーおよび/またはバリューANNを具体化する強化学習エージェントは、複数の生産アクションが特定時間に実行可能であるときに、オラクルにクエリを実行して、特定時間のためにスケジュールされる生産アクションを選択するのに役立てることができる。さらに、強化学習エージェントは、複数の本番アクションが時間の経過とともに実行可能であるときに実行する本番アクションをオラクルから学習することができるため、オラクルへの依存を減らす(および最終的には排除する)。強化学習とモデルベースの最適化手法を組み合わせるための別の可能性は、確率的プログラミングアルゴリズムの探索空間を制限するように、強化学習エージェントを使用することである。一旦訓練されると、強化学習エージェントは、それらのブランチを削除するために、特定のアクションに高い報酬を受信する確率を低くし、最適化アルゴリズムの検索を加速する。
【0029】
本明細書で記載される強化学習技術を使用して、生産施設を制御するためのスケジュールを生成する問題を解決するためにANNを訓練することができる。訓練されたANNによって作成されたスケジュールは、ANNおよびMILPスケジューリングの両方が、後退する期間に基づいて複数の時間間隔で実行される、典型的な混合整数線形計画法(MILP)スケジューラーによって作成されたスケジュールと、好意的に比較する。つまり、ANNで生成されたスケジュールは、不確実性の下で、決定論的なMILPで生成されたスケジュールよりも高い収益性、低い在庫レベル、および優れた顧客サービスを実現することができる。
【0030】
また、本明細書で記載される強化学習技術は、不確実性を考慮に入れる能力があるため、計画のために後退する固定時間期間で動作するようにANNを訓練するように使用されることができる。さらに、本明細書で記載される訓練されたANNを具体化する強化学習エージェントは、迅速に実行され、生産施設での変化にリアルタイムで反応するために継続的に利用可能であるため、強化学習エージェントが柔軟であり、必要に応じて生産施設の生産をスケジュールする際に、リアルタイムの変更を行うことを可能にする。
【0031】
I.例示的なコンピューティングデバイスおよびクラウドベースのコンピューティング環境
図1は、コンピューティングデバイス100を例示する簡略化されたブロック図であり、本明細書の実施形態に従って動作するように構成されたコンピューティングデバイスに含まれ得るいくつかのコンポーネントを示す。コンピューティングデバイス100は、クライアントデバイス(例えば、ユーザによって能動的に操作されるデバイス)、サーバデバイス(例えば、クライアントデバイスに計算サービスを提供するデバイス)、または他のタイプの計算プラットフォームであり得る。一部のサーバデバイスは、特定の動作を実行するために時々クライアントデバイスとして動作することができ、一部のクライアントデバイスは、サーバ機能を組み込むことができる。
【0032】
この例において、コンピューティングデバイス100は、プロセッサ102、メモリ104、ネットワークインターフェース106、および入力/出力ユニット108を含み、これらはすべて、システムバス112または同様のメカニズムによって結合されることができる。いくつかの実施形態において、コンピューティングデバイス100は、他のコンポーネントおよび/または周辺デバイス(例えば、取り外し可能なストレージ、プリンタなど)を含むことができる。
【0033】
プロセッサ102は、中央処理装置(CPU)、コプロセッサ(例えば、数学、グラフィックス、ニューラルネットワーク、または暗号化コプロセッサ)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、ネットワークプロセッサ、および/またはプロセッサ動作を実行する集積回路もしくはコントローラの形式など、任意のタイプのコンピュータ処理要素のうちの1つ以上であり得る。いくつかの場合において、プロセッサ102は、1つ以上のシングルコアプロセッサであることができる。他の場合において、プロセッサ102は、複数の独立した処理ユニットまたは「コア」を備える1つ以上のマルチコアプロセッサであり得る。プロセッサ102はまた、実行中の命令および関連データを一時的に格納するためのレジスタメモリ、ならびに最近使用された命令およびデータを一時的に格納するためのキャッシュメモリを含むことができる。
【0034】
メモリ104は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、および不揮発性メモリを含むがこれらに限定されない、任意の形式のコンピュータ使用可能メモリであり得る。これは、例えば、フラッシュメモリ、ソリッドステートドライブ、ハードディスクドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、リムーバブル磁気ディスクメディア、およびテープストレージを含むことができるが、これらに限定されない。コンピューティングデバイス100は、固定メモリならびに1つ以上のリムーバブルメモリユニットを含むことができ、後者は、様々なタイプのセキュアデジタル(SD)カードを含むが、これらに限定されない。したがって、メモリ104は、メインメモリユニットと長期ストレージの両方を表す。生物学的メモリチップなど、他のタイプのメモリも可能である。
【0035】
メモリ104は、プログラム命令および/またはプログラム命令が動作することができるデータを格納することができる。例として、メモリ104は、これらのプログラム命令を非一時的なコンピュータ可読媒体上に格納し得、これにより、命令は、本明細書または添付の図面に開示される方法、プロセス、または動作のいずれかを実行するためにプロセッサ102によって実行可能である。
【0036】
いくつかの例において、メモリ104は、ファームウェア、カーネルソフトウェア、および/またはアプリケーションソフトウェアなどのソフトウェアを含むことができる。ファームウェアは、コンピューティングデバイス100の一部または全部を起動または他の方法で開始するように使用されるプログラムコードであることができる。カーネルは、メモリ管理、プロセスのスケジューリングおよび管理、入力/出力、ならびに通信のためのモジュールを含む、オペレーティングシステムを含むことができる。カーネルソフトウェアはまた、オペレーティングシステムがコンピューティングデバイス100のハードウェアモジュール(例えば、メモリユニット、ネットワーキングインターフェース、ポート、およびバス)と通信することを可能にするデバイスドライバを含むことができる。アプリケーションは、ウェブブラウザまたは電子メールクライアントなどの1つ以上のユーザスペースソフトウェアプログラム、ならびにこれらのプログラムによって使用される任意のソフトウェアライブラリであり得る。メモリ104はまた、これらのおよび他のプログラムおよびアプリケーションによって使用されるデータを格納することができる。
【0037】
ネットワークインターフェース106は、イーサネット(例えば、ファストイーサネット、ギガビットイーサネットなど)などの1つ以上の有線インターフェースの形式をとることができる。ネットワークインターフェース106はまた、同軸ケーブル、アナログ加入者線もしくは電力線などの1つ以上の非イーサネット媒体を介した、または同期光ネットワーク(SONET)もしくはデジタル加入者線(DSL)技術などの広域媒体を介した有線通信をサポートすることができる。ネットワークインターフェース106は、追加的に、IEEE802.11(Wi-Fi)、ZigBee(登録商標)、BLUETOOTH(登録商標)、全地球測位システム(GPS)、または広域無線インターフェースなどの1つ以上の無線インターフェースの形式をとることができる。しかしながら、他の形式の物理層インターフェースおよび他のタイプの標準または独自の通信プロトコルは、ネットワークインターフェース106を介して使用されることができる。さらに、ネットワークインターフェース106は、複数の物理インターフェースを含むことができる。例えば、コンピューティングデバイス100のいくつかの実施形態は、イーサネット、BLUETOOTH(登録商標)、ZigBee(登録商標)、および/またはWi-Fi(登録商標)インターフェースを含むことができる。
【0038】
入力/出力ユニット108は、例示的なコンピューティングデバイス100とのユーザおよび周辺デバイス相互作用を容易にすることができる。入力/出力ユニット108は、キーボード、マウス、タッチスクリーンなどのような1つ以上のタイプの入力デバイスを含むことができる同様に、入力/出力ユニット108は、スクリーン、モニター、プリンタ、および/または1つ以上の発光ダイオード(LED)などの1つ以上のタイプの出力デバイスを含むことができる。追加的または代替的に、コンピューティングデバイス100は、例えば、ユニバーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDMI)ポートインターフェースを使用して他のデバイスと通信することができる。
【0039】
電源ユニット110は、コンピューティングデバイス100に電力を提供するための1つ以上のバッテリーおよび/または1つ以上の外部電源インターフェースを含むことができる。1つ以上のバッテリーの各々は、コンピューティングデバイス100と電気的に結合されたときに、コンピューティングデバイス100のために蓄積された電力源として機能することができる。いくつかの例において、1つ以上のバッテリーの一部またはすべては、コンピューティングデバイス100から容易に取り外すことができる。いくつかの例において、1つ以上のバッテリーの一部またはすべては、コンピューティングデバイス100の内部にあることができ、したがって、コンピューティングデバイス100から容易に取り外すことができない。。いくつかの例において、1つ以上のバッテリーの一部またはすべては、再充電可能であり得る。いくつかの例において、1つ以上のバッテリーの一部またはすべては、非充電式バッテリーであり得る。電源ユニット110の1つ以上の外部電源インターフェースは、コンピューティングデバイス100の外部にある1つ以上の電源への有線電力接続を可能にする、USBケーブルおよび/または電源コードなどの1つ以上の有線電源インターフェースを含むことができる。1つ以上の外部電源インターフェースは、1つ以上の外部電源への無線電力接続を可能にする1つ以上の無線電源インターフェース(例えば、Qi無線充電器)を含むことができる。1つ以上の外部電源インターフェースを使用して外部電源への電力接続が確立されると、コンピューティングデバイス100は、確立された電力接続を使用して外部電源から電力を引き出すことができる。いくつかの例において、電源ユニット110は、関連するセンサー、例えば、1つ以上のバッテリーに関連付けられたバッテリーセンサー、電力センサーを含むことができる。
【0040】
いくつかの実施形態において、コンピューティングデバイス100の1つ以上のインスタンスは、クラスタ化されたアーキテクチャをサポートするように展開されることができる。これらのコンピューティングデバイスの正確な物理的な場所、接続、および構成は、クライアントデバイスにとって不明である、および/または重要ではないことがある。したがって、コンピューティングデバイスは、様々なリモートデータセンターの場所に収容されることができる「クラウドベース」デバイスと称されることができる。
【0041】
図2は、例示的な実施形態による、クラウドベースのサーバクラスタ200を示す。
図2において、コンピューティングデバイス(例えば、コンピューティングデバイス100)の動作は、サーバデバイス202と、データストレージ204と、ルータ206との間で分散されることができ、これらのすべてが、ローカルクラスタネットワーク208によって接続されることができる。サーバクラスタ200におけるサーバデバイス202、データストレージ204、およびルータ206の数は、サーバクラスタ200に割り当てられたコンピューティングタスク(複数可)および/またはアプリケーションに依存することができる。
【0042】
簡単にするために、サーバクラスタ200および個々のサーバデバイス202の両方は、「サーバデバイス」と称され得る。この命名法は、1つ以上の別個のサーバデバイス、データストレージデバイス、およびクラスタルータがサーバデバイスの動作に関与されることができることを暗に意味すると理解されるべきである。いくつかの例において、サーバデバイス202は、コンピューティングデバイス100の様々なコンピューティングタスクを実行するように構成されることができる。したがって、コンピューティングタスクは、サーバデバイス202のうちの1つ以上の間で分散することができる。コンピューティングタスクが並行して実行されることができる範囲で、このようなタスクの分散は、これらのタスクを完了して結果を返すように合計時間を短縮することができる。
【0043】
データストレージ204は、ハードディスクドライブおよび/またはソリッドステートドライブのグループへの読み取りおよび書き込みアクセスを管理するように構成された1つ以上のドライブアレイコントローラを含む1つ以上のデータストレージアレイを含むことができる。単独で、またはサーバデバイス202と組み合わせられる、ドライブアレイコントローラ(複数可)は、データストレージ204に格納されたデータのバックアップまたは冗長コピーを管理して、ドライブ障害またはサーバデバイス202のうちの1つ以上がクラスタデータストレージ204のユニットにアクセスすることを妨げる他のタイプの障害から保護するように構成されることができる。ドライブ以外の他のタイプのメモリも、使用されることができる。
【0044】
ルータ206は、サーバクラスタ200のために内部および外部通信を提供するように構成されたネットワーク機器を含むことができる。例えば、ルータ206は、(i)クラスタネットワーク208を介したサーバデバイス202とデータストレージ204との間のネットワーク通信、および/または、(ii)ネットワーク212への通信リンク210を介したサーバクラスタ200と他のデバイスとの間のネットワーク通信、を提供するように構成された1つ以上のパケット交換および/またはルーティングデバイス(スイッチおよび/またはゲートウェイを含む)を含むことができる。
【0045】
追加的に、クラスタルータ206の構成は、サーバデバイス202およびデータストレージ204のデータ通信要件、ローカルクラスタネットワーク208の待ち時間およびスループット、通信リンク210の待ち時間、スループット、およびコスト、および/またはシステムアーキテクチャのコスト、速度、フォールトトレランス、回復力、効率、および/または他の設計目標に寄与することができる他の要因に基づくことができる。
【0046】
可能な例として、データストレージ204は、構造化照会言語(SQL)データベースなどの任意の形式のデータベースを格納することができる。様々なタイプのデータ構造は、表、配列、リスト、ツリー、タプルを含むが、これらに限定されない、このようなデータベースにおける情報を格納することができる。さらに、データストレージ204における任意のデータベースは、モノリシックであるか、または複数の物理デバイスに分散されることができる。
【0047】
サーバデバイス202は、クラスタデータストレージ204との間でデータを送受信するように構成されることができる。この送信および取得は、それぞれ、SQLクエリまたは他のタイプのデータベースクエリ、およびそのようなクエリの出力の形式をとることができる。追加のテキスト、画像、ビデオ、および/またはオーディオも、含まれることができる。さらに、サーバデバイス202は、受信したデータをウェブページ表現に編成することができる。このような表現は、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)、またはその他の標準化されたまたは独自の形式などのマークアップ言語の形式をとることができる。さらに、サーバデバイス202は、Perl、Python、PHPハイパーテキストプリプロセッサ(PHP)、Active Server Pages(ASP)、JavaScript、などに限定されず、様々なタイプのコンピュータ化されたスクリプト言語を実行する性能を有することができる。これらの言語で記述されたコンピュータプログラムコードは、クライアントデバイスへのWebページの提供、ならびにWebページとのクライアントデバイスの相互作用を容易にすることができる。
【0048】
II.人工ニューラルネットワーク
ANNは、中央制御なしで個別に並列に動作する、多数の単純なユニットを組み合わせて複雑な問題を解決する計算モデルである。このモデルは、いくつかの点において動物の脳に似ている可能性があるが、ANNと脳の間の類似性は、せいぜい希薄である。現代のANNは、固定構造、決定論的な数学的学習プロセスを有し、一度に1つの問題を解決するように訓練されており、それらの生物学的対応物よりもはるかに小さい。
【0049】
A.例示的なANNアーキテクチャ
図3は、例示的な実施形態による、ANNアーキテクチャを示す。ANNは、隣接する層のノード間の接続で、いくつかの層に配置されたいくつかのノードとして表されることができる。例示的なANN300は、
図3に示される。ANN300は、フィードフォワード多層ニューラルネットワークを表すが、同様の構造および原理は、例えば、アクタークリティカルニューラルネットワーク、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、再帰型ニューラルネットワークにおいて使用される。
【0050】
とにかく、ANN300は、入力層304、隠れ層306、隠れ層308、および出力層310の4つの層で構成される。入力層304の3つのノードの各々は、初期入力値302からそれぞれX1、X2、およびX3を受信する。出力層310の2つのノードは、それぞれ、最終出力値312のためのY1およびY2を生成する。ANN300は、完全に接続されたネットワークであり、入力層304を除く各層のノードは、前の層におけるすべてのノードから入力を受信する。
【0051】
ノードのペア間の実線の矢印は、中間値が流れる接続を表し、各々がそれぞれの中間値に適用されるそれぞれの重量に関連付けられる。各ノードは、出力値を生成するように、その入力値およびそれらに関連する重量(例えば、0~1までの値)に対して動作を実行する。いくつかの場合において、この動作は、各入力値および関連する重量の積の内積和に関与することができる。活性化関数は、出力値を生成するように、内積和の結果に適用されることができる。他の動作は、可能である。
【0052】
例えば、ノードは、それぞれの重量が{w
1、w
2、…、w
n}のn個の接続で入力値{X
1、X
2、…、X
n}を受信した場合、内積和dは、次のように決定されることができ、
【数1】
式中、bは、ノード固有または層固有バイアスである。
【0053】
特に、ANN300の完全に接続された性質は、1つ以上の重量に値0を与えることによって、部分的に接続されたANNを効果的に表すように使用されることができる。同様に、バイアスを0に設定して、b項を削除することもできる。
【0054】
ロジスティック関数などの活性化関数は、dを0~1までの出力値yにマップするように使用されることができる。
【数2】
シグモイド関数、指数線形単位(ELU)、正規化線形単位(ReLU)、タンエイチ(tanh)関数などのロジスティック関数以外の関数は、代わりに使用されることができる。
【0055】
次に、yは、ノードの各出力接続で使用されることができ、それぞれの重量によって修正される。特に、ANN300において、入力値および重量は、最終出力値312が生成されるまで、左から右に各層のノードに適用される。ANN300が完全に訓練されている場合、最終出力値312は、ANN300が解決するように訓練されている問題に対する提案された解決である。意味のある、有用で、適度に正確な解決を取得するために、ANN300は、少なくともある程度の訓練を必要とする。
【0056】
B.訓練
ANNの訓練は、通常、何らかの形式の監視訓練データ、つまり、入力値と、望ましい、またはグラウンドトゥルースの出力値のセットをANNに提供することに関与する。ANN300の場合、この訓練データは、出力値とペアになったmセットの入力値を含むことができる。より正式には、訓練データは、次のように表されることができ、
【数3】
ここで、i=1…mであり、
【数4】
は、X
1,i、X
2,i、およびX
3,iの入力値のために必要な出力値である。
【0057】
訓練プロセスは、そのようなセットからの入力値をANN300に適用し、関連する出力値を生成することに関与する。誤差関数は、生成された出力値とグラウンドトゥルース出力値の間の誤差を評価するように使用される。この誤差関数は、差の合計、平均二乗誤差、またはその他のメトリックにすることができる。いくつかの場合において、誤差バリューは、mセットすべてに対して決定され、誤差関数は、これらの値の集計(平均など)の計算に関与する。
【0058】
誤差が決定されると、接続上の重量は、誤差を減らすように更新される。簡単に言うと、この更新プロセスでは、「良い」重量に報酬を与え、「悪い」重量にペナルティを課すべきである。したがって、更新は、訓練データの将来の反復のための誤差が低い結果となるように、ANN300を通して誤差のための「非難」を分散するべきである。
【0059】
訓練プロセスは、重量が収束するまで、訓練データをANN300に適用し続ける。収束は、誤差がしきい値未満であるか、または訓練の連続する反復間で誤差の変化が十分に小さいときに、発生する。この時点で、ANN300は、「訓練された」であると言われ、未知の出力値を予測するために新しい入力値のセットに適用されることができる。
【0060】
ANNのためのほとんどの訓練手法は、何らかの形式の逆行性伝播(backpropagation)を活用する。逆行性伝播は、ANN300を通して、誤差を一度に1層ずつ右から左に分散する。したがって、隠れ層308と出力層310との間の接続の重量が、第1に更新され、隠れ層306と隠れ層308との間の接続の重量が、第2に更新され、以下同様である。この更新は、活性化関数の導関数に基づいている。
【0061】
図4Aおよび
図4Bは、例示的な実施形態による、ANNの訓練を示す。誤差決定および逆行性伝播をさらに説明するために、実際のプロセスにおける例を見ると役に立つ。しかしながら、逆行性伝播は、最も単純なANNを除いて、表現するのが非常に複雑になる。したがって、
図4Aは、逆行性伝播の実例を提供するために、非常に単純なANN400を紹介する。
【表1】
【0062】
ANN400は、入力層404、隠れ層406、および出力層408の3つの層で構成され、各々が、2つのノードを有する。初期入力値402は、入力層404に提供され、出力層408は、最終出力値410を生成する。重量は、各接続に割り当てられている。また、バイアスb1=0.35は、隠れ層406の各ノードの正味入力に適用され、バイアスb2=0.60は、出力層408の各ノードの正味入力に適用される。明確にするために、表1は、重量を、これらの重量が適用される接続を持つノードのペアにマップする。例として、w2は、ノードI2とH1との間の接続に適用され、w7は、ノードH1とO2との間の接続に適用される。
【0063】
デモンストレーションの目的のために、初期入力値は、X
1=0.05およびX
2=0.10に設定され、所望の出力値は、
【数5】
に設定される。したがって、ANN400を訓練することの目的は、X
1=0.05およびX
2=0.10のときに、最終出力値410が
【数6】
に十分に近くなるまで、フィードフォワードおよび逆行性伝播の反復のいくらかの回数にわたって重量を更新することである。単一の訓練データセットを使用すると、そのセットだけでANN400が効果的に訓練されることに注意されたい。複数の訓練データセットが使用されている場合、ANN400は、それらのセットに従って訓練される。
【0064】
1.例示的なフィードフォワードパス
フィードフォワードパスを開始するために、隠れ層406における各ノードへの正味入力は、計算される。正味入力から、これらのノードの出力は、活性化関数を適用することによって見つけられることができる。ノードH1のために、正味入力netH
1は、次のとおりである。
【数7】
【0065】
この入力に活性化関数(ここでは、ロジスティック関数)を適用することは、ノードH1、outH
1の出力が、次のとおりであると決定する。
【数8】
【0066】
ノードH2の場合と同じ手順に従うと、出力outH
2は、0.596884378になる。フィードフォワード反復における次のステップは、出力層408のノードのために同じ計算を実行することである。例えば、ノードO1への正味入力、net
O1は、次のとおりである。
【数9】
【0067】
したがって、ノードO1の出力out
O1は、次のとおりである。
【数10】
【0068】
ノードO2の場合と同じ手順に従うと、出力out
O1は、0.772928465になる。この時点で、全誤差Δは、誤差関数に基づいて決定されることができる。この場合、誤差関数は、出力層408におけるノードのための二乗誤差の合計であることができる。言い換えると、次のとおりである。
【数11】
【0069】
各項における乗法定数1/2は、逆行性伝播中の微分を単純化するために使用される。全体的な結果は、やはり学習率によってスケーリングされるため、この定数は、訓練に否定的影響力を与えない。とにかく、この時点で、フィードフォワード反復は、完了し、逆行性伝播は、開始する。
【0070】
2.逆行性伝播
上記のように、逆行性伝播の目標は、Δを使用して重量を更新し、将来のフィードフォワード反復における誤差が少なくなるようにすることである。例として、重量w
5を考える。目標は、w
5における変化が、Δにどの程度影響するか決定することに関与する。これは、偏導関数
【数12】
として表現されることができる。連鎖律を使用すると、この用語は、次のように展開されることができる。
【数13】
【0071】
このように、w5への変化のΔに対する効果は、(i)outO1への変化のΔに対する効果、(ii)netO1への変化のoutO1に対する効果、および(iii)w5への変化のnetO1に対する効果の積と同等である。これらの乗法項の各々は、独立して決定されることができる。直感的に、このプロセスは、netO1に対するw5の影響力、outO1に対するnetO1の影響力、およびΔに対するoutO1の影響力を分離するものとして考えることができる。
【0072】
【数14】
で始まる、Δの式は、次のとおりである。
【数15】
【0073】
out
O1に関連する偏導関数を取るときに、out
O1への変更が、この項に影響を与えないので、out
O2含む用語は、事実上定数である。したがって:
【数16】
【0074】
【数17】
の場合、方程式5からのout
O1の式は、次のとおりである。
【数18】
【0075】
したがって、ロジスティック関数の導関数をとると、次のようになる。
【数19】
【0076】
【数20】
の場合、方程式6からのnet
O1の式は、次のとおりである。
【数21】
【0077】
Δの式と同様に、この式の導関数を取ることが、定数として右側の2つの項を扱うことに関与するのは、w
5が、これらの項において表れないからである。したがって、次のとおりである。
【数22】
【0078】
これらの3つの偏導関数項は、方程式9を解くように、組み合わされることができる。
【数23】
【0079】
その後、この値は、w
5から減算されることができる。多くの場合、ゲインは、0<α≦1で、ANNが誤差に如何に積極的に応答するかを制御するように、
【数24】
に適用される。α=0.5と仮定すると、完全な式は、次のとおりである。
【数25】
【0080】
このプロセスは、出力層408に供給される他の重量に対して繰り返されることができる。結果は、次のとおりである。
【数26】
【0081】
逆行性伝播の最後にすべての重量の更新が決定されるまで、重量は更新されないことに注意されたい。その後、すべての重量は、次のフィードフォワード反復の前に更新される。
【0082】
次に、残りの重量、w
1、w
2、w
3、およびw
4の更新は、算出される。これは、隠れ層406への逆行性伝播パスを継続することに関与する。W
1を検討し、次のとおり、上記と同様の導出を使用する。
【数27】
【0083】
しかしながら、出力層408と隠れ層406との間の逆行性伝播の1つの違いは、隠れ層406における各ノードが、出力層408におけるすべてのノードの誤差に寄与することである。したがって:
【数28】
【0084】
【0085】
【数31】
に関して、net
O1におけるΔ
O1に対する変化の影響力が、net
O1におけるΔに対する変化の影響力と同じであるため、方程式11および13に対して上記で実行された計算は、次のとおり再利用されることができる。
【数32】
【0086】
【数33】
に関して、net
o1は、次のように表現されることができる。
【数34】
【0087】
【0088】
したがって、方程式21は、次のように解かれることができる。
【数36】
【0089】
【数37】
に対して同様の手順に従うと、次のとおりの結果になる。
【数38】
【0090】
その結果、方程式式20は、次のように解かれることができる。
【数39】
【0091】
これはまた、方程式19の第1項を解く。次に、ノードH1は、out
H1とnet
H1を関連付けるように、ロジスティック関数を活性化関数として使用するため、方程式19の第2項、
【数40】
は、次のように決定されることができる。
【数41】
【0092】
その後、net
H1は、次のように表現されることができる。
【数42】
【0093】
したがって、方程式19の第3項は、次のとおりである。
【数43】
【0094】
方程式19の3つの項を組み合わせると、結果は、次のとおりである。
【数44】
【0095】
これにより、w
1は、次のように更新されることができる。
【数45】
【0096】
このプロセスは、隠れ層406に供給される他の重量に対して繰り返されることができる。結果は、次のとおりである。
【数46】
【0097】
この時点で、逆行性伝播の反復は、終了し、すべての重量は、更新されている。
図4Bは、これらの更新された重量を持つANN400を示し、これらの値は、便宜上、小数点以下4桁に丸められている。ANN400は、後続のフィードフォワードおよび逆行性伝播の反復を通じて訓練されるのを継続することができる。例えば、上記で実行された反復は、全誤差Δを0.298371109~0.291027924に減少させる。これは小さな改善のように見ることができるが、数千回を超えるフィードフォワードおよび逆行性伝播の反復は、誤差を0.0001未満に減少させることができる。その時点で、Y
1およびY
2の値は、それぞれ、0.01および0.99の目標値に近くなる。
【0098】
いくつかの場合において、システムのハイパーパラメータ(例えば、バイアスb1およびb2ならびに学習率α)が調整された場合、訓練の同等量は、より少ない反復を用いて達成されることができる。例えば、学習率を1.0に近づけて設定することは、誤差率がより急速に減少される結果となることができる。追加的に、バイアスは、重量が更新されるやり方と同様の方式において、学習プロセスの一部として更新されることができる。
【0099】
とにかく、ANN400は、単純化された例にすぎない。恣意的に複雑なANNは、特定の問題または目標に対処するように調整された入力層および出力層の各々における多くのノードで開発されることができる。さらに、複数の隠れ層が、使用されることができ、任意の数のノードは、各隠れ層に含めることができる。
【0100】
III.生産スケジューリングのための深層強化学習の利用
生産施設での生産のスケジューリングなど、決定問題の不確実性を表現する1つの方式は、マルコフ決定過程(MDP)としてである。マルコフ決定過程は、環境の将来の状態の進化/変化は環境の現在の状態にのみ依存するというマルコフの仮定に依存することができる。マルコフ決定過程としての定式化は、機械学習手法を使用して意思決定問題を解決し、計画およびスケジューリングの問題、特に強化学習手法を解決するのに役立つ。
【0101】
図5は、例示的な実施形態による、ANNの強化学習を示す
図500を示す。強化学習は、環境についての情報を表す環境の「状態」を、環境において実行して後で状態を変更することができる「アクション」にマッピングすることができる計算エージェントを利用する。計算エージェントは、環境についての状態情報を受信し、状態情報に基づいて1つ以上のアクションをマッピングまたは決定し、アクションのスケジュールなどのアクション(複数可)についての情報を環境に提供する手順を繰り返し実行することができる。その後、アクションは、環境内で実行されて、環境を変更する可能性がある。アクションが実行されると、計算エージェントは、変更される可能性のある環境についての状態情報を受信した後、手順を繰り返すことができる。
【0102】
図500において、計算エージェントは、エージェント510として示され、環境は、環境520として示される。環境520における生産施設の計画およびスケジューリング問題の場合、エージェント510は、生産施設のためのスケジューリングアルゴリズムを具体化することができる。時間tで、エージェント510は、環境520についての状態S
tを受信することができる。状態S
tは、状態情報を含むことができ、環境520については、生産施設で利用可能な投入材料および製品の在庫レベル、生産施設によって生産された製品のための需要情報、1つ以上の既存の/従前のスケジュール、および/または生産施設のためのスケジュールを開発することに関連する追加情報を含むことができる。
【0103】
その後、エージェント510は、状態S
tを、
図5にアクションA
tとして示される、1つ以上のアクションにマッピングすることができる。その後、エージェント510は、環境520にアクションA
tを提供することができる。アクションA
tは、生産施設(すなわち、何を生産するか、いつ生産するか、どれだけ、など)のためのスケジューリング決定を具現化することができる、1つ以上の生産アクションに関与することができる。いくつかの例において、アクションA
tは、時間の経過とともに生産施設で実行されるアクションのスケジュールの一部として提供されることができる。アクションA
tは、時間tの間に環境520における生産施設によって実行されることができる。アクションA
tを実行するために、生産施設は、アクションA
tの指示に従って製品を生成するように、利用可能な投入材料を使用することができる。
【0104】
アクションA
tを実行した後、次の時間ステップt+1で環境520の状態S
t+1は、エージェント510に提供されることができる。少なくともエージェント510が訓練されている間、環境520の状態S
t+1は、アクションA
tが実行された後に決定される報酬R
tによって伴われる(またはおそらく含む)ことができ、すなわち、報酬R
tは、アクションA
tへの対応である。報酬R
tは、報酬または罰を表明する1つの以上のスカラー値であることができる。いくつかの例において、報酬R
tは、報酬またはバリュー関数によって画定されることができ、報酬またはバリュー関数は、最適化ドメインにおける目的関数と同等であり得る。
図500に示す例において、報酬関数は、生産施設によって生産された製品の経済的バリューを表すことができ、正の報酬バリューが、利益またはその他の有利な経済的バリューを示すことができ、負の報酬値は、誤差またはその他の不利な経済的バリューを示すことができる。
【0105】
エージェント510は、報酬Rtなどの報酬および罰によって強化された自主的な探索によって環境520に提供するアクションを学習するように、環境520と相互作用することができる。すなわち、エージェント510は、報酬Rtを最大化するように訓練されることができ、報酬Rtは、有利なアクションを積極的に強化し、不利なアクションを否定的に強化するように作用する。
【0106】
図6は、例示的な実施形態による、例示的なスケジューリング問題を示す。例示的なスケジューリング問題は、エージェント510などのエージェントが、入力製品要求に基づいて、2つの製品-製品Aおよび製品B-のうちの1つを生産するように、生産施設をスケジュールすることに関与する。生産施設は、1単位時間内に単一の製品要求または注文のみを実行することができる。この例において、単位時間は、1日であるため、任意の日に、生産施設は、1単位の製品Aまたは1単位の製品Bのいずれかを生産することができ、各製品要求は、1単位の製品Aまたは1単位の製品Bの要求である。この例において、製品Aの製品要求を受信する確率は、αであり、製品Bの製品要求を受信する確率は、1-αであり、ここで、0≦α≦1である。
【0107】
+1の報酬は、正しい製品の出荷に対して生成され、-1の報酬は、誤った製品の出荷に対して生成される。すなわち、特定の日に生産施設によって生産された製品(製品Aまたは製品Bのいずれか)が、特定の日の製品要求によって要求された製品と同じである場合、正しい製品が生産され、そうでないと、誤った製品が生成される。この例において、正しい製品が、製品要求に従って生産施設から配達されると想定されるため、正しい製品の在庫は、増加しない。また、誤った製品が、生産施設から配達されないと想定されるため、誤った製品の在庫は、増加する。
【0108】
この例において、環境の状態は、製品Aおよび製品Bの生産施設での在庫を表す1対の数字である。例えば、状態(8,6)は、生産施設に8ユニットの製品Aおよび6ユニットの製品Aの在庫があることを示す。この例において、時間t=0日目の時点で、環境/生産施設の初期状態は、s0=(0,0)であり、すなわち、時間t=0の時点で、生産施設の在庫に製品はない。
【0109】
グラフ600は、初期状態s0t=0日目から状態s1t=1日目への遷移を示す。状態s0=(0,0)で、エージェントは、製品Aの生産をスケジュールするアクション602、または製品Bの生産をスケジュールするアクション604の2つのアクションのいずれかを実行することができる。エージェントがアクション602を実行して製品Aを生産する場合、状態s1への2つの可能な遷移、製品Aが正しい製品であるため、製品Aが要求され、エージェントが+1の報酬を受信する遷移606a、および製品Bが誤った製品であるため、製品Bが要求され、エージェントが-1の報酬を受信する遷移606bのうちの1つがある。同様に、エージェントがアクション604を実行して製品Bを生成する場合、状態s1への2つの可能な遷移、製品Aが誤った製品であるため、製品Aが要求され、エージェントが-1の報酬を受信する遷移608a、および製品Bが正しい製品であるため、製品Bが要求され、エージェントが+1の報酬を受信する遷移608bのうちの1つがある。エージェントが報酬を最大化するのを試みているので、正の報酬は、実際の報酬として機能し、負の報酬は、罰として機能することができる。
【0110】
表610は、この例における、t=0日目での初期状態s0~t=1日目での状態s1に遷移させることによって可能な4つの成果の可能性をまとめたものである。表610の第1行は、エージェントがアクション602を実行して製品Aを生産する場合、t=0日目で要求された製品が製品Aになる確率αがあることを示す。t=0日目で要求された製品が製品Aである場合、エージェントは、正しい製品を生産することで報酬+1を受信し、正しい製品Aが生産施設から配達されるように、t=1日目での結果の状態s1は、(0,0)になる。
【0111】
表610の第2行は、エージェントがアクション602を実行して製品Aを生産する場合、t=0日目で要求された製品が製品Bになる確率1-αがあることを示す。t=0日目で要求された製品が製品Bである場合、エージェントは、誤った製品を生産することで報酬-1を受信し、誤った製品Aが生産施設に留まるように、t=1日目での結果の状態s1は、(1,0)になる。
【0112】
表610の第3行は、エージェントがアクション604を実行して製品Bを生産する場合、t=0日目で要求された製品が製品Aになる確率αがあることを示す。t=0日目について要求された製品が製品Aである場合、エージェントは、誤った製品を生産することで報酬-1を受信し、誤った製品Bが生産施設に留まるように、t=1日目での結果の状態s1は、(0,1)になる。
【0113】
表610の第4行は、エージェントがアクション604を実行して製品Bを生産する場合、t=0日目で要求された製品が製品Aになる確率1-αがあることを示す。t=0日目で要求された製品が製品Bである場合、エージェントは、正しい製品を生産することで報酬+1を受信し、正しい製品Aが生産施設から配達されるように、t=1日目での結果の状態s1は、(0,0)になる。
【0114】
図7は、例示的な実施形態による、エージェント710を含むシステム700を示す。エージェント710は、生産施設760として表される環境の状態を表す様々な入力に基づいて、生産施設760のためのスケジュール750を生成するように機能する計算エージェントであることができる。生産施設760の状態は、生産施設760で生産された製品に対する製品要求720、製品および材料在庫情報730、ならびに製造、機器状態、ビジネスインテリジェンス、現在の市場価格データ、および市場予測についての情報を含むことができるが、これらに限定されない、追加情報740に基づくことができる。生産施設760は、要求された製品770などの製品を生産するように、投入物として投入材料762を受信することができる。いくつかの例において、エージェント710は、製品要求720を満たすために生産施設760の状態に基づいて、スケジュール750によって表される、アクションを決定する強化学習を使用して訓練された1つ以上のANNを含むことができる。
【0115】
図8は、例示的な実施形態による、生産施設760を含む、システム700のモデル800のブロック図である。モデル800は、生産施設760および製品要求720を含む、システム700の態様を表すことができる。いくつかの例において、モデル800は、生産施設760および/または製品要求720をモデル化するように、エージェント710などの計算エージェントによって使用されることができる。他の例において、モデル800は、MILPベースのスケジューリングシステムのための生産施設760および/または製品要求720をモデル化するように、使用されることができる。
【0116】
この例において、生産施設760のモデル800は、反応器810を使用して製品850として最大4つの異なるグレードのLDPEの生産を可能にし、製品850は、製品A、製品B、製品C、および製品Dの製品として本明細書で記載される。より具体的には、モデル800は、製品A、B、C、およびDの製品要求の注文書によって製品要求720を表すことができ、注文書は、固定された統計プロファイルに従って生成されることができ、その日の新しい製品要求720で毎日更新されることができる。例えば、注文書は、固定統計プロファイルに基づく1つ以上のモンテカルロ技術、すなわち、固定統計プロファイルに基づいて製品要求を生成するように、乱数/ランダムサンプリングに依存する技術を使用して生成されることができる。
【0117】
反応器810は、製品850を生成する投入物として、新鮮な投入材料842および触媒844をとることができる。反応器810はまた、リサイクル可能な投入材料840を圧縮して熱交換器830に渡すことができる、圧縮機820に渡されるリサイクル可能な投入材料840を放出することができる。熱交換器830を通過した後、リサイクル可能な投入材料840は、新鮮な投入材料842と組み合わされ、反応器810への投入材料として提供されることができる。
【0118】
反応器810は、継続的に稼働することができるが、タイプ変更誤差のためにタイプ変更誤差が生じ、需要および機器利用可能性において不確実になる可能性がある。タイプ変更誤差は、反応器810が「タイプ変更」または処理温度の比較的大きな変更を行うように指示されたときに発生する。処理温度におけるタイプ変更は、反応器810が、格外の材料、すなわち、製品仕様の範囲外であり、プライム製品ほど高い価格で販売することができない材料を生成し、それによって、タイプ変更のために(プライム製品の生成と比較して)誤差を生じる可能性がある。このようなタイプ変更誤差は、2~100%の範囲であり得る。タイプ変更誤差は、生産温度および組成が類似している製品との間で移動することによって、最小限に抑えることができる。
【0119】
モデル800は、不利なタイプ変更が発生した各時間ステップで、大規模な格外生産およびスケジュールされたプライム製品よりも少ない生産量を産出することによって、タイプ変更誤差の表現を含むことができる。モデル800はまた、一定期間中にシャットダウンする生産施設760を有するリスクを表す可能性があり、その時点で、スケジュール750は、一定期間から利用可能な新製品がない状態で新たに作り直されなければならない。モデル800は、遅延配達ペナルティの表現を含めることもでき、例えば、単位時間あたりの価格の所定割合のペナルティ、例示的な遅延ペナルティは、1日あたりの遅延で3%、1日あたりの遅延で10%、1週間あたりの遅延で8%、および1か月あたりの遅延で20%のペナルティを含むが、これらに限定されない。いくつかの例において、モデル800は、タイプ変更誤差、生産施設リスク、遅延配達ペナルティの他の表現を使用することができ、および/または他のペナルティおよび/または報酬をモデル化することができる。
【0120】
いくつかの例において、モデル800は、生産施設760の状態を生成するための1つ以上のモンテカルロ技術を含むことができ、生産施設の各モンテカルロ生成状態は、特定時間における生産施設で利用可能な製品850および/または投入材料840、842在庫を表し、例えば、モンテカルロ生成状態は、製品850および投入材料840、842の初期在庫を表すことができ、モンテカルロ生成状態は、生産施設のシャットダウンまたは生産施設の再開などの特定のイベント後の製品850および投入材料840、842の在庫を表すことができる。
【0121】
いくつかの例において、モデル800は、複数の生産ラインを有する生産施設を表すことができる。これらの例のいくつかにおいて、複数の生産ラインは、並行して稼働することできる。これらの例のいくつかにおいて、複数の生産ラインは、少なくとも1つの共通の製品を共有する2つ以上の複数の生産ラインを含むことができる。これらの例において、エージェント710は、複数の生産ラインの、すべてではないにしても、いくつかのスケジュールを提供することができる。これらの例のいくつかにおいて、エージェント710は、1)同じ日に共通の製品を生産することから防止する、生産ラインの一部またはすべてが、共通のユニット動作、リソース、および/または操作機器を共有することができる、2)生産ラインの一部またはすべてが、これらの生産ラインでの生産を制限する共通のユーティリティを共有することができる、および(3)生産ラインの一部またはすべてが、地理的に分散されることができる、などの複数の生産ラインに関連する運用上の制約の原因となるスケジュールを提供することができるが、これらに限定されない。
【0122】
いくつかの例において、モデル800は、一連の生産動作で構成される生産施設を表すことができる。例えば、生産動作は、顧客に潜在的に配達されるように、その製品が保管されることができ、および/または追加製品にさらに処理するために「下流」生産動作に遷移されることができる、「上流」生産動作を含むことができる。より具体的な例として、上流生産動作は、下流包装ラインが顧客への配達に使用される包装によって区別される場所で包装することができる、製品を生産することがでる。これらの例のいくつかにおいて、生産動作は、地理的に分散されることができる。
【0123】
いくつかの例において、モデル800は、複数の製品を同時に生産する生産施設を表すことができる。その後、エージェント710は、各製品が時間間隔ごとに(例えば、毎時、毎日、毎週、2週間ごと、毎月、四半期ごと、毎年)どれだけ生産されるかを示すスケジュールを決定することができる。これらの例において、エージェント710は、ある時間間隔で生産された各製品の量、例えば、量の比率、最大量、および/または最小量に関連する制約に基づいて、および/または複数の生産ラインがある生産施設に存在し得る共有リソースによって、これらのスケジュールを決定することができる。
【0124】
いくつかの例において、モデル800は、複数の生産ラインを有し、一連の生産動作から構成され、および/または複数の製品を同時に生産することの組み合わせを有する生産施設を表すことができる。これらの例のいくつかにおいて、上流生産施設および/または動作は、下流施設および/または動作に供給することができる。これらの例のいくつかにおいて、製品の中間ストレージは、生産施設および/または他の生産ユニット間で使用されることができる。これらの例のいくつかにおいて、下流ユニットは、同時に複数の製品を生産することができ、そのうちのいくつかは、処理のために上流動作にリサイクルされて戻される副産物を表し得る。これらの例のいくつかにおいて、生産施設および/または動作は、地理的に分散されることができる。これらの例において、エージェント710は、各動作から時間を通して各製品の生産量を決定することができる。
【0125】
図9は、例示的な実施形態による、システム700における生産施設760のためのスケジュール900を示す。スケジュール900は、H=7日間の後退する「変更不可能な」または固定された計画期間に基づく。7日間の変更不可能な計画期間(UPH)は、生産停止を除いて、スケジュールが7日間の間で変更することができないことを意味する。例えば、7日間の変更不可能な計画期間で1月1日から開始するスケジュールは、1月1日~1月8日まで修正することができない。スケジュール900は、製品850が24時間の生産および/または硬化時間を有すると想定されるため、毎日(24時間)の時間間隔に基づく。生産施設760の閉鎖につながる生産施設リスクの場合において、スケジュール900は、無効になるであろう。
【0126】
図9は、スケジュール900を表すのに、ガントチャートの行が、生産施設760によって生産されている製品850の製品を表し、ガントチャートの列が、スケジュール900の日数を表す、ガントチャートを使用する。スケジュール900は、0日目から始まり、16日目まで実行する。
図9は、7日目に垂直の破線の変更不可能な計画期間タイムライン952を使用して、0日目から7日間の変更不可能な計画期間950を示す。
【0127】
スケジュール900は、生産施設760のための生産アクションを矩形として表す。例えば、アクション(A)910は、製品Aが0日目の初めに始まり、1日目の初めで終わって生産されることを表し、アクション912は、製品Aが5日目の初めに始まり、11日目の初めで終わって生産されることを表し、すなわち、製品Aは、0日目と5~10日目に生産される。スケジュール900は、製品Bが1つのアクション920のみ有することを示し、これは、製品Bが2日目にのみ生産されることを示す。スケジュール900は、製品Cが1つのアクション930のみを有すること示し、これは、製品Cが3日目とおよび4日目に生産されることを示す。スケジュール900は、製品Dが2つのアクション940、942を有することを示し、アクション940は、製品Dが1日目に生産されることを示し、アクション942は、製品Dが11~15日目に生産されることを示す。生産施設760および/または他の生産施設のための他の多くのスケジュールも、同様に可能である。
【0128】
A.強化学習モデルおよびREINFORCEアルゴリズム
図10は、例示的な実施形態による、システム700のエージェント710の図である。エージェント710は、ニューラルネットワークモデルが訓練され、および/または他の方法でモデル800を使用することができる、生産施設760のためのスケジュール900などのスケジュールを生成するように、ニューラルネットワークモデルを具体化することができる。特に、エージェント710は、生産アクション、例えば、所与の時間ステップtで環境状態s
tに基づいてモデル800を使用して、生産施設760でスケジュールする生産アクションを、スケジュールすることができるREINFORCEアルゴリズムを具体化することができる。
【0129】
REINFORCEアルゴリズムの陳述は、以下の表2に見ることができる。
【表2】
【0130】
REINFORCEアルゴリズムによって利用される方程式34~40は、次のとおりである。
【数47】
【0131】
図10は、バリューANN1010とポリシーANN1020とを含むANN1000があるエージェント710を示す。REINFORCEアルゴリズムの意思決定は、バリューANN1010およびポリシーANN1020などの1つ以上のANNによってモデル化されることができる。REINFORCEアルゴリズムを具体化することにおいて、バリューANN1010およびポリシーANN1020は、連携して働く。例えば、バリューANN1010は、特定状態の期待される報酬を予測するREINFORCEアルゴリズムのバリュー関数を表すことができ、ポリシーANN1020は、特定状態で実行される1つ以上のアクションを選択するREINFORCEアルゴリズムのポリシー関数を表すことができる。
【0132】
図10は、バリューANN1010およびポリシーANN1020の両方が、2つ以上の隠れ層と、各層に対して64以上のノード、例えば、層ごとに128ノードのある4つの隠れ層を有することができることを示す。バリューANN1010および/またはポリシーANN1020は、指数線形単位活性化関数を使用し、出力の生成においてソフトマックス(正規化指数)関数を使用することができる。
【0133】
両方のバリューANN1010およびポリシーANN1020は、時刻tで生産施設760および/またはモデル800の状態を表す状態st1030を受信することができる。状態st1030は、エージェント710が、時刻tでのためのスケジューリング決定を行う、生産施設760の各製品のための在庫残高を含めることができる。いくつかの例において、状態st1030の負の値は、時間tで生産施設760に期待される在庫よりも多くの需要があることを示し、状態st1030の正の状態値は、時間tに需要生産施設760より多くの期待される在庫があることを示す。いくつかの例において、状態st1030における値は、正規化される。
【0134】
バリューANN1010は、1つ以上のバリュー関数出力1040を出力するように、状態st1030上で動作することができ、ポリシーANN1020は、1つ以上のポリシー関数出力1050を出力するように、状態st1030上で動作することができる。バリュー関数出力1040は、生産施設760で生産アクションをとるための1つ以上の報酬および/または罰を推定することができる。ポリシー関数出力1050は、生産施設760で取られる可能性のある生産アクションAのスケジューリング情報を含むことができる。
【0135】
バリューANN1010は、ポリシーANN1020を使用してエージェント710によって生成されたポリシー関数出力1050に基づくスケジュールを実装するために受信された報酬に基づいて更新されることができる。例えば、バリューANN1010は、時間tで取得された実際の報酬と、バリュー関数出力1040の一部として生成された時間tのために推定された報酬との間の差に基づいて更新されることができる。
【0136】
REINFORCEアルゴリズムは、様々な「エピソード」または時間間隔(例えば、1時間ごと、6時間ごと、毎日、2日ごと)でサンプリングされた分布を産出して、各エピソードのためのスケジュールを生成するように、1つ以上の時間ステップにわたるポリシーANN1020を通した状態stの連続する順方向伝播を使用して、生産施設760および/またはモデル800のスケジュールを構築することができる。シミュレーションの各時間ステップtについて、エピソードの終わりに訓練するために、報酬Rtがフィードバックとしてエージェント710に返される。
【0137】
REINFORCEアルゴリズムは、エピソード全体を通して時間的に前進する環境を考慮することができる。各エピソードで、REINFORCEアルゴリズムを具体化するエージェント710は、状態st1030などの計画期間への各時間ステップで環境から受信する状態情報に基づいてスケジュールを構築することができる。このスケジュールは、生産施設760で実行されることができ、および/またはモデル800を使用してシミュレーションで実行されることができる。
【0138】
エピソードが完了した後、方程式34は、エピソード中に取得した報酬を更新する。方程式35は、期待される報酬と実際の報酬との間の時間的差分(TD)誤差を計算する。方程式36は、ポリシー関数のための誤差関数である。追加の調査を促進するために、REINFORCEアルゴリズムは、ポリシー関数の誤差関数でエントロピー項Hを使用することができ、ここで、エントロピー項Hは、方程式37で計算され、ポリシーANN1020の重量とバイアスの更新中に方程式38によって適用される。エピソードの終わりに、エージェント710のREINFORCEアルゴリズムは、バリュー関数の誤差関数に関連する導関数を取り、方程式39および方程式40に示されるように、逆行性伝播アルゴリズムを使用してバリューANN1010の重量およびバイアスを更新することによって更新されることができる。
【0139】
ポリシーANN1020は、各状態のための可能なアクションにわたる確率分布を産出する確率的ポリシー関数を表すことができる。REINFORCEアルゴリズムは、スケジュール900の変更不可能な計画期間950など、計画期間中に決定を下すように、ポリシーANN1020を使用することができる。計画期間中、ポリシーANN1020は、新しい状態を監視するという利益を有しない。
【0140】
このような計画期間を取り扱うために、(1)REINFORCEアルゴリズムおよびポリシーANN 1020を具体化するエージェント710が、計画期間のための可能なスケジュールにわたってサンプリングすることができる、または(2)エージェント710が、将来の状態の進化のモデルを考慮しながら、すべての製品を繰り返しサンプリングすることができる、少なくとも2つのオプションがある。オプション(1)は、可能なスケジュールの数が指数関数的に増加するために、スケジューリングに適用するのが難しい場合があり、したがって、新製品が追加され、または計画期間が増加されると、アクションスペースは、激増する。例えば、4つの製品および7日間の計画期間がある生産施設の場合、サンプルを取るのに16,284の可能なスケジュールが存在する。そのため、オプション(1)は、好適なスケジュールを見つける前に、多くのサンプルスケジュールを作ることをもたらし得る。
【0141】
スケジューリング中にオプション(2)を実行するために、エージェント710は、時間tで利用可能な情報が与えられた場合に、1つ以上の将来の状態st+1、st+2...、例えば、状態st1030を予測することができる。エージェント710は、将来の状態(複数可)を予測することができ、なぜなら、時間の経過とともにスケジュールを構築しながら現在の状態をポリシーANN1020に繰り返し渡すと、ポリシーANN1020が同じポリシー関数出力1050を繰り返し提供する、例えば、アクション全体で同じ確率分布を繰り返し提供することをもたらすことができるからである。
【0142】
将来の状態s
t+1を決定するために、エージェント710は、在庫残高のある第一原理モデルを使用することができ、すなわち、時間t+1での製品pの在庫、I
it+1は、時間tでの在庫、I
itに時間tでの製品pの推定された生産量、
【数48】
から、時間tでの製品pの売上、s
itlnを引いたものと等しくなることができる。すなわち、エージェント710は、在庫残高
【数49】
を計算することができる。利用可能な製品要求(例えば、製品要求720)および/または計画された生産上のデータがある、この在庫残高推定値I
it+1は、状態s
t+1の推定された在庫残高I
it+を生成するのに十分なデータをエージェント710に提供することができる。
【0143】
図11は、例示的な実施形態による、アクション確率分布1110を生成するエージェント710を示す
図1100を示す。ポリシー関数出力1050の一部としてアクション確率分布1110を生成するために、エージェント710は、受信状態s
t1030を受信し、状態s
t1030をANN1000に提供することができる。ANN1000のポリシーANN1020は、状態s
tについてポリシー関数出力1050を提供するように、状態s
t1030上で動作することができる。
【0144】
図1100は、ポリシー関数出力1050が、アクション確率分布1110など、生産施設760で取られる可能性のある生産アクションAのセットにわたる1つ以上の確率分布を含むことができることを示す。
図11は、アクション確率分布1110が、状態s
t 1030に基づいて、エージェント710が生産施設760に提供することができる4つのアクションの各々のための確率を含むことを示す。状態s
tが与えられると、ポリシーANN1020は、製品Aをスケジュールするアクションが、0.8の確率で生産施設760に提供されるべきであり、製品Bをスケジュールするアクションが、0.05の確率で生産施設760に提供されるべきであり、製品Cをスケジュールするアクションが、0.1の確率で生産施設760に提供されるべきであり、および製品Dをスケジュールするためのアクションは、0.05の確率で生産施設760に提供されるべきであることを示す。
【0145】
アクション確率分布1110などのポリシー関数出力1050の確率分布(複数可)は、スケジュールにおける時間tで製品(複数可)を作るための1つ以上のアクションを産出するように、サンプリングされ、および/または選択されることができる。いくつかの例において、アクション確率分布1110は、スケジュールのために1つ以上のアクションを取得するように、ランダムにサンプリングされることができる。いくつかの例において、確率分布におけるN(N>0)の最も確率の高い生成アクションa1、a2...aNは、一度に最大N個の異なる製品を作るように、選択されることができる。より具体的な例として、サンプリングアクション確率分布1110についてN=1の場合、その後、最も確率の高い生産アクションがサンプリングされ、および/または選択され、この例では、最も確率の高い生産アクションは、(0.8の確率を有する)製品Aを生産するアクションであるため、製品Aを生産するアクションが時間tのスケジュールに追加される。アクション確率分布からアクションをサンプリングおよび/または選択するための他の技術も、可能である。
【0146】
図12は、例示的な実施形態による、アクション確率分布1210に基づいてスケジュール1230を生成するエージェント710を示す
図1200を示す。エージェント710において具体化されたREINFORCEアルゴリズムが時間とともに進行するにつれて、複数のアクション確率分布1210は、時間t
0~t
1の範囲で取得されることができる。遷移1220によって示されるように、エージェント710は、時間t
0~t
1について、アクション確率分布1210からアクションをサンプリングおよび/または選択することができる。時間t
0~t
1について、アクション確率分布1210からアクションをサンプリングおよび/または選択した後、エージェント710は、アクション確率分布1210からアクションをサンプリングおよび/または選択することを含む、生産施設760のためのスケジュール1230を生成することができる。
【0147】
いくつかの例において、ポリシーANN1020によって表されるポリシー関数によって記載される特定のアクションのための確率分布は、修正されることができる。例えば、モデル800は、生産施設760に存在し得る生産制約を表すことができるため、ポリシーANN1020によって学習されたポリシーは、モデル800との直接の相互作用に関与することができる。いくつかの例において、ポリシーANN1020によって表されるポリシー関数の確率分布は、モデル800の制約に違反する生産アクションの確率がゼロ確率を有することを示すように修正されることができ、それによって、ポリシーANN1020のアクションスペースを許容可能なアクションのみに制限する。ポリシーANN1020を許容可能なアクションのみに制限するように確率分布を修正することは、ポリシーANN1020の訓練をスピードアップすることができ、エージェント710の動作中に制約に違反しない可能性を高めることができる。
【0148】
ポリシー関数によって記載されるアクションに制約が存在し得るのと同様に、バリューANN1010によって表されるバリュー関数によって記載される特定状態は、運用目標または生産施設760の物理的制限によって禁止されることができる。これらの禁止された状態は、訓練中に禁止された状態に対して返される比較的大きなペナルティの使用を通して、バリューANN1010によって学習されることができ、それによって、バリューANN1010および/またはポリシーANN1020によって回避される。いくつかの例において、禁止状態は、エージェント710に利用可能な可能性のある状態のユニバースから削除されることができ、これにより、バリューANN1010および/またはポリシーANN1020の訓練がスピードアップし、エージェント710の動作中に禁止状態が回避される可能性を高めることができる。
【0149】
いくつかの例において、生産施設760は、複数のエージェントを使用してスケジュールされることができる。これらの複数のエージェントは、意思決定を分散することができ、複数のエージェントのバリュー関数は、複数のエージェントによって決定された生産アクションのために要求される調整を反映することができる。
【0150】
図13は、例示的な実施形態による、時間=t
0+2で実行される生産施設760のためのアクションの例示的なスケジュール1300を示す。この例において、エージェント710は、上で考察されたスケジュール1230を生成するための技術を使用して、生産施設760のためのスケジュール1300を生成する。上で考察されたスケジュール900と同様に、スケジュール1300は、7日間の変更不可能な計画期間の後退に基づいており、生産アクションを表すようにガントチャートを使用する。
【0151】
スケジュール1300は、t
1=t
0+16日目で、時間t
0~t
1の範囲のために17日間存続する。
図13は、スケジュール1300が時間t
0+2日目で実行されていることを示すように、現在のタイムライン1320を使用する。現在のタイムライン1320および変更不可能な計画期間タイムライン1330は、変更不可能な計画期間1332がt
0+2日目~t
0+9日目に移行することを示す。現在のタイムライン1320および変更不可能な計画期間のタイムライン1330は、わかりやすくするために、
図13におけるそれぞれのt
0+2日目およびt
0+9日目のマークからわずかに左にオフセットされている。
【0152】
スケジュール1300は、生産施設760での製品A、B、C、およびDを含む製品850の生産を指示することができる。t0+2日目で、のt0日目とt0+1日目の間で製品Bを生産するためのアクション1350は、完了し、t0日とt0+5日目との間で製品Cを生産するアクション1360は、進行中であり、アクション1340、1352、1370、および1372は、開始されていない。アクション1340は、t0+6日目とt0+11日目の間で製品Aのスケジュールされた生産を表し、アクション1352は、t0+12日目とt0+14日目の間で製品Bのスケジュールされた生産を表し、アクション1370は、t0+8日目とt0+10日の間で製品Dのスケジュールされた生産を表し、アクション1372は、t0+14日目とt0+16日目=t1の間で製品Dのスケジュールされた生産を表す。生産施設760および/または他の生産施設のための他の多くのスケジュールも、同様に可能である。
【0153】
B.混合整数線形計画法(MILP)最適化モデル
エージェント710などの計算エージェントにおけるREINFORCEアルゴリズムの実施形態などの、本明細書で記載される強化学習技術の比較の基礎として、本明細書で記載される強化学習技術およびMILPに基づく最適化モデルの両方は、後退ホライズン法を使用する計画期間にわたってモデル800を使用する生産施設760での生産アクションをスケジュールするように使用される。
【0154】
MILPモデルは、以下に記載される強化学習のために使用されるREINFORCEアルゴリズムと同じ方法で、在庫、未処理注文、生産スケジュール、生産の制約、および格外の誤差、停止、およびその他の中断を考慮することができる。後退する期間は、MILPモデルが生産環境だけでなく、計画期間内に固定された生産スケジュールを維持するように以前の解決からの結果を入力として受信することを要求する。MILPモデルは、より良い最終状態条件を提供するように、2H期間のためのスケジュールを生成することができ、ここで、Hは、変更不可能な計画期間における日数、この例において、H=7である。その後、スケジュールは、実行するため生産施設のモデルに渡される。生産施設のモデルは、1時間ステップ(one time step)進み、その結果は、2H計画期間にわたって新しいスケジュールを生成するように、MILPモデルにフィードバックされる。
【0155】
特に、方程式41は、MILPモデルの目的関数であり、方程式42によって指定された在庫残高制約、方程式43によって指定されたスケジューリング制約、方程式44によって指定された出荷注文制約、方程式45によって指定された生産制約、方程式46によって指定された次数インデックス制約、および方程式47~51によって指定された1日の生産量制約の対象となる。
【数50】
【0156】
以下の表3は、REINFORCEアルゴリズムに関連する方程式34~40およびMILPモデルに関連する方程式41~51において使用される変数を記載する。
【表3】
【0157】
C.REINFORCEアルゴリズムとMILPモデルの比較
比較の目的で、エージェント710で具体化されたREINFORCEアルゴリズムおよびMILPモデルの両方は、3か月のシミュレーション期間にわたってモデル800を使用して生産施設760のための生成スケジュールが課された。この比較において、REINFORCEアルゴリズムおよびMILPモデルの各々は、シミュレーション期間全体にわたって毎日スケジューリングプロセスが実行され、ここで、条件は、シミュレーション期間全体にわたってREINFORCEアルゴリズムおよびMILPモデルの両方で同一である。REINFORCEアルゴリズムおよびMILPモデルの両方は、事前に、シミュレーション期間内の7日間の変更不可能な計画期間を表す、H=7日間のシミュレートされた反応器の生産スケジュールに製品を投入するスケジュールを生成するように利用される。この比較中、REINFORCEアルゴリズムは、MILPモデルのために上で考察されたのと同じ制約下で動作する。
【0158】
需要は、当日がシステムにおける各注文に関連付けられる注文入力日と一致するときに、REINFORCEアルゴリズムおよびMILPモデルに明らかにされる。これは、将来の需要のREINFORCEアルゴリズムおよびMILPモデルに制限された可視性を提供し、新しいエントリが利用可能になると、それらに反応するように強制する。
【0159】
REINFORCEアルゴリズムおよびMILPモデルの両方は、シミュレーション期間にわたって生産施設の収益性を最大化するように課された。比較のための報酬/目的関数は、方程式41として与えられる。MILPモデルは、完全情報およびローリングタイムホライズンの2つの条件下で実行された。前者は、他のアプローチのためのベンチマークとして機能する最良のシナリオを提供し、後者は、確率的要素の重要性に関する情報を提供する。REINFORCEアルゴリズムのANNは、ランダムに生成された10,000のエピソードに対して訓練された。
【0160】
図14は、例示的な実施形態による、REINFORCEアルゴリズムを実行するように、ANN1000を使用してエージェント710によって取得された、エピソードごとの訓練報酬およびエピソードごとの製品利用可能性のグラフ1400、1410を示す。グラフ1400は、10000のエピソードを超える訓練中に、エージェント710のANN 1000によって取得された、ドルで評価された訓練報酬を示す。グラフ1400に示される訓練報酬は、比較的暗い灰色で示される、各エピソードのための実際の訓練報酬、および比較的明るい灰色で示される、すべてのエピソードにわたる訓練報酬の移動平均の両方を含む。訓練中に増加する訓練報酬の移動平均は、約700のエピソード後に正の値に達し、平均訓練報酬の移動平均は、最終的に10000のエピソード後にエピソードあたり平均約100万ドル(1Мドル)になる。
【0161】
グラフ1410は、10000のエピソードを超える訓練中に、エージェント710のANN1000によって達成された、パーセンテージとして評価された各エピソードのための製品利用可能性を示す。グラフ1410に示される訓練報酬は、比較的暗い灰色で示される、各エピソードのための実際の製品利用可能性パーセンテージ、および比較的明るい灰色で示される、すべてのエピソードにわたる製品利用可能性パーセンテージの移動平均の両方を含む。製品利用可能性パーセンテージの移動平均は、訓練中に増加し、およそ2850のエピソード後に少なくとも90%の製品利用可能性に到達して維持し、平均訓練報酬の移動平均は、最終的に10000のエピソード後に平均約92%になる。したがって、グラフ1400および1410は、エージェント710のANN1000が、生産施設760での生産について、(経済的)報酬および製品利用可能性の両方の点で、肯定的な結果につながるスケジュールを提供するように訓練されることができることを示す。
【0162】
図15および
図16は、累積需要が徐々に増加する、同一のシナリオ中の生産施設760での活動のスケジューリングにおいて、REINFORCEアルゴリズムを使用するエージェント710とMILPモデルとの比較を示す。
【0163】
図15は、例示的な実施形態による、生産施設760での活動のスケジューリングにおいて、REINFORCEアルゴリズムとMILP性能を比較するグラフ1500、1510、1520を示す。グラフ1500は、エージェント710がANN1000を使用してREINFORCEアルゴリズムを実行することによって生じたコストおよび取得された報酬を示す。グラフ1510は、上で記載されたMILPモデルによって生じたコスト、および取得された報酬を示す。グラフ1520は、ANN1000を使用してREINFORCEアルゴリズムを実行するエージェント710とシナリオのためのMILPモデル間の性能を比較する。
【0164】
グラフ1500は、シナリオ中に累積需要が増加すると、エージェント710が需要にさらに一致するように在庫を構築したため、ANN1000を使用してREINFORCEアルゴリズムを実行するエージェント710が報酬を増加させることを示す。予測がないため、グラフ1510は、MILPモデルが遅延ペナルティを累積し始めていることを示す。エージェント710とMILPモデルとの性能を比較するために、グラフ1520は、RANN/RMILPの累積報酬比を示し、RANNは、シナリオ中にエージェント710によって取得された報酬の累積量であり、RANNは、シナリオ中にMILPモデルによって取得された報酬の累積量である。グラフ1520は、数日後、エージェント710が累積報酬比ベースでMILPモデルを一貫して上回っていることを示す。
【0165】
図16のグラフ1600は、エージェント710がANN1000を使用してREINFORCEアルゴリズムを実行することによって生じた製品A、B、C、およびDの在庫量を示す。グラフ1610は、MILPモデルによって生じた製品A、B、C、およびDの在庫量を示す。このシナリオにおいて、製品A、B、C、およびDの在庫は、誤った注文を反映しているため、在庫量が多い(または少ない)ほど、誤った注文で要求された製品の量が多く(または少なく)なることを示す。グラフ1610は、MILPモデルが要求された製品Dの圧倒的な量を有し、製品Dの在庫が4000メガトン(MT)近くに達していることを示すが、一方、グラフ1600は、エージェント710がすべての製品に対して比較的一貫した性能を示し、1つの製品の最大在庫量が1500MT未満であることを示す。
【0166】
グラフ1620およびグラフ1630は、REINFORCEアルゴリズムとMILPモデルを比較するシナリオ中の需要を示す。グラフ1620は、シナリオ中の製品A、B、C、およびDの各々のための毎日の平滑化された需要を示し、グラフ1630は、シナリオ中の製品A、B、C、およびDの各々のための累積需要を示す。グラフ1620およびグラフ1630を合わせると、シナリオ中に需要が概して増加し、製品AおよびCの要求が、シナリオにおける初期に、製品BおよびDの要求よりもいくらか大きくなり、しかし、シナリオの終わりまでに、製品BとDの要求が、製品AおよびCの要求よりもいくらか大きくなる。累積的に、グラフ1630は、シナリオ中に製品Cのための需要が最も高く、(需要注文において)次に製品A、製品D、および製品Bによって続くことを示す。
【0167】
以下の表4は、少なくとも10エピソードにわたるREINFORCEとMILPの結果の比較を表にしたものである。モデルの確率的性質のため、表4は、両方の平均結果と、2つのアプローチに同じ需要および生産停止が与えられた直接比較とを含む。REINFORCEアルゴリズムについて、100エピソードからの平均結果が表4に与えられ、MILPモデルについては10エピソードからの平均結果が提供される。強化学習モデルを用いるスケジューリングと比較して、MILPの解決に必要な時間が長いため、MILPモデルで利用可能な結果は、少なくなる。
【0168】
表4は、
図14、
図15、および
図16によって示されるREINFORCEアルゴリズムの優れた性能をさらに示す。REINFORCEアルゴリズムは、過去100回の訓練エピソードで92%の製品利用可能性を実現し、平均報酬が748,596ドルになるポリシーに収束された。比較において、MILPは、476,080ドルの大幅に小さい平均報酬、および61.6%の大幅に小さい製品利用可能性をもたらした。
【表4】
【0169】
MILP法は、REINFORCEアルゴリズムを下回り、これは主に強化学習モデルの自然に不確実性を考慮する能力の結果である。ポリシー勾配アルゴリズムは、特定状態で将来の報酬を増やす可能性が最も高いアクションを決定することによって学習することができ、その後、その状態または同様の状態が将来発生したときに、そのアクションを選択する。需要は、試行ごとに異なるが、REINFORCEアルゴリズムは、あるエピソードから次のエピソードまで同様の統計分布に従うため、何を期待するかを学習することが可能である。
【0170】
IV.例示的な動作
図17および
図18は、例示的な実施形態を示すフローチャートである。
図17および18によってそれぞれ示される方法1700および方法1800は、コンピューティングデバイス100などのコンピューティングデバイス、および/またはサーバクラスタ200などのコンピューティングデバイスのクラスタによって実行されることができる。しかしながら、方法1700および/または方法1800は、他のタイプのデバイスまたはデバイスサブシステムによって実行されることができる。例えば、方法1700および/または方法1800は、ラップトップまたはタブレットデバイスなどのポータブルコンピュータによって実行されることができる。
【0171】
方法1700および/または方法1800は、それぞれの
図17および
図18に示される特徴のうちの任意の1つ以上を除去することによって単純化されることができる。さらに、方法1700および/または方法1800は、前の図または本明細書に記載されている他の方法のいずれかの特徴、態様、および/または実装と組み合わせるか、および/または並べ替えることができる。
【0172】
図17の方法1700は、コンピュータ実施方法であることができる。方法1700は、ブロック1710で開始することができ、1つ以上の製品要求を満たすために1つ以上の投入材料を利用して、生産施設で生産される1つ以上の製品の生産に関連する生産施設のモデルは、決定されることができる。
【0173】
ブロック1720で、生産施設のためのポリシーニューラルネットワークおよびバリューニューラルネットワークは、決定されることができ、ポリシーニューラルネットワークは、生産施設でスケジュールされる生産アクションを表すポリシー関数に関連付けられることができ、バリューニューラルネットワークは、生産アクションに基づいて、生産施設で生産された製品の利益を表すバリュー関数に関連付けられることができる。
【0174】
ブロック1730で、ポリシーニューラルネットワークおよびバリューニューラルネットワークは、生産のモデルに基づいて、一定期間にわたって1つ以上の製品要求を満たす生産施設での生産アクションのスケジュールを生成するように、訓練されることができ、生産アクションのスケジュールは、1つ以上の要求された時間に基づいて決定された1つ以上の要求された製品の遅延生産によるペナルティに関連する。
【0175】
いくつかの実施形態において、ポリシー関数は、生産施設の1つ以上の状態を生産アクションにマッピングすることができ、生産施設の1つ以上の状態のうちのある状態は、一定期間内の特定時間に生産施設で利用可能な1つ以上の製品の製品在庫、および特定時間に生産施設で利用可能な1つ以上の投入材料の投入材料在庫を表することができ、バリュー関数は、生産アクションを実行した後に生産された製品の利益、および遅延生産によるペナルティを表すことができる。
【0176】
これらの実施形態のいくつかにおいて、ポリシーニューラルネットワークおよびバリューニューラルネットワークを訓練することは、ポリシーニューラルネットワークおよびバリューニューラルネットワークで、生産施設の1つ以上の状態のうちの特定状態に関連する入力を受信することと、ポリシーニューラルネットワークを利用して、特定状態に基づいて、特定生産アクションをスケジュールすることと、バリューニューラルネットワークを利用して、特定生産アクションの推定された利益を決定することと、推定された利益に基づいて、ポリシーニューラルネットワークおよびバリューニューラルネットワークを更新することと、を含むことができる。これらの実施形態のいくつかにおいて、推定された利益に基づいてポリシーニューラルネットワークおよびバリューニューラルネットワークを更新することは、特定生産アクションのために実際の利益を決定することと、推定された利益と実際の利益との間の利益誤差を決定することと、利益誤差に基づいて、バリューニューラルネットワークを更新することと、を含むことができる。
【0177】
これらの実施形態のいくつかにおいて、ポリシーニューラルネットワークを利用して、特定状態に基づいて特定生産アクションをスケジュールすることは、ポリシーニューラルネットワークを利用して、特定状態に基づいて、生産施設でスケジュールされる生産アクションの確率分布を決定することと、生産アクションの確率分布に基づいて、特定生産アクションを決定することと、を含むことができる。
【0178】
これらの実施形態のいくつかにおいて、方法1700は、ポリシーニューラルネットワークを利用して、特定状態に基づいて特定生産アクションをスケジュールした後、特定生産アクションを実行するために使用される投入材料、および生産施設で受信された追加の投入材料を考慮するように、投入材料在庫を更新することと、特定生産アクションによって生産された製品を考慮するように、製品在庫を更新することと、少なくとも1つの製品要求の少なくとも一部が更新された製品在庫によって満たされているかどうかを決定することと、少なくとも1つの製品要求の少なくとも一部が満たされていると決定した後、少なくとも1つの製品要求の少なくとも一部を満たすために、1つ以上の出荷可能製品を決定することと、1つ以上の出荷可能製品の出荷を考慮するように、製品在庫を再更新することと、1つ以上の出荷可能製品の出荷に基づいて、1つ以上の製品要求を更新することとによって、特定生産アクションに基づいて、生産施設のモデルを更新することをさらに含むことができる。
【0179】
いくつかの実施形態において、ポリシーニューラルネットワークおよびバリューニューラルネットワークを訓練することは、1つ以上のモンテカルロ製品要求を生成するように、モンテカルロ技術を利用することと、1つ以上のモンテカルロ製品要求を満たすために、生産施設のモデルに基づいて、ポリシーニューラルネットワークおよびバリューニューラルネットワークを訓練することと、を含むことができる。
【0180】
いくつかの実施形態において、ポリシーニューラルネットワークおよびバリューニューラルネットワークを訓練することは、生産施設の1つ以上のモンテカルロ状態を生成するように、モンテカルロ技術を利用することであって、生産施設の各モンテカルロ状態が、一定期間内の特定時間に生産施設で利用可能な1つ以上の製品および1つ以上の投入材料の在庫を表す、利用することと、1つ以上のモンテカルロ状態を満たすために、生産施設のモデルに基づいて、ポリシーニューラルネットワークおよびバリューニューラルネットワークを訓練することと、を含むことができる。
【0181】
いくつかの実施形態において、ポリシー関数およびバリュー関数を表すようにニューラルネットワークを訓練することは、強化学習技術を利用して、ポリシー関数およびバリュー関数を表すようにニューラルネットワークを訓練することを含むことができる。
【0182】
いくつかの実施形態において、バリュー関数は、生産施設によって生産された1つ以上の製品の経済的価値、生産施設で生じた1つ以上のペナルティの経済的価値、生産施設によって利用される投入材料の経済的価値、1つ以上の要求された製品の出荷における遅滞の兆候、および1つ以上の要求された製品のための時間どおりの製品利用可能性のパーセンテージのうちの1つ以上を表すことができる。
【0183】
いくつかの実施形態において、生産アクションのスケジュールは、生産施設での製品の生産を変更することによって生じた誤差にさらに関係することができ、バリュー関数が、生産アクションを行った後に生産された製品の利益、遅延生産によるペナルティ、および生産の変更によって生じた誤差を表す。
【0184】
いくつかの実施形態において、生産アクションのスケジュールは、計画期間中の生産活動の変更不可能な計画期間スケジュールを含むことができ、生産活動の変更不可能な計画期間スケジュールが、計画期間中は変更不可能である。これらの実施形態のいくつかにおいて、生産アクションのスケジュールは、毎日のスケジュールを含むことができ、計画期間は、少なくとも7日間であり得る。
【0185】
いくつかの実施形態において、1つ以上の製品は、1つ以上の化学製品を含む。
【0186】
図18の方法1800は、コンピュータ実施方法であり得る。方法1800は、ブロック1810で開始することができ、コンピューティングデバイスは、生産施設に関連付けられた1つ以上の製品要求を受信することができ、各製品要求が、1つ以上の要求された時間に生産施設で利用可能である1つ以上の製品のうちの1つ以上の要求された製品を指定する。
【0187】
ブロック1820において、訓練されたポリシーニューラルネットワークおよび訓練されたバリューニューラルネットワークは、一定期間にわたって1つ以上の製品要求を満たす生産施設での生産アクションのスケジュール、生産施設でスケジュールされる生産アクションを表すポリシー関数に関連付けられた訓練されたポリシーニューラルネットワーク、および生産アクションに基づいて生産施設で生産された製品の利益を表すバリュー関数に関連付けられた訓練されたバリューニューラルネットワークを生成するように利用されることができ、生産アクションのスケジュールが、1つ以上の要求された時間に基づいて決定された1つ以上の要求された製品の遅延生産による、および生産施設での1つ以上の製品の生産の変更によるペナルティに関連する。
【0188】
いくつかの実施形態において、ポリシー関数は、生産施設の1つ以上の状態を生産アクションにマッピングすることができ、生産施設の1つ以上の状態のうちのある状態は、特定時間に生産施設で利用可能な1つ以上の製品の製品在庫、および特定時間に生産施設で利用可能な1つ以上の投入材料の投入材料在庫を表し、バリュー関数は、生産アクションを実行した後に生産された製品の利益、および遅延生産によるペナルティを表す。
【0189】
これらの実施形態のいくつかにおいて、訓練されたポリシーニューラルネットワークおよび訓練されたバリューニューラルネットワークを利用することは、生産施設の1つ以上の状態のうちの特定状態を決定することと、訓練されたポリシーニューラルネットワークを利用して、特定状態に基づいて、特定生産アクションをスケジュールすることと、訓練されたバリューニューラルネットワークを利用して、特定生産アクションの推定された利益を決定することと、を含むことができる。
【0190】
これらの実施形態のいくつかにおいて、訓練されたポリシーニューラルネットワークを利用して、特定状態に基づいて特定生産アクションをスケジュールすることは、訓練されたポリシーニューラルネットワークを利用して、特定状態に基づいて、生産施設でスケジュールされる生産アクションの確率分布を決定することと、生産アクションの確率分布に基づいて、特定生産アクションを決定することと、を含むことができる。
【0191】
これらの実施形態のいくつかにおいて、方法1800は、訓練されたポリシーニューラルネットワークを利用して、特定状態に基づいて、特定生産アクションをスケジュールした後、特定生産アクションを実行するために使用される投入材料、および生産施設で受信された追加の投入材料を考慮するように、投入材料在庫を更新することと、特定生産アクションによって生産された製品を考慮するように、製品在庫を更新することと、少なくとも1つの製品要求の少なくとも一部が更新された製品在庫によって満たされているかどうかを判断することと、少なくとも1つの製品要求の少なくとも一部が満たされていると決定した後、少なくとも1つの製品要求の少なくとも一部を満たすために、1つ以上の出荷可能製品を決定することと、1つ以上の出荷可能製品の出荷を考慮するように、製品在庫を再更新することと、1つ以上の出荷可能製品の出荷に基づいて、1つ以上の製品要求を更新することとによって、特定生産アクションに基づいて、生産施設のモデルを更新することをさらに含むことができる。
【0192】
いくつかの実施形態において、バリュー関数は、生産施設によって生産された1つ以上の製品の経済的価値、生産施設で生じた1つ以上のペナルティの経済的価値、生産施設によって利用される投入材料の経済的価値、1つ以上の要求された製品の出荷における遅滞の兆候、および1つ以上の要求された製品のための時間どおりの製品利用可能性のパーセンテージのうちの1つ以上を表すことができる。
【0193】
いくつかの実施形態において、生産アクションのスケジュールは、生産施設での製品の生産を変更することによって生じた誤差にさらに関係することができ、バリュー関数が、生産アクションを行った後に生産された製品の利益、遅延生産によるペナルティ、および生産の変更によって生じた誤差を表す。
【0194】
いくつかの実施形態において、生産アクションのスケジュールは、計画期間中の生産活動の変更不可能な計画期間スケジュールを含むことができ、生産活動の変更不可能な計画期間スケジュールが、計画期間中は変更不可能である。これらの実施形態のいくつかにおいて、生産アクションのスケジュールは、毎日のスケジュールを含むことができ、計画期間は、少なくとも7日間であり得る。
【0195】
いくつかの実施形態において、1つ以上の製品は、1つ以上の化学製品を含むことができる。
【0196】
いくつかの実施形態において、方法1800は、生産施設でのアクションをスケジュールするように訓練されたポリシーニューラルネットワークおよび訓練されたバリューニューラルネットワークを利用した後、訓練されたニューラルネットワークで、訓練されたニューラルネットワークによってスケジュールされたアクションについてのフィードバックを受信することと、スケジュールされたアクションに関連するフィードバックに基づいて、訓練されたニューラルネットワークを更新することと、をさらに含むことができる。
【0197】
V.結論
本開示は、様々な態様の例示として意図される、本出願で説明される特定の実施形態に関して限定されるべきではない。当業者には明らかであるように、その範囲から逸脱することなく、多くの修正および変形を行うことができる。本明細書で説明されたものに加えて、本開示の範囲内の機能的に同等の方法および装置は、前述の説明から当業者には明らかであろう。そのような修正および変形は、添付の特許請求の範囲の範囲内に入ることが意図される。
【0198】
上記の詳細な説明は、添付の図を参照して、開示されたシステム、デバイス、および方法の様々な特徴および動作を説明する。本明細書および図に記載される例示的な実施形態は、限定することを意味するものではない。本明細書に提示される主題の範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を行うことができる。本明細書に概して説明され、図に示される本開示の態様は、多種多様な異なる構成で配置、置換、結合、分離、および設計され得ることが容易に理解されよう。
【0199】
図中のメッセージフロー図、シナリオ、およびフローチャートのいずれかまたはすべてに関して、本明細書で考察されるように、各ステップ、ブロック、および/または通信は、例示的な実施形態に従って情報の処理および/または情報の送信を表すことができる。代替の実施形態は、これらの例示的な実施形態の範囲内に含まれる。これらの代替の実施形態では、例えば、ステップ、ブロック、送信、通信、要求、応答、および/またはメッセージとして記述される動作は、関連する機能に依存して、実質的に同時を含む、示されるまたは考察されるものとは異なる順番で、または逆の順番で、実行することができる。さらに、より多くのまたはより少ないブロックおよび/または動作を、本明細書で考察されるメッセージフロー図、シナリオ、およびフローチャートのいずれかとともに使用することができ、これらのメッセージフロー図、シナリオ、およびフローチャートは、部分的にまたは全体的に互いに組み合わせることができる。
【0200】
情報の処理を表すステップまたはブロックは、本明細書で説明する方法または技法の特定の論理機能を実行するように構成され得る回路に対応することができる。代替的または追加的に、情報の処理を表すステップまたはブロックは、モジュール、セグメント、またはプログラムコードの一部分(関連データを含む)に対応することができる。プログラムコードは、方法または技法において特定の論理演算またはアクションを実装するためにプロセッサによって実行可能な1つ以上の命令を含むことができる。プログラムコードおよび/または関連データは、RAM、ディスクドライブ、ソリッドステートドライブ、または別のストレージ媒体を含むストレージデバイスなどの任意のタイプのコンピュータ可読媒体に記憶することができる。
【0201】
コンピュータ可読媒体はまた、レジスタメモリおよびプロセッサキャッシュのような短期間データを格納するコンピュータ可読媒体などの非一時的なコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、プログラムコードおよび/またはデータをより長期間保存する非一時的なコンピュータ可読媒体をさらに含むことができる。したがって、コンピュータ可読媒体は、例えば、ROM、光または磁気ディスク、ソリッドステートドライブ、コンパクトディスク読み取り専用メモリ(CD-ROM)のような二次的または永続的な長期間ストレージを含むことができる。コンピュータ可読媒体はまた、他の任意の揮発性または不揮発性ストレージシステムであり得る。コンピュータ可読媒体は、例えば、コンピュータ可読ストレージ媒体、または有形ストレージデバイスと見なすことができる。
【0202】
さらに、1つ以上の情報伝送を表すステップまたはブロックは、同じ物理デバイス内のソフトウェアおよび/またはハードウェアモジュール間の情報伝送に対応することができる。ただし、他の情報伝送は、異なる物理デバイスのソフトウェアモジュールおよび/またはハードウェアモジュール間にあり得る。
【0203】
図に示されている特定の配置は、限定的なものと見なされるべきではない。他の実施形態は、所与の図に示される各要素の多かれ少なかれを含むことができることを理解されたい。さらに、図示された要素のいくつかは、組み合わせ、または省略することができる。さらに、例示的な実施形態は、図に示されていない要素を含むことができる。
【0204】
様々な態様および実施形態が本明細書に開示されているが、他の態様および実施形態は当業者には明らかであろう。本明細書に開示される様々な態様および実施形態は、例示を目的とするものであり、限定することを意図するものではなく、真の範囲は、以下の特許請求の範囲によって示される。
本発明は以下の態様を含み得ることを付記する。
[態様1]
コンピュータ実装方法であって、
1つ以上の製品要求を満たすために1つ以上の投入材料を利用して、生産施設で生産される1つ以上の製品の生産に関連する前記生産施設のモデルを決定することであって、各製品要求が、1つ以上の要求された時間に前記生産施設で利用可能になる前記1つ以上の製品のうちの1つ以上の要求された製品を指定する、決定することと、
前記生産施設のためのポリシーニューラルネットワークおよびバリューニューラルネットワークを決定することであって、前記ポリシーニューラルネットワークが、前記生産施設でスケジュールされる生産アクションを表すポリシー関数に関連付けられ、前記バリューニューラルネットワークが、前記生産アクションに基づいて、前記生産施設で生産された製品の利益を表すバリュー関数に関連付けられる、決定することと、
前記生産の前記モデルに基づいて、一定期間にわたって前記1つ以上の製品要求を満たす前記生産施設での前記生産アクションのスケジュールを生成するように、前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することであって、前記生産アクションの前記スケジュールが、前記1つ以上の要求された時間に基づいて決定された前記1つ以上の要求された製品の遅延生産によるペナルティに関連する、訓練することと、を含む、コンピュータ実装方法。
[態様2]
前記ポリシー関数が、前記生産施設の1つ以上の状態を前記生産アクションにマッピングし、前記生産施設の前記1つ以上の状態のうちのある状態が、前記一定期間内の特定時間に前記生産施設で利用可能な前記1つ以上の製品の製品在庫、および前記特定時間に前記生産施設で利用可能な前記1つ以上の投入材料の投入材料在庫を表し、前記バリュー関数が、生産アクションを実行した後に生産された製品の利益、および前記遅延生産によるペナルティを表す、態様1に記載のコンピュータ実装方法。
[態様3]
前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することが、
前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークで、前記生産施設の前記1つ以上の状態のうちの特定状態に関連する入力を受信することと、
前記ポリシーニューラルネットワークを利用して、前記特定状態に基づいて、特定生産アクションをスケジュールすることと、
前記バリューニューラルネットワークを利用して、前記特定生産アクションの推定された利益を決定することと、
前記推定された利益に基づいて、前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを更新することと、を含む、態様2に記載のコンピュータ実装方法。
[態様4]
前記推定された利益に基づいて前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを更新することが、
前記特定生産アクションのために実際の利益を決定することと、
前記推定された利益と前記実際の利益との間の利益誤差を決定することと、
前記利益誤差に基づいて、前記バリューニューラルネットワークを更新することと、を含む、態様3に記載のコンピュータ実装方法。
[態様5]
前記ポリシーニューラルネットワークを利用して、前記特定状態に基づいて前記特定生産アクションをスケジュールすることが、
前記ポリシーニューラルネットワークを利用して、前記特定状態に基づいて、前記生産施設でスケジュールされる前記生産アクションの確率分布を決定することと、
前記生産アクションの前記確率分布に基づいて、前記特定生産アクションを決定することと、を含む、態様3または態様4のいずれかに記載のコンピュータ実装方法。
[態様6]
前記ポリシーニューラルネットワークを利用して、前記特定状態に基づいて前記特定生産アクションをスケジュールした後、
前記特定生産アクションを実行するために使用される投入材料、および前記生産施設で受信された追加の投入材料を考慮するように、前記投入材料在庫を更新することと、
前記特定生産アクションによって生産された製品を考慮するように、前記製品在庫を更新することと、
少なくとも1つの製品要求の少なくとも一部が前記更新された製品在庫によって満たされているかどうかを決定することと、
少なくとも1つの製品要求の少なくとも一部が満たされていると決定した後、
前記少なくとも1つの製品要求の少なくとも一部を満たすために、1つ以上の出荷可能製品を決定することと、
前記1つ以上の出荷可能製品の出荷を考慮するように、前記製品在庫を再更新することと、
前記1つ以上の出荷可能製品の前記出荷に基づいて、前記1つ以上の製品要求を更新することとによって、前記特定生産アクションに基づいて、前記生産施設の前記モデルを更新することをさらに含む、態様3~5のいずれか1項に記載のコンピュータ実装方法。
[態様7]
前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することが、
1つ以上のモンテカルロ製品要求を生成するように、モンテカルロ技術を利用することと、
前記1つ以上のモンテカルロ製品要求を満たすために、前記生産施設の前記モデルに基づいて、前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することと、を含む、態様1~6のいずれか1項に記載のコンピュータ実装方法。
[態様8]
前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することが、
前記生産施設の1つ以上のモンテカルロ状態を生成するように、モンテカルロ技術を利用することであって、前記生産施設の各モンテカルロ状態が、前記一定期間内の特定時間に前記生産施設で利用可能な前記1つ以上の製品および前記1つ以上の投入材料の在庫を表す、利用することと、
前記1つ以上のモンテカルロ状態を満たすために、前記生産施設の前記モデルに基づいて、前記ポリシーニューラルネットワークおよび前記バリューニューラルネットワークを訓練することと、を含む、態様1~7のいずれか1項に記載のコンピュータ実装方法。
[態様9]
前記ポリシー関数および前記バリュー関数を表すように前記ニューラルネットワークを訓練することが、強化学習技術を利用して、前記ポリシー関数および前記バリュー関数を表すように前記ニューラルネットワークを訓練することを含む、態様1~8のいずれか1項に記載のコンピュータ実装方法。
[態様10]
前記バリュー関数が、前記生産施設によって生産された1つ以上の製品の経済的価値、前記生産施設で生じた1つ以上のペナルティの経済的価値、前記生産施設によって利用される投入材料の経済的価値、前記1つ以上の要求された製品の出荷における遅滞の兆候、および前記1つ以上の要求された製品のための時間どおりの製品利用可能性のパーセンテージのうちの1つ以上を表す、態様1~9のいずれか1項に記載のコンピュータ実装方法。
[態様11]
前記生産アクションの前記スケジュールが、前記生産施設での製品の生産を変更することによって生じた誤差にさらに関係し、前記バリュー関数が、生産アクションを行った後に生産された製品の利益、遅延生産による前記ペナルティ、および生産の変更によって生じた前記誤差を表す、態様1~10のいずれか1項に記載のコンピュータ実施方法。
[態様12]
前記生産アクションの前記スケジュールが、計画期間中の生産活動の変更不可能な計画期間スケジュールを含み、生産活動の前記変更不可能な計画期間スケジュールが、前記計画期間中は変更不可能である、態様1~11のいずれか1項に記載のコンピュータ実装方法。
[態様13]
前記生産アクションの前記スケジュールが、毎日のスケジュールを含み、前記計画期間が、少なくとも7日間である、態様12に記載のコンピュータ実装方法。
[態様14]
前記1つ以上の製品が、1つ以上の化学製品を含む、態様1~13のいずれか1項に記載のコンピュータ実装方法。
[態様15]
コンピューティングデバイスであって、
1つ以上のプロセッサと、
データストレージであって、前記1つ以上のプロセッサによって実行されるときに、態様1~14のいずれか1項に記載のコンピュータ実装方法を含む機能を前記コンピューティングデバイスに実行させる、コンピュータ実行可能命令がその上に格納されたデータストレージとを備える、コンピューティングデバイス。
[態様16]
コンピューティングデバイスの1つ以上のプロセッサによって実行されるときに、態様1~14のいずれか1項に記載のコンピュータ実装方法を含む機能を前記コンピューティングデバイスに実行させる、その上に格納されたコンピュータ可読命令を有する1つ以上のコンピュータ可読媒体を含む製造品。
[態様17]
前記1つ以上のコンピュータ可読媒体が、1つ以上の非一時的なコンピュータ可読媒体を含む、態様16に記載の製造品。
[態様18]
コンピューティングシステムであって、
態様1~14のいずれか1項に記載のコンピュータ実施方法を実行するための手段を備える、コンピューティングシステム。
[態様19]
コンピュータ実装方法であって、
コンピューティングデバイスで、生産施設に関連付けられた1つ以上の製品要求を受信することであって、各製品要求が、1つ以上の要求された時間に前記生産施設で利用可能である1つ以上の製品のうちの1つ以上の要求された製品を指定する、受信することと、
訓練されたポリシーニューラルネットワークおよび訓練されたバリューニューラルネットワークを、一定期間にわたって前記1つ以上の製品要求を満たす前記生産施設での生産アクションのスケジュール、前記生産施設でスケジュールされる生産アクションを表すポリシー関数に関連付けられた前記訓練されたポリシーニューラルネットワーク、および前記生産アクションに基づいて前記生産施設で生産された製品の利益を表すバリュー関数に関連付けられた前記訓練されたバリューニューラルネットワークを生成するように利用することであって、前記生産アクションの前記スケジュールが、前記1つ以上の要求された時間に基づいて決定された前記1つ以上の要求された製品の遅延生産による、および前記生産施設での前記1つ以上の製品の生産の変更によるペナルティに関連する、利用することと、を含む、コンピュータ実装方法。
[態様20]
前記ポリシー関数が、前記生産施設の1つ以上の状態を前記生産アクションにマッピングし、前記生産施設の前記1つ以上の状態のうちのある状態が、特定時間に前記生産施設で利用可能な前記1つ以上の製品の製品在庫、および特定時間に前記生産施設で利用可能な1つ以上の投入材料の投入材料在庫を表し、前記バリュー関数が、生産アクションを実行した後に生産された製品の利益、および遅延生産による前記ペナルティを表す、態様19に記載のコンピュータ実装方法。
[態様21]
前記訓練されたポリシーニューラルネットワークおよび前記訓練されたバリューニューラルネットワークを利用することが、
前記生産施設の前記1つ以上の状態のうちの特定状態を決定することと、
前記訓練されたポリシーニューラルネットワークを利用して、前記特定状態に基づいて、特定生産アクションをスケジュールすることと、
前記訓練されたバリューニューラルネットワークを利用して、前記特定生産アクションの推定された利益を決定することと、を含む、態様20に記載のコンピュータ実装方法。
[態様22]
前記訓練されたポリシーニューラルネットワークを利用して、前記特定状態に基づいて前記特定生産アクションをスケジュールすることが、
前記訓練されたポリシーニューラルネットワークを利用して、前記特定状態に基づいて、前記生産施設でスケジュールされる前記生産アクションの確率分布を決定することと、
前記生産アクションの前記確率分布に基づいて、前記特定生産アクションを決定することと、を含む、態様21に記載のコンピュータ実装方法。
[態様23]
前記訓練されたポリシーニューラルネットワークを利用して、前記特定状態に基づいて、前記特定生産アクションをスケジュールした後、
前記特定生産アクションを実行するために使用される投入材料、および前記生産施設で受信された追加の投入材料を考慮するように、前記投入材料在庫を更新することと、
前記特定生産アクションによって生産された製品を考慮するように、前記製品在庫を更新することと、
少なくとも1つの製品要求の少なくとも一部が前記更新された製品在庫によって満たされているかどうかを判断することと、
少なくとも1つの製品要求の少なくとも一部が満たされていると決定した後、
前記少なくとも1つの製品要求の少なくとも一部を満たすために、1つ以上の出荷可能製品を決定することと、
前記1つ以上の出荷可能製品の出荷を考慮するように、前記製品在庫を再更新することと、
前記1つ以上の出荷可能製品の前記出荷に基づいて、前記1つ以上の製品要求を更新することとによって、前記特定生産アクションに基づいて、前記生産施設の前記モデルを更新することをさらに含む、態様21または態様22のいずれかに記載のコンピュータ実装方法。
[態様24]
前記バリュー関数が、前記生産施設によって生産された1つ以上の製品の経済的価値、前記生産施設で生じた1つ以上のペナルティの経済的価値、前記生産施設によって利用される投入材料の経済的価値、前記1つ以上の要求された製品の出荷における遅滞の兆候、および前記1つ以上の要求された製品のための時間どおりの製品利用可能性のパーセンテージのうちの1つ以上を表す、態様19~23のいずれか1項に記載のコンピュータ実装方法。
[態様25]
前記生産アクションの前記スケジュールが、前記生産施設での製品の生産を変更することによって生じた誤差にさらに関係し、前記バリュー関数が、生産アクションを行った後に生産された製品の利益、遅延生産による前記ペナルティ、および生産の変更によって生じた前記誤差を表す、態様19~24のいずれか1項に記載のコンピュータ実施方法。
[態様26]
前記生産アクションの前記スケジュールが、計画期間中の生産活動の変更不可能な計画期間スケジュールを含み、生産活動の前記変更不可能な計画期間スケジュールが、前記計画期間中は変更不可能である、態様19~25のいずれか1項に記載のコンピュータ実装方法。
[態様27]
前記生産アクションの前記スケジュールが、毎日のスケジュールを含み、前記計画期間が、少なくとも7日間である、態様26に記載のコンピュータ実装方法。
[態様28]
前記1つ以上の製品が、1つ以上の化学製品を含む、態様19~27のいずれか1項に記載のコンピュータ実装方法。
[態様29]
前記生産施設でのアクションをスケジュールするように前記訓練されたポリシーニューラルネットワークおよび前記訓練されたバリューニューラルネットワークを利用した後、前記訓練されたニューラルネットワークで、前記訓練されたニューラルネットワークによってスケジュールされたアクションについてのフィードバックを受信することと、
前記スケジュールされたアクションに関連する前記フィードバックに基づいて、前記訓練されたニューラルネットワークを更新することと、をさらに含む、態様19~28のいずれか1項に記載のコンピュータ実装方法。
[態様30]
コンピューティングデバイスであって、
1つ以上のプロセッサと、
データストレージであって、前記1つ以上のプロセッサによって実行されるときに、態様19~29のいずれか1項に記載のコンピュータ実装方法を含む機能を前記コンピューティングデバイスに実行させる、コンピュータ実行可能命令がその上に格納されたデータストレージとを備える、コンピューティングデバイス。
[態様31]
コンピューティングデバイスの1つ以上のプロセッサによって実行されるときに、態様19~29のいずれか1項に記載のコンピュータ実装方法を含む機能を前記コンピューティングデバイスに実行させる、その上に格納されたコンピュータ可読命令を有する1つ以上のコンピュータ可読媒体を含む製造品。
[態様32]
前記1つ以上のコンピュータ可読媒体が、1つ以上の非一時的なコンピュータ可読媒体を含む、態様31に記載の製造品。
[態様33]
コンピューティングシステムであって、
態様19~29のいずれか1項に記載のコンピュータ実施方法を実行するための手段を備える、コンピューティングシステム。