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

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

7654356マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法
<>
  • -マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法 図1
  • -マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法 図2
  • -マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法 図3
  • -マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法 図4
  • -マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法 図5
  • -マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-24
(45)【発行日】2025-04-01
(54)【発明の名称】マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法
(51)【国際特許分類】
   B65G 1/00 20060101AFI20250325BHJP
   G05B 19/418 20060101ALI20250325BHJP
【FI】
B65G1/00 501C
G05B19/418 Z
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2020025066
(22)【出願日】2020-02-18
(65)【公開番号】P2020149675
(43)【公開日】2020-09-17
【審査請求日】2023-02-16
(31)【優先権主張番号】201921006550
(32)【優先日】2019-02-19
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】510337621
【氏名又は名称】タタ コンサルタンシー サービシズ リミテッド
【氏名又は名称原語表記】TATA Consultancy Services Limited
【住所又は居所原語表記】Nirmal Building,9th Floor,Nariman Point,Mumbai 400021,Maharashtra,India.
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【氏名又は名称】西島 孝喜
(74)【代理人】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100196612
【弁理士】
【氏名又は名称】鎌田 慎也
(72)【発明者】
【氏名】マリーチ アガルワル
(72)【発明者】
【氏名】チャヤン サルカール
【審査官】森林 宏和
(56)【参考文献】
【文献】米国特許出願公開第2017/0173784(US,A1)
【文献】米国特許出願公開第2018/0275679(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B65G 1/00 - 1/20
G05B 19/418
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するための方法であって、
前記方法は、
ロボットのセットを介して、複数のタスクを定義するステップであって、前記複数のタスクの各々は、到着時間、実行時間、デッドライン、及び性能損失関数によって特徴付けられるノンプリエンプティブスケジューラブルタスクであり、前記複数のタスクの各々は、前記マルチロボット環境において実行され、前記性能損失関数は、
として定義され、ciはタスクtiについての完了時間を表し、tiは前記複数のタスクに対応し、diはデッドラインを表し、piは性能損失値を表す、ステップ(201)と、
1又は2以上のハードウェアプロセッサによって、1又は2以上の予め割り当てられたタスクと、前記定義された複数のタスクから1又は2以上の新規に到着したタスクとをマージするステップであって、前記1又は2以上の予め割り当てられたタスクは、前記ロボットのセットの間で1又は2以上のロボットに既に割り当てられた非実行済みタスクであり、前記1又は2以上の新規に到着したタスクは、前記ロボットのセットの間で割り当てられることになる非実行済みタスクを含む、ステップ(202)と、
前記マルチロボット環境において前記1又は2以上のマージされたタスクのスケジューリングを最適化するステップ(203)と、
のプロセッサによって実施されるステップを含み、
前記最適化するステップは、
オンライン最小性能損失スケジューリング(OMPLS)手法を実装することにより、前記ロボットのセットの間でタスクの第1のセットをスケジュールするステップであって、前記タスクの第1のセットは、前記1又は2以上のマージされたタスクの中でより高い性能損失値を有するタスクを含む、ステップと、
前記OMPLS手法を介して、前記ロボットのセットの間でタスクの第2のセットをスケジュールするステップであって、前記タスクの第2のセットは、デッドライン内でスケジュールすることができかつ前記1又は2以上のマージされたタスクの中で低い性能損失値を有するタスクを含む、ステップと、
リストスケジューリング手法により、タスクの残りのサブセットの性能損失値を最小にするステップであって、前記タスクの残りのサブセットは、予め定義されたデッドライン内にスケジュールすることができないタスクを含む、ステップと、
を含む、
方法。
【請求項2】
前記タスクの残りのサブセットの前記性能損失値を最小にするステップは、前記リストスケジューリング手法を介して、前記ノンプリエンプティブタスクのスケジューリングを最適化するために前記新規に到着したタスクから1又は2以上の高優先度タスクを取り除くステップを含み、タスクの優先度は、単位時間遅延当たりにシステムに生じることになる前記性能損失値により判断され、前記タスクは前記優先度に基づいて分類され、最も高いペナルティ値(性能損失値=10)を有するタスクは、前記1又は2以上の高優先度タスクとして取り扱われる、請求項1に記載の方法。
【請求項3】
前記マージするステップは、前記1又は2以上の予め割り当てられたタスク及び前記1又は2以上の新規に到着したタスクに対応する非昇順の性能損失値に基づいて、前記1又は2以上の予め割り当てられたタスク及び前記1又は2以上の新規に到着したタスクをあるキューにおいてソートすることによって実行される、請求項1に記載の方法。
【請求項4】
前記取り除かれた1又は2以上の高優先度タスクは、前記ロボットのセットの間でアイドル状態のロボットに割り当てられ、前記アイドル状態のロボットは、前記複数のタスクのいずれも実行しないロボットである、請求項2に記載の方法。
【請求項5】
前記1又は2以上の高優先度タスクを取り除くステップは、前記複数のタスクの中の各タスクが前記ロボットのセットの間で少なくとも1つのロボットに割り当てられるまで、反復して実行される、請求項2に記載の方法。
【請求項6】
前記OMPLS手法は、前記ノンプリエンプティブタスクのスケジューリングを最適化するため前記タスクの残りのサブセットの各々に対して優先度更新を実行するステップを含む、請求項1に記載の方法。
【請求項7】
前記優先度更新は、前記タスクの残りのサブセットの各々の前記実行時間が初期の予め定められた閾値よりも大きいと判断されると、前記タスクの残りのサブセットの各々の優先度関数をインクリメントすることによって実行され、前記初期の予め定められた閾値は、予め定められたデッドラインを用いて識別される、請求項6に記載の方法。
【請求項8】
マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム(100)であって、
命令を記憶するメモリ(102)と、
1又は2以上の通信インタフェース(106)と、
前記1又は2以上の通信インタフェース(106)を介して前記メモリ(102)に結合された1又は2以上のハードウェアプロセッサ(104)と、
を含み、
前記1又は2以上のハードウェアプロセッサ(104)は、前記命令によって
ロボットのセットを介して、複数のタスクを定義することであって、前記複数のタスクの各々は、到着時間、実行時間、デッドライン、及び性能損失関数によって特徴付けられるノンプリエンプティブスケジューラブルタスクであり、前記複数のタスクの各々は、前記マルチロボット環境において実行され、前記性能損失関数は、
として定義され、ciはタスクtiについての完了時間を表し、tiは前記複数のタスクに対応し、diはデッドラインを表し、piは性能損失値を表す、ことと、
1又は2以上の予め割り当てられたタスクと、前記定義された複数のタスクから1又は2以上の新規に到着したタスクとをマージすることであって、前記1又は2以上の予め割り当てられたタスクは、前記ロボットのセットの間で1又は2以上のロボットに既に割り当てられた非実行済みタスクであり、前記1又は2以上の新規に到着したタスクは、前記ロボットのセットの間で割り当てられることになる非実行済みタスクを含む、ことと、
前記マルチロボット環境において前記1又は2以上のマージされたタスクのスケジューリングを最適化することと、
を行うように構成され、
前記最適化することは、
オンライン最小性能損失スケジューリング(OMPLS)手法を実装することにより、前記ロボットのセットの間でタスクの第1のセットをスケジュールすることであって、前記タスクの第1のセットは、前記1又は2以上のマージされたタスクの中でより高い性能損失値を有するタスクを含む、ことと、
前記OMPLS手法を介して、前記ロボットのセットの間でタスクの第2のセットをスケジュールすることであって、前記タスクの第2のセットは、デッドライン内でスケジュールすることができかつ前記1又は2以上のマージされたタスクの中で低い性能損失値を有するタスクを含む、ことと、
リストスケジューリング手法により、タスクの残りのサブセットの性能損失値を最小にすることであって、前記タスクの残りのサブセットは、予め定義されたデッドライン内にスケジュールすることができないタスクを含む、ことと、
を含む、
システム(100)。
【請求項9】
前記1又は2以上のハードウェアプロセッサ(104)は、前記リストスケジューリング手法を介して、前記ノンプリエンプティブタスクのスケジューリングを最適化するために前記新規に到着したタスクから1又は2以上の高優先度タスクを取り除くことによって、前記タスクの残りのサブセットの前記性能損失値を最小にするよう構成され、タスクの優先度は、単位時間遅延当たりにシステムに生じることになる前記性能損失値により判断され、前記タスクは前記優先度に基づいて分類され、最も高いペナルティ値(性能損失値=10)を有するタスクは、前記1又は2以上の高優先度タスクとして取り扱われる、請求項8に記載のシステム(100)。
【請求項10】
前記1又は2以上のハードウェアプロセッサ(104)は、前記1又は2以上の予め割り当てられたタスク及び前記1又は2以上の新規に到着したタスクに対応する非昇順の性能損失値に基づいて、前記1又は2以上の予め割り当てられたタスク及び前記1又は2以上の新規に到着したタスクをあるキューにおいてマージするように構成される、請求項8に記載のシステム(100)。
【請求項11】
前記1又は2以上のハードウェアプロセッサ(104)は、前記取り除かれた1又は2以上の高優先度タスクを前記ロボットのセットの間でアイドル状態のロボットに割り当てるように構成され、前記アイドル状態のロボットは、前記複数のタスクのいずれも実行しないロボットである、請求項9に記載のシステム(100)。
【請求項12】
前記1又は2以上のハードウェアプロセッサ(104)は、前記複数のタスクの中の各タスクが前記ロボットのセットの間で少なくとも1つのロボットに割り当てられるまで、前記1又は2以上の高優先度タスクを取り除くステップを反復して実行するように構成される、請求項9に記載のシステム(100)。
【請求項13】
前記1又は2以上のハードウェアプロセッサ(104)は、前記ノンプリエンプティブタスクのスケジューリングを最適化するため前記タスクの残りのサブセットの各々に対して優先度更新を実行することにより、前記OMPLS手法を実装するように構成される、請求項8に記載のシステム(100)。
【請求項14】
前記1又は2以上のハードウェアプロセッサ(104)は、前記タスクの残りのサブセットの各々の前記実行時間が初期の予め定められた閾値よりも大きいと判断されると、前記タスクの残りのサブセットの各々の優先度関数をインクリメントすることによって前記優先度更新を実行するように構成され、前記初期の予め定められた閾値は、予め定められたデッドラインを用いて識別される、請求項13に記載のシステム(100)。
【請求項15】
1又は2以上の命令を含む1又は2以上の非一時的機械可読情報記憶媒体であって、前記命令は、1又は2以上のハードウェアプロセッサによって実行されたときに、
ロボットのセットを介して、複数のタスクを定義することであって、前記複数のタスクの各々は、到着時間、実行時間、デッドライン、及び性能損失関数によって特徴付けられるノンプリエンプティブスケジューラブルタスクであり、前記複数のタスクの各々は、ルチロボット環境において実行され、前記性能損失関数は、
として定義され、ciはタスクtiについての完了時間を表し、tiは前記複数のタスクに対応し、diはデッドラインを表し、piは性能損失値を表す、こと(201)と、
1又は2以上のハードウェアプロセッサによって、1又は2以上の予め割り当てられたタスクと、前記定義された複数のタスクから1又は2以上の新規に到着したタスクとをマージすることであって、前記1又は2以上の予め割り当てられたタスクは、前記ロボットのセットの間で1又は2以上のロボットに既に割り当てられた非実行済みタスクであり、前記1又は2以上の新規に到着したタスクは、前記ロボットのセットの間で割り当てられることになる非実行済みタスクを含む、こと(202)と、
前記マルチロボット環境において前記1又は2以上のマージされたタスクのスケジューリングを最適化すること(203)と、
を行わせ、
前記最適化することは、
オンライン最小性能損失スケジューリング(OMPLS)手法を実装することにより、前記ロボットのセットの間でタスクの第1のセットをスケジュールすることであって、前記タスクの第1のセットは、前記1又は2以上のマージされたタスクの中でより高い性能損失値を有するタスクを含む、ことと、
前記OMPLS手法を介して、前記ロボットのセットの間でタスクの第2のセットをスケジュールすることであって、前記タスクの第2のセットは、デッドライン内でスケジュールすることができかつ前記1又は2以上のマージされたタスクの中で低い性能損失値を有するタスクを含む、ことと、
リストスケジューリング手法により、タスクの残りのサブセットの性能損失値を最小にすることであって、前記タスクの残りのサブセットは、予め定義されたデッドライン内にスケジュールすることができないタスクを含む、ことと、
を含む、
1又は2以上の非一時的機械可読情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照及び優先権)
本出願は、2019年2月19日に出願されたインド国特許出願201921006550に対する優先権を主張する。
【0002】
(技術分野)
本明細書の開示は、全体的に、ロボットプロセスの自動化に関し、より詳細には、マルチロボット環境におけるノンプリエンプティブタスク(non-preemptive tasks)のスケジューリングの最適化に関する。
【背景技術】
【0003】
デジタル及びオートメーション時代においては、マルチロボットシステム及び関連する技術が様々な用途及び産業で広く用いられている。例えば、倉庫調達システムでは、多種多様な対象物を倉庫内に保管し、またそこから回収するプロセスを自動化するためにマルチロボットシステムが配備されている。効率的な倉庫管理は、注文の物品をそれぞれの顧客に滑らかに配送することを保証し、現代のビジネスに大きな影響を与える。販売業者及び電子小売業者は、一般に、あらゆる物品の配送について到着予定時刻(ETA)を提供し、付加価値サービスとして迅速且つ時間に制約のある配送を約束している。
【0004】
物品又は対象物の倉庫内外への移動は、タスクのスケジューリング(物品に対する移動に関連した)に関して大きな課題である。膨大な量の需要がリアルタイムで倉庫調達システムに流入することで、最適なスケジューリングに対する要求がある。電子商取引及び最新のロジスティクスの急速な発展により、倉庫システムは、在庫の規模が非常に大きくなり、短いピッキング時間に対して幅広い需要があり、これによってロボットシステムの配備が求められている。
【0005】
このように、産業及び他の技術分野における用途に起因して、マルチロボットシステムにおけるタスク割当て(task allocation)は、著しく重要性を増している。所与のシステムレベルのタスクのサブタスクに個々のロボットを割り当てるプロセスは、タスク割当てと呼ばれ、何れのマルチロボットシステムにも必要とされる重要な機能性を含む。タスク割当ての目的は、マルチロボットシステムの性能を向上させることになるように1又は複数のロボットタスクを割り当てることであり、これは、全体の実行時間の短縮を含む。一般に、タスク割当ては、未知の動的環境で機能しているマルチロボットシステムにとって必須の要件である。タスク割当ては、ロボットがシステム性能全体を改善するために、環境の変化又は他のロボットの動作に応答してロボットの挙動を変化させることが可能となる。
【0006】
従って、マルチロボットシステムにおけるタスク割当ては、特に、異なる要件及び制約を伴う様々なタスクを最適な方式で実施するのに必要とされる異なる能力をロボットが備えたかかるロボット環境において、複雑な課題を提起する。タスク割当ての問題は、環境の変化を含む現象を伴う時間的に変化する動的決定問題であるので、問題は、指定された時間間隔で反復して解決されなければならない。従って、タスク割当ての問題への取り組みはより複雑になる。検討中の特定の技術分野の要件が、マルチロボットタスク割当て問題の特徴及び複雑さに更に影響を及ぼしている。
【発明の概要】
【課題を解決するための手段】
【0007】
本開示の実施形態は、本発明者らによって従来のシステムにおいて認識された上述の技術的問題の1又は2以上への解決策として技術改良を提示する。例えば、1つの実施形態において、マルチロボット環境においてノンプリエンプティブタスクのスケジューリング(scheduling)を最適化するための方法であって、本方法は、
ロボットのセットを介して、複数のタスクを定義するステップであって、複数のタスクの各々は、到着時間(arrival time)、実行時間(execution time)、デッドライン、及び時間単位(time unit)当たりの性能損失関数(performance loss function)によって特徴付けられるノンプリエンプティブスケジューラブルタスク(non-preemptive schedulable task)であり、複数のタスクの各々は、マルチロボット環境において実行される、ステップと、
1又は2以上のハードウェアプロセッサによって、1又は2以上の予め割り当てられたタスクと、定義された複数のタスクから1又は2以上の新規に到着したタスク(newly arriving tasks)とをマージするステップ(merging)であって、1又は2以上の予め割り当てられたタスクは、ロボットのセットの間で1又は2以上のロボットに既に割り当てられた非実行済みタスク(non-executed task)であり、1又は2以上の新規に到着したタスクは、ロボットのセットの間で割り当てられることになる非実行済みタスクを含む、ステップと、
マルチロボット環境においてマージされたタスクのスケジューリングを最適化するステップと、
を含み、最適化するステップは、
オンライン最小性能損失スケジューリング(Online Minimum Performance Loss Scheduling)(OMPLS)手法(technique)を実装すること(implementing)により、ロボットのセットの間でタスクの第1のセットをスケジュールするステップ(scheduling)であって、タスクの第1のセットが、マージされたタスクの中でより高い性能損失値を有するタスクを含み、タスクの第1のセットは更に、待ち時間(waiting time)の閾値を上回り且つより高い性能損失値を有するタスクよりも優先度が低い少なくとも1つのタスクを含む、ステップと、
OMPLS手法を介して、ロボットのセットの間でタスクの第2のセットをスケジュールするステップであって、タスクの第2のセットはタスクを含み、該タスクはそれらのデッドライン内でスケジュールすることができ且つマージされたタスクの中で低い性能損失値を有する、ステップと、
リストスケジューリング手法(list-scheduling technique)により、タスクの残りのサブセットの性能損失値を最小にするステップであって、タスクの残りのサブセットが、予め定義されたデッドライン内にスケジュールすることができないタスクを含む、ステップと、
リストスケジューリング手法を介して、ノンプリエンプティブタスクのスケジューリングを最適化するために新規に到着したタスクから1又は2以上の高優先度タスクを取り除くステップ(eliminating)と、
複数のタスクの中の各タスクが少なくとも1つのロボットに割り当てられるまで1又は2以上の高優先度タスクを取り除くステップを反復して実施するステップと、
ノンプリエンプティブタスクのスケジューリングを最適化するためタスクの残りのサブセットの各々に対して優先度更新(priority update)を実行するステップと、
を含み、タスクの残りのサブセットの各々の実行時間が初期の予め定められた閾値(initial pre-defined threshold)よりも大きいと判断されると、タスクの残りのサブセットの各々の優先度関数をインクリメントすることによって実行され、初期の予め定められた閾値は、予め定められたデッドラインを用いて識別される、
方法が提供される。
【0008】
別の態様において、マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するシステムであって、
命令を記憶するメモリと、
1又は複数の通信インタフェースと、
1又は複数の通信インタフェースを介してメモリに結合された1又は2以上のハードウェアプロセッサと、
を含み、1又は2以上のハードウェアプロセッサは、命令によって、
ロボットのセットを介して、複数のタスクを定義することであって、複数のタスクの各々は、到着時間、実行時間、及び時間単位当たりの性能損失関数によって特徴付けられるノンプリエンプティブスケジューラブルタスクであり、複数のタスクの各々は、マルチロボット環境において実行される、ことと、
1又は2以上のハードウェアプロセッサによって、1又は2以上の予め割り当てられたタスクと、定義された複数のタスクから1又は2以上の新規に到着したタスクとをマージすることであって、1又は2以上の予め割り当てられたタスクは、ロボットのセットの間で1又は2以上のロボットに既に割り当てられた非実行済みタスクであり、1又は2以上の新規に到着したタスクは、ロボットのセットの間で割り当てられることになる非実行済みタスクを含む、ことと、
マルチロボット環境においてマージされたタスクのスケジューリングを最適化することと、
を含み、最適化することは、
オンライン最小性能損失スケジューリング(OMPLS)手法を実装することにより、ロボットのセットの間でタスクの第1のセットをスケジュールすることであって、タスクの第1のセットが、マージされたタスクの中でより高い性能損失値を有するタスクを含み、タスクの第1のセットは更に、待ち時間の閾値を上回り且つより高い性能損失値を有するタスクよりも優先度が低い少なくとも1つのタスクを含む、ことと、
OMPLS手法を介して、ロボットのセットの間でタスクの第2のセットをスケジュールすることであって、タスクの第2のセットは、デッドライン内でスケジュールすることができ且つマージされたタスクの中で低い性能損失値を有するタスクを含む、ことと、
リストスケジューリング手法により、タスクの残りのサブセットの性能損失値を最小にすることであって、タスクの残りのサブセットが、予め定義されたデッドライン内にスケジュールすることができないタスクを含む、ことと、
リストスケジューリング手法を介して、ノンプリエンプティブタスクのスケジューリングを最適化するために新規に到着したタスクから1又は2以上の高優先度タスクを取り除くことと、
取り除かれた1又は2以上の高優先度タスクをロボットのセットの間でアイドル状態のロボット(idle robot)に割り当てることであって、アイドル状態のロボットは、複数のタスクの何れかを実行しないロボットである、ことと、
複数のタスクの中の各タスクが少なくとも1つのロボットに割り当てられるまで、1又は2以上の高優先度タスクを取り除くことを反復して実施することと、
ノンプリエンプティブタスクのスケジューリングを最適化するためタスクの残りのサブセットの各々に対して優先度更新を実行することにより、OMPLS手法を実装する(implement)ことと、
タスクの残りのサブセットの各々の実行時間が初期の予め定められた閾値よりも大きいと判断されると、タスクの残りのサブセットの各々の優先度関数をインクリメントすることによって優先度更新を実行することであって、初期の予め定められた閾値は、予め定められたデッドラインを用いて識別される、ことと、
を含む、システムが提供される。
【0009】
更に別の態様において、1又は2以上の命令を含む1又は2以上の非一時的機械可読情報記憶媒体であって、命令が、1又は2以上のハードウェアプロセッサによって実行されたときに、1又は2以上のハードウェアプロセッサが、マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化する方法を実施させ、
前記方法は、
ロボットのセットを介して、複数のタスクを定義するステップであって、複数のタスクの各々は、到着時間、実行時間、デッドライン、及び時間単位当たりの性能損失関数によって特徴付けられるノンプリエンプティブスケジューラブルタスクであり、複数のタスクの各々は、マルチロボット環境において実行される、ステップと、
1又は2以上の予め割り当てられたタスクと、定義された複数のタスクから1又は2以上の新規に到着したタスクとをマージするステップであって、1又は2以上の予め割り当てられたタスクは、ロボットのセットの間で1又は2以上のロボットに既に割り当てられた非実行済みタスクであり、1又は2以上の新規に到着したタスクは、ロボットのセットの間で割り当てられることになる非実行済みタスクを含む、ステップと、
マルチロボット環境においてマージされたタスクのスケジューリングを最適化するステップと、
を含み、最適化するステップは、
オンライン最小性能損失スケジューリング(OMPLS)手法を実装することにより、ロボットのセットの間でタスクの第1のセットをスケジュールするステップであって、タスクの第1のセットが、マージされたタスクの中でより高い性能損失値を有するタスクを含み、タスクの第1のセットは更に、待ち時間の閾値を上回り且つより高い性能損失値を有するタスクよりも優先度が低い少なくとも1つのタスクを含む、ステップと、
OMPLS手法を介して、ロボットのセットの間でタスクの第2のセットをスケジュールするステップであって、タスクの第2のセットは、デッドライン内でスケジュールすることができ且つマージされたタスクの中で低い性能損失値を有するタスクを含む、ステップと、
リストスケジューリング手法により、タスクの残りのサブセットの性能損失値を最小にするステップであって、タスクの残りのサブセットが、予め定義されたデッドライン内にスケジュールすることができないタスクを含む、ステップと、
リストスケジューリング手法を介して、ノンプリエンプティブタスクのスケジューリングを最適化するために新規に到着したタスクから1又は2以上の高優先度タスクを取り除くステップと、
複数のタスクの中の各タスクが少なくとも1つのロボットに割り当てられるまで1又は2以上の高優先度タスクを取り除くステップを反復して実施するステップと、
ノンプリエンプティブタスクのスケジューリングを最適化するためタスクの残りのサブセットの各々に対して優先度更新を実行するステップと、
を含み、タスクの残りのサブセットの各々の実行時間が初期の予め定められた閾値よりも大きいと判断されると、タスクの残りのサブセットの各々の優先度関数をインクリメントすることによって実行され、初期の予め定められた閾値は、予め定められたデッドラインを用いて識別される、
非一時的機械可読情報記憶媒体が提供される。
【0010】
前述の概要及び以下の詳細な説明は何れも例証で説明のためのものであり、請求項に記載された本発明の実施形態の更なる説明を行うことを意図している点を理解されたい。
【0011】
本開示に組み込まれ且つその一部を構成する添付図面は、例示的な実施形態を例証しており、本明細書と共に本開示の原理を説明する役割を果たす。
【図面の簡単な説明】
【0012】
図1】本開示の一部の実施形態による、マルチロボット環境におけるノンプリエンプティブタスクのスケジューリングを最適化するためのシステムのブロック図である。
図2】本開示の一部の実施形態による、マルチロボット環境におけるノンプリエンプティブタスクのスケジューリングを最適化するプロセスに関するステップを示したフロー図である。
図3】本開示の一部の実施形態による、マルチロボット環境において高トラフィック期間中に到着したタスクについて累積されたデッドラインをミスしたタスク及びペナルティの数をグラフで示している。
図4】本開示の一部の実施形態による、マルチロボット環境において高トラフィック期間中に到着したタスクについて累積されたデッドラインをミスしたタスク及びペナルティの数をグラフで示している。
図5】本開示の一部の実施形態による、時間τ0+25にて達したタスクについて被った配分スロット及び性能損失をグラフで示している。
図6】本開示の一部の実施形態による、従来のシステム及び方法と本開示の方法とを実装することによる、定常的な高トラフィックの線形的に増大するロボット、[1,10]間で分散されるペナルティ値、及び3つの異なる期限パターンについての性能比較をグラフで示している。
【発明を実施するための形態】
【0013】
例示的な実施形態について、添付図面を参照して記載される。図中、参照番号の最上位桁(単数又は複数)は、当該参照番号が最初に現われる図を表している。好都合であれば、複数の図面を通じて同じ又は同様の部分を指すために同じ参照番号が用いられる。開示される原理の実施例及び特徴が本明細書に記載されるが、開示される実施形態の技術的思想及び範囲から逸脱することなく、変更、適応、及び他の実施構成が実施可能である。以下の詳細な記載は、例証に過ぎず、真の範囲及び思想は添付の特許請求の範囲によって示されることが意図される。
【0014】
本開示の実施形態は、マルチロボット環境におけるノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法を提供する。一般に、マルチロボットタスク割当ては、タスクスケジューリング又はタスク割当てを最適化するためにタスクをロボットの間で効率的に割り当てるステップを含む。例えば、顧客が対象物を発注するときに対象物が発送されるようにスケジュールされる、倉庫におけるタスク割当ては、対象物を保管ラックから梱包台へ引き出すステップを含む。
【0015】
スマート環境、特にスマート倉庫環境においてノンプリエンプティブ又はアトミックタスクを均質で自律的なロボットに対してスケジューリングする問題は、均質なマルチプロセッサシステム上でのノンプリエンプティブスケジューリング又は散発的プロセススケジューリングに極めて類似する。目標は、ノンプリエンプティブタスクのうちの各々に対応するデッドライン内にノンプリエンプティブの最大数を最適にスケジューリングすることである。更に、ノンプリエンプティブタスクの各々は、デッドラインと、ノンプリエンプティブタスクのセットのうちの何れかがその対応するデッドライン内に完了されていない場合にマルチロボットシステムが被る可能性がある、これに起因する性能損失と、を有するので、タスクスケジューリングシステムの目標は、デッドラインミスの数の削減及び性能損失の最小化である。
【0016】
特にロボット及び関連の技術を実装する倉庫において、従来のシステム及び方法は、ノンプリエンプティブタスクの各々に関連付けられたデッドライン及び性能損失を考慮にいれておらず、従って、かかるノンプリエンプティブタスクが必然的にデッドラインミスする場合、ノンプリエンプティブタスクのうち多くのタスクを破棄している。しかしながら、一般には、対応するデッドラインをミスしたとしても、スマート倉庫環境における各タスクは完了される必要がある。ノンプリエンプティブタスクをマージするステップ及びこれらをマルチプロセッサシステム(又はマルチコアシステム)上にスケジューリングするステップは、主要なタスクスケジューリング問題を含む。
【0017】
開示される方法は、従来のシステム及び方法が直面した課題の克服に取り組んでいる。例えば、開示される方法は、ノンプリエンプティブタスクの各々をスケジューリングし、これにより低い性能損失値を有する優先度の低いタスク(low-priority task)でもそのスケジューリングを可能にするスケジューリング手法に言及している。更に、開示される方法は、マルチロボット環境においてタスクを配分しながら、ノンプリエンプティブタスクの各々に関連付けられるデッドライン及び性能損失を考慮し、これによりマルチロボット環境でのスケジューリングの最適化及び性能損失全体の最小化を提供する。
【0018】
図1は、本開示の実施形態による、マルチロボット環境におけるノンプリエンプティブタスクのスケジューリングを最適化するためのシステム100の例示的なブロック図を示す。1つの実施形態において、システム100は、1又は2以上のプロセッサ104、1又は複数の通信インタフェースデバイス又は1又は複数の入力/出力(I/O)インタフェース106、及び1又は2以上のプロセッサ104に動作可能に結合された1又は2以上のデータ記憶装置又はメモリ102を含む。ハードウェアプロセッサである1又は2以上のプロセッサ104は、1又は2以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、状態機械、論理回路、及び/又は動作命令に基づいて信号を操作する任意のデバイスとして実装する(implemented)ことができる。他の能力の中でも、1又は複数のプロセッサは、メモリ102に記憶されたコンピュータ可読命令をフェッチして実行するように構成される。1つの実施形態において、システム100は、例えば、ラップトップコンピュータ、ノートブック、ハンドへルドデバイス、ワークステーション、メインフレームコンピュータ、サーバ、ネットワーククラウド及び同様のものなど、様々なコンピューティングシステムに実装することができる。
【0019】
メモリ102は、例えば、スタティックランダムアクセスメモリ(SRAM)及びダイナミックランダムアクセスメモリ(DRAM)のような揮発性メモリ、及び/又はリードオンリメモリ(ROM)、消去可能プログラマブルROM、フラッシュメモリ、ハードディスク、光ディスク、並びに磁気テープのような不揮発性メモリを含めて、当技術分野で公知の任意のコンピュータ可読媒体を含むことができる。1つの実施形態において、メモリ102は、マルチロボット環境におけるノンプリエンプティブタスクのスケジューリングを最適化することに関連付けられるあらゆるデータを記憶するよう構成することができる。1つの実施形態において、ロボット、マージされたタスク、スケジューリングの最適化、オンライン最小性能損失スケジューリング(OMPLS)手法、性能損失最小化、その他に関する情報は、メモリ102に記憶される。更に、インタラクティブなユーザクエリに対する応答の生成に関する全ての情報(入力、出力など)は、参照の目的で、履歴データとしてマルチロボット環境におけるノンプリエンプティブタスクのスケジューリングを最適化することに基づいている。
【0020】
1又は複数のI/Oインタフェースデバイス106は、様々なソフトウェア及びハードウェアインタフェース、例えば、ウェブインタフェース、グラフィカルユーザインタフェース、及び同様のものを含むことができ、有線ネットワーク(例えば、LAN、ケーブルなど)及びWLAN、セルラ、又は衛星のような無線ネットワークを含めて、多種多様なネットワークN/W及びプロトコルタイプ内の複数の通信を容易にすることができる。1つの実施形態において、1又は複数のI/Oインタフェースデバイスは、幾つかのデバイスを互いに又は別のサーバに接続するための1又は2以上のポートを含むことができる。
【0021】
ここで、図面全体を通じて同じ参照符号が一貫して対応する特徴を示す図面、より詳細には図1図6を参照すると、好ましい実施形態が示され、これらの実施形態は、以下の例示的なシステム及び/又は方法との関連において記載されている。
【0022】
図2は、図1を参照して、本開示の幾つかの実施形態による、マルチロボット環境におけるノンプリエンプティブタスクのスケジューリングを最適化するための方法の例示的なフロー図を示す。1つの実施形態において、システム100は、1又は2以上のハードウェアプロセッサ104に動作可能に結合されたメモリ102の1又は2以上のデータ記憶装置を含み、1又は2以上のプロセッサ104による方法のステップの実行のための命令を記憶するように構成される。次に、本開示の方法のステップについて、図1に示されるシステム100の構成要素及びフロー図を参照して説明する。本開示の実施形態において、ハードウェアプロセッサ104は、命令が構成されたときに、本明細書に記載される1又は2以上の方法を実施する。
【0023】
本開示の1つの実施形態によれば、ステップ201では、1又は2以上のハードウェアプロセッサ104は、ロボットのセットを介して、複数のタスクを定義するよう構成され、複数のタスクの各々は、到着時間、実行時間(又はタスク実行時間)、デッドライン、ノンプリエンプティブタスクを完了するための指定された時間間隔、及び時間単位当たりの性能損失関数によって特徴付けられるノンプリエンプティブスケジューラブルタスクである。本明細書で使用される場合の用語「性能損失(performance loss)」は、倉庫タスクスケジューリングにて一般的に使用される用語である用語「ペナルティ」と同様と理解することができ、タスクスケジューリングは、一般に、対応する「デッドライン」及び「ペナルティ」を含む。
【0024】
更に、提案される方法は、倉庫システムを参照して説明しているが、1又は複数の倉庫システムのみに限定されると理解される訳ではない。提案される方法は、スケジューリング又はタスクスケジューリングがロボット又は関連の技術を用いて実施される、全てのかかる環境/応用/技術又は関連するシナリオ(scenario)に実装又は拡張することができる。複数のタスクを定義するステップは、以下の仮定のセットを考慮して検討することができる。
【0025】
(仮定のセット)
(i)タスクが到着すると、倉庫管理システムは、それぞれの物品の保管場所に基づいてタスクの実行時間を計算し、顧客に約束した全体の期待到着時間に基づいてデッドラインを割り当てて、顧客プロファイル及び対象物のタイプに基づいて性能損失を割り当てると仮定する;
(ii)任意の瞬間時間において、マルチロボット環境において利用可能であり、m個の均質なロボットによって完了することが必要なn個のタスクが存在する。各ロボットは、タスクを完了するのに十分な利用可能なエネルギーを有する;
(iii)顧客が複数の物品を注文している場合、各物品のピックアップは、別個のタスクとして取り扱われる。この場合、各タスクは、異なる実行時間、デッドライン、及び性能損失値を有することができる;
(iv)簡単にするために、作動時間は、全てのタスクについて同じであり、タスク実行時間には含まれないと仮定することができる。従って、タスク実行時間のみが、ロボットの往復の移動時間を構成する;
(v)顧客が複数の物品を注文している場合、ピックアップされる各物品は、別個のタスクとして取り扱われる。このシナリオでは、複数のタスクの各々は、異なる実行時間を有することができる。しかしながら、これらのタスクは、同じデッドライン及び同じ性能損失値に関連付けられる;
(vi)全てのタスクは、アトミックで且つノンプリエンプティブタスクである。ロボットは、一旦開始されると完了するまでタスクを実行しなければならない。ジョブは、2以上のロボットによって一斉に実行することはできない。タスクは独立しており、すなわち、1つのタスクの実行は、他の何れかのタスクの実行に左右されないと仮定することができる。
上記で検討したように、タスクを複数のロボットに配分する技術的問題は、(図示されていない)マルチプロセッサシステム上のタスクスケジューリングにマッピングすることができる。開示される方法は、オンザフライで均質なロボットのチームにアトミックタスクを割り当てることを容易にし、タスクがデッドラインを満たすことができないことによって、システムに最小限のペナルティが科せられるようになる。タスクは、非クレボヤント(non-clairvoyant)であり、各タスク(Ti)は、到着時間(ai)、実行時間(ei)、デッドライン(di)、及び性能損失値(pi)によって特徴付けられる。タスクがデッドラインをミスして、時間(ci)で実行を完了した場合、(ci-di)×pi単位の性能損失を生じる。
【0026】
本開示の1つの実施形態によれば、ステップ202において、1又は2以上のハードウェアプロセッサ104は、1又は2以上の予め割り当てられたタスクと、定義された複数のタスクから1又は2以上の新規に到着したタスクとをマージするよう構成され、1又は2以上の予め割り当てられたタスクは、ロボットのセットの間で1又は2以上のロボットに既に割り当てられた非実行済みタスクであり、1又は2以上の新規に到着したタスクは、ロボットのセットの間で割り当てられることになる非実行済みタスクを含む。
【0027】
1つの実施形態において、1又は2以上のハードウェアプロセッサ104は、1又は2以上の予め割り当てられたタスク及び1又は2以上の新規に到着したタスクに対応する非昇順(non-increasing order)の性能損失値に基づいて、1又は2以上の予め割り当てられたタスク及び1又は2以上の新規に到着したタスクをあるキューにおいてソートすることによってマージを実施するよう構成される。例示的なシナリオを考慮すると、性能損失値に基づいてタスクがソートされると、リストは、(3,2,4,5,1)として生成することができ、最初にスケジュールタスクid3をスケジュールすることができ、次いでid2、次にid4及び同様のものとすることができる。
【0028】
本開示の1つの実施形態によれば、ステップ203において、1又は2以上のハードウェアプロセッサ104は、マルチロボット環境においてマージされたタスクのスケジューリングを最適化するように構成される。ステップ203において、1又は2以上のハードウェアプロセッサ104は、最初に、オンライン最小性能損失スケジューリング(OMPLS)手法を実装することにより、ロボットのセットの間でタスクの第1のセットをスケジュールするよう構成することができ、タスクの第1のセットは、マージされたタスクの中でより高い性能損失値を有するタスクを含み、タスクの第1のセットは更に、待ち時間の閾値を上回り且つより高い性能損失値を有するタスクよりも優先度が低い少なくとも1つのタスクを含む。
【0029】
更に、1又は2以上のハードウェアプロセッサ104は、OMPLS手法を介して、ロボットのセットの間でタスクの第2のセットをスケジュールするよう構成され、タスクの第2のセットは、デッドライン内でスケジュールすることができ且つマージされたタスクの中で低い性能損失値を有するタスクを含む。ここで、提案されたOMPLS手法を介してスケジューリングを最適化するプロセスは、マルチロボット/マルチプロセス環境においてジョブをスケジューリング/配分している間に従来のシステム及び方法によって直面する技術的課題を考慮して詳細に検討することができる。
【0030】
一般に、倉庫に配備されているロボットの数が制限されているので、ある時点において、タスクの数は、ロボットのチームの能力よりも遙かに多い場合があり、このことは、一部のタスクがデッドライン内で提供されないシナリオにつながる可能性がある。倉庫は、全てのタスクを完了するよう約束しているので、システム(タスクを完了するためのロボットプロセスを実装した)上で遅延に比例した性能損失(又はペナルティ)を生じる。
【0031】
タスクtiは、4つのタプル(aiiii)、すなわち、到着時間ai、実行時間ei、相対デッドラインdi、及びペナルティpiによって特徴付けられる。システム(システムを介してマルチロボット環境が実装されて実行される)が時間ゼロにてスタート(再スタート)し、ここでaiは時間単位であり、その後で、タスクtiがマルチロボット環境に到着して、ロボット上でei単位時間を占める必要があると仮定する。システムが時間si(>ai)でスタートした場合、システムは、si+ei時間単位にて実行を終了する。ここでタスクは、(ai+di)で与えられるデッドラインを超えた完了の単位時間遅延当たりにペナルティpiを科す。
【0032】
1つの実施形態において、性能損失関数は、
【数1】
として定義することができ、ciはタスクtiについての完了時間を表し、tiは複数のタスクに対応する。式(1)を参照すると、タスクがデッドライン内に実行された場合には、性能損失がないが、タスクがデッドライン内に実行できない(又はデッドラインをミスする)と、性能損失は、時間に比例して増加する点に留意されたい。従って、複数のタスク、すなわち、m個のロボットの間のn個のタスク及びロボットに割り当てられたタスクのサブセットを実行する順序を区分化することができ、T(rj)はロボットrjに割り当てられたタスクのサブセットを表し、タスクのサブセットは複数のタスクに対応する。
【0033】
本開示の1つの実施形態によれば、m個の同一のロボットが存在し、すなわち、R={r1,r2,...,rm}が並行して動作して、T={t1,t2,...,tn}として表される複数のタスクを完了し、ここで、タスクti(複数のタスクの中で)は、解放時間aiにてスケジューラ(1又は2以上のハードウェアプロセッサ104を介してタスクをスケジュールするよう実装された)に到着したと仮定する。スケジューラは、m個のロボット間のタスク(上記で検討したような)とロボットに割り当てられたタスクのサブセットを実行する順序とをマージし、T(rj)はロボットrjに割り当てられたタスクのサブセットを表す。従って、タスクスケジューラの目的関数は、以下の式(2)によって表すことができる。
【数2】
【0034】
また、これらのタスクが完了するときまでに、タスクの新しいセットが到着することができる。更に、ロボットの一群はまた、これらの一部がそのエネルギーを使い果たす可能性があり、又はエネルギーが増強された新しいロボットが加わることができるので、変化する可能性がある。従って、このような環境において、ロボット間のスケジューリングを最適化するために、最適化されたスケジューリング手法が必要とされる。
【0035】
オンライン最小性能損失スケジューリング(OMPLS)手法、すなわち、提案のOMPLS手法は、マルチプロセッサシステム上で及びマルチロボット環境において、ノンプリエンプティブタスク(又は散発的タスク(sporadic task))のセットのスケジューリングを最適化するのを容易にし、ノンプリエンプティブタスクのセットの各々は、デッドライン及び性能損失値を有する。提案される手法は、オンザフライで均質なロボットのチームにアトミックタスクを割り当てることを容易にし、タスクがデッドラインを満たすことができないことによって、システムに最小限のペナルティが科せられるようになる。
【0036】
従って、OMPLS手法は、新規に到着したタスク全てが記憶されている、ユニバーサルキューを維持することによって、マルチロボットシステム上で性能損失値を有する非クレボヤント(non-clairvoyant)でノンプリエンプティブタスクをスケジュールする。OMPLS手法は更に、デッドライン内でタスクスケジューリングを最大にし、従来のシステム及び方法と比べて最大1の競合比を達成する。最後に、OMPLS手法は、タスクがデッドライン内でスケジュールできないときにタスク実行の有界遅延を可能にする。従って、提案の手法は、タスクの枯渇を排除する。
【0037】
本開示の1つの実施形態によれば、OMPLS手法は、最初に、上記のステップ202からマージしたタスクを考慮する。上記のステップ202において検討したように、1又は2以上の予め割り当てられたタスクは、ロボットのセットの間で1又は2以上のロボットに既に割り当てられた非実行済みタスクであり、1又は2以上の新規に到着したタスクは、ロボットのセットの間で割り当てられることになる非実行済みタスクを含む。従って、予め割り当てられたタスクのセットは、後で到着するより高い優先度のタスクに置き換えられる可能性があるため、デッドライン前に実行されることを保証しないスケジュール可能なタスク(schedulable task)として定義することができる。タスクの優先度は、単位時間遅延当たりにシステムに生じることになる性能損失値によって判断される。タスクは、この優先度に基づいて分類される。最も高いペナルティ値(性能損失=10)を有するタスクは、最優先タスク(優先度=1)として取り扱われる。
【0038】
従って、OMPLS手法は、キューにおけるマージされたタスクを考慮し、最重要なものとしてスケジュールしようと努め、これは、デッドラインを超えて遅延した場合に高いペナルティが生じることになるタスクである。遅延したタスクは、再評価されて、システム全体の性能損失を最小限にするようにスケジュールされる。OMPLS手法は、しばらくの間低い性能損失値を有するタスクを遅延させて、高いペナルティを有するタスクを早期にスケジュールする。しかしながら、低いペナルティ値を有するタスクの連続した遅延は、その枯渇につながる可能性があり、従って、最適化されたスケジューリングが必要とすることができる。
【0039】
1つの実施形態において、任意の瞬間時間τにおいて、マルチロボットシステムは、以下の状態のうちの1つの状態とすることができる。
全てのロボットは、それぞれのタスクの実行に従事しており、実行を続けている;
現在のタスクを完了する一部のロボットは、新しいタスクをピックする準備ができているものがあり:
新しいタスクがシステムに到着していない場合、それぞれのロボットのタスクキューからタスクをピックする;
新しいタスクがシステムに導入された場合、サブルーチンTaskSchedulingに続く;
到着した新しいタスクが存在せず、ロボットのタスクキューに利用可能なタスクが存在しない場合、アイドル状態(idle)のままでいる。
【0040】
1つの実施形態において、1又は2以上のハードウェアプロセッサ104は、ロボットがタスクを終了し、かつ少なくとも1つの新しいタスクがマルチロボットシステムに導入されるか又は新しいロボットがロボット群に加わるたびに、サブルーチンTaskSchedulingを実施する(implement)。直感的に、予め割り当てられたタスクのセット(既にロボットに割り当てられた)を新しく到着したタスクのセットとマージし、次いでスケジュールを決定すると、性能損失値が最小になり、スケジューリングが最適化される。サブルーチンTaskSchedulingに続いて、タスクがロボットに配分される。
アルゴリズム:オンライン最小性能損失スケジューリング(OMPLS)手法
ノンプリエンプティブタスクtをスケジュールするための発見的問題解決法により、時間τにおけるペナルティ全体が最小になる。
入力:配分待ちの待機キュー(ω)のタスク。倉庫におけるアクティブなロボットR
出力:各ロボット(Rschedule)のタスクのスケジュール
【0041】
1つの実施形態において、最初に、マージされた複数のタスクの各々は、ロボットのセットから利用可能なロボット(すなわち、タスクを実行していないロボット)の間でスケジューリングを考慮することができる。次いで、1又は2以上のハードウェアプロセッサ104は、コンパクションチェックを実施して、デッドライン内のタスクtiをスケジュールすることができ、コンパクションチェックは、時間間隔[ai,ai+di]において各ロボットにわたって実施することができる。換言すると、OMPLS手法は、ei連続時間単位がこの期間にロボットに配置される可能性があるかどうかのチェックを実施し、予め割り当てられたタスクのセットの中の他のタスクにデッドラインミスを強制することはない。
【0042】
1つの実施形態において、ロボットrkでタスクtiをスケジュールしてもスケジュール可能なタスクがそのデッドラインをミスしないことを更に確実にするために、下記の式(3)及び(4)の両方を満たす必要がある。
【数3】
【数4】
式(3)は、ロボットrkでスケジュールされた全てのタスクを実行した後、タスクtlを実行するのに十分なスペースを提供し、tlよりも小さいデッドラインを有し、式(4)は、既にrkにスケジュールされており且つtiよりも大きいデッドラインを有するタスクが、tiをスケジュールする場合でもスケジュール可能であることを保証する。
【0043】
1つの実施形態において、ステップ203にて、1又は2以上のハードウェアプロセッサ104は、最後に、リストスケジューリング手法により、タスクの残りのサブセットの性能損失値を最小にするように構成され、タスクの残りのサブセットは、予め定義されたデッドライン内にスケジュールすることができないタスクを含む。[ai,ai-di]の後に始まるようにスケジュールすることができるタスクtiは、予め定義されたデッドライン内に実行を完了するタスクである。(di-ei)後に実行を開始するタスクは、diがマルチロボットシステムに性能損失を科した後に実行を完了すべきである。(di-ei)後に実行を開始するタスクは、リストスケジューリング手法を実装することによって、ロボットの間で配分することができる。
【0044】
1つの実施形態において、タスクの残りのサブセットの性能損失値を最小にするステップは、リストスケジューリング手法を介して、ノンプリエンプティブタスクのスケジューリングを最適化するために新規に到着したタスクから1又は2以上の高優先度タスクを取り除くステップを含み、取り除かれた1又は2以上の高優先度タスクは、ロボットのセットの間でアイドル状態のロボットに割り当てられ、アイドル状態のロボットは、複数のタスクのいずれも実行していないロボットである。従って、最も高い優先度を有するタスクは、待機キューから削除され、第1のロボット(例えば、rk、1≦k≦m)に割り当てることができ、ロボットrkは、アイドル状態であるか、又はロボットのセットの間で最先のタスクを終了するロボットである。1又は2以上のハードウェアプロセッサ104は、複数のタスクの中の各タスクが少なくとも1つのロボットに割り当てられるまで、1又は2以上の高優先度タスクを反復して取り除くステップを実施する。
【0045】
前述のように、枯渇につながる可能性がある、低いペナルティ値を有するタスクの連続的な遅延が存在する場合に、ロボットプロセスを実装する従来のシステム及び方法は機能しない。従来のシステム及び方法によって直面されるこの制限を克服するために、開示される方法、すなわち、OMPLS手法は、ノンプリエンプティブタスクのスケジューリングを最適化するためタスクの残りのサブセットの各々に関して優先度更新を実行する。1つの実施形態において、各タスクがロボットに割り当てられた(又はロボットの待機キューに配分された)後、1又は2以上のハードウェアプロセッサ104は、デッドラインに違反する可能性があるロボットに対して優先度値実行(又は起動)する。
【0046】
このため、マルチロボット環境におけるノンプリエンプティブタスクのスケジューリングを最適化するために、1又は2以上のハードウェアプロセッサ104は、タスクの残りのサブセットの各々の実行時間が初期の予め定められた閾値よりも大きいと判断されると、タスクの残りのサブセットの各々の優先度関数をインクリメントすることによって、優先度更新を実行し、該初期の予め定められた閾値は、予め定められたデッドラインを用いて識別される。従って、現在時間τがその初期の予め定められた閾値を超えた場合には、タスクのサブセットの各々の優先度は、1単位だけインクリメントされる。
【0047】
1つの実施形態において、タスクについての初期の予め定められた閾値は、最終デッドラインと同一に設定することができる。従って、閾値(thi)は、以下の式(5)のように定義することができる。
【数5】
上記の式(5)を参照することにより、タスクTiがその予め定められた初期閾値(pre-defined initial threshold)内に実行できない場合、1又は2以上のハードウェアプロセッサ104は、相対デッドラインに等しい初期値だけ上記閾値をインクリメントし、タスク優先度は、単位ステップだけインクリメントすることができ、閾値をインクリメントすることにより、priorityiの反復の後、タスクTiは、クリティカルタスク(priority=0)として識別され、これにより最高優先度を得ることができる点に留意されたい。1又は2以上のハードウェアプロセッサ104は、かかる1又は複数のクリティカルタスクをロボットに割り当て、このようにして識別され割り当てられた1又は複数のクリティカルタスクは、他の何れかの1又は複数のタスクと置き換えることができない。
【0048】
本開示の1つの実施形態によれば、OMPLS手法の性能評価は、シミュレーション結果を介して検討することができる。開示される方法は、OMPLS手法の性能を評価するための容量制約式ビークルルーティング問題(CVRP)のデータセット(vrp)を実装し、デポットロケーションは、パッケージドックロケーションを用いることができ、サイトロケーションは、ロボットによってピックアップされる1又は複数の物体の保管場所として用いることができる。シミュレーション結果は、このセットから1000タスクだけ(すなわち、サイトロケーション)について検討している。
【0049】
前述のように、各タスクは、タプルとして表すことができ、すなわち、ti=<ai,ei,di,pi>、ここで実行時間(ei)は、パッケージドックから物体の保管場所(ストレージロケーション)までのロボットの往復の移動時間として設定することができる。実行時間としては、以下のストラテジーを考慮することができる:
i=2ei、ここでタスクのデッドラインdiは、対応する実行時間eiの2倍に設定される。ロボットの数と比べてタスクの数が多いことに起因して、複数のタスクがデッドラインをミスする可能性があるが、このような希なシナリオは、開示される方法を実装することによって効果的に対処される;
i∈[2ei,10ei]、デッドラインdiは、2ei,10eiの範囲でランダム値に設定され、ここで2ei,10eiはランダムに分散される;
i∈[5ei,10ei]、デッドラインdiは、5ei,10eiの範囲で均一な分布を用いて設定される。これは、大量のタスクが、その(全てではないが)の各々の対応するデッドライン内にスケジューリング可能であるシナリオを表しており;
d←mix、スケジューラがデッドラインの特定の分布を優先しないことを確保するために等確率の3つの以前のデータセットのミックスを含む。
【0050】
更に、上述の実行時間とデッドラインの各組み合わせにおいて、1又は2以上のハードウェアプロセッサ104は、以下の3つのストラテジーを用いて各タスクに対するペナルティを割り当てる:
p←[1,10]、性能損失は、1~10の範囲で均一な分布を用いて生成される1又は2以上のランダム値に設定される;
p←same、性能損失は、複数のタスクの各々について1つの同一の値(例えば、1)に設定される;
p←extreme[1 or 10]、性能損失は、2つの極値の何れか、すなわち、1又は10に等確率で設定される。
【0051】
1つの実施形態において、OMPLS手法は、2つのメトリクス、すなわち、全てのタスクを完了している間に被った全体の性能損失と、時間τ0とτ’(ここでτ’>τ0)の間のデッドラインミスの数とに基づいて評価することができる。スケジューラの性能を確認するために、安定したマルチロボットシステムが時間τ0まで表すことができる。時間τ0の後、タスクのバーストがマルチロボットシステムにおいて時間τ’までに到着し、時間τ’の後、タスクインフローが減少する。図3及び図4を参照することにより、バースト中のタスク到着パターンを参照することができ、図3は、特定の時間スパン-定常高トラフィックに対する連続した高インフローレートを示し、図4は、複数のタスクが小時間スケールで出現しており、パターンが一部の時間-スパイクトラフィックで続いていることを示す。
【0052】
1つの実施形態において、デッドラインミスのタスクの数並びに被った対応する性能損失値は、マルチロボットシステムにおいてタスクが出現したレート及びタスクを実行するのに利用可能なロボットの数に依存する。アクティブなロボットの数(ロボットの総数の中の)は、タスクバーストの前後マルチロボットシステムの堅牢性を把握するために、50個に固定することができ、このような高トラフィック時間の間におよそ1000個が追加された。開示の方法は、例えば、Turner他による最短デッドライン優先-新規タスク優先(EDF-NTF)など、従来のシステム及び方法と比較した。
【0053】
図3及び図4を参照することにより、高トラフィック期間中に到着したタスクについて累積されたデッドラインをミスしたタスクの数及び性能損失について参照することができる。マルチロボットシステムは、タスクの急増が生じる前に安定状態であった。図3及び図4を再度参照することにより、固定数のロボットでは、タスクインフローのレートが大幅に増大すると、マルチロボットシステムは、安定性を失い、実行中の多数のタスクがデッドライン制約に違反することにつながる点に留意されたい。性能損失はまた、漸次的に累積し始める。タスクバーストの終わりには、タスク到着レートが漸次的に正常値に下がり、マルチロボットシステムが安定性を獲得して、更なるデッドラインミス及び性能損失の累積は存在しない。タスク到着パターンの両方の種類(安定した高トラフィック及びスパイクトラフィック)では、スケジューラ性能が類似している。高トラフィックの間に実験が実施された。
【0054】
図5を参照することにより、時間τ0+25にて到着したタスクについての実行パターンを参照することができる。OMPLS手法は、例えば、EDF-NTF手法のような従来のシステム及び方法と比べて、より少ないタスクがデッドラインをミスするようにトラフィックをスケジュールする。OMPLS手法は、より低いペナルティ値(例えば、タスクid58)でタスクを遅延させて、より高いペナルティを有するタスクを優先させて、システムに対する全体の損失/ペナルティを最小限にする。低ペナルティタスクの実行における一定の遅延は、枯渇につながる可能性がある。枯渇回避もまた、上記のステップ203で検討したような提案のOMPLS手法によって排除される。
【0055】
本開示の1つの実施形態に従って、提案の開示の堅牢性、結果、技術的利点、性能損失の最小化、並びに従来のシステム及び方法に対する比較について更に考察することができる。以下の表1~4を参照することにより、OMPLS手法は、特定のタスク特性を優先しない点に留意されたい。OMPLS手法は更に、ペナルティ値及び性能損失値を従来のシステム及び手法(d=例えば、オークションベースのアルゴリズム(AUC-オフライン))と比較することにより評価することができる。
【表1】
【表2】
【表3】
【表4】
【0056】
AUCオフライン手法では、デッドライン内にできるだけ多くのタスクを実行することで利益を最大化しようとしているが、スケジュール可能なタスクの最後に残りのタスク(デッドラインをミスした)のスケジューリングを提供しない。OMPLS手法は、スケジュール可能なタスクの最後に残りのタスク(デッドラインをミスした)をスケジュールする。これにより、AUCベースのスケジューリングにおいて累積した性能値が得られる。表3は、デッドラインに適合するタスクの数の観点で、AUCオフライン手法に対するOMPLS手法の優位性を提供する。表4を参照することにより、OMPLS手法は、最大競合比1及び最小値0.83を得る点に留意されたい。
【0057】
図6を参照することにより、提案のOMPLS手法は、ノンプリエンプティブタスクのスケジューリングを最適化することにより、従来のシステム及び方法よりも性能が優れている点に留意されたい。直感的には、タスクを実行するために利用可能なロボットの数が多い場合のOMPLS手法では、デッドラインミス及び性能損失値の最小化に関してスケジューラの性能を改善する必要がある。この傾向は、AUCオフライン手法、EDF-NTF手法、並びに開示された方法によって反映される。利用可能なロボットの数は、20~100の間で変化し、この変化は2つの態様、すなわち、リソース(ロボット)の変化する数に伴うスケジューラの堅牢性と、リソースの数の増加に伴う性能の改善に直面する。
【0058】
タスクが遙かに大きなデッドラインを有する、di∈[5ei,10ei]では、70個のロボットを用いることにより、ほとんど全てのタスクは、デッドライン制約のどれもミスすることなく、提案のOMPLS手法を実装することによって成功裏に実行される。同じ性能を達成するためには、EDF-NTF手法では、より多数のロボットが必要であった。更に、di∈[2ei,10ei]及びd←mixでは、驚異的な数のタスクがデッドラインをミスすることになる場合、提案のOMPLS手法は、発生した性能損失値の点で、AUCオフライン手法及びEDF-NTF手法の両方よりも優れている。デッドラインをミスするタスクの数は、常にAUCオフライン手法よりも少なく、これは、AUCオフライン手法は、開始時にタスク設定全体がスケジューラに既知であるオフライン手法であるということに起因することができる点に留意されたい。提案のOMPLS手法は、ペナルティの少ないタスクを遅延させ、他方、従来のシステム及び手法、例えば、EDF-NTF手法は、タスクをそのデッドラインを超えて遅延させている。
【0059】
本明細書は、当業者が本発明の実施形態を実施及び利用できるように、本明細書で主題を記載している。本主題の実施形態の範囲は、請求項によって定められ、当業者であれば想起される他の修正形態を含むことができる。他のこのような修正形態は、請求項の文言と相違しない同様の要素を有する場合、又は請求項の文言と僅かな差異を有する均等な要素を含む場合には、請求項の範囲内にあるものとする。
【0060】
本明細書における本開示の実施形態は、マルチロボット環境におけるノンプリエンプティブタスクのスケジューリングを最適化するという未だ解決されていない問題に取り組んでいる。すなわち、本実施形態は、OMPLS手法を実装することにより、最初に、より高い性能損失値を有するタスク、次に、デッドライン内にスケジュールすることができ、かつマージされたタスクの中で低い性能損失値を有するタスクをスケジューリングすること、及び最後に予め定義されたデッドライン内にスケジュールすることができないタスクの残りのサブセットの性能損失値を最小化することを提供する。また、本明細書の実施形態は更に、ノンプリエンプティブタスクのスケジューリングを最適化するためタスクの残りのサブセットの各々に対し優先度更新の実行を提供する。
【0061】
本特許の保護範囲は、このようなプログラムにまで、及びこれに加えてメッセージを内部に有するコンピュータ可読手段にまで拡張され、かかるコンピュータ可読記憶手段は、プログラムがサーバ又はモバイルデバイス上で又は何れかの好適なプログラマブルデバイス上で実行されたときに、本方法の1又は2以上のステップを実装する(実施する)ためのプログラムコード手段を含む点に留意されたい。ハードウェアデバイスは、例えば、サーバ又はパーソナルコンピュータ又は同様のもの、もしくはこれらの組み合わせのような何れかの種類のコンピュータを含む、プログラムすることができる何れかの種類のデバイスとすることができる。デバイスはまた、例えば、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などのハードウェア手段、又は、例えば、ASIC及びFPGA、又はソフトウェアモジュールが配置された少なくとも1つのマイクロプロセッサ及び少なくとも1つのメモリなどのハードウェアとソフトウェアの組み合わせとすることができる手段を含むことができる。従って、本手段は、ハードウェア手段とソフトウェア手段の両方を含むことができる。本明細書で記載される方法の実施形態は、ハードウェア及びソフトウェアにおいて実装することができる。デバイスはまた、ソフトウェア手段を含むことができる。代替として、本実施形態は、例えば、複数のCPUを用いて、様々なハードウェアデバイス上で実装することができる。
【0062】
本明細書の実施形態は、ハードウェア要素とソフトウェア要素とを含むことができる。ソフトウェアにて実装される実施形態は、限定ではないが、ファームウェア、常駐ソフトウェア、マイクロコード、その他を含む。本明細書で記載された種々のモジュールによって実施される機能は、他のモジュール又は他のモジュールの組み合わせにおいて実装することができる。本明細書において、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスによって又はこれらと接続して使用されるプログラムを包含、記憶、通信、伝搬、又は伝送することができる何らかの装置とすることができる。
【0063】
例示されるステップは、図示の例示的な実施形態を説明するために提示され、進行中の技術開発が、特定の機能が実施される方式を変化させるであろうことは理解されたい。これらの実施例は、本明細書では限定ではなく説明の目的で提示されている。更に、説明の便宜上、本明細書では機能的構成単位の境界が任意に定義された。指定される機能及びそれらの関係が適切に行われる限り、代替の境界を定義することができる。(本明細書に記載されるものの等価物、拡張、変形、逸脱などを含む)別の代替手段は、本明細書に含まれる教示に基づいて当業者には明らかであろう。かかる代替手段は、開示される実施形態の範囲及び技術的思想の範囲内にある。更に、単語「含む(comprising)」、「有する(having)」、「含む(containing)」及び「含む(including)」並びに他の同様の語形は、意味が等しいことが意図され、これらの単語の何れかに続く単数又は複数の項目が単数又は複数のかかる項目の網羅的なリストであることを意味せず、リストされた単数又は複数の項目のみに限定されることも意味しないという点で非限定的であることが意図される。同様に、本明細書及び添付の特許請求の範囲において、文脈が明らかに別のことを指示しない限り、単数形「1つの(a)」、「1つの(an)」、及び「前記(the)」が複数の参照を含むことも留意しなくてはならない。
【0064】
更に、本開示に適合する実施形態を実装する際に、1又は2以上のコンピュータ可読記憶媒体を利用することができる。コンピュータ可読記憶媒体は、プロセッサによって可読な情報又はデータを記憶することができる何れかのタイプの物理メモリを指す。従って、コンピュータ可読記憶媒体は、本明細書に記載される実施形態に適合するステップ又は段階をプロセッサ(単数又は複数)に行わせるための命令を含む、1又は2以上のプロセッサによる実行のための命令を記憶することができる。用語「コンピュータ可読媒体」は、有形の品目を含み、搬送波及び過渡信号を除く、すなわち非一時的であると理解されるべきである。実施例は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、揮発性メモリ、不揮発性メモリ、ハードドライブ、CD ROM、DVD、フラッシュドライブ、ディスク及びその他の既知の物理記憶媒体を含む。
【0065】
本開示及び実施例は、単に例示的なものとみなされ、開示される実施形態の真の範囲及び精神は、添付の特許請求の範囲によって示される。
図1
図2
図3
図4
図5
図6