(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-22
(45)【発行日】2024-03-04
(54)【発明の名称】自律モバイル・デバイスにおけるタスク割り当て
(51)【国際特許分類】
G06F 9/50 20060101AFI20240226BHJP
【FI】
G06F9/50 150Z
(21)【出願番号】P 2022097924
(22)【出願日】2022-06-17
【審査請求日】2022-06-17
(32)【優先日】2022-03-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517175046
【氏名又は名称】Rapyuta Robotics株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ウエン ジュヨン リー
【審査官】田中 幸雄
(56)【参考文献】
【文献】米国特許出願公開第2017/0062015(US,A1)
【文献】中国特許出願公開第112328397(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
プロセッサにより実行される方法であって:
タスク割り当てプランナーが、動作環境における複数のエージェントのうちのエージェントに割り当てられる複数のタスクのうちのタスクに、値を関連付けるステップであって、前記値は、ユーザーによって決定されたプライマリ関数に基づいている、ステップ;
前記タスク割り当てプランナーが、前記動作環境における前記複数のエージェントのうちの1つ以上のエージェントから受信した情報に基づいて、前記タスクに関連付けられた値を評価するステップ;
前記タスク割り当てプランナーが、前記評価された値を、前記1つ以上のエージェントから受信した情報に応答して動的に更新し、前記タスクに関連付けられる新たな値を生成するステップであって、前記新たな値は、前記エージェントに割り当てられた複数のタスクに対応するヒューリスティックなコスト推定に基づいて
おり、前記ヒューリスティックなコスト推定は前記1つ以上のエージェントから受信した情報に基づいている、ステップ;及び
前記タスク割り当てプランナーが、前記タスクに関連付けられるべく生成された新たな値に応答して、前記エージェントのためのタスク割り当てプランを生成するステップであって、前記割り当てられたタスクは、生成されたタスク割り当てプランの完了に基づいて終了する、ステップ;
を含む方法。
【請求項2】
請求項1に記載の方法において:
前記ユーザーが、前記プライマリ関数をアプリケーションに基づいて決定するステップであって、前記プライマリ関数は、タスクに対応する基準値を含む、ステップ;及び
決定されたプライマリ関数に対応する前記エージェントに割り当てられる前記複数のタスクのうちのタスクに関連付けられる値を提案するステップ;
を更に含む方法。
【請求項3】
請求項2に記載の方法において、前記タスクに関連付けられる提案される値は、前記ユーザーによって決定された前記プライマリ関数より低い、方法。
【請求項4】
請求項1に記載の方法において、前記タスクに関連付けられる値は、前記エージェントに割り当てられる前記複数のタスクのうちのタスクの優先度の変化に基づいて更新される、方法。
【請求項5】
請求項1に記載の方法において、前記ヒューリスティックなコスト推定は:
決定されたプライマリ関数を参照して、タスクに関連付けられる値を提案するステップ;及び
前記動作環境における前記1つ以上のエージェントの各々に割り当てられた1つ以上のタスクに関連付けられた前記1つ以上のエージェントにより以前に提案された値を参照して、前記タスクに関連付けられる提案された値を評価するステップ;
を含む、方法。
【請求項6】
請求項1に記載の方法において、前記新たな値は、前記ユーザーによって決定された前記プライマリ関数より低いか又は高い、方法。
【請求項7】
請求項1に記載の方法において:
前記タスク割り当てプランナーが、前記値を関連付けるエージェントと、タスクに関連付けられる値を提案するエージェントとの間の対立を解決するステップ;
更に含み、前記対立を解決するステップは:
前記対立をアービトレータにより調停するステップであって、前記アービトレータは、前記プライマリ関数を決定する際に前記ユーザーにより決定され、前記アービトレータは、関連付けられた値と提案された値とに基づいて、前記対立の結末を判断する、ステップ;又は
前記タスクの完了のために前記エージェントにより関連付けられた値を確認し、その結果、前記値を関連付けるエージェントは
、前記生成されたタスク割り当てプランの完了
により前記割り当てられたタスクを終了する、ステップ;
を更に含む、方法。
【請求項8】
請求項1に記載の方法において:
前記タスク割り当てプランナーが、前記エージェントに関連付けられる1つ以上の変化に基づいて、又は前記1つ以上のエージェントにより受信される情報に応答して、提案された値又は関連付けられた値を撤回するステップであって、前記1つ以上の変化は前記割り当てられたタスクの優先度の変化を含む、ステップ;
を更に含む方法。
【請求項9】
請求項8に記載の方法において、前記提案された値を撤回するステップは、ペナルティ値が、決定されたプライマリ関数に加えられることを含む、方法。
【請求項10】
請求項1に記載の方法において:
前記タスク割り当てプランナーが、前記エージェントに割り当てられる2つ以上のタスクの確からしい組み合わせのための探索空間を決定するステップであって、前記2つ以上のタスクの前記確からしい組み合わせの探索空間は、前記2つ以上のタスクの現在の組み合わせに基づいており、前記現在の組み合わせは、前記エージェントに割り当てられている2つ以上のタスクをグループ化することを含む、ステップ;及び
前記タスク割り当てプランナーが、前記2つ以上のタスクに対応する前記エージェントによって提案される値に基づいて、前記エージェントに割り当てられる2つ以上のタスクの確からしい組み合わせのための探索空間を更新するステップ;
を更に含む方法。
【請求項11】
命令を記憶するメモリ;及び
前記メモリに結合されるプロセッサ;
を含むシステムであって、前記命令によって、前記プロセッサは:
タスク割り当てプランナーが、動作環境における複数のエージェントのうちのエージェントに割り当てられる複数のタスクのうちのタスクに、値を関連付けるステップであって、前記値は、ユーザーによって決定されたプライマリ関数に基づいている、ステップ;
前記タスク割り当てプランナーが、前記動作環境における前記複数のエージェントのうちの1つ以上のエージェントから受信した情報に基づいて、前記タスクに関連付けられた値を評価するステップ;
前記タスク割り当てプランナーが、前記評価された値を、前記1つ以上のエージェントから受信した情報に応答して動的に更新し、前記タスクに関連付けられる新たな値を生成するステップであって、前記新たな値は、前記エージェントに割り当てられた複数のタスクに対応するヒューリスティックなコスト推定に基づいて
おり、前記ヒューリスティックなコスト推定は前記1つ以上のエージェントから受信した情報に基づいている、ステップ;及び
前記タスク割り当てプランナーが、前記タスクに関連付けられるべく生成された新たな値に応答して、前記エージェントのためのタスク割り当てプランを生成するステップであって、前記割り当てられたタスクは、生成されたタスク割り当てプランの完了に基づいて終了する、ステップ;
を行うように構成されている、システム。
【請求項12】
請求項11に記載のシステムにおいて:
前記ユーザーが、前記プライマリ関数をアプリケーションに基づいて決定するステップであって、前記プライマリ関数は、タスクに対応する基準値を含む、ステップ;及び
決定されたプライマリ関数に対応する前記エージェントに割り当てられる前記複数のタスクのうちのタスクに関連付けられる値を提案するステップ;
を行うように更に構成されている、システム。
【請求項13】
請求項11に記載のシステムにおいて、前記タスクに関連付けられる値は、前記エージェントに割り当てられる前記複数のタスクのうちのタスクの優先度の変化に基づいて更新される、システム。
【請求項14】
請求項11に記載のシステムにおいて、前記ヒューリスティックなコスト推定は:
決定されたプライマリ関数に基づいて、タスクに関連付けられる値を提案するステップ;及び
前記動作環境における前記1つ以上のエージェントの各々に割り当てられた1つ以上のタスクに関連付けられた前記1つ以上のエージェントにより提案された値を参照して、前記タスクに関連付けられる提案された値を評価するステップ;
を行うことを含む、システム。
【請求項15】
請求項11に記載のシステムにおいて、前記新たな値は、前記ユーザーによって決定された前記プライマリ関数より低いか又は高い、システム。
【請求項16】
請求項11に記載のシステムにおいて:
前記タスク割り当てプランナーが、前記値を関連付けるエージェントと、タスクに関連付けられる値を提案するエージェントとの間の対立を解決するステップ;
を行うように更に構成され、前記対立を解決するステップは:
前記対立をアービトレータにより調停するステップであって、前記アービトレータは、前記プライマリ関数を決定する際に前記ユーザーにより決定され、前記アービトレータは、関連付けられた値と提案された値とに基づいて、前記対立の結末を判断する、ステップ;又は
前記タスクの完了のために前記エージェントにより関連付けられた値を確認し、その結果、前記値を関連付けるエージェントは
、前記生成されたタスク割り当てプランの完了
により前記割り当てられたタスクを終了する、ステップ;
を含む、システム。
【請求項17】
請求項12に記載のシステムにおいて:
前記タスク割り当てプランナーが、前記エージェントに関連付けられる1つ以上の変化に基づいて、又は前記1つ以上のエージェントにより受信される情報に応答して、提案された値又は関連付けられた値を撤回するステップであって、前記1つ以上の変化は前記割り当てられたタスクの優先度の変化を含む、ステップ;
を更に行うシステム。
【請求項18】
請求項17に記載のシステムにおいて、前記提案された値を撤回するステップは、ペナルティ値が、決定されたプライマリ関数に加えられることを含む、システム。
【請求項19】
請求項12に記載のシステムにおいて:
前記タスク割り当てプランナーが、前記エージェントに割り当てられる2つ以上のタスクの確からしい組み合わせのための探索空間を決定するステップであって、前記2つ以上のタスクの前記確からしい組み合わせの探索空間は、前記2つ以上のタスクの現在の組み合わせに基づいており、前記現在の組み合わせは、前記エージェントに割り当てられている2つ以上のタスクをグループ化することを含む、ステップ;及び
前記タスク割り当てプランナーが、前記2つ以上のタスクに対応する前記エージェントによって提案される値に基づいて、前記エージェントに割り当てられる2つ以上のタスクの確からしい組み合わせのための探索空間を更新するステップ;
を行うように更に構成されている方法。
【請求項20】
1つ以上の命令を含む1つ以上の非一時的な機械読み取り可能な情報記憶媒体であって、前記命令は、1つ以上のハードウェア・プロセッサにより実行されると:
タスク割り当てプランナーが、動作環境における複数のエージェントのうちのエージェントに割り当てられる複数のタスクのうちのタスクに、値を関連付けるステップであって、前記値は、ユーザーによって決定されたプライマリ関数に基づいている、ステップ;
前記タスク割り当てプランナーが、前記動作環境における前記複数のエージェントのうちの1つ以上のエージェントから受信した情報に基づいて、前記タスクに関連付けられた値を評価するステップ;
前記タスク割り当てプランナーが、前記評価された値を、前記1つ以上のエージェントから受信した情報に応答して動的に更新し、前記タスクに関連付けられる新たな値を生成するステップであって、前記新たな値は、前記エージェントに割り当てられた複数のタスクに対応するヒューリスティックなコスト推定に基づいて
おり、前記ヒューリスティックなコスト推定は前記1つ以上のエージェントから受信した情報に基づいている、ステップ;及び
前記タスク割り当てプランナーが、前記タスクに関連付けられるべく生成された新たな値に応答して、前記エージェントのためのタスク割り当てプランを生成するステップであって、前記割り当てられたタスクは、生成されたタスク割り当てプランの完了に基づいて終了する、ステップ;
を実行することを引き起こす、記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本件における開示は一般に自律モバイル・デバイスに関連し、より具体的には、自律モバイル・デバイスにおけるタスク割り当てに関連する。
【背景技術】
【0002】
[0002] ロボット又はエージェントは、機械的なタスクを自動化する際の基礎となる。現在、ロボットは、農業、倉庫自動化、軍隊など、ほとんど全ての分野でタスクを自動化するために使用されつつある。現在のロボットは単純な計画を個別に実行することは可能であるが、複雑な計画の実行を制御するには、複数のロボットが互いに協力する必要がある。計画を共同で実行するロボットを制御することに関して幾つかの課題がある。例えば、複数のロボットによる計画実行の制御は、複数のロボットへのタスク割り当てを決定すること、ロボット間のタスク実行を同期させること等のような、幾つものプロセス負担の重いタスクの実行を要求する。更に、共同作業中の環境の急速な変化に起因して、これらのプロセス負担の重いタスクの結果は、特定のプロセス負担の重いタスクの結果として、特定の時間経過後には不必要になってしまう可能性があるので、可能な限り短時間で決定されなければならない。
【発明の概要】
【0003】
[0003] 添付の図面は、本開示に組み込まれ且つ本開示の一部を構成し、例示的な実施形態を図示し、本説明と共に、開示される原理を説明するように機能する。
【0004】
[0004] 本開示の実施形態は、従来のシステムにおいて発明者等によって認識された1つ以上の技術的課題に対する解決策として、技術的改善を提供するものである。例えば、一実施形態では、自律モバイル・デバイスにおけるタスク割り当てのための方法をプロセッサが実行する。本方法は、タスク割り当てプランナーが、動作環境における複数のエージェントのうちのエージェントに割り当てられる複数のタスクのうちのタスクに、値を関連付けるステップを含み、値は、ユーザーによって決定されたプライマリ関数(primary function)に基づいている。本方法は、タスク割り当てプランナーが、動作環境における複数のエージェントのうちの1つ以上のエージェントから受信した情報に基づいて、タスクに関連付けられた値を評価するステップを含む。本方法は、タスク割り当てプランナーが、評価された値を、受信した情報に応答して動的に更新し、タスクに関連付けられる新たな値を生成し(新たな値は、エージェントに割り当てられた複数のタスクに対応するヒューリスティックなコスト推定(heuristic cost estimation)に基づいている)、タスク割り当てプランナーが、タスクに関連付けられた新たな値に基づいて、エージェントのためのタスク割り当てプランを生成するステップを更に含み、割り当てられたタスクは、生成されたタスク割り当てプランの完了に基づいて終了する。
【0005】
[0005] 別の実施形態では、自律モバイル・デバイスにおけるタスク割り当てのためのシステムが提供される。システムは、命令を記憶するメモリと、1つ以上の通信インターフェースを介してメモリに結合される1つ以上のハードウェア・プロセッサとを含む。1つ以上のプロセッサは、命令によって、タスク割り当てプランナーが、環境の中で動作している複数のエージェントのうちのエージェントに割り当てられる複数のタスクのうちのタスクに、値を関連付けるように構成され、値は、ユーザーによって決定されたプライマリ関数に基づいている。システムは、タスク割り当てプランナーが、環境の中で動作している複数のエージェントのうちの1つ以上のエージェントから受信した情報に基づいて、タスクに関連付けられた値を評価するように更に構成されている。システムは、タスク割り当てプランナーが、評価された値を、受信した情報に応答して動的に更新し、タスクに関連付けられる新たな値を生成し(新たな値は、エージェントに割り当てられた複数のタスクに対応するエージェントのヒューリスティックなコスト推定に基づいている)、タスク割り当てプランナーが、タスクに関連付けられる新たな値に基づいて、エージェントのためのタスク割り当てプランを生成するように更に構成されており、割り当てられたタスクは、生成されたタスク割り当てプランの完了に基づいて終了する。
【0006】
[0006] 更に別の実施形態では1つ以上の非一時的な機械読み取り可能な情報記憶媒体が提供される。上記の1つ以上の非一時的な機械読み取り可能な情報記憶媒体は、1つ以上の命令を含み、命令は1つ以上のハードウェア・プロセッサにより実行されると、タスク割り当てプランナーが、環境の中で動作している複数のエージェントのうちのエージェントに割り当てられる複数のタスクのうちのタスクに、値を関連付けることを引き起こし、値は、ユーザーによって決定されたプライマリ関数に基づいている。方法は、タスク割り当てプランナーが、環境の中で動作している複数のエージェントのうちの1つ以上のエージェントから受信した情報に基づいて、タスクに関連付けられた値を評価することを含む。方法は、タスク割り当てプランナーが、評価された値を、受信した情報に応答して動的に更新してタスクに関連付けられる新たな値を生成し(新たな値は、エージェントに割り当てられた複数のタスクに対応する、エージェントのヒューリスティックなコスト推定に基づいている)、タスク割り当てプランナーが、タスクに関連付けられる新たな値に基づいて、エージェントのためのタスク割り当てプランを生成するステップを更に含み、割り当てられたタスクは、生成されたタスク割り当てプランの完了に基づいて終了する。
【0007】
[0007] 上記の一般的な説明と下記の詳細な説明の両方は例示的であり且つ例示のみのためのものであり、クレームされる発明の限定ではないことが、理解されるべきである。
【図面の簡単な説明】
【0008】
[0008] 添付の図面は、本開示に組み込まれ且つ本開示の一部を構成し、例示的な実施形態を図示し、本説明と共に、開示される原理を説明するように機能する。
【
図1】[0009]
図1は、本開示の幾つかの実施形態による、自律モバイル・デバイスにおけるタスク割り当てのためのコンピュータで実施されるシステムを示すブロック図である。
【
図2】[0010]
図2は、本開示の幾つかの実施形態による、自律モバイル・デバイスにおけるタスク割り当てのための流れ図を示す。
【
図3】[0011]
図3は、本開示の幾つかの実施形態による、システム・アーキテクチャの結果として得られるグラフの視覚的な例である。
【
図4】[0012]
図4は、本開示の幾つかの実施形態による、自律モバイル・デバイスにおけるタスク割り当てのための方法を示すフローチャートである。
【発明を実施するための形態】
【0009】
[0013] 実施形態の詳細な説明
[0014] 例示的な実施形態は、添付の図面を参照しながら説明される。図において、参照番号の左端の数字は、その参照番号が最初に現れる図を示す。便宜上、同一の又は同様なパーツに言及するために、同じ参照番号が図面全体を通じて使用されている。開示される原理の具体例及び特徴が本件で説明されているが、開示される実施形態の精神及び範囲から逸脱することなく、修正、適合、及びその他の実装が可能である。本明細書を通じて、「一実施形態」、「この実施形態」及び同様な言い回しに対する言及は、実施形態に関連して説明される特定の性質、構造又は特徴が、1つ以上の実施形態のうちの少なくとも1つに含まれることを意味する。従って、本明細書中の様々な箇所におけるこれらの言い回しの出現は、必ずしも同一の実施形態を参照しているとは限らない。更に、特定の性質、構造又は特徴は、1つ以上の実施形態において適切な任意の方法で組み合わせられてもよい。以下の詳細な説明は、(明細書に含まれる場合に)クレームによって示されている真の範囲及び精神とともに、単に例示としてのみ考慮されることが意図されている。
【0010】
[0015] 自律モバイル・デバイスにおける分散されたタスク割り当てを完成させ最適化するための技術の実施形態が本件で説明される。一実施形態において、プラン(plan)は、特定のゴールを達成するために、又は特定の問題若しくは問題のうちの部分的な問題を解決するために、実行されることになる一連のタスクである。タスクはプラン(又は計画)の一部である。タスクを実行すると、1つ以上の部分的な問題を解決する。タスクやタスクの割り当ては、複数の方法で定めることが可能であり、制限的であるように解釈されるべき理由はどこにもない。一実施形態において、タスクは、次々に実行される動作のリストであってもよい。これは、倉庫のような動作環境においてラックからペイロードを取り出すために必要とされるステップのような、複雑な方策又は複数のサブ・タスクを定式化するために使用される構造であってもよい。ロボットの数とタスクの数が定められると、ロボットはタスクの実行を開始する。一実施形態では、プランの実行を制御することは、複数のプランの実行値を決定することを含むプラン実行のライフサイクル全体を管理することを含む。例えば、プランの実行を制御することは、プランの内の様々なタスクの、様々な自律モバイル・デバイス(本件では、しばしばエージェントと言及される)へのタスク割り当てを決定することを含む。これらのプラン実行値は、プラン実行の様々な段階においてだけでなく、環境又はロボットの状態の変化に基づいてリアル・タイムで決定される可能性もある。例えば、タスクの優先度や緊急度の変化が、割り当ての完了に伴って生じる。割り当てられたタスクは、その優先度を、1つ以上の状況変化に基づいて変える可能性があり、それによりタスク割り当て全体を変更/更新する可能性がある。別の例では、割り当てられたタスクはキャンセルされる可能性があり、あるいはタスクが2つ以上のサブ・タスクに分割される可能性がある。別の例では、タスクの完了に関して、2つ以上のエージェント間で対立又は不一致が存在する可能性がある。このような状況では、タスクの割り当て方が動的に更新され、新しい仕方を生成することを必要とするかもしれない。
【0011】
[0016] 典型的に、マルチ・ロボット・システムでは、タスクの数は多く、タスク・ポイントに含まれる情報は複雑である。また、マルチ・ロボット・システムは、複数の異種ロボットを含む可能性もある。このような場合、グローバル探索アルゴリズムの演算コストは指数関数的に増加し、そのため、グローバル探索アルゴリズムでは、指定された時間内にタスク割り当て問題の最適解を発見することが困難である。従って、グローバル探索アルゴリズムは、大規模なマルチ・エージェント動的タスク割り当て問題を解くには適切でない。大規模なシステムでは、タスク割り当てはリアル・タイムの要件を満たさなければならず、特定の時間内に解を求めようとする傾向があるが、これは必ずしも最適な解ではない。従って、本方法は、時間制約を伴うマルチ・ロボット動的タスク割り当て問題の研究に重要な意味を有する。タスク割り当ての大部分は、タスクに関して静的である従来のオークション・アルゴリズムを採用し、ワン・タイム・オークション・アルゴリズム(one-time auction algorithm)が採用される。しかしながら、多数のタスク・ポイントと動的な変化がある場合には、この方法は、複数の変化に対処すること、優先順位の変更をスケジューリングすること、及び最適化された解を得ることに失敗してしまう。
【0012】
[0017] 本開示の様々な実施形態は、倉庫のような動作環境における上記のシナリオを克服するために、自律モバイル・デバイスにおける分散されたタスク割り当てを完成させるためのシステム及び方法を提供する。言い換えれば、本開示は、自律モバイル・デバイス・システムにおける分散されたタスク割り当てと、報奨関数(bounty function)に基づく方法とを統合することを提案する。報奨関数は、タスクに対して割り当てられる数であってもよい。ノードに関連付けられた報奨関数の各々は、ビッド値(bid value)と呼ばれてもよい。ビッド値はコストに関連付けられ、例えば、ロボットがエッジを経てソース・ノード(あるノード)から宛先ノード(別のノード)へ移動するタスクを実行するようにスケジューリングされる場合、タスクの優先度又は緊急度の尺度は、エッジを通って移動するためのビッド値と言及される。本方法は、タスク割り当てプランナーを用いて、自律モバイル・デバイスにおける分散されたタスク割り当てを統合する最適化プロセスを提供するものであり、この場合において、タスクに関連する情報は2つ以上のシステム/エージェント間で共有される。本開示は、トランザクションのオークション・エコノミクスに基づいて、大規模タスク割り当て問題を分散方式で動的に解決するためのシステム及び方法を提供するものであり、この場合において、各エージェントは、割り当てられたタスクを最適化することに加えて、割り当ての解に収束するためにコスト評価に関する情報を共有することによって連携及び協働する。また、最適化プロセスは、ビッド値に関連する情報を動的かつ連続的にブロードキャストすることにより、対立解決及び/又はデッドロック状況を排除する。
【0013】
[0018] 本開示の実施形態は、自律モバイル・デバイスにおけるタスク割り当てを統合するための分散されたアーキテクチャを提供する。タスク割り当てプランナーは、タスクの完了に関連付けられる値を割り当てることによって、タスク割り当てを最適化し、その場合において、値は関数であってもよく、そのような関数は時間とともに単調に増加してもよいし、既存の最低ビッド値以上であってもよい。更に、タスク割り当てプランナーは、タスクの優先度及び緊急度の変化、ビッド値の撤回、タスク分割、対立解決、及びローカル・ビッド・コンビネーション探索のための機能も提供する。本開示はまた、それら現在の割り当てバスケットに対して一度に変更又はビッドを行う方法を提供し、これは、現在のエージェントの既存のビッドに依存する他のエージェントのコスト評価を安定させる。例えば、タスク割り当てにおいて、複数のエージェントのうちの各エージェントは、彼ら自身の割り当てコンビネーション空間(即ち、複数のエージェント内のコンビネーション空間)におけるローカルな最適解を独自に探索するが、ビッドをブロードキャストすることでコスト評価を動的に更新すること、及びあるエージェントが他のエージェントよりも良い値を付けた場合に(アウトビッドした場合に(outbid))、近隣のコンビネーションと互いに連携して協調すること、によって相互作用する。
【0014】
[0019] 本開示は交換可能な用語であって1つ以上の実施形態で交換可能に使用されてもよい種々の用語に言及していることが理解される。例えば、‘ノード(nodes)’という用語は、本発明の目的や実装に何ら変更も加えることなく、‘接続点(junctions)’又は‘ツリー要素(tree element)’又は‘グラフ要素’によって置き換えられてもよい。このような交換は、限定とは考えられない可能性があり、このような交換は、本発明の範囲内にあると考えられる。一実施形態において、自律車両(又は自動運転車)は、動作環境内におけるノードと言及されてもよく、その結果、自律車両は、ノードに駐車されているもの、ノードで待機しているもの、ノードを経由して移動しているもの、ノードで停止しているもの、ノードでナビゲーションを完了しているもの等のうちの1つ以上であってもよい、ということが理解される。また、‘ルート(route)’、 ‘ルート・プラン’、‘軌道’、‘トラベル・プラン’、‘ナビゲーション・プラン’等の用語は、同義語を示している可能性があり、ユース・ケースのシナリオに応じて異なる場面で使用されることも理解される。1つ以上のプロセス・ステップの実行は、プロセス・ステップの実行の結果である出力をもたらすことが理解される。
【0015】
[0020] 本件で説明される技術は、自律モバイル・デバイスにおけるタスク割り当てを最適化するロバストなクラウド・プラットフォームに関連している。例示的な実施形態において、プラットフォームは、複数のデータ構造を利用して、動作環境を表現し、ルート・プランを生成し、あるノードから別のノードへのデバイスの最適化された移動を可能にする。プラットフォームは、簡単なシナリオから複雑なシナリオに至るまでタスク割り当て計画を分析するための様々な技術を提供し、例えばそのようなシナリオは、2つ以上のロボット間の循環依存性(cyclic dependency)又は対立解決(dispute resolution)、複数のタスクの割り当て、状況に基づいてタスクに関連するビッド値を撤回すること(retracting)等のようなものである。1つ以上のタスク割り当てプランを分析しながら、本システム及び方法は、ヒューリスティクス、コスト関数、メトリック等を適用して、経路を反復的かつ動的に計画することが可能な新しいタスク割り当てプランを特定することができる。例示的な実施形態では、1つ以上のタスク割り当てプランを分析しながら、本システム及び方法は、タスクの緊急度又は優先度の変化に基づいて、報奨関数(ビッド値)を動的に作成又は削除又は更新することができる。別の実施形態では、タスクは、1つ以上の相互依存性とともに独立して実行されることが可能な複数のサブ・タスクに分解されることが可能である。このような場合、各サブ・タスクは個々のビッド値にマッピングされる。別の例では、本方法は、最適ではない割り当てに導く特定のシナリオで、ビッドが撤回されることを許容する。しかしながら、ビッド値に比例するペナルティが、オークションに課されて支払われる可能性があり、ビッドの頻繁な撤回を思いとどまらせ、入札者(bidder)間の安定した価格発見を維持する。例示的な実施形態において、システム又はクラウド・プラットフォームは、タスク割り当てを分析及び最適化するために、速度スケーリング、アップ・サンプリング、パッシブ経路、停留可能なノード、非オーバーラップ・ノード、優先度メトリック、時間ペナルティなどを含む、データ又は複数の技術のうちの1つ以上又は組み合わせを利用することができる。次いで、システムは、最適化されたタスク割り当てを1つ以上の自律車両に分配することができる。自律モバイル・デバイスにおけるタスク割り当てのための上述したシステム及び方法の詳細な説明は、
図1ないし
図4に関連して示されるイラストを参照して説明される。
【0016】
[0021] 次に、図面、より具体的には
図1ないし
図4を参照すると、好ましい実施形態が示されており、これらの実施形態は以下の例示的なシステム及び/又は方法の文脈で説明され、図中、同様な参照符号は一貫して対応する特徴を示している。
【0017】
[0022]
図1は、本開示の幾つかの実施形態による自律モバイル・デバイスにおけるタスク割り当てのためのコンピュータで実現されるシステムを示すブロック図である。一実施形態では、システム100の目的は、トランザクション・オークション・エコノミクスに基づいて、大規模なタスク割り当てを分散された方法で動的に最適化するシステム及び方法を提供することであり、ここで、複数のエージェントのうちの各エージェント/ロボットは、自ら最適化することができ(発見的なコスト推定)、更にコスト評価に関する情報を共有することによって連携し、それによって割り当ての解に収束することができる。システム100は、タスク割り当てプランを最適化するために処理デバイスによって実行されるコンピュータ読み取り可能な命令を含む1つ以上の処理デバイス及びストレージ・デバイスを含んでもよい。システム100は、ユーザーの直接的なアクティブな管理の有/無によらない、コンピュータ・システム・リソースのオンデマンドな利用可能性のあるものと考えられてよいクラウド・プラットフォーム110を備える。クラウド・プラットフォームは、タスク割り当てプラン又は軌道を生成し且つ格納するための1つ以上のプロセッサ及びメモリを含む。一実施形態では、クラウド・プラットフォーム110は、タスク割り当て、タスク割り当てに関連する経路プラン、軌道、及び関連するデータであって本件で説明されるようなタスク割り当てプランを生成するためのデータ、を記憶するためのデータベース111を含む。一実施形態において、関連データは、デバイスの状態情報、統計、その他の情報であってナビゲーション、ツリー又はグラフの横断、前提条件、経路テーブルなどに関する情報であってもよい。クラウド・プラットフォーム110は、タスク割り当てプランナー112を含み、これは、タスク割り当ての最適化に関連する主要機能を実行し、大規模なタスク割り当てを分散方式で動的に最適化するための、1つ以上のプロセッサ及びメモリを含む。一実施形態では、タスク割り当てプランナー112は、複数の自律モバイル・デバイスに対するタスク割り当てに関連する様々な機能を実行するために、サーバー、システム、同等なデバイス、ソフトウェア、又はハードウェア構成要素として機能することができる。一実施形態では、タスク割り当てプランナー112は、異種の自律モバイル・デバイスのプール内のリーダー的な自律モバイル・デバイス(leader autonomous mobile device)であってもよい。
【0018】
[0023] 一実施形態では、タスク割り当てプランナー112は、表現及び単純化を目的として、クラウド・プラットフォーム110のモジュールとして示されている。しかしながら、タスク割り当てプランナー112は、タスク割り当て計画に関連する機能に関与する任意の他のシステム又はプラットフォームの構成要素として機能することが可能である。クラウド・プラットフォーム110は、その主たる機能がタスク割り当てであるディスパッチャ113を含み、どの自律モバイル・デバイスが特定のタスクを特定の時間に実行すべきかを、他の隣接する自律モバイル・デバイスによってブロードキャストされた情報に基づいて決定する。ディスパッチャ・モジュールは、通信レイヤ124におけるタスクに関連する詳細を、1つ以上の自律モバイル・デバイスへ連絡し、これらのデバイスは所与の時点で実行されるべきタスクと宛先を知る。次いで、自律モバイル・デバイスは、通信レイヤ124を介して、タスク割り当てプランナー112と相互作用するようにプログラムされている。また、システム100はダッシュボード116を含み、これは、障害物の地図、グラフ、ツリー構造、その他の何らかの関連入力のような入力を受け取るため、及びグラフ、ツリー、シミュレーションされた環境などの表現と地図とを表示するために使用されてもよい。ダッシュボード116は、UI 118、シミュレータ120、及びデザイン122(マルチ・ロボット・タスク割り当て計画及び自律モバイル・デバイス機能に関連する他のタスクに関連する様々な機能のためのもの、例えば、自律モバイル・デバイスが、地図又はUI上のある位置から別の位置への移動を指示すること等)を含む可能性がある。UI 118は、障害物マップ、又はタスク割り当て計画に関連するその他の入力、を受信するために使用されてもよい。シミュレータ120は、動作環境における自律デバイスのナビゲーション経路を表現するマップを含むシミュレーション環境を提供する。システム100は、複数のロボット、例えばロボット126やロボット128のような異種の自律モバイル・デバイスをサポートする。
【0019】
[0024] 本件では、複数の自律モバイル・デバイスにおけるタスク割り当てに関連する様々な技術が説明されている。システムは、タスク割り当てプランナーを含むクラウド・プラットフォームを含む。タスク割り当てプランナーは、倉庫、建設現場、又は病院のような動作環境に関連する1つ以上のコンポーネントを備える。一実施形態では、ノードは、動作環境における空間領域と考えられてもよい。タスク割り当ては、1つ以上のタスクを最良の推定として又は要求に基づいて割り当てる複数のモジュールを含む。モジュールは、重要な意思決定シナリオのために、例えば、タスクを複数のサブ・タスクにマッピングするために、1つ以上のタスク割り当てを分析することができる。モジュールがタスク割り当てプランを分析した後に、システムは、タスク割り当てプランナーを使用して、タスクの配分を、分析に基づいて最適化する。最適化されたタスクは、1つ以上の自律車両に分配される。
【0020】
[0025] 動作環境は、倉庫、病院、建設現場、オフィス、ドックヤード、造船所、道路、鉄道などを含む可能性がある。また、シミュレータ120は、複数のエージェント間でタスク割り当てを最適化して統合するために、自律デバイスに、特定のプロセスを実行するように指示するために使用することが可能である。命令のうちの1つは、あるエージェントのタスクに、他のエージェントを越える影響を及ぼす可能性がある優先度又はパラメータを提供することを含む可能性がある。デザイン122は、障害物マップのような入力を編集する設計環境を提供し、カスタマイズされたステータス情報、例えば、特定の時間における動的な衝突可能性のような入力、例えば特定の日時の交通状況に基づいて所定の自律デバイス(例えば、自動運転車両)が特定の日時に特定の交差点に到着すること、を提供することができる。入力又は命令は、ダッシュボード116の任意の構成要素又はシステム100(例えば、倉庫管理システム又は制御システム)の他の構成要素によって提供されてもよい。一実施形態では、倉庫管理システム又は制御システムは、自律デバイスと連携してタスク割り当てシナリオを生成するために、クラウド・プラットフォーム100の構成要素とのインターフェースを構成することができる。種々の外部又は内部の構成要素の接続は、ビアや通信レイヤ124を解するものであってもよいし、又は他の任意の非限定的な通信手段によるものであってよい。通信レイヤ124は、カスタマイズされたロボティクス・ソリューションのために、顧客又はその他の関係者が、それらのロボティクス・ソフトウェア又はハードウェアを統合することを許容するようにカスタマイズされてもよい。システム100及びその構成要素の1つ以上の機能は、
図2-4に関して更に詳細に説明される。
【0021】
[0026]
図2は、本開示の幾つかの実施形態による自律モバイル・デバイスにおけるタスク割り当てのための流れ図を示す。一実施形態では、タスク割り当てプランナーのアーキテクチャは、エージェントによって自己設計され、割り当てられたタスクを終了して完了させるためのプロセス・ステップを含んでもよい。プライマリ関数200は、動作環境におけるタスクに関連するアプリケーション又は機能に基づいて、ユーザーによって作成される。プライマリ関数(primary function)は、報奨関数とも言及されるものであり、時間とともに単調に増加する関数であって複数のエージェントの中で最低のビッド以上である関数に基づく所定の基本価格(base price)である。一実施形態では、エージェントは、決定されたプライマリ関数、即ち、報奨関数又は基本価格に基づいて値又はビッドを提案し、オークション202を開始することができる。言い換えれば、ビッドが基本価格よりも最も低い場合、報奨関数が割り当てられるように想定されている(204)。オークションという用語は、タスクに関連する値又はビッド値に言及するために使用される可能性がある。典型的なシナリオでは、いったんビッド(又は入札)が開始されると、それはタスクを完了するように期待される。この例では、タスクの完了のプロセスは、エージェントによって監視され、エージェントは、タスクに関連するオークションを行う者であり、本件では割り当てられたオークションのオーナー(owner)と言及される。開始されたタスクの完了が確認されると、合意された価格が支払われる。
【0022】
[0027] タスクに関連するエージェントに対応する割り当てられた値は、動作環境内の1つ以上のエージェントとの対立(dispute)206に入る可能性がある。一実施形態では、オークションのオーナーは、オークションの創設時に、報奨関数に加えて、預託金(deposit amount)を作るように要求される。オークションのオーナーによって行われる各々のビッドは、他の入札者と同額の預託を必要とし、これは、そのビッド値がアウトビッドとされた場合に返還される。これは、オークションが指定された場合に、オーナーと指定された入札者の両方が、指定されたタスクの完了まで、利害関係において預託を有することを保証する。対立が発生し、決定がなされると、対立の勝者の預託は返還され、敗者の預託は、タスク割り当てプランの指定されたアービトレータに支払われる。アービトレータが応答しない場合、オーナー又は入札者の何れかは、彼らの預託を他者に明け渡すことによって、対立を放棄することができる。これは、プロセスが1人の当事者によって行き詰まらせることはできないことを保証する。何れの方法においても、対立は解決されることが可能であり、タスクは、タスクの完了、又は完了によらないタスクの終了、の何れかによって終了する可能性がある(208)。更に説明されるように、開始されたオークションは撤回される可能性があるが、その撤回を補償する。オークションのプロセスは、エージェントに割り当てられた複数のタスクに対応するエージェントのヒューリスティックなコスト推定に基づいている。このプロセスは、トランザクション・オークション・エコノミクスに基づいて、大規模なタスク割り当てを分散方式で動的に最適化し、この場合において、複数のエージェントのうちの各エージェント/ロボットは、動作環境中の1つ以上のエージェントとともに、コスト評価に関連する情報を協働して統合することによって、それ自体について最適化することが可能である。
【0023】
[0028] 本開示は、更に、時間ベースのタスク優先度を提供し、例えば、多くのタスクは即座に割り当てられて完了されることを必要としないが、将来的に一定の厳格な又は緩やかな期限を有し、これは、緊急性と共に増加する報奨関数によってモデル化されることが可能である。
図2に示されるように、210において、状況が変化すると、タスクの優先度及び緊急度も変化し、その変化に基づいて、オークションのオーナーは、ビッドを撤回したり新たなビッド値を提案したりする可能性がある。このような場合、例えば、オークションの報奨関数は、オークションのオーナーによって更新され、例えばタスクが、急激に、より緊急性を帯びた場合に、ビッドを引き上げることが可能である。代替的に、エージェントは、タスクが優先順位を落とした場合に、時間を遅らせたり、時間軸上で報奨関数を引き延ばしたりすることが可能である。別の変形例では、入札者(現在の奨励額よりも高い価格でオファーを行う近隣の他のエージェント)は、額をつり上げて対抗することによってオーナーが受け入れるように促す。エージェント(入札者と呼ばれる)により提案されたビッドは、オークションのプロセスの間に継続的に評価され、再評価される。しかしながら、セントラル化されたシステムが存在しない場合には、本システムのように、オークションが責任をとらないかもしれないシナリオが存在する可能性がある。例えば、入札者は、タスクが完了している旨をそうではないと知りつつ主張するかもしれず、又は逆に、オーナーが、タスクは不完全である旨をそうではない場合に主張する可能性がある。このような場合、対立は、オークションの創設時に指定された第三者機関にまでエスカレートする。しかしながら、分散システムの設計は、中央の権限ができるだけ呼び出されないようにするものであり、これは、そのような虚偽の主張を思いとどまらせる、ローカルな解決を促すペナルティによって達成される。
【0024】
[0029] 202における開始又は対立206の後に、ビッドが撤回される場合216があり得る。例えば、タスクの割り当てにおいて、入札者は、唯1つのタスクではなく、タスクのセットを含めてもよい。このような例では、個々のタスクの各々に対するビッド値の評価は複雑であり、なぜなら、個々のタスクの各々は、タスクのセット内の他の個々のタスクに関連付けられ又はリンクされるからである。例えば、あるビッドがタスク1に対して行われ、タスク2に対するビッドに勝利することを予期しているとする。しかしながら、何れかの時点で、タスク2はエージェントのビッド限度を超えている可能性があり、そのような場合、タスク1は再評価される。従って、現在のプランが変わった場合、例えばシナリオが次善の割り当てに至った場合、ビッドは、タスク割り当てプランのプロセスにおいて撤回される可能性がある。しかしながら、ビッドが撤回される場合、ビッドの頻繁な撤回を思いとどまらせ、入札者間の安定した価格発見を維持するために、ビッド値に比例したペナルティが課され、オークションに払い込まれる。このプロセスは、柔軟性を促すが、オークション期間の境界を定める。単一のビッドが存在する限り、そのオークションは最終的には終了するが、オークションは、最低ビッドが現在の報奨値に近いならば、より速く終了するであろう(この場合、タスクはより速く完了する)。
【0025】
[0030] 本システムは、時間に敏感な割り当てに有利なシステム及び方法を提供するものであり、この場合において、現在のオファーが、割り当てられたタスクを完了するのに十分に良好である場合には、より少ない時間しか費やされない。一実施形態では、本システム及び方法は、伝統的なオープン・アウト・クライ・ファースト・プライス・オークションの恩恵、即ちオープンな競争及び価格発見の促進という恩恵を保持し、各々の入札するエージェントが、1つ以上のエージェントのタスク評価に基づいて、独立して最適化することを可能にする。これにより、希望する場合には、入札するエージェントが、現行の基本価格よりも低い入札を行うことによって、オークションに即座に勝つ(落札する)ことを促す。これはまた、割り当てが入札者の側で時間にセンシティブなシナリオにおいて、ビッドの往復交換のシステム・オーバーヘッドを回避する。本開示の実施形態はまた、タスク割り当てプランを処理するための1つ以上の条件を提供し、即ち、タスクのために作成された報奨関数の最終値は、以前に作成された報奨関数よりも低くすることはできない。この条件は、既存のビッドの入札者の期待価値を維持するために、オークションの報奨金からの資金の引き出しに近い。一実施形態では、オークションのオーナーは、タスクがもはや必要とされない場合、ビッドを撤回(212又は214)又はキャンセルすることができる。ビッドの撤回又はキャンセルの場合、現在のシステムは、オークションのオーナーから、即ち入札の開始者からの、そのような撤回又はキャンセルに対するペナルティをもたらす。ペナルティを課すことは、開始されたオークションの頻繁な撤回やキャンセルを思いとどまらせる可能性がある。タスク割り当てソリューションのための分散アーキテクチャでは、入札プロセスに参加する各エージェントに関連する情報は、タスク割り当て全体を決定し、タスク割り当てプランを生成するために重要であり、即ち近隣のエージェントに関連するタスクは、特定のエージェントに対するタスク割り当てを決定する場合に考慮される要因である。
【0026】
[0031] 一実施形態では、複数のタスクのうちのタスクは、相互依存性がほとんどなく独立して実行することが可能な複数のサブ・タスクに分割されてもよい。複数のサブ・タスクに対して、各タスクは、それ自身の個々のオークションにマッピングされることが可能である。一変形例において、各サブ・タスクは、オリジナルのメイン・タスクの一部分として獲得されず、メイン・タスクの値は、複数のサブ・タスクの各サブ・タスクの完了に結び付けられる。個々のサブ・タスク各々について別個に報奨関数を指定することは複雑な状況であるかもしれず、従って、複数のタスクは、1つの報奨関数に関連するメイン・タスクに結び付けられるか又はマッピングされる。別の変形例において、メイン・タスクは部分的に完了することが可能であり、即ち、オークションに出される完了したタスクの一部分のみが、完了している。また、このようなタスクの完了は、複数の入札者の一丸となった労力を含む可能性があり、それぞれがタスクのうちの異なる部分を完了している。本開示は、タスク分割のためのシステム及び方法を提供する。オークションに関連するメイン・タスク内の複数のサブ・タスクを分割するタスクにおいては、ユーザーは組み合わせバリュー関数(combined value function)を提供する。このようなタスクのために開始されたオークションは、特定の組み合わせをタスクの入力として考慮し、組み合わせの値を出力し、これは、メイン・タスクの部分が、組み合わされたバリュー関数に基づいて複数のサブ・タスクに分割されることを意味する。例えば、1つのビットにおける全てのタスクの完了のためのバルク優先度(bulk preference)は、より大きな組み合わせであるほど高い値を返す組み合わせバリュー関数で指定されることが可能である。例えば、エージェントは、オークション内のサブ・タスクの任意の組み合わせに対して入札することができる。次いで、各ビッドは、処理される前に、組み合わせ値によってスケーリングされ、サブ・タスクの異なる組み合わせに対するビッドを、直線的に比較することを可能にする。主要な報奨関数は、単一のビッド値と比較する点を除いて同じままであり、オークションは、決定された組み合わせの値と比較される。オークションが指定され、完了し、支払いが行われると、完了したサブ・タスクは、残りのオークションから除外されることが可能であり、残りの報奨関数は以前に支払われた額に比例してスケール・ダウンされる。全てのサブ・タスクが完了するまで、削除のプロセスは反復される。
【0027】
[0032] 本システムの実施形態は、非セントラル化された分散システムを含む。本システムは、インフラストラクチャ及びインセンティブ・スキームを提供することにより、個々のエージェント側の制御を求めることとは対照的に、自己最適化戦略をベースラインとして設計される。言い換えれば、入札エージェントが一度に1つのタスクを行う場合、そのビッドの値は、その値を、1つ以上のエージェントによる全ての既存のタスク・オークションと比較することによって最大化され、指定されたタスクを完了するまでにかかったコストが差し引かれた、報奨を受けた現在の値に基づいて各オークション・ビッドを評価する。ゴールは、最も高い正味の値でオークションにビッドを提案することであり、これは、入札エージェントが、2番目に良いオプションがエージェントにとってより適したものになる前に、入札エージェントが支払うように提案しているものと同額に価格設定されたビッド値を意味する。例えば、現在のビッド値よりも優れた何らかのビッド値は十分であるかもしれないが、最も高い価格で入札することは、割り当てをより早く収束させることを可能にする。前述の段落で説明したように、タスクは複数のサブ・タスクに分割されてもよい。マルチ・サブ・タスク・シナリオでは、入札エージェントは、複数オークションのコンビネーションに同時に参加する。オークションのコンビネーションは、評価の回数や、実行されるべき再評価に起因して複雑化する可能性がある。従って、このような複雑な状況では、ローカルな探索コンビネーションが実行される。ローカルな探索コンビネーションの第1ステップでは、グラフとして、タスク割り当ての可能なコンビネーションの探索空間が決定され、この場合において、全てのノードは、割り当てられたタスクの数に基づいて特定のコンビネーションによるものである。2つのコンビネーションに対する2つのノード間のエッジは、単独のアイテムによるものと相違する可能性がある。例えば、何も割り当てられていないコンビネーションが、タスクAの割り当てを受けたコンビネーションに接続され、なぜならそれらは1つの割り当ての分だけ相違するからであり、一般に、各エッジは、落札すること、より高値で入札すること、入札を撤回すること等のような1つのオークションで行われる可能性がある1つのイベントを表現する。割り当てられたタスクの数に基づく特定のコンビネーションは、
図3に関連して更に詳細に説明される。
【0028】
[0033]
図3は、本開示の幾つかの実施形態によるシステム・アーキテクチャの結果的なグラフの例示的な視覚化である。
図3に示すように、各エージェントは、複数のタスク、例えば、タスク1、タスク2、タスク3、タスク4、....タスクn 302の割り当てを受ける。また、各エージェントは、スロットの束(bundle)、例えば、割り当てられた複数のタスクのうちの各タスクについて、スロット1、スロット2、スロット3及びスロット4 304を含む。一例において、エージェント(ここでは、エージェント1)に対する制限は、収容又は実行されるべきタスクの4スロットを含む可能性がある。エージェントに割り当てられた各タスクは、1つ以上の基準を含む可能性があり、その基準に基づいて、エージェントはスロットの束を編成することが可能である。例えば、1つ以上の基準は、重量制限又は形状制限を含む可能性があり、これは、特定の重量制限アイテムのみが一部のロボットに適合する可能性があること、又はロボットによってピック・アップされるように特定の形状が設計されていることを意味する。1つ以上の基準は、他のエージェントと連携しながら、タスクをどのように束ねるかを決定してもよい。決定されたスロットのバンドルに基づいて、各タスクについてコストが推定される。例えば、タスク1のコスト推定は、割り当てられたタスクを実行するために距離の観点からロボットがどの程度遠くへ移動するように要求されているかに基づいて決定される。一実施形態では、コスト推定は、タスクを実行するためにどれだけのコストがかかるか、マイナス、エージェントがどれだけ支払いを受けるか、を合計したものが、完了したタスクの正味コストである。最小の正味コストを伴うものは、エージェントが入札を目指しているものである。しかしながら、入札プロセスの一部である近隣エージェントについて何らかの変化があった場合、状況の変化に応じてビッドは変更される。306に示すように、4つのタスクは4つのノードによって表現されている。第1ビッドは、エージェントのコスト推定に基づいて、タスク1に対して入札される。次いで、何らかの状況の変化があった場合に、ビッドはタスク2に変更され、他のものよりも優先される。別の変形例では、ビッドは、スロット2においてタスク1に対して入札されるかもしれない。同様に、タスク1が他の状況変化に基づいて変化すると、タスク2はスロット2に移動される。一般に、タスクに対してビッドが配置されると、それは、入札プロセスの一部である近隣エージェントにブロードキャストされる。配置されたビッドに基づいて、エージェントは、シングル・ホップ(single hop)のノードへトラバースする。エージェントは相互に依存しているので、一度に1ホップしか許容されておらず、その結果、エージェントがプランを頻繁に変更しないように強制する。4つのノード内のローカル探索コンビネーションは、ヒューリスティックなコスト推定に基づくエージェントの自己最適化で各タスクの完了を可能にする。ヒューリスティックなコスト推定は、コストを反復的に最小化すること、コスト最適化、及び価格発見に基づいている。各エージェントは、システムのルート・プランナー(図示されていない)からナビゲーション・マップを受信し、タスクを完了するために或るノードから別のノードへトラバース(又は移動)する距離を推定する。各エージェントは、他のエージェントから受信したデータとナビゲーション・マップに基づいて、提案したビッドを変更したり又は更新したりすることが可能である。例えば、エージェントがタスク1(
図3においてスロット1を占有しているノード)に対して入札している場合、タスク1はそのエージェントにとって最低又は最適な推定である。しかしながら、状況は、更新されたデータに基づいて変化する可能性があり(例えば、タスク1はもはや最低ビッドではないかもしれない)、エージェントはスロット1においてタスク1の代わりにタスク2に対して入札する可能性がある。タスク2から、エージェントはスロット1において割り当てられたタスクに戻らないかもしれない。次いで、再び動的に変化している推定により、スロット1からスロット2へシングル・ホップで、エージェントは再びタスク1又はタスク2に対して入札するかもしれない。シングル・ホップは、コンビネーション・グラフ(
図3に示されている306)の動的なトラバーサルを保証し、他のエージェントが他のノードへトラバースすることを強いる。割り当てられる何百ものタスクが存在し、(束ねるタスクを探索するために)タスクのコンビネーションを探索することによって、ヒューリスティックなコスト推定が適用される点で、コンビネーション探索は有利である。
【0029】
[0034] 本開示の実施形態は、現在のコンビネーションをローカルに探索するためのシステム及び方法を提供する。ノードのローカルな探索のコンビネーションは、シングル・オークションとビッドのコスト推定とを決定するために、直接的に接続されているノードの各々の値を評価する。本システムは、現在のビッド値に対するアウトビッドについて、現在のコンビネーションにおける割り当てを追跡する。アウトビッドに基づいて、オークションは、現在のビッドより良い値を付ける(アウトビッドしている)別のノードへ遷移する。アウトビッド・ノード(outbid node)は、何らかの別のローカル探索コンビネーションに対する結果のコンビネーションと言及される。前述のステップは、動的に且つ連続的に繰り返され、現在の割り当てのコンビネーションに影響を及ぼす最高値を獲得し、そして、現在のノードの値が全ての近隣ノードよりも高くなると停止する。本システム及び方法は、現在の割り当ての束に対して一度に1つの変更又は入札を行うようにエージェントを制約するという利点を有する。単一の変更又は入札は、現在のエージェントの既存のビッドに依存する他のエージェントのコスト評価を安定化させる。一般に、全てのエージェントは、独自に彼ら自身の割り当てコンビネーション空間の中でローカルな最適解を探索するが、動的に相互作用し、入札をブロードキャストすることによりコスト評価を更新し、あるエージェントが別のエージェントをアウトビッドした場合に、近隣のコンビネーションへ互いに進む。
【0030】
[0035]
図4は、本開示の幾つかの実施形態による、自律モバイル・デバイスにおけるタスク割り当てのための方法400のフローチャートを示す。方法400は、コンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、コンピュータ実行可能命令は、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロシジャ、モジュール、ファンクション等を含むことが可能であり、これらは特定の機能を実行したり、又は特定の抽象データ・タイプを実装したりするものである。本方法400はまた分散されたコンピューティング環境で実施されてもよく、その場合において、機能は通信ネットワークを介してリンクされる遠隔処理デバイスによって実行される。方法400が説明される順序は、限定として解釈されるようには意図されておらず、任意数の説明される方法ブロックが、方法400又は代替方法を実装するために任意の順序で組み合わせられることが可能である。更に、方法400は、任意の適切なハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで実装されることが可能である。一実施形態では、フローチャートに示される方法400は、システム、例えば
図1のシステム100によって実行されてもよい。
図4の方法400は、
図1ないし
図3を参照しながら以下でより詳細に説明される。
【0031】
[0036]
図4を参照すると、図示された実施形態において、方法400は402で開始され、本方法は、環境の中で動作している複数のエージェントのうちのエージェントに割り当てられた複数のタスクのうちのタスクに値を関連付けることを含む。関連付けられる値は、アプリケーションに基づいてユーザーによって決定されたプライマリ関数に基づいている。一実施形態では、エージェントは、決定されたプライマリ関数、即ち報奨関数又は基本価格に基づいて値又はビッドを提案し、オークションを開始することができる。言い換えれば、ビッドが基本価格よりも低い場合には、報奨関数が割り当てに考慮される。オークションという用語は、タスクに関連する値又はビッド値を指すために使用されることが可能である。プライマリ関数は、時間とともに単調に増加する関数であって複数のエージェントの中で最低のビッド以上である関数に基づいて予め決定された基本価格又は基本値である。一般に、いったん入札が開始されると、それはタスクを完了するように期待される。タスクの完了プロセスは、エージェントによって監視され、エージェントは、タスクに関連するオークションを行う者であり、本件では指定されたオークションのオーナーと言及される。開始されたタスクの完了が確認されると、合意された価格が支払われる。一実施形態では、タスクに関連付けられる提案された値は、ユーザーによって決定されたプライマリ関数よりも低い。提案された値が予め定められた基本価格より小さい場合、提案された値は割り当てられたとみなされる。別の実施形態では、エージェントは、所定の基本価格よりも高い値を提案するかもしれない。別の実施形態では、アプリケーション、タスクの緊急性、タスクの優先性、時間にセンシティブなタスク、又はオークション中の1つ以上の状況変化に応じて、エージェントは所定の基本価格を変更することができる。別の実施形態では、エージェントは、1つ以上の状況変化に基づいて、プライマリ関数よりも高い更新値を提案してもよいし、又はプライマリ関数を変更してもよい。柔軟性は、優先度に応じてアクションの進行を変更することを許容すると同時に、動作環境内の1つ以上のエージェントのアクションの進行によって制限される。
【0032】
[0037] 404において、本方法は、環境の中で動作している複数のエージェントのうちの1つ以上のエージェントから受け取った情報に基づいて、タスクに関連付けられた値を評価することを含む。評価のプロセスは、エージェントのコスト推定情報を1つ以上の近隣エージェントにブロードキャストすることによって、割り当てられたタスクを分散方式で最適化することを含む。エージェントは、動作環境におけるコスト評価、提案された値、優先度の変化などに関する情報を連携及び協働することによって、タスク割り当てを自己最適化することができる。1つ以上のエージェントから受信される情報は、タスクに対して提案された値、タスクを完了するために横断するように要求される距離、タスクの状態、動作環境のナビゲーション・マップ、及びルート・プランのうちの1つ以上を含む可能性がある。情報は、提案された値の別の値への変更を決定し、この場合も、1つ以上のエージェントから受信される連続的な情報によって決定される。
【0033】
[0038] 406において、本方法は、受信した情報に応答して、評価された値を動的に更新して、タスクに関連付けられる新たな値を生成することを含む。新たな値は、エージェントに割り当てられた複数のタスクに対応するエージェントのヒューリスティックなコスト推定に基づいている。1つ以上のエージェントから受信した情報に応答して評価値を動的に更新する方法は、自己最適化結果が得られるまでの連続なプロセスである。本件における自己最適化とは、タスクを完了するために要求される正味の値(net value)に依存するエージェントのタスク最適化を指す。エージェントは、同じタスクに対して値を提案する近隣の1つ以上のエージェントに関連する情報に基づいて、提案する最適化された値を決定する。また、本件における新たな値は、提案された値が評価/再評価される回数に応じて、第1の値、第2の値、又は第3の値などであってもよい。更に、最適化は、1つ以上の要因を含むヒューリスティックなコスト推定に基づいている。1つ以上の要因は、決定されたプライマリ関数に基づいて、タスクに関連付けられる値を提案すること、及び、動作環境における1つ以上のエージェントの各々に割り当てられた1つ以上のタスクに関連付けられる1つ以上のエージェントによって提案された値を参照して、タスクに関連付けられる提案された値を評価することを含む。言い換えれば、本方法のゴールは、最高の正味の値を伴うオークションに対してビッドを提案することであり、これは、2番目に良いオプションがエージェントにとってより相応しいものになる前に、入札するエージェントが支払を提案するものと同額に価格設定されたビッド値を意味する。例えば、現在のビッド値よりも優れた何らかのビッド値は十分であるかもしれないが、最も高い値を入札することは、割り当てをより早く収束させることを可能にする。
【0034】
[0039] 408において、本方法は、タスクに関連付けられるべき新たな値に基づいて、エージェントのためのタスク割り当てプランを生成することを含む。割り当てられたタスクは、生成されたタスク割り当てプランの完了に基づいて終了する。
図2に示すように、割り当てられたタスクは、エージェントによって関連付けられた値を確認することによって、割り当てられたタスクが完了した時点で終了する。言い換えれば、提案された値が満足され且つ合意された場合、その値はエージェントによって確認され、それによってタスクは完了する。また、複数のサブ・タスクが存在する場合には、それぞれのサブ・タスクの完了は、メイン・タスク全体の完了に結び付けられる。タスクが完全に終了するまで、タスクの部分的な完了のシナリオが存在するかもしれないが、このような場合には、部分的に合意された値のみが確認される。
【0035】
[0040] 一実施形態では、本開示は、値を関連付けるエージェントとタスクに関連付けることになる値を提案するエージェントとの間の対立を解決するための方法を提供する。1つの変形例では、タスクの完了に対してエージェントにより関連付けられた値を確認することによって、アービトレータが対立を仲裁することによって、対立は解決されてもよい。アービトレータは、プライマリ関数の設定時に指定され、アービトレータは、あるエージェントの関連付けられた値と、他者の提案した値とに基づいて対立の結果を決定し、誰がそのタスクを遂行するかを決定する。例えば、オークションが指定されたと考えられた後に、入札者はそのタスクを完了するように期待される。また、指定されたオークションのオーナーは、完了状態を監視し、いったん完了が確認されると、合意された価格を支払うように期待される。中央の権限によらず、各エージェントが自己最適化及び自己発見する非セントラル化されたアーキテクチャでは、タスクの完了に関して誤ったステートメント(statement)を生成する可能性がある。例えば、入札エージェントは、タスクが完了している旨をそうではないと知りつつ主張するかもしれないし、又は逆に、オーナーが、タスクは不完全である旨をそうではない場合に主張する可能性がある。このような対立は、ペナルティによって解決され、それは誤った発言を思いとどまらせ、ローカルな解決を動機付ける。このシステムでは、オーナーは、オークションの創設時に、報奨関数に加えて、預託金を用意するように要求される。各々の入札は、入札者から同額の預託を必要とし、これはその後にアウトビッドとされた場合に返還されることになる。これは、オークションが指定された場合に、オーナーと指定された入札者の両方が、利害関係において預託を有することを保証する。対立が発生し、評決がなされると、勝者の預託は返還され、敗者の預託は、アービトレータの口座に支払われる。アービトレータが応答しない場合、オーナー又は入札者の何れかは、彼らの預託を他者に明け渡すことによって、対立を放棄することができる。これは、何らかの1人の当事者によってプロセスを行き詰まらせることはできない、ということを保証する。
【0036】
[0041] 一実施形態において、本開示は、割り当てられたタスクの確からしいコンビネーション(probable combination)のためのローカル探索空間を提供する。ローカル探索空間は、エージェントに割り当てられた2つ以上のタスクの確からしいコンビネーションに対する探索空間を定義することによって提供される。2つ以上のタスクの確からしいコンビネーションのための検索空間は、2つ以上のタスクの現在のコンビネーションに基づいている。現在のコンビネーションは、エージェントに割り当てられた2つ以上のタスクをグループ化すること、及び、2つ以上のタスクのそれぞれに対応するエージェントによって提案された値に基づいて、エージェントに割り当てられた2つ以上のタスクの確からしいコンビネーションのための探索空間を更新することを含む。ローカルな探索のコンビネーションは、(
図3に示すように)割り当てられたタスクの各々に対応するノードによって表現される。各ノードは、エージェントによって提案されたビッドのシングル・オークションとコスト推定を決定するために、直接的に接続された各ノードの値を評価する。本システムは、現在のビッド値に対するアウトビッドに関し、現在のコンビネーションにおける割り当てを追跡する。アウトビッドに基づいて、オークションは、現在のビッドをアウトビッドする別のノードへ遷移する。アウトビッド・ノードは、何らかの更なるローカル探索コンビネーションの結果的なコンビネーションと言及される。前述のステップは、動的かつ連続的に繰り返され、現在の割り当てのコンビネーションに影響を与えるために最も高い値のオークションを獲得し、現在のノードの値が全ての近隣ノードよりも高くなると停止する。本システム及び方法は、現在の割り当ての束に対して一度に1つの変更又は入札を行うようにエージェントを制約するという利点を有する。単一の変更又は入札は、現在のエージェントの既存のビッドに依存する他のエージェントのコスト評価を安定化させる。一般に、全てのエージェントは、独自に彼ら自身の割り当てコンビネーション空間の中でローカルな最適解を探索するが、動的に相互作用し、入札をブロードキャストすることによりコスト評価を更新し、あるエージェントが別のエージェントをアウトビッドした場合に、近隣のコンビネーションへ互いに進む。
【0037】
[0042]
図1ないし
図4の様々な実施形態では、自律モバイル・デバイスにおけるタスク割り当てのための方法及びシステムが開示されている。本開示は、自律モバイル・デバイスにおけるタスク割り当てに関連する分野における技術的な問題を解決する。本件で説明される種々の実施形態は、トランザクションのオークション・エコノミクスに基づいて、大規模タスク割り当て問題を分散方式で動的に解決するステップを実装するものであり、この場合において、各エージェントは、自身に関して最適化する一方で、割り当ての解に収束するためにコスト評価に関する情報を共有する。本システム及び方法は、他のエージェントからのオファーを受け入れること、他のエージェントによって提案された値をカウンター・オファーすること、決定されたプライマリ関数より高い値を変更又は提案すること、のためのソリューションを含み、その結果、割り当てられたタスクは完了する。また、現在のシステム及び方法は、ビッドをキャンセルすること又はビッドを放棄することを容易にするが、そのようなキャンセル又は放棄に対するペナルティを課すことを提案する。本システム及び方法はまた、ヒューリスティックなコスト推定により、ローカルなビッド・コンビネーション探索のためのタスクの束を表すコンビネーション・グラフを提供する。
【0038】
[0043] 更に、本件で説明される種々の実施形態は、緊急性に伴って増加する報奨関数を作成することによって、柔軟性のある時間ベースのタスク優先度を特定する方法を提供する。これはまた、柔軟性があり且つ境界が定められたオークション期間を可能にする。時間ベースのタスクの優先度は、時間にセンシティブな割り当てに有利であり、その場合、現在提案されている値がタスクを完了するのに十分に良いものであるならば、僅かな時間しか費やされない。本システムは、オープンな競争及び価格発見を促進し、エージェントに割り当てられたタスクの査定、及び1つ以上の近隣エージェントに割り当てられたタスクの査定に基づいて、入札する(値を提案する)エージェントが独立して最適化することを可能にする。また、本システムは、現在の報奨価格よりも低い値を入札することを容易にし、それにより、割り当てが時間にセンシティブであるシナリオにおけるビッドの往復交換のシステム・オーバーヘッドを回避する。本システムは、ベースラインとして自己最適化戦略に最も適合するように設計される。このアプローチは、各自の現在の割り当ての束に対して一度に1つの変更又は入札を行うようにエージェントを制約し、これにより、現在のエージェントの既存のビッドに依存する1つ以上のエージェントのコスト評価を安定化させるという利点を有する。各エージェントは、コスト評価を動的に更新することによって相互作用する。
【0039】
[0044] 前述の図面は、幾つかの実施形態によるプロセスを説明するための論理アーキテクチャを表現しており、実際の実装では他の方法で配置された1つ以上の構成要素を含んでもよい。他のトポロジーは、他の実施形態に関連して使用されてもよい。更に、本件で説明される各々の構成要素又はデバイスは、任意の数の他の公衆の及び/又は私設のネットワークを介して通信する任意数のデバイスによって実施されてもよい。このようなコンピューティング・デバイスのうちの2つ以上は、互いに離れて配置されてもよく、任意の公知の方法のプロトコル及び/又は専用接続を介して互いに通信してもよい。各々の構成要素又はデバイスは、本件で説明される機能及びその他の任意の機能を提供するのに適した任意数のハードウェア及び/又はソフトウェア要素を含む可能性がある。例えば、幾つかの実施形態によるシステムの実装に使用される何らかのコンピューティング・デバイスは、コンピューティング・デバイスが本件で説明されるように動作するように、プログラム・コードを実行するプロセッサを含んでもよい。
【0040】
[0045] 1つ以上のコンピュータ読み取り可能な媒体の任意の組み合せが使用されてもよい。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体又はコンピュータ読み取り可能な記憶媒体であってもよい。コンピュータ読み取り可能な記憶媒体は、例えば、電子的、磁気的、光学的、電磁的、若しくは半導体的なシステム、装置、若しくはデバイス、又はこれらの適切な任意の組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例(網羅的ではないリスト)は:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラム可能なリード・オンリー・メモリ(EPROM又はフラッシュ・メモリ)、中継器を備えた適切な光ファイバ、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、又は上述したものの適切な任意の組み合わせを含む。本明細書の文脈において、コンピュータ読み取り可能な記憶媒体は、任意の有形媒体であって、命令実行システム、装置、又はデバイスによって、又はそれらと関連して使用するためのプログラムを収容又は格納することが可能なものであってもよい。
【0041】
[0046] コンピュータ読み取り可能な信号媒体は、例えばベースバンドにおいて又は搬送波の一部として、コンピュータ読み取り可能なプログラム・コードを組み込んだ伝搬されるデータ信号を含む可能性がある。そのような伝搬される信号は、電磁気的、光学的、又はそれらの任意の適切な組み合わせを含む種々の任意の形態をとる可能性があるが、これらに限定されない。コンピュータ読み取り可能な信号媒体は、命令実行システム、装置、又はデバイスによって、又はそれらと関連して使用するためにプログラムを通信、伝搬、又は転送することが可能なコンピュータ読み取り可能な記憶媒体ではない任意のコンピュータ読み取り可能な媒体である可能性がある。コンピュータ読み取り可能な信号媒体に具現化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RF、又は上記の任意の適切な組み合わせを含む適切な任意の媒体を使用して送信されてもよいが、これらに限定されない。
【0042】
[0047] 本開示の態様に関する動作を実行するためのコンピュータ・プログラム・コードは、1つ以上のプログラミング言語の任意の組み合わせで記載される可能性がある。プログラム・コードは、ユーザーのコンピュータ上で完全に、一部はユーザーのコンピュータ上でスタンド・アローン・ソフトウェア・パッケージとして、一部はユーザーのコンピュータ上で、一部はリモート・コンピュータ上で、又はリモート・コンピュータ又はサーバー上で完全に実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)又はワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザーのコンピュータに接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダーを使用してインターネットを介して)外部コンピュータに接続されてもよいし、又はクラウド・コンピューティング環境におけるものであってもよいし、又はソフトウェア・アズ・サービス(SaaS)、プラットフォーム・アズ・サービス(PaaS)、インフラストラクチャ・アズ・サービス(IaaS)、ロボティクス・アズ・サービス(RaaS)、ウェアハウス・アズ・サービス(WaaS)、コラボレーティブ・ロボット(cobots)アズ・サービス、又はその他のサービス・モデルのようなサービスとして提供されてもよい。
【0043】
[0048] 本開示の態様は、本開示の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して本件で説明されている。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータ・プログラム命令によって実現することが可能である、ということが理解されるであろう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、又はその他のプログラム可能なデータ処理装置のプロセッサに提供されて、マシンを構築することが可能であり、その結果、コンピュータ又はその他のプログラム可能な命令実行装置のプロセッサにより実行される命令は、フローチャート及び/又はブロック図のブロック又はブロック群において指定される機能/動作を実行するためのメカニズムを生成する。
【0044】
[0049] これらのコンピュータ・プログラム命令はまた、コンピュータ読み取り可能な媒体に記憶されてもよく、命令は、実行されると、コンピュータ、その他のプログラム可能なデータ処理装置、又はその他のデバイスに、特定の方法で機能するように指示することが可能であり、その結果、コンピュータ読み取り可能な媒体に記憶されている場合の命令は、命令を含む製品を生成し、命令は、実行されると、コンピュータに、フローチャート及び/又はブロック図のブロック又はブロック群で指定された機能/動作を実行させる。コンピュータ・プログラム命令はまた、コンピュータ、その他のプログラム可能な命令実行装置、又はその他のデバイスにロードされて、一連の動作ステップが、コンピュータ、その他のプログラム可能な装置、又はその他のデバイスで実行されて、コンピュータ実行プロセスを生じさせることを引き起こし、その結果、コンピュータ又はその他のプログラム可能な装置で実行される命令は、フローチャート及び/又はブロック図のブロック又はブロック群で指定された機能/動作を実行するためのプロセスを提供する。
【0045】
[0050] 当業者に理解されるように、本開示の態様は、新規かつ有用なプロセス、機械、製造物、又は物質の構造、又はそれらの何らかの新規かつ有用な改良を含む、多数の特許可能なクラス又はコンテキストの何れかにおいて、本件で例示及び説明されている可能性がある。従って、本開示の態様は、全体的にハードウェアとして、全体的にソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード、又はその他の適切なタイプのソフトウェアを含む)として、又は、ソフトウェア及びハードウェアの組み合わせとして実装されることが可能であり、それらは本件では一般的に「回路」、「モジュール」、「構成要素」又は「システム」又は「プラットフォーム」又は「装置」と言及される可能性がある。更に、本開示の態様は、コンピュータ読み取り可能なプログラム・コードを具現化した1つ以上のコンピュータ読み取り可能な媒体(例えば、有形の非一時的なコンピュータ読み取り可能な媒体)に具現化されたコンピュータ・プログラム製品の形態をとることが可能である。本開示は、「ユーザー」、「開発者」、「設計者」、「第三者」、「倉庫オーナー」、「ロボット・ソリューション・プロバイダー」などのような用語に言及しており、幾つかの又は特定の実施形態で使用されるが、これらの用語は、これらの特定の実施形態に限定されるものではなく、他の用語で置換されることが可能であり、なぜなら本発明はこれらの用語によって制限も限定もされないからである。
【0046】
[0051] デバイスは、固有の識別子と、インターネットを介してデータを転送する能力とを有するオブジェクト又は物理エンティティである。一実施形態では、デバイスは、モノのインターネット(IoT)における「モノ」である。IoTの文脈におけるモノとは、固有の識別子、埋め込みシステム、及びネットワークを介してデータを転送する能力を有するエンティティ又は物理オブジェクトを指す。これらのデバイスは、物理デバイス、家電機器、車両、エッジ・デバイス、フォグ・デバイス等を含むことが可能である。また、デバイスは、他のデバイス機能と共に作動及び検知を実行することが可能なロボットを含む。
【0047】
[0052] 実装では、本件で説明される1つ以上の方法は、少なくとも一部は、非一時的なコンピュータ読み取り可能な媒体で具体化され、1つ以上のコンピューティング・デバイスによって実行可能な命令として実装されてもよい。一般に、プロセッサ(例えば、マイクロプロセッサ)は、非一時的なコンピュータ読み取り可能な媒体(例えば、メモリ)から命令を受信し、それらの命令を実行し、それにより、本件で説明される1つ以上の方法を含む1つ以上の方法を実行する。このような命令は、種々の既知のコンピュータ読み取り可能な媒体のうちの何れかを用いて記憶及び/又は伝送することが可能である。
【0048】
[0053] 本件における実施形態は、ハードウェア及びソフトウェア要素を含むことが可能である。ソフトウェアで実装される実施形態は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されない。本件で説明される種々のモジュールによって実行される機能は、他のモジュール又は他のモジュールの組み合わせで実施されてもよい。本説明の目的のために、コンピュータ使用可能な又はコンピュータ読み取り可能な媒体は、命令実行システム、装置、又はデバイスによって、又はそれらと関連して使用するためにプログラムを含む、記憶する、通信する、伝搬する、又は転送することが可能な任意の装置であるとすることが可能である。
【0049】
[0054] 図示されたステップは、図示される例示的な実施形態を説明するために述べられており、進歩しつつある技術開発は、特定の機能が実行される方法を変化させる、ということが予想されはずである。これらの例は、説明の目的のために本件で提示されており、これらに限定されない。更に、機能的な構成ブロックの境界は、説明の便宜上、本件で任意的に定められている。指定された機能とそれらの関係が適切に実行される限り、代替的な境界を定めることが可能である。代替例(本件で説明されているものについての均等物、拡張、変形、導出されるもの等を含む)は、本件に含まれる教示に基づいて、関連技術分野の当業者にとって明らかであろう。そのような代替例は、開示される実施形態の範囲及び精神に含まれる。また、「備える」、「有する」、「包含する」、及び「含む」という用語、並びにその他の類似の形式は、意味において同等であるように意図されており、これらの何れの言葉につながるアイテム又はアイテム群も、そのようなアイテム又はアイテム群の網羅的な列挙であることを意味しておらず、また列挙されたアイテム又はアイテム群のみに限定されることをも意味していない点において、オープン・エンドである。また、本明細書及び添付のクレーム(明細書に含まれる場合)において使用されるように、「ある“a”」、「或る“an”」、「その“the”」という単独の形式は、文脈上明示的に言及していない限り、複数の参照を含むことに留意する必要がある。
【0050】
[0055] 本開示及び具体例は、例示的なものとしてのみ考慮されることが意図されており、当業者は、他の実施形態が、上述したものに修正及び変更を加えて実施されてもよいことを認識するであろう。