(57)【要約】【課題】スケジュール作成者の負荷を軽減し、納期達成率を向上させることができるスケジューリング方法及びプログラムを提供する。【解決手段】ロット情報、ジョブ情報、資源情報、資源処理能力、稼働時間内カレンダー及び稼働時間外カレンダーを登録し、全ジョブの遅れ解消可否フラグをＴｒｕｅとする（ステップＳ１、Ｓ２）。次に、各ジョブの最遅終了時刻を計算する（ステップＳ３）。稼働時間カレンダー及び稼働時間外カレンダーに対してスケジュールを作成し（ステップＳ４）、全ロットの納期が達成、または遅れジョブの遅れ解消可否フラグがＦａｌｓｅで解消不能と判断されるまで、稼働時間外カレンダーに対して稼働時間外計画を設定して、再度稼動時間計画を設定し直す（ステップＳ５〜Ｓ９）。【選択図】　　　　図１
2004145814.tif 000002
【特許請求の範囲】
【請求項１】
複数のロットについて、少なくともロットの納期の情報を含んだロットの情報を記憶するロット情報記憶ステップと、
前記各ロットを通過する工程順に展開した複数のジョブについて、ジョブの特性を記憶するジョブ情報記憶ステップと、
前記複数のジョブのいずれかを処理することが可能な資源の処理能力を記憶する資源処理能力記憶ステップと、
前記各資源について、時間内労働の勤務日及び勤務時間が登録される稼動時間カレンダーを記憶する稼動時間カレンダー記憶ステップと、
前記各資源について、時間外労働が可能な勤務日及び勤務時間が登録される稼働時間外カレンダーを記憶する稼働時間外カレンダー記憶ステップと、
前記各ジョブについて、前記ジョブの特性及び前記資源の処理能力に基づいて、前記納期を達成するために完了すべき最遅終了時刻を計算する最遅終了時刻計算ステップと、
前記ジョブの特性及び前記資源の処理能力に基づいて、各ジョブを前記資源に仮に割り付けて、稼動時間カレンダー及び稼働時間外カレンダーに対してスケジュールを作成するスケジュール作成ステップと、
前記スケジュールにおいて、前記各ジョブについて前記最遅終了時刻を満たすか評価する評価ステップと、
前記評価結果により最遅終了時刻を満たさないと判断された各ジョブについて、最遅終了時刻を満たす又は最遅終了時刻を満たすことが不能と判断されるまで、当該ジョブが割り付けられた資源に対して稼働時間外カレンダーに時間外労働日を設定する稼働時間外計画作成ステップと、を備えていることを特徴とするスケジューリング方法。
【請求項２】
前記稼働時間外計画作成ステップは、
前記各資源について、前記評価結果により最遅終了時刻を満たさないと判断されたジョブの中で、前工程のジョブの終了時刻が最も早いジョブを稼働時間外割付対象ジョブと設定する稼働時間外割付対象ジョブ設定ステップと、
前記稼働時間外割付対象ジョブの前工程のジョブが割り付けられている日を割付候補日とする割付候補日抽出ステップと、
前記割付候補日が時間外労働可能かどうかを判断して、時間外労働可能と判断されるまで割付候補日を１日ずつ後ろにずらして割付日とする割付日抽出ステップと、
前記割付日と前記稼働時間外割付対象ジョブが割り付けられている日とが異なる場合、前記稼働時間外割付対象ジョブを処理する資源について、稼働時間外カレンダーの前記割付日を時間外労働日として設定する時間外労働日設定ステップと、
前記割付日と前記稼働時間外割付対象ジョブが割り付けられている日とが同じ場合、前記稼働時間外割付対象ジョブ及び前記稼働時間外割付対象ジョブと同資源で同日に開始予定となっているジョブについて、最遅終了時刻を満たすことが不能であることをジョブ情報として記憶するジョブ情報修正ステップと、を備えていることを特徴とする請求項１に記載のスケジューリング方法。
【請求項３】
前記各ジョブの最遅終了時刻を、前記納期の他に、後工程のジョブとのリードタイムを考慮して計算することを特徴とする請求項１又は２に記載のスケジューリング方法。
【請求項４】
前記複数のジョブが抽出される順番を予め記憶しておくための割付順記憶ステップをさらに備えていることを特徴とする請求項１〜３に記載のスケジューリング方法。
【請求項５】
前記最遅終了時刻計算ステップ及び前記スケジュール作成ステップは、前記ジョブのいずれかを処理することが可能な資源が複数存在する場合に、各ジョブを前記複数の資源のいずれに仮に割り付けるかを決定する仮割付資源決定ステップを更に有することを特徴とする請求項１〜４に記載のスケジューリング方法。
【請求項６】
複数のロットについて、少なくともロットの納期の情報を含んだロットの情報を記憶するロット情報記憶手段、
前記各ロットを通過する工程順に展開した複数のジョブについて、ジョブの特性を記憶するジョブ情報記憶手段、
前記複数のジョブのいずれかを処理することが可能な資源の処理能力を記憶する資源処理能力記憶手段、
前記各資源について、時間内労働の勤務日及び勤務時間が登録される稼動時間カレンダーを記憶する稼動時間カレンダー記憶手段、
前記各資源について、時間外労働が可能な勤務日及び勤務時間が登録される稼働時間外カレンダーを記憶する稼働時間外カレンダー記憶手段、
前記各ジョブについて、前記ジョブの特性及び前記資源の処理能力に基づいて、前記納期を達成するために完了すべき最遅終了時刻を計算する最遅終了時刻計算手段、
前記ジョブの特性及び前記資源の処理能力に基づいて、各ジョブを前記資源に割り付けて、稼動時間カレンダーに対してスケジュールを作成するスケジュール作成手段、
前記スケジュールにおいて、前記各ジョブについて前記最遅終了時刻を満たすか評価する評価手段、
前記評価結果により最遅終了時刻を満たさないと判断された各ジョブについて、最遅終了時刻を満たす又は最遅終了時刻を満たすことが不能と判断されるまで、当該ジョブが割り付けられた資源に対して稼働時間外カレンダーに時間外労働日を設定する稼働時間外計画作成手段、としてコンピュータを機能させるプログラム。
【請求項７】
前記稼働時間外計画作成手段は、
前記各資源について、前記評価結果により最遅終了時刻を満たさないと判断されたジョブの中で、前工程のジョブの終了時刻が最も早いジョブを稼働時間外割付対象ジョブと設定する稼働時間外割付対象ジョブ設定手段と、
前記稼働時間外割付対象ジョブの前工程のジョブが割り付けられている日を割付候補日とする割付候補日抽出手段、
前記割付候補日が時間外労働可能かどうかを判断して、時間外労働可能と判断されるまで割付候補日を１日ずつ後ろにずらして割付日とする割付日抽出手段、前記割付日と前記稼働時間外割付対象ジョブが割り付けられている日とが異なる場合、前記稼働時間外割付対象ジョブを処理する資源について、稼働時間外カレンダーの前記割付日を時間外労働日として設定する時間外労働日設定手段、
前記割付日と前記稼働時間外割付対象ジョブが割り付けられている日とが同じ場合、前記稼働時間外割付対象ジョブ及び前記稼働時間外割付対象ジョブと同資源で同日に開始予定となっているジョブについて、最遅終了時刻を満たすことが不能であることをジョブ情報として記憶するジョブ情報修正手段、としてコンピュータをさらに機能させることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記各ジョブの最遅終了時刻を、前記納期の他に、後工程のジョブとのリードタイムを考慮して計算することを特徴とする請求項６又は７に記載のプログラム。
【請求項９】
前記複数のジョブが抽出される順番を予め記憶しておくための割付順記憶手段をさらに備えていることを特徴とする請求項６〜８に記載のプログラム。
【請求項１０】
前記最遅終了時刻計算手段及び前記スケジュール作成手段は、前記ジョブのいずれかを処理することが可能な資源が複数存在する場合に、各ジョブを前記複数の資源のいずれに仮に割り付けるかを決定する仮割付資源決定手段を更に有することを特徴とする請求項６〜９に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スケジューリング方法及びプログラムに関し、特に、作業者の人数や稼働時間等の処理能力の制約がある工程において、複数のジョブを割り付けるスケジューリング方法及びプログラムに関する。
【０００２】
【従来の技術】
複数のロットに関するジョブを複数の資源にて処理する際、どのジョブをどの資源に割り付けてどのような順番で処理するかについてのスケジュールが予め作成されることが多い。ここで、ロットとは、受注単位を意味し、ジョブとは、各ロットを製造するのに必要な工程ごとに展開したときの作業１つ１つを意味する。また、資源とは、機械や作業者等、ジョブを処理する設備や人を指す。このスケジュールの作成（以下、「スケジューリング」と略する。）は、従来、スケジュール作成者により手作業で行われていたが、スケジュール作成者の負担軽減及び納期達成率の向上のため、コンピュータによって、自動的に行うことができる技術が開発されている。
【０００３】
従来のスケジューリングとして、例えば、非特許文献１に記載されたジョブ・ショップ・スケジューリング及びジョブ・ショップ・シミュレーションという手法がある。非特許文献１の技術においては、スケジューリングの最適化を行うため、ジョブの優先順位等により、前詰めでジョブを配置するものである。ところが、この非特許文献１の技術においては、通常の処理能力をもってしても通常の稼働日、稼動時間内にジョブを終了することができず、ロットの納期遅れを発生してしまう場合がある。
【０００４】
そこで、例えば、納期達成率の向上を目的としたスケジューリング方法であって、納期遅れが発生した場合に休日出勤や作業者の補填で納期遅れを解消させる技術が、特許文献１に記載されている。特許文献１の技術においては、まず、工場の作業日情報と、作業者個々の作業可能日情報と、複数作業の優先度と各作業の終了日（納期）と各作業の必要作業日数とからなる作業要件情報を入力する。そして、作業要件情報から最も優先度の低い最低優先度作業を検索し、この作業の作業終了日（次工程の作業開始日の前日。最終工程の場合は納期。）、作業日情報、作業者個々の作業可能日情報及び作業情報（作業責任者、必要作業日数等）から作業開始日を決定する。これを優先度の低い順に繰り返し、それぞれの作業開始日を決定する。このとき、割り当てた日の作業者数が作業の最少対応人数に満たない場合は、応援が必要な日と人数をテーブルに吐き出す（最大人数）。また、休日出勤の指定は、作業責任者の平日の勤務予定日だけでは納期を達成できない場合に行う（作業責任者が休日出勤設定をした場合は、再度不足人数の設定を行う。）。作業責任者の休日出勤や不足人数の設定だけでは納期を達成することができない場合、エラーを表示させ、終了する。以上により得られたスケジュールを人が確認し、満足する結果であればスケジュールを確定する。得られたスケジュールが満足できない場合やエラーが発生した場合は、作業要件を入力し直す。一方、スケジュールを確定した場合は、スケジュール表の作成を行う。
【０００５】
【特許文献１】
特開平５−１４３６０６号公報（図１、図７）
【非特許文献１】
人見勝人著「生産管理工学」コロナ社出版、昭和５３年８月１０日（初版第１刷発行）、昭和６３年６月１０日（初版第５刷発行）、ｐ．１２４−１２９
【０００６】
【発明が解決しようとする課題】
しかしながら、特許文献１に記載している技術によれば、納期遅れが発生した場合、休日出勤や作業者の補填で補っているため、建設現場のような作業責任者以外の作業者数が自由に変更できる工程でのスケジューリングには適しているが、資源能力である作業者の人数（有技能者数）が限られている場合が多く、また、休日出勤ではなく時間外労働によって補う場合が多い組み立て加工などの作業現場では、適用することが難しい。即ち、特許文献１に記載している技術を適用すれば、時間外労働の指示はスケジュール作成者が手動で設定し、満足する計画結果が得られるまでスケジューリングを繰り返すという手間がかかる。そのため、作業者数（資源能力）が多い場合や、計画期間が長い場合等は試行のパターンが非常に多くなり、スケジュール作成者の負荷が大きくなってしまう。また、特許文献１に記載している技術を組み立て加工などの作業現場に適用すると、例えば、納期が休日を挟まない直近の場合、工場の多くは受注量を極端に上回る資源能力を保持していないため、納期を達成するのが難しいという問題がある。
【０００７】
また、特許文献１に記載している技術によれば、完全に納期を守れる計画以外はエラーとなってしまい、このような場合は手介入によって修正し、納期を守れる計画が作成するまでエラーを解除することができない。即ち、やむをえない納期遅れが発生する場合にスケジューリングを作成することができないという問題がある。
【０００８】
更に、特許文献１に記載している技術によれば、工程の優先度とその納期（時間制約）のみを考慮して計画を作成しており、ロットの優先度については考慮されておらず、ロット全体の納期達成率という観点から見た場合の最適なスケジュールを作成することが難しいという問題がある。
【０００９】
本発明は、上記問題点に鑑みてなされたものであり、スケジュール作成者の負荷を軽減し、納期達成率を向上させることができる、実際の現場の状況に即したスケジューリング方法及びプログラムを提供するものである。
【００１０】
【課題を解決するための手段】
上記課題を解決するために、請求項１のスケジューリング方法は、複数のロットについて、少なくともロットの納期の情報を含んだロットの情報を記憶するロット情報記憶ステップと、前記各ロットを通過する工程順に展開した複数のジョブについて、ジョブの特性を記憶するジョブ情報記憶ステップと、前記複数のジョブのいずれかを処理することが可能な資源の処理能力を記憶する資源処理能力記憶ステップと、前記各資源について、時間内労働の勤務日及び勤務時間が登録される稼動時間カレンダーを記憶する稼動時間カレンダー記憶ステップと、前記各資源について、時間外労働が可能な勤務日及び勤務時間が登録される稼働時間外カレンダーを記憶する稼働時間外カレンダー記憶ステップと、前記各ジョブについて、前記ジョブの特性及び前記資源の処理能力に基づいて、前記納期を達成するために完了すべき最遅終了時刻を計算する最遅終了時刻計算ステップと、前記ジョブの特性及び前記資源の処理能力に基づいて、各ジョブを前記資源に仮に割り付けて、稼動時間カレンダー及び稼働時間外カレンダーに対してスケジュールを作成するスケジュール作成ステップと、前記スケジュールにおいて、前記各ジョブについて前記最遅終了時刻を満たすか評価する評価ステップと、前記評価結果により最遅終了時刻を満たさないと判断された各ジョブについて、最遅終了時刻を満たす又は最遅終了時刻を満たすことが不能と判断されるまで、当該ジョブが割り付けられた資源に対して稼働時間外カレンダーに時間外労働日を設定する稼働時間外計画作成ステップと、を備えていることを特徴とする。
【００１１】
請求項６のプログラムは、複数のロットについて、少なくともロットの納期の情報を含んだロットの情報を記憶するロット情報記憶手段、前記各ロットを通過する工程順に展開した複数のジョブについて、ジョブの特性を記憶するジョブ情報記憶手段、前記複数のジョブのいずれかを処理することが可能な資源の処理能力を記憶する資源処理能力記憶手段、前記各資源について、時間内労働の勤務日及び勤務時間が登録される稼動時間カレンダーを記憶する稼動時間カレンダー記憶手段、前記各資源について、時間外労働が可能な勤務日及び勤務時間が登録される稼働時間外カレンダーを記憶する稼働時間外カレンダー記憶手段、前記各ジョブについて、前記ジョブの特性及び前記資源の処理能力に基づいて、前記納期を達成するために完了すべき最遅終了時刻を計算する最遅終了時刻計算手段、前記ジョブの特性及び前記資源の処理能力に基づいて、各ジョブを前記資源に割り付けて、稼動時間カレンダーに対してスケジュールを作成するスケジュール作成手段、前記スケジュールにおいて、前記各ジョブについて前記最遅終了時刻を満たすか評価する評価手段、前記評価結果により最遅終了時刻を満たさないと判断された各ジョブについて、最遅終了時刻を満たす又は最遅終了時刻を満たすことが不能と判断されるまで、当該ジョブが割り付けられた資源に対して稼働時間外カレンダーに時間外労働日を設定する稼働時間外計画作成手段、としてコンピュータを機能させることを特徴とする。
【００１２】
請求項１、６によると、ジョブの最遅終了時刻を確認することにより、稼働時間内にはロットの納期が達成されないと判断された場合に、稼働時間外の時間外労働日にジョブを設定することとしている。従って、時間外労働によって、ロットの納期遅れが低減され、実情に即したスケジュールが自動的に作成される。この結果、スケジュール作成者の負荷を軽減することができるとともに、納期達成率を向上することができる。また、時間外労働を予め計画することにより、直近に時間外労働の指示がなされることを回避することができる。更に、資源の処理能力を変更することを前提としていないため、組み立て加工など資源の処理能力が制限される作業現場においても対応することができる。
【００１３】
請求項２のスケジューリング方法は、請求項１に記載のスケジューリング方法であって、前記稼働時間外計画作成ステップは、前記各資源について、前記評価結果により最遅終了時刻を満たさないと判断されたジョブの中で、前工程のジョブの終了時刻が最も早いジョブを稼働時間外割付対象ジョブと設定する稼働時間外割付対象ジョブ設定ステップと、前記稼働時間外割付対象ジョブの前工程のジョブが割り付けられている日を割付候補日とする割付候補日抽出ステップと、前記割付候補日が時間外労働可能かどうかを判断して、時間外労働可能と判断されるまで割付候補日を１日ずつ後ろにずらして割付日とする割付日抽出ステップと、前記割付日と前記稼働時間外割付対象ジョブが割り付けられている日とが異なる場合、前記稼働時間外割付対象ジョブを処理する資源について、稼働時間外カレンダーの前記割付日を時間外労働日として設定する時間外労働日設定ステップと、前記割付日と前記稼働時間外割付対象ジョブが割り付けられている日とが同じ場合、前記稼働時間外割付対象ジョブ及び前記稼働時間外割付対象ジョブと同資源で同日に開始予定となっているジョブについて、最遅終了時刻を満たすことが不能であることをジョブ情報として記憶するジョブ情報修正ステップと、を備えていることを特徴とする。
【００１４】
請求項７のプログラムは、請求項６に記載のプログラムであって、前記稼働時間外計画作成手段は、前記各資源について、前記評価結果により最遅終了時刻を満たさないと判断されたジョブの中で、前工程のジョブの終了時刻が最も早いジョブを稼働時間外割付対象ジョブと設定する稼働時間外割付対象ジョブ設定手段と、前記稼働時間外割付対象ジョブの前工程のジョブが割り付けられている日を割付候補日とする割付候補日抽出手段、前記割付候補日が時間外労働可能かどうかを判断して、時間外労働可能と判断されるまで割付候補日を１日ずつ後ろにずらして割付日とする割付日抽出手段、前記割付日と前記稼働時間外割付対象ジョブが割り付けられている日とが異なる場合、前記稼働時間外割付対象ジョブを処理する資源について、稼働時間外カレンダーの前記割付日を時間外労働日として設定する時間外労働日設定手段、前記割付日と前記稼働時間外割付対象ジョブが割り付けられている日とが同じ場合、前記稼働時間外割付対象ジョブ及び前記稼働時間外割付対象ジョブと同資源で同日に開始予定となっているジョブについて、最遅終了時刻を満たすことが不能であることをジョブ情報として記憶するジョブ情報修正手段、としてコンピュータをさらに機能させることを特徴とする。
【００１５】
請求項２、７によると、ジョブが最遅終了時刻を満たすことが不能であることをジョブ情報として記憶する。従って、ロットの納期遅れを減らしながら、設備の処理能力及び時間外労働を超える部分については、ロットの納期遅れが発生することを許容することにより、現実に近い予測を得ることができる。
【００１６】
請求項３のスケジューリング方法は、請求項１又は２に記載のスケジューリング方法であって、前記各ジョブの最遅終了時刻を、前記納期の他に、下工程のジョブとのリードタイムを考慮して計算することを特徴とする。
【００１７】
請求項８のプログラムは、請求項６又は７に記載のプログラムであって、前記各ジョブの最遅終了時刻を、前記納期の他に、下工程のジョブとのリードタイムを考慮して計算することを特徴とする。
【００１８】
請求項３、８によると、最遅終了時刻の計算に後工程のジョブとのリードタイムを考慮している。従って、より実情に即したスケジュールを作成することができる。
【００１９】
請求項４のスケジューリング方法は、請求項１〜３に記載のスケジューリング方法であって、前記複数のジョブが抽出される順番を予め記憶しておくための割付順記憶ステップをさらに備えていることを特徴とする。
【００２０】
請求項９のプログラムは、請求項６〜８に記載のプログラムであって、前記複数のジョブが抽出される順番を予め記憶しておくための割付順記憶手段をさらに備えていることを特徴とする。
【００２１】
請求項４、９によると、前記複数のジョブが抽出される順番をジョブの特性に基づいて予め入力するので、複数のジョブから１つのジョブを容易に抽出することができる。
【００２２】
請求項５のスケジューリング方法は、請求項１〜４に記載のスケジューリング方法であって、前記最遅終了時刻計算ステップ及び前記スケジュール作成ステップは、前記ジョブのいずれかを処理することが可能な資源が複数存在する場合に、各ジョブを前記複数の資源のいずれに仮に割り付けるかを決定する仮割付資源決定ステップを更に有することを特徴とする。
【００２３】
請求項１０のプログラムは、請求項６〜９に記載のプログラムであって、前記最遅終了時刻計算手段及び前記スケジュール作成手段は、前記ジョブのいずれかを処理することが可能な資源が複数存在する場合に、各ジョブを前記複数の資源のいずれに仮に割り付けるかを決定する仮割付資源決定手段を更に有することを特徴とする。
【００２４】
請求項５、１０によると、代替資源が存在する場合に、資源を割り付ける基準を設けることによって、ジョブを最適な資源に割り付けることができる。
【００２５】
尚、請求項５〜１０の夫々に記載されているプログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＦＤ（Ｆｌｅｘｉｂｌｅ　Ｄｉｓｋ）、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃ）などのリムーバブル型記録媒体やハードディスクなどの固定型記録媒体に記録して配布可能である他、有線又は無線の電気通信手段によってインターネットなどの通信ネットワークを介して配布可能である。
【００２６】
【発明の実施の形態】
以下、図面を参照しつつ、本発明の好適な実施の形態を説明する。
【００２７】
まず、本実施形態に係るスケジューリング方法を、具体的な一例に即して説明する。図１は、本実施の形態によるスケジューリング方法の手順について説明したフローチャートである。図２は、本例でのロットとこれを工程毎に展開したジョブの関係を描いた模式図である。図３は、最遅終了時刻を計算するための手順について説明したフローチャートである。図４は、ジョブの最遅終了時刻を計算する例を描いたガントチャートであり、（ａ）は仮の最遅終了時刻を設定した例を描いたガントチャートであり、（ｂ）は（ａ）において一点鎖線で囲まれた一部のジョブを拡大したガントチャートである。図５は、稼動時間外計画を作成するための手順について説明したフローチャートである。図６は、残業設定候補日を選択する例を描いたガントチャートである。
【００２８】
図２に示すように、本例において、ロットはＡ、Ｂ、Ｃ、Ｄの４種類あり、ロットＡ〜Ｄに対して対象工程は工程１〜３の３工程である。従って、当該工程で処理すべきジョブはジョブＡ１〜Ａ３、ジョブＢ１〜３、ジョブＣ１〜Ｃ４、ジョブＤ１〜Ｄ４であり、合計で１２ジョブがある。また、ジョブＡ１、Ｂ１、Ｃ１、Ｄ１を処理可能な資源は資源１であり、ジョブＡ２、Ｂ２、Ｃ２、Ｄ２を処理可能な資源は資源２であり、ジョブＡ３、Ｂ３、Ｃ３、Ｄ３を処理可能な資源は資源３であり、ジョブＡ４、Ｂ４、Ｃ４、Ｄ４を処理可能な資源は資源４である。
【００２９】
まず、本実施の形態によるスケジューリング方法の手順について、図１に基づいて、説明する。
【００３０】
ステップＳ１（ロット情報記憶ステップ、ジョブ情報記憶ステップ、資源処理能力記憶ステップ、稼働時間カレンダー記憶ステップ、稼働時間外カレンダー記憶ステップ）において、ロット情報として、Ａ、Ｂ、Ｃ、Ｄの４種類のロットと、その納期を登録する。また、ジョブ情報として、Ａ１〜Ａ３、Ｂ１〜Ｂ３、Ｃ１〜Ｃ３、Ｄ１〜Ｄ３の１２ジョブと、ジョブの特性であるその処理量を登録する。また、資源情報として、資源１、２、３の３種類を登録する。さらに、資源１〜３の処理能力として、ジョブＡ１、Ｂ１、Ｃ１、Ｄ１は資源１で処理可能であること、ジョブＡ２、Ｂ２、Ｃ２、Ｄ２は資源２で処理可能であること、ジョブＡ３、Ｂ３、Ｃ３、Ｄ３は資源３で処理可能であること、ジョブＡ４、Ｂ４、Ｃ４、Ｄ４は資源４で処理可能であること、及び、資源１〜４の処理能力をジョブ資源能力として登録する。尚、本実施例において、資源１〜４の処理能力は全て等しく１とする。
また、稼動時間カレンダーに資源と対応して各資源の通常の稼働日及び稼働時間を登録し、稼働時間外カレンダーに資源と対応して各資源の稼働時間外の稼動可能日及び稼働可能時間を登録する。尚、本実施例では、予め時間外労働を行うことは決まっていないため、稼働時間外カレンダーに時間外労働日は設定登録しない。一方、予め時間外労働を行うことが決まっている場合は、時間外労働日を稼働時間外カレンダーに設定登録しておく。
【００３１】
そして、ステップＳ２において、全ジョブの割付資源及び最遅終了時刻を未決定として初期設定する。また、全ジョブの遅れ解消可否フラグを「Ｔｒｕｅ」と設定する。ここで、最遅終了時刻とは、ロットがその納期を達成するために、各ジョブが処理を完了すべき時刻である。また、遅れ解消可否フラグとは、最遅終了時刻を満たすか否かを判断するためのフラグであり、最遅終了時刻を満たす可能性があるジョブに対しては「Ｔｒｕｅ」とされ、最遅終了時刻を満たすことができないと判断されたジョブに対しては「Ｆａｌｓｅ」とされる。
【００３２】
次に、ステップＳ３（最遅終了時刻計算ステップ）において、各ジョブの最遅終了時刻を設定する。ここで、ジョブの最遅終了時刻の計算の手順について、図３及び図４に基づいて説明する。
【００３３】
まず、ステップＳ３０１において、ジョブの仮の最遅終了時刻を求める。仮の最遅終了時刻の計算は、ロット単位で、稼働時間カレンダーに対して、各ロットのジョブの資源への割付を、下工程のジョブから順にロットの納期から後詰め（バックワード）で行う。この際、同一資源においては資源能力を無視し、図４（ａ）に示すように、各ロットのジョブを山積みして割り付ける。そして、割り付けられた各ジョブについて処理が終了する時刻を、当該ジョブの仮の最遅終了時刻として設定する。ここで、本実施例の場合は、ジョブを処理することができる資源が決まっているため、ジョブを仮に割り付ける資源の選択は行わない。代替資源が存在する場合は、ジョブを仮に割り付ける資源を所定の基準に基づいて選択し（仮割付資源決定ステップ）、仮の最遅終了時刻を設定する。所定の基準とは、例えば、処理能力が高い資源ほど選択されるように順番が決定される。
具体的には、図４中、各日程（稼働日）の中で網掛けになっている部分が稼働時間である。また、各ジョブをロット毎に異なる模様を付して記載している。更に、三角印は各ロットの納期をロットごとに異なる模様を付して表している。
尚、本実施例では、時間外労働を行うことが決まっていない場合であり、稼働時間カレンダーのみに対して、仮の最遅終了時刻が計算される。一方、予め時間外労働を行うことが決まっており、ステップＳ１で予め時間外労働日の設定登録が行われている場合は、仮の最遅終了時刻の計算は、稼働時間カレンダー及び予め時間外労働日の設定登録が行われている稼働時間外カレンダーに対して行われる。
【００３４】
次に、ステップＳ３０２において、ステップＳ３０１で山積みされて仮の最遅終了時刻が計算された全てのジョブに対して、資源毎に、山積みされたジョブの負荷及び資源の処理能力を考慮してジョブの最遅終了時刻の計算を行う。
具体的には、最遅終了時刻の計算は次式のとおりとなる。
【００３５】
【数１】
2004145814.tif 000003
【００３６】
本実施例では、図４（ａ）、（ｂ）に示すように、まず、ロットＡ、Ｂ、Ｃの最も下工程であるジョブＡ３、Ｂ３、Ｃ３が割り付けられている稼動カレンダーの最終日の資源３に注目し、これらのジョブＡ３、Ｂ３、Ｃ３の最遅終了時刻の変更を行う。即ち、図４（ｂ）に示すように、ジョブＡ３とジョブＢ３（重複時間はｔ１）、ジョブＢ３とジョブＣ３（重複時間はｔ２）が重複している。また、資源３の処理能力は１である。従って、ジョブＡ３、Ｂ３、Ｃ３の仮の最遅終了時刻をＴｌｅｔ＿Ａ３、Ｔｌｅｔ＿Ｂ３、Ｔｌｅｔ＿Ｃ３とすると、ジョブＡ３、Ｂ３、Ｃ３の最遅終了時刻Ｔｌｅ＿Ａ３、Ｔｌｅ＿Ｂ３、Ｔｌｅ＿Ｃ３は、それぞれ次式で計算される値となる。
Ｔｌｅ＿Ａ３＝Ｔｌｅｔ＿Ａ３−ｔ２（２−１）／１
Ｔｌｅ＿Ｂ３＝Ｔｌｅｔ＿Ｂ３−［ｔ２（２−１）／１＋ｔ１（２−１）／１］
Ｔｌｅ＿Ｃ３＝Ｔｌｅｔ＿Ｃ３−ｔ１（２−１）／１
尚、本実施例では、時間外労働を行うことが決まっていない場合であり、稼働時間カレンダーのみに対して、最遅終了時刻が計算される。一方、予め時間外労働を行うことが決まっており、ステップＳ１で予め時間外労働日の設定登録が行われている場合は、最遅終了時刻の計算は、稼働時間カレンダー及び予め時間外労働日の設定登録が行われている稼働時間外カレンダーに対して行われる。
【００３７】
次に、ステップＳ３０３では、全資源についてステップＳ３０２以降の最遅終了時刻を計算したかを判断する。全資源についてステップＳ３０２以降の最遅終了時刻の計算が行われていない場合は（ステップＳ３０３：ＮＯ）、ステップＳ３０４で、対象を別の資源にして、ステップＳ３０２に戻る。一方、全資源についてステップＳ３０２の最遅終了時刻の計算が行われている場合は（ステップＳ３０３：ＹＥＳ）、ステップＳ３０５に進む。
【００３８】
ステップＳ３０５以降では、上記で求めた全てのジョブの最遅終了時刻について、ロット単位で上下工程ジョブの整合性をとる。まず、ステップＳ３０５において、ロット単位で、下工程のジョブから順に、上工程ジョブの最遅終了時刻と（下工程ジョブの最遅終了時刻−下工程ジョブの処理時刻）とを比較し、次式を満たすかを判断する。
上工程ジョブの最遅終了時刻＞下工程ジョブの最遅終了時刻−下工程ジョブの処理時刻
そして、ステップＳ３０５の式を満たす場合（ステップＳ３０５：ＹＥＳ）は、ステップＳ３０６において、上工程ジョブの最遅終了時刻を次式により修正する。
上工程ジョブの最遅終了時刻＝下工程ジョブの最遅終了時刻−下工程ジョブの処理時刻
一方、ステップＳ３０５の式を満たさない場合（ステップＳ３０５：ＮＯ）は、ステップＳ３０７に進む。
【００３９】
ステップＳ３０７では、ステップＳ３０５で比較した上工程ジョブがロットの最上工程のジョブかどうかを判断する。
ステップＳ３０５で比較した上工程ジョブがロットの最上工程のジョブでない場合（ステップＳ３０７：ＮＯ）は、上工程ジョブに比較対象を移し（ステップＳ３０８）、ステップＳ３０５に戻る。
一方、ステップＳ３０５で比較した上工程ジョブがロットの最上工程のジョブである場合（ステップＳ３０７：ＹＥＳ）は、全ロットについてステップＳ３０５の比較を行ったかを判断する（ステップＳ３０９）。
全ロットについてステップＳ３０５の比較が行われていない場合は（ステップＳ３０９：ＮＯ）、ステップＳ３１０で、対象のロットを別のロットにして、ステップＳ３０５に戻る。一方、全ロットについてステップＳ３０５の比較が行われている場合は（ステップＳ３０９：ＹＥＳ）、ステップＳ３１１に進む。
ステップＳ３１１では、以上により計算された最遅終了時刻を、ジョブの最遅終了時刻として設定して終了する。
【００４０】
以上によりジョブの最遅終了時刻が設定され、次に、ステップＳ４（スケジュール作成ステップ）において、各ジョブの割付順及び資源の処理能力に基づいて、全ジョブを資源に仮割付を行い、稼働時間カレンダー及び稼働時間外カレンダーに対してスケジュールを作成する。尚、稼働時間外カレンダーについては、ステップＳ１において予め時間外労働日と設定登録されている日及び後述するステップＳ８において時間外労働日として設定される日についてのみジョブの割付が可能なものとしてスケジュールを作成する。
この仮割付では、従来技術として行われているスケジューリングの手法（例えば、上述の非特許文献１に記載するようなジョブの優先順位を考慮して、前詰めでジョブを配置する手法等）を用いて行う。具体的には、まず資源に割り付けるジョブを、優先度を基にして抽出する。例えば、納期が早いロットのジョブほど、あるいは、最遅終了時刻までの余裕が短いジョブほど早く割り付けられるように優先度が高く設定される。そして、最も優先度の高いジョブが最も早く抽出され、最も優先度の低いジョブが最も遅く抽出される。また、代替資源が存在する場合、所定の基準を基にしてジョブを仮に割り付ける資源を決定する（仮割付資源決定ステップ）。所定の基準とは、例えば、処理能力が高い資源ほど選択されるように順番が決定される。本例では、代替資源がないため、ジョブを仮に割り付ける資源は選択されない。尚、上述の割付順及び所定の基準は自動で設定されても良いし、手動で設定されても良い。
そして、資源に割り付ける対象とするジョブを上述の割付順に抽出し、稼働時間カレンダー及び稼働時間外カレンダーに対して前詰め（フォワード）で、抽出したジョブを資源に仮に割り付けてスケジュールを作成する。
尚、本実施例では、予めステップＳ１で時間外労働日として設定登録されている日がないため、始めは稼働時間カレンダーのみに対してスケジュールが作成され、ステップＳ８において時間外労働日が設定された場合に稼働時間カレンダー及び時間外労働日を設定した稼働時間外カレンダーに対してスケジュールが作成される。一方、予めステップＳ１で時間外労働日が設定登録されている日がある場合は、始めから稼働時間カレンダー及びステップＳ１で時間外労働日が設定登録された稼働時間外カレンダーについてスケジュールが作成され、ステップＳ８において時間外労働日が更に設定された場合は、稼働時間カレンダー及びステップＳ１で登録された時間外労働日に加えてステップＳ８で追加した時間外労働日が設定された稼働時間外カレンダーに対してスケジュールが作成される。
【００４１】
そして、ステップＳ５（評価ステップ）において、作成されたスケジュールについて、全ロットが納期を達成しているかどうかを判断する。
全ロットが納期を達成している場合（ステップＳ５：ＹＥＳ）は、ステップＳ９において、各ジョブについて仮に割り付けた資源を割付資源として決定し、スケジューリングを終了する。
一方、全ロットが納期を達成していない場合（ステップＳ５：ＮＯ）は、ステップＳ６において、納期遅れジョブを検出する。ここで、納期遅れジョブとは、ジョブの終了時刻が設定した最遅終了時刻よりも遅いジョブ、即ち、最遅終了時刻を満たしていないジョブのことを意味する。
【００４２】
次に、ステップＳ７において、検出した納期遅れジョブが、納期遅れ解消、即ち、最遅終了時刻を満たす可能性があるジョブであるかどうかを判断する。判断は検出したジョブの遅れ解消フラグにより行う。
遅れ解消フラグが「Ｔｒｕｅ」となっているジョブについては、最遅終了時刻を満たす可能性があるジョブであると判断し（ステップＳ７：ＹＥＳ）、ステップＳ８（稼働時間外計画作成ステップ）において、稼働時間外計画を設定する。一方、遅れ解消フラグが「Ｆａｌｓｅ」となっているジョブについては、最遅終了時刻を満たすことが不能であるジョブであると判断し（ステップＳ７：ＮＯ）、ステップＳ９において、最遅終了時刻を満たすことが不能であるジョブが含まれるロットについてはやむをえない納期遅れであることを表示し、各ジョブについて仮に割り付けた資源を割付資源として決定し、スケジューリングを終了する。
【００４３】
ここで、ステップＳ８の稼働時間外計画の設定の手順について、図５及び図６に基づいて説明する。
【００４４】
まず、ステップＳ８０１（稼働時間外割付対象ジョブ設定ステップ、割付候補日抽出ステップ）において、各資源について、納期解消フラグが「Ｔｒｕｅ」となっている検出した納期遅れジョブの中で、その上工程のジョブの処理終了時刻が最も早いジョブを稼働時間外割付対象ジョブとし、その上工程のジョブの処理終了日を稼働時間外労働の割付候補日とする。具体的には、図６に示すように、資源３に注目して、納期遅れジョブがＸ３、Ｙ３の２つある場合、それらの上工程のジョブＸ２、Ｙ１の処理終了時刻を見て、上工程のジョブＹ１の処理終了時刻が早いジョブＹ３を稼働時間外割付対象ジョブとし、Ｙ１が割り付けられている日を割付候補日とする。
【００４５】
次に、ステップＳ８０２（割付日抽出ステップ）及びステップＳ８０３（割付日抽出ステップ）において、割付候補日が時間外労働可能かどうかを判断する。まず、ステップＳ８０２では、割付候補日が時間外労働不可であるかどうか、即ち、割付候補日が稼働時間外カレンダーで稼動可能日と設定されていないかどうかを判断する。割付候補日が稼働時間外カレンダーで稼動可能日と設定されていない場合（ステップＳ８０２：ＹＥＳ）、ステップＳ８０５に進む。一方、割付候補日が稼働時間外カレンダーで稼動可能日と設定されている場合（ステップＳ８０２：ＮＯ）、ステップＳ８０３に進む。
ステップＳ８０３では、割付候補日が既に稼働時間外カレンダーで時間外労働設定済みであるかどうかを判断する。割付候補日が既に稼働時間外カレンダーで時間外労働設定済みである場合（ステップＳ８０３：ＹＥＳ）、ステップＳ８０５（割付日抽出ステップ）に進む。一方、割付候補日が稼働時間外カレンダーで時間外労働の設定がされていない場合（ステップＳ８０３：ＮＯ）、ステップＳ８０４（時間外労働日設定ステップ）に進む。ステップＳ８０４では、まず、割付候補日を割付日と設定する。そして、割付日を時間外労働日として設定し、ステップＳ８０８に進む。
【００４６】
ステップＳ８０５では、割付候補日が時間外労働可能でないため、割付候補日を１日後ろにずらして、ステップＳ８０６（割付日抽出ステップ）で新たな割付候補日が稼働時間外割付対象ジョブの処理開始日と同日かどうかを判断する。
【００４７】
新たな割付候補日が稼働時間外割付対象ジョブの処理開始日と同日でない場合（ステップＳ８０６：ＮＯ）は、ステップＳ８０２に戻る。
一方、新たな割付候補日が稼働時間外割付対象ジョブの処理開始日と同日である場合（ステップＳ８０６：ＹＥＳ）は時間外労働を設定することが不能であり、ステップＳ８０７（ジョブ情報修正ステップ）において、稼働時間外割付対象ジョブ及び稼働時間外割付対象ジョブと同資源で同日に開始予定となっている納期遅れジョブの遅れ解消可否フラグを「Ｆａｌｓｅ」と変更し、ステップＳ８０８に進む。
【００４８】
ステップＳ８０８では、全ての資源について上述のステップを行ったかどうかが判断される。
全ての資源について行われていない場合には（ステップＳ８０８：ＮＯ）、ステップＳ８０９において、対象を別の資源として、ステップＳ８０１に戻る。
一方、全ての資源について行われていない場合には（ステップＳ８０８：ＹＥＳ）、稼働時間外計画の設定を終了する。
【００４９】
以上によりジョブの稼働時間外計画が設定され、次に、ステップＳ４に戻り、稼働時間カレンダー及び稼働時間外計画で時間外労働日が設定された稼働時間外カレンダー（予めステップＳ１で時間外労働日が設定登録されている場合は、ステップＳ１で登録された時間外労働日に加えて稼働時間外計画で追加した時間外労働日が設定された稼働時間外カレンダー）に基づいて、再度、スケジュールの作成を行う。具体的には、稼働時間外計画で時間外労働日が設定されている日（予めステップＳ１で時間外労働日が設定登録されている場合は、ステップＳ１で時間外労働日が設定登録された日及び稼働時間外計画で時間外労働日が設定されている日）は、時間内労働の勤務時間に加えて、時間外労働が可能な勤務時間全てにジョブを割り付けることができるものとしてスケジュールの作成を行う。
【００５０】
次に、本発明のプログラムについて、図７に基づいて説明する。図７は、本実施の形態によるプログラムのブロック図である。
【００５１】
図７に示すように、本実施の形態によるプログラム１は、記憶部１０と、演算部２０と、から構成されている。そして、記憶部１０に記憶されている情報は、適宜、インターフェース部３０により出力することができる。
【００５２】
記憶部１０は、ロット情報記憶部（ロット情報記憶手段）１１と、ジョブ情報記憶部（ジョブ情報記憶手段）１２と、資源情報記憶部１３と、資源処理能力記憶部（資源処理能力記憶手段）１４と、稼動時間カレンダー記憶部（稼動時間カレンダー記憶手段）１５と、稼働時間外カレンダー記憶部（稼働時間外カレンダー記憶手段）１６と、スケジュール記憶部１７と、を有している。
【００５３】
ロット情報記憶部１１は、図示されない入力装置から入力された、複数のロットの情報、例えば、納期等をロットごとに記憶する。また、ロット情報記憶部１１は、後述する最遅終了時刻計算部２１に対して、これらのロットの情報を出力する。
【００５４】
ジョブ情報記憶部１２は、図示されない入力装置から入力された、複数のジョブの特性、例えば処理量、最早着手時刻等をジョブごとに記憶する。そして、後述するジョブ情報修正部２６ｅから出力されたジョブ情報を記憶する。また、ジョブ情報記憶部１２は、後述する最遅終了時刻計算部２１及び抽出ジョブ決定部２２に対して、これら複数のジョブの特性に関する情報を出力する。
【００５５】
資源情報記憶部１３は、入力装置から入力された、複数のジョブのいずれかを処理することが可能な複数の資源情報（資源名）を記憶する。また、資源情報記憶部１３は、後述する資源処理能力記憶部１４に対して、資源情報を出力する。
【００５６】
資源処理能力記憶部１４は、入力装置から入力された、資源名記憶部１３に資源名が記憶された資源の処理能力、例えば、ジョブの処理可能性、単位時間当たりのジョブ処理量等を資源ごとに記憶する。資源処理能力記憶部１４は各資源の処理能力がジョブごとに異なる場合には、ジョブごとに処理能力を記憶することが好ましい。また、資源処理能力記憶部１４は、後述する抽出ジョブ決定部２２及び仮割付資源決定部２３に対して、資源処理能力に関する情報を出力する。
【００５７】
稼働時間カレンダー記憶部１５は、入力装置から入力された、時間内労働の勤務日及び勤務時間を資源ごとに記憶する。また、稼働時間カレンダー記憶部１５は、後述するスケジュール作成部２４に対して、記憶している時間内労働の勤務日及び勤務時間を出力する。
【００５８】
稼働時間外カレンダー記憶部１６は、入力装置から入力された、時間外労働が可能な勤務日及び勤務時間を資源ごとに記憶する。また、入力装置から入力された、予め時間外労働を行う予定である時間外労働日の設定登録情報を記憶する。そして、後述する稼働時間外計画作成部２６から供給された時間外労働日の設定情報を記憶する。また、稼働時間外カレンダー記憶部１６は、後述するスケジュール作成部２４に対して、記憶している設定された時間外労働日及びその勤務時間を出力する。
【００５９】
スケジュール記憶部１７は、後述するスケジュール作成部２４から供給されたスケジュールを記憶する。また、スケジュール記憶部１７は、後述する評価部２５に対して、記憶しているスケジュールを出力する。さらに、スケジュール記憶部１７は、全ジョブに対して割り付けられる資源が決定した場合に、後述するスケジュール結果出力インターフェース３１に対して、最終的に決定されたスケジュールを出力する。
【００６０】
演算部２０は、最遅終了時刻計算部（最遅終了時刻計算手段）２１と、抽出ジョブ決定部２２と、仮割付資源決定部２３と、スケジュール作成部（スケジュール作成手段）２４と、評価部（評価手段）２５と、稼働時間外計画作成部（稼働時間外計画作成手段）２６と、資源決定部２７と、を有している。
【００６１】
最遅終了時刻計算部２１は、稼働時間カレンダー記憶部１５から出力された稼働時間カレンダー及び稼働時間外カレンダー１６から出力された稼働時間外カレンダーを基にして、ロット情報記憶部１１から供給されたロットの納期情報を達成するために完了すべきジョブの最遅終了時刻を計算する。最遅終了時刻の計算は、ジョブ情報記憶部１２から供給されたジョブの特性及び仮割付資源決定部２３から供給された仮割付基準を考慮しつつ行われる。
【００６２】
抽出ジョブ決定部２２は、ジョブ情報記憶部１２から供給されたジョブの特性及び資源処理能力記憶部１４から供給された資源処理能力により定められる優先度に基づいて、資源に割り付けるために抽出する１つのジョブを決定して、スケジュール作成部２４に出力する。例えば、抽出ジョブ決定部２２は、ジョブ情報記憶部１２からジョブの特性として各ジョブの納期情報を受け取り、また、資源処理能力記憶部１４から処理能力を受け取り、これらに従って割付可能期間の最も短いものが優先度の高いジョブとして、抽出ジョブを決定する。
【００６３】
仮割付資源決定部２３は、ジョブ情報記憶部１２から供給されたジョブの処理量及び資源処理能力記憶部１４から供給された資源処理能力により定められる仮割付基準に基づいて、各ジョブを複数の資源のいずれに仮に割り付けるかについて決定して、最遅終了時刻決定部２１及びスケジュール作成部２４に出力する。例えば、仮割付資源決定部２３は、資源処理能力記憶部１４から処理能力を受け取り、これらに従って処理可能な資源に前詰めで割り付けた場合に、最も早くジョブが終了する資源であることを仮割付基準として、仮に割り付ける資源を決定する。
【００６４】
スケジュール作成部２４は、抽出ジョブ決定部２２から供給された優先度と、仮割付資源決定部２３から供給された仮割付基準とにより、稼働時間カレンダー記憶部１５から出力された稼働時間カレンダー及び稼働時間外カレンダー１６から出力された稼働時間外カレンダーを基にして、スケジュールを作成する。即ち、まず、割り付けられる資源が未決定のジョブのうち優先度が一番高いジョブ（以下、「抽出ジョブ」と称する）を、資源の処理能力から判断して処理可能な全ての資源のそれぞれに仮に割り付ける。そして、当該抽出ジョブを処理することが可能な全ての資源のそれぞれに仮に割り付けた各場合について、割り付けられる資源が決定済みのジョブ以外のジョブを優先度の高いジョブから順に、仮割付基準によりいずれかの資源に仮割り付けし、１つのスケジュールを作成する。スケジュール作成部２４では、資源使用可能期間の開始時刻から前方詰めで各ジョブが割り付けられる。また、スケジュール作成部２４は、作成したスケジュールをスケジュール記憶部１７に順次出力する。
【００６５】
評価部２５は、スケジュール記憶部１７から供給された、スケジュールを評価する。評価部２５では、スケジュールにおいて、各ジョブが最遅終了時刻を満たすか否かを評価する。各ジョブが最遅終了時刻を満たさない場合は、その結果を稼働時間外計画作成部２６に出力し、各ジョブが最遅終了時刻を満たす又は満たすことが不能と判断された場合は、その結果を後述する資源決定部２５に出力する。
【００６６】
稼働時間外計画作成部２６は、評価部２５から供給された各ジョブが最遅終了時刻を満たさないとの評価結果に基づいて、最遅終了時刻を満たす又は最遅終了時刻を満たすことが不能と判断されるまで、最遅終了時刻を満たさないジョブが割り付けられた資源に対して稼働時間外カレンダーに時間外労働日を設定する。
【００６７】
稼働時間外計画作成部２６は、稼働時間外割付対象ジョブ設定部２６ａと、割付候補日抽出部２６ｂと、割付日抽出部２６ｃと、時間外労働設定部２６ｄと、ジョブ情報修正部２６ｅと、から構成される。
【００６８】
稼働時間外割付対象ジョブ設定部２６ａは、各資源について、評価部２５から供給された最遅終了時刻を満たさないと判断されたジョブの中で、上工程のジョブの終了時刻が最も早いジョブを稼働時間外割付対象ジョブと設定して、割付候補日抽出部２６ｂ及び時間外労働設定日２６ｄ及びジョブ情報修正部２６ｅに出力する。
【００６９】
割付候補日抽出部２６ｂは、稼働時間外割付対象ジョブ設定部２６ａから供給された稼働時間外割付対象ジョブの上工程のジョブが割り付けられている日を割付候補日と設定して、後述する割付日抽出部２６ｃに出力する。
【００７０】
割付日抽出部２６ｃは、割付候補日抽出部２６ｂから供給された割付候補日が時間外労働可能かどうかを判断して、時間外労働可能と判断されるまで割付候補日を１日ずつ後ろにずらして割付日と設定して、後述する時間外労働設定部２６ｄ及びジョブ情報修正部２６ｅに出力する。
【００７１】
時間外労働設定部２６ｄは、割付日抽出部２６ｃから供給された割付日と稼働時間外割付対象ジョブ設定部２６ａから供給されている稼働時間外割付対象ジョブが割り付けられている日とを比較して、それらが異なる場合、稼働時間外割付対象ジョブを処理する資源について、稼働時間外カレンダーの割付日を時間外労働日として設定して、稼働時間外カレンダー記憶部１６に出力する。
【００７２】
ジョブ情報修正部２６ｅは、割付日抽出部２６ｃから供給された割付日と稼働時間外割付対象ジョブ設定部２６ａから供給されている稼働時間外割付対象ジョブが割り付けられている日とを比較して、それらが同じ場合、稼働時間外割付対象ジョブ及び稼働時間外割付対象ジョブと同資源で同日に開始予定となっているジョブについて、最遅終了時刻を満たすことが不能であることをジョブ情報としてジョブ情報記憶部１２に出力する。
【００７３】
資源決定部２７は、評価部２５から供給された各ジョブが最遅終了時刻を満たす又は満たすことが不能であるとの評価結果に基づいて、作成されたスケジュールで抽出ジョブに仮割付された資源を、割り付けるための資源と決定する。また、資源決定部２７は、スケジュール記憶部１７に対して、各ジョブとその割付資源に関する情報を出力する。
【００７４】
インターフェース装置３０は、スケジュール結果出力インターフェース３１と、プリンタ３２と、ディスプレイ３３とを有している。インターフェース出力Ｉ／Ｆ３１は、スケジュール記憶部１７から供給された最終的に得られたスケジュール結果を、プリンタ３２またはディスプレイ３３に出力する。
【００７５】
ここで、図７に示されているプログラム１の各部１０、２０は、例えば汎用のパーソナルコンピュータによって構成されている。かかるパーソナルコンピュータには、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスク、ＦＤやＣＤの駆動装置などのハードウェアが収納されており、ハードディスクには、プログラム（このプログラムは、ＣＤ−ＲＯＭやＦＤ、ＭＯなどのリムーバブルな記憶媒体に記録しておくことにより、様々なコンピュータにインストールすることが可能である）を含む各種のソフトウェアが記録されている。そして、これらのハードウェアおよびソフトウェアが組み合わされることによって、上述の各部１０、２０が構築されている。
【００７６】
このように、本実施形態のスケジューリング方法及びプログラムによれば、ジョブの最遅終了時刻を確認することにより（ステップＳ５）、稼働時間内にはロットの納期が達成されないと判断された場合に、稼働時間外にジョブを設定することとしている（ステップＳ８）。従って、時間外労働によって、ロットの納期遅れが低減され、実情に即したスケジュールが自動的に作成される。この結果、スケジュール作成者の負荷を軽減することができるとともに、納期達成率を向上することができる。また、時間外労働を予め計画することにより、直近に時間外労働の指示がなされることを回避することができる。更に、資源の処理能力を変更することを前提としていないため、組み立て加工など資源の処理能力が制限される作業現場においても対応することができる。
【００７７】
また、ジョブが最遅終了時刻を満たすことが不能であることをジョブ情報として記憶する（ステップＳ８０７）。従って、ロットの納期遅れを減らしながら、設備の処理能力及び時間外労働を超える部分については、ロットの納期遅れが発生することを許容することにより、現実に近い予測を得ることができる。
【００７８】
また、代替資源が存在する場合に、資源を割り付ける基準を設けて資源の選択を行う（仮割付資源決定部２３）。従って、ジョブを最適な資源に割り付けることができる。
【００７９】
以上、本発明の好適な実施の形態について説明したが、本発明は、前記実施の形態に限定されるものではなく、特許請求の範囲に記載した限りにおいてさまざまな変更が可能なものである。
【００８０】
上述の実施の形態では、ステップＳ４のスケジュール作成において、ステップＳ８０４で設定された稼働時間外カレンダーの設定された時間外労働日の時間外労働が可能な勤務時間の全てに、１または２以上のジョブを割り付けているが、それに限られない。例えば、時間外労働日の時間外労働が可能な勤務時間内には１つのジョブのみを設定できるようにし、時間外労働日の時間外労働が可能な勤務時間内１つのジョブが完了した場合に残りの時間外労働日の時間外労働が可能な勤務時間内にジョブを割り付けないようにしても良い。
【００８１】
また、ジョブの最遅終了時刻の計算を上述の実施の形態以外の計算により行っても良い。例えば、上述の実施の形態におけるジョブの最遅終了時刻の計算において、更に、下工程のジョブとのリードタイムを考慮して、ジョブの最遅終了時刻の計算を行っても良い。
この場合、より実情に即したスケジュールを作成することができる。
【００８２】
また、複数のジョブが抽出される順番を予め記憶させるようにしておいてもよい。例えば、納期が早いロットのジョブほど、あるいは、最遅終了時刻までの余裕が短いジョブほど早く割り付けられるように優先度が高く設定し、最も優先度の高いジョブの順番が最も早く、最も優先度の低いジョブの順番が最も遅くなるように決定し、予め記憶部１０の割付順記憶部に記憶する（割付順記憶ステップ）。
この場合、複数のジョブが抽出される順番をジョブの特性に基づいて予め入力するので、複数のジョブから１つのジョブを容易に抽出することができる。
【００８３】
【発明の効果】
以上に説明したように、本発明によると、稼働時間計画の他に、稼働時間外計画を作成することにより、実際の現場の状況に即したスケジューリングができるので、スケジュール作成者の負荷を軽減し、納期達成率を向上させることができる。
【図面の簡単な説明】
【図１】本実施の形態によるスケジューリング方法の手順について説明したフローチャートである。
【図２】本例でのロットとこれを工程毎に展開したジョブの関係を描いた模式図である。
【図３】最遅終了時刻を計算するための手順について説明したフローチャートである。
【図４】ジョブの最遅終了時刻を計算する例を描いたガントチャートであり、（ａ）は仮の最遅終了時刻を設定した例を描いたガントチャートであり、（ｂ）は（ａ）において一点鎖線で囲まれた一部のジョブを拡大したガントチャートである。
【図５】稼動時間外計画を作成するための手順について説明したフローチャートである。
【図６】残業設定候補日を選択する例を描いたガントチャートである。
【図７】本実施の形態によるプログラムのブロック図である。
【符号の説明】
１　　　　プログラム
１１　　　ロット情報記憶部（ロット情報記憶手段）
１２　　　ジョブ情報記憶部（ジョブ情報記憶手段）
１４　　　資源処理能力記憶部（資源処理能力記憶手段）
１５　　　稼動時間カレンダー記憶部（稼動時間カレンダー記憶手段）
１６　　　稼働時間外カレンダー記憶部（稼働時間外カレンダー記憶手段）
２１　　　最遅終了時刻計算部（最遅終了時刻計算手段）
２４　　　スケジュール作成部（スケジュール作成手段）
２５　　　評価部（評価手段）
２６　　　稼働時間外計画作成部（稼働時間外計画作成手段）
【図１】
2004145814.tif 000004
【図２】
2004145814.tif 000005
【図３】
2004145814.tif 000006
【図４】
2004145814.tif 000007
【図５】
2004145814.tif 000008
【図６】
2004145814.tif 000009
【図７】
2004145814.tif 000010