(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-20
(54)【発明の名称】メッシュ表現およびグラフニューラルネットワークを使用した物理的環境のシミュレーション
(51)【国際特許分類】
G06N 3/04 20230101AFI20231013BHJP
【FI】
G06N3/04 100
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023520222
(86)(22)【出願日】2021-10-01
(85)【翻訳文提出日】2023-05-17
(86)【国際出願番号】 EP2021077174
(87)【国際公開番号】W WO2022069740
(87)【国際公開日】2022-04-07
(32)【優先日】2020-10-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】トビアス・プファフ
(72)【発明者】
【氏名】メイレ・フォルトゥナート
(72)【発明者】
【氏名】アルヴァロ・サンチェス
(72)【発明者】
【氏名】ピーター・ウィリアム・バッタリア
(57)【要約】
本明細書は、グラフニューラルネットワークを使用して物理的環境のシミュレーションを実行するシミュレーションシステムを説明する。一連の時間ステップの中の1つまたは複数の時間ステップの各々において、システムは、次の時間ステップにおける物理的環境の次の状態の予測を生成するために、グラフニューラルネットワークを使用して現在の時間ステップにおける物理的環境の現在の状態の表現を処理することができる。システムの一部の実装は、ハードウェアアクセラレーションのために適応される。シミュレーションを実行することはもちろん、システムは、測定された実世界のデータに基づいて物理量を予測するために使用され得る。システムの実装は、微分可能であり、設計の最適化および最適制御タスクのためにも使用され得る。
【特許請求の範囲】
【請求項1】
物理的環境の状態をシミュレーションするための、1つまたは複数のデータ処理装置によって実行される方法であって、複数の時間ステップの各々に関して、
現在の時間ステップにおける前記物理的環境の前記状態を定義するデータを取得するステップであって、
前記現在の時間ステップにおける前記物理的環境の前記状態を定義する前記データが、メッシュを定義するデータを含み、
前記メッシュが、複数のメッシュノードおよび複数のメッシュエッジを含み、
各メッシュノードが、それぞれのメッシュノード特徴に関連付けられる、ステップと、
前記現在の時間ステップにおける前記物理的環境の前記状態の表現を生成するステップであって、
前記表現が、それぞれがそれぞれの現在のノード埋め込みに関連付けられる複数のノード、およびそれぞれがそれぞれの現在のエッジ埋め込みに関連付けられる複数のエッジを含むグラフを表すデータを含み、
前記現在の時間ステップにおける前記物理的環境の前記状態を表す前記グラフの各ノードが、それぞれのメッシュノードに対応する、ステップと、
1または複数の回数の更新の反復の各々において前記グラフを更新するステップであって、それぞれの更新の反復において、
前記グラフの各ノードの前記現在のノード埋め込みおよび前記グラフの各エッジの前記現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用して前記グラフを定義するデータを処理することを含む、ステップと、
更新後、前記グラフの各ノードに対応するそれぞれのダイナミクス特徴を生成するために、前記グラフの各ノードに関する前記それぞれの現在のノード埋め込みを処理するステップと、
(i)前記グラフの前記ノードに対応する前記ダイナミクス特徴、および(ii)前記現在の時間ステップにおける前記物理的環境の前記状態に基づいて、次の時間ステップにおける前記物理的環境の前記状態を決定するステップと
を含む、方法。
【請求項2】
前記メッシュが、前記物理的環境に広がる請求項1に記載の方法。
【請求項3】
前記メッシュが、前記物理的環境内の1つまたは複数の物体を表す請求項1に記載の方法。
【請求項4】
前記複数のメッシュノードの各々に関して、前記メッシュノードに関連する前記メッシュノード特徴が、前記現在の時間ステップにおける前記メッシュノードの状態を含み、前記現在の時間ステップにおける前記メッシュノードの前記状態が、
前記現在の時間ステップにおける前記物理的環境の座標系内の前記メッシュノードの位置を表す位置座標を含む請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記複数のメッシュノードの各々に関して、前記現在の時間ステップにおける前記メッシュノードに関連する前記メッシュノード特徴が、前記現在の時間ステップにおける前記メッシュノードに対応する前記物理的環境内の位置の流体密度、流体粘度、圧力、または張力のうちの1つまたは複数をさらに含む請求項4に記載の方法。
【請求項6】
前記複数のメッシュノードの各々に関して、前記メッシュノードに関連する前記メッシュノード特徴が、1つまたは複数の以前の時間ステップの各々における前記メッシュノードのそれぞれの状態をさらに含む請求項4または5に記載の方法。
【請求項7】
前記現在の時間ステップにおける前記物理的環境の前記状態の前記表現を生成するステップが、前記グラフの各ノードに関して、
前記グラフの前記ノードに関する前記現在のノード埋め込みを生成するために、前記グラフニューラルネットワークのノード埋め込みサブネットワークを使用して、前記グラフの前記ノードに対応する前記メッシュノードの前記メッシュノード特徴のうちの1つまたは複数を含む入力を処理すること
を含む、前記グラフの各ノードに関するそれぞれの現在のノード埋め込みを生成することを含む請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記グラフの各ノードに関して、前記ノード埋め込みサブネットワークへの前記入力が、前記物理的環境の1つまたは複数の大域的特徴をさらに含む請求項7に記載の方法。
【請求項9】
前記物理的環境の前記大域的特徴が、前記物理的環境に加えられている力、前記物理的環境の重力定数、前記物理的環境の磁界、またはそれらの組合せを含む請求項8に記載の方法。
【請求項10】
前記グラフの各エッジが、前記グラフのノードのそれぞれのペアを接続し、
前記グラフが、複数のメッシュ空間エッジおよび複数のワールド空間エッジを含み、
前記現在の時間ステップにおける前記物理的環境の前記状態の前記表現を生成するステップが、
前記メッシュのエッジによって接続されているメッシュノードの各ペアに関して、グラフノードの対応するペアが前記グラフにおいてメッシュ空間エッジによって接続されると決定することと、
前記物理的環境の座標系において閾値未満の距離だけ離れているそれぞれの位置を有するメッシュノードの各ペアに関して、グラフノードの対応するペアが前記グラフにおいてワールド空間エッジによって接続されると決定することと
を含む請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記現在の時間ステップにおける前記物理的環境の前記状態の前記表現を生成するステップが、前記グラフのメッシュ空間エッジごとに、
前記メッシュ空間エッジに関する前記現在のエッジ埋め込みを生成するために、前記グラフニューラルネットワークのメッシュ空間エッジ埋め込みサブネットワークを使用して、前記グラフの前記メッシュ空間エッジによって接続された前記グラフノードに対応する前記メッシュノードのそれぞれの位置、前記グラフの前記メッシュ空間エッジによって接続された前記グラフノードに対応する前記メッシュノードの前記それぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せを含む入力を処理すること
を含む、前記グラフの各エッジに関するそれぞれの現在のエッジ埋め込みを生成することを含む請求項10に記載の方法。
【請求項12】
前記グラフのワールド空間エッジごとに、
前記ワールド空間エッジに関する前記現在のエッジ埋め込みを生成するために、前記グラフニューラルネットワークのワールド空間エッジ埋め込みサブネットワークを使用して、前記グラフの前記ワールド空間エッジによって接続された前記グラフノードに対応する前記メッシュノードのそれぞれの位置、前記グラフの前記ワールド空間エッジによって接続された前記グラフノードに対応する前記メッシュノードの前記それぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せを含む入力を処理するステップをさらに含む請求項10または11に記載の方法。
【請求項13】
それぞれの更新の反復において、前記グラフの各ノードの前記現在のノード埋め込みを更新するために、前記グラフニューラルネットワークを使用して前記グラフを定義するデータを処理することが、前記グラフの各ノードに関して、
前記ノードに関する更新されたノード埋め込みを生成するために、前記グラフニューラルネットワークのノード更新サブネットワークを使用して、(i)前記ノードに関する前記現在のノード埋め込みと、(ii)前記ノードに接続されている各エッジに関する前記それぞれの現在のエッジ埋め込みとを含む入力を処理することを含む請求項1から12のいずれか一項に記載の方法。
【請求項14】
それぞれの更新の反復において、前記グラフの各エッジの前記現在のエッジ埋め込みを更新するために、前記グラフニューラルネットワークを使用して前記グラフを定義するデータを処理することが、前記グラフのメッシュ空間エッジごとに、
前記メッシュ空間エッジに関する更新されたエッジ埋め込みを生成するために、前記グラフニューラルネットワークのメッシュ空間エッジ更新サブネットワークを使用して、(i)前記メッシュ空間エッジに関する前記現在のエッジ埋め込みと、(ii)前記メッシュ空間エッジによって接続された各ノードに関する前記それぞれの現在のノード埋め込みとを含む入力を処理すること
を含む請求項10から13のいずれか一項に記載の方法。
【請求項15】
それぞれの更新の反復において、前記グラフの各エッジの前記現在のエッジ埋め込みを更新するために、前記グラフニューラルネットワークを使用して前記グラフを定義するデータを処理することが、前記グラフのワールド空間エッジごとに、
前記ワールド空間エッジに関する更新されたエッジ埋め込みを生成するために、前記グラフニューラルネットワークのワールド空間エッジ更新サブネットワークを使用して、(i)前記ワールド空間エッジに関する前記現在のエッジ埋め込みと、(ii)前記ワールド空間エッジによって接続された各ノードに関する前記それぞれの現在のノード埋め込みとを含む入力を処理することを含む請求項10から14のいずれか一項に記載の方法。
【請求項16】
前記グラフの各ノードに対応する前記それぞれのダイナミクス特徴を生成するために、前記グラフの各ノードに関する前記それぞれの現在のノード埋め込みを処理するステップが、グラフノードごとに、
前記グラフノードに関する前記それぞれのダイナミクス特徴を生成するために、前記グラフニューラルネットワークのデコーダサブネットワークを使用して前記グラフノードに関する前記現在のノード埋め込みを処理することであって、
前記ダイナミクス特徴が、前記グラフノードに対応する前記メッシュノードのメッシュノード特徴の変化率を特徴付ける、処理することを含む請求項1から14のいずれか一項に記載の方法。
【請求項17】
(i)前記グラフの前記ノードに対応する前記ダイナミクス特徴、および(ii)前記現在の時間ステップにおける前記物理的環境の前記状態に基づいて、前記次の時間ステップにおける前記物理的環境の前記状態を決定するステップが、各メッシュノードに関して、
(i)前記現在の時間ステップにおける前記メッシュノードの前記メッシュノード特徴、および(ii)前記メッシュノード特徴の前記変化率に基づいて、前記次の時間ステップにおける前記メッシュノードのメッシュノード特徴を決定することを含む請求項16に記載の方法。
【請求項18】
前記複数の時間ステップのうちの1つまたは複数に関して、
前記メッシュの各メッシュノードに関する1つまたは複数の再メッシュパラメータのそれぞれのセットを決定するステップと、
前記再メッシュパラメータに基づいて前記メッシュの解像度を適応させるステップであって、前記メッシュの1つまたは複数の複数のエッジを分割すること、前記メッシュの1つまたは複数のエッジを切り詰めること、またはそれら両方を含む、ステップと
をさらに含む請求項1から17のいずれか一項に記載の方法。
【請求項19】
前記メッシュの各メッシュノードに関する1つまたは複数の再メッシュパラメータのそれぞれのセットを決定するステップが、
更新後、グラフノードに対応する前記メッシュノードに関するそれぞれの再メッシュパラメータを生成するために、再メッシュニューラルネットワークを使用して各グラフノードに関する前記それぞれの現在のノード埋め込みを処理することを含む請求項18に記載の方法。
【請求項20】
前記再メッシュパラメータに基づいて前記メッシュの前記解像度を適応させるステップが、1つまたは複数のメッシュエッジに関して、
前記メッシュエッジに接続されたメッシュノードに関する前記再メッシュパラメータを使用して前記メッシュエッジの有向エッジ長を決定することと、
前記メッシュエッジの前記有向エッジ長が閾値を超えるという判定に応じて、前記メッシュエッジが分割されるべきであると判定することと
を含む、前記再メッシュパラメータに基づいて、分割されるべき前記メッシュの1つまたは複数のメッシュエッジを特定することを含む請求項18または19に記載の方法。
【請求項21】
前記再メッシュパラメータに基づいて前記メッシュの前記解像度を適応させるステップが、1つまたは複数のメッシュエッジに関して、
前記再メッシュパラメータを使用して、前記メッシュエッジを切り詰めることによって作成される新しいメッシュエッジの有向エッジ長を決定することと、
前記新しいメッシュエッジの前記有向エッジ長が閾値を超えないという判定に応じて、前記メッシュエッジが切り詰められるべきであると判定することと
を含む、前記再メッシュパラメータに基づいて、切り詰められるべき前記メッシュの1つまたは複数メッシュエッジを特定することを含む請求項18から20のいずれか一項に記載の方法。
【請求項22】
請求項10に従属するとき、1つまたは複数のコンピュータを含み、1つまたは複数のハードウェアアクセラレータユニットを含むデータ処理装置によって、前記方法が実行され、
1または複数の回数の更新の反復の各々において前記グラフを更新するステップが、L個のメッセージパッシングブロックを含むプロセッサシステムを使用して前記グラフを更新することを含み、
各メッセージパッシングブロックが、同じニューラルネットワークアーキテクチャ、およびニューラルネットワークパラメータの別々のセットを有し、前記方法が、
複数の反復にわたって前記グラフを定義する前記データを処理するために、前記メッセージパッシングブロックを順に適用するステップと、
前記グラフを定義する前記データを処理するために前記メッセージパッシングブロックを順に適用するために、前記1つまたは複数のハードウェアアクセラレータユニットを使用するステップと
をさらに含む請求項10から21のいずれか一項に記載の方法。
【請求項23】
前記方法が、複数のハードウェアアクセラレータを含むデータ処理装置によって実行され、
前記方法が、前記メッセージパッシングブロックを使用する処理を前記ハードウェアアクセラレータに分散させるステップを含む請求項22に記載の方法。
【請求項24】
前記物理的環境が、物理的物体を含む実世界環境を含み、
前記現在の時間ステップにおける前記物理的環境の前記状態を定義する前記データを取得するステップが、前記物理的物体から、前記物理的物体の形状の2Dまたは3D表現を定義する物体データを取得することを含み、
前記方法は、前記実世界環境との前記物理的物体の相互作用を定義する相互作用データを入力することを含み、
前記現在の時間ステップにおける前記物理的環境の前記状態の前記表現を生成するステップが、前記物体データおよび前記相互作用データを使用して前記物理的環境の前記状態の前記表現を生成し、
前記次の時間ステップにおける前記物理的環境の前記状態を決定するステップが、i)前記物理的物体の前記形状の更新された2Dまたは3D表現を定義する更新された物体データ、ii)前記物理的物体上の応力の2Dまたは3D表現を定義する応力データ、iii)前記物理的物体が埋め込まれている流体内の速度、運動量、密度、または圧力場を定義するデータのうちの1つまたは複数を決定することを含む請求項1から23のいずれか一項に記載の方法。
【請求項25】
前記相互作用データが、前記物理的物体に加えられた力または変形を表すデータを含み、
前記現在の時間ステップにおける前記物理的環境の前記状態の前記表現を生成するステップが、各メッシュノードを、前記メッシュノードが前記物理的物体の一部であるか否かを定義するメッシュノード特徴に関連付けることを含み、
前記次の時間ステップにおける前記物理的環境の前記状態を決定するステップが、前記物理的物体の前記形状の更新された2Dもしくは3D表現、または前記物理的物体上の圧力もしくは応力の表現を定義する更新された物体データを決定することを含む請求項24に記載の方法。
【請求項26】
前記物理的環境が、物理的物体を含む実世界環境を含み、
前記次の時間ステップにおける前記物理的環境の前記状態を決定するステップが、1つまたは複数の次の時間ステップにおける前記物理的物体の形状の表現を決定することを含み、
前記方法が、シミュレーションを検証するために、前記実世界環境内の前記物理的物体の形状または動きを前記形状の前記表現と比較するステップをさらに含む請求項1から25のいずれか一項に記載の方法。
【請求項27】
請求項1から23のいずれか一項に記載の方法を使用して物体の形状を設計する方法であって、
現在の時間における前記物理的環境の前記状態を定義する前記データが、物体の形状を表すデータを含み、
前記次の時間ステップにおける前記物理的環境の前記状態を決定するステップが、前記次の時間ステップにおける前記物体の前記形状の表現を決定することを含み、
前記物体を設計する前記方法が、目的関数を最適化する前記物体の形状を決定するために、物理的物体の前記形状を表す前記データを調整するために、前記グラフニューラルネットワークを通して前記目的関数の勾配を逆伝播させるステップを含む、方法。
【請求項28】
前記目的関数を最適化する前記形状を有する物理的物体を作るステップをさらに含む請求項27に記載の方法。
【請求項29】
請求項1から23のいずれか一項に記載の方法を使用してロボットを制御する方法であって、
前記物理的環境が、物理的物体を含む実世界環境を含み、
前記次の時間ステップにおける前記物理的環境の前記状態を決定するステップが、前記物理的物体の形状または構成の表現を決定することを含み、
前記次の時間ステップにおける前記物理的環境の前記状態を決定するステップが、前記物理的物体の前記形状または前記構成の予測された表現を決定することを含み、
前記方法が、前記予測された表現と前記物理的物体の目標位置、目標形状、または目標構成との間の差に依存する目的関数を最適化するように前記ロボットを制御することによって、前記物理的物体の前記目標位置、前記目標形状、または前記目標構成に向かって前記物理的物体を操作するために、前記予測された表現を使用して前記ロボットを制御するステップをさらに含む、方法。
【請求項30】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から29のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶した1つまたは複数の非一時的コンピュータストレージ媒体。
【請求項31】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能なように結合された1つまたは複数のストレージデバイスであって、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から29のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶する、1つまたは複数のストレージデバイスと
を含むシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年10月2日に出願された「SIMULATING PHYSICAL ENVIRONMENTS USING GRAPH NEURAL NETWORKS」の米国仮特許出願第63/086,964号の出願日の利益を主張するものであり、この仮出願は、その全体が参照により本書に組み込まれる。
【0002】
本明細書は、機械学習モデルを使用してデータを処理することに関する。
【背景技術】
【0003】
機械学習モデルは、入力を受け取り、受け取られた入力に基づいて出力、たとえば、予測される出力を生成する。一部の機械学習モデルは、パラメトリックモデルであり、受け取られた入力およびモデルのパラメータの値に基づいて出力を生成する。
【0004】
一部の機械学習モデルは、受け取られた入力に関する出力を生成するためにモデルの複数の層を使用する深層モデル(deep model)である。たとえば、深層ニューラルネットワークは、出力を生成するために受け取られた入力に非線形変換をそれぞれ適用する出力層および1つまたは複数の隠れ層を含む深層機械学習モデルである。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Martin Wickeら、「Dynamic local remeshing for elastoplastic simulation」、ACM Trans. Graph.、29(4)、2010
【発明の概要】
【課題を解決するための手段】
【0006】
概して、本明細書は、グラフニューラルネットワークを使用して物理的環境のシミュレーションを実行する、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシミュレーションシステムを説明する。特に、一連の時間ステップの中の1つまたは複数の時間ステップの各々において、システムは、次の時間ステップにおける物理的環境の次の状態の予測を生成するために、グラフニューラルネットワークを使用して現在の時間ステップにおける物理的環境の現在の状態の表現を処理することができる。
【0007】
(たとえば、一連の時間ステップにわたって物理的環境の予測された状態を特徴付ける)本明細書において説明されるシミュレーションシステムによって生成されるシミュレーションは、様々な目的のいずれかのために使用され得る。場合によっては、シミュレーションの視覚的表現が、たとえば、ビデオとして生成され、シミュレーションシステムのユーザに提供される場合がある。場合によっては、シミュレーションの表現は、実現可能性の基準が満たされると判定するために処理されてよく、実現可能性の基準が満たされることに応じて、物理的な装置またはシステムが構築されてよい。たとえば、シミュレーションシステムは、航空機の翼上の気流の空気力学シミュレーションを生成する場合があり、航空機の翼を物理的に構築するための実現可能性の基準は、航空機の翼上の力または応力が閾値を超えないことである場合がある。場合によっては、物理的環境と相互作用するエージェント(たとえば、強化学習エージェント)が、シミュレーションシステムを使用して、エージェントが環境において様々なアクションを実行した効果をシミュレーションする環境の1つまたは複数のシミュレーションを生成する場合がある。これらの場合、エージェントは、環境において特定のアクションを実行すべきかどうかを判定することの一部として環境のシミュレーションを使用する場合がある。
【0008】
本明細書全体を通じて、エンティティの「埋め込み」は、数値の順序付けられた集まりとしてのエンティティの表現、たとえば、数値のベクトルまたは行列を指し得る。エンティティの埋め込みは、たとえば、エンティティを特徴付けるデータを処理するニューラルネットワークの出力として生成され得る。
【0009】
第1の態様によれば、物理的環境の状態をシミュレーションするための、1つまたは複数のデータ処理装置によって実行される方法であって、複数の時間ステップの各々に関して、現在の時間ステップにおける物理的環境の状態を定義するデータを取得するステップであって、現在の時間ステップにおける物理的環境の状態を定義するデータが、メッシュを定義するデータを含み、メッシュが、複数のメッシュノードおよび複数のメッシュエッジを含み、各メッシュノードが、それぞれのメッシュノード特徴に関連付けられる、ステップと、現在の時間ステップにおける物理的環境の状態の表現を生成するステップであって、表現が、それぞれがそれぞれの現在のノード埋め込みに関連付けられる複数のノード、およびそれぞれがそれぞれの現在のエッジ埋め込みに関連付けられる複数のエッジを含むグラフを表すデータを含み、現在の時間ステップにおける物理的環境の状態を表すグラフの各ノードが、それぞれのメッシュノードに対応する、ステップと、1または複数の回数の更新の反復の各々においてグラフを更新するステップであって、それぞれの更新の反復において、グラフの各ノードの現在のノード埋め込みおよびグラフの各エッジの現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することを含む、ステップと、更新後、グラフの各ノードに対応するそれぞれのダイナミクス(dynamics)の特徴を生成するために、グラフの各ノードに関するそれぞれの現在のノード埋め込みを処理するステップと、(i)グラフのノードに対応するダイナミクス特徴、および(ii)現在の時間ステップにおける物理的環境の状態に基づいて、次の時間ステップにおける物理的環境の状態を決定するステップとを含む、方法が提供される。
【0010】
一部の実装において、メッシュは、物理的環境に広がる。
【0011】
一部の実装において、メッシュは、物理的環境内の1つまたは複数の物体を表す。
【0012】
一部の実装において、複数のメッシュノードの各々に関して、メッシュノードに関連するメッシュノード特徴は、現在の時間ステップにおけるメッシュノードの状態を含み、現在の時間ステップにおけるメッシュノードの状態は、現在の時間ステップにおける物理的環境の座標系内のメッシュノードの位置を表す位置座標を含む。
【0013】
一部の実装において、複数のメッシュノードの各々に関して、現在の時間ステップにおけるメッシュノードに関連するメッシュノード特徴は、現在の時間ステップにおけるメッシュノードに対応する環境内の位置の流体密度、流体粘度、圧力、または張力のうちの1つまたは複数をさらに含む。
【0014】
一部の実装において、複数のメッシュノードの各々に関して、メッシュノードに関連するメッシュノード特徴は、1つまたは複数の以前の時間ステップの各々におけるメッシュノードのそれぞれの状態をさらに含む。
【0015】
一部の実装において、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、グラフの各ノードに関するそれぞれの現在のノード埋め込みを生成することであって、グラフの各ノードに関して、グラフのノードに関する現在のノード埋め込みを生成するために、グラフニューラルネットワークのノード埋め込みサブネットワークを使用して、グラフのノードに対応するメッシュノードの特徴のうちの1つまたは複数を含む入力を処理することを含む、生成することを含む。
【0016】
一部の実装において、グラフの各ノードに関して、ノード埋め込みサブネットワークへの入力は、物理的環境の1つまたは複数の大域的特徴をさらに含む。
【0017】
一部の実装において、物理的環境の大域的特徴は、物理的環境に加えられている力、物理的環境の重力定数、物理的環境の磁界、またはそれらの組合せを含む。
【0018】
一部の実装において、グラフの各エッジは、グラフのノードのそれぞれのペアを接続し、グラフは、複数のメッシュ空間エッジおよび複数のワールド空間エッジを含み、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、メッシュのエッジによって接続されているメッシュノードの各ペアに関して、グラフノードの対応するペアがグラフにおいてメッシュ空間エッジによって接続されると決定することと、物理的環境の座標系において閾値未満の距離だけ離れているそれぞれの位置を有するメッシュノードの各ペアに関して、グラフノードの対応するペアがグラフにおいてワールド空間エッジによって接続されると決定することとを含む。
【0019】
一部の実装において、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、グラフの各エッジに関するそれぞれの現在のエッジ埋め込みを生成することであって、グラフの各メッシュ空間エッジに関して、メッシュ空間エッジに関する現在のエッジ埋め込みを生成するために、グラフニューラルネットワークのメッシュ空間エッジ埋め込みサブネットワークを使用して、グラフのメッシュ空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置、グラフのメッシュ空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せを含む入力を処理することを含む、生成することを含む。
【0020】
一部の実装において、方法は、グラフの各ワールド空間エッジに関して、ワールド空間エッジに関する現在のエッジ埋め込みを生成するために、グラフニューラルネットワークのワールド空間エッジ埋め込みサブネットワークを使用して、グラフのワールド空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置、グラフのワールド空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せを含む入力を処理するステップをさらに含む。
【0021】
一部の実装では、それぞれの更新の反復において、グラフの各ノードの現在のノード埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することは、グラフの各ノードに関して、ノードに関する更新されたノード埋め込みを生成するために、グラフニューラルネットワークのノード更新サブネットワークを使用して、(i)ノードに関する現在のノード埋め込みと、(ii)ノードに接続されている各エッジに関するそれぞれの現在のエッジ埋め込みとを含む入力を処理することを含む。
【0022】
一部の実装では、それぞれの更新の反復において、グラフの各エッジの現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することは、グラフの各メッシュ空間エッジに関して、メッシュ空間エッジに関する更新されたエッジ埋め込みを生成するために、グラフニューラルネットワークのメッシュ空間エッジ更新サブネットワークを使用して、(i)メッシュ空間エッジに関する現在のエッジ埋め込みと、(ii)メッシュ空間エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理することを含む。
【0023】
一部の実装では、それぞれの更新の反復において、グラフの各エッジの現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することは、グラフの各ワールド空間エッジに関して、ワールド空間エッジに関する更新されたエッジ埋め込みを生成するために、グラフニューラルネットワークのワールド空間エッジ更新サブネットワークを使用して、(i)ワールド空間エッジに関する現在のエッジ埋め込みと、(ii)ワールド空間エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理することを含む。
【0024】
一部の実装において、グラフの各ノードに対応するそれぞれのダイナミクス特徴を生成するために、グラフの各ノードに関するそれぞれの現在のノード埋め込みを処理するステップは、各グラフノードに関して、グラフノードに関するそれぞれのダイナミクス特徴を生成するために、グラフニューラルネットワークのデコーダサブネットワークを使用してグラフノードに関する現在のノード埋め込みを処理することであって、ダイナミクス特徴が、グラフノードに対応するメッシュノードのメッシュノード特徴の変化率を特徴付ける、処理することを含む。
【0025】
一部の実装において、(i)グラフのノードに対応するダイナミクス特徴、および(ii)現在の時間ステップにおける物理的環境の状態に基づいて、次の時間ステップにおける物理的環境の状態を決定するステップは、各メッシュノードに関して、(i)現在の時間ステップにおけるメッシュノードのメッシュノード特徴、および(ii)メッシュノード特徴の変化率に基づいて、次の時間ステップにおけるメッシュノードのメッシュノード特徴を決定することを含む。
【0026】
一部の実装において、方法は、複数の時間ステップのうちの1つまたは複数に関して、メッシュの各メッシュノードに関する1つまたは複数の再メッシュ(re-meshing)パラメータのそれぞれのセットを決定するステップと、再メッシュパラメータに基づいてメッシュの解像度を適応させるステップであって、メッシュの1つもしくは複数のエッジを分割すること、メッシュの1つもしくは複数のエッジを切り詰める(collapse)こと、またはそれら両方を含む、ステップとをさらに含む。
【0027】
一部の実装において、メッシュの各メッシュノードに関する1つまたは複数の再メッシュパラメータのそれぞれのセットを決定するステップは、更新後、グラフノードに対応するメッシュノードに関するそれぞれの再メッシュパラメータを生成するために、再メッシュニューラルネットワークを使用して各グラフノードに関するそれぞれの現在のノード埋め込みを処理することを含む。
【0028】
一部の実装において、再メッシュパラメータに基づいてメッシュの解像度を適応させるステップは、再メッシュパラメータに基づいて、分割されるべきメッシュの1つまたは複数のメッシュエッジを特定することであって、1つまたは複数のメッシュエッジに関して、メッシュエッジに接続されたメッシュノードに関する再メッシュパラメータを使用してメッシュエッジの有向エッジ長(oriented edge length)を決定することと、メッシュエッジの有向エッジ長が閾値を超えるという判定に応じて、メッシュエッジが分割されるべきであると判定することとを含む、特定することを含む。
【0029】
一部の実装において、再メッシュパラメータに基づいてメッシュの解像度を適応させるステップは、再メッシュパラメータに基づいて、切り詰められるべきメッシュの1つまたは複数のメッシュエッジを特定することであって、1つまたは複数のメッシュエッジに関して、再メッシュパラメータを使用して、メッシュエッジを切り詰めることによって作成される新しいメッシュエッジの有向エッジ長を決定することと、新しいメッシュエッジの有向エッジ長が閾値を超えないという判定に応じて、メッシュエッジが切り詰められるべきであると判定することとを含む、特定することを含む。
【0030】
一部の実装において、請求項10に従属するとき、方法は、1つまたは複数のコンピュータを含み、1つまたは複数のハードウェアアクセラレータユニットを含むデータ処理装置によって実行され、1または複数の回数の更新の反復の各々においてグラフを更新するステップは、L個のメッセージパッシングブロックを含むプロセッサシステムを使用してグラフを更新することであって、各メッセージパッシングブロックが、同じニューラルネットワークアーキテクチャ、およびニューラルネットワークパラメータの別々のセットを有する、更新することを含み、方法は、複数の反復にわたってグラフを定義するデータを処理するために、メッセージパッシングブロックを順に適用するステップと、グラフを定義するデータを処理するためにメッセージパッシングブロックを順に適用するために、1つまたは複数のハードウェアアクセラレータユニットを使用するステップとをさらに含む。
【0031】
一部の実装において、方法は、複数のハードウェアアクセラレータを含むデータ処理装置によって実行され、方法は、メッセージパッシングブロックを使用する処理をハードウェアアクセラレータに分散させるステップを含む。
【0032】
一部の実装において、物理的環境は、物理的物体を含む実世界環境を含み、現在の時間ステップにおける物理的環境の状態を定義するデータを取得するステップは、物理的物体から、物理的物体の形状の2Dまたは3D表現を定義する物体データを取得することを含み、実世界環境との物理的物体の相互作用を定義する相互作用データを入力すること、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、物体データおよび相互作用データを使用して物理的環境の状態の表現を生成し、次の時間ステップにおいて物理的環境の状態を決定するステップは、i)物理的物体の形状の更新された2Dまたは3D表現を定義する更新された物体データ、ii)物理的物体上の応力の2Dまたは3D表現を定義する応力データ、iii)物体が埋め込まれている流体内の速度、運動量、密度、または圧力場を定義するデータのうちの1つまたは複数を決定することを含む。
【0033】
一部の実装において、相互作用データは、物体に加えられた力または変形を表すデータを含み、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、各メッシュノードを、メッシュノードが物体の一部であるか否かを定義するメッシュノード特徴に関連付けることを含み、次の時間ステップにおける物理的環境の状態を決定するステップは、物理的物体の形状の更新された2Dもしくは3D表現、または物理的物体上の圧力もしくは応力の表現を定義する更新された物体データを決定することを含む。
【0034】
一部の実装において、物理的環境は、物理的物体を含む実世界環境を含み、次の時間ステップにおける物理的環境の状態を決定するステップは、1つまたは複数の次の時間ステップにおける物理的物体の形状の表現を決定することを含み、方法は、シミュレーションを検証するために、実世界環境内の物理的物体の形状または動きを形状の表現と比較するステップをさらに含む。
【0035】
第2の態様によれば、いずれかの上述の態様の方法を使用して物体の形状を設計する方法であって、現在の時間における物理的環境の状態を定義するデータが、物体の形状を表すデータを含み、次の時間ステップにおける物理的環境の状態を決定するステップが、次の時間ステップにおける物体の形状の表現を決定することを含み、物体を設計する方法が、目的関数を最適化する物体の形状を決定するために、物理的物体の形状を表すデータを調整するために、グラフニューラルネットワークを通して目的関数の勾配を逆伝播させるステップを含む、方法が提供される。
【0036】
一部の実装において、方法は、目的関数を最適化する形状を持つ物理的物体を作るステップをさらに含む。
【0037】
第3の態様によれば、いずれかの上述の態様の方法を使用してロボットを制御する方法であって、物理的環境が、物理的物体を含む実世界環境を含み、次の時間ステップにおける物理的環境の状態を決定するステップが、物理的物体の形状または構成の表現を決定することを含み、次の時間ステップにおける物理的環境の状態を決定するステップが、物理的物体の形状または構成の予測された表現を決定することを含み、方法が、予測された表現と物理的物体の目標位置、目標形状、または目標構成との間の差に依存する目的関数を最適化するようにロボットを制御することによって、物理的物体の目標位置、目標形状、または目標構成に向かって物理的物体を操作するために、予測された表現を使用してロボットを制御するステップをさらに含む、方法が提供される。
【0038】
第4の態様によれば、物理的環境の状態をシミュレーションするための、1つまたは複数のデータ処理装置によって実行される方法であって、複数の時間ステップの各々に関して、現在の時間ステップにおける物理的環境の状態を定義するデータを取得するステップと、現在の時間ステップにおける物理的環境の状態の表現を生成するステップであって、表現が、それぞれがそれぞれの現在のノード埋め込みに関連付けられる複数のノード、およびそれぞれがそれぞれの現在のエッジ埋め込みに関連付けられる複数のエッジを含むグラフを表すデータを含む、ステップと、1または複数の回数の更新の反復の各々においてグラフを更新するステップであって、それぞれの更新の反復において、グラフの各ノードの現在のノード埋め込みおよびグラフの各エッジの現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することを含む、ステップと、更新後、グラフの各ノードに対応するそれぞれのダイナミクス特徴を生成するために、グラフの各ノードに関するそれぞれの現在のノード埋め込みを処理するステップと、(i)グラフのノードに対応するダイナミクス特徴、および(ii)現在の時間ステップにおける物理的環境の状態に基づいて、次の時間ステップにおける物理的環境の状態を決定するステップとを含む、方法が提供される。
【0039】
一部の実装において、現在の時間ステップにおける物理的環境の状態を定義するデータは、現在の時間ステップにおける物理的環境内の複数の粒子の各々のそれぞれの特徴を含み、現在の時間ステップにおける物理的環境の状態を表すグラフの各ノードは、それぞれの粒子に対応する。
【0040】
一部の実装において、複数の粒子は、流体、剛体(rigid solid)、または変形可能な物質に含まれる粒子を含む。
【0041】
一部の実装において、複数の粒子の各々に関して、現在の時間ステップにおける粒子の特徴は、現在の時間ステップにおける粒子の状態を含み、現在の時間ステップにおける粒子の状態は、現在の時間ステップにおける粒子の位置を含む。
【0042】
一部の実装において、複数の粒子の各々に関して、現在の時間ステップにおける粒子の状態は、現在の時間ステップにおける粒子の速度、現在の時間ステップにおける粒子の加速度、またはそれら両方をさらに含む。
【0043】
一部の実装において、複数の粒子の各々に関して、現在の時間ステップにおける粒子の特徴は、1つまたは複数の以前の時間ステップの各々における粒子のそれぞれの状態をさらに含む。
【0044】
一部の実装において、複数の粒子の各々に関して、現在の時間ステップにおける粒子の特徴は、粒子の物質の特性をさらに含む。
【0045】
一部の実装において、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、グラフの各ノードに関するそれぞれの現在のノード埋め込みを生成することであって、グラフの各ノードに関して、ノードに関する現在のノード埋め込みを生成するために、グラフニューラルネットワークのノード埋め込みサブネットワークを使用して、ノードに対応する粒子の特徴のうちの1つまたは複数を含む入力を処理することを含む、生成することを含む。
【0046】
一部の実装において、グラフの各ノードに関して、ノード埋め込みサブネットワークへの入力は、物理的環境の1つまたは複数の大域的特徴をさらに含む。
【0047】
一部の実装において、物理的環境の大域的特徴は、物理的環境に加えられている力、物理的環境の重力定数、物理的環境の磁界、またはそれらの組合せを含む。
【0048】
一部の実装において、グラフの各エッジは、グラフのノードのそれぞれのペアを接続し、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、閾値未満の距離だけ離れたそれぞれの位置を有する物理的環境内の粒子の各ペアを特定することと、粒子のそれぞれの特定されたペアに関して、グラフのノードの対応するペアがエッジによって接続されると決定することとを含む。
【0049】
一部の実装において、グラフの各エッジに関する現在のエッジ埋め込みは、予め定義された埋め込みである。
【0050】
一部の実装において、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、グラフの各エッジに関するそれぞれの現在のエッジ埋め込みを生成することであって、グラフの各エッジに関して、エッジに関する現在のエッジ埋め込みを生成するために、グラフニューラルネットワークのエッジ埋め込みサブネットワークを使用して、エッジによって接続されたノードに対応する粒子のそれぞれの位置、エッジによって接続されたノードに対応する粒子のそれぞれの位置の間の差、エッジによって接続されたノードに対応する粒子のそれぞれの位置の間の差の大きさ、またはそれらの組合せを含む入力を処理することを含む、生成することを含む。
【0051】
一部の実装では、それぞれの更新の反復において、グラフの各ノードの現在のノード埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することは、グラフの各ノードに関して、ノードに関する更新されたノード埋め込みを生成するために、グラフニューラルネットワークのノード更新サブネットワークを使用して、(i)ノードに関する現在のノード埋め込みと、(ii)ノードに接続されている各エッジに関するそれぞれの現在のエッジ埋め込みとを含む入力を処理することを含む。
【0052】
一部の実装では、それぞれの更新の反復において、グラフの各エッジの現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することは、グラフの各エッジに関して、エッジに関する更新されたエッジ埋め込みを生成するために、グラフニューラルネットワークのエッジ更新サブネットワークを使用して、(i)エッジに関する現在のエッジ埋め込みと、(ii)エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理することを含む。
【0053】
一部の実装において、グラフの各ノードに対応するそれぞれのダイナミクス特徴を生成するために、グラフの各ノードに関するそれぞれの現在のノード埋め込みを処理するステップは、各ノードに関して、ノードに関するそれぞれのダイナミクス特徴を生成するために、グラフニューラルネットワークのデコーダサブネットワークを使用してノードに関する現在のノード埋め込みを処理することであって、ダイナミクス特徴が、ノードに対応する粒子の位置の変化率を特徴付ける、処理することを含む。
【0054】
一部の実装において、各ノードに関するダイナミクス特徴は、ノードに対応する粒子の加速度を含む。
【0055】
一部の実装において、(i)グラフのノードに対応するダイナミクス特徴、および(ii)現在の時間ステップにおける物理的環境の状態に基づいて、次の時間ステップにおける物理的環境の状態を決定するステップは、各粒子に関して、(i)現在の時間ステップにおける粒子の位置、および(ii)粒子に対応するノードに関するダイナミクス特徴に基づいて、次の時間ステップにおける粒子のそれぞれの位置を決定することを含む。
【0056】
一部の実装において、現在の時間ステップにおける物理的環境の状態を定義するデータは、メッシュを定義するデータを含み、メッシュは、複数のメッシュノードおよび複数のメッシュエッジを含み、各メッシュノードは、それぞれのメッシュノード特徴に関連付けられ、現在の時間ステップにおける物理的環境の状態を表すグラフの各ノードは、それぞれのメッシュノードに対応する。
【0057】
一部の実装において、メッシュは、物理的環境に広がる。
【0058】
一部の実装において、メッシュは、物理的環境内の1つまたは複数の物体を表す。
【0059】
一部の実装において、複数のメッシュノードの各々に関して、メッシュノードに関連するメッシュノード特徴は、現在の時間ステップにおけるメッシュノードの状態を含み、現在の時間ステップにおけるメッシュノードの状態は、現在の時間ステップにおけるメッシュの座標系内のメッシュノードの位置を表す位置座標、現在の時間ステップにおける物理的環境の座標系内のメッシュノードの位置を表す位置座標、またはそれら両方を含む。
【0060】
一部の実装において、複数のメッシュノードの各々に関して、現在の時間ステップにおけるメッシュノードに関連するメッシュノード特徴は、現在の時間ステップにおけるメッシュノードに対応する環境内の位置の流体密度、流体粘度、圧力、または張力のうちの1つまたは複数をさらに含む。
【0061】
一部の実装において、複数のメッシュノードの各々に関して、メッシュノードに関連するメッシュノード特徴は、1つまたは複数の以前の時間ステップの各々におけるメッシュノードのそれぞれの状態をさらに含む。
【0062】
一部の実装において、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、グラフの各ノードに関するそれぞれの現在のノード埋め込みを生成することであって、グラフの各ノードに関して、グラフのノードに関する現在のノード埋め込みを生成するために、グラフニューラルネットワークのノード埋め込みサブネットワークを使用して、グラフのノードに対応するメッシュノードの特徴のうちの1つまたは複数を含む入力を処理することを含む、生成することを含む。
【0063】
一部の実装において、グラフの各ノードに関して、ノード埋め込みサブネットワークへの入力は、物理的環境の1つまたは複数の大域的特徴をさらに含む。
【0064】
一部の実装において、物理的環境の大域的特徴は、物理的環境に加えられている力、物理的環境の重力定数、物理的環境の磁界、またはそれらの組合せを含む。
【0065】
一部の実装において、グラフの各エッジは、グラフのノードのそれぞれのペアを接続し、グラフは、複数のメッシュ空間エッジおよび複数のワールド空間エッジを含み、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、メッシュのエッジによって接続されているメッシュノードの各ペアに関して、グラフノードの対応するペアがグラフにおいてメッシュ空間エッジによって接続されると決定することと、物理的環境の座標系において閾値未満の距離だけ離れているそれぞれの位置を有するメッシュノードの各ペアに関して、グラフノードの対応するペアがグラフにおいてワールド空間エッジによって接続されると決定することとを含む。
【0066】
一部の実装において、現在の時間ステップにおける物理的環境の状態の表現を生成するステップは、グラフの各エッジに関するそれぞれの現在のエッジ埋め込みを生成することであって、グラフの各メッシュ空間エッジに関して、メッシュ空間エッジに関する現在のエッジ埋め込みを生成するために、グラフニューラルネットワークのメッシュ空間エッジ埋め込みサブネットワークを使用して、グラフのメッシュ空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置、グラフのメッシュ空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せを含む入力を処理することを含む、生成することを含む。
【0067】
一部の実装において、方法は、グラフの各ワールド空間エッジに関して、ワールド空間エッジに関する現在のエッジ埋め込みを生成するために、グラフニューラルネットワークのワールド空間エッジ埋め込みサブネットワークを使用して、グラフのワールド空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置、グラフのワールド空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せを含む入力を処理するステップをさらに含む。
【0068】
一部の実装では、それぞれの更新の反復において、グラフの各ノードの現在のノード埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することは、グラフの各ノードに関して、ノードに関する更新されたノード埋め込みを生成するために、グラフニューラルネットワークのノード更新サブネットワークを使用して、(i)ノードに関する現在のノード埋め込みと、(ii)ノードに接続されている各エッジに関するそれぞれの現在のエッジ埋め込みとを含む入力を処理することを含む。
【0069】
一部の実装では、それぞれの更新の反復において、グラフの各エッジの現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することは、グラフの各メッシュ空間エッジに関して、メッシュ空間エッジに関する更新されたエッジ埋め込みを生成するために、グラフニューラルネットワークのメッシュ空間エッジ更新サブネットワークを使用して、(i)メッシュ空間エッジに関する現在のエッジ埋め込みと、(ii)メッシュ空間エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理することを含む。
【0070】
一部の実装では、それぞれの更新の反復において、グラフの各エッジの現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することは、グラフの各ワールド空間エッジに関して、ワールド空間エッジに関する更新されたエッジ埋め込みを生成するために、グラフニューラルネットワークのワールド空間エッジ更新サブネットワークを使用して、(i)ワールド空間エッジに関する現在のエッジ埋め込みと、(ii)ワールド空間エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理することを含む。
【0071】
一部の実装において、グラフの各ノードに対応するそれぞれのダイナミクス特徴を生成するために、グラフの各ノードに関するそれぞれの現在のノード埋め込みを処理するステップは、各グラフノードに関して、グラフノードに関するそれぞれのダイナミクス特徴を生成するために、グラフニューラルネットワークのデコーダサブネットワークを使用してグラフノードに関する現在のノード埋め込みを処理することであって、ダイナミクス特徴が、グラフノードに対応するメッシュノードのメッシュノード特徴の変化率を特徴付ける、処理することを含む。
【0072】
一部の実装において、(i)グラフのノードに対応するダイナミクス特徴、および(ii)現在の時間ステップにおける物理的環境の状態に基づいて、次の時間ステップにおける物理的環境の状態を決定するステップは、各メッシュノードに関して、(i)現在の時間ステップにおけるメッシュノードのメッシュノード特徴、および(ii)メッシュノード特徴の変化率に基づいて、次の時間ステップにおけるメッシュノードのメッシュノード特徴を決定することを含む。
【0073】
一部の実装において、方法は、複数の時間ステップのうちの1つまたは複数に関して、メッシュの各メッシュノードに関する1つまたは複数の再メッシュパラメータのそれぞれのセットを決定するステップと、再メッシュパラメータに基づいてメッシュの解像度を適応させるステップであって、メッシュの1つもしくは複数のエッジを分割すること、メッシュの1つもしくは複数のエッジを切り詰めること、またはそれら両方を含む、ステップとをさらに含む。
【0074】
一部の実装において、メッシュの各メッシュノードに関する1つまたは複数の再メッシュパラメータのそれぞれのセットを決定するステップは、更新後、グラフノードに対応するメッシュノードに関するそれぞれの再メッシュパラメータを生成するために、各グラフノードに関するそれぞれの現在のノード埋め込みを処理することを含む。
【0075】
一部の実装において、再メッシュパラメータに基づいてメッシュの解像度を適応させるステップは、再メッシュパラメータに基づいて、分割されるべきメッシュの1つまたは複数のメッシュエッジを特定することであって、1つまたは複数のメッシュエッジに関して、メッシュエッジに接続されたメッシュノードに関する再メッシュパラメータを使用してメッシュエッジの有向エッジ長を決定することと、メッシュエッジの有向エッジ長が閾値を超えるという判定に応じて、メッシュエッジが分割されるべきであると判定することとを含む、特定することを含む。
【0076】
一部の実装において、再メッシュパラメータに基づいてメッシュの解像度を適応させるステップは、再メッシュパラメータに基づいて、切り詰められるべきメッシュの1つまたは複数のメッシュエッジを特定することであって、1つまたは複数のメッシュエッジに関して、再メッシュパラメータを使用して、メッシュエッジを切り詰めることによって作成される新しいメッシュエッジの有向エッジ長を決定することと、新しいメッシュエッジの有向エッジ長が閾値を超えないという判定に応じて、メッシュエッジが切り詰められるべきであると判定することとを含む、特定することを含む。
【0077】
第5の態様によれば、1つまたは複数のコンピュータによって実行されるときに1つまたは複数のコンピュータにいずれかの上述の態様のそれぞれの方法の動作を実行させる命令を記憶する1つまたは複数の非一時的コンピュータストレージ媒体が提供される。
【0078】
第6の態様によれば、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに通信可能なように結合された1つまたは複数のストレージデバイスであって、1つまたは複数のコンピュータによって実行されるときに1つまたは複数のコンピュータにいずれかの上述の態様のそれぞれの方法の動作を実行させる命令を記憶する、1つまたは複数のストレージデバイスとを含むシステムが提供される。
【0079】
本明細書に記載の主題は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態に実装され得る。
【0080】
複雑な物理的現象の現実感のあるシミュレータは、多くの科学および工学の分野にとって非常に貴重である。しかし、通常のシミュレーションシステムは、作成および使用するのに多大なコストがかかり得る。通常のシミュレータを構築することは、何年もの技術的努力を必要とする可能性があり、狭い範囲の状況における精度のために一般性を犠牲にしなければならないことが多い。さらに、高品質なシミュレータは、膨大な計算リソースを必要とし、それが、スケールアップを法外に高価にする。本明細書に記載のシミュレーションシステムは、一部の通常のシミュレーションシステムよりも高い精度で、より少ない計算リソース(たとえば、メモリおよび計算力)を使用して、多数の時間ステップにわたる複雑な物理的環境のシミュレーションを生成することができる。特定の状況において、シミュレーションシステムは、通常のシミュレーションシステムよりも1桁または複数桁速くシミュレーションを生成することができる。たとえば、通常のシミュレーションシステムが、各時間ステップにおいて別々の最適化を実行することを求められる場合がある一方、シミュレーションシステムは、ニューラルネットワークを1回通すことによって次の時間ステップにおける物理的環境の状態を予測することができる。
【0081】
シミュレーションシステムは、訓練データから直接複雑な物理的現象をシミュレーションすることを学習することができ、暗黙的に学習された物理の原理を汎化して、訓練データに直接表されるよりも広い範囲の、異なる条件下の物理的環境を正確にシミュレーションすることができるグラフニューラルネットワークを使用してシミュレーションを生成する。また、これは、システムが訓練で使用された設定よりも大規模で複雑な設定に汎化することを可能にする。対照的に、一部の通常のシミュレーションシステムは、物理の原理が明示的にプログラミングされることを要求し、シミュレーションされている各環境の特定の特性に手動で適応されなければならない。
【0082】
シミュレーションシステムは、たとえば、各時間ステップにおける物理的環境の状態がメッシュによって表される、メッシュベースのシミュレーションを実行することができる。メッシュベースのシミュレーションを実行することは、シミュレーションシステムが、特定の物理的環境、たとえば、切り離された粒子の雲としてモデル化することが困難な変形する表面または体積を含む物理的環境を、その他の方法で可能であるよりも正確にシミュレーションすることを可能にし得る。また、メッシュベースのシミュレーションを実行することは、シミュレーションシステムが、シミュレーションの過程でメッシュの解像度を動的に適応させること、たとえば、より精度が要求されるシミュレーションの部分でメッシュの解像度を上げ、それによって、シミュレーションの全体的な精度を向上させることを可能にし得る。メッシュの解像度を動的に適応させることによって、シミュレーションシステムは、一部の通常のシミュレーションシステムと比較されたとき、より少ない計算リソースを使用して所与の精度のシミュレーションを生成することができる。
【0083】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。主題のその他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0084】
【
図1】例示的な物理的環境シミュレーションシステムのブロック図である。
【
図2】物理的環境シミュレーションシステムの例示的な動作を示す図である。
【
図3】物理的環境の例示的なシミュレーションを示す図である。
【
図4】物理的環境をシミュレーションするための例示的なプロセスの流れ図である。
【
図5A】例示的な規則的メッシュおよび例示的な適応的メッシュを示す図である。
【
図5B】例示的なワールド空間エッジおよび例示的なメッシュ空間エッジを示す図である。
【
図6A】グラウンドトゥルース(ground truth)およびグリッドベースのシミュレーションと比較された適応的再メッシュシミュレーションの例を示す図である。
【
図6B】物理的環境シミュレーションシステムによって生成された汎化されたシミュレーションの例を示す図である。
【
図7】適応的な再メッシュにおいて使用される例示的な動作を示す図である。
【
図8】適応的な再メッシュによる例示的なシミュレーションを示す図である。
【
図9】シミュレーションされている物理的環境が粒子の集まりによって表される、物理的環境シミュレーションシステムによって生成された例示的なシミュレーションを示す図である。
【
図10】異なる種類の物質に関して物理的環境シミュレーションシステムによって生成された例示的なシミュレーションを示す図である。
【発明を実施するための形態】
【0085】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【0086】
図1は、物理的環境の状態をシミュレーションすることができる例示的な物理的環境シミュレーションシステム100を示すブロック図である。物理的環境シミュレーションシステム100は、以下で説明されるシステム、コンポーネント、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【0087】
概して、「物理的環境」は、たとえば、流体、剛体、変形可能な物質、任意のその他の種類の物理系、またはそれらの組合せを含む任意の種類の物理系を指す。物理的環境の「シミュレーション」は、一連の時間ステップの各時間ステップにおける環境のそれぞれのシミュレーションされた状態を含み得る。時間ステップにおける物理的環境の状態は、下でより詳細に説明されるように、たとえば、粒子の集まりまたはメッシュによって表され得る。第1の時間ステップにおける環境の状態は、物理的環境シミュレーションシステム100への入力として、たとえば、システム100のユーザによって提供され得る。一連の時間ステップの各時間ステップにおいて、システム100は、入力を処理し、次の時間ステップにおける物理的環境の状態140の予測を生成することができる。物理的環境の例示的なシミュレーションが、
図3に示される。
【0088】
たとえば、流体を含む物理的環境などの一部の物理的環境は、(たとえば、
図9および
図10に示されるように)個々の粒子のセットとして効果的にシミュレーションされ得るが、たとえば、変形可能な物質および複雑な構造を含む物理的環境などのその他の物理的環境は、同じ方法でシミュレーションすることがより困難である場合がある。特に、そのような系を粒子表現によってシミュレーションすることは、計算効率が悪く、失敗しやすい可能性がある。その代わりに、そのような物理的環境は、(たとえば、
図3、
図6A、
図6B、および
図8に示されるように)たとえば、物理的環境の全体に広がるか、または環境内の1つもしくは複数の物体のそれぞれの表面を表すことができるメッシュによってより適切に表現され得る。
【0089】
物理的環境シミュレーションシステム100は、粒子ベースの表現かまたはメッシュベースの表現かのどちらかによって、異なる物理的環境のダイナミクスをシミュレーションするために使用され得る。下で説明される例示的な物理的環境は、説明のためにのみ提供され、シミュレーションシステム100は、任意の種類の物質または物理的物体を含む任意の種類の物理的環境の状態をシミュレーションするために使用され得ることを理解されたい。物理的環境の粒子ベースの表現のシミュレーションと、物理的環境のメッシュベースの表現のシミュレーションとが、以下で順に説明される。
【0090】
シミュレーションシステム100は、次の時間ステップにおける物理的環境の次の状態140を予測するために、現在の時間ステップにおける物理的環境の現在の状態102を処理することができる。
【0091】
物理的環境の現在の状態102は、(たとえば、
図9に示されるように)個々の粒子の集まりとして表されることが可能であり、各粒子は、粒子の特徴のセットに関連付けられる。粒子に関連する粒子の特徴は、たとえば、粒子の空間的位置(たとえば、空間座標)を指定するベクトルと、任意で、たとえば、時間ステップにおける質量、速度、加速度などを含むその粒子に関連する様々な物理的特性とによって定義され得る。より詳細には、N個の粒子を含む物理的環境の現在の状態Xは、X = (x
0, ..., x
N-1)として表されることが可能であり、x
iは、粒子iの特徴のベクトル表現である。現在の時間ステップにおける粒子に関連する特徴は、下でより詳細に説明されるように、1つまたは複数の以前の時間ステップにおける粒子に関連する粒子の特徴をさらに指定し得る。物理的環境を表す粒子の数Nは、たとえば、100、1000、10000、100000、または粒子の任意のその他の適切な数であることが可能である。
【0092】
時間tにおける粒子iの特徴のセットxiは、粒子の様々な物理的特性を特徴付ける状態ベクトルによって、たとえば、
【0093】
【0094】
として定義されることが可能であり、
【0095】
【0096】
は、時間tにおける粒子の位置であり、fiは、粒子に対応する静的な物質の特性を表す特徴を定義し(たとえば、値0は砂を表し得る、値1は水を表し得る、など)、
【0097】
【0098】
は、時間ステップsにおける粒子の速度であり、Cは、特徴のセットに含まれる以前の速度
【0099】
【0100】
(たとえば、C個の以前の時間ステップの各々における粒子の速度)の数を指定する予め定義された数である。たとえば、C = 1である場合、現在の時間ステップにおける粒子iの特徴のセットxiは、前の時間ステップに対応する速度を含み、C = 5である場合、現在の時間ステップにおける粒子iの特徴のセットxiは、5つの以前の時間ステップの各々に対応する速度を含む。定数Cは、シミュレーションシステム100の予め決められたハイパーパラメータであることが可能である。
【0101】
概して、シミュレーションシステム100は、時間tにおける物理的環境の現在の状態X = (x0, ..., xN-1)を時間t+1における物理的環境の次の状態にマッピングすることによって、物理的環境のダイナミクスをモデル化することができる。粒子のダイナミクスは、たとえば、物理的環境に加えられている力、物理的環境の重力定数、物理的環境内の磁界などの環境の大域的な物理的側面と、たとえば、粒子間のエネルギーおよび運動量の交換などの粒子間の相互作用とによって影響を受け得る。
【0102】
シミュレーションシステム100のグラフニューラルネットワーク150は、エンコーダモジュール110、アップデータモジュール120、デコーダモジュール130を含み得る。
【0103】
エンコーダ110は、ノード埋め込みサブネットワーク111およびエッジ埋め込みサブネットワーク112を含み得る。各時間ステップにおいて、エンコーダ110は、たとえば、グラフ114を含み得る物理的環境の現在の状態102の表現を生成するために、物理的環境の現在の状態102(たとえば、= (x0, ..., xN-1))を定義するデータを処理するように構成され得る。「グラフ」(たとえば、G = (V, E))は、各エッジがノードのそれぞれのペアを接続するようなノードVおよびエッジEのセットを含むデータ構造を指す。グラフ114を生成するために、各時間ステップにおいて、エンコーダ110は、物理的環境の現在の状態102を定義するデータに含まれるN個の粒子の各々にノードを割り振り、グラフ114のノードのペアの間のエッジをインスタンス化することができる。
【0104】
グラフ114のノードのどのペアがエッジによって接続されるべきかを決定するために、各時間ステップにおいて、エンコーダ110は、閾値未満の距離だけ離れている(たとえば、それらのそれぞれの空間座標によって定義される)それぞれの位置を有する、物理的環境の現在の状態102における粒子の各ペアを特定し、粒子のそのようなペアの間のエッジをインスタンス化することができる。隣接するノードの探索は、任意の適切な探索アルゴリズム、たとえば、kd木アルゴリズムによって実行され得る。
【0105】
粒子の各々にノードを割り当て、粒子に対応するノードのペアの間のエッジをインスタンス化することに加えて、各時間ステップにおいて、エンコーダ110は、グラフ114の各ノードに関してそれぞれのノード埋め込みを生成することができる。グラフ114のノードの埋め込みを生成するために、エンコーダ110のノード埋め込みサブネットワーク111は、ノードによって表される粒子に関連する粒子の特徴を処理することができる。
【0106】
物理的環境の現在の状態102を表すデータに加えて、ノード埋め込みサブネットワーク111への入力は、物理的環境の大域的特徴106、たとえば、物理的環境に加えられている力、物理的環境の重力定数、物理的環境の磁界、または任意のその他の適切な特徴、またはそれらの組合せも含み得る。特に、各時間ステップにおいては、ノード埋め込みサブネットワーク111がノードの特徴を処理してノードの埋め込みを生成する前に、大域的特徴106が、グラフ114の各ノードに関連するノードの特徴に連結され得る。(グラフのノードに関連するノードの特徴は、ノードによって表される粒子に関連する粒子の特徴を指す)。
【0107】
各時間ステップにおいて、エンコーダ110は、グラフ114の各エッジに関してエッジ埋め込みを生成することもできる。概して、グラフ114のノードのペアを接続するエッジに関するエッジ埋め込みは、ノードのペアによって表される対応する粒子のペアとしての特性を表し得る。各時間ステップにおいて、グラフ114の各エッジに関して、エンコーダ110のエッジ埋め込みサブネットワーク112は、エッジによって接続されたグラフ114のノードのペアに関連する特徴を処理し、エッジのそれぞれの現在のエッジ埋め込みを生成することができる。特に、エッジ埋め込みサブネットワーク112は、たとえば、時間ステップにおけるエッジによって接続されたノードに対応する粒子のそれぞれの位置、時間ステップにおけるエッジによって接続されたノードに対応する粒子のそれぞれの位置の間の差、時間ステップにおけるエッジによって接続されたノードに対応する粒子のそれぞれの位置の間の差の大きさ、またはそれらの組合せに基づいて、グラフ114のノードのペアを接続する各エッジに関する埋め込みを生成することができる。
【0108】
一部の実装においては、粒子のペアとしての特性を決定し、それに基づいて埋め込みを生成する代わりに、グラフ114の各エッジに関する現在のエッジ埋め込みが、予め決定され得る。たとえば、各エッジに関するエッジ埋め込みは、訓練可能な固定バイアスベクトル、たとえば、成分がシミュレーションシステム100のパラメータであり、システム100の訓練中に訓練される固定ベクトルに設定され得る。
【0109】
時間ステップにおける物理的環境の現在の状態102を表すグラフ114を生成した後、シミュレーションシステム100は、グラフ114を定義するデータをアップデータ120に提供し、アップデータ120は、何回かの内部的な更新の反復にわたってグラフ114を更新して、時間ステップに関する更新されたグラフ115を生成する。グラフを「更新する」は、それぞれの更新の反復において、たとえば、グラフの隣接するノードのノード埋め込みおよび/またはエッジ埋め込みに基づいて、グラフの一部のまたはすべてのノードおよびエッジに関してノード埋め込みおよび/またはエッジ埋め込みを更新することによって、グラフに含まれるノードおよびエッジの間のメッセージパッシングのステップ(たとえば、情報の伝播のステップ)を実行することを指す。言い換えると、それぞれの更新の反復において、アップデータ120は、入力グラフ、たとえば、Gt = (V, E)を出力グラフGt+1 = (V, E)にマッピングし、出力グラフは、入力グラフと同じ構造(たとえば、同じノードVおよびエッジE)を有するが、異なるノード埋め込みおよびエッジ埋め込みを有する可能性がある。このようにして、それぞれの更新の反復において、シミュレーションシステム100は、粒子間相互作用、たとえば、粒子がその隣接する粒子に及ぼす影響をシミュレーションすることができる。内部的な更新の相互作用の数は、たとえば、1、10、100、または任意のその他の適切な数であることが可能であり、シミュレーションシステム100の予め決められたハイパーパラメータであることが可能である。
【0110】
より詳細には、アップデータ120は、ノード更新サブネットワーク121およびエッジ更新サブネットワーク122を含み得る。それぞれの更新の反復において、ノード更新サブネットワーク121は、ノードに関する更新されたノード埋め込みを生成するために、グラフ114に含まれるノードに関する現在のノード埋め込みと、グラフ114においてノードに接続されている各エッジに関するそれぞれの現在のエッジ埋め込みとを処理することができる。さらに、それぞれの更新の反復において、エッジ更新サブネットワーク122は、エッジに関する更新されたエッジ埋め込みを生成するために、エッジに関する現在のエッジ埋め込みと、エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを処理することができる。たとえば、ノードiをノードjに接続するエッジの更新されたエッジ埋め込み
【0111】
【0112】
と、ノードiの更新されたノード埋め込み
【0113】
【0114】
とは、
e'i,j ← fe (ei,j, vi, vj) v'i ← fv (vi, Σje'i,j) (1)
として表されることが可能であり、feおよびfvは、エッジ更新サブネットワーク122およびノード更新サブネットワーク121によってそれぞれ実行される演算を表す。
【0115】
アップデータ120の最後の更新の反復は、時間ステップに関する最終的な更新されたグラフ115を定義するデータを生成する。更新されたグラフ115を定義するデータは、シミュレーションシステム100のデコーダ130に提供され得る。デコーダ130は、ノードの1つまたは複数のダイナミクス特徴116を生成するために、グラフのノードに関連するノード埋め込みを処理するように構成されるニューラルネットワークである。各時間ステップにおいて、デコーダ130は、更新されたグラフ115の各ノードに対応するそれぞれのダイナミクス特徴116、たとえば、ノードに対応する粒子の位置の変化率を特徴付ける特徴を生成するために、更新されたグラフ115の各ノードに関するそれぞれのノード埋め込み(たとえば、更新されたノード埋め込み)を処理するように構成され得る。
【0116】
一例において、ノードに関するダイナミクス特徴116は、たとえば、ノードに対応する粒子の加速度を含み得る。別の例において、ノードに関するダイナミクス特徴116は、たとえば、ノードに対応する粒子の速度を含み得る。ノードおよびエッジ埋め込みサブネットワーク(111、112)、ノードおよびエッジ更新サブネットワーク(121、122)、ならびにデコーダ130は、それらがそれらの説明された機能を実行することを可能にする任意の適切なニューラルネットワークアーキテクチャを有することが可能である。たとえば、それらは、任意の適切な構成で(たとえば、層の直線的なシーケンス(linear sequence)として)接続された、任意の適切な数(たとえば、2層、5層、または10層)の任意の適切なニューラルネットワーク層(たとえば、畳み込み層、全結合層、リカレント層(recurrent layer)、アテンション層など)を有することが可能である。
【0117】
システム100は、更新されたグラフ115のノードに関連するダイナミクス特徴116を定義するデータを予測エンジン160に提供することができる。予測エンジン160は、物理的環境の次の状態140を生成するために、グラフのノードに関連するダイナミクス特徴116を処理するように構成される。特に、各時間ステップにおいて、予測エンジン160は、更新されたグラフ115のノードによって表される各粒子に関して、次の時間ステップにおける粒子のそれぞれの位置を決定するために、更新されたグラフ114の各ノードに対応するダイナミクス特徴116を定義するデータと、物理的環境の現在の状態102を定義するデータとを処理することができる。予測エンジン160は、たとえば、次の時間ステップにおける粒子のそれぞれの速度を含む任意のその他の適切なデータを生成することもできる。したがって、現在の時間ステップにおいて、シミュレーションシステム100は、物理的環境の次の状態140を決定することができる。
【0118】
たとえば、各時間ステップtにおいて、デコーダ130は、更新されたグラフ115を定義するデータを処理し、更新されたグラフ115のノードによって表される各粒子iの加速度
【0119】
【0120】
の値を生成することができる。各時間ステップにおいて、各粒子の加速度の値は、その値を処理して次の時間ステップにおける各粒子の位置を予測することができる予測エンジン160に提供され得る。概して、各粒子の加速度
【0121】
【0122】
は、次のステップと現在のステップとの間の平均加速度として、たとえば、
【0123】
【0124】
のように定義されることが可能であり、
【0125】
【0126】
は、時間tにおける粒子の速度であり、Δtは、定数であり、明瞭にするために省略されている。したがって、各時間ステップにおいて、粒子iの加速度
【0127】
【0128】
、前の時間ステップにおける粒子iの位置
【0129】
【0130】
、および現在の時間ステップにおける粒子の位置
【0131】
【0132】
に基づいて、次の時間ステップ(たとえば、物理的環境の次の状態140)における粒子の位置が、予測エンジン160によって、以下のように決定され得る。
【0133】
【0134】
したがって、各時間ステップにおいて、シミュレーションシステム100は、物理的環境の現在の状態102を処理し、物理的環境の次の状態140を生成することができる。
【0135】
各時間ステップにおいて、システム100は、物理的環境の次の状態140を、次の時間ステップにおいて物理的環境の現在の状態102として提供することができる。システム100は、このプロセスを複数の時間ステップにわたって繰り返し、それによって、物理的環境の状態をシミュレーションする予測された状態の軌跡を生成することができる。シミュレーションは、様々な目的のいずれかのために使用され得る。一例においては、シミュレーションの視覚的表現が、(たとえば、
図10に示されるように)たとえば、ビデオとして生成され、シミュレーションシステム100のユーザに提供される場合がある。
【0136】
上述のように、シミュレーションシステム100は、粒子として表された物理的環境をシミュレーションするために使用され得る。しかし、一部の物理的環境は、メッシュ、たとえば、(たとえば、
図8に示されるように)環境に広がるメッシュ、または(たとえば、
図3および
図6Bに示されるように)環境内の1つもしくは複数の物体を表すメッシュとしてより適切に表され得る。そのようなシステムをシミュレーションするために、各時間ステップにおいて、シミュレーションシステム100は、物理的環境の現在の状態102を定義するデータを処理することであって、そのようなデータがメッシュを指定する、処理することと、メッシュに基づいてグラフ114を生成することと、何回かの更新の反復にわたってグラフ114を更新して更新されたグラフ115を生成することと、更新されたグラフ115に基づいて物理的環境の次の状態140を予測することとを行うことができる。このプロセスの様々な態様が、次により詳細に説明される。
【0137】
たとえば、連続場(continuous field)、変形可能な物質、および/または複雑な構造を含む物理的環境は、メッシュMt = (V, EM)によって表され得る。概して、「連続場」は、たとえば、領域全体で連続的に変化する物理的特質(たとえば、速度、圧力など)に関連する空間領域を指す。たとえば、速度場内の各空間的位置は、その空間的位置に関連する速度の特定の値を有することができる。
【0138】
概して、「メッシュ」は、複数のメッシュノードVおよびメッシュエッジE
Mを含むデータ構造を指し、各メッシュエッジE
Mは、メッシュノードのペアを接続する。メッシュは、を、特定の形状、たとえば、三角形形状、または四面体形状を有するより小さな要素(たとえば、セルまたはゾーン)への幾何学領域(たとえば、表面または空間)のテッセレーション(tessellation)を指定する不規則な(構造化されていない)グリッドを定義することができる。各メッシュノードは、物理的環境内のそれぞれの空間的位置に関連付けられ得る。一部の実装において、メッシュは、環境内の1つまたは複数の物体のそれぞれの表面を表すことができる。一部の実装において、メッシュは、たとえば、物理的環境が連続場、たとえば、速度場または圧力場を表す場合、物理的環境に広がる(たとえば、覆う)ことができる。物理的環境のメッシュ表現の例は、
図2を参照して下でより詳細に説明される。
【0139】
上述の粒子ベースの表現と同様に、メッシュの各メッシュノードは、メッシュノードに対応する環境内の位置における物理的環境の現在の状態を特徴付ける現在のメッシュノード特徴に関連付けられ得る。たとえば、流体力学または空気力学のシミュレーションなどの、連続場を持つ物理的環境のシミュレーションを含む実装において、各メッシュノードは、メッシュノードに対応する環境内の位置における流体粘度、流体密度、または任意のその他の適切な物理的側面を表し得る。
【0140】
別の例として、たとえば、構造力学シミュレーションなどの、物体を有する物理的環境のシミュレーションを含む実装において、各メッシュノードは、物体上の点を表すことができ、物体上の点を特徴付ける物体固有のメッシュノード特徴、たとえば、物体上のそれぞれの点の位置、点における圧力、点における張力、および任意のその他の適切な物理的側面と関連付けられ得る。さらに、各メッシュノードは、メッシュノードに対応する環境内の位置における流体密度、流体粘度、圧力、または張力のうちの1つまたは複数を含むメッシュノード特徴に追加的に関連付けられ得る。概して、メッシュ表現は、上述の物理系に限定されず、その他の種類の物理系も、メッシュによって表現され、シミュレーションシステム100を使用してシミュレーションされ得る。
【0141】
すべての実装においては、上述の粒子ベースの表現と同様に、各メッシュノードに関連するメッシュノード特徴が、1つまたは複数の以前の時間ステップの各々におけるメッシュノードのそれぞれの状態をさらに含み得る。
【0142】
上述のように、シミュレーションシステム100は、(たとえば、メッシュ、たとえば、Mt = (V, EM)によって表される)物理的環境の現在の状態102を定義するデータを処理し、物理的環境の次の状態140の予測を定義するデータを生成するために使用され得る。
【0143】
特に、各時間ステップにおいて、エンコーダ110は、メッシュMtに含まれる各メッシュノードVにグラフノードを割り振ることによってグラフ114を生成するために現在の状態102を処理することができる。さらに、メッシュエッジによって接続されるメッシュノードVの各ペアに関して、エンコーダ110は、グラフ114のノードの対応するペアの間の、メッシュ空間エッジEMと呼ばれるエッジをインスタンス化することができる。
【0144】
メッシュが物理的環境内の1つまたは複数の物体を表す実装において、エンコーダ110は、メッシュを定義するデータを処理し、ワールド空間Wにおいて(たとえば、物理的環境の座標系において)閾値未満の距離だけ離れているそれぞれの空間的位置を有するメッシュのメッシュノードVの各ペアを特定し、グラフ114のノードのそれぞれの対応するペアの間の、ワールド空間エッジE
Wと呼ばれるエッジをインスタンス化することができる。特に、エンコーダ110は、メッシュ空間エッジによって既に接続されていないグラフノードのペアの間のワールド空間エッジをインスタンス化するように構成される。例示的なワールド空間エッジおよびメッシュ空間エッジが、
図5Bに示される。
【0145】
言い換えると、エンコーダ110は、メッシュM
t = (V, E
M)を、ノードVを含み、ノードの一部のペアがメッシュ空間エッジE
Mによって接続され、ノードの一部のペアがワールド空間エッジE
Wによって接続される対応するグラフG = (V, E
M, E
W)に変換することができる。メッシュ空間エッジとワールド空間エッジとの両方によって物理的環境の現在の状態102を表すことは、たとえば、
図5Bに関連して示されたように、メッシュ空間において互いに相当に離れている(たとえば、複数のその他のメッシュノードおよびメッシュエッジによって隔てられている)が、ワールド空間においては互いに相当に近い(たとえば、物理的環境の座標系において近接した空間的位置を有する)メッシュノードのペアの間の相互作用をシステム100がシミュレーションすることを可能にする。特に、グラフにワールド空間エッジを含めることは、空間的に近接したグラフノードの間でより効率的なメッセージパッシングを可能にし、したがって、アップデータ120においてより少ない更新の反復(すなわち、メッセージパッシングステップ)を使用してより正確なシミュレーションを可能にし、したがって、シミュレーション中の計算リソースの消費を削減する。
【0146】
上述の粒子ベースの表現と同様に、グラフ114を生成することに加えて、システム100のエンコーダ110は、グラフ114のノードおよびエッジに関連するノード埋め込みおよびエッジ埋め込みをそれぞれ生成することができる。
【0147】
特に、各時間ステップにおいて、エンコーダ110のノード埋め込みサブネットワーク111は、グラフ114の各ノードに関連する特徴(たとえば、メッシュノード特徴)を処理し、グラフ114の各ノードに関するそれぞれの現在のノード埋め込みを生成することができる。物理的環境の現在の状態102を表すデータに加えて、ノード埋め込みサブネットワーク111への入力は、物理的環境の大域的特徴106、たとえば、物理的環境に加えられている力、物理的環境の重力定数、物理的環境の磁界、または任意のその他の適切な特徴、またはそれらの組合せも含み得る。各時間ステップにおいては、ノード埋め込みサブネットワーク111がノードの特徴を処理してノードに関する埋め込みを生成する前に、大域的特徴106が、グラフ114の各ノードに関連するノードの特徴に連結され得る。
【0148】
各時間ステップにおいて、グラフニューラルネットワーク150は、グラフ114の各エッジに関してエッジ埋め込みを生成することできる。たとえば、グラフ114の各メッシュ空間エッジEMに関して、グラフニューラルネットワーク150のメッシュ空間エッジ埋め込みサブネットワークが、メッシュ空間エッジEMによって接続されるグラフノードのペアに関連する特徴を処理し、メッシュ空間エッジに関するそれぞれの現在のエッジ埋め込みを生成することができる。特に、メッシュ空間エッジ埋め込みサブネットワークは、グラフのメッシュ空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置、グラフ内のメッシュ空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せに基づいて、グラフ114の各メッシュ空間エッジEMに関するエッジ埋め込みを生成することができる。
【0149】
同様に、各時間ステップにおいて、グラフ114の各ワールド空間エッジEWに関して、グラフニューラルネットワークのワールド空間エッジ埋め込みサブネットワークは、ワールド空間エッジEWによって接続されるグラフノードのペアに関連する特徴を処理し、ワールド空間エッジに関するそれぞれの現在のエッジ埋め込みを生成することができる。特に、ワールド空間エッジ埋め込みサブネットワークは、グラフのワールド空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置、グラフのワールド空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せに基づいて、グラフ114の各ワールド空間エッジEWに関するエッジ埋め込みを生成することができる。
【0150】
したがって、各時間ステップにおいて、エンコーダ110は、メッシュを処理し、関連するグラフノード埋め込み、メッシュ空間エッジ埋め込み、および一部の実装においてはワールド空間エッジ埋め込みとともに、グラフ114 G = (V, EM, EW)を生成することができる。
【0151】
グラフ114を定義するデータを生成した後、各時間ステップにおいて、シミュレーションシステム100は、グラフ114をアップデータ120に提供することができ、アップデータ120は、複数回の内部的な更新の反復にわたってグラフ114を更新して、時間ステップに関する最終的な更新されたグラフ115を生成することができる。上述のように、それぞれの更新の反復において、アップデータ120のノード更新サブネットワーク121は、ノードに関する更新されたノード埋め込みを生成するために、(i)ノードに関する現在のノード埋め込みと、(ii)ノードに接続されている各エッジに関するそれぞれの現在のエッジ埋め込みとを含む入力を処理することができる。
【0152】
グラフ114がメッシュ空間エッジおよびワールド空間エッジを含む実装において、アップデータ120のエッジ更新サブネットワーク122は、メッシュ空間エッジ更新サブネットワークおよびワールド空間エッジ更新サブネットワークを含み得る。それぞれの更新の反復において、メッシュ空間エッジ更新サブネットワークは、メッシュ空間エッジに関する更新されたエッジ埋め込みを生成するために、(i)メッシュ空間エッジに関する現在のエッジ埋め込みと、(ii)メッシュ空間エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理するように構成され得る。さらに、それぞれの更新の反復において、ワールド空間エッジ更新サブネットワークは、ワールド空間エッジに関する更新されたエッジ埋め込みを生成するために、(i)ワールド空間エッジに関する現在のエッジ埋め込みと、(ii)ワールド空間エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理するように構成され得る。
【0153】
たとえば、ノードiをノードjに接続するメッシュ空間エッジの更新されたメッシュ空間エッジ埋め込み
【0154】
【0155】
、ノードiをノードjに接続するワールド空間エッジの更新されたワールド空間エッジ埋め込み
【0156】
【0157】
、およびノードiの更新されたノード埋め込み
【0158】
【0159】
は、
【0160】
【0161】
として生成され得る。
【0162】
メッシュ空間エッジ更新サブネットワーク(fM)、ワールド空間エッジ更新サブネットワーク(fW)、およびノード更新サブネットワーク(fV)は、それらがそれらの説明された機能を実行することを可能にする任意の適切なニューラルネットワークアーキテクチャを有することができる。たとえば、それらは、任意の適切な構成で(たとえば、層の直線的なシーケンスとして)接続された任意の適切なニューラルネットワーク層(たとえば、畳み込み層、全結合層、リカレント層、アテンション層など)を含むことができ、単に特定の例として、それらは、残留接続をともなうMLPを使用してそれぞれ実装されてよい。
【0163】
場合によっては、メッセージパッシングの各更新は、メッセージパッシングブロックによって実装され得る。したがって、グラフニューラルネットワークは、それぞれがネットワークパラメータの別々のセットを持つL個の同一のメッセージパッシングブロックのセットとして実装され得る。つまり、メッセージパッシングブロックは、同一である、すなわち、同じニューラルネットワークアーキテクチャを有することができるが、それぞれがニューラルネットワークパラメータの別々のセットを持ち得る。各メッセージブロックが、式3によって定義されたメッシュ空間エッジ更新サブネットワーク、ワールド空間エッジ更新サブネットワーク、およびノード更新サブネットワーク、すなわち、メッシュ空間エッジ埋め込みを処理し、更新するメッシュ空間エッジ更新サブネットワークと、ワールド空間エッジ埋め込みを処理し、更新するワールド空間エッジ更新サブネットワークと、ノード埋め込みならびに更新されたメッシュ空間およびワールド空間エッジ埋め込みを処理し、更新するノード更新サブネットワークとを実装し得る。そして、メッセージパッシングブロックは、順に適用されることが可能である、すなわち、(現在の入力グラフを受け取る最初のブロックを除く)それぞれが、複数回の反復にわたってグラフを定義するデータを処理するために、前のブロックの出力に適用される。
【0164】
アップデータ120の最後の更新の反復は、時間ステップに関する最終的な更新されたグラフ115を表現するデータを生成する。各時間ステップにおいて、更新されたグラフ115を定義するデータは、デコーダ130に提供され得る。デコーダ130は、グラフ115の各ノードに関連するノード埋め込みを処理し、グラフ115のグラフノードに対応するメッシュノードのメッシュノード特徴の変化率を特徴付ける各ノードに関する1つまたは複数のダイナミクス特徴116を生成する。ダイナミクス特徴116は、更新されたグラフ115からの任意の適切なメッシュノード特徴、たとえば、位置、速度、運動量、密度、または任意のその他の適切な物理的側面の変化率を表し得る。
【0165】
各時間ステップにおいて、予測エンジン160は、たとえば、メッシュノード特徴の変化率を任意の適切な回数積分することによって、(i)現在の時間ステップにおけるメッシュノードのメッシュノード特徴と、(ii)メッシュノード特徴の変化率とに基づいて、次の時間ステップにおけるメッシュノード特徴を決定することができる。たとえば、1次系に関して、予測エンジン160は、次の時間ステップにおけるメッシュノードiの位置
【0166】
【0167】
を、現在の時間ステップにおけるメッシュノードiの位置
【0168】
【0169】
およびメッシュノードiに対応するダイナミクス特徴piに基づいて、
【0170】
【0171】
として決定することができる。同様に、2次系に関して、予測エンジン160は、次の時間ステップにおけるメッシュノードiの位置
【0172】
【0173】
を、現在の時間ステップにおけるメッシュノードiの位置
【0174】
【0175】
、前の時間ステップにおけるメッシュノードiの位置
【0176】
【0177】
、およびメッシュノードiに対応するダイナミクス特徴piに基づいて、
【0178】
【0179】
として決定することができる。したがって、次の時間ステップにおけるすべてのメッシュノードのメッシュノード特徴を決定することによって、シミュレーションシステム100は、物理的環境の次の状態140を決定することができる。
【0180】
訓練エンジンは、訓練データのセットに対して、たとえば、教師あり学習技術を使用することによって、グラフニューラルネットワーク150を訓練することができる。訓練データは、訓練例のセットを含むことが可能であり、各訓練例は、(i)グラフニューラルネットワーク150によって処理され得る訓練入力と、(ii)訓練入力を処理することによってグラフニューラルネットワーク150により生成されるべき目標出力とを指定し得る。訓練データは、たとえば、グラウンドトゥルース物理シミュレータ(たとえば、物理エンジン)によって、または任意のその他の適切な方法で、たとえば、捕捉された実世界のデータから生成され得る。たとえば、粒子ベースの実装において、各訓練例の訓練入力は、環境内の各粒子に関して、たとえば、時間tにおける環境内の粒子iの特徴を指定するベクトル
【0181】
【0182】
を含み得る。任意で、ノイズ、たとえば、ゼロ平均固定分散ランダムノイズ(zero mean fixed variance random noise)が、訓練入力に加えられることが可能であり、これは、推論中のロールアウトの安定性を向上させ得る。目標出力は、環境内の各粒子に関して、たとえば、時間tにおける粒子iの加速度
【0183】
【0184】
を含み得る。
【0185】
それぞれの訓練の反復において、訓練エンジンは、訓練データから1つまたは複数の訓練例のバッチをサンプリングし、それらの訓練例をグラフニューラルネットワーク150に提供することができ、グラフニューラルネットワーク150は、訓練例で指定された訓練入力を処理して対応する出力を生成することができる。訓練エンジンは、(i)訓練例によって指定された目標出力と、(ii)グラフニューラルネットワークによって生成された出力との間の類似性を測定する目的関数、たとえば、交差エントロピーまたは2乗誤差目的関数を評価することができる。特に、目的関数Lは、以下のように、予測された粒子ごとの加速度
【0186】
【0187】
に基づくことが可能であり、
【0188】
【0189】
dθは、グラフニューラルネットワークモデルであり、θは、グラフニューラルネットワーク150のパラメータ値を表す。訓練エンジンは、たとえば、誤差逆伝播技術を使用して目的関数の勾配を決定することができ、勾配を使用して、たとえば、任意の適切な勾配降下最適化アルゴリズム、たとえば、Adamを使用してグラフニューラルネットワーク150のパラメータ値を更新することができる。訓練エンジンは、グラフニューラルネットワーク150の訓練中に使用されない検証データのセットに対してグラフニューラルネットワークの性能測定値を決定することができる。メッシュベースの実装において、訓練エンジンは、上で説明されたのと同様の方法でグラフニューラルネットワーク150を訓練することができるが、訓練入力が、粒子の特徴の代わりにメッシュノード特徴を含むことができる。
【0190】
さらに、メッシュベースの実装において、訓練データは、たとえば、特定の種類の物理的環境に固有であるグラウンドトゥルースシミュレータを使用することによって生成され得る。したがって、グラフニューラルネットワーク150は、異なる種類の訓練データを使用することによって訓練されることが可能であり、各訓練データは、異なるグラウンドトゥルースシミュレータによって生成され、特定の種類の物理的環境に固有である。
【0191】
グラフニューラルネットワーク150の訓練後、システム100は、異なる種類の物理的環境の状態をシミュレーションするために使用され得る。たとえば、訓練中の粒子(またはメッシュノード)のサウンド(sound)による単一の時間ステップの予測から、システム100は、異なる種類の物理的環境、異なる初期条件、数千の時間ステップ、および少なくとも1桁多い粒子(またはメッシュノード)に効果的に汎化し得る。
【0192】
一部の実装において、シミュレーションシステム100は、シミュレーションの間に、シミュレーションされるメッシュの解像度を適応的に調整することができる。メッシュの「解像度」は、概して、物理的環境の領域をメッシュで表現するために使用されるメッシュノードおよび/またはメッシュエッジの数を指す。複数の時間ステップのうちの1つまたは複数に関して、システム100は、メッシュのどの領域が「より高い」解像度(たとえば、より多くのノードおよび/もしくはエッジ)または「より低い」解像度(たとえば、より少ないノードおよび/もしくはエッジ)を必要とするかを特定し、メッシュのノードおよび/またはエッジを所望の解像度に適応させることができる。例として、メッシュによって表される物理的環境が、流体と、流体と接触する固体の境界とを含む場合、システム100は、速度場の高い勾配が予想される壁境界の周辺のエリアを表すメッシュの領域の解像度を動的に上げることができる。適応的な解像度の例が、
図5A、
図6A、および
図8に示される。
【0193】
一例において、システム100は、サイジングフィールド(sizing field)の方法論に従ってメッシュの解像度を動的に調整することができる。より詳細には、メッシュの解像度を動的に調整するために、システム100は、3つの動作、すなわち、メッシュの1つまたは複数のエッジを分割すること、メッシュの1つまたは複数のエッジを切り詰めること、およびメッシュの1つまたは複数のエッジを転回する(flip)ことをメッシュに反復的に適用することができる。動作が、
図7に示される。
【0194】
第1のメッシュノードを第2のメッシュノードに接続するメッシュエッジを「分割する」は、メッシュエッジを(少なくとも)2つの新しいメッシュエッジおよび新しいメッシュノードによって置き換えることを指し得る。第1の新しいメッシュエッジは、第1のメッシュノードを新しいメッシュノードに接続することができ、第2の新しいメッシュエッジは、第2のメッシュノードを新しいメッシュノードに接続することができる。メッシュエッジが分割されるときは、新しいノードが作成される。新しいメッシュノードのメッシュノード特徴は、第1のメッシュノードおよび第2のメッシュノードのメッシュノード特徴を平均することによって決定される。より詳細には、システム100は、メッシュノードiをメッシュノードjに接続するメッシュエッジuijが、
【0195】
【0196】
であるときに分割されるべきであると判定し、Sijは、ノードiおよびjに対応する平均サイジングフィールドテンソルであり、より詳細には、
【0197】
【0198】
として定義される。言い換えると、システム100は、上記式5で定義された条件がメッシュエッジに関して真であると判定するとき、メッシュエッジが無効であり、分割されるべきであると判定する。ノードのサイジングフィールドテンソルSは、正方行列、たとえば、2×2行列であることが可能である。
【0199】
第1のメッシュノードと第2のメッシュノードとを接続するメッシュエッジを「切り詰める」は、第1のメッシュノードが第2のメッシュノードの代わりにメッシュの異なるメッシュノードにメッシュエッジによって接続するように、第2のメッシュノードを削除することを指し得る。システム100は、切り詰める動作がいかなる新しい無効なメッシュエッジも作成しない、たとえば、式6で定義された関係を満たすメッシュエッジを作成しない場合、メッシュエッジが切り詰められるべきであると判定することができる。
【0200】
メッシュノードのペアを接続するメッシュエッジを「転回する」は、メッシュエッジを削除し、メッシュのメッシュノードの第2の異なるペアの間に新しいメッシュエッジをインスタンス化することを指すことが可能であり、メッシュノードの第2のペアは、当初はメッシュエッジによって接続されておらず、新しいメッシュエッジは、たとえば、元のメッシュエッジに対して向きが実質的に垂直であることが可能である。システム100は、以下の基準が満たされる場合、メッシュエッジが転回されるべきであると判定することができ、
【0201】
【0202】
SAは、ノードi、j、k、およびlに対応する平均サイジングフィールドテンソルである。
【0203】
上述のように、システム100は、メッシュの解像度を動的に調整するために、上述の動作を反復的に実行することができる。たとえば、複数の時間ステップのうちの1つまたは複数に関して、システム100は、式7で定義された関係を満たすすべての可能なメッシュエッジを特定し、それらを分割することができる。次に、システム100は、式9で定義された関係を満たすすべての可能なメッシュエッジを特定し、それらを転回することができる。次に、システム100は、式7の関係を満たすすべての可能なメッシュエッジを特定し、それらを切り詰めることができる。最後に、システム100は、式9を満たすすべての可能なメッシュエッジを特定し、それらを転回することができる。このようにして、システム100は、通常のシミュレーションシステムよりも少ない計算ソースを消費しながら、シミュレーションの品質を最適化するためにメッシュの解像度を動的に調整することができる。集合的に、動作は、リメッシャ(re-mesher)Rによって実行されるものとして言及され得る。リメッシャRは、ドメイン非依存であることが可能であり、たとえば、リメッシャが適用されるメッシュによって表現される物理的環境の種類に依存しないことが可能である。
【0204】
一部の実装において、システム100は、メッシュの各メッシュノードに関する(たとえば、サイジングフィールドテンソルSを含む)1つまたは複数の再メッシュパラメータのそれぞれのセットを決定し、再メッシュパラメータに基づいてメッシュの解像度を適応させることができる。各時間ステップにおいて、システム100は、再メッシュニューラルネットワークと呼ばれるニューラルネットワークを使用して、更新されたグラフ115(たとえば、アップデータ120の最後の更新の反復によって生成されたグラフ)のグラフノードに関するそれぞれの現在のノード埋め込みを処理することによって、メッシュのメッシュノードに関する再メッシュパラメータを決定することができ、グラフノードは、メッシュノードに対応する。再メッシュニューラルネットワークは、それがその説明された機能、たとえば、メッシュの対応するメッシュノードに関する1つまたは複数の再メッシュパラメータを生成するためにグラフノードに関するノード埋め込みを処理することを実行することを可能にする任意の適切なニューラルネットワークアーキテクチャを有することができる。特に、再メッシュニューラルネットワークは、任意の適切な構成で(たとえば、層の直線的なシーケンスとして)接続された、任意の適切な数(たとえば、2層、5層、または10層)の任意の適切なニューラルネットワーク層(たとえば、全結合層または畳み込み層)を含み得る。
【0205】
したがって、各時間ステップにおいて、システム100は、物理的環境の次の状態140を表すデータを生成し、さらに、メッシュの各メッシュノードに関する再メッシュパラメータのセットを生成することができる。再メッシュパラメータに基づいて、ドメインに依存しないリメッシャRを使用することによって、システム100は、次の時間ステップにおけるメッシュの解像度を動的に調整することができる。たとえば、システム100は、時間ステップt + 1における適応されたメッシュM't+1を、適応されていない時間ステップt + 1における元のメッシュMt+1、時間ステップt + 1における再メッシュパラメータSt+1、およびドメインに依存しないリメッシャRに基づいて、
M't+1 = R(Mt+1, St+1) (11)
として決定することができる。
【0206】
システム100は、再メッシュニューラルネットワークを、グラフニューラルネットワーク150と共同で、たとえば、訓練データのセットで教師あり学習技術を使用して訓練することができる。訓練データは、たとえば、メッシュの各メッシュノードに関するグラウンドトゥルースサイジングフィールドテンソルを生成することができるドメイン固有のリメッシャによって生成され得る。ドメイン固有のリメッシャは、ドメイン固有の手動で定義された規則に従って、サイジングフィールドを生成することができる。たとえば、表面のシミュレーションに関して、ドメイン固有のリメッシャは、曲率の高いエリアのメッシュを改良して滑らかな曲げのダイナミクスを保証するための再メッシュパラメータを生成するように構成されてよい。別の例として、数値流体力学シミュレーションにおいて、ドメイン固有のリメッシャは、速度場の高い勾配が予想される壁境界の周辺のメッシュを改良するための再メッシュパラメータを生成するように構成されてよい。システム100は、(i)再メッシュニューラルネットワークによってメッシュノードに関して生成された再メッシュパラメータと、(ii)ドメイン固有のリメッシャによって生成された「目標」再メッシュパラメータとの間の誤差(たとえば、L2誤差)を測定する目的関数を最適化するために再メッシュニューラルネットワークを訓練することができる。
【0207】
ドメイン固有のリメッシャを使用して生成された訓練データで再メッシュニューラルネットワークを訓練することによって、システムは、再メッシュニューラルネットワークが、ドメイン固有のリメッシャに符号化された根本的な再メッシュの原理を暗黙的に学習し、それらの原理をこれまで見られなかった新しいドメインに汎化することを可能にする。学習された適応的な再メッシュは、上述のように、システム100がより少ない計算リソースを使用してより正確なシミュレーションを生成することを可能にし得る。概して、ノードに関する再メッシュパラメータとは、動的な再メッシュの実施を可能にする任意の適切なパラメータを指し得る。(上述の)サイジングフィールドテンソルは、再メッシュパラメータの一例である。その他の可能な再メッシュパラメータ、たとえば、Martin Wickeら、「Dynamic local remeshing for elastoplastic simulation」、ACM Trans. Graph.、29(4)、2010に関連して説明される再メッシュパラメータも、使用され得る。
【0208】
訓練の後、各時間ステップにおいて、システム100は、物理的環境の現在の状態を表すメッシュを含む入力を処理し、時間ステップに関するメッシュの各メッシュノードに関する再メッシュパラメータのセットを生成することができる。
【0209】
図2は、メッシュを表すグラフに対して物理的環境シミュレーションシステム(たとえば、
図1のシステム100)のエンコーダモジュール、アップデータモジュール、およびデコーダモジュールによって実行される動作を示す図である。特に、エンコーダ210は、物理的環境の現在の状態の表現を生成し(たとえば、メッシュをグラフに変換し)、アップデータ220は、メッセージパッシングの複数のステップを実行し(たとえば、グラフを更新し)、デコーダ230は、グラフのノードに対応するダイナミクス特徴を抽出する。
【0210】
グラフは、丸(250、255)によって表されるノードのセットと、線(240、245)によって表されるエッジのセットとを含み、各エッジは、2つのノードを接続する。グラフ200は、物理的環境の簡略化された表現と考えられてよい(環境を表す実際のグラフは、
図2に描かれているよりもはるかに多くのノードおよびエッジを有する場合がある)。
【0211】
この図において、物理的環境は、第1の物体および第2の物体を含み、物体は、互いに相互作用し得る(たとえば、衝突し得る)。第1の物体は、白丸のセットとして描かれるノード250によって表され、第2の物体は、斜線付きの丸255のセットとして描かれるノード255によって表される。第1の物体に対応するノード250は、実線として描かれるメッシュ空間エッジ240(EM)によって接続されている。第2の物体に対応するノード255も、メッシュ空間エッジ240(EM)によって接続されている。メッシュ空間エッジに加えて、グラフは、破線として描かれるワールド空間エッジ245(EW)をさらに含む。ワールド空間エッジ245は、第1の物体を表すノード250を第2の物体を表すノード255と接続する。特に、ワールド空間エッジ245は、内部的なメッシュ空間の相互作用によって捕捉されない、たとえば、衝突などの外部的なダイナミクスをシミュレーションすることを可能にし得る。
【0212】
上述のように、エンコーダ210は、物理的環境の現在の状態の表現を生成する。この図において、エンコーダ210は、2つの物体を表し、ノード、メッシュ空間エッジ、およびワールド空間エッジを含むグラフを生成する。アップデータ220は、グラフのノードおよびエッジの間のメッセージパッシングを実行する。特に、上述のように、アップデータ220は、隣接するノードおよびエッジのノード埋め込みおよびエッジ埋め込みに基づいて、ノード埋め込みおよびエッジ埋め込みをそれぞれ更新する。たとえば、
図2に示されるように、ノード埋め込みは、隣接するノードの各々のノード埋め込みと、ノードをすべての隣接するノードに接続するすべてのエッジのエッジ埋め込みとに基づいて更新される。最後の更新の反復の後、アップデータ220は、更新されたグラフを生成する。
【0213】
デコーダ230は、更新されたグラフを処理し、グラフの各ノードのダイナミクス特徴260を抽出する。たとえば、この図において、ダイナミクス特徴260は、グラフのノードによって表される各メッシュノードに対応する加速度であることが可能である。加速度は、たとえば、第2の物体との第1の物体の衝突の結果であり得る。ダイナミクス特徴から、シミュレーションシステム100は、物理的環境の次の状態、たとえば、第1の物体および第2の物体を表すメッシュノードの位置を決定することができる。
【0214】
図3は、物理的環境シミュレーションシステム(たとえば、
図1のシステム100)によって生成された物理的環境の例示的なシミュレーション300を示す。この図において、物理的環境は、メッシュによって表される。特に、シミュレーション100を生成するために使用されるエンコーダ、アップデータ、およびデコーダの動作は、上で
図2においてメッシュのグラフ表現上に示されている。
【0215】
図4は、物理的環境の状態シミュレーションするための例示的なプロセス400の流れ図である。便宜上、プロセス400は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた物理的環境シミュレーションシステム、たとえば、
図1のシミュレーションシステム100が、プロセス400を実行し得る。
【0216】
システムは、現在の時間ステップにおける物理的環境の状態を定義するデータを取得する(402)。一部の実装において、現在の時間ステップにおける物理的環境の状態を定義するデータは、現在の時間ステップにおける物理的環境内の複数の粒子の各々のそれぞれの特徴を含む。現在の時間ステップにおける物理的環境の状態を表すグラフの各ノードは、たとえば、流体、剛体、または変形可能な物質に含まれるそれぞれの粒子に対応し得る。一部の実装において、複数の粒子の各々に関して、現在の時間ステップにおける粒子の特徴は、現在の時間ステップにおける粒子の状態(たとえば、位置、速度、加速度、および/または物質の特性)を含む。現在の時間ステップにおける粒子の状態は、1つまたは複数の以前の時間ステップの各々における粒子のそれぞれの状態をさらに含み得る。
【0217】
一部の実装において、現在の時間ステップにおける物理的環境の状態を定義するデータは、複数のメッシュノードおよび複数のメッシュエッジを含むメッシュを定義するデータをさらに含む。そのような実装において、現在の時間ステップにおける物理的環境の状態を表すグラフの各ノードは、それぞれのメッシュノードに対応し得る。メッシュは、たとえば、物理的環境に広がる、および/または物理的環境内の1つもしくは複数の物体を表現することができる。各メッシュノードは、それぞれのメッシュノード特徴に関連付けられ得る。
【0218】
たとえば、各メッシュノードに関して、メッシュノード特徴は、たとえば、現在の時間ステップにおけるメッシュの座標系内のメッシュノードの位置を表す位置座標、現在の時間ステップにおける物理的環境の座標系内のメッシュノードの位置を表す位置座標、またはそれら両方を含む、現在の時間ステップにおけるメッシュノードの状態を含み得る。別の例において、各メッシュノードに関して、メッシュノード特徴は、現在の時間ステップにおけるメッシュノードに対応する環境内の位置の流体密度、流体粘度、圧力、または張力のうちの1つまたは複数をさらに含み得る。さらに別の例において、メッシュノードに関連するメッシュノード特徴は、1つまたは複数の以前の時間ステップの各々におけるメッシュノードのそれぞれの状態をさらに含み得る。
【0219】
システムは、現在の時間ステップにおける物理的環境の状態の表現を生成する(404)。表現は、たとえば、それぞれがそれぞれの現在のノード埋め込みに関連付けられる複数のノードと、それぞれがそれぞれの現在のエッジ埋め込みに関連付けられる複数のエッジとを含むグラフを表すデータであることが可能である。グラフの各エッジは、グラフのノードのそれぞれのペアを接続することができる。
【0220】
現在の時間ステップにおける物理的環境の状態の表現を生成することは、グラフの各ノードに関するそれぞれの現在のノード埋め込みを生成することを含み得る。たとえば、システムは、ノードに関する現在のノード埋め込みを生成するために、グラフニューラルネットワークのノード埋め込みサブネットワークを使用して、ノードに対応する粒子の特徴のうちの1つまたは複数を含む入力を処理することができる。一部の実装において、ノード埋め込みサブネットワークへの入力は、物理的環境の1つまたは複数の大域的特徴、たとえば、物理的環境に加えられている力、物理的環境の重力定数、物理的環境の磁界、またはそれらの組合せをさらに含む。
【0221】
現在の時間ステップにおける物理的環境の状態の表現を生成することは、閾値未満の距離だけ離れたそれぞれの位置を有する物理的環境内の粒子の各ペアを特定することと、粒子のそれぞれの特定されたペアに関して、グラフのノードの対応するペアがエッジによって接続されると決定することとをさらに含み得る。グラフの各エッジに関する現在のエッジ埋め込みは、たとえば、予め定義された埋め込みであることが可能である。
【0222】
一部の実装において、現在の時間ステップにおける物理的環境の状態の表現を生成することは、グラフの各エッジに関するそれぞれの現在のエッジ埋め込みを生成することをさらに含み得る。たとえば、グラフの各エッジに関して、システムは、エッジに関する現在のエッジ埋め込みを生成するために、グラフニューラルネットワークのエッジ埋め込みサブネットワークを使用して、エッジによって接続されたノードに対応する粒子のそれぞれの位置、エッジによって接続されたノードに対応する粒子のそれぞれの位置の間の差、エッジによって接続されたノードに対応する粒子のそれぞれの位置の間の差の大きさ、またはそれらの組合せを含む入力を処理することができる。
【0223】
現在の時間ステップにおける物理的環境の状態を定義するデータがメッシュを定義するデータをさらに含む実装において、グラフの各ノードに関するそれぞれの現在のノード埋め込みを生成することを含む、現在の時間ステップにおける物理的環境の状態の表現を生成することは、グラフの各ノードに関して、グラフのノードに関する現在のノード埋め込みを生成するために、グラフニューラルネットワークのノード埋め込みサブネットワークを使用して、グラフのノードに対応するメッシュノードの特徴のうちの1つまたは複数を含む入力を処理することをさらに含み得る。
【0224】
そのような実装において、グラフは、複数のメッシュ空間エッジおよび複数のワールド空間エッジをさらに含み得る。そのような実装において、現在の時間ステップにおける物理的環境の状態の表現を生成することは、メッシュのエッジによって接続されているメッシュノードの各ペアに関して、グラフノードの対応するペアがグラフにおいてメッシュ空間エッジによって接続されると決定することと、物理的環境の座標系において閾値未満の距離だけ離れているそれぞれの位置を有するメッシュノードの各ペアに関して、グラフノードの対応するペアがグラフにおいてワールド空間エッジによって接続されると決定することとを含む。システムは、グラフの各エッジに関するそれぞれの現在のエッジ埋め込みを生成することができ、グラフの各メッシュ空間エッジに関して、メッシュ空間エッジに関する現在のエッジ埋め込みを生成するために、グラフニューラルネットワークのメッシュ空間エッジ埋め込みサブネットワークを使用して、グラフのメッシュ空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置、グラフのメッシュ空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せを含む入力を処理することを含む。
【0225】
システムは、グラフの各ワールド空間エッジに関して、ワールド空間エッジに関する現在のエッジ埋め込みを生成するために、グラフニューラルネットワークのワールド空間エッジ埋め込みサブネットワークを使用して、グラフのワールド空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置、グラフのワールド空間エッジによって接続されたグラフノードに対応するメッシュノードのそれぞれの位置の間の差を特徴付けるデータ、またはそれらの組合せを含む入力を処理することができる。
【0226】
システムは、1または複数の回数の更新の反復の各々においてグラフを更新する(406)。グラフを更新することは、それぞれの更新の反復において、グラフの各ノードの現在のノード埋め込みおよびグラフの各エッジの現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用して、グラフを定義するデータを処理することを含み得る。たとえば、グラフの各ノードに関して、システムは、ノードに関する更新されたノード埋め込みを生成するために、グラフニューラルネットワークのノード更新サブネットワークを使用して、(i)ノードに関する現在のノード埋め込みと、(ii)ノードに接続されている各エッジに関するそれぞれの現在のエッジ埋め込みとを含む入力を処理することができる。別の例として、システムは、エッジに関する更新されたエッジ埋め込みを生成するために、グラフニューラルネットワークのエッジ更新サブネットワークを使用して、(i)エッジに関する現在のエッジ埋め込みと、(ii)エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理することができる。
【0227】
メッシュを含む実装では、それぞれの更新の反復において、グラフの各エッジの現在のエッジ埋め込みを更新するために、グラフニューラルネットワークを使用してグラフを定義するデータを処理することは、グラフの各メッシュ空間エッジに関して、メッシュ空間エッジに関する更新されたエッジ埋め込みを生成するために、グラフニューラルネットワークのメッシュ空間エッジ更新サブネットワークを使用して、(i)メッシュ空間エッジに関する現在のエッジ埋め込みと、(ii)メッシュ空間エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理することを含み得る。さらに、グラフの各ワールド空間エッジに関して、システムは、ワールド空間エッジに関する更新されたエッジ埋め込みを生成するために、グラフニューラルネットワークのワールド空間エッジ更新サブネットワークを使用して、(i)ワールド空間エッジに関する現在のエッジ埋め込みと、(ii)ワールド空間エッジによって接続された各ノードに関するそれぞれの現在のノード埋め込みとを含む入力を処理することができる。
【0228】
更新後、システムは、グラフの各ノードに対応するそれぞれのダイナミクス特徴を生成するために、グラフの各ノードに関するそれぞれの現在のノード埋め込みを処理する(408)。たとえば、各ノードに関して、システムは、ノードに関するそれぞれのダイナミクス特徴を生成するために、グラフニューラルネットワークのデコーダサブネットワークを使用して、ノードに関する現在のノード埋め込みを処理することができ、ダイナミクス特徴は、ノードに対応する粒子の位置の変化率(たとえば、加速度)を特徴付ける。
【0229】
メッシュを含む実装において、グラフの各ノードに対応するそれぞれのダイナミクス特徴を生成するために、グラフの各ノードに関するそれぞれの現在のノード埋め込みを処理することは、各グラフノードに関して、グラフノードに関するそれぞれのダイナミクス特徴を生成するために、グラフニューラルネットワークのデコーダサブネットワークを使用してグラフノードに関する現在のノード埋め込みを処理することを含むことが可能であり、ダイナミクス特徴は、グラフノードに対応するメッシュノードのメッシュノード特徴の変化率を特徴付ける。
【0230】
システムは、(i)グラフのノードに対応するダイナミクス特徴と、(ii)現在の時間ステップにおける物理的環境の状態とに基づいて、次の時間ステップにおける物理的環境の状態を決定する(410)。たとえば、各粒子に関して、システムは、(i)現在の時間ステップにおける粒子の位置と、(ii)粒子に対応するノードに関するダイナミクス特徴とに基づいて、次の時間ステップにおける粒子のそれぞれの位置を決定することができる。
【0231】
メッシュを含む実装において、(i)グラフのノードに対応するダイナミクス特徴と、(ii)現在の時間ステップにおける物理的環境の状態とに基づいて、次の時間ステップにおける物理的環境の状態を決定することは、各メッシュノードに関して、(i)現在の時間ステップにおけるメッシュノードのメッシュノード特徴と、(ii)メッシュノード特徴の変更率とに基づいて、次の時間ステップにおけるメッシュノードのメッシュノード特徴を決定することを含み得る。
【0232】
さらに、メッシュを含む実装において、システムは、1つまたは複数の時間ステップに関して、メッシュの各メッシュノードに関する1つまたは複数の再メッシュパラメータのそれぞれのセットを決定し、たとえば、メッシュの1つもしくは複数のエッジを分割すること、メッシュの1つもしくは複数のエッジを切り詰めること、またはその両方によって再メッシュパラメータに基づいてメッシュの解像度を適応させることができる。そのような実装において、メッシュの各メッシュノードに関する1つまたは複数の再メッシュパラメータのそれぞれのセットを決定することは、更新の後、グラフノードに対応するメッシュノードに関するそれぞれの再メッシュパラメータを生成するために、再メッシュニューラルネットワークを使用して各グラフノードに関するそれぞれの現在のノード埋め込みを処理することを含み得る。
【0233】
一部の実装において、システムは、再メッシュパラメータに基づいて、分割されるべきメッシュの1つまたは複数のメッシュエッジを特定することができる。これは、1つまたは複数のメッシュエッジに関して、メッシュエッジに接続されたメッシュノードに関する再メッシュパラメータを使用してメッシュエッジの有向エッジ長を決定することと、メッシュエッジの有向エッジ長が閾値を超えるという判定に応じて、メッシュエッジが分割されるべきであると判定することとを含み得る。システムは、再メッシュパラメータに基づいて、切り詰められるべきメッシュの1つまたは複数のメッシュエッジを特定することもできる。これは、1つまたは複数のメッシュエッジに関して、再メッシュパラメータを使用して、メッシュエッジを切り詰めることによって作成される新しいメッシュエッジの有向エッジ長を決定することと、新しいメッシュエッジの有向エッジ長が閾値を超えないという判定に応じて、メッシュエッジが切り詰められるべきであると判定することとを含み得る。
【0234】
図5Aは、例示的な規則的メッシュおよび例示的な適応的メッシュを示す。適応的メッシュは、上述のように物理的環境シミュレーションシステム(たとえば、
図1のシステム100)によって生成され得る。適応的な再メッシュのプロセスは、同じ数のメッシュノードを持つ規則的メッシュよりも著しく正確なシミュレーションを可能にし得る。
【0235】
図5Bは、例示的なワールド空間エッジおよびメッシュ空間エッジを示す。特に、メッシュ空間内で互いに相当に遠く配置されている2つのノードが、メッシュ空間と比較されたとき、ワールド空間内では互いに相当に近く配置され得る。そのようなノードは、ワールド空間エッジによって接続され得る。
【0236】
図6Aは、グラウンドトゥルースおよびグリッドベースのシミュレーションと比較された例示的な適応的再メッシュシミュレーションを示す。(たとえば、
図5Aを参照して上で説明された)適応的な再メッシュは、グリッドベースのシミュレーションよりもグラウンドトゥルースに相当に近いシミュレーションを生成することができる。
【0237】
図6Bは、物理的環境シミュレーションシステム(たとえば、
図1のシステム100)によって生成された例示的な汎化されたシミュレーションを示す。システムは、約2,000個のメッシュノードを含む物理的環境の表現で訓練される。訓練後、システムは、大幅に大きく、より複雑な環境、たとえば、20,000個以上のメッシュノードを使用して表される環境にスケールアップされ得る。
【0238】
図7は、適応的な再メッシュにおいて使用される例示的な動作を示す。上は、例示的な分割動作を示し、真ん中は、例示的な転回動作を示し、下は、例示的な切り詰め動作を示す。
【0239】
図8は、適応的な再メッシュによる例示的な空気力学のシミュレーションを示す。特に、シミュレーション領域全体(左側のパネル)が、依然としてメッシュによって適切に表現され得るが、翼端の表現(右側のパネル)は、ミリメートル未満の詳細を含む。
【0240】
図9は、物理的環境シミュレーションシステムによって生成された例示的なシミュレーションを示し、シミュレーションされている物理的環境は、粒子の集まりによって表される。
図1を参照して上で説明されたように、シミュレーションシステムは、エンコーダモジュール、アップデータモジュール(たとえば、
図9のプロセッサ)、およびデコーダモジュールを含み得る。各時間ステップにおいて、エンコーダモジュールは、(たとえば、粒子の集まりによって表される)物理的環境の現在の状態を処理し、グラフを生成することができる。各時間ステップにおいて、アップデータモジュールは、更新されたグラフを生成するために、複数回の内部的な更新の反復にわたってグラフを更新することができる。各時間ステップにおいて、デコーダは、更新されたグラフを処理し、更新されたグラフの各ノードに関連するダイナミクス特徴を抽出することができる。ダイナミクス特徴に基づいて、システムは、物理的環境の次の状態を決定することができる。
【0241】
図10は、異なる種類の物質に関して物理的環境シミュレーションシステムによって生成された例示的なシミュレーションを示す。この場合、環境の各々は、粒子の集まりによって表される。物質は、水、どろどろ(goop)(すなわち、粘性があり、塑性変形可能な物質)、および砂を含む。
【0242】
上述のシステムおよび方法の実装の1つの利点は、それらがハードウェアアクセラレーションのために構成され得ることである。そのような実装において、方法は、1つまたは複数のコンピュータを含み、1つまたは複数のハードウェアアクセラレータユニット、たとえば、1つまたは複数のGPU(グラフィックス処理ユニット)またはTPU(テンソル処理ユニット: Tensor Processing Unit)を含むデータ処理装置によって実行される。そのような実装は、L個のメッセージパッシングブロックを含むプロセッサシステムを使用してグラフを更新することを含む、1または複数の回数の更新の反復の各々においてグラフを更新することを含み、各メッセージパッシングブロックは、同じニューラルネットワークアーキテクチャおよびニューラルネットワークパラメータの別々のセットを有することができる。方法は、複数回の反復にわたってグラフを定義するデータを処理するためにメッセージパッシングブロックを順に適用することと、グラフを定義するデータを処理するためにメッセージパッシングブロックを順に適用するために1つまたは複数のハードウェアアクセラレータを使用することとをさらに含み得る。一部の実装において、処理は、メッセージパッシングブロックを使用して実行され、すなわち、プロセッサシステムは、ハードウェアアクセラレータ上に分散される。したがって、ハードウェアアクセラレーションを利用することができない一部の通常の手法とは異なり、ハードウェアアクセラレータユニットを使用する実装のために特に適応されるシミュレーション方法が提供される。
【0243】
システムは、測定された実世界のデータに基づいて物理量を予測するために使用され得る。したがって、上述のシステムおよび方法の一部の実装において、物理的環境は、現実の物理的物体を含む実世界環境を含む。そのとき、現在の時間ステップにおける物理的環境の状態を定義するデータを取得することは、物理的物体から、物理的物体の形状の2Dまたは3D表現を定義する物体データを取得することを含んでよい。たとえば、物体の画像が、深度カメラなどのカメラによってキャプチャされてよい。それから、方法は、実世界環境との物理的物体の相互作用を定義する相互作用データを入力することを含んでよい。たとえば、相互作用データは、物理的物体と相互作用し、物理的物体を変形させる場合があるアクチュエータなどの第2の物理的物体の形状を定義してよく、または物理的物体に加えられる力を定義してよく、または物理的物体がさらされる速度、運動量、密度、もしくは圧力場などの場を定義してよい。いくつかのより詳細な例が、下で与えられる。相互作用データは、実世界環境から取得されてよいが、必ず実世界環境から取得されるとは限らない。たとえば、相互作用データは、あるときは実世界環境から取得されるが、別のときは取得されない場合がある。
【0244】
次に、方法は、物体データおよび相互作用データを使用して、現在の、たとえば、最初の時間ステップにおける物理的環境の状態の表現を生成してよい。それから、方法は、i)物理的物体の形状の更新された2Dまたは3D表現を定義する更新された物体データと、ii)物理的物体上の応力の2Dまたは3D表現を定義する応力データと、iii)物体が埋め込まれている流体内の速度、運動量、密度、または圧力場を定義するデータとのうちの1つまたは複数を決定することによって、次の時間ステップにおける物理的環境の状態を決定してよい。
【0245】
たとえば、実装において、メッシュノード特徴は、メッシュノードが物体の一部であるか否かを定義するメッシュノード特徴などのノードの種類の特徴、たとえば、ノードの種類を示すワンホットベクトルを含む場合がある。ノードの種類の特徴は、境界の1つまたは複数の種類、たとえば、メッシュノードが物理的物体の一部であるのかまたは物理的物体の境界であるのか、メッシュノードが別の物理的物体、たとえば、アクチュエータのものであるのかまたは別の物理的物体の境界であるのか、メッシュノードが流体ノード、すなわち、物理的物体が埋め込まれている流体の一部であるかどうか、メッシュノードが、壁、または障害物、または流入物(inflow)、または流出物(outflow)の境界などの境界を定義するかどうか、メッシュノードが固定点、たとえば、物体の取り付けの固定点を定義するかどうかのうちの1つまたは複数を示す場合がある。そのとき、物体データを使用して物理的環境の状態の表現を生成することは、各メッシュノードのモードの種類の特徴に値を割り振ることを含んでよい。
【0246】
相互作用データは、物理的物体の一部を定義しないメッシュノードに値を割り振るため、たとえば、物体が埋め込まれている流体内の速度、運動量、密度、もしくは圧力場に値を割り振るため、または第2の物理的物体の初期位置、もしくは加えられた力に値を割り振るために使用される場合がある。アクチュエータなどの第2の物理的物体の場合、シミュレーションされるのではなく、ノードのダイナミクス特徴が、たとえば、次のステップのワールド空間の速度
【0247】
【0248】
を入力として使用して、第2の物理的物体の動きを定義するために更新されてよい。
【0249】
単なる例として、物理的物体が力、アクチュエータ、または流体の流れと相互作用する場合、更新された物体データは、現在の(初期の)時間よりも後の時間における物理的物体の形状の表現、および/または物体上の応力もしくは圧力の表現、および/または物理的物体との相互作用から生じる流体の流れの表現を定義する場合がある。
【0250】
上述のシステムおよび方法の一部の実装においては、前述のように、物理的環境は、物理的物体を含む実世界環境を含み、次の時間ステップにおける物理的環境の状態を決定することは、1つまたは複数の次の時間ステップにおける物理的物体の形状の表現を決定することを含む。そのとき、方法は、シミュレーションを検証するために、実世界環境内の物理的物体の形状または動きを形状の表現と比較することも含んでよい。たとえば、形状が無秩序に発展する一部の場合、実世界環境内の物理的物体の形状または動きによって定義されるグラウンドトゥルースとのシミュレーションの視覚的類似性を推定することによってシミュレーションが正確かどうかを検証するために、比較が視覚的に行われてよい。さらにまたはその代わりに、そのような比較は、実世界環境内の物理的物体およびシミュレーションを表す統計を計算し、比較することによって行われ得る。
【0251】
上述のシステムおよび方法は、微分可能(differentiable)であり、設計の最適化のために使用されてよい。たとえば、前述のように、現在の時間における物理的環境の状態を定義するデータは、物体の形状を表すデータを含んでよく、次の時間ステップにおける物理的環境の状態を決定することは、次の時間ステップにおける物体の形状の表現を決定することを含んでよい。そのとき、物体の形状を設計する方法は、目的関数を最適化する、たとえば、目的関数によって定義される損失を最小化する物体の形状を決定するために、物理的物体の形状を表すデータを調整するために、(微分可能な)グラフニューラルネットワークを通して目的関数の勾配を逆伝播させることを含んでよい。目的関数は、物体の1つまたは複数の設計基準に従って選択されてよく、たとえば、物体内の応力を最小化するために、目的関数は、たとえば、物理的環境の状態を定義するデータに力または変形の表現を含めることによって、力または変形にさらされたときの物体内の応力の測定値となる場合がある。プロセスは、設計された形状、すなわち、目的関数を最適化する形状を持つ物理的物体を作ることを含んでよい。物理的物体は、たとえば、機械的な構造の部分のためのものである場合がある。
【0252】
上述のシステムおよび方法は、実世界の制御、特に、最適制御タスクのため、たとえば、ロボットが変形可能な物体を操作するのを支援するために使用されてもよい。したがって、前述のように、物理的環境は、物理的物体、たとえば、ピックアップされるまたは操作される物体を含む実世界環境を含む場合がある。次の時間ステップにおける物理的環境の状態を決定することは、たとえば、物体の画像をキャプチャすることによって物理的物体の形状または構成の表現を決定することを含む。次の時間ステップにおける物理的環境の状態を決定することは、たとえば、力または変形を、たとえば、ロボットのアクチュエータから受けたときの物理的物体の形状または構成の予測された表現を決定することを含んでよい。方法は、予測された表現と物理的物体の目標位置、形状、または構成との間の差に依存する目的関数を最適化するようにロボットを制御することによって、物理的物体の目標位置、形状、または構成に向かって、たとえば、アクチュエータを使用して物理的物体を操作するために、予測された表現を使用してロボットを制御することをさらに含んでよい。ロボットを制御することは、物理的物体を操作してタスクを実行するために、たとえば、ロボットのアクチュエータを使用してロボットにアクションを実行させるために、予測された表現に基づいてロボットに制御信号を提供することを含んでよい。たとえば、これは、物理的物体を操作することを含むタスクを実行することを学習するために、目的関数の値に少なくとも部分的に基づく報酬を用いる強化学習プロセスを使用してロボット、たとえば、アクチュエータを制御することを含んでよい。
【0253】
本明細書は、用語「構成される」をシステムおよびコンピュータプログラムのコンポーネントに関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されることは、システムが、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作またはアクションを実行させる命令を含むことを意味する。
【0254】
本明細書に記載の主題の実施形態および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的ストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成される伝播信号、たとえば、機械によって生成される電気的信号、光学的信号、または電磁的信号上に符号化され得る。
【0255】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【0256】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは記載される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。プログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプトに、問題にしているプログラムに専用の単一のファイルに、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、データ通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。
【0257】
本明細書において、用語「エンジン」は、1つまたは複数の特定の機能を実行するようにプログラミングされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。概して、エンジンは、1つまたは複数の場所の1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装される。場合によっては、1つまたは複数のコンピュータが、特定のエンジンに専用であり、その他の場合、複数のエンジンが、同じ1台のコンピュータまたは複数のコンピュータにインストールされ、実行されていることが可能である。
【0258】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するための1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGAもしくはASICによって、または専用の論理回路と1つもしくは複数のプログラミングされたコンピュータとの組合せによって実行されることが可能である。
【0259】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置に基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央演算処理装置およびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【0260】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0261】
ユーザとのインタラクションを提供するために、本明細書に記載の主題の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、スピーチ、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。また、コンピュータは、メッセージングアプリケーションを実行しているパーソナルデバイス、たとえば、スマートフォンにテキストメッセージまたはその他の形態のメッセージを送信し、返報としてユーザから応答メッセージを受信することによってユーザとインタラクションすることができる。
【0262】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習の訓練または生成、つまり、推測の作業負荷のよくある計算量の多い部分を処理するための専用ハードウェアアクセラレータユニットも含むことが可能である。
【0263】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装され、配置されることが可能である。
【0264】
本明細書に記載の主題の実施形態は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の主題の実装とインタラクションすることができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえば、インターネットを含む。
【0265】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、たとえば、クライアントとして働くデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的でユーザデバイスにデータ、たとえば、HTMLページを送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザインタラクションの結果が、サーバにおいてデバイスから受信されることが可能である。
【0266】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定ともみなされるべきでなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態に組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで働くものとして上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする場合がある。
【0267】
同様に、動作が特定の順序で図中に示され、特許請求の範囲に記載されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【0268】
主題の特定の実施形態が、説明された。その他の実施形態は、添付の特許請求の範囲内にある。たとえば、特許請求の範囲に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序を必要としない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【0269】
100 物理的環境シミュレーションシステム
102 物理的環境の現在の状態
106 大域的特徴
110 エンコーダモジュール
111 ノード埋め込みサブネットワーク
112 エッジ埋め込みサブネットワーク
114 グラフ
115 最終的な更新されたグラフ
116 ダイナミクス特徴
120 アップデータモジュール
121 ノード更新サブネットワーク
122 エッジ更新サブネットワーク
130 デコーダモジュール
140 次の時間ステップにおける物理的環境の状態、物理的環境の次の状態
150 グラフニューラルネットワーク
160 予測エンジン
200 グラフ
210 エンコーダ
220 アップデータ
230 デコーダ
240 メッシュ空間エッジ
245 ワールド空間エッジ
250 ノード
255 ノード
260 ダイナミクス特徴
300 物理的環境の例示的なシミュレーション
400 プロセス
【国際調査報告】