JP6908643B2 - ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムおよび方法 - Google Patents

ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムおよび方法 Download PDF

Info

Publication number
JP6908643B2
JP6908643B2 JP2019031615A JP2019031615A JP6908643B2 JP 6908643 B2 JP6908643 B2 JP 6908643B2 JP 2019031615 A JP2019031615 A JP 2019031615A JP 2019031615 A JP2019031615 A JP 2019031615A JP 6908643 B2 JP6908643 B2 JP 6908643B2
Authority
JP
Japan
Prior art keywords
tasks
scheduling
scheduled
unschedulable
performance loss
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019031615A
Other languages
English (en)
Other versions
JP2020004370A (ja
Inventor
チャヤン サルカール
チャヤン サルカール
マリチ アガルワル
マリチ アガルワル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tata Consultancy Services Ltd
Original Assignee
Tata Consultancy Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tata Consultancy Services Ltd filed Critical Tata Consultancy Services Ltd
Publication of JP2020004370A publication Critical patent/JP2020004370A/ja
Application granted granted Critical
Publication of JP6908643B2 publication Critical patent/JP6908643B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Robotics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Manipulator (AREA)
  • Complex Calculations (AREA)

Description

[関連出願の相互参照および優先権]
本特許出願は、2018年6月29日出願のインド国特許出願第201821024387号の優先権を主張する。
[技術分野]
本開示は、一般に、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールすることに関し、より詳しくは、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムおよび方法に関する。
デジタルおよびオートメーション時代においては、マルチロボットシステムおよび関連する技術が様々な用途および産業で広く用いられている。例えば、倉庫調達システムでは、多種多様な対象物を倉庫内に保管し、そこから回収するプロセスを自動化するためにマルチロボットシステムが配備される。倉庫では、商品が広い区域にわたって系統的に保管され、需要に基づいて保管場所から取り出される。商品または対象物の倉庫内およびそこからの移動は、(商品の移動に関する)タスクのスケジューリングの観点から主要な課題を提起する。倉庫調達システムへリアルタイムで流入する夥しい量の需要は、需要の最適なスケジューリングを不可避にする。eコマースおよび最近の物流の急速な進展に伴って、倉庫システムは、短いピッキング時間に対して厖大な規模の在庫および広範な高需要を有し、それによって、ロボットシステムの配備を必要とする。
このように、産業および他の技術分野における用途に起因して、マルチロボットシステムにおけるタスク配分が著しく重要性を増している。与えられたシステムレベルのタスクのサブタスクに個々のロボットを割り当てるプロセスは、タスク配分と呼ばれ、いずれのマルチロボットシステムにも必要とされる重要な機能性を含む。タスク配分の目的は、マルチロボットシステムの性能を向上させることになるようにロボットタスク(単数または複数)を割り当てることであり、これは、総合的な実行時間の短縮を含む。一般に、タスク配分は、未知の動的環境で機能しているマルチロボットシステムにとって欠くことのできない要件である。タスク配分は、ロボットが総合的なシステム性能を改善するために、環境の変化または他のロボットの行動に応答してそれらの振舞いを変化させることを許容する。
従って、マルチロボットシステムにおけるタスク配分は、特に、異なる要件および制約を伴う様々なタスクを最適な仕方で行うために必要とされる異なる能力が複数のロボットに備わった、かかるロボット環境では、複雑な課題を提起する。タスク配分の問題は、環境の変化を含んだ現象を伴う時間的に変化する動的決定問題であるため、問題を指定された時間間隔で反復して解かなければならない。従って、タスク配分の問題は、取り組むのがより複雑になる。考察下にある特定の技術分野の要件が、マルチロボット・タスク配分問題の特徴および複雑さにさらに影響を及ぼす。
本開示の実施形態は、本発明者らによって従来のシステムで認識された上述の技術的問題の1つ以上への解決法としての技術改良を提示する。例えば、一実施形態において、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするための方法が提供され、この方法は、複数のタスクを、1つ以上のハードウェアプロセッサによって、定義するステップであって、複数のタスクの各々が実行時間、ノンプリエンプティブタスクを完了するための指定された時間間隔および時間単位当たりの性能損失関数で特徴付けられたノンプリエンプティブタスクである、定義するステップと;複数のタスクをスケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合に、スケジューリング技法によって、区分化するステップであって、スケジュール可能なタスクの集合は、所定の時間間隔内に実行されることになり最大性能損失値を有するタスクの部分集合を含み、スケジュール不可能なタスクの集合は、所定の時間間隔内に実行できず低性能損失値をもつタスクの部分集合を含む、区分化するステップと;区分化された複数のタスクを複数のステップを行うことによって、予め定義された順序で、スケジュールするステップであって、複数のステップは、(i)区分化された複数のタスクを区分化された複数のタスクに対応する1つ以上の性能損失値の非昇順で、スケジューリング技法によって、ソートするステップ;(ii)圧縮メカニズムを実装することにより、スケジュール可能なタスクの集合のうちの少なくとも1つをマルチロボット環境で動作している複数のロボットの中の各ロボットに割り当てることによってスケジュール可能なタスクの集合をマルチロボット環境でスケジュールするステップであって、スケジュールするステップは、(a)スケジュール可能なタスクの集合のうちの各々のマルチロボット環境での実行の可能性を、スケジューリング技法によって、判定するステップと、(b)予め割り当てられたタスクの集合を複数のロボットの中でスケジュールする可能性を、スケジューリング技法によって、判定するステップであって、予め割り当てられたタスクの集合は、スケジュール可能なタスクの集合以外の1つ以上のタスクおよびスケジュール不可能なタスクの集合を含む、判定するステップと、(c)スケジュール可能なタスクの集合のうちの各々の実行の可能性および予め割り当てられたタスクの集合をスケジュールする可能性を判定した際に、スケジュール可能なタスクの集合をマルチロボット環境で、圧縮メカニズムによって、スケジュールするステップとを含む、スケジュールするステップ;および(iii)スケジュール不可能なタスクの集合を複数のロボットの中で、リスト・スケジューリング技法によって、スケジュールするステップを含む、複数のステップと;(i)スケジュール可能なタスクの集合の中のスケジュール可能なタスクの各々の実行の最小の可能性、または(ii)予め割り当てられたタスクの集合をスケジュールする最小の可能性のいずれかを判定した際に、スケジュール可能なタスクの集合の中の1つ以上のスケジュール可能なタスクをスケジュール不可能なタスクとして、スケジューリング技法によって、カテゴリー化するステップと;ノンプリエンプティブタスクの集合のマルチロボット環境でのスケジューリングを最適化するために、区分化された複数のタスクの負荷バランシングを、複数のタスクに対応する1つ以上の性能損失値に基づいて、行うステップと;スケジュール不可能なタスクの集合のうちの各々がマルチロボット環境でスケジュールされるまで、スケジューリング技法を実装することによって1つ以上のスケジュール不可能なタスクの識別のステップを反復して行うステップとを含む。
別の態様では、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムが提供され、このシステムは、命令を記憶するメモリ、1つ以上の通信インターフェース、および1つ以上の通信インターフェースを介してメモリに結合された1つ以上のハードウェアプロセッサを含み、1つ以上のハードウェアプロセッサは、命令によって、複数のタスクを定義し、複数のタスクの各々が実行時間、ノンプリエンプティブタスクを完了するための指定された時間間隔および時間単位当たりの性能損失関数で特徴付けられたノンプリエンプティブタスクであり;複数のタスクをスケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合に、スケジューリング技法によって、区分化し、スケジュール可能なタスクの集合は、所定の時間間隔内に実行されることになり最大性能損失値を有するタスクの部分集合を含み、スケジュール不可能なタスクの集合は、所定の時間間隔内に実行できず低性能損失値をもつタスクの部分集合を含み;区分化された複数のタスクを複数のステップを行うことによって、予め定義された順序で、スケジュールし、複数のステップは、(i)区分化された複数のタスクを区分化された複数のタスクに対応する1つ以上の性能損失値の非昇順で、スケジューリング技法によって、ソートし、(ii)圧縮メカニズムを実装することにより、スケジュール可能なタスクの集合のうちの少なくとも1つをマルチロボット環境で動作している複数のロボットの中の各ロボットに割り当てることによってスケジュール可能なタスクの集合をマルチロボット環境でスケジュールし、スケジュールするステップは、(a)スケジュール可能なタスクの集合のうちの各々のマルチロボット環境での実行の可能性を、スケジューリング技法によって、判定し;(b)予め割り当てられたタスクの集合を複数のロボットの中でスケジュールする可能性を、スケジューリング技法によって、判定し、予め割り当てられたタスクの集合は、スケジュール可能なタスクの集合以外の1つ以上のタスクおよびスケジュール不可能なタスクの集合を含み;(c)スケジュール可能なタスクの集合のうちの各々の実行の可能性および予め割り当てられたタスクの集合を複数のロボットの中でスケジュールする可能性を判定した際に、スケジュール可能なタスクの集合を、圧縮メカニズムによって、スケジュールすることを含み;さらに(iii)スケジュール不可能なタスクの集合を複数のロボットの中で、リスト・スケジューリング技法によって、スケジュールすることを含み;(i)スケジュール可能なタスクの集合の中のスケジュール可能なタスクの各々の実行の最小の可能性;または(ii)予め割り当てられたタスクの集合をスケジュールする最小の可能性のいずれかを判定した際に、スケジュール可能なタスクの集合の中の1つ以上のスケジュール可能なタスクをスケジュール不可能なタスクとして、スケジューリング技法を介して、カテゴリー化することによってスケジュール可能なタスクの集合をスケジュールし;ノンプリエンプティブタスクの集合のマルチロボット環境でのスケジューリングを最適化するために、区分化された複数のタスクの負荷バランシングを、複数のタスクに対応する1つ以上の性能損失値に基づいて、行うことによって区分化された複数のタスクをスケジュールして;スケジュール不可能なタスクの集合のうちの各々がマルチロボット環境でスケジュールされるまで、1つ以上のスケジュール不可能なタスクの識別のステップを、スケジューリング技法を実装することによって、反復して行うように構成される。
さらに別の態様では、1つ以上のハードウェアプロセッサによって実行されたときに、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするための方法を1つ以上のハードウェアプロセッサに行わせる、1つ以上の命令を含む1つ以上の非一時的機械可読情報記憶媒体が提供され、この方法は、複数のタスクを定義するステップであって、複数のタスクの各々が実行時間、ノンプリエンプティブタスクを完了するための指定された時間間隔、および時間単位当たりの性能損失関数で特徴付けられたノンプリエンプティブタスクである、定義するステップと;複数のタスクをスケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合に、スケジューリング技法によって、区分化し、スケジュール可能なタスクの集合は、所定の時間間隔内に実行されることになり最大性能損失値を有するタスクの部分集合を含み、スケジュール不可能なタスクの集合は、所定の時間間隔内に実行できず低性能損失値をもつタスクの部分集合を含む、区分化するステップと;区分化された複数のタスクを複数のステップを行うことによって、予め定義された順序で、スケジュールするステップであって、複数のステップは、(i)区分化された複数のタスクを区分化された複数のタスクに対応する1つ以上の性能損失値の非昇順で、スケジューリング技法によって、ソートするステップ;(ii)圧縮メカニズムを実装することにより、スケジュール可能なタスクの集合のうちの少なくとも1つをマルチロボット環境で動作している複数のロボットの中の各ロボットに割り当てることによってスケジュール可能なタスクの集合をマルチロボット環境でスケジュールするステップであって、スケジュールするステップは、(a)スケジュール可能なタスクの集合のうちの各々のマルチロボット環境での実行の可能性を、スケジューリング技法によって、判定するステップと;(b)予め割り当てられたタスクの集合を複数のロボットの中でスケジュールする可能性を、スケジューリング技法によって、判定し、予め割り当てられたタスクの集合は、スケジュール可能なタスクの集合以外の1つ以上のタスクおよびスケジュール不可能なタスクの集合を含む、判定するステップと;(c)スケジュール可能なタスクの集合のうちの各々の実行の可能性および予め割り当てられたタスクの集合をスケジュールする可能性を判定した際に、スケジュール可能なタスクの集合をマルチロボット環境で、圧縮メカニズムによって、スケジュールするステップとを含む、スケジュールするステップ;および(iii)スケジュール不可能なタスクの集合を複数のロボットの中で、リスト・スケジューリング技法によって、スケジュールするステップを含む、複数のステップと;(i)スケジュール可能なタスクの集合の中のスケジュール可能なタスクの各々の実行の最小の可能性、または(ii)予め割り当てられたタスクの集合をスケジュールする最小の可能性のいずれかを判定した際に、スケジュール可能なタスクの集合の中の1つ以上のスケジュール可能なタスクをスケジュール不可能なタスクとして、スケジューリング技法によって、カテゴリー化するステップと;ノンプリエンプティブタスクの集合のマルチロボット環境でのスケジューリングを最適化するために、区分化された複数のタスクの負荷バランシングを、複数のタスクに対応する1つ以上の性能損失値に基づいて、行うステップと;スケジュール不可能なタスクの集合のうちの各々がマルチロボット環境でスケジュールされるまで、スケジューリング技法を実装することによって1つ以上のスケジュール不可能なタスクの識別のステップを反復して行うステップとを含む。
理解されるべきは、前述の一般的な記載および以下の詳細な記載がいずれも例示的かつ説明的であるに過ぎず、請求される本発明を限定するものではないことである。
本開示に組み込まれてその一部を構成する添付図面は、例示的な実施形態を示し、説明と併せて、開示される原理を説明する役割を果たす。
本開示のいくつかの実施形態による、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムのブロック図を示す。 本開示のいくつかの実施形態による、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするプロセスに含まれるステップを示すフロー図である。 本開示のいくつかの実施形態による、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするプロセスに含まれるステップを示すフロー図である。 本開示のいくつかの実施形態による、提案される方法論(負荷バランシング有りおよび無し)と、従来のシステムおよび方法(すなわち、需要バウンド関数(DBF:Demand Bound Function)および需要バウンド関数(代替)またはDBF(代替))との性能比較をグラフィカルに示し、ここでは100個のプリエンプトされないタスクの集合が、10個のロボットシステムによって、提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて5つの異なるデッドラインについて行われ、性能損失は、1と10との間のランダム値に設定される。 本開示のいくつかの実施形態による、提案される方法論(負荷バランシング有りおよび無し)と、従来のシステムおよび方法(すなわち、需要バウンド関数(DBF)および需要バウンド関数(代替)またはDBF(代替))との性能比較をグラフィカルに示し、ここでは100個のプリエンプトされないタスクの集合が、10個のロボットシステムによって、提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて5つの異なるデッドラインについて行われ、性能損失は、1と10との間のランダム値に設定される。 本開示のいくつかの実施形態による、提案される方法論(負荷バランシング有りおよび無し)と、従来のシステムおよび方法(すなわち、需要バウンド関数(DBF)および需要バウンド関数(代替)またはDBF(代替))との性能比較をグラフィカルに示し、ここでは100個のプリエンプトされないタスクの集合が、10個のロボットシステムによって、提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて5つの異なるデッドラインについて行われ、性能損失は、1と10との間のランダム値に設定される。 本開示のいくつかの実施形態による、提供される方法論を負荷バランシングとともに用いて行われるソーティングをグラフィカルに示す。 本開示のいくつかの実施形態による、マルチロボット環境においてロボットが線形に増加するケースで提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて行われた1000個のプリエンプトされないタスクの集合の比較をグラフィカルに示し、ここでデッドラインは、eと10eとの間で一様に分布し、性能損失は、1と10との間に一様に分布する。 本開示のいくつかの実施形態による、マルチロボット環境においてロボットが線形に増加するケースで提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて行われた1000個のプリエンプトされないタスクの集合の比較をグラフィカルに示し、ここでデッドラインは、eと10eとの間で一様に分布し、性能損失は、1と10との間に一様に分布する。 本開示のいくつかの実施形態による、マルチロボット環境においてロボットが線形に増加するケースで提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて行われた1000個のプリエンプトされないタスクの集合の比較をグラフィカルに示し、ここでデッドラインは、eと10eとの間で一様に分布し、性能損失は、1と10との間に一様に分布する。 本開示のいくつかの実施形態による、マルチロボット環境においてロボットが線形に増加するケースで提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて行われた1000個のプリエンプトされないタスクの集合の比較をグラフィカルに示し、ここでデッドラインは、4つの異なる分布の混合を含み、性能損失は、1と10との間に一様に分布する。 本開示のいくつかの実施形態による、マルチロボット環境においてロボットが線形に増加するケースで提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて行われた1000個のプリエンプトされないタスクの集合の比較をグラフィカルに示し、ここでデッドラインは、4つの異なる分布の混合を含み、性能損失は、1と10との間に一様に分布する。 本開示のいくつかの実施形態による、マルチロボット環境においてロボットが線形に増加するケースで提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて行われた1000個のプリエンプトされないタスクの集合の比較をグラフィカルに示し、ここでデッドラインは、4つの異なる分布の混合を含み、性能損失は、1と10との間に一様に分布する。
例示的な実施形態が添付図面を参照して記載される。図中で、参照番号の最上位桁(単数または複数)は、その参照番号が最初に現われる図を特定する。便利であればどこでも、同じかまたは同様の部分を指すために同じ参照番号が複数の図面を通じて用いられる。開示される原理の例および特徴が本明細書に記載されるが、開示される実施形態の趣旨および範囲から逸脱することなく変更、適合、および他の実施が可能である。以下の詳細な記載は、例示的に過ぎないと見なされることが意図され、真の範囲および趣旨は、添付の特許請求の範囲によって示される。
本開示の実施形態は、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムおよび方法を提供する。一般に、マルチロボット・タスク配分は、タスクスケジューリングまたはタスク配分を最適化するためにタスクをロボットの中で効率的に割り当てるステップを含む。例えば、対象物を顧客が発注するときにそれが配送されるようにスケジュールされる、倉庫におけるタスク配分は、対象物を保管ラックから梱包台へ引き出すステップを含む。これらのタスクは、本質的に均質であってよいとはいえ、品目の保管位置および重さに基づいて異なってもよい。一般に、タスクは、波のように扱われ、波は、数百から数千のタスクを含むことができる。これらのタスクが一旦完了されると、前の波の実行中に蓄積した、次の波が実行のために選ばれる。
ノンプリエンプティブまたは原子タスクの集合を複数の均質かつ自律的なロボットに対してスマート環境、特にスマート倉庫環境でスケジュールする問題は、均質なマルチプロセッサシステム上のノンプリエンプティブスケジューリングまたは散発的プロセススケジューリングに極めて類似する。目標は、ノンプリエンプティブまたは原子タスクの集合のうちの各々に対応するデッドライン内にノンプリエンプティブまたは原子タスクの集合の最大数を最適にスケジュールすることである。さらに、ノンプリエンプティブまたは原子タスクの集合のうちの各々は、デッドラインと、ノンプリエンプティブタスクの集合のうちのいずれかがその対応するデッドライン内に完了されなければマルチロボットシステムが被りかねない、それに帰される性能損失とを有するので、タスクスケジューリング・システムの目標は、デッドラインミス数の削減および性能損失の最小化である。
さらにまた、利用可能なリソース(特に、ロボット)の数が固定され、タスク流入数は、1日の特定の時間および1年のある期間中に非常に大きくなりうるので、多くのタスクは、これらの高需要期間中にそれらのデッドラインをミスすることが避けられない。例えば、スマート倉庫環境のシナリオを考慮すると、スマート倉庫環境内およびそれからの商品または対象物の移動が(商品の移動に関する)タスクのスケジューリングの観点から主要な課題を提起する。タスクの波でインポートされたすべてのタスクが限られた数のリソース(ロボット)を用いてできるだけ速やかに終了されることが要求され、その後、次の波がインポートされる。
特にロボットまたは関連技術を実装した倉庫における、従来のシステムおよび方法は、ノンプリエンプティブまたは原子タスクの集合のうちの各々と関連付けられたデッドラインおよび性能損失を考慮せず、従って、かかるノンプリエンプティブタスクがそれらのデッドラインをミスすることを避けられない場合にはノンプリエンプティブまたは原子タスクの集合の中の多くのタスクを破棄する。しかしながら、一般に、対応するデッドラインをたとえ過ぎたとしても、スマート倉庫環境における各タスクが完了される必要がある。ノンプリエンプティブまたは原子タスクの集合を区分化するステップおよびそれらをマルチプロセッサシステム(またはマルチコアシステム)上にスケジュールするステップが主要なタスクスケジューリング問題を含む。
さらに、従来のシステムおよび方法の大部分は、プリエンプションが許可されて、すなわち、タスクが1つのプロセッサ上でプリエンプトされてよく、その後、同じかまたはさらに別のプロセッサ上で再開されてよい解決法(単数または複数)を提供する。しかしながら、ノンプリエンプティブスケジューリング環境のケースでは、かかるタスクスケジューリング技法を実装できない。従来のシステムおよび方法のいくつかは、提案されるノンプリエンプティブスケジューリング環境のためのノンプリエンプティブスケジューリング技法を有するが、しかしながら、かかる技法をマルチプロセッサシステム上に実装することはできず、先に論じられたように、かかる技法は、性能損失およびデッドラインに関する態様を考慮しない。
それゆえに、ノンプリエンプティブタスクの各々が対応するデッドラインまたはそれと関連付けられた性能損失を有する、ノンプリエンプティブタスクをマルチプロセッサシステム上にスケジュールするステップを提供する技術が必要である。
次に、複数の図にわたって同様の参照文字が対応する特徴を一貫して表す、図面、より詳しくは図1〜図6Cを参照すると、好ましい実施形態が示され、これらの実施形態が以下の例示的なシステムおよび/または方法に照らして説明される。
図1は、本開示のある実施形態による、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステム100の例示的なブロック図を示す。ある実施形態において、システム100は、1つ以上のプロセッサ104、通信インターフェースデバイス(単数または複数)もしくは入力/出力(I/O)インターフェース(単数または複数)106、および1つ以上のプロセッサ104に作動的に結合された1つ以上のデータ記憶デバイスまたはメモリ102を含む。ハードウェアプロセッサである1つ以上のプロセッサ104を1つ以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、ステートマシン、論理回路、および/または動作命令に基づいて信号を操作する任意のデバイスとして実装できる。他の能力の中でも、プロセッサ(単数または複数)は、メモリ102に記憶されたコンピュータ可読命令をフェッチして実行するように構成される。ある実施形態では、システム100を様々なコンピューティングシステム、例えば、ラップトップコンピュータ、ノートブック、ハンドへルドデバイス、ワークステーション、メインフレームコンピュータ、サーバ、ネットワーククラウドおよび同様のものに実装できる。
I/Oインターフェースデバイス(単数または複数)106は、様々なソフトウェアおよびハードウェアインターフェース、例えば、ウェブインターフェース、グラフィカルユーザインターフェース、および同様のものを含むことができて、有線ネットワーク、例えば、LAN、ケーブルなど、およびWLAN、セルラ、または衛星のような無線ネットワークを含めて、多種多様なネットワークN/Wおよびプロトコルタイプ内の複数の通信を容易にすることができる。ある実施形態において、I/Oインターフェースデバイス(単数または複数)は、いくつかのデバイスを互いにまたは別のサーバへ接続するための1つ以上のポートを含むことができる。
メモリ102は、例えば、スタティックランダムアクセスメモリ(SRAM:static random access memory)およびダイナミックランダムアクセスメモリ(DRAM:dynamic random access memory)のような揮発性メモリ、および/またはリードオンリメモリ(ROM:read only memory)、消去可能プログラマブルROM、フラッシュメモリのような不揮発性メモリ、ハードディスク、光ディスク、ならびに磁気テープを含めて、当技術分野で知られた任意のコンピュータ可読媒体を含んでもよい。
図2A〜図2Bは、図1を参照して、本開示のいくつかの実施形態による、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするための方法の例示的なフロー図を示す。ある実施形態において、システム100は、1つ以上のハードウェアプロセッサ104に作動的に結合されたメモリ102の1つ以上のデータ記憶デバイスを含み、1つ以上のプロセッサ104による方法のステップの実行のための命令を記憶するように構成される。次に、本開示の方法のステップが図1に示されるシステム100の構成要素およびフロー図を参照して説明される。本開示の実施形態において、ハードウェアプロセッサ104は、命令が構成されたときに本明細書に記載される1つ以上の方法論を行う。
本開示のある実施形態によれば、ステップ201では、1つ以上のハードウェアプロセッサ104は、複数のタスクを定義し、複数のタスクの各々が実行時間(またはタスク実行時間)、ノンプリエンプティブタスクを完了するための指定された時間間隔および時間単位当たりの性能損失関数で特徴付けられるノンプリエンプティブタスクを含む。用語「性能損失」は、本明細書では、倉庫タスクスケジューリングでよく用いられる用語である用語「ペナルティ」と同様であると理解されてよく、タスクスケジューリングは、一般に、対応する「デッドライン」および「ペナルティ」を含む。さらに、提案される方法論が倉庫システムを参照して説明されたとはいえ、倉庫システム(単数または複数)のみにそれが限定されると理解されてはならない。提案される方法論は、スケジューリングまたはタスクスケジューリングがロボットまたは関係する技術を用いて行われる、すべてのかかる環境/用途/技術もしくは関係するシナリオに実施されるか、または拡張されてよい。
複数のタスクを定義するステップが以下の一組の仮定を考慮に入れて論じられてよい。
一組の仮定
(i)タスクの波がマルチロボットプラットフォーム、例えば、倉庫管理システム(WMS:warehouse management system)にインポートされる;
(ii)マルチロボットプラットフォームまたはWMSではm個の均質なロボットが利用可能であり、均質なロボットは、対象物を1つずつ運び、押して良い;
(iii)各波の始めにはタスクの波の中の複数のタスクT(タスクの集合を形成する)が利用可能であり、次の波またはさらなる波は、現在の波におけるすべてのタスクの完了後にのみ、利用可能なリソースを実装することによって利用可能である;
(iv)マルチロボットプラットフォームまたはWMSは、すべての必要とされる情報、例えば、タスクID、タスク実行時間、デッドライン、波の内の複数のタスクについての性能損失(またはペナルティ)をタスクスケジューラへ通信する;
(v)顧客が複数の商品を発注する場合、ピックアップされる各商品は、個別のタスクとして取り扱われる。このシナリオでは、複数のタスクの各々が異なる実行時間を有してよい。しかし、それらのタスクは、同一のデッドラインおよび同一の性能損失値と関連付けられる;
(vi)作動時間は、複数のタスクの各々について同一であり、タスク実行時間に含まれず、従って、タスク実行時間は、ロボットについての完全走行時間のみを含む;
(vii)複数のタスクの各々は、原子的かつノンプリエンプティブである。いずれかのタスクが一旦開始されて、ロボットに割り当てられると、そのタスクが完了されなければならない;
(viii)マルチロボット環境は、複数のロボットを含み、複数のロボットの各々は、波の間にそれに割り当てられたすべてのタスクを終えるのに十分なエネルギーを有し、対応する倉庫環境(例えば、WMS)に必須の知識を有する;
(ix)実行を待つキューに入ったタスクがあれば、ロボットは、決してアイドル状態にない。
先に論じられたように、タスクを複数のロボットに配分する技術的問題は、(図に示されない)マルチプロセッサシステム上のタスクスケジューリングへマッピングされてよい。波における複数のタスクは、m個の同一のロボットの中で区分化されることになり、性能損失を最小化するように複数のタスクが引き受けられることになる。
本開示のある実施形態によれば、マルチロボットプラットフォームにインポートされた波の集合の中の各波の始めに複数のタスク(すなわち、タスクの集合)(T={t,t,…,t})が利用可能である。ある実施形態では、複数のタスクの各々がすべての1≦i≦nについてt=(e,d,p)と形式的に表されてよく、eは、実行時間であり、dは、デッドラインであり、pは、性能損失である。さらにm個の倉庫同一ロボットのチームR={r,r,…,r}がある。(複数のタスクからの)様々な処理時間のタスクが、性能損失を最小化しながら、m個の同一のロボットの中でスケジュールされることになる。先述のように、複数のタスクの中のいずれかのタスクが対応するデッドラインをミスした(または対応するデッドライン内に実行できなかった)場合には、遅れに比例した性能損失が課されてよい。
ある実施形態において、性能損失関数は、
P(t)=max(0,(c−d)×p) 式(1)
と定義されてよく、cは、タスクtについての完了時間を表し、tは、複数のタスクに対応する。式(1)を参照すると、タスクがデッドライン内に実行された場合には、性能損失がないが、タスクが一旦デッドライン内に実行できない(またはデッドラインをミスする)と、性能損失は、時間に比例して増加することに気付くであろう。提案される開示は、従って、複数のタスク、すなわち、n個のタスクをm個のロボットの中で区分化するステップと、ロボットに割り当てられたタスクの部分集合を実行する命令とを提供し、T(r)は、ロボットrに割り当てられたタスクの部分集合を表し、タスクの部分集合は、複数のタスクに対応する。従って、タスクスケジューラの目的関数は、以下の式(2)によって表されてよい。
Figure 0006908643
本開示のある実施形態によれば、ステップ202では、1つ以上のハードウェアプロセッサ104は、マルチプロセッサシステム上で複数のタスクをスケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合に、スケジューリング技法によって、区分化し、スケジュール可能なタスクの集合は、所定の時間間隔内に実行されることになり最大性能損失値を有するタスクの部分集合を含み、スケジュール不可能なタスクの集合は、所定の時間間隔内に実行できず低性能損失値をもつタスクの部分集合を含む。
スケジューリング技法
提案される開示は、ノンプリエンプティブタスク(または散発的タスク)の集合のマルチプロセッサシステム上におけるマルチロボット環境での区分化およびスケジューリングを容易にし、ノンプリエンプティブタスクの集合のうちの各々は、本明細書に開示されるスケジューリング技法を実装することによってデッドラインを有する。従って、スケジューリング技法は、さらに、様々な処理時間のタスクが複数のロボットの各々にどのように割り当てられることになるかを、かかるタスク(すなわち、様々な処理時間のタスク)の各々の実行の順序と併せて、決定するために、タスクスケジューリングの技術的問題をマルチプロセッサシステム上で定式化して解決することを容易にする。マルチロボットプラットフォームにインポートされたタスクの波が、従って、スケジューリング技法への入力としての役割を果たす。
本開示のある実施形態によれば、スケジューリング技法は、2つのフェーズを含む。第1のフェーズでは、(1つ以上のハードウェアプロセッサ104を介して実装された)スケジューリング技法がスケジュール可能なタスクの集合の割り当てを試みる、すなわち、スケジューリング技法は、ある1つのロボットに(複数のタスクの中の)最大数のタスクを割り当て、1つ以上の高性能損失タスクが高い優先順位でスケジュールされる。第2のフェーズでは、スケジューリング技法は、第1のフェーズで蓄積されたスケジュール不可能なタスクの集合を対応する蓄積された性能損失も最小化されうるように割り当てようと試みる。デッドラインを有するノンプリエンプティブタスクまたは散発的タスクの集合をマルチプロセッサシステム上で区分化し、スケジュールするためのスケジューリング技法の実装が次に詳細に考察されてよい。
本開示のある実施形態によれば、スケジューリング技法を実装することにより、複数のタスクがスケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合に、1つ以上のハードウェアプロセッサ104によって、最初に区分化されてよい。従って、n個のタスクの集合は、m+1個の素集合、すなわち、T(r),T(r),…,T(m),
Figure 0006908643
に区分化または分割され、ここで、T(r)は、ロボットr上にスケジュールされてよいタスクの部分集合を表し、
Figure 0006908643
は、スケジュール可能なタスクの集合のデッドラインに違反することなしには複数のロボットのいずれにもスケジュール可能でないタスクの部分集合である。
ある実施形態において、区分化は、1つ以上のロボットが全速力で移動を始める前に、スケジュール可能なタスクの集合を(複数のロボットの中の)1つ以上のロボットに割り当てることを容易にする。言い換えれば、ゼロの性能損失値で達成されてよい複数のタスクの中の1つ以上のタスクがスケジュール可能なタスクの集合を実行するのに最も適した1つ以上のロボットに割り当てられる。ソーティングの例は、以下の段落0062〜0068で詳細に論じられ、そこではスケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合がプロセッサP1およびP2上に区分化される。
本開示のある実施形態によれば、ステップ203では、1つ以上のハードウェアプロセッサ104は、区分化された複数のタスクを複数のステップを行うことによって、予め定義された順序で、スケジュールする。ステップ203(i)では、1つ以上のハードウェアプロセッサ104は、スケジューリング技法を実装することによって、区分化された複数のタスクを区分化された複数のタスクに対応する1つ以上の性能損失値の非昇順でソートする。
区分化は、最大数のタスクを割り当てることを容易にするとはいえ、性能損失が依然として最小化されないことがある。ある実施形態において、スケジューリング技法は、区分化された複数のタスクを1つ以上の性能損失値の非昇順でこのように初めにソートし、ソーティングに基づいて、区分化された複数のタスクを圧縮メカニズム(ロボットの中でのタスクスケジューリングのために実装された既知の技法)を用いてスケジュールすることを考慮する。性能損失最小化の例は、以下の段落0062〜0097で詳細に論じられた。さらに、上述のように、ソーティングの例は、以下の段落0062〜0068で詳細に論じられた。
本開示のある実施形態によれば、ステップ203(ii)では、1つ以上のハードウェアプロセッサ104は、圧縮メカニズムを実装することにより、スケジュール可能なタスクの集合のうちの少なくとも1つをマルチロボット環境で動作している複数のロボットの中の各ロボットに割り当てることによってスケジュール可能なタスクの集合をマルチロボット環境でスケジュールする。スケジュールするステップが次に詳細に考察されてよい。ある実施形態において、ステップ203(ii)(a)では、1つ以上のハードウェアプロセッサ104は、スケジュール可能なタスクの集合のうちの各々のマルチロボット環境での実行の可能性を、スケジューリング技法によって、判定する。従って、タスクtを(m個のロボットの中の)ロボットr上にスケジュールできるかどうかをチェックするために、両方の式(3)および(4)(以下に論じられる)が満たされるべきである。
Figure 0006908643
ここで、式(3)は、ロボットr上にスケジュールされてtより小さいデッドラインを有するすべてのタスクを実行した後にタスクtを実行するのに十分なスペースをもたらすのを助ける。
ある実施形態において、ステップ203(ii)(b)では、1つ以上のハードウェアプロセッサ104は、予め割り当てられたタスクの集合を複数のロボットの中でスケジュールする可能性を、スケジューリング技法によって、判定し、予め割り当てられたタスクの集合は、スケジュール可能なタスクの集合以外の1つ以上のタスクおよびスケジュール不可能なタスクの集合を含む。従って、式(4)は、tもスケジュールされる場合には、ロボットr上にスケジュールされ、tより大きいデッドラインを有するすべてのタスク(すなわち、予め割り当てられたタスクの集合)がやはりスケジュールされうることを容易にする。
ある実施形態において、スケジュール可能なタスクの集合をスケジュールするステップは、スケジュール可能なタスクの集合のうちの各々をスケジュールする最小の可能性および/または予め割り当てられたタスクの集合をスケジュールする最小の可能性のいずれかを判定した際に、スケジュール可能なタスクの集合の中の1つ以上のスケジュール可能なタスクをスケジュール不可能なタスクとして、スケジューリング技法によって、カテゴリー化するステップを含む。従って、いずれの判定基準にも不合格な場合、すなわち、複数のロボットの各々について式(3)または式(4)がいずれも満たされない場合には、t
Figure 0006908643
に加えられ、
Figure 0006908643
は、スケジュール可能なタスクの集合のデッドラインに違反することなしには複数のロボットのいずれにもスケジュール可能でないタスクの部分集合である。
本開示のある実施形態によれば、ステップ203(ii)(c)では、1つ以上のハードウェアプロセッサ104は、スケジュール可能なタスクの集合のうちの各々をスケジュールする可能性および予め割り当てられたタスクの集合をマルチロボット環境でスケジュールする可能性を判定した際に、スケジュール可能なタスクの集合をマルチロボット環境で(マルチプロセッサシステム上に)スケジュールする。
本開示のある実施形態によれば、ステップ203(iii)では、1つ以上のハードウェアプロセッサ104は、スケジュール不可能なタスクの集合を複数のロボットの中で、リスト・スケジューリング技法によって、スケジュールし、スケジューリングは、マルチプロセッサシステム上で行われる。ある実施形態において、n個のタスク(すなわち、n個の独立したタスク)の集合とシーケンスに依存する時間設定のm個のロボットとを所与として、複数のジョブの中のある1つのジョブの実行時間に等しい、非負時間中に複数のジョブをm個のロボットの中の1つだけのロボット上でプリエンプションなしに処理するために、リスト・スケジューリング技法が実装されてよい。
ある実施形態において、複数のロボットのいずれかが次のタスクを実行するために利用可能になるとすぐに、利用可能なロボットがキューの先頭にあるタスクを選んでよい。m個のロボットの各々が同一なので、m個のロボットの各々は、特定のタスクを実行するために同じ時間を要する。それゆえに、1つより多いロボットがキューの先頭にあるタスクを選ぶために利用可能なケースでは、より低いロボットIDをもつロボットがタスクに割り当てられてよい。複数のタスクの各々が完了するまでm個のロボットのいずれもアイドル状態のままではない。
スケジューリング技法は、ノンプリエンプティブタスク(または散発的タスク)の集合をマルチプロセッサシステム上においてマルチロボット環境で区分化し、スケジュールして、性能損失を最小化するとはいえ、さらに、いくつかのケースでは、メイクスパン(段落0086〜0097で後に論じられる)が増加しかねず、第1のフェーズにおけるように、スケジュール可能なタスクの集合は、スケジュール可能なタスクの集合がスケジュール可能な第1のロボット(最小のロボットIDをもつ)に割り当てられることもあり、それによって、より小さいロボットIDをもつロボットに過負荷をかける。
ある実施形態において、先に論じられた問題を克服すべく、1つ以上のハードウェアプロセッサ104は、ノンプリエンプティブタスクの集合のマルチプロセッサシステム上におけるマルチロボット環境でのスケジューリングを最適化するために、区分化された複数のタスクの負荷バランシングを行い、負荷バランシングは、複数のタスクに対応する1つ以上の性能損失値に基づいて行われる。従って、スケジューリング技法は、第2のフェーズの終わりに、総合的な性能損失におけるトレードオフのない区分化された複数のタスクの複数のロボットの中での負荷バランシングを容易にする。最適化の詳細な例は、以下の段落0062〜0072で論じられた。
本開示のある実施形態によれば、最初に、負荷バランシングの間に、第1および第2のフェーズがわずかに微調整される。従って、負荷バランシングは、同一の性能損失値に基づく、1つ以上のスケジュール可能なタスクおよび1つ以上のスケジュール不可能なタスクの再配置を含み、同一の性能損失値は、1つ以上のスケジュール可能なタスクおよび1つ以上のスケジュール不可能なタスクに対応し、1つ以上のスケジュール可能なタスクおよび1つ以上のスケジュール不可能なタスクは、それぞれ、スケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合に対応する。負荷バランシングの間に、第1のフェーズでは、初期タスク集合Tのソーティングが1つ以上の性能損失値の非昇順で行われてよい。(ソートされたリスト下のタスクからの)1つ以上のソートされたリスト・タスクは、同一の性能損失値を有してよい。
ある実施形態において、同一の性能損失値を有する1つ以上のソートされたリスト・タスクは、1つ以上の昇順にソートされたリスト・タスクの各々のスラック時間に基づいて、それら自体の中で再配置され、スラック時間は、(d−e)によって定義される。ソートされたリストは、次に、1つ以上のハードウェアプロセッサ104によって圧縮メカニズムへ送られてよい。さらに、第2のフェーズでは、リスト・スケジューリング技法を実装することによる
Figure 0006908643
におけるスケジューリングとは違って、スケジューリング技法が正しいタスクを正しい時間にスケジュールする原理で機能する。
ある実装例において、タスクtおよびtがt、tの順序でスケジュールされ、さらに性能損失Pを被ると想定すると、始めにa(e)の実行時間が短いほど、より少ない遅延tをもたらし、それによって、より低い性能損失値をもたらす、すなわち、(P∝e)である。遅延されるタスクtのデッドラインdがより大きい場合には、マルチロボットプラットフォーム(例えば、WPS)上の性能損失値がより小さい。さらに、tおよびtの両方に対応する同一の実行時間および同一のデッドラインに対しては、単位時間ステップ遅延当たりの性能損失pが大きいタスクほど、実行の順序は、より高い優先順位を有する(P∝p)。
従って、タスクの優先度は、以下の式(5)を用いて判定されてよい。
Figure 0006908643
ここで、tは、ロボットが新しいタスクに着手する準備ができた時間を表す。
ある実施形態において、負荷バランシングは、スケジューリング技法を実装することによる、最大優先度値をもつ1つ以上のスケジュール不可能なタスクの、スケジュール不可能なタスクの集合からの識別を含む。最大優先度値をもつ1つ以上のスケジュール不可能なタスクが
Figure 0006908643
から除去されて、アイドル状態にあるか、またはより早いタスクを時間tで終了する第1のロボットr,1≦j≦mに割り当てられる。このプロセスは、複数のロボットの中のいずれかのロボットに割り当てることによって、スケジュール不可能なタスクの集合のうちの各々がマルチロボット環境でスケジュールされるまで、
Figure 0006908643
にわたって繰り返し行われる。
従って、スケジューリング技法を実装することによる、提案される開示は、いくらかの時間遅延がある場合に、最小の性能損失をもたらしうる(複数のタスクの中の)いずれかのタスクの識別に役立つ。第2のフェーズの終わりに、提案される方法論は、メイクスパンを改善して複数のロボットのいずれも消耗を回避するように、複数のロボットの中でタスクの負荷をバランスさせる。先に論じられたように、アイドル状態にあるロボットは、すでにスケジュールされたタスクの非違反の可能性を確かめた際にのみ、過負荷がかかったロボットからタスクtをピックアップまたは選択する。従って、提案される方法論は、マルチプロセッサシステムのマルチロボット環境において総合的な性能損失における妥協なしにメイクスパンを改善する。
ある実施形態において、スケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合のソーティング、区分化、スケジューリング、ならびに性能損失の最小化を伴う最適化は、以下の例を利用して説明されてよい。
Figure 0006908643
上の表1を参照して、4つのタスクの集合、すなわち、プロセッサP1およびP2上にスケジュールされることになる実行時間e、デッドラインd、性能損失pで特徴付けられるT={t1,t2,t3,t4}があるとしよう。
ケース1−ある実施形態において、4つのタスクの集合をデッドラインに基づいて昇順にソートすると、スケジューリングについて考察されてよい、順序{t1,t2,t3,t4}のタスクリストをもたらす。可能なスケジュールは、以下を含んでよい。
Figure 0006908643
ある実施形態において、最初にタスクtがP1上にスケジュールされる。次に、タスクt2は、P1上でそのデッドライン内にスケジュール可能ではないので、P2上にスケジュールされる。タスクtは、いずれのプロセッサ(P1またはP2)上でもそのデッドライン内にスケジュール可能ではなく、それゆえに、スケジュール不可能なタスクとしてカテゴリー化される。さらに、プロセッサP1がタスクt4をその対応するデッドライン内に調整するのに十分な空きスペースを有するので、タスクt4は、プロセッサP1上にスケジュールされる。より多くのタスクがあり、それらのタスクが(それらのすべてについて必ずしも10ではない)それらのデッドライン内にスケジュール可能な場合には、このプロセスが続く。終わりに、スケジュール不可能なタスク(このケースではタスクt3のみ)の集合がリスト・スケジューリングを用いてスケジュールされる。リスト・スケジューリングは、従って、ソートされたリストを先着順を用いて処理するステップを含み、ソーティング基準は、(このケースではデッドラインを用いて)変化させることができる。さらに、与えられたスケジュールを用いると、タスクt3は、そのデッドラインの4単位後にその実行を終了し、2×4=8単位の性能損失を被る。タスクt1、t2およびt4は、定義されたそれらのデッドライン内に完了されて、性能損失を被らない。
ケース2−タスクの集合4を非昇順にソートすると、順序{t2,t3,t1,t4}のタスクリストをもたらす。
このシナリオでは、可能なスケジュールは、以下を含んでよい。
Figure 0006908643
ここで、タスクt1およびt4がデッドラインをミスし、それぞれ、性能損失3×1=3単位および1×1=1単位を被り、総合的なシステム性能損失は、4単位である。タスクがそれらのデッドラインによって(昇順に)ソートされるケースでは、デッドラインをミスするタスクの数は、タスクが性能損失によって(非昇順に)ソートされるケースより少ないかもしれないが、総合的な性能損失がずっとより大きい。その理由は、性能損失に基づくタスクのソーティングが、性能損失値が大きいタスクほどより高い優先度でのスケジューリングをもたらし、それによって、総合的なシステム性能損失を最小化するためである。
最適化のための別のシナリオ例を考え、以下の表2を参照して、プロセッサP1およびP2上にスケジュールされることになる実行時間e、デッドラインd、性能損失pで特徴付けられた3つのタスクの集合、すなわち、T={t1,t2,t3}があるとしよう。
Figure 0006908643
ケース1−プリエンプティブスケジューリングのケースでは、可能なスケジューリングシナリオは、以下を含んでよい。
Figure 0006908643
ケース2−ノンプリエンプティブスケジューリングのケースでは、可能なスケジューリングシナリオは、以下を含んでよい。
Figure 0006908643
ノンプリエンプティブスケジューリングについて先に示された両方のシナリオ(a)および(b)においては、タスクt1が時間単位3の後にプリエンプトされる前にそれがプロセッサP1上で実行し、その後、実行をプロセッサP2上で再開して完了まで継続するプリエンプティブスケジューリングのケースにおけるのとは違って、各々のタスクは、タスクが割り当てられたプロセッサによって完了される。プリエンプティブスケジューリングのケースでは、いずれのタスクもそれらのデッドラインをミスせず、ゼロの性能損失を被る。反対に、タスクが本質にノンプリエンプティブである場合には、タスクt3およびt1が、それぞれ、シナリオ(a)および(b)においてデッドラインをミスする。シナリオ(a)では、t3がそのデッドラインの3単位後にその実行を終了し、2×3=6単位の性能損失を被る。同様に、(b)では、t3がそのデッドラインの3単位後に実行を完了するが、3×1=3単位の性能損失をもたらすに過ぎない。
本開示のある実施形態によれば、ロバストネス、結果、技術的利点、性能損失最小化、および提案される開示の従来のシステムおよび方法との比較が次に詳細に考察されてよい。
データ集合−先に論じられたように、複数のタスクの各々は、すべての1≦i≦nについてt=(e,d,p)と形式的に表されてよく、ここで、eは、実行時間であり、diは、デッドラインであり、pは、性能損失である。さらに、複数のタスクの各々の実行時間は、WPSでは、タスク位置および梱包台からの前方および後方距離と等価である。タスク位置および梱包台に対応する座標セットは、標準的な容量制約付き配送計画問題(CVRP:capacity−constraint vehicle routing problem)のデータ集合から得られた。
ある実施形態では、それぞれ100個および1000個のタスクを含む、2つの異なる集合の結果が論じられてよい。2つの集合の各々について、1つ以上の擬似ランダム・デッドラインを含む5つの異なるデータ集合が生成された。1つ以上の擬似ランダム・デッドラインを関連付けるための方策は、リアルタイムスケジューリング・ドメインでデータを生成するための標準的な手順と同一である。
=e,タスクのデッドラインdは、対応する実行時間eと同一に設定される。このケースでは、m個(すなわち、ロボットの利用可能総数)のタスクのみがデッドラインを満たし、一方では多くのタスクがデッドラインをミスすることを避けられない。稀なシナリオであるとはいえ、提案される開示の効率を際立たせると考えられる;
=2e,タスクのデッドラインdは、対応する実行時間eの2倍に設定される。デッドラインをミスするタスクの数は、依然として多いかもしれないが、提案される開示の効率を際立たせると考えられる;
∈[e,10e],デッドラインdは、e,10eの範囲内のランダム値に設定され、e,10eは、ランダムに分布する;
∈[5e,10e],デッドラインdは、5e,10eの範囲内の一様分布を用いて設定される。これは、(すべてではないにしても)多くのタスクがその多くのタスクの各々に対応するデッドライン内でスケジュール可能であるシナリオを表す;および
d←mix,タスクスケジューラがデッドラインの特定の分布を選り好みしないことを確実にするために、等しい確率をもつ前の4つすべてのデータ集合の混合を含む。
ある実施形態において、生成された10個(100個および1000個のタスクについて各々5個)のデータ集合の各々について、1つ以上のハードウェアプロセッサ104は、各々が異なる性能損失をもつ3つのデータ集合を生成する。ある実施形態において、関連付けられた性能損失がタスクtについてpであれば、被る性能損失(値)は、式(1)を用いて計算されてよい。
p←[1,10],性能損失は、一様分布を用いて1および10の範囲内で生成された1つ以上のランダム値に設定される;
p←same,性能損失は、複数のタスクの各々について1つの同一値、例えば10に設定される;および
p←extreme[1or10],性能損失は、等しい確率をもつ2つの極値のいずれか、すなわち1または10に設定される。
本開示のある実施形態によれば、提案される方法論と従来のシステムおよび方法、すなわち、需要バウンド関数(DBF)との比較が次に詳細に考察されてよい。DBFの目標がデッドラインミスの数を最小化することなので、DBFは、スケジュール可能でないタスクを破棄する。一実施形態において、DBFを拡張する際に、DBFの下では最初にスケジュール可能でなかったタスクがリスト・スケジューリング技法の下でスケジュールされて、性能損失が計算された。
当技術分野で知られるように、DBFは、実行時間の非昇順をソーティング基準として選択し、一方ではタスクのスケジュール可能性を順次にチェックする。タスクのスケジュール可能性を順次にチェックすると、いくつかの環境では高いスケジュール可能性をもたらすかもしれないが、すべてのタスクを完了する一方で、性能損失の最小化をもたらさないことがある。従って、DBFの代替バージョン、すなわち、需要バウンド関数(代替)またはDBF(代替)を用いると、代替バージョンは、タスクを性能損失の非昇順に基づいてソートする。
ある実施形態では、負荷バランシングを含めて、提案されるスケジューリング技法のDBFおよびDBF(代替)との比較が行われ、この比較は、各々のタスクを完了する間に被る総合的な性能損失、デッドラインミスの数、および波のメイクスパン、すなわち、最後のタスクが実行を終了する時間に基づいて、複数のロボットの各々が並列に働くと考えて行われた。被る性能損失は、波におけるタスクの数および利用可能なロボットの数に依存する。
ある実施形態では、100個のタスクによるデータ集合について、ロボット数を10個に固定し、一方では1000個のタスクによるデータ集合について利用可能なロボット数を10および140個のロボットの間で開始して変化させ、それによって、タスクスケジューラが、リソース数の変化に伴ってどのようにロバストであるか、および性能がリソース数の増加に伴ってどのように改善するかを判定した。
本開示のある実施形態によれば、図3A〜図3Cを参照すると、100個のタスクおよび10個のロボットについて、被る総合的な性能損失、デッドラインミスの数、および波のメイクスパンに基づいて、提案される方法論(負荷バランシング有りおよび無し)、DBFおよびDBF(代替)を実装することによって得られた結果が考察されてよい。ある実施形態では、先に論じられたように、デッドラインが5つの異なる値に設定されてよく、性能損失が1と10との間のランダム数に設定されてよい。図3A〜図3Cを再び参照すると、提案される方法論は、被る総合的な性能損失の観点から、従来のシステムおよび方法、すなわち、DBFおよびDBF(代替)を著しく凌ぐことに気付くであろう。
図3A〜図3Cをさらに再び参照すると、提案される方法論を実装することによって、タスクがより大きいデッドラインを有するときにはタスクスケジューラが性能損失をほとんど被らないことに気付くであろう。図3Bを参照すると、提案される方法論は、DBFと比較して、デッドラインをミスするタスクの数を最小化し、これは、タスクがより大きいデッドラインを有するときにはタスクスケジューラが性能損失をほとんど被らないことをさらに証明することに気付くであろう。その理由は、スケジュール不可能なタスクの集合の中で最大の実行時間をもつタスクのために十分なスペースがある場合に限り、タスクがロボット上にスケジュールされてよい、従来のシステムおよび方法、例えば、DBFおよび需要バウンド関数のバリエーションを実装するDBF(代替)と比較して、提案される方法論が、スケジュール可能なタスクを最大化する間に圧縮メカニズムを実装するからである。従って、従来のシステムおよび方法は、いくつかのタスクをスケジュールされないままにするが、提案される方法論によってそれらのタスクをスケジュールすることができる。
先に論じられたように、提案される方法論は、最も多忙なロボットに最大数のタスクを割り当てようと試み、それによって、複数のロボットの中のいくつかのロボットをほとんど占有されない状態に保ち、結果として、占有率がわずかなこれらのロボットには第2のフェーズから(すなわち、スケジュール可能でないタスクの集合から)のタスクの少数の集合が少しの時間内に割り当てられてよい。デッドラインをミスしたタスクの早い開始が被る総合的な性能損失を低減する。しかしながら、図3Cを参照すると、メイクスパンにおけるスパイクが参照されるかもしれず、これは、第2フェーズの終わりに、負荷バランシングを実装することによって克服される。さらに、図3Cを再び参照すると、負荷バランシングを行う一方で、提案される方法論によって実装されたソーティング・メカニズムがメイクスパンのさらなる改善をもたらすことに気付くであろう。先に論じた各々の理由に起因して、提案される開示は、性能損失を最小化する。
図4を参照すると、提案される方法論によって行われるソーティングは、実行時間の大きいものに優先度(すなわち、非増加E)およびデッドラインの最も早いものに優先度(非増加1÷D)と比較して、性能損失を最小化するだけでなく、さらにデッドラインミスの数を最小化することに気付くであろう。
本開示のある実施形態によれば、提案されるスケジューリング技法のロバストネスを判定するために、100個のタスクおよび10個のロボットを用いて15個すべてのデータ集合の性能が評価された。以下の表3および表4を参照すると、評価の結果が参照されてよく、Pは、性能損失を表し、DL−Mは、デッドラインミスを表し、MSは、メイクスパンを表す。表3および表4を再び参照すると、表3および表4に示される性能損失値は、蓄積された実際の性能損失の100分の1であることに気付くであろう。
表3および表4をさらに再び参照すると、提案される方法論は、すべてのタスクが同一の性能損失値、またはさらに極端な性能損失値を有するときでさえ、提案されるスケジューリング技法を実装することによって、性能損失およびデッドラインミスに関して、従来のシステムおよび方法、例えば、DBFを常に凌ぐことに気付くであろう。提案される方法論は、性能損失値を最小化するために、スケジューリング技法を実装することによって、メイクスパンを犠牲にする。しかしながら、負荷バランシングを実装することによって、メイクスパンの問題を克服する。
Figure 0006908643
Figure 0006908643
本開示のある実施形態によれば、提案されるスケジューリング技法のスケーラビリティを判定するために、1000個のタスクを用いて同様に性能が評価された。図5A〜図6Cを参照すると、提案される方法論の性能は、従来のシステムおよび方法、例えば、DBFの性能における最低限度の向上と比較して、ロボット数の増加とともに何倍も向上または改善することに気付くであろう。図5Bを参照すると、デッドラインミス・カウントが110個のロボットでゼロに達するのに対して、DBFは、依然として著しい数のデッドラインミスを被ることに気付くであろう。
スケジューリング技法のメイクスパンは、DBFのメイクスパンと同等であるとはいえ、ロボット数がより少ないケースでは、DBFのメイクスパンより高くなることもある。しかしながら、図5Cを参照すると、ロボット数が増加するにつれて、提案されるスケジューリング技法は、(特に80個のロボットでは)メイクスパンの観点からも従来のシステムおよび方法を凌駕することに気付くであろう。図6A〜図6Cを参照すると、マルチロボット環境においてロボットが線形に増加するケースで、提案される方法論(負荷バランシング有りおよび無し)を用い、従来のシステムおよび方法(すなわち、DBFおよびDBF(代替))も用いて行われた、デッドラインが4つの異なる分布の混合を含み、性能損失が1と10との間に一様に分布する、1000個のプリエンプトされないタスクの集合の比較が参照されてよい。さらに、以下の表5および表6を参照すると、異なる性能損失設定および2つの性能損失集合d∈[e,10e]およびd←mixをもつ1000個のタスクおよび80個のロボットによるデータ集合について包括的な性能解析結果が見られてよく、ここでPは、性能損失を表し、DL−Mは、デッドラインミスを表し、MSは、メイクスパンを表す。
Figure 0006908643
Figure 0006908643
ある実施形態において、メモリ102は、ノンプリエンプティブタスクの集合のマルチロボット環境でのスケジューリングと関連付けられた任意のデータを記憶するように構成できる。ある実施形態において、区分化された複数のタスク、スケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合のスケジューリング、デッドライン、および性能損失などに係わる情報は、メモリ102に記憶される。さらに、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするステップに係わるすべての情報(入力、出力など)も、履歴データとして、参照目的で、データベースに記憶されてよい。
これらの実施形態を当業者が作成して用いることを可能にするために、書面による説明が本明細書における主題を記述する。本主題の実施形態の範囲は、請求項によって既定され、当業者が想起する他の変更を含んでよい。かかる他の変更は、それらが請求項の文言と異ならない同様の要素を有し、または請求項の文言と非実質的にしか相違しない同等の要素を含むならば、請求項の範囲内にあることが意図される。
本明細書における本開示の実施形態は、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールすることの、またはノンプリエンプティブタスクの集合をマルチプロセッサシステム上にスケジュールすることの未解決の問題に取り組む。本実施形態は、従って、ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのスケジューリング技法を提供し、スケジューリング技法は、ノンプリエンプティブタスクの集合のうちの各々の区分化を提供し、最後に、スケジュール可能なタスクの集合のうちの各々の実行の可能性および予め割り当てられたタスクの集合を複数のロボットの中でスケジュールする可能性を判定した際に、区分化された複数のタスク(ノンプリエンプティブタスクの集合)の各々のスケジューリングを提供する。そのうえ、本明細書における実施形態は、プリエンプティブタスクの集合のうちの各々と関連付けられた性能損失の最小化をさらに提供し、従来のシステムおよび方法とは違って、プリエンプティブタスクの集合のうちの各々が、スケジューリング技法を実装することによって、マルチロボット環境で実行されるようにスケジュールされる。
理解されるべきは、保護の範囲がかかるプログラムへ、さらに加えてメッセージをその中に有するコンピュータ可読手段へ拡張され、プログラムがサーバもしくはモバイルデバイスまたは任意の適切なプログラマブルデバイス上で作動するときに、かかるコンピュータ可読記憶手段が方法の1つ以上のステップを実装するためのプログラムコード手段を含むことである。ハードウェアデバイスは、例えば、サーバもしくはパーソナルコンピュータのような任意の種類のコンピュータ、または同様のもの、あるいはそれらの任意の組み合わせを含めて、プログラムできる任意の種類のデバイスとすることができる。デバイスは、例えば、特定用途向け集積回路(ASIC:application−specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field−programmable gate array)などのような、ハードウェア手段、または、ASICおよびFPGA、もしくは少なくとも1つのマイクロプロセッサならびにソフトウェア・モジュールがその中にある少なくとも1つのメモリなどの、ハードウェアならびにソフトウェア手段の組み合わせであってもよい手段を含んでもよい。従って、これらの手段は、ハードウェア手段およびソフトウェア手段の両方を含むことができる。本明細書に記載される方法の実施形態をハードウェアおよびソフトウェアで実装できるであろう。デバイスはソフトウェア手段を含んでもよい。代わりに、実施形態が異なるハードウェアデバイス上に、例えば、複数のCPUを用いて実装されてもよい。
本明細書における実施形態は、ハードウェアおよびソフトウェア要素を含むことができる。ソフトウェアで実装される実施形態は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、それらには限定されない。本明細書に記載される様々なモジュールによって行われる機能は、他のモジュールまたは他のモジュールの組み合わせで実装されてもよい。この記載の適用上、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれらと接続して用いるためのプログラムを含む、記憶する、通信する、伝搬するかまたは輸送することができる任意の装置とすることができる。
例示されるステップは、示される例示的な実施形態を説明するために提示され、予想されるべきは、進行する技術開発が、特定の機能が行われる仕方を変化させるであろうということである。これらの例が本明細書では限定ではなく説明のために提示される。さらに、記載の便宜上、本明細書では機能ビルディングブロックの境界が任意に定義された。指定される機能およびそれらの関係が適切に行われる限り、代わりの境界を定義できる。(本明細書に記載されるものの等価物、拡張、変形、逸脱などを含む)選択肢は、本明細書に含まれる教示に基づいて当業者に明らかであろう。かかる選択肢は、開示される実施形態の範囲および趣旨のうちにある。さらに、単語「含む(comprising)」、「有する(having)」、「含む(containing)」および「含む(including)」ならびに他の同様の語形は、意味が等しいことが意図され、これらの単語のいずれかに続く単数または複数の項目が単数または複数のかかる項目の網羅的なリストであることを意味せず、リストされた単数または複数の項目のみに限定されることも意味しないという点で非限定的であることが意図される。同様に留意すべきは、本明細書および添付される特許請求の範囲において、文脈が明らかに別のことを指示しない限り、単数形「1つの(a)」、「1つの(an)」、および「前記(the)」が複数の参照を含むことである。
さらに、本開示に適合する実施形態を実装するときに1つ以上のコンピュータ可読記憶媒体が利用されてよい。コンピュータ可読記憶媒体は、プロセッサによって可読な情報またはデータが記憶されてよい任意のタイプの物理メモリを指す。従って、コンピュータ可読記憶媒体は、本明細書に記載される実施形態に適合するステップまたは段階をプロセッサ(単数または複数)に行わせるための命令を含めて、1つ以上のプロセッサによる実行のための命令を記憶してよい。用語「コンピュータ可読媒体」は、有形の品目を含み、搬送波および過渡信号を除く、すなわち、非一時的であると理解されるべきである。例は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、揮発性メモリ、不揮発性メモリ、ハードドライブ、CD ROM、DVD、フラッシュドライブ、ディスクおよびその他の既知の物理記憶媒体を含む。
本開示および例は、例示的であるに過ぎないと見なされることが意図され、開示される実施形態の真の範囲および趣旨は、添付の特許請求の範囲によって示される。

Claims (9)

  1. ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールする方法であって、前記方法は、
    複数のタスクを、1つ以上のハードウェアプロセッサによって、定義するステップであって、前記複数のタスクの各々は、実行時間、前記ノンプリエンプティブタスクを完了するための指定された時間間隔および時間単位当たりの性能損失関数で特徴付けられたノンプリエンプティブタスクである、前記定義するステップ(201)と;
    前記複数のタスクを、スケジューリング技法によって、スケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合に区分化するステップであって、スケジュール可能なタスクの前記集合は、所定の時間間隔内に実行されて最大性能損失値を有するタスクの部分集合を含み、スケジュール不可能なタスクの前記集合は、前記所定の時間間隔内に実行できず低性能損失値を有するタスクの部分集合を含み、前記区分化は、複数のロボットが全速力で移動を始める前に、スケジュール可能なタスクの前記集合を前記複数のロボットの中の各ロボットに割り当てることを容易にする、前記区分化するステップ(202)と;
    区分化された前記複数のタスクを、複数のステップを行うことによって、予め定義された順序でスケジュールするステップであり、区分化された前記複数のタスクをスケジュールする前記ステップは、ノンプリエンプティブタスクの前記集合の前記マルチロボット環境での前記スケジューリングを最適化するために、区分化された前記複数のタスクの負荷バランシングを、前記複数のタスクに対応する前記1つ以上の性能損失値に基づいて行うステップを含む、前記スケジュールするステップ(203)であって、前記複数のステップは、
    (i)区分化された前記複数のタスクを、前記スケジューリング技法によって、区分化された前記複数のタスクに対応する1つ以上の性能損失値の非昇順でソートするステップ(203(i));
    (ii)スケジュール可能なタスクの前記集合のうちの少なくとも1つを前記マルチロボット環境で動作する前記複数のロボットの中の各ロボットに割り当てることによってスケジュール可能なタスクの前記集合を前記マルチロボット環境でスケジュールするステップ(203(ii))であって、前記スケジュールするステップ(203(ii))は、
    (a)スケジュール可能なタスクの前記集合のうちの各々の前記マルチロボット環境での実行の可能性を、前記スケジューリング技法によって、判定するステップ(203(ii)(a))と;
    )スケジュール可能なタスクの前記集合のうちの各々の実行の前記可能性および予め割り当てられたタスクの前記集合をスケジュールする前記可能性を判定した際に、スケジュール可能なタスクの前記集合を前記マルチロボット環境でスケジュールするステップ(203(ii)())と、
    を含む、前記スケジュールするステップ(203(ii));および
    (iii)スケジュール不可能なタスクの前記集合を、リスト・スケジューリング技法によって、前記複数のロボットの中でスケジュールするステップ(203(iii))、
    を含む、前記スケジュールするステップ(203)と、
    を実施するプロセッサを含む、方法。
  2. 前記負荷バランシングは、
    (i)同一の性能損失値に基づく1つ以上のスケジュール可能なタスクおよび1つ以上のスケジュール不可能なタスクの再配置であって、前記1つ以上のスケジュール可能なタスクおよび前記1つ以上のスケジュール不可能なタスクは、それぞれ、スケジュール可能なタスクの前記集合およびスケジュール不可能なタスクの前記集合に対応する、前記再配置、および
    (ii)ノンプリエンプティブタスクの前記集合を前記マルチロボット環境でスケジュールするための前記スケジューリング技法を実施することによる、最大優先度値を有する前記1つ以上のスケジュール不可能なタスクの、スケジュール不可能なタスクの前記集合からの識別、
    を含む、請求項に記載の方法。
  3. 前記同一の性能損失値は、前記1つ以上のスケジュール可能なタスクおよび前記1つ以上のスケジュール不可能なタスクの各々に対応し、前記1つ以上のスケジュール可能なタスクおよび前記1つ以上のスケジュール不可能なタスクは、それぞれ、スケジュール可能なタスクの前記集合およびスケジュール不可能なタスクの前記集合に対応する、請求項に記載の方法。
  4. 前記1つ以上のスケジュール不可能なタスクの識別の前記ステップは、スケジュール不可能なタスクの前記集合のうちの各々が前記マルチロボット環境でスケジュールされるまで、前記スケジューリング技法を実施することによって反復して行われる、請求項に記載の方法。
  5. ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステム(100)であって、前記システム(100)は、
    命令を記憶するメモリ(102);
    1つ以上の通信インターフェース(106);および
    前記1つ以上の通信インターフェース(106)を介して前記メモリ(102)に結合された1つ以上のハードウェアプロセッサ(104)を備え、
    前記1つ以上のハードウェアプロセッサ(104)は、前記命令によって、
    複数のタスクを定義し、前記複数のタスクの各々は、実行時間、前記ノンプリエンプティブタスクを完了するための指定された時間間隔および時間単位当たりの性能損失関数で特徴付けられたノンプリエンプティブタスクであり;
    前記複数のタスクを、スケジューリング技法によって、スケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合に区分化し、スケジュール可能なタスクの前記集合は、所定の時間間隔内に実行されて最大性能損失値を有するタスクの部分集合を含み、スケジュール不可能なタスクの前記集合は、前記所定の時間間隔内に実行できず低性能損失値を有するタスクの部分集合を含み、前記区分化は、複数のロボットが全速力で移動を始める前に、スケジュール可能なタスクの前記集合を前記複数のロボットの中の各ロボットに割り当てることを容易にし
    区分化された前記複数のタスクを、複数のステップを行うことによって、予め定義された順序でスケジュールし、前記1つ以上のハードウェアプロセッサ(104)は、ノンプリエンプティブタスクの前記集合の前記マルチロボット環境での前記スケジューリングを最適化するために、区分化された前記複数のタスクの負荷バランシングを、前記複数のタスクに対応する前記1つ以上の性能損失値に基づいて行うことによって、区分化された前記複数のタスクをスケジュールするように構成され、前記複数のステップは、
    (i)区分化された前記複数のタスクを、前記スケジューリング技法によって、区分化された前記複数のタスクに対応する1つ以上の性能損失値の非昇順でソートし;
    (ii)スケジュール可能なタスクの前記集合のうちの少なくとも1つを前記マルチロボット環境で動作する前記複数のロボットの中の各ロボットに割り当てることによってスケジュール可能なタスクの前記集合を前記マルチロボット環境でスケジュールし、前記スケジュールするステップは、
    (a)スケジュール可能なタスクの前記集合のうちの各々の前記マルチロボット環境での実行の可能性を、前記スケジューリング技法によって、判定し;
    )スケジュール可能なタスクの前記集合のうちの各々の実行の前記可能性および予め割り当てられたタスクの前記集合を前記複数のロボットの中でスケジュールする前記可能性を判定した際に、スケジュール可能なタスクの前記集合をスケジュールする、
    ことを含み、さらに
    (iii)スケジュール不可能なタスクの前記集合を、リスト・スケジューリング技法によって、前記複数のロボットの中でスケジュールする、
    ように構成される、
    システム(100)。
  6. 前記負荷バランシングは、
    (i)同一の性能損失値に基づく1つ以上のスケジュール可能なタスクおよび1つ以上のスケジュール不可能なタスクの再配置であって、前記1つ以上のスケジュール可能なタスクおよび前記1つ以上のスケジュール不可能なタスクは、それぞれ、スケジュール可能なタスクの前記集合およびスケジュール不可能なタスクの前記集合に対応する、前記再配置、および、
    (ii)ノンプリエンプティブタスクの前記集合を前記マルチロボット環境でスケジュールするための前記スケジューリング技法を実施することによる、最大優先度値を有する前記1つ以上のスケジュール不可能なタスクの、スケジュール不可能なタスクの前記集合からの識別、
    を含む、請求項に記載のシステム(100)。
  7. 前記同一の性能損失値は、前記1つ以上のスケジュール可能なタスクおよび前記1つ以上のスケジュール不可能なタスクの各々に対応し、前記1つ以上のスケジュール可能なタスクおよび前記1つ以上のスケジュール不可能なタスクは、それぞれ、スケジュール可能なタスクの前記集合およびスケジュール不可能なタスクの前記集合に対応する、請求項に記載のシステム(100)。
  8. 前記1つ以上のハードウェアプロセッサ(104)は、スケジュール不可能なタスクの前記集合のうちの各々が前記マルチロボット環境でスケジュールされるまで、前記1つ以上のスケジュール不可能なタスクの識別の前記ステップを、前記スケジューリング技法を実施することによって反復して行うように構成された、請求項に記載のシステム(100)。
  9. 1つ以上の非一時的機械可読情報記憶媒体であって、1つ以上のハードウェアプロセッサによって実行されるときに、
    複数のタスクを、1つ以上のハードウェアプロセッサによって、定義するステップであって、前記複数のタスクの各々は、実行時間、ノンプリエンプティブタスクを完了するための指定された時間間隔および時間単位当たりの性能損失関数で特徴付けられたノンプリエンプティブタスクである、前記定義するステップ(201)と;
    前記複数のタスクを、スケジューリング技法によって、スケジュール可能なタスクの集合およびスケジュール不可能なタスクの集合に区分化するステップであって、スケジュール可能なタスクの前記集合は、所定の時間間隔内に実行されて最大性能損失値を有するタスクの部分集合を含み、スケジュール不可能なタスクの前記集合は、前記所定の時間間隔内に実行できず低性能損失値を有するタスクの部分集合を含み、前記区分化は、複数のロボットが全速力で移動を始める前に、スケジュール可能なタスクの前記集合を前記複数のロボットの中の各ロボットに割り当てることを容易にする、前記区分化するステップ(202)と;
    区分化された前記複数のタスクを、複数のステップを行うことによって、予め定義された順序でスケジュールするステップであり、区分化された前記複数のタスクをスケジュールする前記ステップは、ノンプリエンプティブタスクの前記集合の前記マルチロボット環境での前記スケジューリングを最適化するために、区分化された前記複数のタスクの負荷バランシングを、前記複数のタスクに対応する前記1つ以上の性能損失値に基づいて行うステップを含む、前記スケジュールするステップ(203)であって、前記複数のステップは、
    (i)区分化された前記複数のタスクを、前記スケジューリング技法によって、区分化された前記複数のタスクに対応する1つ以上の性能損失値の非昇順でソートするステップ(203(i));
    (ii)スケジュール可能なタスクの前記集合のうちの少なくとも1つをマルチロボット環境で動作する前記複数のロボットの中の各ロボットに割り当てることによってスケジュール可能なタスクの前記集合を前記マルチロボット環境でスケジュールするステップ(203(ii))であって、前記スケジュールするステップ(203(ii))は、
    (a)スケジュール可能なタスクの前記集合のうちの各々の前記マルチロボット環境での実行の可能性を、前記スケジューリング技法によって、判定するステップ(203(ii)(a))と;
    )スケジュール可能なタスクの前記集合のうちの各々の実行の前記可能性および予め割り当てられたタスクの前記集合をスケジュールする前記可能性を判定した際に、スケジュール可能なタスクの前記集合を前記マルチロボット環境でスケジュールするステップ(203(ii)())と、
    を含む、前記スケジュールするステップ(203(ii));および
    (iii)スケジュール不可能なタスクの前記集合を、リスト・スケジューリング技法によって、前記複数のロボットの中でスケジュールするステップ(203(iii))、
    を含む、前記スケジュールするステップ(203)と、
    を行わせる1つ以上の命令を含む、1つ以上の非一時的機械可読情報記憶媒体。
JP2019031615A 2018-06-29 2019-02-25 ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムおよび方法 Active JP6908643B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201821024387 2018-06-29
IN201821024387 2018-06-29

Publications (2)

Publication Number Publication Date
JP2020004370A JP2020004370A (ja) 2020-01-09
JP6908643B2 true JP6908643B2 (ja) 2021-07-28

Family

ID=65440864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019031615A Active JP6908643B2 (ja) 2018-06-29 2019-02-25 ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムおよび方法

Country Status (4)

Country Link
US (1) US10929182B2 (ja)
EP (1) EP3588405A1 (ja)
JP (1) JP6908643B2 (ja)
SG (1) SG10201901681RA (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113168385B (zh) * 2018-08-03 2024-10-11 御眼视觉技术有限公司 访问动态存储器模块
CN111369129B (zh) * 2020-02-29 2023-04-07 广东博智林机器人有限公司 一种建筑机器人的生产调度方法和系统
US11915040B2 (en) * 2020-03-17 2024-02-27 UiPath, Inc. Scheduling and prioritizing RPA jobs based on user-defined priority
EP4124949A1 (en) * 2021-07-27 2023-02-01 Tata Consultancy Services Limited Systems and methods for dynamic task schedulng and rescheduling using heterogenous multi agent fleet
CN113971519B (zh) * 2021-10-25 2023-06-23 上海擎朗智能科技有限公司 一种机器人调度方法、装置、电子设备和存储介质
CN114840025B (zh) * 2022-06-01 2024-05-24 浪潮智慧城市科技有限公司 多无人机多任务智慧分配调度方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ZA952853B (en) * 1994-04-18 1995-12-21 Caterpillar Inc Method and apparatus for real time monitoring and co-ordination of multiple geography altering machines on a work site
US6418356B1 (en) * 1998-12-31 2002-07-09 Silicon Valley Group, Inc. Method and apparatus for resolving conflicts in a substrate processing system
US10618168B2 (en) * 2016-05-13 2020-04-14 General Electric Company Robot system path planning for asset health management
KR20070011495A (ko) * 2004-04-22 2007-01-24 프론트라인 로보틱스 자율 이동 시스템을 위한 개방형 제어 시스템 아키텍처
JP4410661B2 (ja) * 2004-11-09 2010-02-03 株式会社日立製作所 分散制御システム
US7539557B2 (en) * 2005-12-30 2009-05-26 Irobot Corporation Autonomous mobile robot
KR100812986B1 (ko) 2006-08-08 2008-03-13 (주)다사로봇 멀티채널 로봇제어 시스템
US8095238B2 (en) * 2006-11-29 2012-01-10 Irobot Corporation Robot development platform
US20090158299A1 (en) 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
JP4839487B2 (ja) * 2007-12-04 2011-12-21 本田技研工業株式会社 ロボット及びタスク実行システム
US8639408B2 (en) * 2008-10-15 2014-01-28 Deere & Company High integrity coordination system for multiple off-road vehicles
CN102033536B (zh) * 2010-12-22 2012-12-26 大连理工大学 一种多机器人系统的调度组织协作系统及方法
KR101164903B1 (ko) * 2011-03-11 2012-07-19 국방과학연구소 무인로봇의 다중 임무 운용 방법 및 그 시스템
WO2012141601A2 (en) * 2011-04-11 2012-10-18 Crown Equipment Limited Method and apparatus for efficient scheduling for multiple automated non-holonomic vehicles using a coordinated path planner
US20120261144A1 (en) * 2011-04-14 2012-10-18 The Boeing Company Fire Management System
US9008839B1 (en) * 2012-02-07 2015-04-14 Google Inc. Systems and methods for allocating tasks to a plurality of robotic devices
US20140067108A1 (en) * 2012-08-31 2014-03-06 The Boeing Company Systems and methods for dynamic control of task assignments in a fabrication process
US10802876B2 (en) 2013-05-22 2020-10-13 Massachusetts Institute Of Technology Multiprocessor scheduling policy with deadline constraint for determining multi-agent schedule for a plurality of agents
KR101408075B1 (ko) * 2013-07-09 2014-06-18 국방과학연구소 다중 로봇 시스템 및 다중 로봇 시스템 제어 방법
GB201409883D0 (en) * 2014-06-03 2014-07-16 Ocado Ltd Methods, systems, and apparatus for controlling movement of transporting devices
KR101733002B1 (ko) * 2015-03-05 2017-05-08 국방과학연구소 복수의 무인로봇들에 다중임무를 부여하고, 부여된 임무에 근거하여 무인로봇들을 운용하는 시스템의 무인로봇 운용 방법
US9821455B1 (en) * 2015-08-08 2017-11-21 X Development Llc Replacing a first robot with a second robot during performance of a task by the first robot
US20170293844A1 (en) * 2016-04-06 2017-10-12 Massachusetts Institute Of Technology Human-machine collaborative optimization via apprenticeship scheduling
US10010021B2 (en) * 2016-05-03 2018-07-03 Cnh Industrial America Llc Equipment library for command and control software
US10456912B2 (en) * 2017-05-11 2019-10-29 King Fahd University Of Petroleum And Minerals Dynamic multi-objective task allocation

Also Published As

Publication number Publication date
JP2020004370A (ja) 2020-01-09
US20200004588A1 (en) 2020-01-02
EP3588405A1 (en) 2020-01-01
US10929182B2 (en) 2021-02-23
SG10201901681RA (en) 2020-01-30

Similar Documents

Publication Publication Date Title
JP6908643B2 (ja) ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムおよび方法
WO2019128368A1 (zh) 库存调度方法、装置以及计算机可读存储介质
JP2020149675A (ja) マルチロボット環境においてノンプリエンプティブタスクのスケジューリングを最適化するためのシステム及び方法
Ananthanarayanan et al. {GRASS}: Trimming stragglers in approximation analytics
EP3673370B1 (en) System and method for distributed resource requirement and allocation
JP3944154B2 (ja) マルチスレッド・サーバ内のスレッド・プールを動的に調整する方法およびシステム
JP3817541B2 (ja) プログラムに基づいた応答時間ベースの作業負荷分配技法
TWI533211B (zh) 用於任務排程之電腦系統,方法及電腦可讀取記錄媒體
US8595732B2 (en) Reducing the response time of flexible highly data parallel task by assigning task sets using dynamic combined longest processing time scheme
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
JP6515708B2 (ja) 情報処理装置、並列計算機システム、ジョブスケジュール設定プログラムおよびジョブスケジュール設定方法
CN100458705C (zh) 使用动态确定的前端作业群调度计算机作业的方法和系统
US20120066683A1 (en) Balanced thread creation and task allocation
US20110106922A1 (en) Optimized efficient lpar capacity consolidation
US8484649B2 (en) Amortizing costs of shared scans
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
CN114265679A (zh) 数据处理方法、装置和服务器
JPH10301604A (ja) 資材所要量計算装置および資材所要量計算方法
US7647592B2 (en) Methods and systems for assigning objects to processing units
CN113268331A (zh) 机器人调用方法、机器人调用装置、管理系统和存储介质
US11100443B2 (en) Method and system for evaluating performance of workflow resource patterns
Al Na'mneh et al. A new genetic-based algorithm for scheduling static tasks in homogeneous parallel systems
CN117421109B (zh) 训练任务的调度方法、装置、计算机设备及存储介质
US11789773B2 (en) Computing device for handling tasks in a multi-core processor, and method for operating computing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210701

R150 Certificate of patent or registration of utility model

Ref document number: 6908643

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250