より良い輸送の見込みを提供するために、スマート交通システムは、多様なユーザに大規模に(数千人またはそれ以上のユーザがいることがありうる)リアルタイムで(効果的な行動をとるのに十分な速さで)、広範なサービスを提供しなければならない。
本提案は、関連する欧州特許出願番号第20202133.3号の主題を形成するPipelined Digital Twin Sequencesの概念に関する。パイプラインデジタル・ツイン・シーケンスを実行することを考えてみると、例えば、管理インターフェースを通じて、問題(潜在的な)が識別されることがあり、問題の影響を低減するためにシステムに介入することが決定されてもよい。
例えば、監視されているシステムが公共交通のバス網である場合、バスルートの1つで道路が遮断されているインシデントが発生する可能性がある。公共交通システムの管理者は、遮断された道路の周りにバスを再ルーティングすることにより、サービスの継続性を保証したい。旅行時間の変更や、止まらない停留所(止まらない停留所により、一部の乗客が立ち往生する)に異なる影響を与えながら、再ルーティングするためのオプションは数多くあるだろう。
要件は、交通システム、スマートシティまたは電力ネットワークのような大規模に発展しているシステムで発生するインシデントを管理することであり、これらは、システム上のソースからストリーミングするか、またはシステムにサービスを提供しているリアルタイムに感知されたデータストリーミングから大量のセンサデータを生成する。インシデントへの応答は、「リアルタイム」で作成する必要があり、これは、サービスのユーザがすぐに行動をとるのに十分に速い。多様なデータソースがあり、異なるレートで異なる種類のデータを生成している。
例えば、大都市の運輸当局は、都市全体の人の流れの、リアルタイムの仮想モデルを提供する公共交通インフラストラクチャーのシステム・デジタル・ツインを作成してもよい。仮想モデルは、幅広い多様なソースからリアルタイムで生成されるデータによって駆動される。
・ 車載GPS、路側センサ、CCTV解析、ルーティング要求、公共交通機関のライブ発信(live dispatch)からの車両移動
・ 信号機などのインフラストラクチャーの状態および動作
・ モバイルGPS、チケット発行(ticketing)活動、CCTVからの人の移動。
イングランドの幹線道路網の交通管理を担当する国立交通情報サービス(National Traffic Information Service)は、道路網を走行する約100万台の車両、1000台のナンバープレートカメラ、および1万台以上の路側モニタリングユニットからデータを取得する。ロンドンの公共交通システムおよび道路網を担当するロンドン交通局は、9000台以上のバスと900本の列車を運行し、6300の信号機を制御し、1日100,000,000kmを超える車両の交通を管理し、1日5,000,000人を超える公共交通旅客の移動を管理している。
システム・デジタル・ツイン(システムの仮想モデル)は、これらのデータソースを統合し、交通の流れの状態のリアルタイムの理解を提供する。インシデント(事故、渋滞など)を判別するために異常検出法を用いるなどして、デジタル・ツインに同期サービスが追加されてもよい。しかしながら、例えば、事故のまわりで交通を迂回させたり、緊急サービスを展開したり、および/または公共交通をルーティングし直したりするなど、これらのインシデントを管理する必要もある。システム・デジタル・ツインは、モデルの仮想状態を(リアルタイムよりも速く、またはリアルタイムから一定のオフセットで)時間的に先に進める予測機能を有する場合、これを提供し、支援することができる。
言い換えれば、スマート交通システムおよび他の複雑なシステムの要件は、システムの状態を予測し、それにより、衝突の検出、正確な旅程時間の予測、システムへのインシデントの影響の確定、公共交通機関がいつ到着するかの表示、個別タクシーの選択などのサービスを可能にすることである。これらのサービスの各々は、主にポジショニング(positioning)の観点で、直接的または間接的に、モデル化されたインフラストラクチャー/インフラストラクチャー内のオブジェクトの状態に基づいている。
同じ要件は、他の適用分野、例えば、電力ネットワークにおいても明らかである。
本発明の第1の態様の実施形態によれば、モノのインターネット(IoT)ネットワークについてのシミュレーション結果の発展を予測する方法であって、オブジェクトのモデルに供給されたオブジェクトからのリアルタイムの感知データによって駆動されるIoTネットワークのためのソース・デジタル・ツインを作成することであって、ソース・デジタル・ツインは、リアルタイムでオブジェクトの1つ以上のオブジェクトの状態を出力する、ことと、追加的に、1つ以上のクローン・デジタル・ツインを追加的に作成することであって、各々、ソース・デジタル・ツインと同じモデルおよび相互接続を含む、ことと、第1のクローン・デジタル・ツインの入力を、データストリーム合成器ノードを介してソース・デジタル・ツインの出力と接続することであって、データストリーム合成器ノードは、ソース・デジタル・ツインの出力に時間増分を追加し、ソース・デジタル・ツインが第1のクローン・デジタル・ツインを増分した時間で駆動するようにする、ことと、さらなるクローン・デジタル・ツインの入力を、さらなるデータストリーム合成器ノードを介してシーケンス内の先行するクローン・デジタル・ツインの出力と接続することであって、さらなるデータストリーム合成器ノードは、さらなる時間増分を先行するクローン・デジタル・ツインの出力に追加し、先行するクローン・デジタル・ツインが、さらなる増分した時間でさらなるクローン・デジタル・ツインを駆動するようにする、主要なデジタル・ツイン・シーケンスを形成することと、ソース・デジタル・ツインと同じモデルと相互接続を含む探索的デジタル・ツインを作成することと、探索的デジタル・ツインの入力と、ソース・デジタル・ツイン、第1のクローン・デジタル・ツイン、およびそれ以上のクローン・デジタル・ツインのいずれかの出力とを接続し、探索的デジタル・ツインを初期化することと、探索的デジタル・ツインの態様を修正して、探索的デジタル・ツインで取られた行動をシミュレートすることと、追加のデータストリーム合成器ノードを介して探索的デジタル・ツインの出力を探索的デジタル・ツインの入力と接続することであって、追加のデータストリーム合成器ノードは、探索的デジタル・ツインの出力に追加の時間増分を追加して、追加の増分した時間で探索的デジタル・ツインを駆動することと、ソース・デジタル・ツイン、任意のクローン・デジタル・ツイン、探索的デジタル・ツインを実行して、探索的デジタル・ツインの出力として追加の増分した時間で、オブジェクトのうちの1つ以上のオブジェクトの発展した修正状態を提供することと、を含む、方法が提供される。
探索的デジタル・ツインにより、システムの管理者が、モデル化されたシステムにおける問題(例えば、道路工事)のような状況への対応を、行動(例えば、分流)の形で定式化し、その行動がシステムに及ぼす影響をチェックすることを可能にする。
この意味で、各デジタル・ツイン(ソース、クローン、探索的)は、システム・デジタル・ツインであり、個々のモデル(ノード)はオブジェクトデジタル・ツインである。
もちろん、ソース・デジタル・ツインはまた、(行動なしで)時間増分にわたってシステムの発展を(第1のクローン・デジタル・ツインに)モデル化することを実行してもよい。同様に、任意のさらなるクローン・デジタル・ツインはまた、(行動なしで)さらなる時間増分にわたってシステムの発展を(さらなるクローン・デジタル・ツインに)モデル化することを実行してもよい。
探索的なデジタル・ツインは、ソース・デジタル・ツイン(または任意のクローンのデジタル・ツイン)からクローニングされ、物理的なオブジェクト(またはシステム)で取られた行動を反映するように修正される。例えば、アクションを適用するために、方法は、データストリーム合成器を介して通常の方法で発展させるのではなく(またはそれに追加して)、関連するオブジェクトの状態(またはその値)に適切な変更を加えてもよい。
追加のデータストリーム合成器は、同じ探索的デジタル・ツインの出力を使用して探索的デジタル・ツインへのデータの入力をエミュレートし、時間増分した合成値を提供する(例えば、探索的デジタル・ツインの元の状態から車両の出力位置と速度を使用して位置を増分し、選択した時間における位置を判別することによって)。したがって、実際に検出された位置の代わりに、既知のデータに基づいて、探索的デジタル・ツインに、行動の効果が探索的デジタル・ツインの状態をどのように修正するかをシミュレートする、所定の追加の時間増分のための合成位置が提供される。本明細書における用語「追加」は、データストリーム合成器および主デジタル・ツイン・シーケンスに伴う時間増分から区別することである。
これにより、探索的デジタル・ツイン(少なくとも最初は、ソース・デジタル・ツイン、任意選択でクローンのデジタル・ツインと同じモデリングを有し、次に、例えば、ソースのデジタル・ツインと同じ状態から開始する)が、将来予測される状態で(それ自体の)ある発展した状態を生成することができる。したがって、探索的デジタル・ツインは、追加的に増分した時間に効果的に自らを駆動する。ソース・デジタル・ツインからクローニングされた1つ以上のクローン・デジタル・ツインは、(シングルソース・デジタル・ツインの後に)シーケンスにおいて提供されてもよく、これは、以下により詳細に説明されるように、将来に外挿される。したがって、デジタル・ツインから作成される探索的デジタル・ツインは、ソース・デジタル・ツインまたはクローン・デジタル・ツインから作成されてもよい。
探索的デジタル・ツインは、それが作成されるデジタル・ツイン(ソースまたはクローン)と並列して駆動されてもよい。つまり、それが作成されたツインと同じ状態で、同じ(モデリング)時間で開始してもよい。配置において、探索的デジタル・ツインは、デジタル・ツインと並列して駆動されてもよいが、より高速に駆動されてもよく、その結果、探索的デジタル・ツインのオブジェクトの発展した状態は、リアルタイムよりも速く計算されてもよく、行動の将来の効果が迅速に理解され、ネットワークに関する決定が、可能な限り早い段階で実装され得るようにしてもよい。
好ましくは、後のデジタル・ツインのためにシーケンスにおいて使用される時間増分(すなわち、ソース・デジタル・ツインまたは以前のクローン・デジタル・ツインまたは以前の探索的デジタル・ツインよりもデジタル・ツイン・シーケンスにおいて後に現れるクローン・デジタル・ツインまたは探索的デジタル・ツイン)は、遠い将来のシミュレーション精度が(実際のイベントに対して)近い将来のものよりも小さいので、より大きな値を有する。このようにして、微細な時間分解能で実行することによって生じる不必要な計算コストが低減される。
ソース・デジタル・ツイン内のオブジェクトのモデルは、相互接続がデータの流れを表す有向非循環グラフ、DAG内のオブジェクトノードとして相互接続されてもよい。
シミュレーションにおけるノードは、オブジェクトを表すノードに限定されない。状況に応じて、任意の好適なタイプのノードが追加されてもよい。ソース・デジタル・ツインにおけるノード(したがって探索的デジタル・ツインおよびクローン・デジタル・ツインにおけるノード)は、オブジェクトの状態に影響を及ぼすインシデントのような、IoTネットワークに影響を及ぼすイベントをモデリングするイベントノードを含んでもよい。
配置において、探索的なデジタル・ツインを作成するためにクローニングされるデジタル・ツインは、ソースのデジタル・ツイン、すなわち、物理的なシステム/オブジェクトの現在の状態を反映し、現実世界からのイベントおよびセンサ読み取りによって駆動される物理的なオブジェクトまたはシステムの仮想モデルである。このようにして、探索的デジタル・ツインは、モデル化された物理的なオブジェクトまたはシステムの初期状態でとられた行動への影響を調査してもよい。別の配置では、探索的デジタル・ツインを作成するためにクローニングされるデジタル・ツインは、クローン・デジタル・ツイン、すなわち、将来のある時点における物理的システム/オブジェクトの状態を反映する物理的オブジェクトまたはシステムの仮想モデルであり、その状態は、1つ以上の他のデジタル・ツイン(ソース・デジタル・ツインまたは他のクローン・デジタル・ツイン)を駆動することによって判別される。
追加的または代替的に、ソース・デジタル・ツインにおけるノード(したがって、探索的デジタル・ツインおよび任意のクローン・デジタル・ツインにおけるノード)は、IoTネットワークに関する情報をモデル化するシステム情報ノードも含んでもよい。
方法は、ソース・デジタル・ツインの出力、探索的デジタル・ツインの出力、もしくは任意のデジタル・ツインの出力、またはそれらの任意の組み合わせで、(DAG全体の一部として)サービスノードを作成することをさらに含んでもよい。サービスノードは、例えば、IoTネットワーク内のオブジェクトの状態に基づいてデータサービスを生成してもよい。より好ましくは、出力およびサービスは両方とも、リアルタイム(ソース・デジタル・ツインの出力)または将来(クローン・デジタル・ツインまたは探索的デジタル・ツインの出力)のいずれかで、ネットワーク内のすべてのノードの状態に基づく。もちろん、サービスは複数のオブジェクトの状態、あるいは他のサービスや、クローンの連鎖におけるオブジェクトの予測された発展した状態を使用してもよい。
このような「サービス」は、状態の(数学的な意味での)関数と見なすことができる。例えば、車両の予測位置は状態であるが、システムは衝突の警告を出力することができ、これは、全ての車両の位置(状態の一部)に依存するサービス/関数である。
好ましい構成では、サービスノードは、デジタル・ツインのデータストリーム合成器および/または探索的デジタル・ツインの追加のデータストリーム合成器と並列に(同じモデル化時間で)提供される。この配置では、方法は、ソース・デジタル・ツインの出力をサービスノードおよびデータストリーム合成器の両方に供給することをさらに含んでもよい。方法は、追加的または代替的に、探索的デジタル・ツインの出力をサービスノードおよび追加のデータストリーム合成器の両方に供給することを含んでもよい。データ合成器は、シーケンス内の最後のクローン・デジタル・ツインの出力において、またはシーケンス内の任意の探索的デジタル・ツインの最後の反復の出力において、必要とされないことが理解されよう。
実施形態において、複数の探索的デジタル・ツインを使用して、例えば、物理的オブジェクト(またはシステム)上で取られる異なる行動の効果、および/または異なる時点で物理的オブジェクト(またはシステム)上で取られる同じ行動の効果を探索してもよい。より詳細には、方法は、ソース・デジタル・ツインと同じモデルおよび相互接続を含む探索的デジタル・ツイン(第2のもの、第3のものなど)を作成することをさらに含んでもよい。方法は、さらなる探索的デジタル・ツインの入力を、ソースのデジタル・ツイン、および、もし作成されれば、クローンのデジタル・ツインのいずれかの出力に接続することをさらに含んでもよい。(最初の)探索的デジタル・ツインと同様に、これはさらなる探索的デジタル・ツインを初期化する。方法は、さらなる探索的なデジタル・ツインの態様を修正して、さらなる探索的デジタル・ツインで取られる行動をシミュレートすることをさらに含んでもよい。さらなる探索的デジタル・ツインで取られた行動は、(最初の)探索的デジタル・ツインで取られた行動と同じであってもよいし、異なっていてもよい。
方法は、さらなる探索的デジタル・ツインの出力を、同じさらなる探索的デジタル・ツインの入力と接続することをさらに含んでもよい。前述のように、時間増加を可能にするために、この接続は、別の追加のデータストリーム合成器ノードを介してもよく、別の追加のデータストリーム合成器ノードは、さらなる探索的デジタル・ツインの出力に別の追加の時間増分を加え、さらなる探索的デジタル・ツインが別の追加の増分した時間でさらなる探索的デジタル・ツインを駆動するようにする(すなわち、自ら駆動する)。ここで、用語「別の追加」は、(第1の)探索的デジタル・ツインに使用される「追加」の時間増分およびデータストリーム合成器から、また、さらなるクローン・デジタル・ツインに使用される「さらなる」時間増分およびデータストリーム合成器から区別するために使用されることに留意する。別の追加の時間増分と追加の時間増分は、同じ値であってもよく、異なる値であってもよい。
方法は、さらなる探索的デジタル・ツインを実行して、さらなる探索的デジタル・ツインの出力として、別の追加の増分した時間で、オブジェクトの1つ以上のオブジェクトの発展した状態を提供することをさらに含んでもよい。方法は、探索的デジタル・ツインの出力と、さらなる探索的デジタル・ツインの出力とを比較することをさらに含んでもよい。両方の行動が同時に(同じ状態で)実装されるので、比較は、ユーザが両方の行動の効果を判別し、取るべき最適な行動を決定することを可能にする。
さらなる探索的デジタル・ツインのための時間増分(さらなる追加の時間増分)は、(最初の)探索的デジタル・ツインのために使用される(最初の)追加の時間増分と同じであってもよいし、異なっていてもよい。同じ時間増分が使用される場合、方法は、将来、同等の時間間隔(何らかのアクションの適用後)に取られた行動の効果と結果を比較してもよい。
複数の探索的デジタル・ツインがある実施形態において、さらなる探索的デジタル・ツインの入力は、(最初の)探索的デジタル・ツインの入力に接続される入力と同じ入力に接続されてもよい。(最初の)探索的デジタル・ツインで取られた(シミュレートされた)アクションは、さらなる探索的デジタル・ツインで取られた行動とは異なる行動であってもよい。このようにして、同じ物理的オブジェクト(またはシステム)で同時に取られる異なる行動の効果を探索してもよい。
複数の探索的デジタル・ツインがあり、デジタル・ツイン・シーケンス内に複数のデジタル・ツイン(例えば、ソース・デジタル・ツインおよびクローン・デジタル・ツイン、またはソース・デジタル・ツインおよび多くのクローン・デジタル・ツイン)がある実施形態においては、異なる時点で取られた行動の効果を探索することが可能である。より詳細には、さらなる探索的デジタル・ツインの入力は、(最初の)探索的デジタル・ツインの入力に接続された出力とは異なる出力に接続されてもよい(例えば、(最初の)探索的デジタル・ツインは、ソース・デジタル・ツインに接続されてもよく、さらなる探索的デジタル・ツインは、それ自体がソース・デジタル・ツインに接続されたクローン・デジタル・ツインに接続されてもよい)。(最初の)探索的なデジタル・ツインで取られた(シミュレートされた)行動は、このさらなる探索的デジタル・ツインで取られたアクションと同じアクションであってもよい。
もちろん、実施形態は、多くの探索的デジタル・ツインを作成することを可能にし、あるものは、異なる時点で取られた行動の効果を探索することができ、他のものは、同時に取られた異なる行動の効果を探索することができる。
シミュレーションへの入力は、リアルタイムセンサデータやIoTデータに限定されない。好ましくは、外部データソースからのコンテキスト情報は、ソース・デジタル・ツインおよび/または任意の探索的デジタル・ツインおよび/または任意のクローン・デジタル・ツインに追加的に入力される。
任意の探索的デジタル・ツイン(第1、第2、さらに、など)について、実施形態は、初期状態の繰り返し処理を可能にしてもよい。つまり、探索的デジタル・ツインが繰り返し(反復)実行され、各繰り返し実行が(次の)増分時間で発展した状態を提供する。探索的デジタル・ツインの出力から探索的デジタル・ツインの入力に発展状態をフィードバックすることにより、このプロセスを無期限に繰り返してもよい。このようにして、方法は、探索的デジタル・ツインの出力として、オブジェクトのうちの1つ以上のオブジェクトの複数の発展した修正状態を、繰り返し増分される時間で提供してもよい。
実施形態において、任意のソース・デジタル・ツインまたは任意のクローン・デジタル・ツインの実行は、リアルタイム(リアルタイムに従ってか、または追跡する)であってもよい。すなわち、ソースまたはクローン・デジタル・ツインによってシミュレートされたシステムは、例えばリアルタイムで取得されたセンサデータを使用して、リアルタイムで発展してもよい。例えば、ソース・デジタル・ツインの場合、リアルタイムに従って実行することは、リアルタイムでセンサデータを取得することを伴ってもよい。同様に、クローン・デジタル・ツインの場合、リアルタイムに従って実行することは、実生活のオブジェクト例えば、車)が移動するレートまたはあらゆるセンサデータの更新と一致するレートで、シーケンスにおいて次のクローン・デジタル・ツインに対する処理を伴う。任意の探索的デジタル・ツインは、より速い速度で実行されてもよく、その結果、任意のアクションの任意の影響を反映する任意の発展状態が、迅速に取得される。このように、行動の実装に関する決定は迅速に行われ得る。
探索的デジタル・ツインまたはクローン・デジタル・ツインを作成することは、必ずしも基礎となるコードの完全な複製(例えば、ソースのデジタル・ツイン)を作成することを伴わないことがある。実施形態において、デジタル・ツインの作成は、ソース・デジタル・ツインと同じコードを使用/使用することを含んでもよい(シーケンス全体に対して1つのコードコピーのみが必要とされるようにする)。ツインの状態をコードに入力し(ツインの現在の時間で)、コードを1回以上繰り返して実行する。方法は、デジタル・ツインまたは探索的デジタル・ツインの現在の状態を、実行後の結果としての状態に置き換えることをさらに含んでもよい。このようにして、例えば、各デジタル・ツインに対応する複数の状態(例えば、データベースに記憶された複数の状態)からの状態を、すべてのデジタル・ツインに共通であり、データストリーム合成器に接続されたコードの「シェル」にロードするために選択してもよい。例えば、各状態は、値の集合として記憶されてもよく、それは、必要なときにロードされてもよい。デジタル・ツインを作成するこの方法は、大きなシステム(コードと関連データの両方)を複製する計算処理の負担を回避する。
好ましい特定の用途に目を向けると、IoTネットワークは交通ネットワークであってもよい。ここで、オブジェクトノードは、車両ノードおよび/または1つ以上のインフラストラクチャーノードを含んでもよい。交通インシデントノードなど、1つ以上のイベントノードが含まれる。
オブジェクトのうち1つ以上のオブジェクトの状態が、オブジェクトの位置およびオブジェクトの速度のうちの1つ以上を含んでもよい。
1つのシナリオにおいて、交通ネットワークは公共輸送ネットワークであり、ソース・デジタル・ツインおよび任意の探索的デジタル・ツイン(複数可)、ならびに任意選択のクローン・デジタル・ツイン(複数可)内のノードは、車両ノード、公共輸送ネットワークに影響を与え得るイベントを表すインシデントノード、公共輸送ネットワークインフラストラクチャーのセクションを表す停留所ノード、および車両の経路を表すシステム情報ノードを含む。この場合、DAGの順序は、インシデント(Incident)、停留所(Stop)、運行(Run)、そしてバス(Bus)ノードであってもよい(各タイプのノードは、システムの各デジタル・ツインにおいて並列)。
本発明のさらなる態様の一実施形態によれば、モノのインターネット(IoT)ネットワークについてのシミュレーション結果の発展を予測する方法であって、データの流れを表す相互接続を有する、有向非循環グラフ、DAGにおいてオブジェクトノードとして相互接続されたオブジェクトのモデルに供給されたオブジェクトからのリアルタイムの感知データによって駆動される、IoTネットワークのためのソース・デジタル・ツインを生成することであって、ソース・デジタル・ツインが、オブジェクトの1つ以上のオブジェクトの状態をリアルタイムで出力する、ことと、ソース・デジタル・ツインと同じモデルおよび相互接続を含む探索的デジタル・ツインを作成することと、ソース・デジタル・ツインが探索的デジタル・ツインを初期化するように、探索的デジタル・ツインの入力とソース・デジタル・ツインの出力とを接続することと、探索的デジタル・ツインの態様を修正して探索的デジタル・ツインで取られた行動をシミュレートすることと、探索的デジタル・ツインの入力と探索的デジタル・ツインの出力とをデータストリーム合成器ノードを介して接続することであって、データストリーム合成器ノードは、探索的デジタル・ツインが増分した時間で探索的デジタル・ツインを駆動するように、時間増分を探索的デジタル・ツインの出力に追加する、ことと、ソース・デジタル・ツインと探索的デジタル・ツインとを実行して、探索的デジタル・ツインの出力と同じ増分した時間でオブジェクトの1つ以上のオブジェクトの発展した修正状態を提供することと、を含む方法が提供される。
本発明のさらなる態様の実施形態によれば、命令を有するコンピュータプログラムであって、命令は、プログラムがコンピュータによって実行されるときに、コンピュータに上記の方法のいずれかを実行させる、コンピュータプログラムが提供される。
プログラムは、ローカル装置でコンピュータ実装される方法を提供するために、ローカルで、もしくはクラウドで、またはその両方で実行されてもよい。例えば、デジタル・ツインは、サーバで(クラウド上で)構築および実行されてもよく、出力は、特定のサービスを与えるためにローカル装置に提供されてもよい。
本発明のさらなる態様の実施形態によれば、先行する請求項のいずれかに記載の方法を実行するように構成された、プロセッサおよびメモリならびにネットワークインターフェースを含むコンピュータ(データ処理装置)が提供される。プロセッサおよびメモリは、(例えば、(任意の探索的デジタル・ツインを含む)デジタル・ツイン・シーケンスを表示する)ディスプレイおよび/または(開発者がモデルを構築するためにデータおよびパラメータを入力するために構築するための、またはエンドユーザがサービスと対話するための)入力装置にリンクされてもよい。
対応するコンピュータシステムは、上記で定義されたコンピュータと、ディスプレイと、入力装置と、任意の他の必要とされる構成要素とを含んでもよい。
本発明の好ましい実施形態による装置(コンピュータまたはコンピュータシステム)またはコンピュータプログラムは、方法の態様の任意の組み合わせを含んでもよい。さらなる実施形態による方法またはコンピュータプログラムは、それらが処理およびメモリ能力を必要とするという点で、コンピュータ実装されたものとして記載されてもよい。
好ましい実施形態による装置は、ある種の機能を実行するように構成され、または配置され、または単にそのような機能を実行するように記載されてもよい。この構成または配置は、ハードウェアもしくはミドルウェア、または任意の他の好適なシステムを使用することによって行うことができる。好ましい実施形態では、構成または配置はソフトウェアによる。
本発明は、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。本発明は、コンピュータプログラムまたはコンピュータプログラムプロダクト、すなわち、1つ以上のハードウェアモジュールによる実行のため、またはその動作を制御するための、非一時的な情報担体、例えば機械可読記憶デバイスにおいて、または伝搬信号において有体に具現された命令を有するコンピュータプログラムとして実装されうる。
コンピュータプログラムは、スタンドアローンのプログラム、コンピュータプログラム部分または複数のコンピュータプログラムの形であってもよく、コンパイルされるまたはインタープリットされる言語を含む任意の形のプログラミング言語で書かれてもよく、スタンドアローンのプログラムとして、またはデータ処理環境における使用に好適なモジュール、コンポーネント、サブルーチン、または他のユニットとして、任意の形態で展開されてもよい。コンピュータプログラムは、1つのモジュール上で、または1つのサイトのもしくは複数のサイトにわたって分散された複数のモジュール上で実行され、通信ネットワークによって相互接続されるように展開されてもよい。
本発明の方法ステップは、入力データに対して作用し、出力を生成することによって本発明の機能を実行するコンピュータプログラムを実行する1つ以上のプログラマブルなプロセッサによって実行されてもよい。本発明の装置は、プログラムされたハードウェアとして、または、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含む特殊目的の論理回路として実装されてもよい。
コンピュータプログラムの実行に好適なプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受領する。コンピュータの本質的な要素は、命令およびデータを記憶するための1つ以上のメモリデバイスに結合された、命令を実行するためのプロセッサである。
本発明は、具体的な実施形態に関して説明される。他の実施形態も、以下の請求項の範囲内である。例えば、本発明のステップは、異なる順序で実施され、依然として望ましい結果を達成してもよい。複数のテストスクリプトバージョンが、オブジェクト指向プログラミング技術を使用することなく、ユニットとして編集および呼び出しされてもよい。例えば、スクリプトオブジェクトの要素は、構造化データベースまたはファイルシステム内で組織化されてもよく、スクリプトオブジェクトによって実行されるものとして記述される動作は、テスト制御プログラムによって実行されてもよい。
本発明の要素は、「プロセッサ」、「入力装置」などの用語を用いて説明されてもよい。当業者は、そのような機能的な用語およびその等価物が、空間的には分離しているが、定義された機能を果たすために組み合わされるシステムの部分を指してもよいことを理解するであろう。同様に、システムの同じ物理的な部分が、定義された機能の2つ以上を提供してもよい。
例えば、任意の別個に定義された手段が、適宜、同じメモリおよび/またはプロセッサを使用して実装されてもよい。
大規模なストリーミングデータを処理し、リアルタイムで洞察を提供することは、広告を配信するためのクリックストリームの処理、オンライン詐欺の検出、ビデオメディアの消費など、多くのウェブスケールアプリケーションで使用される。また、たとえば、配車サービスによるスマート運輸における用途がある。配車サービスでは、到着見積り、価格表示、ドライバー割り当て、および乗車モニタリングを提供するために位置データが使用される。後者の用途は、一般に、たとえば乗客をドライバーおよび車両とマッチさせるために、2つ以上のデータストリームのマージを必要とする。しかしながら、ストリームデータ処理システムの設計により、これは困難となる。複雑な処理は、単一のデータストリームのレベルでのみ適用されることができ、異なるデータストリームをマージすることは多くの労力を要する。これは、処理がオブジェクトの履歴に依存する場合に特に問題となる。なぜなら、先行技術には、複数のデータストリームの相関付けされた履歴を保持する機構がないからである。これは、リアルタイムデータストリーム上に構築できるサービスの数と洗練度を制限する。結果として、リアルタイムサービスはしばしば単純素朴であり、より複雑な処理はオフラインで実行される。
より洗練されたサービスを開発するために使用される1つの有用な概念は、上記で紹介したデジタル・ツインである。デジタル・ツインでは、現実世界における実際のエンティティ、たとえば車両が、デジタルの世界で複製され、その挙動がコードでモデル化されるが、センサデータの入力ストリームからの値によって駆動される。デジタル・ツインの一つの利点は、サービスをデータストリームに対して直接作用することから分離することであり、サービスはデジタル・ツインの状態と出力に対して作用することができる。
複雑なシステムをモデル化する場合、設計者は、システム全体のデジタル・ツイン(システム・デジタル・ツイン、たとえばスマートシティ)と、コンポーネントのデジタル・ツイン(オブジェクトデジタル・ツイン、たとえば、車両、乗客、信号機)を区別する。オブジェクトデジタル・ツインは、現実世界の対応物に関係するすべてのデータストリーム(たとえば、車両テレメトリおよび現在乗っている人からの位置データ)の収集を自動的に扱い、すべての関連する履歴(状態)を記憶し、オブジェクトの挙動または状態をモデル化するための複雑な処理を実行し、それがその後出力される。
そのようなデジタル・ツインは、富士通のStream Data Utiliser(別名Dracena:https://www.fujitsu.com/global/about/resources/news/press-releases/2019/1008-01.html)、FlinkのStateful Functions(https://flink.apache.org/stateful-functions.html)またはAzureのDurable Functions(https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=cshar)などのプラットフォームを使用して、大規模で大量のストリーミングデータの上に構築されることができる。
ストリーミングデータを処理するプラットフォームは、部分的には、処理が有向非循環グラフ(DAG)として構造化されることを要求する一般的な制約条件をもって、実行できる計算のタイプを制約することによって、高性能を達成する。処理グラフは、計算が行われるノード(これは、オブジェクトデジタル・ツインまたはその出力を使用するサービスに対応する)と、それらのノードを接続し、データまたはイベントのフローを表すエッジからなる。グラフがDAGである場合、イベントは常に順方向に流れる。よって、ノードによってすでに処理されたデータの再処理を許容するサイクルは存在しない。換言すれば、ノードは、ステージを形成するセットにグループ化されることができ、あるステージから前のステージへの通信やステージ内のノード間の「逆方向」/「横方向」の通信は存在しない。
FlinkのStateful Functionsのようないくつかのプラットフォームは、処理におけるそのようなサイクルを許容することがあるが、パフォーマンスにおいて大きなペナルティがある。
これらの制限を克服する技術がある。たとえば、イベントを集約する(aggregate)ノードを導入するか、またはデジタル・ツインを複数のステージにわたって分割することによるものである。
これらの技術を用いて実装されたデジタル・ツインは、現在または最近の過去の状態に基づいたサービスを提供することは可能であるが、将来への状態の発展を予測することを必要とするサービスを提供することを求められると困難を伴う。従来技術であれば、時間依存性は、各個々のオブジェクトツインの挙動方程式を修正することによって、システム・デジタル・ツインに組み込まれるところである。その際、オブジェクトツインの間の相互作用に時間依存性があると、同じ計算ステージを共有するオブジェクトツイン(ノード)間でメッセージが渡されることを必要とされることになる。上述のように、DAGとして構築された計算を必要とするストリーミングプラットフォームでは、これは不可能になる。
図1は、非常に単純な処理DAGを示す。文字付きの円(A、B、C)は処理ノードであり、接続するエッジがデータの流れを表す(矢印は方向を示す)。このDAGは、ノードAが車両のオブジェクトデジタル・ツインであり、ノードBが道路のセクションのオブジェクトデジタル・ツインである場合に、道路のセクションに沿った移動時間を予測するために使用されることができる。ノードCは、移動時間推定サービスを提供する。実際には、ノードAとノードBのタイプの多くのインスタンスと、ノードCの少数のインスタンスがあるだろうが、データの流れは厳密に左から右であろう。ノードAは車両の位置(単数または複数)およびルート(単数または複数)をノードBに供給し、ノードBはそのデータを蓄積して、それらのセグメント上のトラフィック密度を計算する。ノードCは、そのトラフィック密度を使用して移動時間を計算する。
図1の構成は、現在の走行時間のビューを与えるが、道路の将来の状態のビューを与えるものではない。車両の将来の時刻においてどこにあるかの推定は、ノードCで計算される道路セグメントの走行時間に依存する。図2は、これを達成するために必要とされるデータフローを示している。ノードCからノードAへのデータの移動は、グラフがもはやDAGではなく、現在のストリームデータ処理システムを使用して処理できない(または効率的に処理できない)ことを意味する。
パイプラインデジタル・ツイン
方法は、デジタル・ツインを複製してクローン・デジタル・ツインを作成することによって、デジタル・ツインによってモデル化されたシステムの将来の状態を推定することを許容する。クローン・デジタル・ツインは、もとの(またはソースの)デジタル・ツインと同じ数学的モデル化を有するが、入力は異なり、従って、異なる出力を有する。よって、モデル化は同じであるが、ツインの状態は(ML学習および/または時間の差に起因して)異なる。
本願で使用される場合、ソース・デジタル・ツイン(source digital twin、sDT)は、物理的なオブジェクトまたはシステムの仮想モデルであり(たとえば、スマートシティ、輸送ネットワーク、電力ネットワークなどのシステム・デジタル・ツイン)、物理的なシステム/オブジェクトの現在状態を反映し、現実世界からのイベントおよびセンサ計測値によって駆動される。
本願で使用される場合、クローン・デジタル・ツイン(clone digital twin、cDT)は、物理的なオブジェクトまたはシステムの仮想モデルであり、将来の何らかの時点での物理的なシステムの状態を反映し、それに対して何らかのアクションが実行される可能性がある。cDTは、コレクション内の1つ以上の他のデジタル・ツインの出力によって駆動される。
本願で使用されるところでは、用語「駆動される(driven)」は、デジタル・ツインの状態、よってモデル化された挙動を設定するために使用されるデータの主なソースを定義する。従来のデジタル・ツインでは、これは現実世界であるが、この方法論では、デジタル・ツインは他のデジタル・ツインの出力によって駆動されることができる。
本願で使用される場合、デジタル・ツインコレクションは、1つ以上のデジタル・ツイン(通例、システム・デジタル・ツイン)の集合である。
本願で使用される場合、物理的なシステムまたはオブジェクトは、本稿で説明されるようなデジタル・ツインによってモデル化される現実世界の一部である。
本願で使用される場合、デジタル・ツイン・シーケンス(digital twin sequence、DTS)は、何らかの時間間隔(必ずしも一定ではない)だけ互いにオフセットされたシステム・デジタル・ツインの順序付けされたコレクションであり、物理的なシステムの将来への発展をモデル化することが意図されている。シーケンスはsDTで始まり、その後にいくつかのcDTが続き、各cDTはシーケンスにおいて直前のデジタル・ツインによって駆動される。DTSはリアルタイムで実行されるので、シーケンス内のデジタル・ツインは常に現在時刻から同じオフセットにおける物理的なシステムの状態を反映する。
以下により詳細に説明されるように、これらのクローンをもとのデジタル・ツインと同時並行して、ただしそれらのシステム時間(モデル化される時間)を短い増分だけ進めることにより、将来の状態を推定することができる。一連のクローンが同時並行して実行され、所望の予測オフセットに達するまでの時間を増分ずつ進める。または単一のクローンが提供されてもよい。
本明細書で使用される場合、探索的デジタル・ツイン(eDT)は、物理的オブジェクトまたはシステムに対する行動の効果を探索するために使用されるcDTである。eDTは、主(パイプライン) DTS上のデジタル・ツイン(ソースまたはクローンのいずれか)の状態を、行動を反映するために必要な修正を加えてクローニングすることによって初期化することができる。eDTを次回に駆動するために、eDTの状態を一度に使用してもよい。すなわち、eDTは、シミュレーション時間シーケンスの前回の時間でのそれ自身の出力によって駆動される。
さらに、本明細書で使用されるように、パイプラインDTSは、任意のeDTが存在しない場合のDTSである。これは「主DTS」とも呼ばれる。このようにして、eDTをパイプラインDTSに由来する探索的「ブランチ」と考えてもよい。
図3は、ノードとデータフローの概略図であり、データの新しい流れと計算の構造を示している。データフローは、グラフを通して厳密に一方向(左から右)であり、グラフはDAGとして維持されることに注意すべきである。システムソース・デジタル・ツイン(オブジェクトツインAおよびBを含む)が最下層に示されている。システムの将来の状態は上位層として示され、これらの層のそれぞれもDAGを維持する。これらの将来の状態は、現在+Δt1(オブジェクトツインA’およびB’を含む)および現在+Δt2(オブジェクトツインA’およびB’を含む)におけるクローン・デジタル・ツインcDTによって与えられる。ここでΔtnは、cDTのリアルタイム(現在)からのオフセットである。ここで、現在+Δt2は、最初のクローン時間にさらなる時間増分を加えたものと見なすことができる。すべてのデジタル・ツインは、以前と同じデータ/サービスをエクスポートする(データは右側に出て行く)。もちろん、より多くのクローン・デジタル・ツインが提供されてもよく、または単一のクローン・デジタル・ツインが提供されてもよい。
図3は、DS(301、302)とラベル付けされた、新しいタイプの処理ノード「データストリーム合成器(Data Stream Synthesiser)」を導入する。これは、後続のcDTのための修正された「合成」データストリームを効果的に提供し、シミュレーション時間を進める役割を担う。データストリーム合成器は、システムツイン(sDTまたはcDT)内のすべてのオブジェクトツインの状態を受け、シミュレーション時間を後続のクローンの時間に進ませる、各ツインの時間発展をモデル化する。たとえば、データストリーム合成器は、車両の速度および位置データを使用して、車両の位置を、増分を加えられた時刻における推定された位置に進める。他の例は:増分を加えられた時刻における信号機のライト設定を決定するために信号機シーケンシングを使用すること;増分を加えられた時刻においてバスが停留所を出発しているかどうかを判定するために乗客の乗車/降車数を使用すること;または増分を加えられた時刻において上流の交通の密度を計算するために下流の交通の密度および流れを使用することである。これらの例および他の好適なアルゴリズムのうちの任意のものまたは全部が、利用可能なデータ、必要とされる精度、および利用可能な計算能力に応じて、組み合わせて使用されてもよい。発電および送電シナリオでは、時間発展モデル化の一例は、増分を加えられた時刻において発電される電力の大きさを設定するために、天気予報(コンテキスト)データを使用することである。
データストリーム合成器は、次のクローンのシミュレーション時刻において現実世界のセンサが生成するであろうデータの予測を生成するために、その時間を進めた状態を使用する。
この構造を用いて、将来クローンの入力は、シーケンス中の直前のクローンの出力から導出されてもよい。「現在」のデジタル・ツインは、外部イベントおよびデータ(左から入ってくる)によって駆動されるが、将来のクローン・デジタル・ツイン(時刻、現在+Δt1および現在+Δt2)は、直前のデジタル・ツインの合成された結果によって駆動される(「現在」が現在+Δt1を駆動し、現在+Δt1が現在+Δt2を駆動する、など)。
これらのサービスは、ここでは(図4でも)示されていないが、ノードBであってもよく、よって、単一のオブジェクトデジタル・ツインがある。あるいは、各デジタル・ツイン(または、そのサービスを提供する任意のデジタル・ツイン)のための追加ノードとして、例えばデータストリーム合成器の前に直列に、またはデータストリーム合成器と並列に、提供されてもよい。
デジタル・ツインのクローニングは、クローンの数に正比例して、計算負荷および資源消費を増加させる可能性がある(この可能な効果を緩和するためのさらなる戦略については下記参照)。各クローンは、データストリーム合成器によって設定される、基本シミュレーションからの一定のオフセットを維持しながら、その時間範囲を受け持つことに注意されたい。リアルタイムが進行するにつれて、sDTが追従し、cDTはそれらのオフセット(例えば、図3におけるΔt1およびΔt2)を維持する。しかしながら、これは現実のシステムの発展のシミュレーションなので、将来になるほど、クローンの精度は低くなる。モデル化の不正確さと一部のデータについての現在値の欠如からのシミュレーション誤差が次のステージに伝播していくからである。さらに、予測される時間が先であるほど、値が必要とされる時間スケールが長くなる。これら両方の理由のため、各クローンが受け持つ時間の範囲は必ずしも一定ではなく、モデル化されるさらなる前進時間(the further ahead of time modelled)を増すことができる。この例解については図4を参照されたい。図4では、各デジタル・ツインは、例示的なノードAおよびBを含み、データストリーム合成器DSが後続するものとして示されている。図の左側の最初のデジタル・ツインはソース・デジタル・ツインであり、他のデジタル・ツインはクローンであり、ΔtはΔt1からΔt7に増加することができる。
現在時間が進行するにつれて、「現在」のソース・デジタル・ツインは、現在時間についていくよう、はいってくるデータを使用する。「現在」からの出力がデータストリーム合成器を介して「現在+Δt1」および「現在+Δt2」を駆動することは、これらのクローンが現在時間からのオフセットを維持することを意味する。このようにして、現在状態の単純な発展に頼るサービス(例えば、旅行開始後1時間での交通条件に基づくルーティング)を提供することができる。
図5は、各システム・デジタル・ツインにおける個々のノード(オブジェクトデジタル・ツイン)の表現が、システム・デジタル・ツインを表す単一のブロックで置き換えられた概略図である。これは、DTSの実装における主要なプロセスを示す。
物理的なシステムの状態の発展するミラーを維持する従来技術から知られているデジタル・ツインシステムは、項目501、502、503、および504から形成される。現実世界のセンサ501および/または他の現実世界のデータソースは、(システムの)ソース・デジタル・ツインsDT 503に供給される現実データストリームを提供する。ソース・デジタル・ツイン(sDT)の出力は、サービス504およびデータストリーム合成器506の両方に渡される。物理的なシステムをモデル化するsDT 503は、リアルタイムデータストリーム501によって駆動されるだけでなく、可能性としては、物理的なシステムのコンテキスト(例えば、気象条件、イベント、年月など)に関する情報を提供するさらなるデータのストリーム502によっても駆動される。コンテキストに関する情報は、リアルタイムであっても、あるいは例えばデータベースクエリーからであってもよい。システムは、sDTからのデータを使用してクライアントにサービス504(単純なルーティングサービスなど)を提供する。DTSの次の構成要素は、sDT 503をクローニングして第1のcDT 505を形成することによって形成される。このcDT 505は、データストリーム合成器506から、そして可能性としてはコンテキスト情報(例えば、コンテキストデータに経時的な変化がある場合には、増分を加えられた時刻において適用可能な、後の気象予報またはデータを参照することによって、ΔT1だけオフセットされる)から作成された合成されたデータストリームによって駆動される。このcDTは、t0+ΔT1における物理的なシステムの状態を推定するデータから導出される、クライアントのためのサービス507を提供する。DTSは、第一のcDTをクローニングしてt0+ΔT2におけるcDT508を形成することによって、さらに将来に拡張される(このcDT 508は、合成されたデータストリーム509と、可能性としては、ΔT2だけオフセットされたコンテキストデータによって駆動される)。このように、第2のcDT508は、第1のクローンと同じ状態をもち、それがその後ΔT2のために調整される。
クローンは2つの方法のいずれかで構築できる:
・ 完全な複製による。各クローンは、動的状態と静的状態のコピーを保持する独立したエンティティとして動作する。これは、コーディングが単純という利点があり、時間の間に構成に対する変更(例えば、個々のオブジェクトを表す処理ノードの追加および/または削除)を許容する。
・ クローンは、基本となるデジタル・ツイン内の追加的な処理/サービスとして作成されてもよい。これは、入ってくるデータが正しい時刻前進されたインスタンスによって処理されなければならず、動的状態が単離されなければならないので、追加的なコーディングの複雑さを有する。この技法は、静的状態がすべてのインスタンス(クローン)の間で共有できるので、資源効率がより高い可能性がある。このクローニングの方法のさらなる議論については、以下を参照のこと。
ほとんどのストリーミングシステムは、コンピュータ障害に備えて、あるいは一部のプラットフォームについてはアップグレードを容易にするために、不揮発性の状態を保持する機構を有する。状態復旧は、効率的であるように設計される。新しいシーケンスを作成するためのクローニングは、最初のcDTを初期化するためにsDTの保存された状態をコピーすることによって開始されてもよい。これからの出力が、時間シーケンス内の次のクローンを初期化するために使用できる、などとなる。
図6は、このプロセスを示している。601はDTSの一部としてのデジタル・ツインである。良好な管理慣行の一部として、デジタル・ツインを実行するコンピュータプログラムの連続的な実行は、プログラムの状態の定期的なコピーを取って、それらのコピーを何らかの形の不揮発性記憶に保存することによって、保証される。Dracenaのようなシステムの場合、プログラム状態は、デジタル・ツイン内のすべてのオブジェクトの状態値のすべてと、システムをモデル化するために使用されるコンピュータコードから構成される(602)。障害の場合、保存された状態を実行ハードウェアに復元すること(603)により、デジタル・ツインの実行を再開することができる。同じ機構が、シーケンス内のすべてのデジタル・ツインに利用可能である(604、605、606)。
DTSをΔTだけ拡張するために、実行能力(ハードウェアおよびサポートソフトウェア、例えばFlink)が新しいクローンのために割り当てられる。新しいクローンの実行は、tにおける状態の保存されたコピーを、新たに割り当てられたハードウェアおよびソフトウェアに復元すること(607)によって開始される。これは、t+ΔTでのデジタル・ツイン(604)の計算およびオブジェクト状態の両方を、603のもの、すなわち時刻tでのものに初期化する。604の初期化と並行して、新しいデータストリーム合成器(608)が作成され、603の出力に取り付けられる。これにより、データストリームは、必要に応じて604でクローンを時刻tから時刻t+ΔTに移動させることができる。
プログラム状態の保存復元機構は、多様な技術を用いて可能であることに留意されたい。
探索的デジタル・ツイン
上記で紹介し、関連する欧州特許出願番号第20202133.3号の主題を構成するパイプラインデジタル・ツインは、それらの物理システムの開発の期待される経路をたどる。可能な限り最善の展開経路をたどることを確実にするようにしばしば介入が必要とされ、行動が実装される前に、行動の結果を評価する必要がある。本明細書に記載されるパイプラインデジタル・ツインへの強化は、パイプラインから探索的デジタル・ツイン(eDT)を作成することによってこれを可能にする。eDTは、行動の結果によってパイプラインデジタル・ツイン・シーケンスと異なる物理システムの状態をシミュレートし、リアルタイムよりもはるかに早く発展する可能性がある。
上述したように、パイプラインデジタル・ツイン技法の利点は、新しいタイプのサービスを提供するために容易に適用できることである。輸送システムを積極的に管理するには、事業者がより広範なシステムに最も影響を及ぼす(または最も有害でない)対応策を策定する必要のある、異常なインシデント(交通事故など)への対応が必要である。システムのデジタル・ツインは、インシデントの影響を予測するために発展するが、発明者は、インシデントに応答して取ることができる行動(トラフィックの再ルーティング、道路の閉鎖、信号の再位相変更など)の影響も1つ以上予測することができれば、それは有利であることを認識した。
図7は、一般的な実施形態による、モノのインターネット(IoT)ネットワークについてのシミュレーション結果の発展を予測する方法の流れ図である。ステップS2は、IoTネットワークについてのソース・デジタル・ツインを作成する。ソース・デジタル・ツインは、オブジェクトのモデルに供給される、オブジェクトからのリアルタイム感知データによって駆動される。オブジェクトはDAG内のオブジェクトノードとして相互接続されている。DAGでは、相互接続はデータの流れを表す。ソース・デジタル・ツインは、オブジェクトのうち1つ以上のオブジェクトの状態をリアルタイムで出力する。
任意選択で、sDTからではなく、cDTからeDTが「ブランチ」する場合、eDTを作成する前に、主DTS (または、同等に、パイプラインDTS)が形成される。ステップS4は、sDT (または以前のcDT)から1つ以上のcDTを作成する。各cDTは、sDTと同じモデルおよび相互接続を含む。ステップS6は、最初のcDTの入力とsDTの出力とを接続する。この接続は、データストリーム合成器ノードを介しており、これは、sDTの出力に時間増分を追加する。このようにして、sDTは将来の増分した時間でDTSの最初のcDTを駆動する。DTSに複数のcDTが存在する場合、ステップS8は、任意のさらなるcDTの入力を、シーケンスの先行するcDTの出力と接続する。この接続は、別のデータストリーム合成器ノード(すなわち、S6からのデータストリーム合成器への別個のデータストリーム合成器)を介しており、これは、先行するcDTの出力に別の時間増分を追加する。このようにして、先行するcDTは、さらなる増分した時間でさらなるcDTを駆動し、それによってDTSを「発展」させる。
ステップS10はeDTを作成する。eDTは、sDT (したがって、任意のcDT)と同じモデルおよび相互接続を含む。
ステップS12は、eDTの入力を、行動の潜在的効果が調査されることが望まれる状態を保持するデジタル・ツインの出力に接続する。すなわち、eDTの入力は、sDTの出力、または、存在する場合は、任意のcDTに接続される。このようにしてeDTは初期化される。
S14は、eDTが作成されるデジタル・ツインのオブジェクトのうちの1つ以上のオブジェクトの状態のうちの1つ以上の状態で取られるアクションをシミュレートするために、eDTの複数の態様を修正する。
S16は、eDTの出力をeDTの入力に接続する。この接続ループは、追加のデータストリーム合成器ノード(すなわち、S6で使用されるデータストリーム合成器に追加)を介しており、これは、eDTの出力(および対応する入力)に追加の時間増分を追加する。このようにして、eDTは、追加的に増分した時間で自身を駆動する。
S18は、デジタル・ツインを実行する。sDT、および、作成された場合は、任意のcDTが実行される。eDTは、追加の増分した時間でオブジェクトのうちの1つ以上のオブジェクトの発展した修正状態を出力することを実行する。もちろん、sDTを実行すると、(アクションがない場合は)時間増分にわたるシステムの発展がモデル化される。
できるだけ早く行動の影響を知ることが有利である。例えば、道路の閉鎖は、将来的に30分必要な影響を与えることを知ることが有利である。したがって、探索的シミュレーションは、実際の時間に対して一定のオフセットでcDTを実行するのではなく(パイプライン付きDTSで実行されるように)、リアルタイムよりも早く実行することができる(各eDTクローンは、そのベースsDTまたはcDTに対して一定のシミュレートされた時間オフセットを維持する)。これはまた、特定の行動に対してeDTの複数のインスタンスを維持する必要がないことを意味する。
図8は、sDTからクローニングされた例示的なeDTを示す。sDTは、パイプラインDTS 801の開始時にデジタル・ツインであってもよい(このようなパイプラインDTSのcDT、相互接続、およびデータストリーム合成器は、ここでは図示されないことに留意する)。sDT状態はクローニングされ、クローニングロセスからもたらされるeDTは、任意の時間増分の追加前の初期時間(t0)におけるsDTと同じモデルおよび相互接続を含む。このようにして、eDTは、sDTであってもよい開始状態を必要とすると言ってもよい。
アクション802は、行動の効果をシミュレートし、探索するために、クローニングされたsDTに適用される。例えば、アクション802の適用は、時間t0におけるクローニングされたsDTの下にあるノードおよび/または相互接続を修正することによって、またはクローニングされたsDT内の1つ以上のオブジェクトの状態値を修正することによって実現されてもよい。結果として生じるデジタル・ツイン(クローニングとアクションの適用後)はeDT803である。例えば、交通システムのコンテキストでは、アクション802は、路面ブロックの周りにバスを再ルーティングすることであり得る。通常、データストリーム合成器は、バスをそのスケジュールされたルートに沿って移動させる。「reroute action」を適用するために、バスのルートは、ダイバージョンと共にeDT (のみ)で直接更新されてもよい。
eDT803は、コンテキストデータ(図示せず)およびデータストリーム合成器804によって駆動され、eDTの出力を使用して合成データストリームを生成する。データストリーム合成器804の出力は、eDT803に入力が戻される。このようにして、eDT803は発展する可能性があり、sDTの状態に対する行動の影響が調査され得る。行動の効果を含む物理的世界からのデータは、実際のシステムのeDTモデルとその発展を駆動する。
パイプラインDTSは、eDTが実行されている間、通常通り(並列に)実行を継続してもよいことに留意する。アクションに応答してシミュレーションを実行しているeDTは、パイプラインDTSで使用されるものとは異なる時間オフセットを使用してもよい。
図9は、eDTの別の例を示している。このeDTは、パイプラインDTS901内の(最初の)cDTからクローニングされ、cDT1はクローニングされ、その結果、クローニングプロセスから得られるeDTは、時間t1でのcDT1と同じモデルおよび相互接続を含む。行動902は、クローニングされたcDT1に適用され、得られたデジタル・ツイン(クローニングおよび行動の適用後)は、データストリーム合成器904によって駆動されるeDT 903である。
もちろん、この示された例は、図8に示され、上述された例と類似しており、eDTがsDTからではなく、cDTからクローニングされる点が異なる。上記のように、eDTは、開始状態を必要とすると言える。この場合、アクションが適用される時間に対するcDTであってもよい。すなわち、行動が10分で実装される場合、方法は、将来の最も近い10分間に実行されるcDTからeDTを開始する。
この示された例において、パイプラインDTSの状態が、取られた行動がない場合(例えば、cDT2を使用)、後でどのように進化するか、また、行動が取られた場合(eDTを使用)、御暗示パイプラインDTSがどのように進化するかの比較行われてもよい。
複数のアクションの効果は、異なるアクションデータおよび/または異なる時間で初期化された複数のeDTを作成することによって同時に探索されてもよい。例えば、図10は、複数のeDTがパイプラインDTS (メインDTS「mDTS」)をどのように延長するかを示す。パイプラインDTS1001は、必要な更新サービスを提供することができるように、多くのcDTを同時に維持しながら、通常通り実行を継続する。行動1002、1003の影響は、行動を適用することが意図された時間(例えば、アクションの効果の知識が望まれる時間)で、DTSから新しいクローンを作成することによって探索されてもよい。この例では、これは、2つの独立して実行されるクローン(eDTおよびeDT‘;1004、1005)をもたらす。
パイプラインDTS1001とeDTs1004、1005との間の駆動イベントストリームのソース間の差に留意する。前者の場合において、それは、異なるcDTインスタンスであり、eDTの場合に、それは、同じeDTである。
図11は、例示的なeDTを示している。eDTは、行動1102の時間でパイプラインDTSの状態から初期化(クローニング)された単一のcDT1101を含んでもよい。eDTは、パイプラインデジタル・ツインの場合と同様に、コンテキストデータ1103および合成データストリーム1104によって駆動されてもよい。合成されたデータストリームは、cDT/eDTの以前の反復によって作成されてもよく、これは、合成されたデータストリームが独立して実行/実行されたcDT (またはsDT、例えば、図3を参照)によって作成されてもよいパイプラインDTSとは対照的である。
図12は、DTS内のeDTの「ライフサイクル」を示しており、これは、(パイプライン)DTS内のcDTとは異なる。eDTは、DTSの状態(cDTまたはsDT)のコピーを取ることによって作成され、初期化される(1201)。eDTの実行は、提案されたアクションの影響を反映するように状態のコピーを修正することによって開始してもよい(1202)。
次いで、eDTは、サイクル状態に入ることができ、ここで、レートは、処理の速度によって駆動される。例えば、eDTは、利用可能な処理能力によってのみ制限される、シミュレーションされたシステムの実際の発展よりもはるかに速い速度で、状態の発展を循環することができる。これは、典型的にはリアルタイムに歩調を合わせるパイプラインDTSとは対照的である。このサイクルは、時間tにおける分析サービス(1203)と、時間t~t+Δtにおける合成サービス(1204)の2タイプの処理を含む。例えば、分析サービスは、(時間ステップを前進させる合成サービスとは対照的に)デジタル・ツイン状態から導出され、ユーザに提供されるサービスであり得る。分析サービスによって提供される正確なサービスは、アプリケーションに依存するが、例として、分析サービスは、サービス品質(バスの定時性、占有レベルなど)を評価したり、問題を検出(バスがルート外)したりしてもよい。これらの分析サービスは、ビジネス上の価値を提供し、システムを実行する理由となる。
アクションの結果が分析されると、eDTの実行は終了する(1205)。終了は、例えば、システムオペレータがシミュレーションが行動の効果を評価するのに十分に前進したと判断した場合に発生してもよい。これは、問題となっている状況に依存する。つまり、eDTは外部アクション(オペレータがeDTを終了する)によって停止されてもよい。
eDTは、時間的に、例えば、「t」とラベル付けされた時間から「t+Δt」とラベル付けされた時間へと進む。これは、「t」でeDTの状態を使用して、出力が実際のセンサデータが到着するストリームと同じストリームでeDTに送り返されるデータストリーム合成器を駆動する(sDT入力は、実際のセンサによって生成されるデータストリームであり、cDTおよびeDT入力は、実際のセンサから来るように、合成データとしてそれらに提示される計算から来る)。eDTの持続期間中、eDTの状態のコピーは1つだけである(これは、複数の状態のコピーが同時に存在する可能性があるパイプラインDTSからのcDTまたはsDTとは対照的である)。また、eDTは、モデル(コンピュータコード)の単一コピーを有し(または表現され得る)、計算リソースの単一インスタンスを占有し、これは、デジタル・ツイン(単一インスタンス)を維持する複雑性を単純化し、また、そのリソース消費およびコストを低減してもよい。
複数のeDTは、DTSの持続期間中に実行されてもよい。eDTは、それぞれの/関連するDTSと同時に実行され、複数のeDTは、同時に実行されてもよい。各eDTインスタンスは、起動時にオーバヘッドが発生し、これは(初期化に処理時間がかかる可能性があるため)計算処理コストと応答速度に影響を与える。オーバヘッドは、DTSから新しいeDTインスタンスに初期状態をコピーするために、計算資源とネットワーク時間を得て割り当てることを含む。
cDTおよびeDTのクローニング
上述のように、クローン(DTの)は、基本となるデジタル・ツイン内の追加の処理/サービスとして作成されてもよい。
物理システムをモデル化するコンピュータコード(Twin Model CodeまたはTMC)は、パイプラインDTS上のものとeDTのために作成されたものを含め、すべてのcDTに対して同一である可能性があることに留意する。これらの2つのインスタンス(cDTとeDT)の違いは、コードが動作する状態である。DTSを実装するナイーブな方法は、各DTを異なるリソース(コンピュータ)上で実行することである。これは、コストの不利さと、コンピュータ間で状態をコピーするのにかかる時間(また、リソースを得て割り当てるためのオーバヘッド)を有する。初期化オーバヘッドの影響を低減するために、モデルコンピュータコードの単一インスタンスを実行し、例えば、入力合成データストリーム内の識別タグに従って異なる状態の間でスイッチすることができる。識別タグは、入力データの時刻およびそれが適用されるデジタル・ツイン(例えば、パイプラインDTS上のsDTまたはcDTまたはeDT)を示すことができる。このアプローチは、単一の資源(または資源の集合)上でシーケンス全体を実行することによって、ナイーブクローニング法のコストと時間の短所を克服する。これは、コンピュータコードが、シーケンス内のすべてのDTに対して同じであってもよいためである。
低レベルでは、状態間のスイッチは、効率の源泉であるコンピュータメモリへのアドレスにすぎない。より高いレベルの例として、バス上の人数を考えてみましょう。例えば、sDTの場合、人数は25人で、場所Aに記憶されている可能性がある。最初のcDTの場合、一部の乗客が降車し、場所Bに記憶されている人数は20人であると考える。負荷を評価するサービスは、場所Aを参照してsDT時間の値を提供し、場所Bを参照してcDT時間の値を提供するが、コンピュータコードは同じままである。
データ合成器は、通常、ステートレスである。すなわち、データ合成器は、それらの入力データに純粋に基づいて動作することができ、実行される時間の間に保持されるために、他の場所に記憶されたデータを参照する必要はない。
図13は、このクローニングのプロセスの例を示し、初期化オーバヘッドの影響を低減している。この例では、DTS上のcDTの4つの状態(1301~1304)とeDTの2つの状態(1305~1306)を含む、多くの異なるバージョンのモデル化された状態(1301~1306)がある。状態の収集(データベース)におけるeDT状態は、eDTを初期化するために使用されるDTからコピーされ、任意の適用された行動によって変更されてもよい。コレクション中のsDTおよびcDT状態については、値を計算する(例えば、時間の進歩を考慮する)ための特別な処理があってもよい。
TMC(1307)は、(実際のセンサまたはデータストリーム合成器ーのいずれかから)パイプラインDTSの一部についてタグ付けされたメッセージ(1308)を受け取る。この例では、メッセージは関心のある状態がDTS内のcDT2のセンサであることを示す。メッセージは処理され、TMCはタグ付き状態(1302)と対話(状態からの取得)する。この処理の結果(1310)は、この例の合成器(1309)を含む(分析)サービスのすべての外部消費者に渡される。合成器は、DTSの次の段階のために、関心のある次のデジタル・ツインに前進し、タグ付けする。この例では、次の関心状態はcDT3の状態である。この場合、消費者(合成器)は時間t1から時間t2に状態を移動し、t2で動作するcDTの入力を合成する。タグは、データに付加された値、例えば、図13および図14に示すように、「cDT3」および「cDT4」であり得る名前であり得る。
図14は、このクローニングのプロセスの次の段階を示し、初期化オーバヘッドの影響を低減している。合成器(1409)は入力データを前進させ、これは、cDT3(1408)(上述のように)にタグ付けされる。TMCはここでcDT3(1403)の(タグ付き)状態と相互作用する。図13について上述したのと同様に、合成器は、cDT3の結果を受信し、次の関心のあるデジタル・ツインとしてcDT4にタグを付ける。このようにして、TMCは、デジタル・ツインの(あらかじめ記憶された)状態の間を選択的にスイッチしてもよい。パイプラインDTSおよび/または任意のeDTの個々の状態ごとに新しいTMCインスタンスを作成する必要はなく、代わりに、単一のTMCインスタンスが処理のために必要な状態情報を選択的にTMCインスタンスに「プル」する。
これらの実施例では、状態メッセージングおよび合成データは、メッセージブローカーサービス、例えば、Apache Kafkaによって実行することができる。もちろん、RabbitMQのような代替を使用してもよい。このようなメッセージブローカーシステムは、しばしば「Pub/Sub」モデルを中心に構築される。このモデルでは、メッセージ生成者は、名前付きトピックにデータを送り(送信し)、メッセージ消費者は、適切なトピックに加入することによって、それらに関連するメッセージを受け取る(例えば、https://cloud.google.com/pubsub/docsを参照)。
ここで、「トピック」は、パブリッシャーによってメッセージが送られる名前付きリソースを指してもよい。「サブスクリプション」は、サブスクリプションするアプリケーションに提供される単一の特定のトピックからのメッセージのストリームを表す名前付きリソースを指してもよい。「メッセージ」とは、パブリッシャーがトピックに送信し、最終的にサブスクライバーに提供されるデータと(任意選択の)属性の組み合わせを指してもよい。
これらの例では、データストリームは、トピックの概念を使用してタグ付けされてもよい。TMCは、すべての合成データストリームトピックに加入し、正しい状態を処理するためにトピック名を使用してもよい。状態がパイプラインDTS上にある場合、TMCは、その(処理された)状態を、シーケンス内の次のcDTの後に名前が付けられたトピックに送信する。処理された状態がeDTに対する場合、TMCはeDTのトピックに関する状態を送信する。データ合成器は、すべてのトピックを聴き、入力データのトピックおよびデータのソースに関連するトピックに送信する。
実施例
公共交通バス(および鉄道、路面電車、水上乗り物)の公共交通ネットワークの管理は、現在のところ厳格で、バスは固定されたルート上で、固定された時刻表に従って運行している。実際の条件(交通量、乗降の速さ)の変動は、提供されるサービスが不規則である可能性があり、システム全体にわたるビークル〔車両/乗り物〕が空から定員超過まで変わりうることを意味する。一部の公共交通当局は、例えばバス間の間隔をリアルタイムで調整することにより、いくつかの態様を動的に管理することができる。リソースを完全に動的に割り当て、サービスに関する問題を問題が発生する前に予期することによって、より良いレベルのサービスが提供できる。
本明細書に記載されるパイプラインDTSは、動的なバス管理システムの基礎を形成し、バスの現在状態および提供されるサービス品質に関する真実の源を提供する。バスは、位置、速度などの状態をリアルタイムに報告するシステムを備える。これらのデータは、道路交通状況などの他のデータソースと組み合わされる。同じシナリオは、路面電車、鉄道、フェリー、その他の公共交通網にも適用される。
sDTおよびすべてのcDTは、以下の個々のツインタイプ(または図1および図2のA、BおよびCのようなノード)を含む。
インシデント:これらのノードは、バスサービスの提供に影響を与えうる、より広い環境に起こりうることを反映する。インシデントの1つのタイプは、交通事故、道路工事、ユーティリティ問題などの理由による道路の一部の閉塞である。閉塞道路インシデント通知が、実際の管理アプリケーションおよび閉塞された領域の位置および予想される解消時刻によって生成される。別のタイプのインシデントは、同じ問題に起因する、道路の一部の狭窄でありうる。あるいは、インシデントは、イベント(コンサート)の終了であってもよい。これは、同じバス停から同時に多くの人が帰宅しようとしていることを意味する。
現実世界からのイベントは、インシデントを、アクティブになるようトリガーする。インシデントは、sDTでは実際の管理アプリケーションによって通知されたときに、cDTでは予想される解消時刻が過ぎたときに、またはカスケードされた解消通知によって、非アクティブになる。
インシデントは、影響を受ける可能性がある停留所に、(インシデントの開始、終了、位置といった)その状態の変化を通知する。
インシデントと停留所の間で渡されるメッセージの数を最小にするために、停留所はバウンディングボックスを計算される。停留所経路位置が座標に変換され、これらの最大値と最小値が計算されてバウンディングボックスを形成し、インシデントが開始されるときにインシデントに送信される。この目的のための偏東距離(easting)および偏北距離(northing)の使用が知られている(https://en.wikipedia.org/wiki/Easting_and_northingを参照)。ただし、もちろん、緯度経度のような任意の座標系で十分である。バウンディングボックスは、特に、停留所経路が曲がりくねっている場合には、重複することがある。インシデントは、バウンディングボックスがそのインシデントを含んでいる停留所にのみ、状態変化を伝達する。
停留所〔ストップ〕:停留所は、バス停と、その停留所をルート上の次の停留所に接続する道路網の一部とを表す。停留所は、特に道路網が閉塞されている場合、それが表す実際の道路網の状態のビューを維持する。停留所は、その停留所を使用する運行のビューをも、その停留所に影響するインシデント(つまり、そのバウンディングボックス内にあるインシデント)が運行にそのインシデントを通知する場合、維持する。
運行〔ラン〕:バスルートは、いくつかの運行を有する。運行は、バスがそれに従うよう時刻表で定められている実際のトラックである。運行は、ルートの異なるディレクションでありうる。運行ツインオブジェクトは、運行上のバスが従うべき実際の経路を維持し、運行上のバスを任意の変更をもって更新する。入力データは、適切なデータストリーム(501または506、509)から到着し、運行上の実際のバスの開始およびバスの出口を通知する(データは、(実際の)バスによって初期に生成されるバス識別子である)。運行への変更は、停留所ツインから受信される。これらの変更は、停留所名、終了停留所名および終了停留所に到達するためにバスが従わなければならないディレクション(GPS位置およびインストラクション)である。運行ツインは、これらの変更を、運行上にあると登録されているバスツインに配布する。運行ツインはまた、(位置として)インシデントに対する変更の通知をも受け取り、バスがインシデントを迂回して適切にルーティングするように再ルーティング要求を生成する。
バス:運行上を運転している、道路上の車両のツイン。このツインは、適切なデータストリーム(501または506、509)から位置(メートル、偏東距離、偏北距離)および速度データ(メートル毎秒)を受信する。このツインはまた、バスの現在の経路(ルート、例えばルート発見アプリケーションによって作成されたもの、およびドライバーが従わなければならないディレクションおよび停留所のリスト)をも維持する。経路は、インシデントに応答して、運行ツインのような、sDTまたはcDT内の他のツインによって動的に更新されることができる。報告された位置は、ドライバーが正しいルートに従っていることを保証するために、現在の経路とマッチングされる。経路への変更は、動的なルーティングを有効にするために、DracenaにおけるKafkaメッセージングサービスへのインターフェースを使用して、実際のバスに送信される。
パイプラインDTS内のデジタル・ツインは、データフローによってリンクされる。
経路〔パス〕:cDTにおいて生成された、インシデントに起因する再ルーティングに応答してバス経路が変化すると、バス経路は、データストリーム合成器による修正なしに、チェーン内のより後のCDTに伝達される。道路工事などの計画されたインシデントが、cDTまたはsDTに挿入されることができる。
バス位置:各バスデジタル・ツインは、そのデジタル・ツインの(シミュレーション)時刻におけるバスの位置についての瞬時値を保持する。データストリーム合成器は、コンテキストソースを介して送信される交通条件に依存する速度と(前のデジタル・ツインから受領された)バスの現在の経路とを使用して、後続のcDTについて、時間増分だけ、この位置を前進させる。
インシデント展開(development):状態変更はDTSに沿って進み、cDT内のインシデントの状態はcDTのシミュレーション時間に依存する。
上述のsDTおよびcDTから構築されるDTSの構造は、事業者の要件およびチェーンに埋め込まれる予測の予期される精度(この精度は、乗客および交通予測のような入力データの精度に依存する)とに依存する。cDT間の時間増分は、これらの外部データソースの変動性に関係し、典型的には、間隔は、3つのcDTが同時並行して実行される場合に5分である。
図15および図16は、このシステムについての簡略化された構造を示す。図15は、上記のオブジェクトタイプのいくつかのインスタンス化と、データフローの若干を示している。メッセージフローは方向性であり、接続は循環のないDAGを形成することに注意されたい。ノードの順序は、「インシデント」、「停留所」、「運行」、「バス」である。3つのインシデントが3つの異なる停留所に影響する。停留所のうちの2つには閉塞された道路があり、これが2つの運行上での再ルーティングにつながり、それら2つの運行のそれぞれで3台のバスが新たな経路をたどる。
図16は、デジタル・ツインをシーケンスに接続するために必要とされる追加的なフローを示している(図15からのデータフローはまだ有効だが、すべては示されていない)。ここで、クローンは、前の合成器からの位置、前のデジタル・ツイン(ソースまたはクローン)からの新しい経路、および前のデジタル・ツインからのインシデント状態を受け取る。よって、モデル化の効果は、公共輸送車両のルーティングにおける予測された変化でありうる。これは、GUI(またはアプリ)上の表示を使用して、あるいは単に可聴な警告を使用して、例えばシステムオペレータまたはユーザに警告を提供するというさらなる結果を有してもよい。
eDTは、公共交通機関のDTSの例で、インシデントに応答して取られ得る行動の影響を調査するために使用されてもよい。
図9から分かるように、eDTは、異なる環境で実行されているにもかかわらず、パイプラインDTSのcDTコンポーネントに類似している。したがって、eDTの内部構造は、関連する欧州特許出願番号20202133.3号で論じられているものと同じであり、上記で論じられているものと同じである。以下に、eDTがどのように上位レベルのアプリケーション例に適合するかについて説明する。
パイプラインDTSは、公共交通システムのためのバスサービスの提供を監視するために作成されてもよい。cDTにおけるサービスは、停留所での待ち時間のようなバス運用キーパフォーマンスインジケータの評価を含んでもよい。
cDT上で実行中のサービスは、道路交通状態がサービスの運用に影響を及ぼす道路の閉塞につながり得ることを、オペレータに通知してもよい。
オペレータは、サービス上のバスを迂回させ、異なるルートの可能な多数の迂回を準備することが解決策であると決定することができる。
eDTは、各迂回の意味合いを評価するために実行することができる。新しいcDT状態は、各迂回のための迂回の適用の予想時間に最も近いパイプラインDTS cDTのコピーとして作成される。次いで、タグ付きデータストリームが、eDT実行を開始するために、合成器に送信されてもよい。
eDTは、Pipelined DTS動作に含まれるKPIを長期にわたって評価する。
複数のeDT(すなわち、異なる時間に実行される様々なeDTおよび/または異なる行動(異なるルートの異なる可能性のある迂回など)を実装するためのKPIの比較に基づき、最良の迂回が実装される。
このように、eDTは、過密、非稼動サービス、道路閉塞などの公共交通システムにおける問題に柔軟に適応することができる。eDTは、取るべき行動の最適な選択を識別し、評価することによって、これらの問題を緩和するためにリソースを動的に再配置するために使用されてもよい。
他の用途
他の適用分野は、以下を含む。
・ 高速道路の交通管理。トラフィックの流れを良好に保つことは、ドライバーの体験、ネットワーク上での配送の信頼性、およびキャパシティの増加にとって重要である。オペレータは、可変速度制限の設定、トラフィックの迂回、1つ以上のレーンの閉鎖、参加トラフィックの制御など、ネットワークへのインシデントの影響を緩和するための多くの管理戦略を有してもよい。これらのオプションの各々は、eDTを使用して評価されるインシデントおよびより広い道路網に異なる影響を及ぼす。
・ 状況を監視し、交通資源を動的に分配し、優先順位を調整する(交通信号)ことによって、都市を通る人とモノの流れを管理するスマートシティ。DTSは、渋滞や不規則なサービスなどの問題を予期するよう先読みするために使用される。eDTは、これらの問題に応答して取られる様々な異なる行動の影響を評価するために使用されてもよい。
・ 広域にわたってバランスのとれた電力供給を保証する電力ネットワーク。ここで、発電は多数の分散小規模ユニット(家庭用太陽光パネルや風力タービンなど)からの寄与を含む。再生可能発電の時間発展は、外部のデータソース(コンテキスト502――天気予報、昼夜サイクル)によって駆動される。全体的なネットワークの状態は、貯蔵施設、バッテリー、水力発電の利用可能性などによっても決定され、その発展は、データストリーム合成器によってモデル化される。eDTは、例えば、電源が予期せぬ使用不能になった場合の影響を管理及び評価するために使用されてもよい。
概要
この方法論は、動的に相互作用するオブジェクトの複雑なネットワークとして特徴付けられるSmart IoT駆動システムのデジタル・ツインのパワーと有用性を高める。eDTは、シミュレーションされたモデル化されたシステムの将来の発展について、システムへの何らかの行動の適用後の洞察を提供する能力を提供する。
eDTを補完したDTSは、対応する物理システムの能動的管理を可能にし、例えば、より効率的で汚染の少ないトランスポートネットワークをもたらす。
eDTは、迅速かつ柔軟なシナリオテストを可能にする。多くの探索は、異なるシナリオと同時に実行することができ、例えば、システム内のインシデントに対応して、取るべき最適なアクションの識別を可能にする。。
物理システムに対する行動の影響の予後を提供することにより、eDTの使用は複雑なシステムのより良い制御を提供する。
eDTの利点は、デジタル・ツインがアバターとなっているシステムの管理の分野に見られる。eDTを持たないDTSは、現状および近未来の状態のツインを継続的に更新することにより、基礎システムにおける問題の早期検出を可能にする。しかし、これらの将来の状態で問題が検出された場合、システムマネージャは、問題の影響を軽減する対応を策定する必要がある。本明細書で論じられた技法は、探索的シミュレーションを作成するために、連続的に更新するツインの実装を再利用することによって、リアルタイムよりも早く、実装の前にオプションをテストすることを可能にする。
本明細書で論じた技術は、以前の方法を拡張し、パイプラインデジタル・ツインを通して継続的な監視のためにインフラストラクチャーを再利用することにより、管理行動の結果のリアルタイム探索的シミュレーションよりもより早く可能にする。
技法は、現行のデジタル・ツインクローニング法を、代替の実装方法を含むように拡張することを論じた。これらの技法は、現在の状態モデルをクローニングすることによってシステムの将来の状態のモデルを作成し、実際のデータストリームを合成されたデータストリームに置き換えることによってクローンの発展を駆動するために使用され得る。拡張されたクローニング技術が識別され、これは初期化オーバヘッドの影響を最小限にする。すなわち、記憶された状態を選択的に切り替えることによって、モデルコンピュータコードの単一のインスタンス(cDTまたはeDTを実行すること)が必要とされる。
図10は、本発明を具現し、ソース・デジタル・ツイン、探索的デジタル・ツイン、および任意選択で1つ以上のクローンDTを用いてモデル化する方法を実装するために使用されうる、データ記憶サーバなどのコンピューティング装置のブロック図である。コンピューティング装置は、プロセッサ993とメモリ994とを含む。任意選択で、コンピューティング装置は、他のコンピューティング装置、例えば、発明実施形態の他のコンピューティング装置との通信のためのネットワークインターフェース997をも含む。コンピューティング装置は、前述のプラットフォームの1つ、例えばDracenaを実装してもよい。
例えば、ある実施形態は、そのようなコンピューティング装置のネットワークから構成されてもよい。任意選択で、コンピューティング装置は、キーボードおよびマウス996のような1つ以上の入力機構、および1つ以上のモニター995のような表示ユニットをも含む。構成要素は、バス992を介して互いに接続可能である。
メモリ994は、コンピュータ可読媒体を含んでいてもよい。コンピュータ可読媒体とは、コンピュータ実行可能命令を担持するまたはデータ構造を記憶するように構成された単一の媒体または複数の媒体(例えば、中央集中型または分散型のデータベースおよび/または関連するキャッシュおよびサーバ)を指しうる用語である。コンピュータ実行可能命令は、例えば、汎用コンピュータ、特殊目的コンピュータ、または特殊目的処理装置(例えば、1つ以上のプロセッサ)によってアクセス可能であり、1つ以上の機能または動作を実行させる命令およびデータを含んでいてもよい。このように、「コンピュータ可読記憶媒体」という用語は、機械による実行のための命令の集合を記憶、エンコード、または担持し、機械に本開示の方法のいずれか1つ以上を実行させることができる任意の媒体を含んでいてもよい。よって、「コンピュータ読み取り可能記憶媒体」という用語は、固体メモリ、光媒体および磁気媒体を含むが、これらに限定されない。限定ではなく例として、そのようなコンピュータ読み取り可能媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的に消去可能プログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)、または他の光ディスク記憶、磁気ディスク記憶、または他の磁気記憶デバイス、フラッシュメモリデバイス(例えば固体メモリデバイス)を含む、非一時的なコンピュータ可読記憶媒体を含んでいてもよい。
プロセッサ993は、コンピューティング装置を制御し、処理動作、例えば、メモリに記憶された実行コードを実行して、本明細書および特許請求の範囲に説明された様々な異なる機能を実装するように構成されている。例えば、プロセッサは、ステップを実行して、デジタル・ツインおよび探索的デジタル・ツインのモデルを実行してもよい。追加的または代替的に、プロセッサは、実施例において説明されているような、探索的デジタル・ツインを作成する、またはインシデントを追加するステップを実行してもよい。
メモリ994は、プロセッサ993によって読まれ書き込まれるデータを記憶し、例えば、本明細書で言及される任意のデータベースを含んでいてもよいし、モデル化されるオブジェクトの位置および速度のような、モデルのためのパラメータを単に記憶してもよい。本明細書で言及されるように、プロセッサは、マイクロプロセッサ、中央処理装置などの1つ以上の汎用処理装置を含んでいてもよい。プロセッサは、複雑命令セット計算(CISC)マイクロプロセッサ、縮小命令セット計算(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサまたは命令セットの組み合わせを実装するプロセッサを含んでいてもよい。プロセッサはまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどの1つ以上の特殊目的の処理装置を含んでいてもよい。1つ以上の実施形態では、プロセッサは、本明細書で議論される動作およびステップを実行するための命令を実行するように構成される。
表示ユニット995は、コンピューティング装置によって記憶されたデータの表現を表示してもよく、また、ユーザとコンピューティング装置に記憶されたプログラムおよびデータとの間の対話を可能にするカーソルおよびダイアログボックスおよび画面を表示してもよい。入力機構996は、ユーザが、データおよび命令をコンピューティング装置に入力することを可能にしてもよい。一例では、ディスプレイは、DTSの表現(例えば、グラフ形式の)、または個々のeDTの表現(例えば、状態の表として、および/または入力および出力として)を示すために使用されてもよい。別の例では、ディスプレイは、切迫した衝突または交通またはバス遅延の警告のような、生成された車両アラートを示し、可能性のある転用のKPIのような、eDTによって判別される行動の影響を示してもよい。
ネットワークインターフェース(ネットワークI/F)997は、インターネットのようなネットワークに接続されてもよく、ネットワークを介して他のかかるコンピューティング装置に接続可能であり、コンピューティング装置が必要に応じてデータベースにアクセスし、デジタル・ツインを構築/更新するためのリアルタイムデータ取得できるようにする。ネットワークI/F 997は、ネットワークを介して他の装置とのデータ入出力を制御することができる。マイクロフォン、スピーカー、プリンタ、電源ユニット、ファン、ケース等の他の周辺装置が、コンピューティング装置に含まれてもよい。
本発明を具現する方法は、図17に示されるようなコンピューティング装置で実行されてもよい。そのようなコンピューティング装置は、図10に示されるすべての構成要素を有する必要はなく、それらの構成要素のサブセットで構成されてもよい。本発明を具現する方法は、ネットワークを介して1つ以上のデータ記憶サーバと通信する単一のコンピューティング装置によって実行されてもよい。コンピューティング装置は、モデル化データを記憶するデータ記憶装置自体であってもよい。
本発明を具現する方法は、互いに協働して動作する複数のコンピューティング装置および/またはIoTオブジェクトによって実行されてもよい。複数のコンピューティング装置のうちの1つ以上は、デジタル・ツインのためのモデル化データの少なくとも一部を記憶するデータ記憶サーバであってもよい。
本開示は以下の発明を含む。
(付記1)
モノのインターネット(IoT)ネットワークについてのシミュレーション結果の発展を予測する方法であって、
オブジェクトのモデルに供給された前記オブジェクトからのリアルタイムの感知データによって駆動される前記IoTネットワークのためのソース・デジタル・ツインを作成することであって、前記ソース・デジタル・ツインは、リアルタイムで前記オブジェクトの1つ以上のオブジェクトの状態を出力する、ことと、
任意選択で、
1つ以上のクローン・デジタル・ツインを追加的に作成することであって、各々、前記ソース・デジタル・ツインと同じモデルおよび相互接続を含む、ことと、
第1のクローン・デジタル・ツインの入力を、データストリーム合成器ノードを介して前記ソース・デジタル・ツインの出力と接続することであって、前記データストリーム合成器ノードは、前記ソース・デジタル・ツインの出力に時間増分を追加し、前記ソース・デジタル・ツインが前記第1のクローン・デジタル・ツインを前記増分した時間で駆動するようにする、ことと、
さらなるクローン・デジタル・ツインの入力を、さらなるデータストリーム合成器ノードを介して前記シーケンス内の先行するクローン・デジタル・ツインの出力と接続することであって、前記さらなるデータストリーム合成器ノードは、さらなる時間増分を前記先行するクローン・デジタル・ツインの出力に追加し、前記先行するクローン・デジタル・ツインが、前記さらなる増分した時間で前記さらなるクローン・デジタル・ツインを駆動するようにする、主デジタル・ツイン・シーケンスを形成することと、
前記ソース・デジタル・ツインと同じモデルと相互接続を含む探索的デジタル・ツインを作成することと、
前記探索的デジタル・ツインの入力と、前記ソース・デジタル・ツイン、前記第1のクローン・デジタル・ツイン、およびそれ以上のクローン・デジタル・ツインのいずれかの出力とを接続し、前記探索的デジタル・ツインを初期化することと、
前記探索的デジタル・ツインの態様を修正して、前記探索的デジタル・ツインで取られた行動をシミュレートすることと、
追加のデータストリーム合成器ノードを介して前記探索的デジタル・ツインの出力を前記探索的デジタル・ツインの入力と接続することであって、前記追加のデータストリーム合成器ノードは、前記探索的デジタル・ツインの出力に追加の時間増分を追加して、前記追加の増分した時間で前記探索的デジタル・ツインを駆動することと、
前記ソース・デジタル・ツイン、任意のクローン・デジタル・ツイン、前記探索的デジタル・ツインを実行して、前記探索的デジタル・ツインの出力として前記追加の増分した時間で、前記オブジェクトのうちの1つ以上のオブジェクトの発展した修正状態を提供することと、を含む、方法。
(付記2)
前記ソース・デジタル・ツイン内のオブジェクトのモデルは、有向非循環グラフDAG内のオブジェクトノードとして相互接続され、相互接続はデータの流れを表し、
前記ソース・デジタル・ツインは、前記オブジェクトの状態に影響を及ぼすインシデントなど、前記IoTネットワークに影響を及ぼす事象をモデル化するイベントノードも含む、および/または
前記ソース・デジタル・ツインは、前記IoTネットワークに関する情報をモデル化するシステム情報ノードも含む、付記1に記載の方法。
(付記3)
前記ソース・デジタル・ツイン内のオブジェクトのモデルは、データの流れを表す相互接続を有する有向非循環グラフDAG内のオブジェクトノードとして相互接続され、前記方法は、前記ソース・デジタル・ツインの出力および/または前記探索的デジタル・ツインの出力および/または任意のクローン・デジタル・ツインの出力で、前記DAG全体の一部としてサービスノードを生成することをさらに含み、前記サービスノードは、前記IoTネットワーク内のオブジェクトの状態に基づいてデータサービスを生成し、
任意選択で、前記サービスノードは、前記ソース・デジタル・ツインにおける前記データストリーム合成器および/または前記探索的デジタル・ツインにおける前記追加のデータストリーム合成器と並列に提供され、前記ソース・デジタル・ツインの出力を前記サービスノードおよび前記データストリーム合成器の両方に供給すること、および/または前記探索的デジタル・ツインの出力を前記サービスノードおよび前記追加のデータストリーム合成器の両方に供給することをさらに含む、付記1~2のいずれか一項に記載の方法。
(付記4)
前記ソース・デジタル・ツインと同じモデルと相互接続を含むさらなる探索的デジタル・ツインを作成することと、
前記さらなる探索的デジタル・ツインの入力と、前記ソース・デジタル・ツイン、前記第1のクローン・デジタル・ツイン、およびそれ以上のクローン・デジタル・ツインのいずれかの出力とを接続し、前記さらなる探索的デジタル・ツインを初期化することと、
前記さならう探索的デジタル・ツインの態様を修正して、前記第2の探索的デジタル・ツインで取られた行動をシミュレートすることと、
別の追加のデータストリーム合成器ノードを介して、前記さらなる探索的デジタル・ツインの出力を前記さらなる探索的デジタル・ツインの入力に接続し、前記別の追加のデータストリーム合成器ノードは、前記さらなる探索的デジタル・ツインの出力に別の追加の時間増分を加え、前記さらなる探索的デジタル・ツインが前記別の追加の増分した時間で前記さらなる探索的デジタル・ツインを駆動するようにする、ことと、
前記さらなる探索的デジタル・ツインを実行して、前記さらなる探索的デジタル・ツインの出力として、前記別の追加の増分した時間で、前記オブジェクトの1つ以上のオブジェクトの発展した状態を提供することと、
前記探索的デジタル・ツインの出力と、前記さらなる探索的デジタル・ツインの出力を比較することと、を含む、付記1~3のいずれか一項に記載の方法。
(付記5)
前記さらなる探索的デジタル・ツインの入力は、前記探索的デジタル・ツインの入力と同じ出力に接続され、
前記さらなる探索的デジタル・ツインで取られた行動は、前記探索的デジタル・ツインで取られた行動とは異なる、付記4に記載の方法。
(付記6)
前記さらなる探索的デジタル・ツインの入力は、前記探索的デジタル・ツインの入力とは異なる出力に接続され、好ましくは、
前記さらなる探索的なデジタル・ツインに対する行動は、前記探索的なデジタル・ツインで取られた行動と同じある、付記4に記載の方法。
(付記7)
外部データソースからのコンテキスト情報は、前記ソース・デジタル・ツインおよび/または任意の探索的デジタル・ツインおよび/または任意のクローン・デジタル・ツインに追加的に入力される、付記1~6のいずれか一項に記載の方法。
(付記8)
任意の探索的デジタル・ツインを実行することは、前記探索的デジタル・ツインの出力として、前記オブジェクトの1つ以上のオブジェクトの複数の発展した修正状態を繰り返し増分した時間で提供するように繰り返し実行することを含む、付記の1~7のいずれか一項に記載の方法。
(付記9)
前記ソース・デジタル・ツインおよび任意のクローン・デジタル・ツインを実行することはリアルタイムに続いて発生し、任意の探索的デジタル・ツインを実行することはリアルタイムよりも早く発生する、付記1~8のいずれか一項に記載の方法。
(付記10)
前記探索的デジタル・ツイン、および、任意選択で、任意のクローン・デジタル・ツインを作成することは、
前記ソース・デジタル・ツインと同じコードの使用することと、
前記デジタル・ツインの現在の状態に対応する状態を前記コードに入力することと、
前記デジタル・ツインを実行することと、
前記デジタル・ツインの前記現在の状態を実行後の結果状態に置き換えることと、を含む、付記1~9のいずれか一項に記載の方法。
(付記11)
前記IoTネットワークは交通ネットワークであり、前記オブジェクトノードは、車両ノードおよび/または1つ以上のインフラストラクチャーノードを含み、交通インシデントノードなどの1つ以上のイベントノードが含まれる、付記1~10のうちいずれか一項に記載の方法。
(付記12)
前記オブジェクトのうち1つ以上のオブジェクトの状態が、前記オブジェクトの位置およびそのオブジェクトの速度のうちの1つ以上を含む、付記1~11のうちいずれか一項に記載の方法。
(付記13)
前記交通ネットワークは公共輸送ネットワークであり、前記ソース・デジタル・ツインおよび任意の探索的デジタル・ツイン、ならびに任意選択のクローン・デジタル・ツイン内のノードは、車両ノード、前記公共輸送ネットワークに影響を与え得るイベントを表すインシデントノード、前記公共輸送ネットワークインフラストラクチャーのセクションを表す停留所ノード、および前記車両の経路を表すシステム情報ノードを含む、付記11または12に記載の方法。
(付記14)
命令を有するコンピュータプログラムであって、前記命令は、前記プログラムがコンピュータによって実行されるときに、前記コンピュータに付記1~13のうちいずれか一項に記載の方法を実行させる、コンピュータプログラム。
(付記15)
付記1~13のうちいずれか一項に記載の方法を実行するように構成された、プロセッサおよびメモリならびにネットワークインターフェースを含むコンピュータ。