IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ユニバーシティ オブ リーズの特許一覧

特表2022-544184マルチ構成要素シミュレーションの方法およびシステム
<>
  • 特表-マルチ構成要素シミュレーションの方法およびシステム 図1
  • 特表-マルチ構成要素シミュレーションの方法およびシステム 図2
  • 特表-マルチ構成要素シミュレーションの方法およびシステム 図3
  • 特表-マルチ構成要素シミュレーションの方法およびシステム 図4
  • 特表-マルチ構成要素シミュレーションの方法およびシステム 図5
  • 特表-マルチ構成要素シミュレーションの方法およびシステム 図6
  • 特表-マルチ構成要素シミュレーションの方法およびシステム 図7
  • 特表-マルチ構成要素シミュレーションの方法およびシステム 図8
  • 特表-マルチ構成要素シミュレーションの方法およびシステム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-17
(54)【発明の名称】マルチ構成要素シミュレーションの方法およびシステム
(51)【国際特許分類】
   G06F 30/20 20200101AFI20221007BHJP
【FI】
G06F30/20
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022507773
(86)(22)【出願日】2020-08-06
(85)【翻訳文提出日】2022-02-17
(86)【国際出願番号】 GB2020051879
(87)【国際公開番号】W WO2021028657
(87)【国際公開日】2021-02-18
(31)【優先権主張番号】1911447.9
(32)【優先日】2019-08-09
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】501323583
【氏名又は名称】ユニバーシティ オブ リーズ
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】シュー、ジエ
(72)【発明者】
【氏名】マッキー、デイビッド ウェズリー
(72)【発明者】
【氏名】クレメント、スティーブン ジェームズ
(72)【発明者】
【氏名】バターズビー、デイビッド ジェームズ
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146CA01
5B146DJ11
5B146DJ14
(57)【要約】
直列アレンジの第1および第2シミュレーション構成要素(SMC)101、102は、サイバーフィジカルシステムの明確な要素の動作をシミュレートする。第1SMC101の1つまたは複数の出力は、第2SMC102への入力として提供される。複数の出力予測は第1SMCのサロゲート(SG)モデルを用いて生成され、応じて複数の第2SMC102-1、102-2、102-3または複数の第2SGモデルが並列実行される。第2SMC102-1~3または第2SGモデルの入力値は、第1SMC101のSGモデルからの複数の出力予測の1つに対応する。第1SMC101の実行完了時に複数の出力予測の正しい出力予測が判定され、正しい出力予測は、完了時の第1SMC101の実際の出力に相当する。応じて、正しい出力予測に対応しない複数の第2SMC102-1~3または第2SGモデルの1つまたは複数が破棄される。
【特許請求の範囲】
【請求項1】
サイバーフィジカルシステムのマルチ構成要素シミュレーションのための方法であって、前記方法は、
前記サイバーフィジカルシステムの異なる要素の動作をそれぞれシミュレーションする複数のシミュレーション構成要素を提供する工程であって、前記複数のシミュレーション構成要素は直列にアレンジされた少なくとも第1シミュレーション構成要素と第2シミュレーション構成要素とを備えており、前記第1シミュレーション構成要素の1つまたは複数の出力は前記第2シミュレーション構成要素への入力として提供される、前記複数のシミュレーション構成要素を提供する工程と、
前記第1シミュレーション構成要素の実行中に、前記第1シミュレーション構成要素のサロゲートモデルを用いて複数の出力予測を生成し、応じて、複数の前記第2シミュレーション構成要素、またはそれぞれが前記第2シミュレーション構成要素に対応する複数の第2サロゲートモデルを並行して実行し、前記第2シミュレーション構成要素または前記第2サロゲートモデルの入力値は前記第1シミュレーション構成要素の前記サロゲートモデルからの前記複数の出力予測のそれぞれの1つに対応する、前記複数の出力予測を生成する工程と、
前記第1シミュレーション構成要素の実行完了時に、前記複数の出力予測のうちの正しい出力予測を判定し、正しい出力予測は前記第1シミュレーション構成要素の完了時の実際の出力に対応し、応じて、前記正しい出力予測に対応しない前記複数の第2シミュレーション構成要素または前記第2サロゲートモデルの1つまたは複数を破棄する工程と、
を備えている、方法。
【請求項2】
前記複数のシミュレーション構成要素は、2つ以上の異なるシミュレーションプラットフォーム上で実行可能なシミュレーション構成要素を備えている、
請求項1に記載の方法。
【請求項3】
前記正しい出力予測に対応しない前記複数の第2シミュレーション構成要素または前記第2サロゲートモデルのうちの前記1つまたは複数を破棄する工程は、前記正しい出力予測に対応しない前記複数の第2シミュレーション構成要素または前記第2サロゲートモデルのうちの前記1つまたは複数の実行を終了する工程を備えている、
請求項1または2に記載の方法。
【請求項4】
前記正しい出力予測に対応しない前記複数の第2シミュレーション構成要素または前記第2サロゲートモデルのうちの前記1つまたは複数を破棄する工程は、前記正しい出力予測に対応しない前記第2シミュレーション構成要素の出力に基づくさらなるシミュレーション構成要素またはサロゲートモデルの実行を終了する工程を備えている、
請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記第1シミュレーション構成要素の前記サロゲートモデルは、機械学習を用いて前記出力予測を生成する、
請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記第1シミュレーション構成要素の前記サロゲートモデルは、Krigingを用いて生成する、
請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記第1シミュレーション構成要素の前記サロゲートモデルは、誤差境界を生成する、
請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記複数の出力予測は、前記誤差境界の上限と、前記誤差境界の下限と、および前記上限と前記下限とから等距離にある値とを備えている、
請求項7に記載の方法。
【請求項9】
前記複数の予測は、前記誤差境界をサンプリングすることで生成される、
請求項7または8に記載の方法。
【請求項10】
前記第1シミュレーション構成要素は第1論理時間ステップを有し、前記第2シミュレーション構成要素は前記第1論理時間ステップとは異なる第2論理時間ステップを有し、
前記方法はさらに、
前記第1シミュレーション構成要素の入力を、前記第1シミュレーション構成要素の出力に写像する関数を推定する工程と、
前記関数のデリバティブに基づく値を出力するサロゲートモデルを生成する工程と、および
生成されたサロゲートモデルを用いて、前記第2シミュレーション構成要素または前記第2サロゲートモデルの入力を生成する工程と、
を備えている、
請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記第2シミュレーション構成要素または前記第2サロゲートモデルの前記入力を生成する工程は、前記第2論理時間ステップに対応する間隔で、前記生成されたサロゲートモデルの出力をサンプリングする工程を備えている、
請求項10に記載の方法。
【請求項12】
前記第1シミュレーション構成要素の出力を、前記第2シミュレーション構成要素または前記第2サロゲートモデルの入力に一致するように変異させる工程を備えている、
請求項1~11のいずれか一項に記載の方法。
【請求項13】
前記方法はさらに、
前記マルチ構成要素シミュレーションをグラフとして表現する工程と、
前記グラフを2つ以上のセクションに分割する工程と、
前記グラフの各セクションを、コンテナまたは仮想マシン(VM)またはコンピュータ装置に展開する工程と、
を備えている、請求項1~12のいずれか一項に記載の方法。
【請求項14】
前記グラフの各セクションは、異なるコンテナ、仮想マシン、またはコンピュータ装置に展開される、
請求項13に記載の方法。
【請求項15】
前記方法はさらに、実行中に前記グラフの前記セクションの展開を最適化する工程を備えている、
請求項13または14に記載の方法。
【請求項16】
前記方法はさらに、
前記複数のシミュレーション構成要素または前記サロゲートモデルを実行ツリーとして表現する工程と、および
前記実行ツリーの成長を制限する工程と、
を備えている、請求項1~15のいずれか一項に記載の方法。
【請求項17】
前記方法はさらに、
前記複数の出力予測のうち、正しい出力予測である可能性が低い出力予測を識別する工程と、
応じて、識別された出力予測に基づき、前記第2シミュレーション構成要素または前記第2サロゲートモデルを破棄する工程と、
を備えている、請求項1~16のいずれか一項に記載の方法。
【請求項18】
少なくとも1つのコンピュータ装置を備えているシステムであって、前記コンピュータ装置は、
少なくとも1つのプロセッサと、および
前記少なくとも1つのプロセッサによって実行されたとき、前記コンピュータ装置に請求項1~17のいずれか一項に記載の方法を実行させる命令を記憶する少なくとも1つのメモリと、
を備えている、システム。
【請求項19】
コンピュータ装置によって実行されたとき、前記コンピュータ装置に請求項1~17のいずれか一項に記載の方法を実行させる命令を記録した、
有形の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、サイバーフィジカルシステムのマルチ構成要素(コンポーネント)シミュレーションのための方法およびシステムに関する。
【背景技術】
【0002】
サイバーフィジカルシステム(CPS)は、物理的な構成要素と計算的な構成要素との相互作用するネットワークを共同で設計したものである。サイバーフィジカルシステムCPSの例としては、スマートシティ、自動車、クラウドコンピューティングのデータセンターなどがある。このようなシステムはますます大規模化、複雑化しており、典型的なサイバーフィジカルシステムCPSは、数百万の相互作用する要素で構成されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Dickerson CE; Clement SJ; Webster D; McKee D; Xu J; Battersby D (2015),「A service oriented virtual environment for complex system analysis:Preliminary report」。In: Proceedings of 10th System of Systems Engineering Conference (SoSE), 2015, pp.152-157, ISBN 978-1-4799-7611-9
【発明の概要】
【発明が解決しようとする課題】
【0004】
このようなシステムを分析するべく、大規模なシミュレーションを合理的な時間枠で実行できるように、タイムリーに構築する必要がある。現在、大規模シミュレーションには、構成要素の複雑さ、同期の複雑さ、実行管理、ドメインの専門性など、いくつかの中核的な課題がある。そのため、現在の大規模シミュレーションのソリューションは、実行時間が長く(数日から数週間)、またシミュレーション環境と、使用する実行基盤との両方に関して、かなりの手動介入と専門知識とが必要であることが問題になっている。
【0005】
これらの問題は、異なるシミュレーションプラットフォームで実装されたシミュレーションを統合し、コ・シミュレーション(co-simulation。コシミュレーション)を形成する必要性によって悪化する虞れがある。例えば、自動車や航空宇宙分野では、システムの異なる構成要素(自動車の場合、変速機(トランスミッション)、エンジン、車両動力学(ビークルダイナミクス)など)に対して、ドメイン固有のシミュレーションが個別に開発されていることが一般的である。
【0006】
本願の目的は、上記の困難、および本明細書の説明から当業者に明らかであろう他の欠点に対処することにある。本願のさらなる目的は、実行時間を短縮するとともに、多様なシミュレーションプラットフォーム同士間でのコ・シミュレーションを容易にする、マルチ構成要素シミュレーションのための方法を提供することにある。
【課題を解決するための手段】
【0007】
本発明によれば、添付の特許請求の範囲に記載された装置および方法が提供される。本発明の他の特徴は、従属請求項、および以下の説明から明らかになるであろう。
本発明の第1側面(アスペクト)によれば、サイバーフィジカルシステムのマルチ構成要素シミュレーションのための方法が提供され、方法は、
各々がサイバーフィジカルシステムの異なる要素の動作をシミュレートする複数のシミュレーション構成要素を提供する工程であって、複数のシミュレーション構成要素は直列(in series)にアレンジ(配置)された少なくとも第1および第2シミュレーション構成要素を備えており、第1シミュレーション構成要素の1つまたは複数の出力は第2シミュレーション構成要素への入力として提供される、複数のシミュレーション構成要素を提供する工程と、
前記第1シミュレーション構成要素の実行中に、前記第1シミュレーション構成要素のサロゲートモデル(代理モデル。代替モデル)を用いて複数の出力予測(output predictions。出力予測値)を生成し、これに応じて、複数の前記第2シミュレーション構成要素、またはそれぞれが前記第2シミュレーション構成要素に対応する複数の第2サロゲートモデルを並行して実行し、前記第2シミュレーション構成要素またはサロゲートモデルの入力値は前記第1シミュレーション構成要素のサロゲートモデルからの複数の出力予測のそれぞれの1つに対応する、複数の出力予測を生成する工程と、
前記第1シミュレーション構成要素の実行の完了時に、前記複数の出力予測のうちの正しい出力予測を判定(決定)し、前記正しい出力予測は前記第1シミュレーション構成要素の完了時の実際の出力に対応し、これに応じて、前記正しい出力予測に対応しない前記複数の第2シミュレーション構成要素または第2サロゲートモデルの1つまたは複数を破棄(discard。廃棄)する工程と、を備えている。
【0008】
複数のシミュレーション構成要素は、それぞれ、共通のシミュレーションプラットフォーム上で実行可能であってもよい。あるいは複数のシミュレーション構成要素は、2つ以上の異なるシミュレーションプラットフォーム上で実行可能なシミュレーション構成要素を備えてもよい。従って、シミュレーションは、マルチプラットフォームのコ・シミュレーションであってもよい。
【0009】
正しい出力予測に対応しない複数の第2シミュレーション構成要素のうちの1つまたは複数を破棄する工程は、正しい出力予測に対応しない複数の第2シミュレーション構成要素のうちの1つまたは複数の実行を終了させる工程を備えてもよい。正しい出力予測に対応しない複数の第2シミュレーション構成要素またはサロゲートモデルのうちの1つまたは複数を破棄する工程は、正しい出力予測に対応しない第2シミュレーション構成要素またはサロゲートモデルの出力に基づくさらなるシミュレーション構成要素の実行を終了させる工程を備えてもよい。
【0010】
第1シミュレーション構成要素のサロゲートモデルは、機械学習を用いて出力予測を生成してもよい。第1シミュレーション構成要素のサロゲートモデルは、好適にはKrigingを使用した補間を用いて出力予測を生成してもよい。
【0011】
第1シミュレーション構成要素のサロゲートモデルは、誤差境界(エラーバウンド)を生成してもよい。複数の出力予測は、誤差境界の上限(アッパーバウンド)、誤差境界の下限、および上限と下限から等距離(equidistant)にある値を備えてもよい。複数の予測は、好適には、一定の間隔で誤差境界をサンプリングすることで生成されてもよい。
【0012】
第1シミュレーション構成要素は、第1論理時間ステップ(first logical time step)を有していてもよい。第2シミュレーション構成要素は、第1論理時間ステップとは異なる第2論理時間ステップを有してもよい。本方法はさらに、
前記第1シミュレーション構成要素の入力を、前記第1シミュレーション構成要素の出力に写像(マッピング)する関数を推定する工程と、
関数のデリバティブ(導関数)に基づく値を出力するサロゲートモデルを生成する工程と、および
生成されたサロゲートモデルを用いて、第2シミュレーション構成要素または第2サロゲートモデルの入力を生成する工程と、を備えていることができる。
【0013】
第2シミュレーション構成要素または第2サロゲートモデルの入力を生成する工程は、第2論理時間ステップに対応する間隔で、生成されたサロゲートモデルの出力をサンプリングする工程を備えてもよい。
【0014】
前記方法は、前記第1シミュレーション構成要素の出力を、前記第2シミュレーション構成要素または前記サロゲートモデルの入力に一致させるように変異させる工程を備えてもよい。
【0015】
本方法は、
マルチ構成要素シミュレーションをグラフとして表現する工程と、
グラフを2つ以上のセクションに分割(パーティション)する工程と、および
グラフの各セクションをコンテナまたは仮想マシン(VM)またはコンピュータ装置に展開(deploy。配備)する工程と、を備えていることができる。
【0016】
グラフの各セクションは、異なるコンテナ、仮想マシン、またはコンピュータ装置に展開されてもよい。
本方法は、その実行中にグラフのセクションの展開(デプロイメント)を最適化する工程を備えていてもよい。
【0017】
本方法は、複数のシミュレーション構成要素またはサロゲートモデルを実行ツリーとして表現する工程と、実行ツリーの成長を制限する工程とを備えていることができる。好適には、本方法は、ツリーのサイズ、深さ、または幅のうちの1つまたは複数を制限する工程を備えてもよい。
【0018】
本方法は、複数の出力予測のうち、正しい出力予測である可能性が低い出力予測を識別(identifying)する工程と、これに応じて、第1シミュレーション構成要素の実行が完了する前に、識別された出力予測に基づき第2シミュレーション構成要素または第2サロゲートモデルを破棄する工程と、を備えてもよい。前記方法は、前記出力予測を所定の規則(predetermined rule)と比較することで、前記正しい出力予測である可能性が低い出力予測を識別する工程を備えてもよい。本方法は、機械学習を用いて、正しい出力予測である可能性が低い出力予測を識別する工程を備えてもよい。前記方法は、前記出力予測のデリバティブと、実行系列(execution series)において前記第2シミュレーション構成要素または前記第2サロゲートモデルよりも前にアレンジされた前記複数のシミュレーション構成要素のシミュレーション構成要素の出力のデリバティブとを比較することで、前記正しい出力予測である可能性が低い出力予測を識別する工程を備えてもよい。
【0019】
本発明の第2側面(second aspect)によれば、サイバーフィジカルシステムのマルチ構成要素シミュレーションのための方法が提供され、方法は、
各々がサイバーフィジカルシステムの個別(distinct)の要素の動作をシミュレートする複数のシミュレーション構成要素を提供する工程であって、少なくとも第1および第2シミュレーション構成要素は直列にアレンジされており、第1シミュレーション構成要素の1つまたは複数の出力は第2シミュレーション構成要素への入力として提供される、複数のシミュレーション構成要素を提供する工程と、
前記第1シミュレーション構成要素は第1論理時間ステップを有し、前記第2シミュレーション構成要素は前記第1論理時間ステップとは異なる第2論理時間ステップを有しており、
前記第1シミュレーション構成要素の入力を、前記第1シミュレーション構成要素の出力に写像する関数を推定する工程と、
関数のデリバティブに基づく値を出力するサロゲートモデルを生成する工程と、および
生成されたサロゲートモデルを用いて、第2シミュレーション構成要素の入力または第2シミュレーション構成要素のサロゲートモデルの入力を生成する工程と、を備えている。
【0020】
第2シミュレーションの入力をまたは第2シミュレーション構成要素のサロゲートモデルの入力を生成する工程は、第2論理時間ステップに対応する間隔で、生成されたサロゲートモデルの出力をサンプリングする工程を備えてもよい。
【0021】
第2側面の方法のさらなる好ましい特徴は、側面の方法に関して本明細書で定義され、任意の組み合わせで結合されてもよい。
本発明の第3側面によれば、少なくとも1つのコンピューティング装置を備えるシステムが提供されており、コンピューティング装置は、
少なくとも1つのプロセッサと、および
前記少なくとも1つのプロセッサによって実行されると、本明細書に規定される方法のいずれか1つを前記コンピューティング装置(コンピュータ装置)に実行させる命令を記憶する少なくとも1つのメモリと、を備えている。
【0022】
第3側面のさらなる好ましい特徴は、第1側面および第2側面の方法に関して本明細書において定義されており、任意の組み合わせで組み合わせることができる。
本発明のさらなる側面によれば、コンピュータ装置によって実行されるとき、コンピュータ装置を本明細書に規定するようにアレンジさせる、および/またはコンピュータ装置に本明細書に規定する方法のいずれか1つを実行させる命令をその上に記録した、有形(tangible)の非一時的な(非一過性の)コンピュータ可読(読取可能)記憶媒体が提供される。
【0023】
本発明のより良い理解のために、および同じものの実施形態がどのように実施され得るかを示すべく、次に、例としてのみ、添付の斜視図面を参照されたい。
【図面の簡単な説明】
【0024】
図1】マルチ構成要素シミュレーションの一例の概略図。
図2】例示的なマルチ構成要素シミュレーションを展開する処理の概略フローチャート。
図3図2の工程S203の処理をより詳細に示す模式的フローチャート。
図4】グラフの粗密(coarsening)を示す説明図。
図5】マルチ構成要素シミュレーションの方法の一例を示す概略フローチャート。
図6図5の方法の実行フローを示す組織図(organisational diagram)。
図7】マルチ構成要素シミュレーションのための例示的な方法の概略フローチャート。
図8図7の方法を説明する概略図。
図9】マルチ構成要素シミュレーションの方法の一例を示す模式図。
【発明を実施するための形態】
【0025】
図面全体を通して、対応する要素を参照するべく、対応する参照数字が使用される。図面において、対応する参照文字は、対応する構成要素を示す。当業者は、図中の要素は、単純化および明確化のために図示されており、必ずしも縮尺通りに描かれていないことを理解するであろう。例えば、図中のいくつかの要素の寸法は、様々な例示的な実施形態の理解を深めるのに役立つように、他の要素に対して誇張されている場合がある。また、商業的に実現可能な実施形態において有用であるかまたは必要である一般的であるがよく理解されている要素は、これらの様々な例示的な実施形態の視界をあまり妨げないようにするべく、描かれていないことが多い。
【0026】
概要としては、本発明の実施例は、シミュレーションの構成要素が直列にアレンジされたマルチ構成要素シミュレーション方法を提供する。第2構成要素が、第1(最初)の、より早い構成要素からの出力の実行完了を待つことによって引き起こされる実行の遅れを回避するべく、この方法は、第1の、より早い構成要素の出力に関する複数の予測を生成する。これらの予測は、第2構成要素の複数のバージョンを並列実行するための入力として使用され、それによって遅延が解消される。第1構成要素の実行が終了すると、正確な予測に基づくバージョンが保持されるとともに、他の構成要素は刈り込まれる(pruned)か破棄(discarded)される。
【0027】
本発明の他の実施例は、第1構成要素と第2構成要素とが異なる論理時間ステップで動作するマルチ構成要素シミュレーション方法を提供する。第1構成要素のサロゲートモデルのデリバティブは、2つの構成要素同士を接続するべく使用され、要求される値のより正確な表現を提供するようにする。
【0028】
図1は、サイバーフィジカルシステム(CPS)のマルチ構成要素シミュレーションとしてのシミュレーション100の一例を示す概略図である。示された例では、シミュレーション100は、自動車をシミュレートする。シミュレーション100は、複数のシミュレーション構成要素101~105を備える。各シミュレーション構成要素101~105は、別個(separate)の構成要素であるという意味で、システムの離散的(discrete)な構成要素である。さらに、シミュレーション構成要素101~105の各々は、自動車の個別(distinct)の構成要素をシミュレートする。例えば、第1構成要素101は自動車のドライバ(運転者)をシミュレーションし、第2構成要素102は自動車のエンジンをシミュレーションし、第3構成要素103は自動車の変速機(トランスミッション)をシミュレーションし、第4構成要素104は自動車の変速機制御ユニット(TCU)をシミュレーションし、第5構成要素105は車両動力学(ビークルダイナミクス)をシミュレーションする。
【0029】
図1に示すように、構成要素101~105は、1つの構成要素からの出力が、1つまたは複数の他の構成要素への入力を形成するように接続されている。例えば、エンジンシミュレーション構成要素102の毎分回転数(RPM)は、変速機(トランスミッション)構成要素103に入力を提供する。変速機構成要素103のトルクは、車両動力学構成要素105に入力を提供する。さらに、変速機構成要素103のインペラトルクは、エンジンシミュレーション構成要素102に入力を戻して提供する。従って、シミュレーション100は、フィードバックサイクルを備えている。
【0030】
これは、本発明を説明するべく、マルチ構成要素シミュレーションの大幅に単純化された例であることが理解されよう。もちろん、実際には、各シミュレーションは、数百、数千、あるいは数百万の離散的な接続された構成要素で構成される場合がある。さらに、シミュレーション100は、1つ、2つ、または3つの出力と、1つ、2つ、または3つの入力とを有する構成要素101~105を示しているが、実際には、各構成要素は、より多くの入力と出力とを有することができることが理解されよう。
【0031】
さらに、シミュレーション構成要素に加えて、シミュレーション100は、シミュレーション100に相互作用するがシミュレーション100の制御下にはない、1つまたは複数の「イン・ザ・ループ」構成要素を備えてもよいことが理解されよう。例えば、ドライバのシミュレーションの代替として、シミュレーション100は、人間のドライバ(すなわち、ヒューマン・イン・ザ・ループ)に相互作用し得る。
【0032】
構成要素は、1つの構成要素からの出力が他の1つまたは複数の構成要素への入力を形成するように論理的に直列にアレンジされているが、いくつかの例では、構成要素の実行は厳密に直列に実行されない場合がある。代わりに、当業者には理解されるように、構成要素は並列に実行されてもよい。サイクルからなるシミュレーションは、適宜、実行のために分解され、順序付けされてもよいことが理解されよう。
【0033】
図1は、シミュレーション100を実行するように構成されたマシンクラスタ200をさらに示している。マシンクラスタ200は、複数のコンピュータ装置(例えばサーバ)201からなり、各コンピュータ装置201は、少なくとも1つの計算要素(例えば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)の1以上)、およびメモリで構成される。コンピュータ装置201は、適切なネットワークによって接続されている。一例では、複数のコンピュータ装置201は、1つまたは複数の仮想マシン(VM)またはコンテナを実行するように構成される。
【0034】
マシンクラスタ200のコンピュータ装置201、および/またはその仮想マシンおよびコンテナは、シミュレーション100の1つまたは複数の構成要素101~105を実行するように構成されている。マシンクラスタ200は、分散型計算インフラストラクチャ(例えば、クラウド)を構成してもよい。
【0035】
マシンクラスタ200にわたるシミュレーション構成要素101~105の展開(デプロイメント)について、次に図2を参照して説明する。
図2は、シミュレーション100をマシンクラスタ200にまたがって展開する処理の一例を示す図である。
【0036】
まず、工程S201において、シミュレーション100をグラフとして表現する。構成要素101~105および入出力は、構成要素をグラフのノードとし、入出力をグラフの有向辺とする、実質的にグラフを形成することが理解されよう。従って、シミュレーション100を表すグラフを導出することができる。本明細書において、「ノード」および「構成要素」という用語は、互換的に使用される。
【0037】
次に、工程S202において、各ノードの計算性能が推定される。これは、シミュレーションの時間ステップあたりのノードの実行時間、複数の仮想マシンを用いたスケーラビリティなどを判定することを備えてもよい。判定された性能は、より計算コストの高いノードがより重く評価されるように、ノードの重みを形成する。
【0038】
次に、工程S203において、グラフは2つ以上のセクションに分割される。
次に、工程S204において、分割されたグラフは、マシンクラスタ200に渡って展開される。特に、グラフの各セクションは、別々のコンテナ、仮想マシン、またはコンピュータ装置201に展開され、実行される。マシンクラスタ200は、グラフの各セクションを、利用可能な適切な計算リソースを有するコンテナ/仮想マシン/コンピュータ装置201に効率的に展開するための適切なスケジューリングおよび展開ソフトウェアを構成してもよいことは理解されよう。
【0039】
工程S205において、グラフの分割およびグラフのセクションの展開は、実行中に最適化され、代替の分割または展開が最適である場合、グラフは、それに応じて再分割され再展開されるようになる。
【0040】
図3は、工程S203のグラフ分割処理の一例をより詳細に示す図である。グラフ分割アルゴリズムは、グラフのセクションのウェイトバランスを最適化することを意図している。すなわち、グラフの各セクションの重みができるだけ均等になるようにすることを目的とする処理である。さらに、このアルゴリズムは、外部エッジ(すなわち、異なるセクション同士のノード間に延びるエッジ)の数を最小化することも目的としている。
【0041】
まず、工程S301において、グラフを粗く(coarsen。粗視化)する。グラフを粗くする工程は、パーティショニング処理によって単一のノードとして考慮されるように複数のノードをグループ化し、それによって、最適な分割を判定する際に考慮すべきノードの数を減少させる。図4は、第1の、オリジナルsのグラフG1と、粗視化された第2グラフG2とを示す図である。
【0042】
グラフを粗くするべく、以下のように修正されたマキシマルマッチング法が採用される。
まず、各マッチングされていないノードは、最も高いスコアを有するマッチングされていない隣接ノードにマッチングされる。粗視化スコア関数はエッジの重みと、近傍の重みとに依存する。
【0043】
マッチングしていない隣接ノードが、或るノードに対してない場合、そのノードはマッチングしたとマークされる。この処理は、全てのノードがマッチングされるまで繰り返される。粗いグラフの新しいノードは、ノードと、それが備えているエッジとの重みの合計を持つ。粗いグラフの2つのノードは、それらノードと、それらsが備えているエッジとの重みの合計を持つように判定される。粗いグラフの2つのノードは、オリジナルのグラフにおいてそれらの間にエッジがあれば接続される。粗いグラフの2つのノードを結ぶエッジが複数ある場合、それらは、複数のエッジの重みの合計に相当する重みを持つ1つのエッジに折り畳まれる。
【0044】
一例として、2つのノードA、Bの粗視化スコア関数は、以下の通りである。
CoaScore(A,B)=(Edge(A,B)の重み)/(Aの重み+Bの重み)。
【0045】
従って、このアルゴリズムでは、重みの大きいエッジの結合を優先するとともに、分割時に分離不可能な重みの大きいノードの形成を防ぐことができる。
次に、工程S302において、粗視化されたグラフの最高スコアの2分割(bisection。)が判定される。一般に、最高スコアの2分割を判定するには、可能な2分割を検索して、最高スコアの2分割を選択する。一例では、これは、グラフの粗密化によって可能性の数が充分に減少し、許容可能な時間の量でこれを計算可能にするという根拠で、すべての可能な2分割を網羅的に検索することで実施され得る。さらなる例では、他の探索アルゴリズム(例えば、幅優先探索)が採用されてもよい。
【0046】
グラフを2つのセクションPおよびQに分割するための分割スコアは、以下のように計算されてもよい。
ParScore(P,Q)=1/{max(W(P),W(Q))*s*We*(1+k)}。
【0047】
ここで、W(P)とW(Q)は各セクションの重みであり、Weはカットされるエッジの総重みであり、sは通信(コミュニケーション)定数であり、kは接続性の優先度である。各セクションの重みは、セクション内のノードの重みの合計に、セクション内部のすべてのエッジの重みを加えたものとして定義される。sとkの値の例としては、それぞれ100と0.5である。
【0048】
次に、工程S303において、グラフのノードは、判定された最高スコアの2分割に基づき、2つの異なるセクションに割り当てられる。
工程S304では、充分な数のセクションが作成されたか否かを判定する。Yesの場合、処理は終了する。充分な数のセクションがない場合、工程S305において、グラフの各セクションの重みが計算され、その後、最も重みのあるグラフのセクションについて工程S301~S304が繰り返される。従って、所望の数のセクションが導出されるまで、グラフの2分割が繰り返される。
【0049】
分割されたグラフを得るべく、他のグラフ分割アルゴリズムが適用されてもよいことが理解されよう。
いくつかの例において、シミュレーション100は、構成要素101~105のうちの1つまたは複数が他の構成要素とは異なるシミュレーションプラットフォームを用いて実行される(例えば、1つのノードがMATLAB(登録商標)およびSimulink(登録商標)を用いて構築される)コ・シミュレーションであることがさらに理解されよう。このような例では、異なるプラットフォームで実行される各構成要素は、グラフの独自の分割を形成する。
【0050】
次に、図5および図6に目を向けると、マルチ構成要素シミュレーションのための方法例が示されている。本明細書の説明から理解されるように、各ノードまたは構成要素101~105は、シミュレーション100の少なくとも1つの他の構成要素101~105から入力を受け取る。したがって、シミュレーション100の各時間ステップにおいて、構成要素は、入力を受け取るべく、前の構成要素の実行の完了を待機する。第1構成要素の実行時間が長い状況では、通常、実行の遅い第1構成要素は、第1構成要素の出力に基づく入力を待っている後の構成要素(以下、第2構成要素と呼ぶ)の実行を保留することになる。
【0051】
まず、工程S501において、第1構成要素のサロゲートモデルを生成する。具体的には、第1構成要素の入力値および出力値をリアルタイムで解析し、デリバティブのサロゲートモデルを生成する。したがって、入力値の変化に基づき出力値の変化を推定または予測するモデルが導出される。初期のサロゲートは、例えば、以前のシミュレーションの実行またはシミュレーションの以前の時間ステップから、以前に収集されたデータから生成される場合がある。例えば、シミュレーション部品の入出力空間を適切にカバーするDOE(実験計画)を考案することで、デリバティブを学習することができる。したがって、状態xをもたらす以前の入力セットと、新しい入力セットi′が与えられると、サロゲートモデルはf′(x,i′)の結果を判定することができる。
【0052】
シミュレーション構成要素のサロゲートモデルを生成するべく、補間やサンプリングなど、多くの機械学習法が利用可能である。一実施例では、サロゲートモデルの出力の誤差推定を提供する補間アルゴリズムが採用される。補間アルゴリズムは、例えば以前のデータ値の分布(すなわち共分散)を用いて出力に関連する誤差拘束を提供するように構成されたKriging(当該技術分野ではガウス過程回帰とも呼ばれる)アルゴリズムであってよい。
【0053】
したがって、入力が(例えば他の構成要素から)第1構成要素に受け取れられると、同じ入力が第1構成要素のサロゲートモデルに向けられ、それに応じてそのノードの可能な新しい出力値を予測することができる。
【0054】
もちろん、ほとんどのノードが複数の入力値と出力値とを備え、それに応じて、サロゲートは入力値を出力値に写像する関数のデリバティブを表すことが理解されるであろう。デリバティブの使用によって、サロゲートはすべての入力と出力との間の関係を行列、またはQFD(Quality Function Deployment)フレームワーク、または偏微分方程式のセットとして写像することができる。デリバティブを用いたQFDフレームワークの公表例は非特許文献1に掲載されており、その内容は参照によって本明細書に組み込まれる。
【0055】
次に、工程S502において、可能な出力の適切な広がりを表す複数の予測が、サロゲートモデルによって生成される。上述したように、サロゲートモデルは誤差境界を提供し、これは、可能な値がその間に及ぶ上限予測(すなわち、上界)および下限予測(すなわち、下界)を効果的に定義している。この範囲は予測を生成するべくサンプリングされる。
【0056】
一例では、上限値、下限値、および推定値(すなわち、上限値と下限値とから等距離にある値)を使用することで、3つの予測が生成される。他の例では、範囲はより頻繁に(例えば、範囲にわたって一定の間隔で、または何らかの他の分布に従って)サンプリングされ、その結果、3つ以上の予測が使用される可能性がある。或る例では、サンプリング(したがって予測の数)は、比:予測間範囲/予測(RANGE_BETWEEN_PREDICTIONS/PREDICTION)に基づくユーザ指定の誤差(エラー)許容パラメータによって定義される。
【0057】
次に、工程S503において、ワークフロー内の第2構成要素が、第1構成要素がその実際の計算を終了する前に第1構成要素からの結果を必要とする場合、複数の第2構成要素が作成および実行され、各ノードが複数の予測のうちの明確(distinct)な1つを受け取る。一例では、第2構成要素は並列に実行される。したがって、第1構成要素のサロゲートモデルが出力の3つの可能な予測を生成する場合、第2構成要素の3つのコピー(予測ごとに1つ)が作成される。したがって、第2構成要素は、実行される前に第1構成要素が完了するまで待つ必要はない。
【0058】
いくつかの例では、第2構成要素を実行するのではなく、予測に基づき第2構成要素のサロゲートモデルが実行される。したがって、全体を通して第2シミュレーション構成要素への言及は、第2シミュレーション構成要素または第2シミュレーション構成要素のサロゲートモデルのいずれかへの言及と解釈されるべきである。
【0059】
次に、工程S504において、第1シミュレーション構成要素の実行が完了すると、方法は、生成された複数の予測のうちどれが正しかったかを判定する。すなわち、本方法は、各予測を第1シミュレーション構成要素の実際の出力と比較し、どの予測が実際の出力に対応するかを判定する。一例では、実際の出力に最も近く対応する(すなわち、誤差が最も小さい)予測が選択される。
【0060】
次に、工程S505において、正しい出力予測に対応しない複数の第2構成要素を破棄(廃棄)する。すなわち、正しい出力予測に対応する第2構成要素のみが保持される。
一例として、正しい出力予測に対応せず、まだ実行されている第2構成要素は終了される。
【0061】
もちろん、第1構成要素の実行が完了する前に、第2構成要素の実行が完了している可能性があることは理解されるでしょう。そのような状況では、今完了した第2構成要素の出力に基づき、さらなる構成要素(すなわち、第3構成要素)が実行されている可能性がある。すなわち、各ノードが、そのノードの出力の予測に基づき、複数の従属構成要素を有する実行ツリーが形成される。したがって、この状況では、不正確な予測に基づき実行されているそれ以上のシミュレーション構成要素は、終了される。言い換えれば、不正確な予測を表すノードにルートされた任意のサブツリーが終了される。
【0062】
特定の状況において、複数の予測に基づく複数の第2構成要素のチェックされない並列実行は、多数の第2シミュレーション構成要素の生成につながる可能性がある。例えば、構成要素の実行ツリーは、実行速度の遅いシミュレーション構成要素を待っている間に、いくつかの層にカスケードする可能性がある。一例として、この方法は、この潜在的な状態の爆発(エクスプロージョン)を防止するための緩和機構を備えている。緩和機構は、シミュレーション構成要素の実行ツリーの成長を制御する。例えば、ツリーの幅を最小にするべく、シミュレーションとサロゲートは、その結果が取り込まれるべくジャストインタイムで実行される(バッファを伴う場合もある)。さらなる例では、緩和機構は、ツリーのサイズ、深さ、または幅のうちの1つまたは複数に制限を強制する。したがって、ツリーの深さ、幅、または全体のサイズが所定の最大値に達すると、既存のノードの実行が完了するまで、新しいノードが生成されないようにする。
【0063】
別の例では、実行ツリーは、正しい出力予測に対応する可能性が低い予測に基づく第2シミュレーション構成要素が破棄され得るように、実行中に刈り込まれる。
例えば、出力予測を評価するべく、規則(ルール)が採用されることがある。出力予測が正しい出力予測である可能性が低いことを規則が示す場合、例えば、規則によって指定された所定の範囲外であるので、第2構成要素の実行は終了されてもよい。規則は、過去のシミュレーションの実行を調査して導き出すことができる。
【0064】
さらなる例では、機械学習は、ありえない予測を識別するべく採用されてもよい。例えば、以前のシミュレーション実行のような履歴データは、教師あり機械学習で使用することができる、どの予測が正しかったかを示す、ラベル付けされたトレーニングデータを提供することができる。多くの設定において、特定のシミュレーションは、数週間、数ヶ月、または数年にわたって、非常に多くの回数で実行され、大量の履歴データが得られることが理解されよう。
【0065】
さらに別の例では、構成要素の出力の形状/勾配のパターンマッチングを用いて、ありえない予測を識別することができ、または、記号的回帰を採用して、刈り込みのためにありえない予測を識別することができる。
【0066】
別の例では、1つまたは複数の先行するシミュレーション構成要素のデリバティブに対する予測のデリバティブの分析に基づき、ありえない予測が識別されることがある。例えば、或る予測が、実行の連鎖における以前のシミュレーション構成要素によって提供された出力と比較して、出力の変化率において著しい増加または減少を構成する場合、これは、あり得ない予測を示すことができる。この場合も、規則、閾値、または機械学習を用いて、ありえない予測を識別することができる。
【0067】
ありえない予測が識別されると、それに基づく第2シミュレーション構成要素は終了され、さらに、ありえない予測に基づき実行されている任意のさらなるシミュレーション構成要素も、結果として終了される。言い換えれば、実行ツリーの枝を刈り込むように、あり得ないとみなされた予測を表す実行ツリーのノードに根ざした任意のサブツリーが終了される。
【0068】
従って、上述したツリーサイズに関する制限を適用する代わりに、またはそれに加えて、シミュレーション中(すなわち、第1(最初の)シミュレーション構成要素の完了前)に、悪い予測に基づくツリーの枝を除去することで実行ツリーの成長を管理するべく、積極的なアクションが実行されてもよい。
【0069】
次に、図5の例示的な方法の作業例について、図6を参照して説明する。図6は、シミュレーション100に関連する上述した方法の実行フローを示す図である。
シミュレーション100の時間t0において、ドライバ構成要素101が実行され、第1実行を運ぶ。
【0070】
シミュレーション100の時刻t1において、ドライバ構成要素101が再度実行され、2回目の実行が行われる。ドライバ構成要素の2回目の実行の完了を待つのではなく、102-1/102-2/102-3とラベル付けされたエンジン構成要素102の3つのコピーが、ドライバ構成要素101の出力の3つの予測に基づき実行される。
【0071】
同様に、変速機(トランスミッション)制御ユニットTCU構成要素104の3つのコピー(104-1/104-2/104-3としてラベル付け)が、ドライバ構成要素101の出力の3つの予測に基づき実行される。
【0072】
さらに、変速機制御ユニットTCU構成要素104とエンジン構成要素102との両方からの入力に依存する、変速機(トランスミッション)構成要素103が実行を開始する。変速機制御ユニットTCU構成要素104とエンジン構成要素102とのそれぞれ3つのコピーが実行されているので、エンジン構成要素102-1/102-2/102-3と変速機制御ユニットTCU構成要素104-1/104-2/104-3とのコピーの組み合わせに対応する、9つの変速機(トランスミッション)構成要素103のコピーが実行される。
【0073】
この処理は継続され、他の構成要素からの出力予測に基づき車両動力学構成要素105が同様に実行されることが理解されるであろう。
その後、エンジン構成要素102の実行が完了する。この時点で、エンジン構成要素102の実際の出力に対応しない予測に基づく構成要素は、実行ツリーから刈り込まれ、終了される。他の構成要素が完了すると、ツリーは、不正確な予測に基づく枝を破棄するように、繰り返し枝刈りされる。
【0074】
一実施例では、シミュレーション100の実際の誤差は、それらが全く同じでない可能性があることを考慮して、実際のシミュレーション結果とサロゲート結果とを比較することで計算することができる。この誤差は、次に、下流に伝播され、サロゲートを使用する場合の全体的なシミュレーション誤差の推定を与えるべく蓄積され得る。これは、誤差境界法を用いて予測を選択しても、実際のシミュレーションの出力がその選択に完全一致する可能性が低いからである。一実施例では、累積誤差が或る所定(some predetermined)の閾値よりも大きくなった場合、チェックポイント(または他の適切な機構)のような技術の使用を備えていることができる停止機構が必要とされる。
【0075】
一実施例では、遅い方の正しい結果を待つことが望ましくない場合、全ての処理を並行して完了させるべく、サロゲートは、単一の時間ステップの従属シミュレーションに対して瞬時の値を提供するべく使用される。そして、実際の値とサロゲート値とを比較することで、シミュレーションにもたらされる誤差を計算することができる。この誤差の蓄積によって、シミュレーションに誤差が生じ、エンジニアはその結果を信頼するかどうかを判定することができる。
【0076】
図7は、サイバーフィジカルシステムのマルチ構成要素シミュレーションのためのさらなる例示的な方法を示す図である。
上述したように、いくつかの例において、シミュレーション100は、構成要素101~105のうちの1つまたは複数が他の構成要素とは異なるシミュレーションプラットフォームを用いて実行されるコ・シミュレーションであることが理解されよう(例えば、1つのノードはMATLAB(登録商標)およびSimulink(登録商標)を用いて構築される)。このような例、および他の状況(例えば、ノードが同じプラットフォームで構築されたが、異なる時間および/または異なる要件で構築された場合)において、各構成要素の論理時間ステップが等しくない場合がある。すなわち、シミュレーション100は、すべての構成要素が整合されるグローバルクロックを有しない場合がある。
【0077】
例えば、第1シミュレーション構成要素は、第1論理時間ステップまたは頻度が10秒である場合がある。したがって、第1シミュレーション構成要素は、サイバーフィジカルシステムの基礎となる構成要素の出力を10秒間隔でシミュレートする。第2シミュレーション構成要素は、例えば、代わりに13秒の第2論理時間ステップを有してもよい。
【0078】
したがって、第1構成要素に基づき第2構成要素への入力を生成するためには、13秒間隔で第1構成要素の出力を反映した値を取得する必要があることが理解されよう。したがって、その時間ステップ同士の間に第1構成要素の出力を推定することが必要である。
【0079】
工程S701では、第1シミュレーション構成要素のサロゲートモデルを生成する。上述したように、サロゲートモデルは、入力値を出力値に写像する関数のデリバティブの推定値を表す。
【0080】
工程S702において、サロゲートモデルは、第1シミュレーション構成要素の値を判定するべく使用され、この値は、第2シミュレーション構成要素への入力として使用される。詳細には、サロゲートモデルは、入力値を出力値に写像する基礎となる関数のデリバティブを表すので、第1構成要素の論理時間ステップの間の時間における出力値の値をより正確に判定するべく使用することができる。
【0081】
図8は、図7の方法を説明する図である。図8は、値Vを出力する第1シミュレーション構成要素のサロゲートモデル401を示し、第1構成要素は、10秒の時間ステップを有する。第2シミュレーション構成要素402は、13秒の時間ステップで動作する。したがって、第2シミュレーション構成要素402の入力は、t=13、t=26、t=39などでサロゲートモデルをサンプリングすることで得ることができる。
【0082】
これによって、平均化、0次ホールド、1次ホールドなどの他の方法よりも、必要な時間における第1シミュレーション構成要素の期待値をより正確に反映させることができる。
【0083】
図9は、サイバーフィジカルシステムのマルチ構成要素シミュレーションのためのさらなる例示的な方法を示す図である。いくつかの例において、第1シミュレーション構成要素501の出力は、第2シミュレーション構成要素502への入力に完全一致しない場合がある。そこで、2つのシミュレーション同士の間に、出力を適切に変化させる仲介ブロック(intermediary block。中間ブロック)503が追加される。
【0084】
一例として、仲介ブロック503は、第1シミュレーション構成要素501の複数の出力を、第2シミュレーション構成要素502のより少ない入力に結合(マージ)するように構成される。例えば、kgおよびm/sでの第1シミュレーション構成要素501の出力は、適切な変換式を適用することで、ニュートン(N)での値を出力するべくマージされ得る。他の例では、仲介ブロック503は、出力をより多くの入力に分割するように構成され、例えば、「N」の逆を「kg」および「m/s」にすることができる。さらなる例では、仲介ブロック503は、例えば、第1シミュレーション構成要素501の出力が時間要素を備えないので、仲介ブロック503がグローバルクロック504から時間要素を追加する、時間統合(time integration。時間積分)を可能にすることができる。
【0085】
仲介ブロック503は、第1シミュレーション構成要素501と、1つまたは複数の第2シミュレーション構成要素502との間に存在してもよい。変異は、シミュレーション論理時間に関して瞬間的であり、第2シミュレーション構成要素に同期している、すなわち、それらの消費者によって駆動される。
【0086】
有利なことに、上述の方法およびシステムは、低速で実行されるシミュレーション構成要素の予測出力に基づき、シミュレーション構成要素を前もって実行することで、シミュレーションの実行における実質的な遅延を防止する。これによって、保証された結果の精度を適時に確保することができる。サイバーフィジカルシステムの高度に複雑なマルチ構成要素シミュレーションの膨大な計算機要件を考慮すると、これらの方法およびシステムは、そのようなシミュレーションの実行を著しく加速することができる。結果として、本明細書に記載された方法およびシステムは、シミュレーションの実行が遅くなることを回避する必要性によってシミュレーションのユーザに課される設計上の制約を取り除くことができる。これによって、ユーザは、より複雑なシミュレーションを開発するためのさらなる自由を得ることができる。
【0087】
有利なことに、上述の方法およびシステムは、異なる時間ステップを有するシミュレーション構成要素同士を正確に接続することを可能にする。したがって、多様なプラットフォーム上に実装された複数のシミュレーション構成要素を有するコ・シミュレーションのシミュレーション精度が向上する。
【0088】
本明細書に記載された例示的な実施形態の少なくともいくつかは、部分的または全体的に、専用の特殊目的ハードウェアを用いて構築することができる。本明細書で使用される「構成要素」、「モジュール」または「ユニット」などの用語は、特定のタスクを実行するかまたは関連する機能を提供する、ディスクリートまたは集積構成要素の形態の回路、FPGA(Field Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)などのハードウェア装置を備え得るが、これらに限定されるものではないであろう。いくつかの実施形態では、記載された要素は、有形で永続的なアドレス指定可能な記憶媒体に常駐するように構成されてもよく、1つまたは複数のプロセッサ上で実行されるように構成されてもよい。これらの機能的要素は、いくつかの実施形態において、一例として、ソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素などの構成要素、処理、関数、属性、手続き、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、および変数を備えてもよい。例示的な実施形態は、本明細書で議論された構成要素、モジュール、およびユニットを参照して説明されたが、そのような機能要素は、より少ない要素に結合されてもよいし、追加の要素に分離されてもよい。オプションの特徴の様々な組み合わせが本明細書で説明されたが、説明された特徴は、任意の適切な組み合わせで組み合わされてもよいことが理解されるであろう。特に、任意の1つの例示的な実施形態の特徴は、そのような組み合わせが相互に排他的である場合を除き、適宜、任意の他の実施形態の特徴と組み合わされてもよい。本明細書を通じて、用語「を備えている」または「からなる」は、指定された構成要素を備えているが、他のものの存在を排除するものではないことを意味する。
【0089】
本願に関連して本明細書と同時またはそれ以前に提出され、本明細書とともに公開されているすべての論文および文書に注意が向けられ、すべてのかかる論文および文書の内容は、参照することで本明細書に組み込まれる。
【0090】
本明細書(添付の請求項、要約書および図面を備えている)に開示された特徴の全て、および/またはそのように開示された任意の方法または処理の工程の全ては、かかる特徴および/または工程の少なくとも一部が相互に排他的である組み合わせを除いて、任意の組み合わせで組み合わせることが可能である。
【0091】
本明細書(添付の請求項、要約書および図面を備えている)に開示された各特徴は、明示的に別段の記載がない限り、同一、同等または類似の目的を果たす代替的な特徴に置き換えることができるものとする。したがって、明示的に別段の記載がない限り、開示された各特徴は、同等または類似の特徴の一般的な一連の一例のみである。
【0092】
本発明は、前述の実施形態の詳細に限定されるものではない。本発明は、本明細書(添付の特許請求の範囲、要約書および図面を備えている)に開示された特徴の任意の新規な1つまたは任意の新規な組み合わせ、またはそのように開示された任意の方法または処理の工程の任意の新規な1つまたは任意の新規な組み合わせに及ぶ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
【国際調査報告】