(57)【要約】【課題】プラント全体のスループットを最適化できるよう個別ジョブのプラニングを協調させる。【解決手段】多段階生産プロセス用の複数のプラニングセッションを協調させる方法をコンピュータ制御システム内で実行する。アウタープランナループモジュールは、プラニング済ジョブ及び未プラニングジョブのキューの管理を行う。そして、差し迫ったプラニング済ジョブがあるかどうかプラニング済ジョブキューを点検し（４３０）、そのようなジョブについて時間的切り縮めプロセスを実行し（４４０）、生産向けに発行する（４５０）。更に、他に差し迫ったプラニング済ジョブがあるかどうか点検し（４３０）、そのようなジョブがないと認められる場合には次のジョブについてのプランを作成させるべく個別ジョブプランナを呼び出し、当該次のジョブについてのプランを作成させる（４１０）。【選択図】図４
2005339552.tif 000002
【特許請求の範囲】
【請求項１】
アウタープランナループモジュール及び個別ジョブプランナを有するコンピュータ制御システム内で実行され、スケジューリング制約条件が満足されるよう且つ個別ジョブプラニングにおける柔軟性が保持されるよう、時間的拘束条件を利用し多段階生産プロセス用の複数のプラニングセッションを協調させる方法であって、
個別ジョブプランナが次のジョブのプラニングをやり終える前に始まるようスケジューリングされている差し迫ったプラニング済ジョブが１個でもあるかどうか、プラニング済ジョブキューを点検するステップと、
上記差し迫ったプラニング済ジョブについて時間的切り縮めプロセスを実行するステップと、
上記差し迫ったプラニング済ジョブを生産向けに発行するステップと、
他に差し迫ったプラニング済ジョブがあるかどうか点検するステップと、
差し迫ったプラニング済ジョブがないと認められる場合に次のジョブについてのプランを作成させるべく個別ジョブプランナを呼び出すステップと、
当該次のジョブについてのプランを作成するステップと、
を有し、
上記次のジョブについてのプランを作成するステップが、
プラニング済ジョブ及び未プラニングジョブのキューを管理しコンピュータ制御システムとやりとりを行うアウタープランナループモジュールから、生産したいオブジェクトを特定するジョブ仕様を受け取るステップと、
それぞれアクションについての抽象的識別子を含むタイムポイント毎に少なくとも１個の実現可能時間窓を含む時間的拘束条件データベースを、アウタープランナループモジュールから受け取るステップと、
上記次のジョブについてのプランをアウタープランナループモジュールに返送するステップと、
上記次のジョブにおけるタイムポイントについての情報が含まれることとなるよう時間的拘束条件データベースを更新するステップと、
更新した時間的拘束条件データベースをアウタープランナループモジュールに返送するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、上記時間的切り縮めプロセスが、上記差し迫ったプラニング済ジョブに含まれる全てのタイムポイントにおける許容時間間隔を、ある特定の絶対時間まで強制的に短縮するプロセスを含む方法。
【請求項３】
請求項１記載の方法において、時間的拘束条件データベースを更新するステップが、実現可能な時間間隔を時間的拘束条件データベースによりタイムポイント毎に保持し新しい拘束条件が追加されるときはいつでもこれらの時間間隔を更新するアーク一致性プロセスを、用いるステップを含む方法。
【請求項４】
アウタープランナループモジュール及び個別ジョブプランナを有するコンピュータ制御システム内で実現され、スケジューリング制約条件が満足されるよう且つ個別ジョブプラニングにおける柔軟性が保持されるよう、時間的拘束条件を利用し多段階生産プロセス用の複数のプラニングセッションを協調させるシステムであって、
個別ジョブプランナが次のジョブのプラニングをやり終える前に始まるようスケジューリングされている差し迫ったプラニング済ジョブが１個でもあるかどうか、プラニング済ジョブキューを点検する手段と、
上記差し迫ったプラニング済ジョブについて時間的切り縮めプロセスを実行する手段と、
上記差し迫ったプラニング済ジョブを生産向けに発行する手段と、
他に差し迫ったプラニング済ジョブがあるかどうか点検する手段と、
差し迫ったプラニング済ジョブがないと認められる場合に次のジョブについてのプランを作成させるべく個別ジョブプランナを呼び出す手段と、
当該次のジョブについてのプランを作成する手段と、
を有し、
上記次のジョブについてのプランを作成する手段が、
プラニング済ジョブ及び未プラニングジョブのキューを管理しコンピュータ制御システムとやりとりを行うアウタープランナループモジュールから、生産したいオブジェクトを特定するジョブ仕様を受け取る手段と、
それぞれアクションについての抽象的識別子を含むタイムポイント毎に少なくとも１個の実現可能時間窓を含む時間的拘束条件データベースを、アウタープランナループモジュールから受け取る手段と、
上記次のジョブについてのプランをアウタープランナループモジュールに返送する手段と、
上記次のジョブにおけるタイムポイントについての情報が含まれることとなるよう時間的拘束条件データベースを更新する手段と、
更新した時間的拘束条件データベースをアウタープランナループモジュールに返送する手段と、
を有するシステム。
【請求項５】
請求項４記載のシステムにおいて、上記時間的切り縮めプロセスが、上記差し迫ったプラニング済ジョブに含まれる全てのタイムポイントにおける許容時間間隔を、ある特定の絶対時間まで強制的に短縮するプロセスを含むシステム。
【請求項６】
個別ジョブプランナが次のジョブのプラニングをやり終える前に始まるようスケジューリングされている差し迫ったプラニング済ジョブが１個でもあるかどうか、プラニング済ジョブキューを点検するステップと、
上記差し迫ったプラニング済ジョブについて時間的切り縮めプロセスを実行するステップと、
上記差し迫ったプラニング済ジョブを生産向けに発行するステップと、
他に差し迫ったプラニング済ジョブがあるかどうか点検するステップと、
差し迫ったプラニング済ジョブがないと認められる場合に次のジョブについてのプランを作成させるべく個別ジョブプランナを呼び出すステップと、
当該次のジョブについてのプランを作成するステップと、
を有し、
上記次のジョブについてのプランを作成するステップが、
プラニング済ジョブ及び未プラニングジョブのキューを管理しコンピュータ制御システムとやりとりを行うアウタープランナループモジュールから、生産したいオブジェクトを特定するジョブ仕様を受け取るステップと、
それぞれアクションについての抽象的識別子を含むタイムポイント毎に少なくとも１個の実現可能時間窓を含む時間的拘束条件データベースを、アウタープランナループモジュールから受け取るステップと、
上記次のジョブについてのプランをアウタープランナループモジュールに返送するステップと、
上記次のジョブにおけるタイムポイントについての情報が含まれることとなるよう時間的拘束条件データベースを更新するステップと、
更新した時間的拘束条件データベースをアウタープランナループモジュールに返送するステップと、
を含み、スケジューリング制約条件が満足されるよう且つ個別ジョブプラニングにおける柔軟性が保持されるよう、時間的拘束条件を利用し多段階生産プロセス用の複数のプラニングセッションを協調させる方法を、
アウタープランナループモジュール及び個別ジョブプランナを有するコンピュータ制御システム内でそのコンピュータ可読プログラムコードを実行させることにより実現させるべく、当該コンピュータ可読プログラムコードが書き込まれているコンピュータ利用可能媒体を含む製造物。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、生産／製造のプラニングとスケジューリングについての方法及びシステムに関し、より詳細には、時間的拘束条件（テンポラルコンストレイント）を利用して製造乃至生産業務に係る複数のプラニングセッションを協調させる技術に関する。
【背景技術】
【０００２】
従来から、製造システムにおいては、時間的に非同期に到来するジョブリクエストに応じ一連のジョブをプラニング／スケジューリングすることが、必要とされている（なお本願では「ジョブ」という言葉を仕事という意味でもその対象物乃至成果物という意味でも使用する）。プランを実行するには物理的なプラント資源を用いる必要があるため、発行済生産プランにてどのような資源に言及しているかを考慮に入れなければ、それ以後のジョブをプラニングできない。例えば、あるジョブのパート１がマシン２をｐｍ４：００：００から１５秒間使用するようスケジューリングされているのであれば、そのジョブのパート２についてはｐｍ４：００：００〜ｐｍ４：００：１５にマシン２を使用するプランを立てることができない。そのため、アセンブリライン方式で多くの同じジョブを製造するシステムや非常に少数のカスタムジョブを長時間かけて提供する工場であれば、生産プラニング／スケジューリングをシンプルなものとすることができるであろうが、高速カスタム注文製造が求められる状況、即ちオブジェクト毎に異なる処理が必要でオブジェクト毎の生産プランを非常に迅速に生成しなければならない状況下では、生産プラニング／スケジューリングは非常に難しいものになり得る。
【０００３】
典型的な製造プラントは、図１に示すように、複数のマシン間を結ぶ移送ネットワークとして、表すことができる。プラントの規模は、マシンや移送経路の個数が数個から数百個に至る何れの規模であってもよい。プラントに対しては複数のソース（供給元）より生素材からなる未完成ブロックを搬入することができ、仕上がったジョブは複数のデスティネーション（供給先）へと搬出できる。図１として示した簡単な模式図では、ソース１及び２がマシン１及び２に対して素材を提供しており、マシン１及び２はマシン３及び４やデスティネーション１及び２に結ばれている。これらソース、マシン及びデスティネーション間の移送即ちジョブの移動には既知の時間がかかる。各マシンは、それぞれ既知の時間を要する有限個数の個別アクションを実行できる。各マシンは、自分に対し供給されたものを、原因と結果の関係が明らかな既知のやり方で変形させる。
【０００４】
プラニングという側面から見ると、図１に示したプラント内におけるジョブの移動は図２に示すようなものとなる。この図からわかるように、ジョブリクエストによって特定される最終的に得たい構成は、いくつかの異なったアクション系列で実現できる。例えば、図２においてソースＳ１から調達された素材はマシン１にて受け取られ、マシン１による第１動作ＡＣＴ１及び第２動作ＡＣＴ２のうち何れかにより処理される。動作ＡＣＴ１又はＡＣＴ２によって得られたものは、デスティネーションＤ１へ送るか、或いは更なる処理のためマシンＭ３又はマシンＭ２に送ることができる。毎秒に何回も到来するジョブリクエストに応じ高速で且つしばしば何時間にも亘りこのプラントを運転・操業するには、またこのプラントのスループットを最適化するには、明らかに、生産を協調させる効率的で自動化されたプロセスが必要となる。
【０００５】
プラニング／スケジューリングプロセスをより複雑にする要因としては、いくつかのスケジューリング拘束条件が挙げられる。例えば、着目すべきことに、ジョブは多くの状況下においていくつかのバッチへとグループ分けされる。バッチとは、最終的に同じデスティネーションへと順序だって到着する序列のあるジョブの集合である。生産時においては複数のバッチを同時に発生させ得るが、同時に発生させ得るバッチの個数はデスティネーションの個数により制限される。これは、異なるバッチに属するジョブが同一のデスティネーションにて混ざってしまうことが、許されないからである。
【０００６】
また、マシン又は移送手段はときとしてダウンし、関連するアクションが取り除かれてプラニング内容が事実上変更される。更に、プラントの構成は意図的に定期改変される。従って、標準的且つ次善的なプランをある個数を上限として幾通りか事前計算することや、オンライン計算をスケジューリングのみに限ることは、望ましくない。即ち、例えばマシン台数が２００台にもなる大きなプラントであれば、考慮すべき壊れ方は数え切れないほど多くあるし、発せられ得るジョブリクエストが多数に上る場合は、マシンの性能乃至能力次第で事前計算が実行不可能になり得る。
【０００７】
更に、プランナは、時間的に非同期に到来するジョブ仕様の流れを受け取り、それぞれその開始時刻を付記してアクションを並べたプランを、ジョブ毎に提供しなければならない。プラントコントローラは、与えられたプランを実行して不具合があればそれを報告し、プランナはプラントコントローラにプランを返送する。しかしながら、このプランはその時点からある時間が過ぎた後に開始させねばならない。これは、通信及び処理に伴う遅延があるためである。
【０００８】
また、通常、どのようなジョブリクエストが与えられた場合でもそのジョブリクエストについての実現可能なプランは多くある。問題は、敏速に完遂できるプランをどのようにすれば見つけられるかである。あるジョブについての最適プランは、ジョブリクエストだけでなく、プラニング済ジョブに係るプランにて言及している資源によっても変わり得る。この問題に対する既存の解決策においては、実現可能な全てのプランをマシン起動時に調べ上げ、ジョブリクエスト時に好適なプランを選んで必要なアクションをスケジューリングすることが、必要とされる。しかしながら、複雑な構成を有するプラントでは実現可能なプランが多数に上るため、オンラインプラニングシステムを好適に用い得なくなる。そのような状況に対処するには、各ジョブに係るプランにおける資源への言及を重視しつつ且つプランにて言及する資源がジョブ間で重複することを防止しつつ、プラント全体のスループットを最適化できるよう個別ジョブのプラニングを協調させる方法及びシステムが、必要となる。
【０００９】
なお、関連する技術として下記特許文献１乃至４が挙げられる。
【００１０】
【特許文献１】米国特許第６５４６３００号明細書
【特許文献２】米国特許第６５９１１５３号明細書
【特許文献３】米国特許第６６０６５２７号明細書
【特許文献４】米国特許第６６０６５２９号明細書
【非特許文献１】"Managing Dynamic temporal Constraint Networks," Cervoni, Roberto, Almedeo Cesta, and Angelo Oddi, 1994, in Proceedings of AIPS-94, 13-18
【非特許文献２】"Temporal Constraint Networks," Dechter, Rina, Itay Meiri, and Judea Pearl, 1991, Artificial Intelligence 49:61-95
【発明の開示】
【課題を解決するための手段】
【００１１】
本願にて開示する実施形態は、背景技術の欄で示した問題点に関し、優れた例解を提供するものである。即ち、実施形態に係る改善された方法は、アウタープランナループモジュール及び個別ジョブプランナを有するコンピュータ制御システム内で実行され、スケジューリング制約条件が満足されるよう且つ個別ジョブプラニングにおける柔軟性が保持されるよう、時間的拘束条件を利用し多段階生産プロセス用の複数のプラニングセッションを協調させる方法である。アウタープランナループモジュールは、プラニング済ジョブ及び未プラニングジョブのキューを管理しコンピュータ制御システムとやりとりを行う。本方法は、差し迫ったプラニング済ジョブがあるかどうかプラニング済ジョブキューを点検するステップと、この差し迫ったプラニング済ジョブについて時間的切り縮めプロセスを実行するステップと、当該差し迫ったプラニング済ジョブを生産向けに発行するステップと、を有する。更に、他に差し迫ったプラニング済ジョブがあるかどうか点検され、差し迫ったプラニング済ジョブがないと認められる場合には次のジョブについてのプランを作成させるべく個別ジョブプランナが呼び出され、個別ジョブプランナにより当該次のジョブについてのプランが作成される。
【００１２】
また、実施形態に係るシステムは、アウタープランナループモジュール及び個別ジョブプランナを有するコンピュータ制御システム内で実現され、スケジューリング制約条件が満足されるよう且つ個別ジョブプラニングにおける柔軟性が保持されるよう、時間的拘束条件を利用し多段階生産プロセス用の複数のプラニングセッションを協調させるシステムである。アウタープランナループモジュールは、プラニング済ジョブ及び未プラニングジョブのキューを管理しコンピュータ制御システムとやりとりを行う。本システムは、個別ジョブプランナが次のジョブのプラニングをやり終える前に始まるようスケジューリングされている差し迫ったプラニング済ジョブが１個でもあるかどうか、プラニング済ジョブキューを点検する手段を有する。この差し迫ったプラニング済ジョブに対しては時間的切り縮めプロセスが適用され、当該ジョブは生産向けに発行される。更に、他に差し迫ったプラニング済ジョブがあるかどうか点検され、差し迫ったプラニング済ジョブがないと認められる場合には次のジョブについてのプランを作成させるべく個別ジョブプランナが呼び出される。個別ジョブプランナは、アウタープランナループモジュールからジョブ仕様及び時間的拘束条件データベースを受け取り、次のジョブについてのプランをアウタープランナループモジュールに返送し、時間的拘束条件データベースを更新し、更新した時間的拘束条件データベースをアウタープランナループモジュールに返送する。
【００１３】
更に、実施形態に係る製造物は、コンピュータ可読プログラムコードが書き込まれているコンピュータ利用可能媒体を含む製造物である。このコンピュータ可読プログラムコードを、アウタープランナループモジュール及び個別ジョブプランナを有するコンピュータ制御システム内で実行させたとき当該コンピュータ制御システムにより実現される方法は、スケジューリング制約条件が満足されるよう且つ個別ジョブプラニングにおける柔軟性が保持されるよう、時間的拘束条件を利用し多段階生産プロセス用の複数のプラニングセッションを協調させる方法である。本方法は、差し迫ったプラニング済ジョブがあるかどうかプラニング済ジョブキューを点検するステップと、この差し迫ったプラニング済ジョブについて時間的切り縮めプロセスを実行するステップと、当該差し迫ったプラニング済ジョブを生産向けに発行するステップと、を有する。更に、他に差し迫ったプラニング済ジョブがあるかどうか点検され、差し迫ったプラニング済ジョブがないと認められる場合には次のジョブについてのプランを作成させるべく個別ジョブプランナが呼び出される。個別ジョブプランナは、アウタープランナループモジュールからジョブ仕様及び時間的拘束条件データベースを受け取り、次のジョブについてのプランをアウタープランナループモジュールに返送し、時間的拘束条件データベースを更新し、更新した時間的拘束条件データベースをアウタープランナループモジュールに返送する。
【発明を実施するための最良の形態】
【００１４】
以下、生産機械を制御すべくプラニング機能及びスケジューリング機能を併せ提供する方法及びシステムについて説明する。本方法及びシステムにおいては、個別ジョブをプラニングするための柔軟性を可能な限り高く保持しつつ、スケジューリング拘束条件が満足されるよう、複数のジョブについてのプラニングを協調させるタスクが、実行される。
【００１５】
本システム及び方法は、製造、印刷、組立等の多段階生産プロセス用の制御ソフトウエアに用いられ、複雑な経路に沿った複雑な動作の取扱に際して柔軟性の高いルーティング、最適な生産性、最適な負荷バランス等を実現するものである。なお、以下の記述においては、本システム及び方法についての一貫した理解が得られるようにするため、様々な細部に立ち入って説明を行っている部分がある。しかしながら、本件技術分野における習熟者（以下「当業者」）にとり明らかなことに、そのような細部についての説明がなくとも本システム及び方法を実施できる。他方で、本方法及びシステムの本質が不必要に曖昧にならないようにするため、実施の仕方の細部についてその詳細を示さないようにしている部分もある。
【００１６】
同時プラニング／スケジューリング機能は様々な計算環境に組み込むことができる。以下の記述の意図は、同時プラニング／スケジューリング方法及びシステムを実施乃至実現できる好適な計算環境について簡潔且つ一般的な記述を提供することにある。また、ネットワークに接続されたコンピュータにより実行されるプログラムモジュール等のコンピュータ可実行命令群を大筋として想定し、本方法及びシステムについて説明することとするが、かかる想定は本方法及びシステムの実施にとり必須のものではない。また一般に、ここでいうプログラムモジュールには、特定タスクを実行する又は特定抽象データタイプを実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造その他が、包含される。更に、当業者であれば認め得るように、本方法及びシステムは、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの若しくはプログラマブルな普及型電子回路、ネットワークに接続されたＰＣ、ミニコンピュータ、メインフレームコンピュータ等、また別のコンフィギュレーションを有するコンピュータシステムによっても、実施乃至実現できる。本方法及びシステムはまた、通信ネットワークを介してリンクされているリモートプロセシングデバイスにてタスクを実行する分散型計算環境においても、実施乃至実現できる。分散型計算環境におけるプログラムモジュールの組込先は、ローカルメモリストレージデバイス内とすることもできるしリモートメモリストレージデバイス内とすることもできる。
【００１７】
また、以下の説明では組込型システムとしての実施形態を説明するが、これは例示目的に過ぎず、本願に係る時間的拘束条件利用型複数プラニングセッション協調方法及びシステムの実施形態は組込型アプリケーションに限られるものではない。当業者であれば認め得るように、本時間的拘束条件利用型複数プラニングセッション協調方法及びシステムは、多くの複雑な制御問題、広範なプログラミング問題全般に対してソフトウエア的解を提供するという問題、モデルをその解から分離する適応的な問題等、拘束条件として定式化するのが専門的知識の表現上自然ないかなる問題に対しても、有用である。加えて、本方法及びシステムは、多くの計算環境を併用して実施することもできる。
【００１８】
本願における説明の都合上、いちどきにプラニングできるジョブは１個とする。各ジョブをプラニングするアプローチには様々なものがあり得るが、本方法によれば、時間的拘束ネットワーク（テンポラルコンストレイントネットワーク）を用いることによって、プランにおける時間的柔軟性を可能な限り高く維持できる。特に、同種の状況におけるプラニング／スケジューリングに関わる既存のアプローチでは、生成されたプラン内で時刻が特定されていたが、本方法では時刻が特定されない。即ち、本方法では、そのアクションを起こすべき特定の現実時刻を示すラベルに代えて、抽象的識別子（本願ではタイムポイントと呼ぶ）を示すラベルが、各プラン中のアクション（群）に付されることとなる。これらタイムポイントに関するデータベースはシステムコントローラによって保持され、またこのデータベースにはプラニングプロセスにより情報が追加される。プランナは、各プラン及びそれに係るタイムポイント（群）と共に、それらのタイムポイントに関わる拘束条件即ち時間的拘束条件を返送する。これらの時間的拘束条件を併用すれば、タイムポイントをいつ引き起こすべきかを特定することができる。例えば、ソースから紙を受け取ってデスティネーションへと送り出す印刷システムにおける時間的拘束条件は、「（先のシートを送り出せるようにするため）１３秒後に給紙せよ」「（シートＮ−１の印刷前に両面シートＮの第１面を挿入するため）１６秒前に面１に印刷せよ」といった条件である。或いは、「給紙１０秒後に印刷せよ」といった相対的条件であってもよい。
【００１９】
このように抽象的な時間的拘束条件を用いることにより、本方法によれば、プラニング／スケジューリングプロセスに関わる顕著な効果を提供できる。即ち、このような拘束条件であればタイムポイントの採り得る時刻がある単一の絶対時刻へと不用意乃至不必要に制約されないため、先にプラニングしたジョブに係るプランを時間的にシフトさせて新規プラニングオブジェクト向けの余地を空け、システム全体の生産性を好適なものにすることができる。タイムポイントを拘束するのは、プランを生産向けに発行する直前に必要な特定時間だけである。
【００２０】
プラニング／スケジューリングシステム全体の目的は、既知のジョブのうち最新のジョブの終了時刻を最大限早期化することである。この目的に近づくには、プラントに対して未送信（プラントにおいて未実行）の全プランについて再検討することなく、ある時刻にはある一つのジョブを、というように最適にプラニングすればよい。しかしながら、生産性を最適化するには先にプラニングしたジョブを再プラニングする必要があろうし、そのための計算は非常に高く付く計算になる。これに対して、本方法及びシステムによれば、時間的拘束条件を用いるようにしたため、従前のシステムより高い柔軟性を得ることができまた先にプラニングしたジョブを時間的にシフトさせることができる。先にプラニングしたジョブについての再プラニングは行わないでよい。
【００２１】
次に、本方法及びシステムの一実施形態に関して図面を参照して説明する（なおこの説明は発明の要旨を限定する趣旨のものではない）。図３に、時間的拘束条件利用型複数プラニングセッション協調方法及びシステムの一例を示す。まず、アウタープランナループモジュール３１０は、ジョブ仕様の受信、各ジョブについてのプランを作成させるための個別ジョブプランナの呼び出し、並びに生産に向けたジョブプランの発行を担当している。ジョブ仕様は、生産したいオブジェクトを特定する情報であり、ユーザインタフェース、上位システムコントローラその他の情報源から、非同期に又は周期的に到来する。また、個別ジョブプランナ３３０は、ジョブ仕様及び現在の時間的拘束条件データベースをアウタープランナループモジュール３１０から受け取り、そのジョブについてのプラン及び（新プランのタイムポイントについての情報を含む）更新した時間的拘束条件データベースをアウタープランナループモジュール３１０に返送する。
【００２２】
図４に、本方法における複数プラニングセッション協調化動作の流れの一例を詳細に示す。個別ジョブプランナを呼び出して新規ジョブのプラニングを行わせるのに先立ち、ステップ４３０においては、アウタープランナループモジュールが自分のプラニング済ジョブキューを点検し、キューイングされているジョブのうち何れかでも「まもなく」始まろうとしているかどうかを判別する。「まもなく」とは、個別ジョブプランナが次のジョブのプラニングをやり終える前に、という意味であって、様々に定義できる。例えば、現在の時刻から一定の時刻が経過するまでに、と定義してもよいし、ジョブ仕様についての統計的解析若しくは動的解析やジョブ仕様に基づく発見乃至知見により定義してもよい。個別ジョブプランナが予定より長い時間を費やした場合に個別ジョブプランナの実行を一時中断して後に再スタートさせることもできる。また、あるプランに含まれるタイムポイントが現在の時間的拘束条件から見てまもなく起こり得るのであれば、そのプランは「まもなく」始まる、といえる（時間的拘束条件データベースに蓄えられている時間的拘束条件が各タイムポイントの実現可能時間窓を規定しており従って所与のタイムポイントが起こり得る最先の時刻をこのデータベースから知ることができることを、思い起こされたい）。
【００２３】
プラニング済ジョブがまもなく始まるようスケジューリングされている場合は、ステップ４４０において、そのジョブに含まれる全てのタイムポイントにおける許容時間間隔を、ある特定の絶対時間（これは複数通りあり得る）まで強制的に短縮する。これによって、各タイムポイントを、引き起こされ得る最先の時刻ぴったりに起こるよう、拘束できる。後に述べるように、完全なアルゴリズムを用いて各タイムポイント毎に実現可能時間窓を保持しているため、この時間的切り縮めプロセスが波及して何かの不具合が生じることはなく、時間窓が短縮された後でも引き続きそのプランが有効なことが保証されている。
【００２４】
ステップ４５０においては、プラントに対してプランが発行され、制御の流れは、他に差し迫ったプラン（プラニング済ジョブ）があるかどうかを点検すべくステップ４３０に戻る。注記すべきことに、アウタープランナループモジュールがデータベース上に時間的拘束条件を追加できるのは、個別ジョブプランナに対する呼び出しと呼び出しの間だけである。これは、現実のものとなり得るジョブ終了時刻が新しい拘束条件の影響を受け、個別ジョブプランナがいくつかのプラン候補の中から何れかを選ぶのに使用する情報が無効となり得るためである。
【００２５】
何れのプラニング済ジョブもまもなく始まるものではないと判別された場合、ステップ４１０において次のジョブがプラニングされる。個別ジョブのプラニングには、各種の既知のプラニング手法を用いることができ、個別ジョブプランナは、事前計算されているプランに立ち返ることすら可能である。個別ジョブプランナに対して求められることは、ジョブ仕様及び現在の時間的拘束条件データベースを受け取り、ジョブが完遂されるよう作成したプラン及び時間的拘束条件データベース内の時間的拘束条件が互いに矛盾しないよう更新した時間的拘束条件データベースを、返送することだけである。
【００２６】
本方法の核である時間的拘束条件データベースはいくつかのやり方で構築することができるが、本願に記載の方法にて必要とされるのは、本方法にて用いる時間的拘束条件データベース更新方法が完全なものであることだけである。即ち、時間的拘束条件データベースは、新しい時間的拘束条件を追加する際不一致乃至矛盾らしきものがあったならそれを直ちに検出することができるような、ものでなければならない。また、各タイムポイントが採り得る時刻は、時間的拘束条件データベースにより正確に報告されねばならない。さもないと、作成完了済で実現可能と見られていたプランが実現不可能となり、先のジョブを再プラニングしなければならなくなる。時間的拘束条件データベースの更新には様々な既知のプロセスを利用できる。その例としては、非特許文献１に記載のアーク一致性プロセスがある。アーク一致性プロセスは、実現可能な時間間隔をデータベースによりタイムポイント毎に保持し、新しい拘束条件が追加されるときはいつでも、単純な方式乃至公式に従いこれら時間間隔を更新するプロセスである。また、他のプロセス例としては、非特許文献２により示唆されているプロセスがある。このプロセスでは、実現可能なポイント間関係のフルマトリクスが格納される。
【００２７】
また、時間的拘束条件データベースを用いてプラン中のタイムポイントの周りの実現可能時間窓を計算及び保持する、という処理を、プランがプラントに対して発行されるまで行っているため、引き続いてプランを入れるときに、そのプランと同じ資源を使用する先のプランに係るアクションをより後の時点にずらし、当該先のプランより早い時点にそのプランを入れる（割り込ませる）ことができる。それにより新たな目標についての終了時刻を早めることができるなら、このような順番決め（順番替え）が行われることとなろう。このようにすれば、例えば単純なジョブが与えられた後に複雑なジョブが与えられたときに、当該複雑なジョブをプラントにおいて早期に実行開始できる。正しい順番でジョブを仕上げられる限り順番を入れ替えてスタートさせてもよく、これはしばしば生産効率（生産利得）を向上させるものである。
【図面の簡単な説明】
【００２８】
【図１】製造プラント例を示す模式図である。
【図２】図１に示した製造プラント内で可能なジョブの流れ方を示す模式図である。
【図３】同時プラニング／スケジューリングシステムの一実施形態を示す図である。
【図４】ハイブリッドプランナにおける動作の流れの例を詳細に示すフロー図である。
【符号の説明】
【００２９】
３１０  アウタープランナループモジュール、３３０  個別ジョブプランナ。
【図１】
2005339552.tif 000003
【図２】
2005339552.tif 000004
【図３】
2005339552.tif 000005
【図４】
2005339552.tif 000006