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

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

▶ フォルテリックス リミテテッドの特許一覧

特許7735410制約充足問題としての変換によってトラフィックシナリオにおける具体的なインスタンスを提供するための技法
<>
  • 特許-制約充足問題としての変換によってトラフィックシナリオにおける具体的なインスタンスを提供するための技法 図1
  • 特許-制約充足問題としての変換によってトラフィックシナリオにおける具体的なインスタンスを提供するための技法 図2
  • 特許-制約充足問題としての変換によってトラフィックシナリオにおける具体的なインスタンスを提供するための技法 図3
  • 特許-制約充足問題としての変換によってトラフィックシナリオにおける具体的なインスタンスを提供するための技法 図4
  • 特許-制約充足問題としての変換によってトラフィックシナリオにおける具体的なインスタンスを提供するための技法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-08-29
(45)【発行日】2025-09-08
(54)【発明の名称】制約充足問題としての変換によってトラフィックシナリオにおける具体的なインスタンスを提供するための技法
(51)【国際特許分類】
   G06F 11/36 20250101AFI20250901BHJP
【FI】
G06F11/3604 108
【請求項の数】 23
(21)【出願番号】P 2023545939
(86)(22)【出願日】2021-12-28
(65)【公表番号】
(43)【公表日】2024-02-08
(86)【国際出願番号】 IB2021062402
(87)【国際公開番号】W WO2022162463
(87)【国際公開日】2022-08-04
【審査請求日】2024-10-08
(31)【優先権主張番号】63/142,199
(32)【優先日】2021-01-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】523284402
【氏名又は名称】フォルテリックス リミテテッド
【氏名又は名称原語表記】FORETELLIX LTD.
【住所又は居所原語表記】11 Derech Menachem Begin 5268104 Ramat Gan (IL)
(74)【代理人】
【識別番号】100105131
【弁理士】
【氏名又は名称】井上 満
(74)【代理人】
【識別番号】100105795
【弁理士】
【氏名又は名称】名塚 聡
(72)【発明者】
【氏名】パイデン,ドミトリ
(72)【発明者】
【氏名】ディセンフェルド,シンシア ロクサーナ
(72)【発明者】
【氏名】ホーランダー,ヨアフ
【審査官】西村 直史
(56)【参考文献】
【文献】国際公開第2018/071708(WO,A1)
【文献】米国特許第08560893(US,B1)
【文献】国際公開第2020/079074(WO,A2)
【文献】国際公開第2019/136447(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
トラフィックシナリオにおける具体的なインスタンスを決定する方法であって、
シナリオ記述言語のシナリオを受信するステップであって、前記シナリオは少なくとも1つのアクターの挙動を記述し、前記シナリオは、少なくとも1つのサブシナリオを含む、該受信するステップと、
前記少なくとも1つのアクター及び前記受信されたシナリオの解析に基づいて、前記シナリオ及び前記少なくとも1つのサブシナリオのための少なくとも1つの変数を識別するステップと、
前記シナリオ及び前記少なくとも1つのサブシナリオから導出された少なくとも1つの制約関係を識別するステップと、
前記少なくとも1つの変数及び少なくとも1つの制約から、制約充足問題を生成するステップと、
前記制約充足問題を処理して、前記少なくとも1つの制約に従う前記少なくとも1つの変数についての状態のシーケンスを生成するステップであって、前記状態のシーケンスは、前記少なくとも1つのアクターの前記挙動を時間値を含めて定義する、該ステップと、
前記状態のシーケンスを含む少なくとも1つの解を決定するステップと、
前記少なくとも1つの解をトラフィックシミュレータに提供するステップと、を含む方法。
【請求項2】
前記少なくとも1つの解をメモリに記憶するステップと、
前記少なくとも1つの解が決定されないときにエラーメッセージを生成するステップと、をさらに含み、
前記解を決定する試みは、制約充足問題ソルバによって実行される、請求項1に記載の方法。
【請求項3】
前記少なくとも1つの変数に開始変数を追加するステップをさらに含む、請求項1記載の方法。
【請求項4】
前記少なくとも1つの変数に終了変数を追加するステップをさらに含む、請求項1記載の方法。
【請求項5】
時間的関係を表す前記少なくとも1つの制約を追加するステップをさらに含む、請求項1記載の方法。
【請求項6】
前記時間的関係は、シリアル、パラレル、及び混合のうちの少なくとも1つである、請求項5に記載の方法。
【請求項7】
前記状態のシーケンスの各状態は、前記少なくとも1つの変数のコピーを含む、請求項1に記載の方法。
【請求項8】
前記状態のシーケンスの各状態を、それに関連する変数のみを含むように最適化するステップをさらに含む、請求項7記載の方法。
【請求項9】
前記シナリオは、トラフィック条件及びトラフィック要素のうちの少なくとも1つに関係する、請求項1に記載の方法。
【請求項10】
前記トラフィック要素が自律車両である、請求項9に記載の方法。
【請求項11】
前記制約充足問題を処理するステップは、指定された制約充足問題ソルバ、ブール充足可能性(SAT)、充足可能性モジュロ理論(SMT)、及び定理証明ソルバのいずれかを使用する、請求項1に記載の方法。
【請求項12】
プロセッサにプロセスを実行させるための命令を自身に記憶した非一時的コンピュータ可読媒体であって、前記プロセスは、
シナリオ記述言語のシナリオを受信するステップであって、前記シナリオは少なくとも1つのアクターの挙動を記述し、前記シナリオは、少なくとも1つのサブシナリオを含む、該受信するステップと、
前記少なくとも1つのアクター及び前記受信されたシナリオの解析に基づいて、前記シナリオ及び前記少なくとも1つのサブシナリオのための少なくとも1つの変数を識別するステップと、
前記シナリオ及び前記少なくとも1つのサブシナリオから導出された少なくとも1つの制約関係を識別するステップと、
前記少なくとも1つの変数及び少なくとも1つの制約から、制約充足問題を生成するステップと、
前記制約充足問題を処理して、前記少なくとも1つの制約に従う前記少なくとも1つの変数についての状態のシーケンスを生成するステップであって、前記状態のシーケンスは、前記少なくとも1つのアクターの前記挙動を時間値を含めて定義する、該ステップと、
前記状態のシーケンスを含む少なくとも1つの解を決定するステップと、
前記少なくとも1つの解をトラフィックシミュレータに提供するステップと、を含む、非一時的コンピュータ可読媒体。
【請求項13】
トラフィックシナリオにおける具体的なインスタンスを決定するためのシステムであって、
シナリオ記述言語のシナリオをその中に含むデータベースと、
プロセッサと、
メモリと、を備え、
前記メモリは、前記プロセッサによって実行されると、
前記データベースからシナリオ記述言語のシナリオを受信するステップであって、前記シナリオは少なくとも1つのアクターの挙動を記述し、前記シナリオは少なくとも1つのサブシナリオを含む、該受信するステップと、
前記少なくとも1つのアクター及び前記受信されたシナリオの構文解析に基づいて、前記シナリオ及び前記少なくとも1つのサブシナリオのための少なくとも1つの変数を識別するステップと、
前記シナリオ及び前記少なくとも1つのサブシナリオから導出された少なくとも1つの制約関係を識別するステップと、
前記少なくとも1つの変数及び少なくとも1つの制約から制約充足問題を生成するステップと、
前記制約充足問題を処理して、前記少なくとも1つの制約に従う前記少なくとも1つの変数についての状態のシーケンスを生成するステップであって、前記状態のシーケンスは前記少なくとも1つのアクターの前記挙動を時間値を含めて定義する、該ステップと、
前記状態のシーケンスを含む少なくとも1つの解を決定するステップと、
前記少なくとも1つの解をトラフィックシミュレータに提供するステップと、を行うように前記システムを構成する命令を含む、システム。
【請求項14】
前記システムはさらに、
前記少なくとも1つの解をメモリに記憶し、
前記少なくとも1つの解が制約充足ソルバによって決定されないときにエラーメッセージを生成するように構成される、請求項13に記載のシステム。
【請求項15】
前記システムはさらに、少なくとも1つの変数に開始変数を追加するように構成される、請求項13に記載のシステム。
【請求項16】
前記システムはさらに、少なくとも1つの変数に終了変数を追加するように構成される、請求項13に記載のシステム。
【請求項17】
前記システムはさらに、時間的関係を表す少なくとも1つの制約を追加するように構成される、請求項13に記載のシステム。
【請求項18】
前記時間的関係は、シリアル、パラレル、及び混合のうちの少なくとも1つである、請求項17に記載のシステム。
【請求項19】
前記状態のシーケンスの各状態は、全ての変数のコピーを含む、請求項13に記載のシステム。
【請求項20】
前記システムはさらに、前記状態のシーケンスの各状態を、それに関連する変数のみを含むように最適化するように構成される、請求項19に記載のシステム。
【請求項21】
前記シナリオは、トラフィック条件及びトラフィック要素のうちの少なくとも1つに関する、請求項13に記載のシステム。
【請求項22】
前記トラフィック要素が自律車両である、請求項21に記載のシステム。
【請求項23】
前記システムはさらに、指定された制約充足問題ソルバ、ブール充足可能性(SAT)、充足可能性モジュロ理論(SMT)、及び定理証明ソルバのうちのいずれか1つを実行するように構成される、請求項13に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
<関連出願の相互参照>
本出願は2021年1月27日に出願された米国仮出願第63/142,199号の利益を主張し、その内容は、参照により本明細書に組み込まれる。
【0002】
本開示は概して、シナリオとも呼ばれるトラフィック(又は、交通/traffic)状況を記述するためのシステム及び方法に関し、より具体的には、シナリオの実現に関する。
【背景技術】
【0003】
自律走行車両の分野における進歩は急速である。そのような車両は今後10年間にますます道路に出ることが予定されており、実験車両は、世界中の多くの都市の道路を走行している。人間によって設計されたあらゆる高度な装置と同様に、自律走行車は人類の創意工夫の恩恵を享受するとともに、その欠点を経験する。後者は自律車両の望ましくない、予測されない、又は誤った挙動として現れ、車両の乗員、ならびに車両の周囲の他の人、動物、及び物を危険にさらす。
【0004】
このようなエラーの発生を防止するために、車両はまず、道路への解放の前に試験され、次いで、車両は道路上に配備されるとき、事故が発生しないことを確実にするために、追加の予防措置が設置される。加えて、ハンドリング又は応答エラーが発生したときに車両の動作を無効にする(override)能力を有する運転者が、そのような車両のそれぞれに配置される。これは、もちろん、そのようなシーケンスの捕捉及び車両の制御システムの更新を可能にし、その結果、将来、そのような危険な状況の場合を防止し得る。しかしながら、これらの解決策は、オペレータによる介入の結果としてのそのようなエラーの捕捉、又は何らかの種類の損傷が発生した場合に大きく依存するので、エラーを起こしやすい。望ましくない結果につながるエラーは、望ましくない結果が発生するのを防ぎ得る場合には、効率的に監視されないか、又は捕捉されない。
【0005】
シナリオベースの試験は、適切な動作の所定の期待に基づいて自律車両の動作を監視するために使用し得ることが確認されている。より具体的には、シナリオベースの試験は、自律車両が道路上で遭遇し得る事実上無限のシナリオ数を試験及び検証して、自律車両の完全に試験された駆動制御システムを開発する。しかしながら、そのようなシナリオのシミュレーションはしばしば、具体的なインスタンス(又は、事例/instance)とも呼ばれる、実現されない自由度を含むという点で、改善の余地が依然として存在する。すなわち、試験されたシナリオの解決策は、自律車両の安全動作に問題となり得る不確実性を依然として含み得る。
【発明の開示】
【発明が解決しようとする課題】
【0006】
したがって、シナリオの適切な実現を見つけることができる解決策を提供することが有利である。
【課題を解決するための手段】
【0007】
本開示のいくつかの例示的な実施形態の概要を以下に示す。この概要はそのような実施形態の基本的な理解を提供するために読者の便宜のために提供されるものであり、本開示の幅を完全に定義するものではない。この概要は、すべての企図される実施形態の包括的な概観ではなく、すべての実施形態の主要又は重要な要素を識別するものでも、いずれか又はすべての態様の範囲を定めるものでもない。その唯一の目的は、後に提示されるより詳細な説明の前置きとして、1つ又は複数の実施形態のいくつかの概念を簡略化された形で提示することである。便宜上、「いくつかの実施形態」又は「特定の実施形態」という用語は、本明細書では本開示の単一の実施形態又は複数の実施形態を指すために使用され得る。
【0008】
本明細書に開示される特定の実施形態は、トラフィックシナリオにおける具体的なインスタンスを決定するための方法を含む。本方法は、シナリオ記述言語のシナリオを受信するステップであって、シナリオは少なくとも1つのアクターの挙動を記述し、シナリオは少なくとも1つのサブシナリオを含む、該受信するステップと、少なくとも1つのアクター及び受信されたシナリオの解析に基づいて、シナリオ及び少なくとも1つのサブシナリオのための少なくとも1つの変数を識別するステップと、シナリオ及び少なくとも1つのサブシナリオから導出された少なくとも1つの制約(又は、制限/抑制/constraint)関係を識別するステップと、少なくとも1つの変数と少なくとも1つの制約から制約充足問題を生成するステップと、制約充足問題を処理して、少なくとも1つの制約に従う少なくとも1つの変数についての状態のシーケンスを生成するステップであって、状態のシーケンスは少なくとも1つのアクターの挙動を時間値を含めて定義する、該ステップと、状態のシーケンスを含む少なくとも1つの解を決定するステップと、少なくとも1つの解をトラフィックシミュレータに提供するステップと、を含む。
【0009】
本明細書に開示されるいくつかの実施形態はまた、プロセスをプロセッサに実行させるための命令を自身に記憶した非一時的コンピュータ可読媒体を含み、上記プロセスは、シナリオ記述言語のシナリオを受信するステップであって、シナリオは少なくとも1つのアクターの挙動を記述し、シナリオは少なくとも1つのサブシナリオを含む、該受信するステップと、少なくとも1つのアクター及び受信されたシナリオの解析に基づいて、シナリオ及び少なくとも1つのサブシナリオのための少なくとも1つの変数を識別するステップと、シナリオ及び少なくとも1つのサブシナリオから導出された少なくとも1つの制約関係を識別するステップと、少なくとも1つの変数及び少なくとも1つの制約から、制約充足問題を生成するステップと、制約充足問題を処理して、少なくとも1つの制約に従う少なくとも1つの変数についての状態のシーケンスを生成するステップであって、状態のシーケンスは少なくとも1つのアクターの挙動を時間値を含めて定義する、該ステップと、状態のシーケンスを含む少なくとも1つの解を決定するステップと、少なくとも1つの解をトラフィックシミュレータに提供するステップと、を含む。
【0010】
本明細書に開示される特定の実施形態はまた、トラフィックシナリオにおける具体的なインスタンスを決定するためのシステムを含む。システムは、シナリオ記述言語のシナリオをその中に含むデータベースと、プロセッサと、メモリとを備え、メモリは、プロセッサによって実行されると、シナリオ記述言語のシナリオをデータベースから受信するステップであって、シナリオは少なくとも1つのアクターの挙動を記述し、シナリオは少なくとも1つのサブシナリオを含む、該受信するステップと、少なくとも1つのアクター及び少なくとも1つの受信したシナリオの解析に基づいて、シナリオ及び少なくとも1つのサブシナリオの少なくとも1つの変数を識別するステップと、シナリオ及び少なくとも1つのサブシナリオから導出された少なくとも1つの制約関係を識別するステップと、少なくとも1つの変数及び少なくとも1つの制約から制約充足問題を生成するステップと、制約充足問題を処理して、少なくとも1つの制約に従う少なくとも1つの変数のための状のシーケンスを生成するステップであって、状態のシーケンスは少なくとも1つのアクターの挙動を時間値を含めて定義する該ステップと、状態のシーケンスを含む少なくとも1つの解を決定するステップと、少なくとも1つの解をトラフィックシミュレータに提供するステップとを実行するようにシステムを構成する命令を含む。
【図面の簡単な説明】
【0011】
本明細書に開示される主題は、本明細書と共に提出した特許請求の範囲において具体的に指摘しかつ明確に特許請求している。開示された実施形態の前述及び他の目的、特徴、及び利点は、添付の図面と併せて以下の詳細な説明から明らかになるであろう。
【0012】
図1図1は、一実施形態による、シリアルオペレータの下で動作する第一シナリオ及び第二シナリオの概略説明である。
【0013】
図2図2は、一実施形態による、タイムラインにわたる混合オペレータのスパニングの異なる変形例の概略説明である。
【0014】
図3図3は、一実施形態による、シナリオの記述を制約充足問題に変換するための変換システムの概略図である。
【0015】
図4図4は、一実施形態による、シナリオの記述を制約充足問題に変換するための方法を示すフローチャートである。
【0016】
図5図5は、一実施形態による、シナリオ及びサブシナリオをそれぞれの変数及び制約に変換するための方法を示すフローチャートである。
【発明を実施するための形態】
【0017】
本明細書に開示される実施形態は、本明細書における革新的な教示の多くの有利な使用の例にすぎないことに留意することが重要である。一般に、本出願の明細書においてなされる記述は、必ずしも様々な請求される実施形態のいずれをも限定しない。さらに、いくつかの記述はいくつかの発明の特徴に適用され得るが、他のものには適用されない。一般に、特に明記しない限り、単数の要素は、一般性を失うことなく、複数であってもよく、逆もまた同様である。図面において、同様の番号は、いくつかの図を通して同様の部分を指す。
【0018】
様々な開示された実施形態は、高レベルシナリオ記述言語で記述されたシナリオに基づいたシミュレーションの実行のためのオブジェクトの複数の具体的なインスタンスを提供するための技法を含む。そのようなシナリオは例えば、トラフィック内の自律車両に適用可能である。したがって、具体的なインスタンスは、高レベル記述シナリオで定義されたすべての制約、シナリオのすべての修飾子(modifier)、及びシナリオ間のタイミング関係を定義するすべての演算子(又は、オペレータ/operator)を満たさなければならない。一実施形態によれば、これは、シナリオを制約充足問題として表すことによって実行される。自律車両は限定はしないが、車、ドローンなどを含み得る。
【0019】
制約解決の目的は、制約充足問題のための効率的で実用的な解を見出すことである。制約充足問題(CSP/Constraint satisfaction problem)は変数間の依存性(制約)が保存(又は、維持/preserve)されるように、変数のセットの値を見つけるタスクである。変数は通常、値(整数、範囲、実数、文字列)を取得できるドメインによって定義される。制約は、これらの変数に対するブール式として定義される。例えば、依存性「xはyとzの和より大きい」は、ブール不等式「x>z+y」によって定義される。
【0020】
制約ソルバ(又は、制約解法/成約解部/Constraint solvers)は、通常、そのソルバによってサポートされる制約充足問題を表現するのに十分に豊富なアプリケーションプログラミングインターフェース(API)関数のセットを公開する。また、ほとんどの場合、問題の記述と解法プロセスの最適化を容易にするために、追加のAPI関数も公開される。問題を表現するために必要とされる最小APIは、以下を含むべきである:a)ブール定数;b)ブール変数;及びc)ブール演算の最小セット(論理積、否定)。典型的には整数及び浮動小数点変数及び定数、算術演算(加算、減算、乗算、除算、モジュロ)、追加のブール演算(論理和、含意)、及び比較演算(等価、不等価、より大きい、より小さい)などの他の構成要素も利用可能になるが、これらに限定されない。そのような構成要素が制約ソルバAPIから欠落している場合でも、問題は、必要とされる演算の最小セットによって表され得ることを諒解されたい。例えば、すべての算術演算は、「ビットブラスト(bit-blasting)」として知られるアルゴリズムによって、ブール演算の最小セットを使用して表現し得る。
【0021】
CSPソルバによってシナリオの実現を見つけるための標準的な制約解法を使用できるようにするために、シナリオは、制約充足問題として表されるべきである。制約充足問題(CSP)は、定数、変数、及びそれらの変数間の依存性を定義する制約を含む。一実施形態によれば、シナリオは、フィールド、制約、アクター、シナリオ、及び修飾子という構成要素を含む。フィールドが変数としてモデル化される場合、最初の2つのコンポーネントは、結果のCSPでそのまま使用できる。アクターは車両、歩行者、天候、道路状況などを含み得るが、これらに限定されない。したがって、モデリングの主な目標は、変数及びこれらの変数に対する制約を使用してアクター、シナリオ、及び修飾子を表すことである。変数及び制約を含むCSPとしてのシナリオのそのような表現は効率的かつ正確な実現を可能にし、関与するアクターの抽象的な(又は、あいまいな/abstract)挙動を排除する。正確で具体的なインスタンスは、エラー又は不正確さが多くの人々の安全に有害な影響をもたらし得るという点で、自律車両のトラフィックシナリオにおいて特に有利である。すなわち、正確な実現は、実際の実装形態のための自律車両の動作精度及び安全性を改善する。
【0022】
シナリオには時間的な性質があり、これは、シナリオの動作がある時間ウィンドウにわたって定義されることを意味する。この時間ウィンドウ内において、各含まれるサブシナリオはそれ自体のタイムスロットをとり、サブシナリオのタイムスロットはシナリオの記述言語の演算子によって定義される方法でつながり、例えば、限定はされないが、共通の譲受人に譲渡されたHollanderらの米国特許出願第17/122,124号に記載されており、その内容は参照により本明細書に組み込まれる(以下、’124特許出願)。シナリオに参加するアクターには、経時的な挙動がある。各時点において、この挙動はアクターの時間的特性(又は、プロパティ/properties)を記述する変数のセットによって表される状態によって記述される(例えば、自動車の場合、これらの特性は、速度、位置、加速度、ライトモードなどであり得る)。各アクターについて、その状態定義は、そのシナリオ記述の一部である。各時点において、アクターの状態フィールドの値は、その時点におけるアクターの挙動を記述する。アクターの挙動は状態変化のシーケンスとして経時的に表され、各状態変化はアクターの記述言語を使用することによって定義される特性に加えて、時間ラベルを含む。この時間ラベルは対応する状態がアクティブになる(すなわち、アクターが前の状態から現在の状態に移動している)時点を定義する。アクターの状態がm個の変数を含み、その挙動がn個の状態変化を用いて表されるとすると、多くてもm*n個の新しい変数が制約充足問題に追加される。追加される変数の数を減らすための様々な最適化が、開示される実施形態の範囲から逸脱することなく適用可能であることに留意されたい。
【0023】
一実施形態によれば、各シナリオは、シナリオに参加する各アクターの状態変化のシーケンスにおける区間(又は、インターバル/interval)[i...j]によって表される。区間は、この特定のアクターの状態変化のシーケンス内のシナリオの開始及び終了を表す。状態変化の時間ラベルは状態がいつアクティブになるかを一意的に定義するので、区間間の同期はシナリオの開始時刻と終了時刻との間の同期を自動的に意味する。シナリオが適切な記述言語で記述されている場合、その中の各シナリオ呼び出しについて、このシナリオの区間の開始及び終了を決定する2つの生成変数が定義される。次いで、異なるサブシナリオ間の同期は本明細書でさらに説明するように、それらのサブシナリオ上で働くオペレータによって定義され、区間束縛変数(interval bound variable)に関する制約によってモデル化される。
【0024】
オペレータシリアルはサブシナリオのすべてについて定義し、サブシナリオを順番に実行される、すなわちシナリオ「i」が終了するとき、シナリオi+1が開始する(ここで「i」は「1」よりも大きい整数である)。例えば、S,...,Sは、シリアルオペレータによって接続されたシナリオである。この場合、s、eは、それぞれ、Sに対応する区間の開始及び終了を表す生成変数(generative variable)として定義される。次に、S・・・S間のシリアルコネクションは次の制約を使用してモデル化される:
i+1=e ∀i∈1..n-1
【0025】
図1は、一実施形態による、シリアルオペレータ(又は、直列演算子/serial operator)の下で動作する第一シナリオ130及び第二シナリオ140の例示的な概略説明100である。シナリオs1 130及びs2 140は、シリアルオペレータの下のタイムライン上に広げることができる。図1のシリアライゼーションソリューション(serialization solution)は、多数のうちの1つの可能性のみであることに留意されたい。選択された状態の数120、及びこの例が現れるコンテクスト(又は、状況/context)に応じて、制約ソルバは、多くの異なるスパニング(spanning)を見出すことができる。しかしながら、それらの各々は、シリアルリレーション(又は、シリアル関係/serial relation)をモデル化する制約と一致する。
【0026】
したがって、図1は、シリアルオペレータの下でのシナリオをタイムライン上にどのように広げることができるかを示している。各状態変化110、例えば、110-1から110-8は1つの状態120、例えば、状態120-2から別の状態120、例えば、状態120-3へのパスである。この特定の例では、全体のタイムラインの開始110-1及び終了110-8を含む8つの状態変化がある。一例として、シナリオms1、d1、及びd2は、シリアル関係によって接続され、したがってモデリング制約、つまり、d1が状態変化110-3で開始し、正確にここでms1が終了するというモデリング制約を満たす。同様に、一例では、シナリオs1及びms2がシリアル関係によって接続され、モデリング制約を満たす。
【0027】
同様に、パラレルオペレータ(又は、パラレル演算子/parallel operator)は、以下の関係を定義する:すべてのそのサブシナリオが同時に完全に同期され、同じ時点で開始及び終了する。すなわち、S,...,Sがパラレルオペレータによって接続されたシナリオであり、s、eがそれぞれ、Sに対応する区間の開始及び終了を表す生成変数である場合、S...S間のパラレルリレーション(又は、パラレル関係/parallel relation)は、以下の制約を使用してモデル化される:
=s,e=e ∀i,j∈1..n
【0028】
混合オペレータ(又は、混合演算子/mix operator)は、そのサブシナリオ間の以下の関係を定義する:混合オペレータのS...Sサブシナリオが与えられると、サブシナリオS...SのそれぞれがSのタイムライン上にSと空でない重複(non-empty overlap)を有する。s、eがSに対応する区間の開始及び終了を表す生成変数である場合、混合オペレータの関係は、以下の制約を使用してモデル化される:
<e,s<e ∀i∈2..n
【0029】
図2は、一実施形態による、タイムラインにわたる混合オペレータのスパニングの異なる変形例の例示的な概略説明である。サブシナリオd1及びd2を含む、すべての示された変形例210、220、及び230において、この関係は、混合オペレータによってモデル化された制約について成り立つ。例210では、d1は状態変化1で開始し、状態変化3で終了し、d2は状態変化2で開始し、状態変化4で終了する。明らかに、d1はd2の終了前に開始し、d2の開始後に終了する。シナリオの別の重複は例220に示され、d1は状態変化2で開始し、状態変化4で終了し、d2は状態変化1で開始し、状態変化4で終了する。例230ではサブシナリオ間の並列関係が示され、これは、ネイティブに(natively)、シナリオd2がシナリオd1と正確に重複する、混合オペレータのプライベートケースである。
【0030】
図3は、一実施形態による、シナリオの記述を制約充足問題に変換するための変換システム300の例示的な概略図を示す。プロセッサ310、例えば中央処理装置(CPU)は、メモリ320に通信可能に接続される。メモリ320は、ランダムアクセスメモリ(RAM)などの揮発性メモリ、ならびに読取り専用メモリ(ROM)及びフラッシュメモリなどの不揮発性メモリの両方を備え得る。メモリの一部、例えば、コード領域324はプロセッサ310によって実行され得るコードをその中に含み、本明細書でさらに説明される。メモリ320は、プロセッサ310上で又はそれによって動作されているデータ及び/又はコードの一時的及び一過性の記憶を提供するメモリ領域をさらに含み得る。さらに、メモリ320は、制約問題ソルバ(CPS)322に関連付けられた少なくともコード専用のメモリ領域322をその中に含む。CPSコード322はプロセッサ310によって実行されると、提供された制約を満たす、提供された変数及び制約のセットに対する1つ又は複数の解を提供し、本明細書でさらに説明する。CPS322が本明細書で論じられるが、開示される実施形態の範囲から逸脱することなく、ブール充足可能性(SAT)、充足可能性モジュロ理論(SMT)又は定理証明ソルバなどを含むが、これらに限定されない他の制約ソルバが使用され得る。
【0031】
データベース330は、プロセッサ310に通信可能に接続され、本明細書で説明するようにシステム300によって使用される1つ又は複数のシナリオ335及びそのサブシナリオをその中に含む。一実施形態では、データベース330がプロセッサ310に直接接続し得る。別の実施形態ではネットワークインターフェース350がシステム300への外部ネットワーク接続性を提供し、データベース330は本発明の範囲から逸脱することなく、それを通して接続され得る。一実施形態ではシナリオ335がビデオクリップとして提供され、ビデオクリップはオンライン又はオフラインで処理され、本明細書で説明するシナリオの記述言語で記述される。一実施形態では、入力/出力インターフェース(I/O I/F)340が例えば、キーボード、マウス、タッチパッド、カメラ、及び同様の入力デバイスからの入力、ならびに例えば、ディスプレイ、ラウドスピーカ、プリンタ、及び同様の出力デバイスなどの出力を提供する目的で、プロセッサ310に通信可能に接続される。
【0032】
図4は、一実施形態による、シナリオの記述を制約充足問題に変換するための方法を示す例示的なフローチャート400である。この方法は、図3に示される構成要素を参照して説明される。
【0033】
S410において、シナリオ及びそのサブシナリオは例えば、限定はしないが、図3のシステム300を使用して受信される。そのようなシナリオ及びそのサブシナリオは、データベース、たとえばデータベース330から提供され得る。シナリオ及びそのサブシナリオの各々は、シナリオ記述言語で記述され得る。例示的な実施形態ではシナリオが高レベル(HL)記述言語、例えば、’124特許出願に記載されているシナリオ言語で記述され得るが、これに限定されない。
【0034】
S420において、受信されたシナリオ及びサブシナリオは、CPS322の要件に一致する方法で変数及び制約に変換される。さらに、限定はしないが、シリアル、パラレル、又は混合などの時間的関係を表す制約を追加することが可能である。一実施形態では、開始変数の状態及び/又は終了変数の状態が追加され得る。一実施形態では、S420が特定の状態に影響を与えない変数がその状態について除去される最適化プロセスをさらに含む。S420において、その全ての変数及びそれぞれの制約をカバーするベクトルが各状態(例えば、状態120-1、図1)について生成されることを理解されたい。シナリオ及びサブシナリオをそれぞれの変数及び制約に変換するプロセスは、以下の図5に関してより詳細に論じられる。
【0035】
S430において、提供された制約を満たす解が生成される。解は、変数のための、それぞれの制約に従う複数の状態を含む。一実施形態では、制約充足問題に対する少なくとも1つの解が見つからない場合、エラーが生成され得る。一実施形態では、S430がCPS322によって実行される。別の実施形態では、制約充足問題を処理するように適合された制約充足問題解決エンジン(図示せず)が効率及び速度の向上のために使用され得る。
【0036】
S440において、追加の解が可能であるか、又は望まれるかどうかがチェックされ、そうである場合、実行はS430に続き、さもなければ、実行はS450に続く。CPS322は、制約を満たすすべての可能な解を提供することに留意されたい。
【0037】
S450において、1つ又は複数の解は、メモリ320又はデータベース330などの他の記憶装置に記憶される。
【0038】
S460において、追加のシナリオが処理されるべきかどうかがチェックされ、処理されるべきである場合、実行はS410に続き、さもなければ、実行は終了する。一実施形態によれば、制約を満たすケースは、実行のためにシミュレータに供給される。一実施形態では、ケース(又は解)がトラフィックシミュレータに提供され得る。一実施形態では、各状態がシナリオ記述言語コード内に存在するすべての変数のコピーを含み得ることを理解されたい。さらに、一実施形態では、状態及びそれらに含まれる変数がその状態に関連する変数のみがそこにコピーされるように最適化される。一実施形態では、シナリオがトラフィック条件又はトラフィック要素の同様のものに関係し得る。
【0039】
図5は、一実施形態による、シナリオ及びサブシナリオをそれぞれの変数及び制約に変換するための方法を示す例示的なフローチャートS420である。
【0040】
S510において、少なくとも1つの変数が、シナリオ及びサブシナリオについて識別される。少なくとも1つの変数は、さらに抽象構文木として表され得るアクター及びシナリオを解析することによって識別され得る。一実施形態では、少なくとも1つの変数が関連するアクターの各々の下で定義され得る。
【0041】
S520において、少なくとも1つの制約関係が識別される。少なくとも1つの制約関係は、シナリオ及びサブシナリオから導出される。
【0042】
S530において、制約充足問題が、識別された少なくとも1つの変数及び少なくとも1つの制約関係から生成される。
【0043】
本明細書に開示される様々な実施形態は、ハードウェア、ファームウェア、ソフトウェア、又はそれらの任意の組合せとして実装し得る。さらに、ソフトウェアは、好ましくは部分、又は特定のデバイス及び/又はデバイスの組合せからなるプログラム記憶ユニット又はコンピュータ可読媒体上で有形に具現化されるアプリケーションプログラムとして実装される。アプリケーションプログラムは、任意の適切なアーキテクチャを備えるマシンにアップロードされ、マシンによって実行され得る。好ましくは、マシンが1つ又は複数の中央処理装置(「CPU」)、メモリ、及び入力/出力インターフェースなどのハードウェアを有するコンピュータプラットフォーム上で実装される。コンピュータプラットフォームは、オペレーティングシステム及びマイクロ命令コードを含むこともできる。本明細書で説明される様々なプロセス及び機能は、そのようなコンピュータ又はプロセッサが明示的に示されているかどうかにかかわらず、CPUによって実行され得る、マイクロ命令コードの一部又はアプリケーションプログラムの一部、又はそれらの任意の組合せのいずれかであり得る。加えて、様々な他の周辺ユニットが、追加のデータ記憶ユニット及び印刷ユニットなどのコンピュータプラットフォームに接続され得る。さらに、非一時的なコンピュータ可読媒体は、一時的な伝播信号を除いて、任意のコンピュータ可読媒体である。
【0044】
本明細書に列挙されるすべての例及び条件付き言語は開示された実施形態の原理、及び当技術分野を促進するために本発明者によって寄稿された概念を読者が理解するのを助けるための教育目的のためのものであり、そのような具体的に列挙された例及び条件に限定されないと解釈されるべきである。さらに、開示された実施形態の原理、態様、及び実施形態、ならびにそれらの特定の例を列挙する本明細書におけるすべての記述は、それらの構造的及び機能的等価物の両方を包含することが意図される。さらに、そのような等価物は現在知られている等価物及び将来開発される等価物、すなわち、構造にかかわらず同じ機能を実行する開発された任意の要素の両方を含むことが意図される。
【0045】
「第一」、「第二」などの名称を使用する本明細書における要素へのいかなる言及も、それらの要素の量又は順序を一般に限定しないことを理解されたい。むしろ、これらの呼称は一般に、2つ以上の要素又は要素のインスタンスを区別する便利な方法として本明細書で使用される。したがって、第一及び第二要素への言及は、2つの要素のみがそこで使用され得ること、又は第一要素が何らかの方法で第二要素に先行しなければならないことを意味しない。また、特に明記しない限り、要素のセットは、1つ又は複数の要素を含む。
【0046】
本明細書で使用される場合、句「のうちの少なくとも1つ」の後に、列挙された項目のいずれかが個別に利用され得ることを意味する項目のリストが続くか、又は列挙された項目のうちの2つ以上の任意の組合せが利用され得る。例えば、システムが「A、B、及びCの少なくとも1つ」を含むと記載されている場合、システムは、A単独、B単独、C単独、2A、2B、2C、3A、A及びBの組み合わせ、B及びCの組み合わせ、A、B及びCの組み合わせ、2A及びCの組み合わせ、A、3B、及び2Cの組み合わせ、及び同様のものを含み得る。
図1
図2
図3
図4
図5