(57)【要約】  例示的な実施形態は、効率的に計算することができ、制御対象システム（複数可）の変化に適応することができるハイブリッドコントローラのネットワークを可能にする。このようなネットワークは、動的サブコントローラ及び学習済みシステムサブコントローラを含む少なくとも１つのハイブリッドコントローラを含む。制御対象システムの実行中の性能に関する情報は、ハイブリッドコントローラ及びオーバーコントローラの両方に提供され、ハイブリッドコントローラの実行中の動作を修正するために、ハイブリッドコントローラに１つ以上の制御入力を提供する。これらの入力には、ハイブリッドコントローラの目標値、動的コントローラの１つ以上のパラメータ、及び学習済みシステムコントローラの更新レートまたはその他のパラメータを含めることができる。オーバーコントローラは、複数のハイブリッドコントローラを制御することができ（例えば、システム全体のそれぞれのサブシステムを制御する）、それ自体がハイブリッドコントローラになることができる。【選択図】図３
2021507418.tif 000002
【特許請求の範囲】
【請求項１】
第１の期間の間に、システムの出力を検出すること、
前記第１の期間の間に検出された前記出力に基づいて、前記システムの第１の性能メトリックを判定すること、
前記第１の性能メトリックに基づいて、第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成することであって、前記第１のハイブリッドコントローラが、第１の制約、第１の動的システム、及び第１の学習済みシステムモデルを含んでおり、前記第１のハイブリッドコントローラを動作させて、前記第１のハイブリッドコントローラ出力を生成することが、
前記第１の性能メトリックと前記第１の制約との間の第１の差を判定すること、
前記判定された第１の差を前記第１の動的システムに適用して、第１の動的システム出力を生成すること、及び
前記生成された第１の動的システム出力を前記第１の学習済みシステムモデルに適用して、前記第１のハイブリッドコントローラ出力を生成すること
を含む、前記第１のハイブリッドコントローラ出力を生成すること、
前記生成された第１のハイブリッドコントローラ出力に従って、第２の期間の間に、前記システムを制御すること、
第３の期間の間に、前記システムの前記出力を検出すること、
前記第３の期間の間に検出された前記出力に基づいて、前記システムの第２の性能メトリックを判定すること、
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、第２のハイブリッドコントローラを動作させて、更新された制約値を生成すること、
前記更新された制約値に従って、前記第１の制約を更新すること、
前記第１の制約の更新後に、前記第２の性能メトリックに基づいて、前記第１のハイブリッドコントローラを動作させて、第２のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第２のハイブリッドコントローラ出力に従って、第４の期間の間に、前記システムを制御すること
を含む、方法。
【請求項２】
前記第１の学習済みシステムモデルがルックアップテーブルを含み、
前記生成された第１の動的出力を前記第１の学習済みシステムモデルに適用して、前記第１のハイブリッドコントローラ出力を生成することが、前記第１の動的出力の値に基づいて、前記ルックアップテーブル内のエントリを選択することを含む、請求項１に記載の方法。
【請求項３】
前記第１の動的システムが極によって特徴付けられており、更に、
前記第１の期間の間に検出された前記システムの前記出力に基づいて、前記第１の学習済みシステムモデルに対する信頼度を判定すること、
前記判定された信頼度に基づいて、前記第１の動的システムの前記極の更新値を判定すること、及び
前記更新された動的システムの前記極が、前記判定された更新値に対応する値を持つように、前記第１の動的システムを更新すること
を含む、請求項１に記載の方法。
【請求項４】
前記第１の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することを更に含む、請求項１に記載の方法。
【請求項５】
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、前記第２のハイブリッドコントローラを動作させて、前記学習済みシステムモデルを更新するよう判定することであって、前記第１の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することは、前記第２のハイブリッドコントローラが、前記学習済みシステムモデルを更新するよう判定することに応答して行われる、前記学習済みシステムモデルを更新するよう判定することを更に含む、請求項４に記載の方法。
【請求項６】
前記第１の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することが、
前記第１の期間の間に検出された前記システムの前記出力の表示を、リモートシステムに送信すること、及び
前記学習済みシステムモデルに対する更新の表示を、前記リモートシステムから受信すること
を含む、請求項４に記載の方法。
【請求項７】
前記第１の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することが、種々の学習済みシステムモデルのセットから、ある学習済みシステムモデルを選択することを含む、請求項４に記載の方法。
【請求項８】
前記システムは、２つ以上の演算器であって、そのそれぞれがそれぞれの動作状態を有している前記２つ以上の演算器を有するコンピューティング基体を含み、
前記第１のハイブリッドコントローラ出力が、前記コンピューティング基体の前記２つ以上の演算器のそれぞれの動作状態の表示を含む、請求項１に記載の方法。
【請求項９】
前記計算基体の前記演算器の少なくとも１つの前記動作状態が、クロック速度を含む、請求項８に記載の方法。
【請求項１０】
前記第２のハイブリッドコントローラが、第２の制約、第２の動的システム、及び第２の学習済みシステムモデルを含んでおり、
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、前記第２のハイブリッドコントローラを動作させて、更新された制約値を生成することが、
前記第１の性能メトリックまたは前記第２の性能メトリックの少なくとも１つを前記第２の動的システムに適用して、第２の動的システム出力を生成すること、及び
前記生成された第２の動的出力を前記第２の学習済みシステムモデルに適用して、前記更新された制約値を生成すること
を含む、請求項１に記載の方法。
【請求項１１】
前記第１の期間の間に、第２のシステムの第２の出力を検出すること、
前記第１の期間の間に検出された前記第２の出力に基づいて、前記第２のシステムの第３の性能メトリックを判定すること、
前記第３の性能メトリックに基づいて、第３のハイブリッドコントローラを動作させて、第３のハイブリッドコントローラ出力を生成することであって、前記第３のハイブリッドコントローラが、第３の制約、第３の動的システム、及び第３の学習済みシステムモデルを含んでおり、前記第３のハイブリッドコントローラを動作させて、前記第３のハイブリッドコントローラ出力を生成することが、
前記第３の性能メトリックと前記第３の制約との間の第２の差を判定すること、
前記判定された第２の差を前記第３の動的システムに適用して、第３の動的システム出力を生成すること、及び
前記生成された第３の動的出力を前記第３の学習済みシステムモデルに適用して、前記第３のハイブリッドコントローラ出力を生成すること
を含む、前記第３のハイブリッドコントローラ出力を生成すること、
前記生成された第３のハイブリッドコントローラ出力に従って、前記第２の期間の間に、前記第２のシステムを制御すること、
前記第３の期間の間に、前記第２のシステムの前記第２の出力を検出すること、
前記第３の期間の間に前記第２のシステムから検出された前記第２の出力に基づいて、前記第２のシステムの第４の性能メトリックを判定すること、
前記第３の性能メトリック及び前記第４の性能メトリックに基づいて、前記第２のハイブリッドコントローラを動作させて、更なる更新された制約値を生成すること、
前記更なる更新された制約値に従って、前記第３の制約を更新すること、
前記第４の性能メトリックに基づいて、前記第３のハイブリッドコントローラを動作させて、第４のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第４のハイブリッドコントローラ出力に従って、前記第４の期間の間に、前記第２のシステムを制御すること
を更に含む、請求項１０に記載の方法。
【請求項１２】
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、前記第２のハイブリッドコントローラを動作させて、前記更新された制約値を生成することは、
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、前記システムの前記出力が発振していることを検出することを含む、請求項１に記載の方法。
【請求項１３】
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、前記第２のハイブリッドコントローラを動作させて、前記更新された制約値を生成することは、
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、前記システムの前記出力が、閾値レートよりも遅く応答することを検出することを含む、請求項１に記載の方法。
【請求項１４】
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、前記第２のハイブリッドコントローラを動作させて、前記更新された制約値を生成することは、
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、前記システムの前記出力が、前記第１の制約に対してバイアスを示すことを検出することを含む、請求項１に記載の方法。
【請求項１５】
第１の期間の間に、システムの出力を検出すること、
前記第１の期間の間に検出された前記出力に基づいて、前記システムの第１の性能メトリックを判定すること、
前記第１の性能メトリックに基づいて、第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成することであって、前記第１のハイブリッドコントローラが、第１の制約、第１の動的システム、第１の学習済みシステムモデル、及び第１の学習済みシステム更新モジュールを含んでおり、前記第１の学習済みシステム更新モジュールが、前記システムから検出された少なくとも１つの出力に基づいて、前記第１の学習済みシステムモデルを更新するように構成されており、前記第１の学習済みシステム更新モジュールが、第１の学習パラメータに対応するタイミングまたはレートの少なくとも１つに従って、前記第１の学習済みシステムモデルを更新するように構成されており、前記第１の動的システムが、前記第１の動的システムの全体的な応答性に対応する第１の動的パラメータを有しており、前記第１のハイブリッドコントローラを動作させて、前記第１のハイブリッドコントローラ出力を生成することが、
前記第１の性能メトリックと前記第１の制約との間の第１の差を判定すること、
前記判定された第１の差を前記第１の動的システムに適用して、第１の動的システム出力を生成すること、及び
前記生成された第１の動的出力を前記第１の学習済みシステムモデルに適用して、前記第１のコントローラ出力を生成すること
を含む、前記第１のハイブリッドコントローラ出力を生成すること、
前記生成された第１のハイブリッドコントローラ出力に従って、第２の期間の間に、前記システムを制御すること、
第３の期間の間に、前記システムの前記出力を検出すること、
前記第３の期間の間に検出された前記出力に基づいて、前記システムの第２の性能メトリックを判定すること、
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、第２のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ更新版を生成することであって、前記第１のハイブリッドコントローラ更新版が、更新された第１の制約値、更新された第１の動的パラメータ、または更新された第１の学習パラメータのうちの少なくとも１つを含む、前記第１のハイブリッドコントローラ更新版を生成すること、
前記第１のハイブリッドコントローラ更新版に従って、前記第１のハイブリッドコントローラを更新すること、
前記第２の性能メトリックに基づいて、前記更新された第１のハイブリッドコントローラを動作させて、第２のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第２のハイブリッドコントローラ出力に従って、第４の期間の間に、前記システムを制御すること
を含む、方法。
【請求項１６】
前記第１の動的システムが極によって特徴付けられ、前記極は前記第１の動的パラメータに関連しており、前記方法は、更に、
前記第１の期間の間に検出された前記システムの前記出力に基づいて、前記第１の学習済みシステムモデルに対する信頼度を判定すること、
前記判定された信頼度に基づいて、前記第１の動的システムの前記極の更新値を判定すること、及び
前記更新された第１の動的システムの前記極が、前記判定された更新値に対応する値を持つように、前記第１の動的パラメータを更新することを含む、請求項１５に記載の方法。
【請求項１７】
前記第２のハイブリッドコントローラが、第２の制約、第２の動的システム、及び第２の学習済みシステムモデルを含んでおり、
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、前記第２のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ更新版を生成することが、
前記第１の性能メトリックまたは前記第２の性能メトリックの少なくとも１つを前記第２の動的システムに適用して、第２の動的システム出力を生成すること、及び
前記生成された第２の動的出力を前記第２の学習済みシステムモデルに適用して、前記第１のハイブリッドコントローラ更新版を生成すること
を含む、請求項１６に記載の方法。
【請求項１８】
前記第１の期間の間に、第２のシステムの第２の出力を検出すること、
前記第１の期間の間に検出された前記第２の出力に基づいて、前記第２のシステムの第３の性能メトリックを判定すること、
前記第３の性能メトリックに基づいて、第３のハイブリッドコントローラを動作させて、第３のハイブリッドコントローラ出力を生成することであって、前記第３のハイブリッドコントローラが、第３の制約、第３の動的システム、第３の学習済みシステムモデル、及び第３の学習済みシステム更新モジュールを含んでおり、前記第３の学習済みシステム更新モジュールが、前記第２のシステムから検出された少なくとも１つの出力に基づいて、前記第３の学習済みシステムモデルを更新するように構成されており、前記第３の学習済みシステム更新モジュールが、第３の学習パラメータに対応するタイミングまたはレートの少なくとも１つに従って、前記第３の学習済みシステムモデルを更新するように構成されており、前記第３の動的システムが、前記第３の動的システムの全体的な応答性に対応する第３の動的パラメータを有しており、前記第３のハイブリッドコントローラを動作させて、前記第３のハイブリッドコントローラ出力を生成することが、
前記第３の性能メトリックと前記第３の制約との間の第２の差を判定すること、
前記判定された第２の差を前記第３の動的システムに適用して、第３の動的システム出力を生成すること、及び
前記生成された第３の動的出力を前記第３の学習済みシステムモデルに適用して、前記第３のハイブリッドコントローラ出力を生成すること
を含む、前記第３のハイブリッドコントローラ出力を生成すること、
前記生成された第３のハイブリッドコントローラ出力に従って、前記第２の期間の間に、前記第２のシステムを制御すること、
前記第３の期間の間に、前記第２のシステムの前記第２の出力を検出すること、
前記第３の期間の間に前記第２のシステムから検出された前記第２の出力に基づいて、前記第２のシステムの第４の性能メトリックを判定すること、
前記第３の性能メトリック及び前記第４の性能メトリックに基づいて、前記第２のハイブリッドコントローラを動作させて、第３のハイブリッドコントローラ更新版を生成することであって、前記第３のハイブリッドコントローラ更新版が、更新された第３の制約値、更新された第３の動的パラメータ、または更新された第３の学習パラメータのうちの少なくとも１つを含む、前記第３のハイブリッドコントローラ更新版を生成すること、
前記第３のハイブリッドコントローラ更新版に従って、前記第３のハイブリッドコントローラを更新すること、
前記第４の性能メトリックに基づいて、前記第３のハイブリッドコントローラを動作させて、第４のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第４のハイブリッドコントローラ出力に従って、前記第４の期間の間に、前記第２のシステムを制御すること
を更に含む、請求項１７に記載の方法。
【請求項１９】
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、第４のハイブリッドコントローラを動作させて、更なる第１のハイブリッドコントローラ更新版を生成することであって、前記更なる第１のハイブリッドコントローラ更新版が、更新された第１の制約値、更新された第１の動的パラメータ、または更新された第１の学習パラメータのうちの少なくとも１つを含む、前記更なる第１のハイブリッドコントローラ更新版を生成すること、
前記更なる第１のハイブリッドコントローラ更新版に従って、前記第１のハイブリッドコントローラを更新することであって、前記第２の性能メトリックに基づいて、前記更新された第１のハイブリッドコントローラを動作させて、第２のハイブリッドコントローラ出力を生成することが、前記第１のハイブリッドコントローラ更新版及び前記更なる第１のハイブリッドコントローラ更新版の両方によって更新された前記第１のハイブリッドコントローラを動作させて、前記第２のハイブリッドコントローラ出力を生成することを含む、前記第１のハイブリッドコントローラを更新すること
を更に含む、請求項１８に記載の方法。
【請求項２０】
前記第１の性能メトリック及び前記第２の性能メトリックに基づいて、第３のハイブリッドコントローラを動作させて、更なる第１のハイブリッドコントローラ更新版を生成することであって、前記更なる第１のハイブリッドコントローラ更新版が、更新された第１の制約値、更新された第１の動的パラメータ、または更新された第１の学習パラメータのうちの少なくとも１つを含む、前記更なる第１のハイブリッドコントローラ更新版を生成すること、
前記更なる第１のハイブリッドコントローラ更新版に従って、前記第１のハイブリッドコントローラを更新することであって、前記第２の性能メトリックに基づいて、前記更新された第１のハイブリッドコントローラを動作させて、第２のハイブリッドコントローラ出力を生成することが、前記第１のハイブリッドコントローラ更新版及び前記更なる第１のハイブリッドコントローラ更新版の両方によって更新された前記第１のハイブリッドコントローラを動作させて、前記第２のハイブリッドコントローラ出力を生成することを含む、前記第１のハイブリッドコントローラを更新すること
を更に含む、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１７年１２月２１日出願の米国仮特許出願第６２／６０９，２４４号に対する優先権を主張するものであり、この米国仮特許出願を参照により本明細書に援用する。
【背景技術】
【０００２】
特定のシステムを制御する（例えば、システムの出力を所望のレベルに維持する）コントローラを、様々に構成することができる。いくつかの例では、コントローラは、制御すべきシステムのモデルとなるように訓練されているか、または別の方法で指定された構成要素を含む場合がある。コントローラは、コントローラ全体の動的応答を改善するために、そのようなシステムモデリング構成要素と組み合わせた動的構成要素（例えば、フィルタまたは他の動的制御構造）を含む場合もある。しかしながら、そのようなコントローラは、制御対象システムの内部構造をモデリングするために指定された構成要素を含むにもかかわらず、例えば、コントローラのシステムモデリング構成要素を訓練する目的で用いられる訓練データを生成するのに用いられた条件とは異なる条件の下では、最適に機能しない可能性がある。
【発明の概要】
【０００３】
対象のシステムの制御を改善するために、動的構成要素（例えば、フィルタまたはその他の動的コントローラ要素）と、制御対象システムをモデリングするために指定された構成要素（例えば、制御対象システムの観測された過去の挙動に基づいて訓練された学習済みシステムモデル）との両方を含むハイブリッドコントローラが提供され得る。このようなハイブリッドコントローラは、動的要素またはシステムモデリング要素のみを含む代替コントローラと比較して、システムの出力を制御することに関して、または他のいくつかの対象動作パラメータに関して、出力を向上させることができる。また、ハイブリッドコントローラは、コスト効率良く、計算リソース（例えば、サイクル、メモリ、コア）を最小限に抑えて実施することもできる。ハイブリッドコントローラは、その性能に関して（分析的に扱いやすい動的構成要素の存在のため）特定の形式的な保証を提供しながらも、被制御システムの複合体構造に関する学習済み情報を（システムモデリング構成要素を介して）考慮に入れ得る制御出力を生成することができる。
【０００４】
しかしながら、このようなハイブリッドコントローラは、特定の状況下では最適ではない挙動を示す場合がある。例えば、制御対象システム及び／またはシステム環境が、ハイブリッドコントローラを作り上げる（例えば、コントローラの学習済みシステムモデルを訓練する）のに使用された条件とは大きく異なる場合、ハイブリッドコントローラは、最適ではない出力を生じ得る。そうした例では、ハイブリッドコントローラの監視及び統御を行うために、追加のコントローラ（例えば、追加のハイブリッドコントローラ）を設けてもよい。この追加のコントローラは、ハイブリッドコントローラによって制御されているシステムの出力を受け取ることができ、その出力に基づいて、ハイブリッドコントローラの動作を制御する１つ以上の出力を供給することができる。このような出力は、ハイブリッドコントローラの１つ以上の制約（例えば、システムのフィードバック制御に用いられる目標値、伝達待ち時間制限など）を含む場合がある。このような出力は、ハイブリッドコントローラの動的システムモデル構成要素、及び／または学習済みシステムモデル構成要素の１つ以上のパラメータの値を含む場合がある。例えば、統括コントローラの出力は、フィルタの極の大きさもしくは位相、フィードバック利得、またはハイブリッドコントローラの動的構成要素の他のいくつかの動作パラメータであり得る。別の例では、統括コントローラの出力は、ハイブリッドコントローラの学習済みシステムモデル構成要素の学習率または他のパラメータであり得る。いくつかの例では、統括コントローラの出力は、ハイブリッドコントローラ上でプロセスが実行されるべきであるという、例えば、ハイブリッドコントローラの学習済みのシステムモデルが、非同期的に更新され、及び／または学習モードに入ることができるという判定であり得る。別の例では、統括コントローラの出力は、学習済みシステム構成要素で使用されるべき新しい学習モデルの選択であり、例えば、正則化回帰モデルからベイズモデルへの切り替えであり得る。別の例では、統括コントローラの出力は、例えば、当初のハイブリッドコントローラの配備後に、新しいリソースが動的に構成可能になった場合、ハイブリッドコントローラによって制御すべき新たなアクチュエータを指示してもよい。
【０００５】
このような統括コントローラを使用して、複数のハイブリッドコントローラを制御することができる。追加または代替として、複数の統括コントローラ（例えば、複数の統括ハイブリッドコントローラ）が、１つ以上のハイブリッドコントローラを共通に制御してもよい。統括コントローラによって制御されるハイブリッドコントローラの各々が、より大きなシステム全体に属するサブシステムをそれぞれ制御してもよい。例えば、電気自動車のバッテリ充電／放電回路構成を第１のハイブリッドコントローラが制御してもよく、電気自動車の駆動モータを第２のハイブリッドコントローラが制御してもよい。このような例では、統括コントローラは、下位のハイブリッドコントローラを介してシステム全体を効果的に制御していると考えられ得る。統括コントローラは、それ自体がそれぞれのサブシステムを直接制御する下位ハイブリッドコントローラに入力（例えば、目標値またはその他の制約、フィルタの極またはその他の動的システムパラメータ、学習率またはその他の学習済みシステムモデルパラメータ）を適用すること、または別の方法で、その下位ハイブリッドコントローラの動作を修正し、もしくは制御することによって、システム全体を制御することができる。いくつかの例では、そのような統括コントローラは、それ自体がハイブリッドコントローラであってもよい。
【０００６】
本開示の一態様は、１つ以上のコンピュータ、コントローラ、マイクロコントローラ、グラフィックプロセッシングユニット、テンソルプロセッシングユニット、特定用途向け集積回路、及び／または他のいくつかの様々な計算基体（ｃｏｍｐｕｔａｔｉｏｎａｌ  ｓｕｂｓｔｒａｔｅ）によって実施される方法に関する。本方法は、（ｉ）第１の期間の間に、システムの１つ以上の出力を検出すること、（ｉｉ）第１の期間の間に検出された１つ以上の出力に基づいて、システムの第１の性能メトリックを判定すること、（ｉｉｉ）少なくとも第１の性能メトリックに基づいて、第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成すること、（ｉｖ）少なくとも生成された第１のハイブリッドコントローラ出力に従って、第２の期間の間に、システムを制御すること、（ｖ）第３の期間の間に、システムの１つ以上の出力を検出すること、（ｖｉ）第３の期間の間に検出された１つ以上の出力に基づいて、システムの第２の性能メトリックを判定すること、（ｖｉｉ）少なくとも第１の性能メトリック及び第２の性能メトリックに基づいて、第２のハイブリッドコントローラを動作させて、更新された制約値を生成すること、（ｖｉｉｉ）更新された制約値に従って、第１の制約を更新すること、（ｉｘ）少なくとも第２の性能メトリックに基づいて、第１のハイブリッドコントローラを動作させて、第２のハイブリッドコントローラ出力を生成すること、ならびに（ｘ）少なくとも生成された第２のハイブリッドコントローラ出力に従って、第４の期間の間に、システムを制御することを含む。第１のハイブリッドコントローラは、第１の制約、第１の動的システム、及び第１の学習済みシステムモデルを含む。第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成することは、（１）第１の性能メトリックと第１の制約との間の第１の差を判定すること、（２）判定された第１の差を第１の動的システムに適用して、第１の動的システム出力を生成すること、（３）生成された第１の動的出力を第１の学習済みシステムモデルに適用して、第１のハイブリッドコントローラ出力を生成することを含む。
【０００７】
本開示の別の態様は、１つ以上のコンピュータ、コントローラ、マイクロコントローラ、グラフィックプロセッシングユニット、テンソルプロセッシングユニット、特定用途向け集積回路、及び／または他のいくつかの様々な計算基体によって実施される方法に関する。本方法は、（ｉ）第１の期間の間に、システムの出力を検出すること、（ｉｉ）第１の期間の間に検出された出力に基づいて、システムの第１の性能メトリックを判定すること、（ｉｉｉ）第１の性能メトリックに基づいて、第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成すること、（ｉｖ）生成された第１のハイブリッドコントローラ出力に従って、第２の期間の間に、システムを制御すること、（ｖ）第３の期間の間に、システムの出力を検出すること、（ｖｉ）第３の期間の間に検出された出力に基づいて、システムの第２の性能メトリックを判定すること、（ｖｉｉ）第１の性能メトリック及び第２の性能メトリックに基づいて、第２のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ更新版を生成することであって、第１のハイブリッドコントローラ更新版が、更新された第１の制約値、更新された第１の動的パラメータ、または更新された第１の学習パラメータのうちの少なくとも１つを含む、第１のハイブリッドコントローラ更新版を生成すること、（ｖｉｉｉ）第１のハイブリッドコントローラ更新版に従って、第１のハイブリッドコントローラを更新すること、（ｉｘ）第２の性能メトリックに基づいて、更新された第１のハイブリッドコントローラを動作させて、第２のハイブリッドコントローラ出力を生成すること、ならびに（ｘ）生成された第２のハイブリッドコントローラ出力に従って、第４の期間の間に、システムを制御することを含む。第１のハイブリッドコントローラは、第１の制約、第１の動的システム、第１の学習済みシステムモデル、及び第１の学習済みシステム更新モジュールを含む。第１の学習済みシステム更新モジュールは、システムから検出された少なくとも１つの出力に基づいて、第１の学習済みシステムモデルを更新すると共に、第１の学習パラメータに対応するタイミングまたはレートの少なくとも１つに従って、第１の学習済みシステムモデルを更新するように構成されている。第１の動的システムは、第１の動的システムの全体的な応答性に対応する第１の動的パラメータを有する。第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成することは、（１）第１の性能メトリックと第１の制約との間の第１の差を判定すること、（２）判定された第１の差を第１の動的システムに適用して、第１の動的システム出力を生成すること、（３）生成された第１の動的出力を第１の学習済みシステムモデルに適用して、第１のコントローラ出力を生成することを含む。
【０００８】
これらばかりでなく、他の態様、利点、及び代替物も、添付の図面を必要に応じて参照しながら、以下の詳細な説明を理解することによって、当業者に明らかになるであろう。更に、本文書の本概要部などで提供される説明は、限定ではなく、一例として、特許請求の範囲に係る主題を示すことを意図していることを理解すべきである。
【図面の簡単な説明】
【０００９】
【図１Ａ】ハイブリッドコントローラの例の概略図を示す。
【図１Ｂ】ハイブリッドコントローラの例の概略図を示す。
【図２】コントローラのネットワークの例の概略図を示す。
【図３】方法のフローチャートである。
【図４】方法のフローチャートである。
【発明を実施するための形態】
【００１０】
本明細書では、方法及びシステムの例について説明する。「例示的」、「例」、及び「例証的」という用語は、本明細書では、「例、実例、または例証として機能する」という意味で使用されることを理解されたい。本明細書で「例示的」、「例」、または「例証的」と記載されているいかなる実施形態または特徴も、必ずしも他の実施形態または特徴よりも好ましいまたは有利であると解釈されるべきものではない。更に、本明細書で説明する例示的な実施形態は、限定する意図はない。開示されるシステム及び方法の特定の態様は、多種多様な構成の配置及び組み合わせを可能にすることが容易に理解されるであろう。
【００１１】
本出願は、Ｗａｎｇ，  Ｓｈｕ，  ｅｔ  ａｌ．「Ｕｎｄｅｒｓｔａｎｄｉｎｇ  ａｎｄ  Ａｕｔｏ−Ａｄｊｕｓｔｉｎｇ  Ｐｅｒｆｏｒｍａｎｃｅ−Ｓｅｎｓｉｔｉｖｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎｓ．」Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｔｗｅｎｔｙ−Ｔｈｉｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｒｃｈｉｔｅｃｔｕｒａｌ  Ｓｕｐｐｏｒｔ  ｆｏｒ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｌａｎｇｕａｇｅｓ  ａｎｄ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ．  ＡＣＭ，  ２０１８、Ｚｈａｎｇ，  Ｈｕａｚｈｅ，  ａｎｄ  Ｈｅｎｒｙ  Ｈｏｆｆｍａｎｎ．「Ｐｅｒｆｏｒｍａｎｃｅ  ＆  ｅｎｅｒｇｙ  ｔｒａｄｅｏｆｆｓ  ｆｏｒ  ｄｅｐｅｎｄｅｎｔ  ｄｉｓｔｒｉｂｕｔｅｄ  ａｐｐｌｉｃａｔｉｏｎｓ  ｕｎｄｅｒ  ｓｙｓｔｅｍ−ｗｉｄｅ  ｐｏｗｅｒ  ｃａｐｓ．」Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ４７ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｉｎｇ．  ＡＣＭ，  ２０１８、及びＳａｎｔｒｉａｊｉ，  Ｍｕｈａｍｍａｄ  Ｈｕｓｎｉ，  ａｎｄ  Ｈｅｎｒｙ  Ｈｏｆｆｍａｎｎ．「Ｆｏｒｍａｌｉｎ：  Ａｒｃｈｉｔｅｃｔｕｒａｌ  Ｓｕｐｐｏｒｔ  ｆｏｒ  Ｐｏｗｅｒ  ＆  Ｐｅｒｆｏｒｍａｎｃｅ  Ａｗａｒｅ  ＧＰＵ．」２０１８  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｎｔｒｏｌ  Ｔｅｃｈｎｏｌｏｇｙ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ  （ＣＣＴＡ）．  ＩＥＥＥ，  ２０１８の内容を参照により援用する。
【００１２】
Ｉ．概要
本開示は、機械学習と制御理論とを組み合わせて、１つ以上のサブシステムで構成される階層型もしくは分散型の、またはその他の複合システムの性能の監視、制御、改善、及び／または最適化を、そのような複合システムが動的な動作条件で最適に機能することを保証する１つ以上の拡張機械学習制御システムを作成することによって行うシステム、方法、及び装置を開示する。１つ以上の各サブシステムは、同様の、別の、または共通の、ローカル及び／またはグローバルな目標を有しており、そのような複合システムのうちの制御された１つ以上の各サブシステム（複数可）は、１つ以上または全てのサブシステム（複数可）を一括して最適化及び／または監視する目的で、ハードウェア及び／またはソフトウェアにおいて密に、または疎に結合される。
【００１３】
開示された実施形態のいくつかは、アプリケーションの実行、及びシステム動作性能のデータ評価の最中に、制御システム（複数可）の構成の動的な監視、学習、及び変更を行うことに基づいているが、これらに限定されない、実習方式（複数可）を使用することによって、そのような制御システム（複数可）またはサブシステム（複数可）を監視し、及び／または最適化することに関する。また、システムまたはサブシステム（複数可）は、その制御される少なくとも１つの制約及び／または性能目標を動的に調整してもよく、及び／または監視制御システム自体を調整してもよい。
【００１４】
開示された実施形態のいくつかは、対象とする制約（複数可）及び／または性能目標（複数可）の、そのような最適化及び／または監視の結果として生じる、経時的なシステム性能における動的変化の評価から得られたメタデータを使用して、例えば、有益な制約及び性能目標を設立すること、１つ以上のシステムまたはサブシステムにおける極小／極大、または他の障害のカスケード、競合を防止すること、結果の生成を一層効率化する高度な学習方法を開発すること、例えば、潜在的な結果の時間的、逐次的なシミュレーション、または他のシミュレーションのために、機械学習方法（人工知能：ニューラルネットワーク、または他のそのような方法）の動作的な評価及び／または改善を行う目的で、敵対的生成ネットワークを全体的または部分的に置換する、及び／または別の方法で性能を向上させることなどに関連している。
【００１５】
機械学習制御システム（人工知能）は、金融取引、自律走行車、物流システム、チップ及びマイクロプロセッサ、軍事システムなどの応用分野において、業界全体にわたって広く展開され、採用されている。教師なし学習、教師あり学習、または半教師あり学習の教師あり構成要素の下で、これらのシステムのそれぞれは、制御すべき適用先環境を記述する大規模なデータセットの初期「学習」を必要とし、次に様々な複雑さのニューラルネットワークを介して処理され、そしてテストされて、配備後に、制御システムが、所望の結果を高確率でもたらすように、「十分に知っている」ことを確認する。教師なし学習、または半教師あり学習の教師なし構成要素の下では、このデータが頻繁に生成される。
【００１６】
通常は、最適に近い状態で動作し得る制御ソリューションを開発しようとするときには、データが多いほど、こうした所望の結果である確率が高くなる。しかし、実際には、性能は最適にはならない場合があり、ニューラルネットワークまたは他の学習済み予測アルゴリズム及び／または制御アルゴリズムの内部の動きは容易には理解されず、データは、取得が高価であったり、または幅が限られていたりすることが多く、機械学習された制御システムは、リアルタイムで動作し、それ自体の追加の動作データを収集することができるので、その学習セット及び動作ロジックを更新しなければならない。
【００１７】
従来の制御理論の手法では、システム動作パラメータが既知の微分モデルまたは差分モデルから導出される場合があり、確率論的な制御結果を生成し、学習またはその他のデータセット（複数可）の「完全性」と、予期しない動作条件に遭遇するリスクとに関する様々な度合いの不確実性をもたらす機械学習システムと対照をなす。
【００１８】
機械学習と制御理論の手法とを組み合わせて、本発明者らが「ハイブリッド制御システム」と呼ぶものにすることができる。このようなハイブリッド制御システムは、１つ以上の対象とする制約及び／または性能目標を使用する動的最適化という従来のアイデアを導入し、深く統合されて、未学習の条件、予期しない「不十分な挙動」、またはその他の予定外または予想外の事象に遭遇した場合に、基となる機械学習済みシステムを、より迅速に、その最適な全体ターゲットへと追い込む、対象とする制約及び／または性能目標あたりでのシステム動作に対する応答性に優れた予測テーブルを構築することによって、機械学習済みシステムの機能を強化させる。
【００１９】
例えば、このような複合の機械学習済みシステムは、強化学習、転移学習、または能動学習を用いたものを含む、教師ありシステム、教師なしシステム、または半教師ありシステムのいずれにおいても、ベイズ法及びその他の方法を用いた敵対的生成ネットワーク、例えばＤＣＧＡＮ、ワッサースタインＧＡＮ、及びＤＣＧＡＮアンサンブルなどの様々な数学的方法を作成することによって、学習プロセスを高速化するように適用されてもよい。
【００２０】
例えば、これらの敵対的なディープニューラルネットワークは、複雑なデータ分布の条件付き及び無条件のモデリングの両方において、より効果的であることが証明されている。条件付き生成はインタラクティブな制御を可能にするが、新しい制御の作成、または以前のモデリングの更新には、多くの場合、費用のかかる再訓練が必要になる。いずれにしても、目標は、より良いモデリング（すなわち、より速く、より経済的で、より適切な予測など、他にも多くをもたらすモデリング）を開発することである。
【００２１】
学習には、費用と時間がかかる可能性があり、ニューラルネットワークの内部動作についての理解を深めるために、様々な手法を適用して、例えば、３２ビット及び６４ビットの精度から４ビット及び８ビットの精度の計算に精度を落とすことによって、必要な学習セットのサイズ及び幅に対する要求を減らすことができる。これらの方法のほとんどは、例えば計算効率の理解を深めること、リスクまたは性能を評価すること、教師なし学習の精度を改善すること、意図したものではない結果を減らすこと、及び信頼性が高く理解可能な機械学習システムで市場投入までの時間を短縮することを目的として開発されている。
【００２２】
ニューラルネットワークは優れた経験的性能を発揮するが、内部の仕組みについては不明なところが多い。他の手法を適用して、数学的特性がよく理解された学習手法、例えば、各種のカーネル学習法及びスペクトラル学習法などの経験的性能を向上させることができる。
【００２３】
概して、先行研究では、疎もしくは密に結合される個別に最適化されたサブシステムが合わせて動作し構成されているか、または同じ、関連する、もしくは異なる制約（複数可）及び／または性能目標（複数可）を用いて決定を行う１つ以上の組み合わせの、階層型、分散型、または他の複合型の制御システム、例えば、１つ以上のハイブリッド制御システムで構成される複合システムをシミュレーションすること、このシステムを作成すること、このシステムを観測すること、このシステムから学習すること、このシステムを同時監視すること、及び／またはこのシステムを最適化することのうちの１つ以上を行うためのシステムも方法も提供することができなかった。
【００２４】
また、この先行研究では、動的な動作環境が、これらの初期条件またはその他の条件に違反した場合に挙動を訂正する手段も提供されず、また、１つ以上のサブシステムの異常作動が、一定の期間にわたって「正常」挙動になった場合に、分散型階層システムの挙動を経時的に最適化する方法を学習する手段も提供されない。
【００２５】
また、この先行研究では、システムのグローバルな最適性能目標（複数可）に対する応答時間を改善するために、最適な制約（複数可）を設立する、動作中に監視する、または動的に変更するための静的または動的なシステムまたは方法も全く提供されず、また、実行時の監視データ及び／または最適化性能データを使用して、例えば、監視器自体の少なくとも１つの制約及び／または性能目標（複数可）を策定する、または動的に変更することも提供されない。
【００２６】
また、この先行研究では、リアルタイムの動作環境において、システムまたは方法の実際の性能を、最初に設定し、次に監視し、そして制御する手段、より良い機械学習方法を開発する手段、時間的に、逐次的に、または別なようにして、種々の制約及びまたは性能目標のターゲットを使用して、様々な結果をシミュレートする手段も提供されない。
【００２７】
以下を行うためのシステム、方法、及び装置について説明する。すなわち、
（１）ハードウェア及び／またはソフトウェアにおいて、密に結合されているか疎に結合されているかに関わらず、個々の複合システムもしくはサブシステム、または複合システムもしくはサブシステムの一群を監視して、及び／または最適化して、システム毎に、またはサブシステム毎に、同一であるか、異なっているか、グループ化されているか、または別の方法で設定されているかしてもよい、少なくとも１つの制約及び／または性能目標のセットを満たす、少なくとも１つの分散型及び／または階層型の機械学習済み制御システム（複数可）の複合制御システムを作成し、制御すること。
【００２８】
（２）制御システムの少なくとも１つの制約及び／または性能目標を満たす静的または動的な動作環境でのその性能を監視すること。
【００２９】
（３）監視対象のシステムまたはサブシステムが、指定された制約を最適に満たすように動作しているとき、または指定された制約を最適には満たさないときを判定すること。
【００３０】
（４）この挙動に応答するように、学習器、コントローラ、または別のシステムを動的に調整すること（例えば、そのようなシステムの目標または他の動作パラメータを調整すること）。
【００３１】
（５）１つ以上のサブシステムの異常作動が「新たな正常」である場合に、複合制御システムの動作からのデータを使用して挙動を監視し、最適化目標を作成すること。
【００３２】
（６）機械学習済み制御システムを作成する初期プロセス中に、制御システムの最適化パラメータ及びまたは監視パラメータを作成することを可能にして、その後、監視し、静的または動的に、機械学習されるかまたは別の方法で、分散システムの動的性能をグローバルに、またはその構成要素のいずれか１つ以上で、もしくはそれ自体の管理で調整すること。
【００３３】
（７）システムまたはそのいずれかのサブシステムが、その少なくとも１つの制約及び／または性能目標を動的に調整できるようにすること。
【００３４】
（８）システムまたはサブシステム（複数可）の性能に関する情報を使用して、基礎となるシステムまたはサブシステム（複数可）のために、及び／または他者が使用する他の関連システム及び／または非関連システムのために、決定、予測、及び／またはシミュレーションを行う目的で使用することができる性能メトリックのデータベース及びライブラリ、または類似のレコードを作成すること。
【００３５】
（９）最適化及び／または監視上のアクションに関する動的な動作情報（すなわち、性能メタデータ）を使用して、深層学習の新しい方法を含むがこれに限定されない、教師あり、教師なし、または半教師ありのデータセットの要件に対する要求を減らすこと。
【００３６】
（１０）各種の制約及び／または性能目標が、機械学習されるかまたはその他の方法で、様々に選択されまたは構成されているこれらの効果をシミュレートして、基礎となる制御システムが経時的に作用する実際のデータを設定した場合に、階層型分散システム構成の実現性を評価すること、である。
【００３７】
先行研究では、動的イベントの実際の監視に応答して、複合の、最適化された機械学習済みシステムの堅牢性を向上させるためのシステム及び方法が開示されている。
【００３８】
機械学習及び制御理論の能力は、既存の複合システムに適用することができる。学習システムは、システムの挙動を測定し、それを使用して最適化モデルを構築する。モデルは制御システムに渡され、制御システムは、そのモデルに加えて、指定された制約、及び測定されたシステム挙動を使用してパラメータを調整し、その制約が最も適切なように満たされることを確実にする。
【００３９】
このアプローチの利点は２つある。第１に、学習と制御の組み合わせは、複雑性及び動態の両方を処理し、どちらか一方のみに依存するアプローチよりも優れている（単に便宜的に、機械学習済み構成要素及び制御理論的構成要素を備えたこれらの制御システムを、「ホフマン最適化フレームワーク」、「ＨＯＦ」、「フレームワーク」、「抽象化コントローラ」、「抽象化制御システム」、「ハイブリッドコントローラ」、または「ハイブリッド制御システム」として識別することにする）。
【００４０】
第２に、この組み合わせにより、結果として得られるシステムは明らかに堅牢になる。つまり、学習されたモデルと実際動作の挙動との間で、その組み合わせが、指定された制約に収束することを引き続き可能にする、システムの許容誤差を容易に判定して設定することができる。
【００４１】
一般に、ＨＯＦを使用する複合の最適化されたシステムは、観測可能であり、かつ調整可能である。具体的には、指定された制約が分かっており、システムは、任意の制約範囲での動作を測定するフィードバックを生成するように、既に装置化されている。したがって、以下を含むが、それらに限定されないＨＯＦ制御の品質を観測することができる。すなわち、システムは安定しているか、または発振しているか？システムが発振しない場合、システムは所望の制約通りに安定するか？安定しない場合、安定挙動は所望の挙動から、どのくらい隔たっているのか？予期しないイベントによってシステムが不安定になったとき、システムが応答するのにどの位の時間がかかるか？同じイベントでは、安定化に向けて戻る過程で発生する最大の誤差は何か？システムが所望の挙動に安定した時点で、システムは、それらの制約に対して最適と推定される状態から、どれくらい隔たっているのか？これら全ての質問に対する答えは、指定された制約と挙動のフィードバックとの間の測定された差を使用して定量化することができる。
【００４２】
最適化されたシステムを更に評価して、その結果、階層型及び／または分散型の複合制御システムにおいて、または現場にある間に最適化戦略及び／または最適化戦術と組み合わせて、スタンドアロンの監視器としての監視、または様々な監視を提供することができるという、この洞察により、本開示で説明されるシステム及び方法は、様々な利点を提供することができる。
【００４３】
ＨＯＦの監視下にある複合制御システムは、制御システムが、それ自体またはシステム内の他のＨＯＦの動作に関するデータのリアルタイムの動的な流入への応答に基づいてシステムを最適化する少なくとも１つの制約及び／または性能目標を有する。また、１つのＨＯＦか、それとも１つ以上のＨＯＦを有する階層システムで稼働する複数のＨＯＦの複合体であるかに関わらず、制御されているシステムの最適化を更に最適化するために、それら自体を評価し、選択することができる制約及び性能目標を設定するシステムまたは方法についても本明細書で説明する。そのような分析の複雑さは、一例では、それ自体、システムの性能目標と整合性のある最適な静的制約または動的制約及び性能保証を設定するために、動作データを使用する（機械学習されたまたはされていない）ＨＯＦの使用か、またはオプションの検討を必要とする場合がある。
【００４４】
ＨＯＦの挙動は、一連の時間ステップにわたる達成された動作と制約との差として表され得る。適切に動作するコントローラは、偏差を最適に訂正して、性能を要件の近くに維持する。
【００４５】
これらのメカニズムを適用する上での重要な洞察は、いずれかの制約された範囲での所望の挙動と達成された挙動との時系列の差が、学習及び制御の両方の挙動を検出し、調整を促進するために使用できるという洞察である。より形式的には、時刻ｔにおける任意の制約ｃと測定された挙動ｂとの間の誤差ｅは、ｅ（ｔ）＝ｃ（ｔ）−ｂ（ｔ）として計算され得る。
【００４６】
例えば、時刻ｔでの誤差を計算したとなれば、それを使用して、異常作動をする、学習及び制御を組み合わせたシステムを検出することができる。ＨＯＦの動作に問題がある場合、ＨＯＦは次のような様々な挙動の１つ以上を示す可能性がある。
【００４７】
発振：システムが安定することはなく、制約（複数可）及び／または性能目標（複数可）を下回る状態と上回る状態とを交互に繰り返す。発振のパターンは非常に複雑であり、極値に向かう途中で多くの中間状態を通過する。このような発振は、正の値から負の値になり、元に戻る誤差によって示され得る。
【００４８】
動的変化への低速応答：誤差が急に大きな正または負の数になったが、その後、ゼロに近い大きさに戻るまでに多くの時間ステップがかかる場合。
【００４９】
定常的に低性能：システムは目標を下回る性能で安定し、大きな正の誤差をもたらす。
【００５０】
定常的に過剰性能：システムは目標を超える性能で安定し、大きな負の誤差をもたらす。
【００５１】
制約の片方を偏重する：挙動の制約のわずかに上方及び下方に測定値が均等に分布する代わりに、コントローラが制約の片方を不釣り合いに偏重する。
【００５２】
これらの異常作動または他の異常作動が検出される場合、学習器、コントローラ、目標自体、または制御システムの他のいくつかのパラメータを以下のように修正してもよい。
【００５３】
学習器の修正：先行研究では、学習システムが局所最適解を排除し、コントローラが凸最適化問題を解決できることを前提としていた。しかしながら、予想される挙動または予想外の挙動により、新しい局所最適解が導入される場合があり、コントローラは、上記の「発振」または「制約の片方を偏重すること」を含むがこれに限定されない挙動を示すようになる。したがって、発振挙動、または制約の片方を偏重することが検出された場合は、学習器のパラメータを調整して、新しいデータ点を組み込むことができる。最も単純なケースの１つでは、複合システムの選択された構成とその結果として生じる挙動とを記録して、学習器の訓練データに追加してもよい。その場合、例えば、学習器は、局所最適解を削除し、期待される安定した性能を達成する新しいモデルを出力することができる。学習器がオンライン更新を行うように既に構築されている場合（例えば、ある種の強化学習器）、システムは、学習率を調整して、局所最適解に関する新しい情報が、制御システムによって使用されるモデルに組み込まれる速度を上げてもよい。
【００５４】
コントローラの修正：あらゆる種類の制御システムは、外乱が与えられた場合に、誤差に対する感度を収束速度と引き換えるパラメータを公開する。例えば、ＰＩＤコントローラでは、これらの変数は１つ以上の極を含む。発振するシステム、または制約の片方を大きく偏重するシステムが与えられた場合、これらの制御パラメータを調整して、誤差許容範囲を広くすることと引き換えに、収束速度を上げることができる。この調整は、システムが制約に違反するのを防ぐが、制約のない挙動は、引き続き最適ではない可能性がある。また、これらの制御パラメータを調整することは、システムが動的なイベントの後に、再収束するのが遅過ぎることが観測される場合にも役立ち得る。例えば、元のシステムが悲観的過ぎて、実際の配備においては発生しない誤差条件を想定して設計されていたために、制御パラメータを調整することで、システムが、この予想以上に優れた挙動に対応することができる可能性がある。どちらの場合にも、制御パラメータの調整を学習パラメータの調整と組み合わせることが有用であり得る。例えば、予期せぬ誤差が発振の原因となっている場合、制御パラメータを調整してコントローラの動作を遅くし、発振を直ちに排除することができ、一方、学習パラメータをゆっくり調整して、新しい動作条件を取り入れた新しいモデルを生成することができる。
【００５５】
目標の修正：更に、学習パラメータ及び制御パラメータ自体を修正してもよい。追加または代替として、新たな仮想目標を作成してもよい。仮想目標は、別の方法では検出できなかった、または設計時に予想されなかった挙動を訂正するために使用することができる。例えば、配備された環境が予想よりも遥かに騒々しい場合（例えば、設計されたものよりも変化量が大きい場合）、提案されたシステムは、指定された制約を上書きして、異なる動作範囲の新しい制約を設定してもよい。例えば、システムが、９５パーセンタイルのサービス品質制約を有するが、実行時の変化量が予想よりも大きい場合、更に高いサービス品質を提供する仮想目標を設定してもよい。別の例では、配備されたシステムが、ユーザ指定の１つまたは複数の目標を満たすことができなくなる可能性がある。目標の非到達可能性は、標準的な制御方法論（通常は設計時に適用され、本明細書では実行時または他の評価（複数可）のために修正され得る）を使用してテストすることができる。この制御性テストにより、システムは、指定された目標を満たすことができなくなったと形式的に結論付けることができるようになり得る。この場合、システムは、所望の目標とは異なる仮想目標またはその他の目標を設定してもよく、次いでその状態を報告するようにしてもよい。
【００５６】
機械学習済みシステムは、例えばメモリ不足にならないなどの厳しい制約、及び性能構成と性能との間の間接的な関係など、多くの性能構成に特有の課題を容易に処理できない。それによって、例えば、システムが、個別のまたは関係のある構成要素またはサブ構成要素の階層型アーキテクチャまたは分散型アーキテクチャを含むように設計されている場合には、更に一層、複雑で困難になる。
【００５７】
このような分散アーキテクチャで性能構成を設定し、調整するには、多くの課題があり、例えば、（１）メモリ不足またはディスク不足の問題のような、厳しい性能の制約を脅かす性能構成、（２）他のシステム変数の閾値を設定することによって、間接的に性能に影響を与える性能構成、（３）特定のシステムイベントに関連付けられ、したがって条件付きでのみ効力を生じる性能構成、（４）多くの場合、種々の構成が同じ性能目標に同時に影響を及ぼし、調整を必要とすること、（５）ローカルの目標を持つサブシステムと、グローバルな目標を持つマスターである主要システムとを制御する階層システムにおいて、競合が発生し、即時の応答及び調整を必要とすること、（６）リアルタイムのイベントが、「正常」を「新たな正常」の状態へと長期的な変化をもたらす場合があり、１つ以上の制約を、一時的または永続的に、部分的または全体的に、不適切にする、または危険にさえする場合があること、及び（７）制御システムの最適化と監視との役割の間に生じる潜在的な競合または調整要件の解決がある。
【００５８】
システム起動時にユーザが性能構成を設定する従来構成フレームワークとは異なり、特定の実施形態では、ホフマン最適化フレームワークは、動作中に、疎または密に結合されたハードウェア及び／またはソフトウェアの制御システムに１つ以上のＨＯＦを含めることができる分散アーキテクチャ全体の性能構成を自動的に設定し、動的に調整する。ホフマン最適化フレームワークは、性能構成設定の問題を分解する。
【００５９】
ＨＯＦは、他の性能メトリックを監視するかどうか、及び／または最適化するかどうかに関わらず、性能の制約、目標、及び／または形式的な保証を、それらの制約及び／または目標を満たすための構成の設定及び調整の方法を気にすることなく、指定できるようにする。ＨＯＦは、例えば、分散した複合システム上で、１つ以上のＨＯＦの有無に関わらず、他の複合システムの存在下で、そのようにすることができる。ＨＯＦは、これらの最適化能力を提供して、動的に（実行中に）、静的に、または他の手段により、制約及び／または目標に性能構成を設定するが、更に、複合システムのグループ、または１つ以上のＨＯＦのグループの監視器として機能して、目標及び制約に対する性能を監視し、管理し、または別の方法で最適化する能力をも提供する。
【００６０】
上記のように、これらの制御システムの主な利点の１つは、複合の最適化されたシステムを、例えば、システムの実行中に発生する可能性がある異常作動、誤差、またはその他の準最適な状況もしくは構成などに対して堅牢にすることである。このような状況は、単独であれ、組み合わせであれ、いくつかの原因から、例えば、システムが本来設計されていない環境にシステムが遭遇することから生じる可能性があり、正確な原因を理解したり、または検出したりする必要はない。
【００６１】
先行研究の１つの限界は、例えば、複数の別々の構成要素（サブシステム）が、システム全体の性能に寄与し、これらのサブシステムのそれぞれが、ローカル及びシステム全体の固有の要件に合わせて最適化されている場合に、しばしば発生する実際の状況を無視する場合があるということである。
【００６２】
例えば、３層構造のウェブサーバでは、全体的なレイテンシ及びパワーは、（１）ロードバランサ、（２）リクエストマネージャ、及び（３）バックエンドデータベースのレイテンシ及びパワーによって決まる。大規模なシステムでは、これらの個々の構成要素は、半自律的に動作することができ、物理的に分離してもよい。その他の例としては、複雑な物流システムにおいて、他の物理的資産と協働して動作するドローン及びその他の配送車両の複合保有車両、または社内外の両方の性能目標を有する自律走行車などがある。
【００６３】
複数のＨＯＦ実施態様の管理は、動作時には更に複雑化する場合があり、固有のサブシステムのための個々のＨＯＦ実施態様のローカルまたは他の目標（性能保証及び／または制約）が、グローバルな性能目標を満たすように、時として、グローバルなソリューションの配列、及びそれらの実施のタイミングを拡大するか、または縮小することがある。
【００６４】
これらの分散された複合制御システムを最適化するには、監視ＨＯＦ方法が必要である。本明細書では、高位のＨＯＦコントローラ（または複数のそのような高位ＨＯＦコントローラ）が、その全体のシステム性能のための少なくとも１つの制約及び／または性能目標を有し、下位のローカルＨＯＦ及びまたは他の手段が、これらの個々のローカル目標を満たすように機能するときに、これらによって管理されているグローバル目標に向けた進捗状況を、高位ＨＯＦコントローラが追跡し、管理するシステム及び方法を開示する。
【００６５】
いくつかの例では、ＨＯＦは、少なくとも１つのＨＯＦ実施態様で構成される分散階層を制御するために使用してもよい。
【００６６】
いくつかの例では、制約及び／または性能目標は、単純または複雑な分散システムにおける単一または複数のＨＯＦアーキテクチャをＨＯＦが制御するときに、それ自体が類似または異なる制約と共に使用されているＨＯＦを制御するために使用してもよい。
【００６７】
いくつかの例では、制約及び／または性能目標は、単純または複雑な分散システムにおける単一または複数のＨＯＦアーキテクチャにおいて、ＨＯＦ自体を制御している、及び／またはＨＯＦ自体のリソース活用を管理するＨＯＦを制御するために使用してもよい。
【００６８】
いくつかの例では、ＨＯＦまたは１つ以上のＨＯＦで構成されるネットワークは、動作データを監視し、制御システムの性能に関するデータを収集し、報告し、そして応答することによって、制御システムの監視及び／または最適化の役割に適用することができる。
【００６９】
一例としては、自律走行車の決定を行うために画像プロセッサの使用されている画素数を監視することが挙げられる。画像がシステム要件を満たしていない場合、監視の役割は、画像プロセッサからのイメージングシステムの利用可能な画素数と他の要素とが、そのセンサの許容範囲内にあるかどうかを評価し、次に、設立された制約及び性能目標に基づいて、最適な解決策を用いて動作を推論することになる。その後、情報は、後で最適化を決定するために学習器が利用できるようになる。
【００７０】
いくつかの例では、ＨＯＦは、単純または複雑な分散制御システムにおいて、少なくとも１つ以上のＨＯＦで構成される単一または複数のアーキテクチャをＨＯＦが制御し、及び／または最適化するときに、単独でまたは組み合わせて、最適化及び／または監視の役割で使用することができる。
【００７１】
ホフマンフレームワークの単一配備のためのもう１つの制限は、システムの設計時に最大許容誤差を把握し、または推定する必要があることである。システムが配備され、予期せぬ大きな誤差が（例えば、予期せぬシステムのカスケード障害のために）発生した場合、システムがユーザ指定の動作制約を満たすという保証が失われる。
【００７２】
この制限を補うために、本開示は、上記の制限を克服するためのシステム及び方法を提供し、複合型の最適化されたシステムが、例えば、カスケード型の実行時エラーに遭遇した時でも、または異常作動が「新たな正常」になった時でも、実行し続けることを可能にする。
【００７３】
いくつかの例では、１つ以上のＨＯＦを使用して、１つ以上のＨＯＦまたは他の制御方法論を制御し、及び／または最適化し、それによって、例えば、元のシステムまたは他のシステムの制御からアクチュエータを除去することによって、動作境界を作成することができる。
【００７４】
いくつかの例では、階層型及びまたは分散型の制御システムの挙動は、システムが静的または動的な動作データに応答するとき、制約及び／または性能保証を調整して、グローバルまたはローカルの目標を満たすように手段を更に最適化するために、監視される。
【００７５】
いくつかの例では、複合制御システムの動作と、制御されている基礎となる複合システムの性能とから得られる動作上の「メタデータ」が、動作データとして収集され、集合的もしくは個別にまたは組み合わせて制御システム（複数可）に通知するために使用され、その応答が観測されて記録される。代替案を分析して、基礎となるシステムまたは他のシステムからの他のデータを用いる他の用途のための理想的な最適化戦略（複数可）及び／または静的または動的な戦術（複数可）を作成するために、（特に）時間的情報及びイベントシーケンス情報が、ＨＯＦ（複数可）の監視及び／または最適化の両方のために、ならびに学習器及び／またはコントローラの後分析及びシステム性能改善のために、実行時の動作条件及び動作ターゲットに応答して、動作性能の変更を設定するように、動的に使用される。
【００７６】
いくつかの例では、そのような分析に由来するツールは、時間的に動的であり、その同じ期間にわたって評価される動作データに応答して変化する、１つ以上のＨＯＦのための制約及び／または性能目標を作成するために使用され、例えば、任意の時点での最適化、及び／または監視目標が、動作性能に応じて同じであってもよく、または異なっていてもよいようにする。
【００７７】
これらのツールは、例えば、テストデータまたは学習セットを使用するシミュレーション、または入力データに応答する他のシミュレーションとして最初に配備されてもよい。また、これらのツールは、実行中のシステム、シミュレーション、またはシミュレーション（複数可）と実行中のシステム（複数可）の組み合わせに配備してもよい。
【００７８】
例えば、これらのツールは、例えば機械学習済みツールを使用してもよく、電子的に、人間の関与の有無に関わらず、及び／または両方の方法、または自然言語生成から派生したレポートなどの新規の方法を組み合わせるシステムに、配備させてもよい。
【００７９】
ＩＩ．ハイブリッドコントローラの例
本明細書で使用するとき、「ハイブリッドコントローラ」という用語は、協働して、１つ以上の制御入力（例えば、制御下のシステムから検出されるか、または別の方法で受信される入力）に基づいて、１つ以上の制御出力（例えば、制御下のシステムに適用される出力）を生成する複数の異なるサブ構成要素を含むコントローラを指す。そのようなハイブリッドコントローラの種々の構成要素は、それぞれの入力を受け取り、それぞれの出力を生成し、ある構成要素の出力は、ハイブリッドコントローラの特定の構成に従って、別の構成要素に入力として提供され得る。特定の例では、ハイブリッドコントローラは、動的システム構成要素及び学習済みシステムモデル構成要素を含んでもよい。動的システム構成要素には、コントローラが時間的な動態（例えば、１つ以上の極及び／または零点によって特徴付けられる時間的な動態）を示すと共に、コントローラ／システム性能全体に関する特定の形式的な保証を提供することを可能にするために、１つ以上のフィルタ、積分器、微分器、利得、またはその他の要素を含めることができる。学習済みシステムモデル構成要素には、ルックアップテーブル、多項式関数、多変数関数、ニューラルネットワークもしくは他のモデルでエンコードされた任意の複雑挙動、またはハイブリッドコントローラが、制御下のシステムの観測された過去の最適（及び準最適）な挙動に適合した制御を提供すること、複雑な非線形及び／または多次元の挙動を示すこと、及び少数の入力に基づいて多くの出力を提供することを可能にする、制御対象システムの挙動及び／または構造に関する情報（例えば、訓練データ）に基づく他のいくつかの要素を含めることができる。ハイブリッドコントローラには、複数のそのような学習済みシステムモデルを含めることができ、ハイブリッドコントローラは、これらのモデルの間を（例えば、制御対象システムの動作に関して受け取ったデータに対する、各学習済みシステムモデルの正確さの信頼度に基づいて）切り替えることができる。
【００８０】
また、ハイブリッドコントローラには、制御対象システムの動作に関する新たに受信されたデータに基づいて、学習済みシステムモデル（複数可）を訓練し、または別の方法で更新するように構成された学習済みシステム更新モジュールを含めることもできる。そのような学習済みシステム更新モジュールは、更新スケジュールに従って（例えば、学習済みシステムモジュールを、経過した絶対秒数、計算されたコントローラ時間ステップ数、または他のいくつかのスケジュールごとに１回、更新するように）、及び／または他のいくつかの情報または条件から決定されたタイミングに従って（例えば、制御対象システムの観測された挙動が、学習済みシステムモデルによって予測された挙動から、指定の閾値を超えて逸脱した場合に、学習済みシステムモデルを更新するように）、学習済みシステムモデル（複数可）を更新するように動作してもよい。このような学習済みシステム更新モジュールは、学習済みシステムモデルを、例えば、勾配降下訓練法に関係したステップサイズまたはステップ長によって指定された量だけ更新するように動作してもよい。
【００８１】
図１Ａは、対象のシステム１０１ａを制御するように構成されたハイブリッドコントローラ１００ａの例を示す。本システムは、対象の任意システム、例えば、サーバもしくは他の何らかのコンピューティング基体の１つ以上のプロセッサ、物流ネットワークの物流ハブもしくは他の施設、ロボットシステムの関節モータもしくは他のサブ構成要素、またはシステムが制御するのに有利である他の何らかのシステムであってよい。ハイブリッドコントローラ１００ａは、制約１２０ａ、動的システム１３０ａ、学習済みシステムモデル１４０ａ、及び学習済みシステム更新モジュール１５０ａを含む。また、ハイブリッドコントローラ１００ａは、被制御システム１０１ａから入力１１０ａを受け取る。
【００８２】
制約は、例えば、システム１０１ａの出力のために指定された目標値であり得る。コントローラ１００ａは、システム１０１ａの出力に、そのような制約１２０ａの値を反映するようにシステム１０１ａを制御するための出力を生成し得る。システム１０１ａの出力が検出され、次いで入力１１０ａを介して制約と比較される。いくつかの例では、入力１１０ａは、検出されたシステム１０１ａの出力のための単なるパススルーであってもよい。追加または代替として、入力１１０ａは、被制御システム１０１ａの１つ以上の検出された出力に基づいて有用な入力値（例えば、システムの全体的な性能を表す性能メトリック）を生成するために、フィルタ、伝達関数、または他のいくつかのアルゴリズムもしくは他の関係性を含んでもよい。例えば、システム１０１ａの出力は、プロセッサのいくつかのコアのそれぞれによって実行される１秒あたりの動作数であってもよく、入力１１０ａは、全てのコアの１秒あたりの動作数の合計に対応する性能メトリックであってもよい。別の例では、システムの出力は、システム１０１ａの全体的な性能の尺度（例えば、サーバによって実行される１秒あたりの総動作数）であってもよく、入力１１０ａは、ベースライン性能レベルに対する、経時的なサーバ出力の増加または「高速化」に対応する値であってもよい。別の例では、システムの出力は、システム全体の性能とプロセッサの全体的な電力消費との１つ以上の導出された測定値を含むことができ、システムへの入力は、性能及び電力消費の相対的な変化に対応する２つの値を含むことができる。この例では、入力及び出力はベクトルであり、各ベクトル成分はメトリックまたは信号である。
【００８３】
次に、制約１２０ａと入力１１０ａとの間の差が判定され、その差が動的システム１３０ａに適用されて、動的システム出力が生成される。動的システムは、１つ以上の、微分器、積分器、利得、和算、多極フィルタ、サンプルホールド、漏れ積分器、フィードバックループ、目標値、非線形関数、非線形フィルタ、多項式関数、有限インパルス応答フィルタ、無限インパルス応答フィルタ、内部状態変数、または差分入力に基づいて動的で時間依存の出力を提供するように構成された他の動的要素を含んでもよい。動的システム構成要素１３０ａの挙動は、１つ以上のパラメータ（例えば、フィルタの１つ、またはその１つ以上の極及び／または零点、または動的システム１３０ａの他の要素のうちの１つ以上のパラメータ）によって特徴付けられ得る。例えば、動的システムは、１つ以上の極の振幅及び位相によって特徴付けられたフィルタを含んでもよい。
【００８４】
動的システム構成要素１３０ａの出力は、学習済みシステムモデル構成要素１４０ａに適用されて、システム１０１ａに適用され得る１つ以上のコントローラ１００ａ出力を生成する。学習済みシステムモデル構成要素１４０ａは、１つ以上の出力を生成することができ、これらの出力は、その後、被制御システム１０１ａに適用され得る。学習済みシステムモデルの出力は、被制御システム１０１ａのアクチュエータまたは他の要素のセットのそれぞれの１つのための１つ以上の動作パラメータを含んでもよい。例えば、被制御システム１０１ａは、演算器（例えば、離散プロセッサ、プロセッサコア、メモリユニット、算術論理演算装置、サーバブレード、テクスチャ処理ユニット）のアレイを含む計算基体（例えば、サーバ、ＧＰＵ、サーバのネットワーク、クラウドコンピューティングシステム）であってもよい。そのような例では、コントローラ１００ａの出力は、演算器のそれぞれのための１つ以上の動作パラメータを含んでもよい。そのような動作パラメータには、クロック速度、メモリバス速度もしくは他のバス速度、ビット幅、特定の演算器がアクティブであるべきか非アクティブであるべきか、アクティブであるべき演算器サブ構成要素（例えば、ＡＬＵ、メモリセル）の数もしくは識別情報、または被制御システム１０１ａの演算器のうちの１つ以上の演算器の他のいくつかの動作パラメータが含まれ得る。
【００８５】
学習済みシステムモデル構成要素１４０ａは、動的システム構成要素１３０ａの出力を、制御システム１０１ａを制御するために適用可能な１つ以上の出力に変換するための１つ以上の人工ニューラルネットワーク、多項式関数、非線形関数、多変数関数、区分的定義関数、ルックアップテーブル、または他の要素を含むことができる。いくつかの例では、学習システムモデル構成要素１４０ａは、複数の異なる学習システムモデル（例えば、異なる基礎構造を有するモデル、訓練／学習に先立って異なる開始条件に初期化されたモデル、異なる訓練データのセットに公開されたモデル、利用可能な訓練データに基づいてモデルを訓練するために使用される訓練方法に関して異なるモデル、及び／または何らかの他の検討事項に関して異なるモデル）を含んでもよい。そのような例では、学習済みシステムモデル構成要素１４０ａは、その学習済みシステムモデルのセットのうちの１つを選択し、動的システム構成要素１３０ａの出力を、選択された学習済みシステムモデルに適用して、被制御システム１０１ａを制御するために適用可能な１つ以上の出力を生成するように構成されてもよい。このような選択は、例えば、被制御システム１０１ａの挙動を予測することに関して、学習済みシステムモデルのそれぞれの精度の推定値に基づいて、または学習済みシステムモデル構成要素１４０ａのサブ要素における他のいくつかの判定された信頼度に基づいて実行されてもよい。そのような推定値は、被制御システム１０１ａからの検出された出力に基づいて、例えば、学習済みシステム更新モジュール１５０ａによるそのような出力に基づいて決定され得る。
【００８６】
例えば、図１Ｂは、対象のシステム１０１ｂを制御するように構成され、制約１２０ｂ、動的システム１３０ｂ、及び学習システムモデル１４０ｂを含み、被制御システム１０１ｂから入力１１０ｂを受け取るハイブリッドコントローラ１００ｂの例を示す。被制御システム１０１ｂは、例えば、被制御システム１０１ｂの演算器であり得る４つのサブシステム１０５ａ、１０５ｂ、１０５ｃ、１０５ｄを含む。学習済みシステムモデル１４０ｂは、ルックアップテーブル１４５ｂを含む。ルックアップテーブル１４５ｂは、複数のエントリを含み、それぞれがシステム１０１ｂを制御するために適用され得る少なくとも１つの出力を含む。一例として示すように、図１Ｂのルックアップテーブル１４５ｂの各エントリは、被制御システム１０１ｂの演算器１０５ａ、１０５ｂ、１０５ｃ、１０５ｄのそれぞれのクロック速度（「ＣｌｋＡ、ＣｌｋＢ、ＣｌｋＣ、ＣｌｋＤ」）の値を含む。ルックアップテーブル１４５ｂの各エントリは、更に、最初の２つの演算器１０５ａ，１０５ｂのコアがいくつアクティブであるか（「ＣｏｒｅｓＡ，ＣｏｒｅｓＢ」）と、後者の２つの演算器１０５ｃ，１０５ｄによって実行される演算のビット幅（「ＷｉｄｔｈＣ，ＷｉｄｔｈＤ」）との表示を含む。動的システム構成要素１３０ａの出力の値は、ルックアップテーブル１４５ｂの複数のエントリから特定のエントリを選択して、学習済みシステムモデル１４０ｂから出力し、それによってシステム１０１ｂを制御するために使用される。例えば、ルックアップテーブル１４５ｂの各エントリは、動的システム構成要素１３０ａ出力の値の範囲に対応してよい。
【００８７】
本明細書で説明されるハイブリッドコントローラの学習済みシステムモデル構成要素（例えば、１４０ａ、１４０ｂ）は、様々な方法で生成することができる。制御すべきシステムの完全なモデルが分かっている場合、この完全なモデルを使用して、学習済みシステムモデルを生成してもよい（例えば、ルックアップテーブルのエントリと、対応する動的システム出力値の範囲を生成してもよい）。追加または代替として、制御対象システムの過去及び／または進行中の観測された挙動に関する情報、または同様のシステム（例えば、制御すべきサーバまたは他のシステムの特定のモデルの他の例）の挙動に関する情報を使用して、ハイブリッドコントローラの学習済みシステムモデルの生成、更新、及び／または訓練を行ってもよい。例えば、学習済みシステム更新モジュール１５０ａは、被制御システム１０１ａから検出された出力に基づいて、学習済みシステムモデル構成要素１４０ａを更新し、及び／または訓練することができる。
【００８８】
制御対象システムの挙動及び／または構造に関する取得された追加のデータに基づく、学習済みシステムモデルに対する更新は、ハイブリッドコントローラの実施に使用されるのと同じ計算基体（例えば、プロセッサ、サーバ）によって、ローカルで実行され得る。追加または代替として、そのような更新はリモートシステム（例えば、クラウドコンピューティングシステム）によって実行されてもよく、その後、更新された学習済みシステムモデルに関する情報（例えば、更新された１つ以上のニューラルネットワークの重み、または他のパラメータの値、更新されたルックアップテーブル）は、リモートシステムから、ハイブリッドコントローラを実施しているシステムに送信されてもよい。このようなリモートシステムは、複数の異なるハイブリッドコントローラに対して、そのような学習ベースの更新を提供するサービスとして機能し得る。このようなリモートシステムは、ハイブリッドコントローラを実施しているシステムからリモートシステムに送信された制御対象システムに関する情報（例えば、適用された制御出力、検出されたシステム出力及び／または性能メトリック）に基づいて、このような学習更新を生成してもよい。
【００８９】
ハイブリッドコントローラの学習済みシステムモデルのそのような更新、及び／または制御対象システムの挙動及び／または構造についての学習は、継続的に、例えば、指定されたレートで、または指定されたスケジュールに従って行われ得る。追加または代替として、学習済みシステムモデルに対する更新は、例えば、ハイブリッドコントローラの性能が閾値性能レベルを下回ったことを検出すること、制御対象システムの性能の急激な変化を検出すること、制御対象システムが特定の望ましくない動作状態に入ったことを検出すること、または他の何らかのイベントを検出することなど、いくつかのイベントを検出することに応答して行われ得る。学習済みシステムモデルが更新されるレートまたはタイミング、及び／またはそのような更新の大きさまたは程度（例えば、勾配降下またはその他の反復更新プロセスのステップサイズ）は、学習済みシステムモデルの精度の推定値に基づいて、または学習済みシステムモデルにおける他のいくつかの判定された信頼度に基づいて判定されてもよい。例えば、モデルの推定精度が低い場合に、学習済みシステムモデルをより頻繁に、及び／または大幅に更新してもよい。そのような推定値は、例えば、学習済みシステムモデルによって生成された予測されたシステム出力と、システムの観測された出力との間の誤差の量に基づいて決定されてもよい。
【００９０】
また、そのような判定された信頼度は、ハイブリッドコントローラの動作の他の態様を更新し、または制御するために使用されてもよい。例えば、動的システム構成要素の極及び／または零点が、例えば、学習済みシステムモデルの信頼度が低いときに、動的システム構成要素の応答性を低下させるように調整されてもよい。これは、例えば、学習済みシステムモデルが制御対象システムの挙動を正確に予測できないときに、目標（例えば、最大メモリ、最大電力使用）を超える結果となる制御出力をハイブリッドコントローラが生成する可能性を減らすために行ってもよい。
【００９１】
いくつかの例では、ハイブリッドコントローラ（例えば、１００ａ、１００ｂ）によって制御されるシステム（例えば、１０１ａ、１０１ｂ）は、計算基体（例えば、１つ以上のコントローラ、プロセッサ、またはその他のコンピューティング要素を含む、サーバ、コンピュータ、グラフィックプロセッサ、またはその他のシステム）を含む。これらの例では、ハイブリッドコントローラは、システムの計算基体によって提供される計算リソースの一部分を使用して実施され得る。追加または代替として、ハイブリッドコントローラは、別のコントローラ、プロセッサ、または他のコンピューティング要素（複数可）（例えば、特定用途向けに作られた特定用途向け集積回路）上で実施されてもよい。
【００９２】
ＩＩＩ．マルチハイブリッドコントローラアーキテクチャの例
上記のように、ハイブリッドコントローラは、対象のシステムを制御するために適用され得る。このようなハイブリッドコントローラは、制御対象システムの複雑挙動及び／または複雑構造に関する観測された情報を組み込む能力と、例えば、モデルの信頼度が低い場合にコントローラ全体がより「控え目に」振る舞うように、学習済みシステムモデルの精度に対する判定された信頼度に基づいて、動的コントローラの極またはその他の時間的動態を修正することによって、全体的なシステム性能に関する特定の保証を示すように形式的に示すことができる時間的に動的なコントローラ出力を提供する能力を含む、多くの利点を提供する。しかし、このようなハイブリッドコントローラの性能は、特定の状況下では低下する場合がある。例えば、制御対象システム及び／またはそのようなシステムの環境が、ハイブリッドコントローラを生成するため（例えば、ハイブリッドコントローラの学習済みシステムモデル要素を訓練するため）に使用されるシステム及び／または環境の状態から大きく逸脱している場合、ハイブリッドコントローラは、最適ではない出力を生成するおそれがある。
【００９３】
例えば、制御対象システムが、サーバのネットワークである場合があり、サーバのネットワークを統御するために使用されるハイブリッドコントローラは、サーバの１つに重大な障害が発生した場合に、最適ではない性能を発揮する可能性がある。別の例では、制御対象システムが産業用ロボットである場合があり、ロボットの関節サーボが動作不能になるか、または性能の大幅な低下を示す場合に、ロボットを統御するために使用されるハイブリッドコントローラは、最適ではない性能を発揮する可能性がある。更に別の例では、制御対象システムが、荷物を配送するための物流ネットワークである場合があり、ネットワークで使用されている空港が悪天候のために閉鎖された場合に、ネットワークを統御するために使用されるハイブリッドコントローラは、最適ではない性能を発揮する可能性がある。
【００９４】
このような状況では、ハイブリッドコントローラの性能が低下する可能性がある。また一方、ハイブリッドコントローラの性能は、これらの状況でハイブリッドコントローラを変えることによって（例えば、ハイブリッドコントローラの１つ以上の制約または他のパラメータを変更することによって、コントローラの学習済みシステムモデルを更新することによって）、改善することができる。これには、コントローラの制約（例えば、１２０ａ、１２０ｂ）を変更する（例えば、達成が容易な性能目標を指定する）ことが含まれてもよい。別の例では、ハイブリッドコントローラの動的システム要素のフィルタ極または他のパラメータを（例えば、制御対象システムの出力の変化に対して、ハイブリッドコントローラが、多かれ少なかれ応答性を有するように）調整することによって、コントローラの時間的動態が修正され得る。更に別の例では、ハイブリッドコントローラの学習済みシステムモデルを修正してもよい。これには、制御対象システムに関する最近の情報に基づいて、学習済みシステムモデルを更新すること（例えば、学習済みシステムモデルの非同期更新を実行すること）や、または学習済みシステムモデルに適用される進行中の学習プロセスの更新レート（例えば、逆伝播または他の学習アルゴリズムの更新レート、ステップサイズ）を調整することが含まれてもよい。
【００９５】
ハイブリッドコントローラの動作及び／または構成に対するそのような調整が指示されていることを判定するために、及び／またはそのような調整を生成するために、１つ以上の監視コントローラ（複数可）が提供され得る。そのような監視器コントローラは、入力として、制御対象システムの出力（複数可）を受け取り、出力として、ハイブリッドコントローラのパラメータまたは制約の値、ハイブリッドコントローラの要素（例えば、学習済みシステムモデル）の更新のタイミング、またはハイブリッドコントローラの動作及び／または構成に関連する他のいくつかの出力を生成することができる。
【００９６】
このことは、一例として図２に示される。第１のハイブリッドコントローラ２００ａは、第１のシステム２０１ａに制御出力を供給し、第１のシステム２０１ａから１つ以上の入力を検出するように構成される。第１のハイブリッドコントローラ２００ａは、入力２１０ａ、制約２２０ａ（例えば、動作目標値）、動的システム２３０ａ、及び学習済みシステムモデル２４０ａを含む。システム２０１ａの出力は、統括コントローラ２５０への入力としても供給される。統括コントローラ２５０は、第１のシステム２０１ａからの検出された出力に基づいて、制約２２０ａ、動的システム２３０ａ（例えば、フィルタの極の値または他のいくつかの動的パラメータ）、及び／または学習済みシステムモデル２４０ａ（例えば、更新された学習率またはその他のパラメータ、学習済みシステムモデルを更新する必要があるという表示）のうちの１つ以上の値及び／または更新を生成するように構成される。
【００９７】
統括コントローラ２５０は、様々な方法で構成することができる。いくつかの例では、統括コントローラ２５０は、１つ以上の制御要素、例えば、フィルタ、フィードバックループ、積分器、利得、微分器、加算器、多項式関数を含んでもよい。いくつかの例では、統括コントローラ２５０は、それ自体がハイブリッドコントローラであってもよい。いくつかの例では、統括コントローラ２５０は、第１のシステム２０１ａの出力における１つ以上のパターンまたは条件を検出し、ハイブリッドコントローラ２００ａの動作及び／または構成を応答性良く調整するように構成され得る。この例は、統括コントローラ２５０が、そのようなパターンまたは条件の存在を明示的に検出すること（例えば、システム出力を閾値と比較すること、パターンを検出するためにテンプレート照合アルゴリズムを使用すること）、及び／またはコントローラの要素（例えば、フィルタ、ルックアップテーブル、フィードバックコントローラ）が、そのような検出を効果的に行うように構成されていることを含んでもよい。
【００９８】
そのような検出されたイベントは、システム２０１ａ出力において、システム２０１ａ出力のフィルタリングされたバージョンにおいて（例えば、システム２０１ａ出力の統合された、バンドパスされた、微分化された、または別の方法でフィルタリングされたバージョンにおいて）、システム２０１ａ出力の目標値によってオフセットされたバージョン（例えば、制約２２０ａの値によってオフセットされたバージョン）において、または別の方法で処理されたシステム２０１ａ出力のバージョンにおいて、１つ以上のパターンまたは条件の存在を検出することを含んでもよい。システム２０１ａ出力に基づいてパターン、条件、またはイベントを検出することは、（ｉ）システム２０１ａの出力が発振していることを検出すること、（ｉｉ）システム２０１ａの入力及び／または環境の変化に応答して、システム２０１ａの出力の応答が遅すぎるか（例えば、閾値レートより遅い）、または速すぎる（例えば、閾値レートより速い）ことを検出すること、（ｉｉｉ）システム２０１ａの入力及び／または環境の変化に応答して、システム２０１ａの出力が（例えば、閾値を超えて）目標値をオーバーシュートすることを検出すること、及び／または（ｉｖ）システム２０１ａの出力が、目標値（例えば、制約２２０ａ）に対して、（例えば、閾値を超えて）一貫したバイアスを示すことを検出することを含んでもよい。
【００９９】
このような統括コントローラは、複数の異なるハイブリッドコントローラに、そのような制御／監視を提供するために適用されてもよい。これは、図２に示されており、第２のシステム２０１ｂに制御出力を供給し、第２のシステム２０１ｂから１つ以上の入力を検出するように構成された第２のハイブリッドコントローラ２００ｂをも含む。第２のハイブリッドコントローラ２００ｂは、入力２１０ｂ、制約２２０ｂ、動的システム２３０ｂ、及び学習済みシステムモデル２４０ｂを含む。第２のシステム２０１ｂの出力は、統括コントローラ２５０への入力としても供給される。統括コントローラ２５０は、更に、第２のシステム２０１ｂからの検出された出力に基づいて、制約２２０ｂ、動的システム２３０ｂ、及び／または第２のコントローラ２００ｂの学習済みシステムモデル２４０ｂのうちの１つ以上の値及び／または更新を生成するように構成される。
【０１００】
このような例では、異なるシステム２００ａ、２００ｂは、単一のより大きなシステムのサブシステムであってもよい。したがって、統括コントローラ２５０は、下位のコントローラ２００ａ、２００ｂを介してシステム全体を効果的に制御していると考えられ得る。例えば、システム２０１ａ、２０１ｂは、データセンタのそれぞれ異なるサーバであってもよい。別の例では、システム２０１ａ、２０１ｂは、従来から古典的な制御を採用しており、本明細書に記載された方法を適用することによって性能を改善できるシステムである、旅客機のエンジン及び油圧トランスデューサであり得る。更に別の例では、システム２０１ａ、２０１ｂは、自律走行車のバッテリ管理ユニット及びモータであり得る。
【０１０１】
追加または代替として、監視下にある１つまたは複数のハイブリッドコントローラに、そのような制御／監視を提供するために、複数の統括コントローラを適用することができる。これは図２に示されており、これはまた、第２の統括コントローラ２６０を含む。第２の統括コントローラ２６０は、監視下でハイブリッドコントローラ２００ａ、２００ｂの一方または両方から入力を受け取り、第２の統括コントローラ２６０は、学習済みシステムモデル（複数可）、及び／または学習済みシステムモデル（複数可）を訓練し、及び／または更新するために使用されるプロセスの制約（複数可）、動的システムパラメータ（複数可）、及び／またはパラメータ（複数可）に対する更新及び／または修正を出力することができる。
【０１０２】
このような例では、それぞれの統治コントローラ２５０、２６０は、単一のシステム（例えば、第１のハイブリッドコントローラ２００ａによって制御されているシステム２０１ａ）及び／または１つ以上のサブシステムを含む複合システム（例えば、第１の２００ａシステムと第２の２００ｂシステムとを含む複合システム）の異なる性能目標または制約を構成することができる。
【０１０３】
ＩＶ．応用例と試験結果
本明細書で説明される方法及びシステムは、様々な用途に適用されており、それらの用途によるシステムの改善された動作を提供している。本明細書で説明する制御方法は、複数の競合する目標に照らして効率的な動作が望まれる任意のシステムに幅広く適用可能である。これらの制御方法は、モバイルデバイス、データセンタサーバ等の機器、分散ソフトウェアシステム、映像配信ネットワーク、自律走行車、グラフィックプロセッシングユニット、携帯無線機、衛星全地球測位受信機、またはその他の複合システムの動作に適用することができる。
【０１０４】
１つの適用例では、本明細書に記載されている制御方法を、Ｓａｍｓｕｎｇ  Ｇａｌａｘｙ  Ｓ５ハンドセットにて出荷されたＳａｍｓｕｎｇ  Ｅｘｙｎｏｓ  ５４２２プロセッサの性能を改善するために適用した。この適用例では、本方法は、複雑なベンチマークにおいて、代替の最先端の最適化方法（ＡＩを含む）と比較して、同等またはそれ以上の性能レベルで、エネルギー使用量を１４％削減することを達成した。また、本方法では、純正のＳａｍｓｕｎｇ／Ａｎｄｒｏｉｄ最適化ソフトウェアと比較して、４０％以上のエネルギー使用量の削減を実現した。
【０１０５】
別の適用例では、本明細書で説明する制御方法は、ウェブ検索、デジタル信号処理、クラスタリング、画像検索、ビデオエンコーディング、及び画像追跡（これらのアプリケーションは同時に実行されることもある）など、８つの異なるアプリケーションを実行する６４ＧＢ  ＲＡＭのＩｎｔｅｌ  Ｘｅｏｎ  Ｅ５  ２６００シリーズデュアルプロセッサの性能を向上させるために適用した。この適用例では、本現在の方法は、ＡＩを含む代替的な最先端の最適化方法と比較して、エネルギー使用量を（「壁から」、コンピュータシステム全体に対して測定した場合）全体で８％削減することを達成した。
【０１０６】
更に別の適用例では、ＭａｐＲｅｄｕｃｅ、Ｃａｓｓａｎｄｒａ、Ｈａｄｏｏｐ  Ｄａｔａｂａｓｅ／Ｈａｄｏｏｐ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍを実行する複合ソフトウェア分散ストレージ及び処理サービスの性能を向上させるために、本明細書で説明する制御方法を適用した。この適用例では、本方法は、代替の最先端の最適化方法と比較して、３４％の高速化を達成し、かつクラッシュが６０％少ないことを示した。これは特に印象的なことで、コントローラには、ストレージと処理サービスの基盤となる構造または能力に関する事前情報を一切提供していなかった。その代わりに、コントローラは、被制御システムに関するこの情報を学習するように、時間をかけて動作した。
【０１０７】
更なる適用例では、本明細書に記載された制御方法を、自律走行車の画像処理システムの性能を改善するために適用した。この適用例では、本方法は、システムのハードウェア能力の７５％が故障したにもかかわらず、画像処理システムが引き続き機能して、反応することが可能であった。
別の例では、本明細書に記載された制御方法を、ＬＡＭＭＰＳフレームワークを使用して分子動力学シミュレーションを実行するＣｒａｙ  ＣＸ４０システムの性能を改善するために適用した。本制御方法は、指定されたパワーバジェット内で分子動力学解析の完了数を増やすために適用した。この適用例（これは、現在及び将来のエクサスケールスーパーコンピュータ及び／またはスーパーコンピュータ環境、ならびにその他への本明細書の方法の適用可能性を示す）では、本明細書に記載した階層型及び分散型の制御方法の適用は、電力バジェット内で完了した解析の数に関して、最先端の方法及び他の代替的な電力及び／または性能管理方法と比較して、約３０％の増加をもたらした。
【０１０８】
Ｖ．方法の例
図３は、本明細書で説明するシステムを制御するための方法３００のフローチャートである。方法３００は、第１の期間の間に、システムの出力を検出する（３０２）ことを含む。方法３００は、第１の期間の間に検出された出力に基づいて、システムの第１の性能メトリックを判定する（３０４）ことを更に含む。方法３００は、第１の性能メトリックに基づいて、第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成する（３０６）ことを更に含む。第１のハイブリッドコントローラは、第１の制約、第１の動的システム、及び第１の学習済みシステムモデルを含む。第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成することは、（ｉ）第１の性能メトリックと第１の制約との間の第１の差を判定すること、（ｉｉ）判定された第１の差を第１の動的システムに適用して、第１の動的システム出力を生成すること、（ｉｉｉ）生成された第１の動的出力を第１の学習済みシステムモデルに適用して、第１のハイブリッドコントローラ出力を生成することを含む。方法３００は、更に、生成された第１のハイブリッドコントローラ出力に従って、第２の期間の間に、システムを制御する（３０８）こと、及び第３の期間の間に、システムの出力を検出する（３１０）ことを含む。方法３００は、第３の期間の間に検出された出力に基づいて、システムの第２の性能メトリックを判定する（３１２）こと、及び第１の性能メトリック及び第２の性能メトリックに基づいて、第２のハイブリッドコントローラを動作させて、更新された制約値を生成する（３１４）ことを更に含む。方法３００は、更新された制約値に従って、第１の制約を更新する（３１６）こと、第２の性能メトリックに基づいて、更新された第１のハイブリッドコントローラを動作させて、第２のハイブリッドコントローラ出力を生成する（３１８）こと、及び生成された第２のハイブリッドコントローラ出力に従って、第４の期間の間に、システムを制御する（３２０）ことを更に含む。
【０１０９】
方法３００は、追加の要素または特徴を含んでもよい。いくつかの実施形態では、第２のハイブリッドコントローラは、第１のハイブリッドコントローラの動作及び／または構成を修正するために、追加または代替の出力を提供すること（例えば、第１のコントローラの動的システムの動的パラメータの修正、パラメータの変更、及び／または第１のコントローラの学習済みシステムモデルの更新の開始）ができる。いくつかの実施形態では、第２のハイブリッドコントローラは、追加のシステムから更に入力を受け取り、追加のシステムを制御するように構成された追加のコントローラ（例えば、ハイブリッドコントローラ）の動作及び／または構成に関する出力を提供してもよい。追加または代替として、第１のハイブリッドコントローラは、追加の監視コントローラ（例えば、追加の監視ハイブリッドコントローラ）から、更新されたパラメータ値を受け取ってもよい。
【０１１０】
図４は、本明細書で説明するシステムを制御するための方法４００のフローチャートである。方法４００は、第１の期間の間に、システムの出力を検出する（４０２）ことを含む。方法４００は、第１の期間の間に検出された出力に基づいて、システムの第１の性能メトリックを判定する（４０４）ことを更に含む。方法４００は、第１の性能メトリックに基づいて、第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成する（４０６）ことを更に含む。
【０１１１】
第１のハイブリッドコントローラは、第１の制約、第１の動的システム、第１の学習済みシステムモデル、及び第１の学習済みシステム更新モジュールを含む。第１の学習済みシステム更新モジュールは、システムから検出された少なくとも１つの出力に基づいて、第１の学習済みシステムモデルを更新すると共に、第１の学習パラメータに対応するタイミングまたはレートの少なくとも１つに従って、第１の学習済みシステムモデルを更新するように構成されている。第１の動的システムは、第１の動的システムの全体的な応答性に対応する第１の動的パラメータを有する。第１のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ出力を生成することは、（ｉ）第１の性能メトリックと第１の制約との間の第１の差を判定すること、（ｉｉ）判定された第１の差を第１の動的システムに適用して、第１の動的システム出力を生成すること、（ｉｉｉ）生成された第１の動的出力を第１の学習済みシステムモデルに適用して、第１のハイブリッドコントローラ出力を生成することを含む。
【０１１２】
方法４００は、更に、生成された第１のハイブリッドコントローラ出力に従って、第２の期間の間に、システムを制御する（４０８）こと、及び第３の期間の間に、システムの出力を検出する（４１０）ことを含む。方法４００は、第３の期間の間に検出された出力に基づいて、システムの第２の性能メトリックを判定する（４１２）こと、及び第１の性能メトリック及び第２の性能メトリックに基づいて、第２のハイブリッドコントローラを動作させて、第１のハイブリッドコントローラ更新版を生成する（４１４）ことを更に含む。第１のハイブリッドコントローラ更新版は、更新された第１の制約値、更新された第１の動的パラメータ、または更新された第１の学習パラメータのうちの少なくとも１つを含む。方法４００は、第１のハイブリッドコントローラ更新版に従って、第１のハイブリッドコントローラを更新する（４１６）こと、第２の性能メトリックに基づいて、更新された第１のハイブリッドコントローラを動作させて、第２のハイブリッドコントローラ出力を生成する（４１８）こと、及び生成された第２のハイブリッドコントローラ出力に従って、第４の期間の間に、システムを制御する（４２０）ことを更に含む。
【０１１３】
方法４００は、追加の要素または特徴を含んでもよい。いくつかの実施形態では、第２のハイブリッドコントローラは、追加のシステムから更に入力を受け取り、追加のシステムを制御するように構成された追加のコントローラ（例えば、ハイブリッドコントローラ）の動作及び／または構成に関する出力を提供してもよい。追加または代替として、第１のハイブリッドコントローラは、追加の監視コントローラ（例えば、追加の監視ハイブリッドコントローラ）から、更新されたパラメータ値を受け取ってもよい。
【０１１４】
ＶＩ．応用例
ハイブリッドコントローラ／ＨＯＦは、直接制御、監視、シミュレーション、開発、または既存／旧来のシステムまたは他の制御方法に適用されるかどうかに関わらず、それらが配置されているシステムの性能及び挙動を根本的に変更し、改善することができる。ＨＯＦは一般化可能であるが、１つまたは複数のシステムに導入されたＨＯＦは、システムの性能及び特性を変更することができる。運用にも根本的な変化がある。システムは現在、１つまたは複数の目標に向けて、利用可能なリソースを割り当てており、システムは、未知または予期しないイベント、ならびにシステムの「制御」に使用された以前のモデル及び方法に含まれ、想定されたイベントに応答する。
【０１１５】
分散型または階層型のＨＯＦの一例の実施形態は、システム全体の性能を設定する目的で、複数のデータセンタに分散したクラウドコンピューティング環境を制御するために実施されるトップレベルのＨＯＦを含む。これは、分散型データウェアハウスとウェブサーバ、及び親ＨＯＦ（複数可）に非同期的に（そして場合によっては予測不能／不規則に）接続されているいくつかのエッジ及び他のＩｏＴデバイスを含む。これらのデバイスの一部は、それらを制御するＨＯＦを持たないが、様々なＨＯＦベースの制約及びフィードバックの一部であるレガシーシステムである場合がある。
【０１１６】
別の例示的な実施形態は、１つ以上のデータセンタまたは他の分散された複合システムの一部である複合システムを含む、分散型及び／または階層型のＨＯＦを有するシステムを含み、これはＨＯＦによって実行される場合とされない場合とがある他の複合システムと通信し、その一部（全体として、親、子、または単に寄稿者であるかどうかに関わらず）である場合がある。これらの他の複合システムには、「エッジ」、ＩｏＴ、または車、ドローン、電話、衛星、「コネクテッド」センサ、サーバ、カメラなどのオンプレミスデバイスが含まれる場合がある。これらのシステムは、予測可能な及び／または不規則な方法で、より大きなシステムまたは他のシステムと同期及び／または非同期で通信する場合がある（その際、その一部である場合とそうでない場合とがあり、参加または脱退する場合がある）。
【０１１７】
別の例示的な実施形態では、目標を満たすために制約またはノブ（調整可能なパラメータ）を変更するのではなく、既に公開されているノブ（複数可）に加えて、またはその代わりに、基礎となるモデルを動的に変更してもよい。これは、システムまたは外部の変更による「新たな正常」に適応することを含む、様々な理由で行われ得る。
【０１１８】
更に別の例示的な実施形態として、物理的に利用可能なメモリが重要な制約となり、クラッシュ／エラーの原因となることが多いＨａｄｏｏｐなどの分散型（クラウド型）データフレームワークがある。このＨＯＦの実施形態では、利用可能なメモリは、上限値がシステムによって違反されない可能性があるので、「ハード」目標として設定される。多くの異なる動作及び変数が、単一または複数のＨＯＦで利用されるモデルではうまく表現されない方法でメモリ使用量に影響を与えるため、他の異常な動作（「新たな正常」またはカスケード障害など）が検出されたかどうかに関係なく、動的に変化する目標、または制約、またはモデルの代わりに、ＨＯＦ（複数可）の動的システムの極値が変更され、ハード目標に近づいたり、またはそこからドリフトしたりするときに、動的になる可能性がある。これは、例えば、（基礎となるシステムに関係なく、分散されているかどうかに関係なく）単一のＨＯＦ、階層、監視、またはシミュレートされた１つまたは複数のＨＯＦ上で行われてもよい。
【０１１９】
上述の２つの実施形態の手法は、システムまたはシステムの性能を変更するために、多様な「ハード」目標及び「ソフト」目標を複数の基礎となるモデルを介在させてもよいように拡張してもよい。
【０１２０】
上記の手法は、悪意のあるアクターまたはネットワーク効果の要求によって引き起こされるカスケード障害など、様々な他のタイプの外部または内部の障害が発生した場合にも、様々な方法で、または同時に使用することもできる。
【０１２１】
更に別の例示的な実施形態は、例えば、特定の特性（例えば、時間的空間、ライドシェアネットワーク、通信プロバイダ、目的地など）を共有する自律型自動車及び／またはドローンの間で形成され、そのうちのいくつかは、それ自体がＨＯＦによって制御されるアドホックシステムである。監視、目標設定だけでなく、階層的で分散した既存のＨＯＦからの制御及び学習のための新しい（目的駆動型の）ＨＯＦベースのシステムは、このアドホックな実施形態の全ての部分である。
【０１２２】
更に別の例示的な実施形態は、倉庫流通システムである。倉庫システム自体は、それ自体が相互に依存する、より大きな複合システムの一部であることが多い、いくつかのより大きな複合システム（例えば、トラック運送、製造業など）の一部である。倉庫内には、パッケージのスループット（一定期間内に到着及び出発するパッケージの量）、倉庫内の位置（どこに、どの棚に）、密度（パッケージが形状や重量に応じてどれだけ密接に／「密に」配置できるか）など、競合し共有される制約や目標を有する多くのシステムが存在する場合がある。他のシステムもまた、ロボット、労働者の稼働率、休日、天候など、継続的、動的で、常に予測可能とは限らない方法で倉庫物流システムに影響を与えるので、この全てを考慮に入れなければならない。この実施形態では、倉庫を制御するＨＯＦ（複数可）は、トラックまたは航空輸送が遅れているときに、例えば、高いスループットよりも密度を優先させるなど、トレードオフを自動的に最適化することができる。
【０１２３】
別の例示的な実施形態は、記述された倉庫環境内にあり、ここでは、ロボットが利用できなくなるか、または不規則に振る舞う（例えば、人間の作業員が解雇され、それに応じてロボットに損傷を与えた場合）。これらの事象は予期せぬものではあるが、これが新たな正常（すなわち、損傷を受けたロボットの機能の完全または部分的な喪失）となり、一定の期間が経過する。この実施形態では、監視ＨＯＦは、短期的な目標（コンテナを降ろすというローカルな目標を達成するために、人やロボットを「降ろす」ローカルＨＯＦに移動させるなど）を達成するために利用可能な人間労働者及びロボットの目標（複数可）、制約（複数可）、及び他のリソースを変更することができ、その後、他のローカルシステム及び／またはグローバル目標（複数可）（パッケージのスループット、密度、市など）を変更して、この「新たな正常」が持続する可能性がある限り、それを達成する（次のシフトまで、または新しいロボットが届くまで）。
【０１２４】
別の例示的な実施形態は、同じ物流複合システムにあるが、今回は、顧客の一部に保証された納期（例えば、２日以内）を提供し、倉庫、輸送モダリティ（例えば、飛行機、列車、トラック、ドローン、様々なサードパーティ）のネットワークを有するグローバル規模の業者としてのものである。各システムは、独自の目標及び制約を伴って動作し、より大きな複合システムの一部でもあり、その中にはＨＯＦがそれらを制御しているものもあれば、そうでないものもある。天候、道路、及び他の条件が変化すると、ＨＯＦまたはＨＯＦを含む１または複数の管理者（自動化、半自動化、人間、または何らかの他の形態の制御であるかどうかに関わらない）は、全体的または複合システム目標を（例えば、２日を４日へ）更新することができ、ＨＯＦが有効化されたシステムの残りの全ては、その後、新しい目標（複数可）に合わせてリソースを最適化させることができる。
【０１２５】
上記の実施形態（複合グローバル物流システム）は、予期しないイベントまたは事象に応答して、目標、制約、モデル、極値、ハード目標及びソフト目標、「仮想的な」目標及び制約などの更新を生成する１つ以上のＨＯＦを含む。例えば、自然災害や人災が発生し、一部の住所への配達が一時的に不可能になり、他の住所への配達が著しく遅れることがある。次に、これらの災害配送に対して、または通常配送に対して、余分に利用可能なリソースを割り当てることができ、目標、制約、及びモデルを、以前に機能していたローカル及び／またはグローバル複合システムの新たな正常及び様々な障害モードに様々に更新できるようにする。
【０１２６】
別の例示的な実施形態は、（制御ではなく）テストまたは情報提供の目的で１つまたは複数のＨＯＦを（開発中、展開中、またはその他の段階で）１つまたは複数のシステムに適用することを含み、情報は、１つまたは複数のＨＯＦの様々な機能を利用して、様々な性能及び構成パラメータについて収集される。結果として得られる情報は、同じシステム、類似システム、または異なるシステムの構成管理及び目標設定の両方を通知するために使用することができる。
【０１２７】
１つまたは複数のＨＯＦは、選択時のシステムのパラメータまたは制約の構成にかかわらず、１つ以上のモデルが動作条件に基づいて動的に選択（動的に交換または変更）されるような１つ以上の性能目標を有していてもよい。言い換えれば、システムの基礎となるモデルは、それ自体が、１つまたは複数の性能目標に役立つ調整可能な最適化パラメータとして利用可能である。
【０１２８】
１つまたは複数のＨＯＦは、様々なハード制約（それ自体は、ユーザ（複数可）のニーズ及びそのようなシステムの外部環境及び性能能力に応じて、動的にまたは時間の経過とともに変化する場合があり、または変化しない場合がある）を持つ「リアルタイム」システムを（Ｏ／Ｓまたは他のいくつかのレベルで）制御することができる。
【０１２９】
１つまたは複数のＨＯＦは、基礎となる複合システムが独自の１つまたは複数のＨＯＦを有することなく、既存の複合システム上の様々な構成設定の性能エンベロープをテストし、評価するために使用されてもよい。
【０１３０】
１つまたは複数のＨＯＦは、既存の複合システム上の様々な性能目標の性能エンベロープをテストして評価し、様々な構成設定の動作エンベロープ及びアウトオブバウンズエンベロープを設立するために使用されてもよい。
【０１３１】
１つまたは複数のＨＯＦは、既存の複合システム上の様々な性能目標の性能エンベロープをテストして評価し、様々な基礎となる性能モデルの動作エンベロープを設立するために使用されてもよい。
【０１３２】
１つまたは複数のＨＯＦは、既存の複合システム上の、時間の経過と共に変化し得る様々な性能目標の性能エンベロープをテストして評価し、様々な基礎となる性能モデルの動作エンベロープを設立するために使用されてもよい。
【０１３３】
上記の手法から得られた情報をライブラリに収集し、既存のシステムに適用して活用するために、１つまたは複数のＨＯＦを配備してもよい。
【０１３４】
上記の手法から得られた情報をライブラリに収集し、開発中のシステムに適用して活用するために、１つまたは複数のＨＯＦを配備してもよい。
【０１３５】
様々な複合システムをＨＯＦでテストして得られ収集された情報は、そのようなシステムの性能エンベロープ及び制約を含めて、新しいシステムの設計及び開発に利用することができる。
【０１３６】
１つまたは複数の複合システムで監視ＨＯＦを使用して得られ収集された情報は、監視下にある１つまたは複数の元の複合システムを含む場合と含まない場合とがある、新しいシステム及びモデルの設計及び開発に適用することができる。
【０１３７】
シミュレーションは、１つもしくは複数のＨＯＦを使用したテスト、１つもしくは複数のＨＯＦを含む複合システムの実行、１つもしくは複数のＨＯＦを使用した監視、またはそれらの一部もしくは全ての組み合わせから得られた情報及び収集された情報に基づいて、新しい１つまたは複数のＨＯＦを開発するために使用してもよい。
【０１３８】
シミュレーションは、１つもしくは複数のＨＯＦを使用したテスト、１つもしくは複数のＨＯＦを含む複合システムの実行、１つもしくは複数のＨＯＦを使用した監視、またはそれらの一部もしくは全ての組み合わせから得られた情報及び収集された情報に基づいて、新しいシステムを開発するために使用してもよい。
【０１３９】
シミュレーションを監視ＨＯＦと組み合わせて、複合システムまたはシステムの性能を向上させることができる。
【０１４０】
シミュレーションを適用して、１つもしくは複数のＨＯＦによって管理されるシステム、または１つもしくは複数のＨＯＦを実行するシステムもしくはシステムの性能を向上させることができる。
【０１４１】
複合システムは、複数のＨＯＦを含む場合があり、それらの１つ以上は、人工知能及び／またはニューラルネットワーク、またはその他の高度な学習方法を使用して、任意の時間または任意の条件に対して性能目標及び／または構成パラメータを設定するようにそれ自体が教示される。
【０１４２】
１つもしくは複数のＨＯＦを、評価／識別ネットワーク及び／または敵対的生成ネットワーク（ＧＡＮ）の生成ネットワークに適用して、性能（例えば、速度または精度）を制約し、または別の方法で改善することができる。
【０１４３】
動作している１つまたは複数のＨＯＦによって生成された情報（性能メタデータなど）を適用して、基礎となる機械学習モデル、または新しい機械学習モデル、またはＡＩモデルを改善できる。
【０１４４】
ＨＯＦは、その複合システムが範囲外であると検出された場合にのみ、その使用から生成された情報を利用して、機械学習モデルまたはＡＩモデルの将来及び現在の性能を向上させるために、複合システムを制御するように使用することができる。
【０１４５】
複数のＨＯＦは、１つのＨＯＦが、１つまたは複数の主要な性能目標を設立し、そのとき現在アクティブである１つまたは複数のアプリケーションの動作パラメータに一意に関連する他のＨＯＦを動的に構成する分散制御システムとして、スマートフォンまたは他のデバイス上に配備することができる。
【０１４６】
開示された方法のいずれかは、従来の制御ソリューションが陳腐化するか、またはそれ以外の場合で劣った性能を提供する場合にはいつでも、従来の制御ベースのソリューション（ＰＩＤなど）をＨＯＦに置き換えるために適用することができる。
【０１４７】
ＶＩＩ．結論
上記の詳細な説明では、添付の図面を参照して、開示されたシステム、デバイス、及び方法の様々な特徴及び機能を説明している。図において、類似の符号は、文脈が別段のことを示さない限り、典型的には類似の構成要素を識別するものである。詳細な説明、図、及び特許請求の範囲に記載された例示的な実施形態は、限定的することを意味するものではない。本明細書に提示される主題の範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を行うことができる。本開示の態様は、本明細書に一般的に説明され、図示されているように、多種多様な構成で配置、置換、結合、分離、及び設計することができ、それらの全てが本明細書に明示的に企図されていることが容易に理解されるであろう。
【０１４８】
図中のメッセージフロー図、シナリオ、及びフローチャートのいずれかまたは全てに関して、及び本明細書で議論されるように、各ステップ、ブロック、及び／または通信は、例示的な実施形態に従って、情報の処理及び／または情報の伝送を表してもよい。代替的な実施形態は、これらの例示的な実施形態の範囲内に含まれる。これらの代替実施形態では、例えば、ステップ、ブロック、伝送、通信、要求、応答、及び／またはメッセージとして記述された機能は、関与する機能に応じて、実質的に同時または逆の順序を含む、示されたまたは議論されたものから順不同で実行されてもよい。更に、より多くのまたはより少ないステップ、ブロック、及び／または機能が、本明細書で議論されるメッセージフロー図、シナリオ、及びフローチャートのいずれかと共に使用されてもよく、これらのメッセージフロー図、シナリオ、及びフローチャートは、部分的にまたは全体的に、互いに組み合わされてもよい。
【０１４９】
情報の処理を表すステップまたはブロックは、本明細書に記載された方法または手法の特定の論理的機能を実行するように構成され得る回路に対応することができる。代替または追加として、情報の処理を表すステップまたはブロックは、モジュール、セグメント、またはプログラムコードの一部（関連データを含む）に対応してもよい。プログラムコードは、方法または技術において特定の論理的機能またはアクションを実装するためにプロセッサによって実行可能な１つ以上の命令を含んでもよい。プログラムコード及び／または関連データは、ディスクドライブ、ハードドライブ、または他の記憶媒体を含む記憶装置などの任意のタイプのコンピュータ可読媒体に記憶することができる。
【０１５０】
また、コンピュータ可読媒体は、レジスタメモリ、プロセッサキャッシュ、及び／またはランダムアクセスメモリ（ＲＡＭ）のような短時間データを記憶するコンピュータ可読媒体などの非一時的なコンピュータ可読媒体を含んでもよい。また、コンピュータ可読媒体は、プログラムコード及び／またはデータを、より長い期間保存する非一時的なコンピュータ可読媒体、例えば、読み出し専用メモリ（ＲＯＭ）、光ディスクまたは磁気ディスク、及び／またはコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）のような二次的または永続的な長期記憶装置を含んでもよい。また、コンピュータ可読媒体は、他の何らかの揮発性または不揮発性の記憶システムであってもよい。コンピュータ可読媒体は、例えば、コンピュータ可読記憶媒体、または有形記憶装置とみなすことができる。
【０１５１】
更に、１つ以上の情報伝送を表すステップまたはブロックは、同じ物理デバイス内のソフトウェア及び／またはハードウェアモジュール間の情報伝送に対応していてもよい。しかし、他の情報伝送が、異なる物理デバイス内のソフトウェアモジュール及び／またはハードウェアモジュール間であってもよい。
【０１５２】
様々な態様及び実施形態が本明細書に開示されているが、他の態様及び実施形態は、当業者には明らかであろう。本明細書に開示された様々な態様及び実施形態は、例示を目的としたものであり、限定を意図するものではなく、真の範囲は以下の特許請求の範囲によって示される。
【図１Ａ】
2021507418.tif 000003
【図１Ｂ】
2021507418.tif 000004
【図２】
2021507418.tif 000005
【図３】
2021507418.tif 000006
【図４】
2021507418.tif 000007
【国際調査報告】
2021507418.tif 000008