(57)【特許請求の範囲】
【請求項１】
所定のルールを用いて複数のジョブ候補から適切なジョブを選択し、時間軸上で作業工程を管理するガントチャート情報へ選択した前記ジョブを割り付けるスケジューリング装置において、
ガントチャート情報へ割り付ける各ジョブを記憶するジョブ記憶部と、
所定の論理演算で複合された複数の前記ルールからなる複合ルールを記憶する複合ルール記憶部と、
この複合ルール記憶部に記憶されている複合ルールに基づき、その複合ルールで指定されている前記ルールを前記論理演算に従って用いることにより、前記ジョブ記憶部に記憶されている各ジョブから割付候補となるジョブを選択する論理演算処理部と、
この論理演算処理部で選択されたジョブをガントチャート情報へ割り付けるガントチャート割付部とを備え、
前記論理演算処理部は、
個々の論理演算ごとに設けられ、指定されたルールをそれぞれの論理演算に従って用いることによりジョブ候補の絞り込みを行う複数の論理フィルタからなるフィルタ処理部と、
前記複合ルール記憶部から取り出した複合ルールで用いている論理演算を解析し、前記フィルタ処理部のうちその論理演算に対応する論理フィルタへ、前記複合ルールで指定されたルールを論理演算に従って用いるよう論理演算処理を指示するロジック解析部とを有することを特徴とするスケジューリング装置。
【請求項２】
請求項１記載のスケジューリング装置において、
前記フィルタ処理部は、
指定されたルールで用いるジョブ選択基準に基づき、複数のジョブを複数のクラスタに分割するとともに、いずれかのクラスタに属するジョブを選択するクラスタフィルタを、前記論理フィルタの１つとして有することを特徴とするスケジューリング装置。
【請求項３】
請求項１記載のスケジューリング装置において、
前記複合ルール記憶部は、
ガントチャート情報で管理する作業工程種別に特有の複合ルールを記憶する特定アプリケーション用複合ルール記憶部と、
各作業工程種別に共通の複合ルールを記憶する共通アプリケーション用複合ルール記憶部とを有することを特徴とするスケジューリング装置。
【請求項４】
所定のルールを用いて複数のジョブ候補から適切なジョブを選択し、時間軸上で作業工程を管理するためのガントチャート情報へ選択したジョブを割り付けるスケジューリング処理手順を実行するプログラムであって、
所定の論理演算で複合された複数の前記ルールからなる複合ルールを記憶する複合ルール記憶部から複合ルールを取り込む第１のステップと、
取り込んだ前記複合ルールで指定されている前記ルールを前記論理演算に従って用いることにより、ガントチャート情報へ割り付ける各ジョブから割付候補となるジョブを選択する第２のステップと、
選択されたジョブをガントチャート情報へ割り付ける第３のステップとを実行し、
前記第２の実行ステップでは、個々の論理演算ごとに設けられた論理フィルタで、指定されたルールをそれぞれの論理演算に従って用いることによりジョブ候補の絞り込みを行うステップと、前記複合ルール記憶部から取り出した複合ルールで用いている論理演算を解析し、前記フィルタ処理部のうちその論理演算に対応する論理フィルタへ、前記複合ルールで指定されたルールを論理演算に従って用いるよう論理演算処理を指示するステップとを実行するためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スケジューリング装置およびプログラムに関し、特に所定のルールを用いて複数のジョブ候補から適切なジョブを選択し、選択したジョブを時間軸上で作業工程を管理するガントチャート情報へ割り付けるスケジューリング装置およびプログラムに関するものである。
【０００２】
【従来の技術】
工場などの生産現場において、機械や装置など多数の生産設備を効率よく利用する場合、これら生産設備で行う仕事すなわちジョブを時間軸上に割り付けて管理するガントチャートが用いられる。
このガントチャートは、図１１に示すように、横軸にタイムフレーム（時間軸）をとり、縦軸に生産設備（リソース）や製品（オーダー）をとって、それぞれ遂行すべきジョブに関する時間的流れを棒図表の形で図表化したものである。このようなガントチャートを前もって作成しておくことにより、ジョブの効率的な処理が実現される。
【０００３】
ガントチャートを作成する場合、時間軸上に予め配置された所定の割付タイミングごとに、次にどの生産設備に対して、処理待ち状態にある複数のジョブ候補からどのようなジョブを選択して割り付けるかを決定する必要があり、この決定をディスパッチング（dispatching）という。
このようなディスパッチングでは、作業員が経験に基づき手作業でジョブをガントチャートに割り付ける場合が多い。従来、このディスパッチングの自動化を目的として、例えば納期が迫っているジョブから優先して割り当てるというような、所定の単一ルールに基づきジョブを並び替えるスケジューリング装置も利用されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、このような従来のスケジューリング装置では、単一ルールに基づいて、処理待ち状態にある複数のジョブ候補を並び替えて選択しているため、それぞれの作業工程の生産制約を遵守しながら、ガントチャートの管理対象となるそれぞれの作業工程について柔軟に対応することができず、適切にジョブを割り付けることができないという問題点があった。例えば、互いの処理順序が規定されているような複数の生産設備を用いる作業工程や異なる種別のジョブを一括して取り扱う作業工程では、単一ルールだけで適切にジョブを割り付けられない場合もあり、また結果としてあまり効率よく生産設備を利用できていない場合もあるため、このような場合、実際には細かな修正が必要となり、手作業とさほど変わらない結果しか得られなかった。
本発明はこのような課題を解決するためのものであり、それぞれの作業工程に対して柔軟に対応でき、ジョブを適切にガントチャート情報へ割り付けることができるスケジューリング装置およびプログラムを提供することを目的としている。
【０００５】
【課題を解決するための手段】
このような目的を達成するために、本発明にかかるスケジューリング装置は、所定のルールを用いて複数のジョブ候補から適切なジョブを選択し、時間軸上で作業工程を管理するガントチャート情報へ選択したジョブを割り付けるスケジューリング装置において、ガントチャート情報へ割り付ける各ジョブを記憶するジョブ記憶部と、所定の論理演算で複合された複数のルールからなる複合ルールを記憶する複合ルール記憶部と、この複合ルール記憶部に記憶されている複合ルールに基づき、その複合ルールで指定されているルールを論理演算に従って用いることにより、ジョブ記憶部に記憶されている各ジョブから割付候補となるジョブを選択する論理演算処理部と、この論理演算処理部で選択されたジョブをガントチャート情報へ割り付けるガントチャート割付部とを備えるものである。そして、論理演算処理部については、個々の論理演算ごとに設けられ、指定されたルールをそれぞれの論理演算に従って用いることによりジョブ候補の絞り込みを行う複数の論理フィルタからなるフィルタ処理部と、複合ルール記憶部から取り出した複合ルールで用いている論理演算を解析し、フィルタ処理部のうちその論理演算に対応する論理フィルタへ、複合ルールで指定されたルールを論理演算に従って用いるよう論理演算処理を指示するロジック解析部とを用いて構成したものである。
【０００６】
このときフィルタ処理部に、指定されたルールで用いるジョブ選択基準に基づき、複数のジョブを複数のクラスタに分割するとともに、いずれかのクラスタに属するジョブを選択するクラスタフィルタを、論理フィルタの１つとして設けてもよい。
【０００７】
複合ルール記憶部で各種複合ルールを記憶する場合、ガントチャート情報で管理する作業工程種別に特有の複合ルールを記憶する特定アプリケーション用複合ルール記憶部と、各作業工程種別に共通の複合ルールを記憶する共通アプリケーション用複合ルール記憶部とを設けて、作業工程種別に特有の複合ルールと各作業工程種別に共通の複合ルールを区別して記憶してもよい。
【０００８】
また、本発明にかかるプログラムは、所定のルールを用いて複数のジョブ候補から適切なジョブを選択し、時間軸上で作業工程を管理するためのガントチャート情報へ選択したジョブを割り付けるスケジューリング処理手順を実行するプログラムであって、所定の論理演算で複合された複数のルールからなる複合ルールを記憶する複合ルール記憶部から複合ルールを取り込む第１のステップと、取り込んだ複合ルールで指定されているルールを論理演算に従って用いることにより、ガントチャート情報へ割り付ける各ジョブから割付候補となるジョブを選択する第２のステップと、選択されたジョブをガントチャート情報へ割り付ける第３のステップとを実行し、第２の実行ステップでは、個々の論理演算ごとに設けられた論理フィルタで、指定されたルールをそれぞれの論理演算に従って用いることによりジョブ候補の絞り込みを行うステップと、複合ルール記憶部から取り出した複合ルールで用いている論理演算を解析し、フィルタ処理部のうちその論理演算に対応する論理フィルタへ、複合ルールで指定されたルールを論理演算に従って用いるよう論理演算処理を指示するステップとを実行するためのものである。
【０００９】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
図１は本発明の一実施の形態にかかるスケジューリング装置を示すブロック図である。
このスケジューリング装置１０は、全体としてパソコンなどの情報処理装置からなり、所定の処理プログラムを実行するＣＰＵを用いて実現される制御部２、各種情報を記憶するハードディスクやメモリあるいは記録媒体で実現される記憶部１、制御部２での処理結果を画面で表示出力する画面表示部４、および作業員が制御部２へ各種指示を入力するための操作入力部５が設けられている。
【００１０】
制御部２には、記憶部１に記憶されている複合ルールに基づく論理演算を行うことにより、所望の作業工程（産業分野あるいは生産形態）を管理するためのガントチャート情報へ割り付けるジョブ候補を選択する論理演算処理部２Ａ、この論理演算処理部２Ａで最終的に選択されたジョブをガントチャート情報に割り付けるガントチャート割付部２Ｂ、このガントチャート記憶部２Ｂに記憶されているガントチャート情報の内容に基づき作業工程の状態を逐次更新管理する状態管理部２Ｃが設けられている。これら論理演算処理部２Ａ、ガントチャート割付部２Ｂおよび状態管理部２Ｃの各機能処理部は、ＣＰＵやメモリなどのハードウェア資源と後述の処理プログラムからなるソフトウェア資源とが協動することにより実現されている。
【００１１】
本実施の形態では、単一の基準でジョブを選択する複数のルールを、所定の論理演算で複合し、これを複合ルールとしてジョブの選択に用いている。
記憶部１には、このような複合ルールを記憶する複合ルール記憶部１１、ガントチャート情報へ割り付ける各ジョブを記憶するジョブ記憶部１２、論理演算処理部２Ａで選択されたジョブ候補を一時的に記憶するジョブ候補記憶部１３、論理演算処理部２Ａで最終的に選択されたジョブが割り付けられるガントチャート情報を記憶するガントチャート記憶部１４が設けられている。なお、ガントチャート情報では、各ジョブごとに、少なくともそのジョブを処理する生産設備、およびそのジョブを実行するタイミングを示す情報が関連付けられて記述されている。
【００１２】
このほか、記憶部１には、生産設備の処理能力や作業手順などの各種作業工程条件や状態管理部２Ｃで逐次更新される作業工程の状態を記憶する工程情報記憶部１５、論理演算処理部２Ａおよびガントチャート割付部２Ｂを実現するために制御部２で実行される処理プログラムを記憶するプログラム記憶部１６が設けられている。なお、この処理プログラムは、ＣＤ−ＲＯＭ、フロッピーディスク、メモリカードなどの記憶媒体１７に保存して取り扱い、全体としてパソコンなどの情報処理装置からなるスケジューリング装置１０の記憶媒体インターフェース部（図示せず）を介してプログラム記憶部１６へ読み込むようにしてもよい。
また、複合ルール記憶部１１には、ガントチャート情報で管理する作業工程種別に特有の複合ルールを記憶する特定アプリケーション用複合ルール記憶部１１Ａと、各作業工程種別に共通の複合ルールを記憶する共通アプリケーション用複合ルール記憶部１１Ｂとが設けられている。
【００１３】
図２に論理演算処理部２Ａの詳細ブロック図を示す。論理演算処理部２Ａには、指定されたルールをそれぞれの論理演算に従って用いることによりジョブ候補の絞り込みを行う複数の論理フィルタからなるフィルタ処理部２２、複合ルール記憶部１１に記憶されている複合ルール文を読み出し、その複合ルール文で用いられている論理演算を解析し、フィルタ処理部２２のうちその論理演算に対応する処理部へ、複合ルールで指定されたルールを用いた論理演算処理を指示するロジック解析部２１、フィルタ処理部２２の処理結果に応じてジョブ候補の選定終了を判定する候補選定終了判定部２３が設けられている。
【００１４】
フィルタ処理部２２には、論理フィルタとして、所定の条件に応じてルールを切り替えて適用するＩＦ＿ＴＨＥＮフィルタ３１、所定ルールで用いるジョブ選択基準に基づき各ジョブを複数のクラスタに分割するとともに、そのクラスタ単位でジョブを選択するΩフィルタ３２、２つのルールを階層的に適用するＡＮＤフィルタ３３、２つのルールでそれぞれ選択したジョブのいずれか一方を作業員の指示に応じて選択するＯＲフィルタ３４、２つのルールに共通のジョブを選択する∧フィルタ３５、２つのルールで選択されたすべてのジョブを選択する∨フィルタ３６、所定ルールの逆論理ルールを適用する¬フィルタ３７、基本的な単一ルールに基づきジョブを選択する基本ルール処理部３８が設けられている。なお、フィルタ処理部２２を構成する個々の論理フィルタについては、上記各フィルタに限定されるものではなく、必要に応じて不要なフィルタを削除してもよく、他の機能を有するフィルタを追加してもよい。
【００１５】
次に、図３を参照して、本実施の形態にかかるスケジューリング装置の動作について説明する。図３はジョブ割付処理手順を示すフローチャートである。以下では、所定のジョブ割付タイミングにおけるジョブ割付処理動作について説明する。なお、制御部２では、予め記憶部１のプログラム記憶部１６から処理プログラムを読み込んで実行しており、論理演算処理部２Ａ、ガントチャート割付部２Ｂおよび状態管理部２Ｃの各機能処理部での処理動作が実現されているものとする。また、ジョブ候補記憶部１３には、ジョブ記憶部１２に記憶されているジョブのすべてまたは一部がすでに格納されているものとする。
【００１６】
まず、論理演算処理部２Ａのロジック解析部２１では、複合ルール記憶部１１から複合ルール文を取り込んで（ステップ６０：第１のステップ）、その複合ルール文で使用されている論理演算を解析する（ステップ６１）。そして、解析結果に基づいて、フィルタ処理部２２のうち、複合ルール文で使用されている論理演算に対応する論理フィルタに対して、その複合ルール文に含まれるルールを用いた論理演算処理を指示する（ステップ６２）。なお、ロジック解析部２１では、取り込んだ複合ルール文が複数の論理演算の組み合わせから構成されている場合、公知の演算式計算方法に基づく順序でそれぞれの論理演算に対応する論理フィルタに対してフィルタ処理を指示する。
【００１７】
この指示に応じてフィルタ処理部２２の論理フィルタ３１〜３７のいずれかで、複合ルール文に含まれるルールを論理演算に従って適用することにより、ジョブ候補記憶部１３に記憶されている各ジョブ候補を絞り込むフィルタリング処理を行い、その処理結果を候補選定終了判定部２３へ通知する（ステップ６３：第２のステップ）。
候補選定終了判定部２３では、フィルタ処理部２２からの処理結果に応じて、フィルタリング処理によりジョブ候補が１つに絞り込まれ、ジョブ候補の選定が終了したかどうか判定する（ステップ６４）。そして、その選定終了に応じて（ステップ６４：ＹＥＳ）、最終的に選定されたジョブをガントチャート割付部２Ｂへ渡す。ガントチャート割付部２Ｂでは、これに応じて対応する割付タイミング位置にそのジョブの割り付けを行い、更新されたガントチャート情報をガントチャート記憶部１４へ格納し（ステップ６５：第３のステップ）、一連の処理を終了する。
【００１８】
一方、ステップ６４において、ジョブ候補が複数存在し、その選定が終了していない場合は（ステップ６４：ＮＯ）、すべての複合ルール文に対する処理が終了していない場合に（ステップ６６：ＮＯ）、ステップ６０へ戻って次の複合ルール文に対する処理を継続する。
また、すべての複合ルール文に対する処理が終了した場合は（ステップ６６：ＮＯ）、画面表示部４を制御して、作業員に対して残存するジョブ候補からいずれかのジョブの選択を促す画面表示を出力する（ステップ６７）。そして、操作入力部５を介した作業員からの指示に応じてジョブを最終選択し（ステップ６８）、ステップ６５へ移行して、ジョブの割り付けを行う。
【００１９】
このように、単一ルールを論理的に複合してジョブ候補の選択に適用するようにしたので、従来のように１つの単一ルールに基づき、処理待ち状態にある複数のジョブ候補を並び替えて選択する場合と比較して、極めて高度な複合ルールを実現することができる。したがって、それぞれの作業工程に対して柔軟に対応でき、最適なジョブをガントチャート情報へ割り付けることができる。
【００２０】
また、複合ルール記憶部において各種複合ルールを記憶する場合、ガントチャート情報で管理する作業工程種別に特有の複合ルールを記憶する特定アプリケーション用複合ルール記憶部１１Ａと、各作業工程種別に共通の複合ルールを記憶する共通アプリケーション用複合ルール記憶部１１Ｂとを設けて、作業工程種別に特有の複合ルールと各作業工程種別に共通の複合ルールを区別して記憶するようにしてもよい。
これにより、どのようなアプリケーションにも使用できる共通ルールを、実際にスケジューリングを行う特定アプリケーションごとに入力し直す必要がなくなり、汎用性に富んだスケジューリング装置を容易に実現できる。また、ルールを分類できることから、ルール数が多くなった場合でも、その修正や管理を容易に行うことができる。
【００２１】
次に、フィルタ処理部２２を構成する各論理フィルタについて説明する。
まず、ＩＦ＿ＴＨＥＮフィルタ３１について説明する。図４はＩＦ＿ＴＨＥＮフィルタを示す説明図である。ＩＦ＿ＴＨＥＮフィルタ３１は、所定の条件に応じてルールを切り替えて適用する分岐フィルタである。
例えば、割付タイミングにおいて装置＃１でジョブａが終了していない場合は、ジョブ候補のうち後から登録された（生じた）ジョブを優先して装置＃２で処理し、ジョブａが終了していた場合は、先に登録されたジョブから優先して装置＃２で処理したいという命題があったとする。このような場合は、<Rule#1>に示すように、ジョブａが終了したかどうか、すなわち「ａ is Finished」を条件としてＩＦ＿ＴＨＥＮフィルタ３１を用いて、条件成立（THEN）の場合は、ルールＦＩＦＯ（First In First Out）をジョブ選択に適用し、条件不成立（ELSE）の場合は、ルールＬＩＦＯ（Last In First Out）をジョブ選択に適用すればよい。
【００２２】
これにより、動作１１１に示すように、割付タイミングＴがジョブａ終了前であった場合は、ルールＬＩＦＯに基づいてジョブ候補ｂ，ｃのうち後から登録されたジョブｃが優先して選択される。また、動作１１２に示すように、割付タイミングＴがジョブａ終了後であった場合は、ルールＦＩＦＯに基づいてジョブ候補ｂ，ｃのうち先に登録されたジョブｂが優先して選択される。なお、ルールＦＩＦＯ，ＬＩＦＯなどの単一ルールについては、個別のフィルタから基本ルール処理部３８を呼び出してフィルタリング処理される。
このように、ＩＦ＿ＴＨＥＮフィルタ３１を用いることにより、所定の条件下では適用するルールを切り替えることができる。なお、単一ルールの代わりに複合ルールを切り替えるようにしてもよい。
【００２３】
次に、Ωフィルタ３２について説明する。図５はΩフィルタを示す説明図である。Ωフィルタ３２は、所定ルールで用いるジョブ選択基準に基づき、複数のジョブを複数のクラスタに分割するとともに、いずれかのクラスタに属するすべてのジョブを選択するクラスタフィルタである。
例えば、比較的納期が迫っているジョブを選択したいという命題があったとする。このような場合は、<Rule#2>に示すように、個々のジョブのうち納期余裕時間が最も短いジョブを選択するルールＥＤＤ（Earliest Due Date）をΩフィルタ３２に従って適用すればよい。
【００２４】
これにより、動作１２１に示すように、各ジョブａ〜ｈがそれぞれの納期余裕時間順でこの場合は２つのクラスタに分割され、そのうち最も納期余裕時間の短いクラスタが選択される。
このように、Ωフィルタ３２を用いることにより、従来のようにいずれか１つのジョブを選択する単一ルールと比較して、ジョブ選択条件に幅を持たせることができ、後述のようにこのΩフィルタ３２を他のルールとさらに複合させることにより、多彩なルールを実現できる。
なお、ΩｎＥＤＤは、ルールＥＤＤに基づきｎ個のクラスタに分割する複合ルールであるが、パラメータｎの利用方法としては、クラスタ数に限定されるものではなく、例えば選択する最大ジョブ数としてｎを用いてもよく、所望のクラスタを規定するためのしきい値としてｎを用いてもよい。
【００２５】
次に、ＡＮＤフィルタ３３について説明する。図６はＡＮＤフィルタを示す説明図である。ＡＮＤフィルタ３３は、２つのルールを階層的に適用する階層選択フィルタである。
例えば、納期を遵守しつつ、できるだけ在庫を少なくしたいという命題があったとする。このような場合は、<Rule#3>に示すように、個々のジョブのうち納期余裕時間が最も短いジョブを選択するルールＥＤＤをΩフィルタ３２に従って適用する複合ルールと、ジョブの作業時間が最も短いジョブを選択するルールＳＰＴ（Shortest Processing Time）とを、ＡＮＤフィルタ３３に従って適用すればよい。
【００２６】
これにより、動作１３１に示すように、まずΩＥＤＤで納期が迫っているジョブクラスタが選択され、その選択結果のうちから、動作１３２に示すように、ルールＳＰＴで最も作業時間の短いジョブｃが選択される。
このように、ＡＮＤフィルタ３３を用いることにより、従来の単一ルールが持つ個々の特徴をうまく組み合わせることができ、より製造現場の要求に合致した効果的なルールを実現できる。
【００２７】
次に、ＯＲフィルタ３４について説明する。図７はＯＲフィルタを示す説明図である。ＯＲフィルタ３４は、２つのルールでそれぞれ選択したジョブのいずれか一方を作業員の指示に応じて選択する選択指示フィルタである。
例えば、できるだけ総生産時間を短くしたいという命題があったとする。このような場合は、<Rule#4>に示すように、個々のジョブのうち余裕時間比が最も小さいジョブを選択するルールＳＤＴ（Smallest ratio obtained by Dividing the processing Time of the imminent operation by the total processing time）と、ジョブの余裕時間長が最も短いジョブを選択するルールＳＩＯ（Shortest Imminent Operation time）とを、ＯＲフィルタ３４に従って適用すればよい。
【００２８】
これにより、動作１４１に示すように、ルールＳＤＴで余裕時間比が最も小さいジョブｃが選択され、また動作１４２に示すように、ルールＳＩＯで最も作業時間の短いジョブａが選択される。そして、動作１４３に示すように、これら選択結果のうち、いずれかを選択するように画面表示部４へ表示出力され、これに応じていずれか一方のジョブが、作業員による操作入力部５からの選択指示に基づき選択される。
このように、ＯＲフィルタ３４を用いることにより、必要に応じて作業員の指示を反映させることができ、極めて柔軟なルールを実現できる。
【００２９】
次に、∧フィルタ３５について説明する。図８は∧フィルタを示す説明図である。∧フィルタ３５は、２つのルールでそれぞれ選択したジョブに共通するジョブを選択する論理積フィルタである。
例えば、装置＃１の稼働率を上げたいという命題があったとする。このような場合は、<Rule#5>に示すように、個々のジョブのうち残作業時間が最も大きいジョブを選択するルールＭＲＯ（Most Remaining Operation）をΩフィルタ３２に従って適用する複合ルールと、装置＃１で行えるジョブを選択する”Ｅ１”ルール（発明者らにより作成したルール）とを、∧フィルタ３５に従って適用すればよい。
【００３０】
これにより、動作１５１に示すように、ルールΩ2ＭＯＲで残作業時間が大きいジョブクラスタが選択され、また動作１５２に示すように、ルール”Ｅ１”で装置＃１で行えるジョブが選択される。そして、動作１５３に示すように、これら選択結果のうち、両方の選択結果に共通するジョブａ，ｄが選択される。
このように、∧フィルタ３５を用いることにより、従来の単一ルールが持つ個々の特徴をうまく組み合わせることができ、より製造現場の要求に合致した効果的なルールを実現できる。
【００３１】
次に、∨フィルタ３６について説明する。図９は∨フィルタを示す説明図である。∨フィルタ３６は、２つのルールでそれぞれ選択したすべてのジョブを選択する論理和フィルタである。
例えば、特急品または納期の迫っている製品を優先したいという命題があったとする。このような場合は、<Rule#6>に示すように、個々のジョブのうち特急品に関するジョブを選択するルール”ＴＰＰ”（Top Priority Product：発明者らにより作成したルール）をΩフィルタ３２に従って適用する複合ルールと、納期余裕時間が最も短いジョブを選択するルールＥＤＤをΩフィルタ３２に従って適用する複合ルールとを、さらに∨フィルタ３６に従って適用すればよい。
【００３２】
これにより、動作１６１に示すように、ルールΩ”ＴＰＰ”で特急品に関するジョブクラスタが選択され、また動作１６２に示すように、ルールΩＥＤＤで納期余裕時間が少ないジョブクラスタが選択される。そして、動作１６３に示すように、これら選択結果に含まれるすべてのジョブａ，ｂ，ｃ，ｄ，ｆが選択される。
このように、∨フィルタ３６を用いることにより、従来の単一ルールが持つ個々の特徴をうまく組み合わせることができ、より製造現場の要求に合致した効果的なルールを実現できる。
【００３３】
次に、¬フィルタ３７について説明する。図１０は¬フィルタを示す説明図である。¬フィルタ３６は、任意のルールが有する選択基準の逆論理でジョブを選択する逆論理フィルタである。
例えば、最も作業時間の長いジョブを選択したいという命題があったとする。このような場合は、<Rule#7>に示すように、個々のジョブのうち作業時間が最も短いジョブを選択するルールＳＰＴを、¬フィルタ３７に従って適用すればよい。
これにより、動作１７１に示すように、ルールＳＰＴの選択基準の逆論理、すなわち作業時間が最も長いジョブが選択される。このように、¬フィルタ３７を用いることにより、従来の単一ルールでは用意されていなかった新たなルールを容易に作成することができ、多彩なルールを実現できる。
【００３４】
以上の説明では、作業工程について、ある程度の期間、例えば１週間分や１ヶ月分の期間をもって予めスケジューリング（オフライン・スケジューリング）を行う場合を例として説明したが、これに限定されるものではない。例えば、制御部２の状態管理部２Ｃ（図１参照）で、実際に稼働している作業工程の状況を逐次管理して、その稼働状況を示す工程情報を工程情報記憶部１５へ格納したり、処理待ちジョブをジョブ記憶部１３やジョブ候補記憶部１３へ格納することにより、作業工程の稼働と平行したスケジューリング（オンライン・スケジューリング）を行うことも可能である。
【００３５】
また以上では、工場などの生産現場における作業工程を管理するガントチャート情報に対するジョブの割り付けを例として説明したが、作業工程としてこのような物品・情報・ソフトウェアを生産する場合に限定されるものではなく、各種の産業分野や生産形態を管理するガントチャート情報、例えば、任意のサービスを提供する作業工程や任意のプロジェクトの進捗を管理するガントチャート情報に対するジョブの割り付けにも本発明を適用でき、前述と同様の作用効果が得られる。
【００３６】
【発明の効果】
以上説明したように、本発明は、複合ルール記憶部に記憶されている複合ルールに基づき、その複合ルールで指定されているルールを論理演算に従って用いることにより、ジョブ記憶部に記憶されている各ジョブから割付候補となるジョブを選択する論理演算処理部を設け、この論理演算処理部で選択されたジョブをガントチャート情報へ割り付け、論理演算処理部については、個々の論理演算ごとに設けられ、指定されたルールをそれぞれの論理演算に従って用いることによりジョブ候補の絞り込みを行う複数の論理フィルタからなるフィルタ処理部と、複合ルール記憶部から取り出した複合ルールで用いている論理演算を解析し、フィルタ処理部のうちその論理演算に対応する論理フィルタへ、複合ルールで指定されたルールを論理演算に従って用いるよう論理演算処理を指示するロジック解析部とを用いて構成するようにしたので、従来のように１つの単一ルールに基づき、処理待ち状態にある複数のジョブ候補を並び替えて選択する場合と比較して、極めて高度な複合ルールに基づき適切なスケジューリングを実現することができる。したがって、それぞれの作業工程の生産制約を遵守しながら、それぞれの作業工程に対して柔軟に対応でき、最適なジョブをガントチャート情報へ割り付けることができる。
【００３７】
また、複合ルール記憶部に、ガントチャート情報で管理する作業工程種別に特有の複合ルールを記憶する特定アプリケーション用複合ルール記憶部と、各作業工程種別に共通の複合ルールを記憶する共通アプリケーション用複合ルール記憶部とを設け、作業工程種別に特有の複合ルールと各作業工程種別に共通の複合ルールを区別して記憶するようにしたので、どのようなアプリケーションにも使用できる共通ルールを、実際にスケジューリングを行う特定アプリケーションごとに入力し直す必要がなくなり、汎用性に富んだスケジューリング装置を容易に実現できる。また、ルールを分類できることから、ルール数が多くなった場合でも、その修正や管理を容易に行うことができる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態にかかるスケジューリング装置を示すブロック図である。
【図２】  論理演算処理部の詳細を示すブロック図である。
【図３】  ジョブ割付処理手順を示すフローチャートである。
【図４】  ＩＦ＿ＴＨＥＮフィルタを示す説明図である。
【図５】  Ωフィルタを示す説明図である。
【図６】  ＡＮＤフィルタを示す説明図である。
【図７】  ＯＲフィルタを示す説明図である。
【図８】  ∧フィルタを示す説明図である。
【図９】  ∨フィルタを示す説明図である。
【図１０】  ¬フィルタを示す説明図である。
【図１１】  ガントチャートを示す説明図である。
【符号の説明】
１０…スケジューリング装置、１…記憶部、１１…複合ルール記憶部、１２…ジョブ記憶部、１３…ジョブ候補記憶部、１４…ガントチャート記憶部、１５…工程情報記憶部、１６…処理プログラム記憶部、１７…記憶媒体、２…制御部、２Ａ…論理演算処理部、２１…ロジック解析部、２２…フィルタ処理部、２３…候補選定終了判定部、２Ｂ…ガントチャート割付部、２Ｃ…状態管理部、４…画面表示部、５…操作入力部、３１…ＩＦ＿ＴＨＥＮフィルタ、３２…Ωフィルタ、３３ＡＮＤフィルタ、３４…ＯＲフィルタ、３５…∧フィルタ、３６…∨フィルタ、３７…¬フィルタ、３８…基本ルール処理部。
【図１】
0004139064.tif 000002
【図２】
0004139064.tif 000003
【図３】
0004139064.tif 000004
【図４】
0004139064.tif 000005
【図５】
0004139064.tif 000006
【図６】
0004139064.tif 000007
【図７】
0004139064.tif 000008
【図８】
0004139064.tif 000009
【図９】
0004139064.tif 000010
【図１０】
0004139064.tif 000011
【図１１】
0004139064.tif 000012