(57)【要約】【課題】複数ロットにタスクを分配して実行させる作業システムに対してのタスク分配のスケジューリングを効率的に行えるシステム等を提供する【解決手段】（Ａ）各ロットにつき、各タスクの処理待ち時間が均等になるようにタスク到達時刻を定めるタスク到達時刻設定部と、（Ｂ）タスク到達時刻の設定完了後、全ロットに渡り、同器具使用の各タスクにつき、タスク処理の許容時間帯の重複期間の１の時刻に各処理開始時刻を調整する第１開始時刻調整部と、（Ｃ）器具使用タスクの処理開始時刻の調整完了後、各ロットにつき、器具不使用タスクの処理開始時刻が、隣接する器具使用タスク間で均等に配分されるように調整する第２開始時刻調整部とを備えるシステムを提供する。【選択図】図４
2010146377.tif 000002
【特許請求の範囲】
【請求項１】
それぞれにタスク処理装置とそれによるタスク処理時間が規定された複数のタスクを複数のロットに分配して、各ロットの処理を遂行させる作業システムに対して、分配する各タスクのスケジューリングを行うシステムであって、
各ロットについて、各タスクが当該ロットに到達するタスク到達時刻から当該タスクの処理開始時刻までの時間である処理待ち時間が、各タスクについて均等かまたは所定の範囲内の差異となるように、各タスクのタスク到達時刻を定める、タスク到達時刻設定部と、
前記タスク到達時刻設定部による各タスクのタスク到達時刻の設定が完了した後、全てのロットに亘って、タスク処理装置に付加される同じ器具を使用する各タスクについて、当該タスクの前記タスク到達時刻から当該タスクの前記処理待ち時間が経過するまでの時間である許容時間帯が重複するものを特定し、前記特定されたタスクの各々について、当該タスクの処理開始時刻を前記重複する許容時間帯の中の１の時刻に変更する、第１開始時刻調整部と、
前記第１開始時刻調整部による、器具を使用するタスクの処理開始時刻の前記変更が完了した後、各ロットについて、前記第１開始時刻調整部によって調整された、器具を使用する隣接するタスクの間に配置された、器具を使用しない１つ以上のタスクの各々について、当該タスクに係る処理開始時刻が、前記隣接するタスクに係る調整された処理開始時刻の間で均等に配分した時刻かまたはそれから所定の範囲内の差異の時刻となるように、前記処理開始時刻を変更する、第２開始時刻調整部と、
を備えるシステム。
【請求項２】
前記タスク到達時刻設定部は、各ロットについて、各タスクについての前記処理待ち時間の全てのタスクに亘っての比が、各タスクに係る前記タスク処理時間の全てのタスクに亘っての比と同一かまたは所定の範囲内の差異になるように、各タスクのタスク到達時刻を定める、請求項１に記載のシステム。
【請求項３】
前記タスク到達時刻設定部は、さらに、各タスクに係る前記タスク到達時刻をＴ0とし、当該Ｔ0をもとに下記式（１）の漸化式で示す演算処理により、処理装置ごとに、各タスクに係る第ｉ回目の更新がされた負荷Ｗｉを求め、当該Ｗｉをもとに、下記式（２）で示す演算処理により、各タスクに係る第ｉ回目の更新がされた処理待ち時間Ｑｉを求め、当該Ｑｉをもとに、下記式（３）で示す演算処理により、各タスクに係る第ｉ回目の更新がされたタスク到達時刻Ｔｉを求めることで、各タスクのタスク到達時刻を更新する、請求項１に記載のシステム。
Ｗi(ａe,k)＝max{０,Ｗi(ａe,k-1)＋Ｓ(ａe,k-1)−(Ｔi-1(ａe,k)−Ｔi-1(ａe,k-1))}
Ｗi(ａe,0)＝０
Ｔi-1(ａe,0)＝Ｔi-1(ａe,1)
ここで
ａe,k：  処理装置ｅに係る、ｋ番目に到着するタスク
Ｓ(ａ)：  タスクａ の処理時間
Ｔ(ａ)：  タスクａ のタスク到達時刻
Ｑ(ａ)：  タスクａ の待ち時間
・・・・・（１）
ロットＬの全てのタスクａL,1，ａL,2，・・・，ａL,mに対して、
Ｑi(ａL,1)：Ｑi(ａL,2)：・・・：Ｑi(ａL,m)＝Ｗi(ａL,1)：Ｗi(ａL,2)：・・・：Ｗi(ａL,m)
・・・・・（２）
Ｔi(ａL,k)＝Σj<k(Ｑi(ａL,j)＋Ｓ(ａL,j))
ここで
ａL,k：ロットＬのｋ番目のタスク
・・・・・（３）
【請求項４】
前記タスク到達時刻設定部は、さらに、下記式（４）で示す演算処理により、各タスクに係る第ｉ回目の更新がされたタスク到達時刻Ｔｉを求める処理を収束させる、請求項３に記載のシステム。
もし、Ｔi(ａ)−Ｔi-1(ａ)＞ｆ(ｉ)ならば、Ｔi(ａ)＝Ｔi-1(ａ)＋ｆ(ｉ)、
もし、Ｔi(ａ)−Ｔi-1(ａ)＜−ｆ(ｉ) ならば、Ｔi(ａ)＝Ｔi-1(ａ)−ｆ(ｉ)
ここで
ｎ：  自然数
ｆ(ｎ)：  ｆ(ｎ)＜εを満たす非負単調減少関数
ε：  許容変動誤差
・・・・・（４）
【請求項５】
前記１の時刻は、前記重複する許容時間帯の中央の時刻であることを含む、請求項１に記載のシステム。
【請求項６】
それぞれにタスク処理装置とそれによるタスク処理時間が規定された複数のタスクを複数のロットに分配して、各ロットの処理を遂行させる作業システムに対して、分配する各タスクのスケジューリングをコンピュータ・システムによって行う方法であって、
各ロットについて、各タスクが当該ロットに到達するタスク到達時刻から当該タスクの処理開始時刻までの時間である処理待ち時間が、各タスクについて均等かまたは所定の範囲内の差異となるように、各タスクのタスク到達時刻を定めるステップと、
前記タスク到達時刻を定めるステップによる各タスクのタスク到達時刻の設定が完了したことに応答して、全てのロットに亘って、タスク処理装置に付加される同じ器具を使用する各タスクについて、当該タスクの前記タスク到達時刻から当該タスクの前記処理待ち時間が経過するまでの時間である許容時間帯が重複するものを特定し、前記特定されたタスクの各々について、当該タスクの処理開始時刻を前記重複する許容時間帯の中の１の時刻に変更するステップと、
前記変更するステップが完了したことに応答して、各ロットについて、前記第１開始時刻調整部によって調整された、器具を使用する隣接するタスクの間に配置された、器具を使用しない１つ以上のタスクの各々について、当該タスクに係る処理開始時刻が、前記隣接するタスクに係る調整された処理開始時刻の間で均等に配分した時刻かまたはそれから所定の範囲内の差異の時刻となるように、前記処理開始時刻を変更するステップと、
を備える方法。
【請求項７】
前記タスク到達時刻を定めるステップは、各ロットについて、各タスクについての前記処理待ち時間の全てのタスクに亘っての比が、各タスクに係る前記タスク処理時間の全てのタスクに亘っての比と同一かまたは所定の範囲内の差異になるように、各タスクのタスク到達時刻を定める、請求項６に記載の方法。
【請求項８】
それぞれにタスク処理装置とそれによるタスク処理時間が規定された複数のタスクを複数のロットに分配して、各ロットの処理を遂行させる作業システムに対して、分配する各タスクのスケジューリングを行う、コンピュータ・システムに備わるコンピュータ・プログラムであって、当該コンピュータ・システムに、
各ロットについて、各タスクが当該ロットに到達するタスク到達時刻から当該タスクの処理開始時刻までの時間である処理待ち時間が、各タスクについて均等かまたは所定の範囲内の差異となるように、各タスクのタスク到達時刻を定めるステップと、
前記タスク到達時刻を定めるステップによる各タスクのタスク到達時刻の設定が完了したことに応答して、全てのロットに亘って、タスク処理装置に付加される同じ器具を使用する各タスクについて、当該タスクの前記タスク到達時刻から当該タスクの前記処理待ち時間が経過するまでの時間である許容時間帯が重複するものを特定し、前記特定されたタスクの各々について、当該タスクの処理開始時刻を前記重複する許容時間帯の中の１の時刻に変更するステップと、
前記変更するステップが完了したことに応答して、各ロットについて、前記第１開始時刻調整部によって調整された、器具を使用する隣接するタスクの間に配置された、器具を使用しない１つ以上のタスクの各々について、当該タスクに係る処理開始時刻が、前記隣接するタスクに係る調整された処理開始時刻の間で均等に配分した時刻かまたはそれから所定の範囲内の差異の時刻となるように、前記処理開始時刻を変更するステップと、
を実行させるための、コンピュータ・プログラム。
【請求項９】
前記タスク到達時刻を定めるステップは、各ロットについて、各タスクについての前記処理待ち時間の全てのタスクに亘っての比が、各タスクに係る前記タスク処理時間の全てのタスクに亘っての比と同一かまたは所定の範囲内の差異になるように、各タスクのタスク到達時刻を定める、請求項８に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはタスクのスケジューリングに関する。 本発明は特に、複数の作業ロット用の作業ルートに、それぞれのタスク処理時間が規定されたタスクを分配して実行させる作業システムに対して、分配する各タスクのスケジューリングを行うシステム、そのための方法、およびコンピュータ・プログラムに関する。
【背景技術】
【０００２】
製品や半導体デバイスなどのための製造工程または処理工程においては、従来から、複数のロット（即ち、工程ラインを移動するモノ）のための作業ルート（即ち、工程ライン）を設け、同時並行的に工程を進めて効率化を図る手法が用いられてきている。即ち各ロットとして、製造または処理の対象となる初期の部品やベース材料等である初期投入物を割り当て、その対象物に対して、複数の処理タスクを順次作用させて、この製造工程または処理工程を完遂させ、最終結果物を得るというものである。
例えば、半導体装置の製造工程を例にとると、対象物として、各ロットにウエハーをセットする。 そして、セットされた各ウエハーに対して、マスクパターンの焼付け、レジスト塗布、露光、ワイヤーボンディング等の多くの処理タスクを順次作用させていき、最終的に半導体装置を結果物として得ることができる。これらの処理タスクは、それぞれ、処理装置に付加された特殊な器具を使用して行う種類のものであったり、あるいは器具を全く使用しない種類のものであったりする。 器具を使用する処理タスクとしては、例えばマスクパターンの焼付けが該当する。即ち、焼き付けるマスクパターンの種類に応じて異なった器具を用意してそれを使用しなければならないことがある。
【０００３】
図１（Ａ）は、複数のロットにまたがる作業工程環境における、処理タスクのスケジューリングと、それに基づく実際のタスク処理順序との関係を示す。タスクＡ、Ｂ、Ｄは同じ器具１を使うタスクであり、タスクＣ、Ｅは同じ器具２を使うタスクである。
図１（Ａ）に示すように処理タスクをスケジューリングした場合、処理タスクはシーケンシャルにしか実行できないので、実際のタスクの実行は、タスクＡ＝＝＞タスクＢ＝＝＞タスクＣ＝＝＞タスクＤ＝＝＞タスクＥの順序で行われることとなる。
タスクＡを実行する前に器具１をセットアップする必要があり、セットアップには所定の時間を要する。 タスクＢは引き続きこの器具１を使って実行できるが、次に実行されるべきタスクＣは器具２を使用するため、タスクＣの実行の前に器具１から器具２に取り替えて器具２をセットアップしなければならない。さらに、次のタスクＤの実行の前に再度器具２から器具１に取り替えて器具１をセットアップし、その次のタスクＥの実行の前に再度器具１から器具２に取り替えて器具２をセットアップしなければならない。
【０００４】
図１（Ｂ）は、図１（Ａ）に示したタスクのスケジューリングを修正した再スケジューリングの例を示す。 このように再スケジューリングした場合は、実際のタスクの実行は、タスクＡ＝＝＞タスクＢ＝＝＞タスクＤ＝＝＞タスクＣ＝＝＞タスクＥの順序で行われることとなる。この場合、器具１から器具２への取り替えを１回行うだけで良く、図１（Ａ）の場合より効率的なタスクの実行が可能となることが分かる。
このように、複数のロットを有する作業工程環境下では、処理タスクのスケジューリング手法によっては、実際のタスクの実行が、非常に効率の悪いものとなってしまう場合があり、器具の取り替えが少なくて済むようなより効率の良いタスクのスケジューリング手法が常に求められている。
【０００５】
特開平０７−１１４５９９では、適当数のロットを１つのジョブに結合することにより、その後のスケジューリングの負担を軽減すると共に、無用な取り替えを防止する技術について開示されている。
しかし、この技術は、同じ品種のロットをまとめて処理することを提案しているに過ぎない。  即ち、別の品種のロットであっても、同じタイミングで同じ器具を使用する場合に、同じ器具を使うタスクとしてまとめて処理することには対処し得ない。
【０００６】
特開２００３−０８６５６３では、同一設定で処理する複数のロットをグループ化してスケジュールすることにより、無駄な器具セットアップの発生を抑制して効率的に処理をおこなう技術について開示されている。
しかし、この技術は、仕掛っている単一のロットの中で、使用する器具が同じものをなるべくまとめて処理時間を減らす、いわばローカルな情報に基づくスケジューリングであり、全ロットに渡ってのグローバルな情報に基づくスケジューリングを行えるものではない。
【０００７】
特開２００５−２９４４７３では、連続して処理されるべき第１及び第２のロットに関する処理工程を結合する結合手段を有する技術について開示されている。
しかし、この技術は、露光装置におけるセットアップ時間自体を減らすためのものであり、ロットのタスクのスケジューリングをコントロールしてタスクに係る器具のセットアップの回数を減らすことを企図するものではない。
【０００８】
【特許文献１】特開平０７−１１４５９９号公報
【特許文献２】特開２００３−０８６５６３号公報
【特許文献３】特開２００５−２９４４７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、複数の作業ロットに、それぞれのタスク処理時間が規定されたタスクを分配して各タスクを実行させる作業工程環境に対して、分配する各タスクのスケジューリングを効率的に行って、各タスクに係る器具のセットアップに要する時間等を最小限に抑えることができる、スケジューリング・システム等を提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明では、それぞれにタスク処理装置とそれによるタスク処理時間が規定された複数のタスクを複数のロットに分配して、各ロットの処理を遂行させる作業システムに対して、分配する各タスクのスケジューリングを行うシステムを提供する。
本発明の第１の側面においては、このシステムは、（Ａ）各ロットについて、各タスクが当該ロットに到達するタスク到達時刻から当該タスクの処理開始時刻までの時間である処理待ち時間が、各タスクについて均等かまたは所定の範囲内の差異となるように、各タスクのタスク到達時刻を定める、タスク到達時刻設定部を備える。
このシステムは、さらに、（Ｂ）前記タスク到達時刻設定部による各タスクのタスク到達時刻の設定が完了した後、全てのロットに亘って、タスク処理装置に付加される同じ器具を使用する各タスクについて、当該タスクの前記タスク到達時刻から当該タスクの前記処理待ち時間が経過するまでの時間である許容時間帯が重複するものを特定し、前記特定されたタスクの各々について、当該タスクの処理開始時刻を前記重複する許容時間帯の中の１の時刻に変更する、第１開始時刻調整部を備える。
このシステムは、さらに、（Ｃ）前記第１開始時刻調整部による、器具を使用するタスクの処理開始時刻の前記変更が完了した後、各ロットについて、前記第１開始時刻調整部によって調整された、器具を使用する隣接するタスクの間に配置された、器具を使用しない１つ以上のタスクの各々について、当該タスクに係る処理開始時刻が、前記隣接するタスクに係る調整された処理開始時刻の間で均等に配分した時刻かまたはそれから所定の範囲内の差異の時刻となるように、前記処理開始時刻を変更する、第２開始時刻調整部を備える。
【００１１】
また、本発明の第２の側面においては、本発明の第１の側面におけるシステムにおいて、前記タスク到達時刻設定部が、各ロットについて、各タスクについての前記処理待ち時間の全てのタスクに亘っての比が、各タスクに係る前記タスク処理時間の全てのタスクに亘っての比と同一かまたは所定の範囲内の差異になるように、各タスクのタスク到達時刻を定める。
【００１２】
以上、本発明の概要を、各タスクのスケジューリングを行うシステムとして説明したが、上記課題を解決するために、本発明ではさらに、当該システムによってその機能を実施する方法を提供する。また本発明は、当該システムにこれら方法を実行させるためのコンピュータ・プログラムも提供する。
【００１３】
尚、上記発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、本発明として提供することができることに留意されたい。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、実施形態）について詳細に説明する。 なお、実施形態の説明の全体を通じて同じ要素には同じ番号を付している。
【００１５】
１．システム環境
はじめに、本発明の実施に係る、複数の作業ロットに、それぞれのタスク処理時間が規定されたタスクを分配して各タスクを実行させる作業システムと、その作業システムに対して、分配する各タスクのスケジューリングを行うタスク・スケジューリング・システム等が置かれた環境について説明する。
【００１６】
図２は、作業システムとタスク・スケジューリング・システム等が置かれた環境の例２００を表す。 タスク・スケジューリング・システム２０２は、コンピュータ・システム２０４内に備わる。ここで、コンピュータ・システムとは、単一のサーバ等のコンピュータの場合もあるし、あるいはまた、ＬＡＮその他のネットワーク２２０で結合された複数のコンピュータにまたがるシステムとして捉えても良い。コンピュータ・システム２０４はまた、クラウド・コンピューティングにおける中核となるコンピュータまたはコンピュータ群として捉えることもできる。
【００１７】
タスク・スケジューリング・システム２０２に入力される、処理すべきタスクの情報２０６は、コンピュータ・システム２０４内に予め保存することができる。また、タスク・スケジューリング・システム２０２が機能した結果の出力である、タスク・スケジューリング情報２０８もコンピュータ・システム２０４に保存することができる。このタスク・スケジューリング情報２０８は、作業システム２１０に送られる。
作業システム２１０とは、複数の対象物に対して、複数の器具を使用する複数のタスクを割り当て、タスク・スケジューリング情報２０８に基づく順序で各対象物に作業を施し、個々の対象物に対応する結果物を得るための機械、装置等を総称したものである。
【００１８】
処理すべきタスクの情報２０６は、コンピュータ・システム２０４に直接アクセスするユーザ２２２が設定することができる。 処理すべきタスクの情報２０６はまた、ネットワーク２２０を介してリモートにコンピュータ・システム２０４にアクセスするユーザ（図示せず）によっても設定することができる。
【００１９】
２．タスク・スケジューリング情報
図３は、作業システム２１０へ送られる、１つのロットのためのタスク・スケジューリング情報２０８の例を示す。
タスク処理時間：Ｓ（ａ）は、タスクａを処理するのに要する時間を表し、通常はタスクによって定まる定数値である。 タスク処理時間の値はタスク・スケジューリング・システム２０２に入力として与えられる。
タスク到達時刻：Ｔ（ａ）は、タスクａを作業システム２１０へセットして、タスクａの処理開始のためにスタンバイさせるための時刻を表す。
処理待ち時間：Ｑ（ａ）は、タスクａが作業システム２１０へセットされるタスク到達時刻から、タスクａの処理が開始されるまでの待ち時間を表す。
処理開始時刻：Ｇ（ａ）は、タスクａの処理が開始される時刻を表す。
一般に、Ｇ（ａ）−Ｔ（ａ）≧Ｑ（ａ） の関係がある。 Ｇ（ａ）−Ｔ（ａ）とＱ（ａ）の差分は、このタスクａの直前のタスクを処理するためのタスク処理装置とタスクａを処理するためのタスク処理装置とが異なる装置である場合に、前者の処理装置から後者の処理装置まで作業ルート上でロットを搬送するのに要する搬送時間を意味する。以後の記述では、説明を簡単にするために、Ｇ（ａ）−Ｔ（ａ）＝Ｑ（ａ）であるとして話を進める。
【００２０】
３．本発明の実施に係るタスク・スケジューリング・システムの構成と機能
図４は、本発明の実施に係る、タスク・スケジューリング・システム２０２の構成とその機能を模式的に示す。 タスク・スケジューリング・システム２０２は、タスク到達時刻設定部４０２と、第１開始時刻調整部４０４と、第２開始時刻調整部４０６とを備える。
タスク到達時刻設定部４０２は、対象文書データ１０６、および場合によっては、参照文書データ１０８を入力して（読み込んで）、その中の各章見出しデータを分析し、各章見出しデータ毎の章見出しトピック３１２を推定して、それをコンピュータ・システム１０４に保存する機能を有する。
【００２１】
タスク到達時刻設定部４０２は、各ロットについての、割り当てられるタスクの順序と、各タスクの処理時間と、各タスクの処理を行う処理装置の情報とを受け取って、各ロットについての、各タスクのタスク到達時刻の情報と、そのタスク到達時刻とタスク処理時間とから一意に定まる各タスクの処理待ち時間の情報を得る。
【００２２】
第１開始時刻調整部４０４は、タスク到達時刻からタスクの処理待ち時タスク到達時刻設定部４０２による各タスクのタスク到達時刻の設定が完了したことに応答して（矢印４２２）、器具を使用するタスクについて、設定されているタスク到達時刻についてはそのままにして、その器具の使用が効率よくできるように、そのタスクの処理開始時刻を変更調整する。
即ち、全てのロットに渡って、同じ器具を使用する各タスクについて、タスク到達時刻からタスクの処理待ち時間が経過するまでの期間である許容時間帯を算出し、異なるロット間でこの許容時間帯が互いに重複するタスクを特定し、重複期間を認定する。
第１開始時刻調整部４０４は、この特定されたタスクの各々について、その処理開始時刻を、現在設定されているそれぞれの時刻から、その重複期間内の何れかの時刻、へと変更する。この、変更される処理開始時刻は、好ましくは、その重複期間の中央の時刻である。
【００２３】
第２開始時刻調整部４０６は、器具を使用するタスクについてのタスクの処理開始時刻の変更調整が完了したことに応答して（矢印４２４）、器具を使用しないタスクについて、器具を使用する隣接するタスクの間でそのタスクの処理開始時刻が均等またはほぼ均等に配分されるように、その処理開始時刻を変更調整する。
以下、各部の詳細な機能について説明する。
【００２４】
３．１  タスク到達時刻設定部の機能
タスク到達時刻設定部４０２は、各ロットについて、各タスクについての処理待ち時間が、各タスクについて均等またはほぼ均等になるように、各タスクのタスク到達時刻を定める。
図５は、あるロットＬで、処理待ち時間が各タスクについて均等になるように各タスクのタスク到達時刻が定められたタスク・スケジューリング情報の例を示す。
ロットＬでは、最初のタスクを投入しなければならない時刻である投入時刻：Ｒ（Ｌ）から、ロットＬでの作業完了の最終納期である納期時刻：Ｄ（Ｌ）までの間に、全てのタスクをスケジューリングしなければならないものとする。この場合、ロットＬに対して、余裕時間Ｍ（Ｌ）を次式で求める。
【００２５】
Ｍ（Ｌ）＝｛Ｄ（Ｌ）−Ｒ（Ｌ）｝−Σa: Lのタスク Ｓ（ａ）
このＭ（Ｌ）を、ロットＬのタスク総数で割った値を、各タスクの処理待ち時間とする。 即ち、ロットＬの各タスクａに対して、
Ｑ（ａ）＝Ｍ（Ｌ）／｛Ｌのタスク総数｝
とする。 さらに、ロットＬのＫ番目のタスクをａL,kとして、次式で、Ｋ番目のタスクのタスク到達時刻：Ｔ（ａL,k）を求める。
Ｔ（ａL,k）＝Σj<k（Ｑ（ａL,j）＋Ｓ（ａL,j））
【００２６】
タスク到達時刻設定部４０２は、各タスクの処理待ち時間として、上記のように、タスクごとに均等な値とするだけにとどめることもできるが、別の実施例として、この均等な値から出発して、以下に示す手順Ａに従って、各タスクの処理時における負荷を考慮して、タスクのタスク到達時刻を修正することができる。ｉ回目の修正をした後のタスク到達時刻をＴiと表す。
【００２７】
手順Ａ：  タスク到達時刻の修正
Ａ１． 処理装置ごとに以下の処理を行う。
Ａ１−１．
Ｔi-1のうち、処理装置ｅで処理されるタスクの到達時刻のみを取り出し昇順にソートする。
（処理装置ｅで処理されるｋ番目に到着するタスクをａe,kとする。）
Ａ１−２．
処理装置ｅで処理される各タスクの負荷を、次の漸化式によって求める。
Ｗi(ａe,k)＝max{０, Ｗi(ａe,k-1)＋Ｓ(ａe,k-1)−(Ｔi-1(ａe,k)−Ｔi-1(ａe,k-1))}
但し、Ｗi(ａe,0)＝０、Ｔi-1(ａe,0)＝Ｔi-1(ａe,1)とする。
Ａ２． ロットごとに以下の処理を行う。
Ａ２−１．
ロットＬの全てのタスクａL,1，ａL,2，・・・，ａL,mに対して、
Ｑi(ａL,1)：Ｑi(ａL,2)：・・・：Ｑi(ａL,m)＝Ｗi(ａL,1)：Ｗi(ａL,2)：・・・：Ｗi(ａL,m)、
かつ、 Σa: LのタスクＱi(ａ)＝Ｍ(Ｌ)
を満たすＱｉを求める。
Ａ２−２．
ロットＬのｋ番目のタスクをａL,kとして、
Ｔi(ａL,k)＝Σj<k(Ｑi(ａL,j)＋Ｓ(ａL,j))
【００２８】
タスク到達時刻設定部４０２は、上記のように、各タスクの処理時における負荷を考慮して、タスク到達時刻を修正していく場合、なかなか収束しない場合があるので、効率よく収束させるために、以下の手順を設けることができる。
【００２９】
Ａ３．収束性を確保するため、以下の処理を行う。
もし、Ｔi(ａ)−Ｔi-1(ａ)＞ｆ(ｉ) ならば、Ｔi(ａ)＝Ｔi-1(ａ)＋ｆ(ｉ)、
もし、Ｔi(ａ)−Ｔi-1(ａ)＜−ｆ(ｉ) ならば、Ｔi(ａ)＝Ｔi-1(ａ)−ｆ(ｉ)
ここで
ｆ(ｎ)：  ある自然数ｎに対してｆ(ｎ)＜εを満たす非負単調減少関数
ε：  許容変動誤差を表す定数
【００３０】
例えばｆ(ｎ)およびεとして、次のような関数および値を取ることができる。
ｆ(ｎ)＝３６００・２４・(０．８)i
ε＝６０
【００３１】
図６は、タスク到達時刻設定部４０２による処理手順の流れを示す。 この処理は、各ロットについて行われ、それぞれのロット内に投入すべき全てのタスクの各々について行われる。
先ず、ステップ６０２で、タスク到達時刻：Ｔおよび処理待ち時間：Ｑを初期化する。 即ち、各タスクについての処理待ち時間が、各タスクについて均等になるように、各タスクのタスク到達時刻を定める。このときのＴおよびＱをそれぞれＴ０およびＱ０とし、反復回数係数ｉ＝１とする。
次に、ステップ６０４で、反復回数に応じて単調減少する非負値の関数ｆ（ｉ）の値が、定数εより小さいかどうかが判断される。 ｆ（ｉ）がε以上の場合は、十分な反復回数が得られたとして、ステップ６０６で、その時点でのＴｉおよびＱｉをそれぞれタスク到達時刻：Ｔおよび処理待ち時間：Ｑとして出力して終了する。
ｆ（ｉ）がε未満の場合は、上記手順１に従って、Ｔｉ−１をもとにＷｉを求める。 さらに、ステップ６１０で、上記手順２に従って、ＷｉをもとにＱｉおよびＴｉを求める。その後、反復回数係数ｉを１だけ増加させ、ステップ６０４を繰り返す。
【００３２】
３．２  第１開始時刻調整部の機能
第１開始時刻調整部４０４は、器具を使用するタスクを対象として、全てのロットに渡って同じ器具を使用するタスクが時間的に近接している場合は、これらのタスクの処理開始時刻を揃えるように調整して、これらタスクが共通に使用する器具のセットアップ等の効率化を図るものである。
【００３３】
図７は、第１開始時刻調整部の機能により、同じ器具を使うタスクの処理開始時刻が揃うように調整される様子を示す。
タスク到達時刻設定部４０２によって、各ロット内でタスクが暫定配置される。 即ち、各タスクについて、そのタスク到達時刻と、その時刻にタスクの処理待ち時間を加えた処理開始時刻とが暫定的に定められる。このとき、各タスクについて、タスク到達時刻から当該タスクの処理待ち時間が経過するまでの時間帯を「許容時間帯」として規定する。 この許容時間帯は、そのタスクの処理が実際にこの時間帯の間に開始することが許容されるバッファ期間であることを意味する。よって、異なるロットにまたがる、同じ器具を使用するタスクについて、この許容時間帯が重複する部分を特定し、これら各タスクの処理開始時刻をその重複期間のある時刻に変更調整することで、これらタスクの処理における器具の使用を効率化することができる。この「ある時刻」としては、この重複期間の中心にすることが好ましい。
許容時間帯の重複期間の特定と、処理開始時刻の調整についての実施例に係る手順Ｂを以下に示す。
【００３４】
手順Ｂ．  許容時間帯の重複期間の特定と、処理開始時刻の調整
Ｂ１．各タスクの許容時間帯Ｆを設定する。
各ロットに対して、当該ロットＬのｋ番目のタスクをａL,kとして、
許容時間帯Ｆ(ａL,k)＝[Ｔ(ａL,k)，Ｔ(ａL,k)＋Ｑ(ａL,k)]＝[ｂ(ａL,k)，ｅ(ａL,k)]
を定める。
ここで、
ｂ(ａ)： 許容時間帯Ｆ(ａ)の開始時刻
ｅ(ａ)： 許容時間帯Ｆ(ａ)の終了時刻
Ｂ２．  器具を使用するタスクに対しての、処理開始時刻Ｇを調整する。
各器具ｘに対して、
Ｂ２−１．
当該器具ｘを使用するタスクの集合をＡ(ｘ) とする。
Ｂ２−２．
Ｂ＝{ｂ(ａ)|ａ∈Ａ(ｘ)}、 Ｅ＝{ｅ(ａ)|ａ∈Ａ(ｘ)} とし、共に昇順にソートする。 但し、ｅ(ｐ)＝ｅ(ｑ)の場合に、ｐ≠ｑの場合は両者を区別する。
Ｂ２−３．
Ｅの要素が空になるまで、以下の操作を繰り返す。
Ｂ２−３−１．
Ｅの先頭の要素ｙを取り出す
Ｂ２−３−２．
Ａ’＝{ａ|ｂ(ａ)≦ｙ かつ ａ∈Ａ(ｘ)} を求める。
Ｂ２−３−３．
Ａ’に含まれる全てのａに対して、Ｇ(ａ)＝0.5・(max{ｂ(ａ)|ａ∈Ａ’}＋ｙ)と設定する。
Ｂ２−３−４．
Ｂ＝Ｂ＼{ｂ(ａ)|ａ∈Ａ’}、
Ｅ＝Ｅ＼{ｅ(ａ)|ａ∈Ａ’}
と更新する。
ただし、＼は集合同士の引き算を表す。
【００３５】
３．３  第２開始時刻調整部の機能
第２開始時刻調整部４０６は、器具を使用しないタスクを対象として、器具を使用するタスクの処理開始時刻が調整された後、その調整にあわせてバランスをとるように、器具を使用しないタスクの処理開始時刻を調整して、これらタスクの処理実行の円滑化を図るものである。
【００３６】
図８は、第２開始時刻調整部の機能により、器具を使用しないタスクの処理開始時刻が、器具を使用するタスクの間で調整配置される様子を示す。
ある実施例においては、各ロットについて、先に第１開始時刻調整部４０４によって調整された、器具を使用する隣接する２つのタスクの処理開始時刻の間で、器具を使用しない１または複数のタスクの処理開始時刻が均等に配置される。
別の実施例では、器具を使用する隣接する２つのタスクの間にある器具を使用しない複数のタスクの処理開始時刻は、それらのタスクについてタスク到達時刻設定部４０２によって先に定められた処理待ち時間の比に応じて再度配置される。この実施例に係る手順Ｃを以下に示す。
【００３７】
手順Ｃ：  器具を使用しないタスクに対しての処理開始時刻の調整
各ロットＬに対して、
Ｃ−１．
先頭のタスクａＬ，１の調整後の処理開始時刻Ｇ(ａL,1)が未定の場合、
Ｇ(ａL,1)＝Ｔ(ａL,1)＋Ｑ(ａL,1)とする。
Ｃ−２．
末尾のタスクａＬ，mの調整後の処理開始時刻Ｇ(ａL.m)が未定の場合、
Ｇ(ａL,m)＝Ｔ(ａL,m)＋Ｑ(ａL,m)とする。
Ｃ−３．
調整後の処理開始時刻Ｇが求まっているタスクをf1，f2，f3，…，fkとかく。
また、fk と fk+1 の間のタスクをＡk＝{ａk,1，ａk,2，…，ａk,N｝とかく。
（ fk と fk+1 は含まない、Ｎ＝|Ａk|）
Ｐ(ａk,1)：Ｐ(ａk,2)：・・・＝Ｑ(ａk,1)：Ｑ(ａk,2)：・・・、かつ、
Σａ in ＡkＰ(ａ)＝Ｍ(ｋ)を満たすＰを求める。
Ｃ−４．
１≦ｎ≦Ｎに対して、Ｇ(ａk,n)＝Ｇ(fk)＋Σ1≦j≦n(Ｓ(ａk,j-1)＋Ｐ(ａk,j))を求める。
但し、便宜上、Ｓ(ａk,0)＝Ｓ(fk) とする。
また、fk と fk+1 の間の余裕時間：
Ｍ(ｋ)＝{Ｇ(fk+1)−(Ｇ(fk)＋Ｓ(fk))}−Σａin ＡkＳ(ａ) とする
【００３８】
４．ハードウェア資源との関連性
以上、本発明の実施形態について、コンピュータ・システム２０４が備えるタスク・スケジューリング・システム２０２として説明し、構成要件としての複数の機能ブロック（タスク到達時刻設定部４０２と、第１開始時刻調整部４０４と、および第２開始時刻調整部４０６）を備えることを説明した。
これらの機能ブロックは、このコンピュータ・システム２０４のハードディスク等に格納されたコンピュータ・プログラムによる情報処理が、このコンピュータ・システムのＣＰＵ等のハードウェア資源（ハードウェア・コンポーネント）と協働した具体的手段によって実現される。
すなわち、これらの機能ブロックの各々による処理は、コンピュータ・プログラムに含まれる、各機能ブロックに相当するそれぞれのプログラム・モジュールが、このコンピュータ・システムのＣＰＵ等のハードウェア資源に実行させることで実現される。
【００３９】
図９は、本発明の実施に係るコンピュータ・システム２０４の詳細なハードウェア構成の典型的な例を示す。 この構成では、コンピュータ・システム２０４の全体の制御をつかさどるプロセッサ１００２（中央処理装置、ＣＰＵ、メイン・プロセッサ等と称することもある。）の直近にメモリ・コントローラ・ブリッジ１００４（メモリ・コントローラ、ホスト・コントローラ、メモリ・ブリッジ、第１のブリッジ、ノース・ブリッジ等と称することもある。）が接続される。
【００４０】
メモリ・コントローラ・ブリッジ１００４にはメイン・メモリ１００６（メモリ、主記憶等と称することもある。）およびグラフィックス・コントローラ１００８が直接接続され、プロセッサ１００２から主に高い転送レートでメイン・メモリ１００６やグラフィックス・コントローラ１００８をアクセスすることができる。
【００４１】
グラフィック・コントローラ１００８は、プロセッサ１００２等がメイン・メモリ１００６内に設けたフレーム・バッファ上に生成する画像データを取得し、ディスプレイ１０１４（表示装置、ディスプレイ装置、モニタ装置等と称することもある。）上に表示させる。これに代えて、グラフィック・コントローラ１００８、プロセッサ１００２等が生成する画像データを格納するフレーム・バッファ・メモリ１０１０を独自に備えることもできる。
【００４２】
メモリ・コントローラ・ブリッジ１００４からはまた、ＰＣＩローカル・バス１０８０などのバスを介して、Ｉ／Ｏコントローラ・ブリッジ１０１８（Ｉ／Ｏコントローラ、Ｉ／Ｏブリッジ、第２のブリッジ、サウス・ブリッジ等と称することもある。）が接続される。
【００４３】
Ｉ／Ｏコントローラ・ブリッジ１０１８には、ストレージ・コントローラ１０２０（ＩＤＥコントローラ、ＳＣＳＩコントローラ、等）を介してハードディスク・ドライブ１０２２（ＨＤＤ、ハードディスク、ハードディスク・ストレージ、固定記憶装置等と称することもある。）等の大容量記憶装置が接続される。
Ｉ／Ｏコントローラ・ブリッジ１０１８にはまた、ＤＶＤドライブ１０２４、ＣＤＲＯＭドライブ１０２６、ＭＯドライブ１０２８、フレキシブル・ディスク・ドライブ等の外部記憶媒体用装置が接続される。
【００４４】
大容量記憶装置または外部記憶媒体用装置には、本発明を実施させるのに必要なオペレーティング・システム１０３２や、オペレーティング・システム１０３２と協働してプロセッサ１００２等に命令を与えて本発明を実施させるためのアプリケーション・ソフトウェア１０３０等のコンピュータ・プログラムを記憶する事ができる。これらコンピュータ・プログラムはメイン・メモリ１００６にロードされ、プロセッサ１００２は、メイン・メモリ１００６に格納されたコンピュータ・プログラムに基づいて動作し、各部の制御を行う。
コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
ハードディスク・ドライブ１０２２にはさらに、本発明の実施に係る、タスク・スケジューリング・システム２０２に入力される、処理すべきタスクの情報２０６、およびタスク・スケジューリング・システム２０２が機能した結果の出力である、タスク・スケジューリング情報２０８等を含めることができる。
【００４５】
Ｉ／Ｏコントローラ・ブリッジ１０１８にはまた、キーボード／マウス・コントローラ１０３６が接続され、キーボード１０３８やマウス１０４０のような入力デバイスからの入力を受けつける。
Ｉ／Ｏコントローラ・ブリッジ１０１８にはこの他に、各種の外部バス・インターフェース１０４２、１０４４、１０４６が接続される。
外部バス・インターフェース１０４２は、ＵＳＢ等のシリアル・ポートまたはパラレル・ポートであり、ここを介して各種周辺装置を接続することができる。
【００４６】
外部バス・インターフェース１０４６には、作業システム２１０を通信可能に接続することができる。 外部バス・インターフェース１０４６には、別のコンピュータ・システムを通信可能に接続することもでき、そのハードディスク・ドライブに上記コンピュータ・プログラムの全部もしくは一部、または上記処理すべきタスクの情報２０６等を保管させることも可能である。
【００４７】
さらに、外部バス・インターフェース１０４４を介して外部のコンピュータ・ネットワーク２２０に接続することができる。 このコンピュータ・ネットワーク２２０を介して作業システム２１０を通信可能に接続することもできる。このコンピュータ・ネットワーク２２０を介して接続された別のコンピュータ・システムのハードディスク・ドライブにも、上記コンピュータ・プログラムの全部もしくは一部、または上記処理すべきタスクの情報２０６等を保管させることも可能である。
これは即ち、本発明の実施に係るコンピュータ・システムとは、スタンドアロンのコンピュータ環境で行うこともできれば、あるいは複数のコンピュータの環境で行うこともできることを意味する。
なお、このコンピュータ・ネットワーク２２０を介して、このコンピュータ・システム２０４にアクセスするユーザのクライアント・コンピュータを接続することができる。
【００４８】
コンピュータ・システム２０４の大容量記憶装置に記憶され、その全体的な動作を司るオペレーティング・システム１０３２としては、マイクロソフト・コーポレーションが提供するＷｉｎｄｏｗｓ（Ｒ）オペレーティング・システム、アップル・コンピュータ・インコーポレイテッドが提供するＭａｃＯＳ（Ｒ）、ＸＷｉｎｄｏｗ Ｓｙｓｔｅｍを備えるＵＮＩＸ（Ｒ）系システムといった、ＧＵＩ（Graphical User Interface）をサポートするオペレーティング・システムを採用することができる。
ＵＮＩＸ（Ｒ）系システムには、例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するＡＩＸ（Ｒ）あるいはＬｉｎｕｘ（Ｒ）等がある。
【００４９】
以上の説明により、本発明の実施に好適なコンピュータ・システム２０４は、通常のサーバ、、ワークステーション、パーソナルコンピュータ、メインフレーム等の情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。
【００５０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態の記載の範囲には限定されない。
上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。 またその様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。さらに、上記実施の形態の中で説明されている特徴の組み合わせの全てが、発明の解決手段に必須とは限らないことにも留意されたい。
【図面の簡単な説明】
【００５１】
【図１】複数のロットにまたがる作業工程環境における、処理タスクのスケジューリングと、それに基づく実際のタスク処理順序との関係を示す。
【図２】作業システムとタスク・スケジューリング・システム等が置かれた環境の例を表す。
【図３】作業システムへ送られる、１つのロットのためのタスク・スケジューリング情報の例を示す。
【図４】本発明の実施に係る、タスク・スケジューリング・システムの構成とその機能を模式的に示す。
【図５】処理待ち時間が各タスクについて均等になるように各タスクのタスク到達時刻が定められたタスク・スケジューリング情報の例を示す。
【図６】タスク到達時刻設定部による処理手順の流れを示す。
【図７】第１開始時刻調整部の機能により、同じ器具を使うタスクの処理開始時刻が揃うように調整される様子を示す。
【図８】第２開始時刻調整部の機能により、器具を使用しないタスクの処理開始時刻が、器具を使用するタスクの間で調整配置される様子を示す。
【図９】本発明の実施に係るコンピュータ・システムの詳細なハードウェア構成の典型的な例を示す。
【図１】
2010146377.tif 000003
【図２】
2010146377.tif 000004
【図３】
2010146377.tif 000005
【図４】
2010146377.tif 000006
【図５】
2010146377.tif 000007
【図６】
2010146377.tif 000008
【図７】
2010146377.tif 000009
【図８】
2010146377.tif 000010
【図９】
2010146377.tif 000011