(57)【特許請求の範囲】
【請求項１】
各オーダー又はロットの対象物を生産するために必要とされる各々の資源に対し、その生産工程に関連した複数のジョブを時間軸方向に割り付けることにより、前記オーダー又はロットに対応した生産計画を生成する生産スケジューリング方法において、
前記資源毎に異なる割付条件を設定可能な少なくとも１つの計画パラメータを前記オーダー又はロットに対し設定するステップと、
前記資源に割り付け可能な複数のジョブをバックワードに割り付けて山積みし、次いで山崩しするステップと、
前記複数のジョブの山積み／山崩しステップの後、前記割付条件に従い、複数のジョブの並び順を前記資源毎に制御するステップと
を含み、
前記複数のジョブの山積み／山崩しステップは、
（ａ）前記資源に割り付け可能な複数のジョブをバックワードに山積みで割り付けるステップと、
（ｂ）前記資源毎に、負荷超過があるかを調べるステップと、
（ｃ）負荷超過がある場合、負荷超過している前記資源毎に、割り付けられた複数のジョブの所要資源量合計がその資源の能力上限を超えている時間帯を特定するステップと、
（ｄ）前記特定された時間帯に関わる各ジョブに対して、そのジョブの割付方向とは逆の方向にジョブの開始時刻がシフトするように前記ジョブの所要時間を引き延ばすステップと、
（ｅ）前記引き延ばされたジョブを含む前記複数のジョブを、バックワードにもう一度山積みで割り付けるステップと、
（ｆ）負荷超過がなくなるまで上記ステップ（ｂ）からステップ（ｅ）の処理を繰り返すことにより、先頭工程ジョブの最早開始時刻を推定するステップと
を含むことを特徴とする生産スケジューリング方法。
【請求項２】
前記計画パラメータの設定ステップは、
その資源について優先させたい複数の種類の制約にそれぞれ対応しかつ所定の値を持つ複数の割付キーと、前記割付キーの値を並び順の種類に応じて正規化するための複数の正規化関数との中から所定の割付キーと正規化関数との組み合わせを指定するステップと、
前記指定した割付キーに関し、割付キー毎に設定及び変更が可能な重みを指定するステップと
を含むことを特徴とする請求項１に記載の生産スケジューリング方法。
【請求項３】
前記ジョブの所要時間を引き延ばすステップは、前記複数のジョブが割り付けられている時間帯における所要資源量の平均値に応じて引き延ばすステップを含むことを特徴とする請求項１に記載の生産スケジューリング方法。
【請求項４】
前記複数のジョブの並び順制御ステップは、次式で規定される評価値をその資源に割付可能なジョブ毎に計算することにより、基準ジョブに割り付けられるべき１つのジョブを決定するステップを含むことを特徴とする請求項１に記載の生産スケジューリング方法。
【数１】
0004880827.tif 000004
ここで、ｉは割付ルールで指定する割付キーの番号，Ｘｉは割付キーの値、ＮＯＲＭｉは正規化関数、Ｗｉは各割付キーに設定した重みである。
【請求項５】
前記複数のジョブの並び順制御ステップ終了後にバックワードの割付及び／又はフォワードの割付を複数回繰り返し、これによりジョブの開始時刻又は終了時刻を補正することを特徴とする請求項１乃至４のいずれかに記載の生産スケジューリング方法。
【請求項６】
各オーダー又はロットの対象物を生産するために必要とされる各々の資源に対し、その生産工程に関連した複数のジョブを時間軸方向に割り付けることにより、前記オーダー又はロットに対応した生産計画を生成する生産スケジューリング方法であって、
前記資源毎に異なる割付条件を設定可能な少なくとも１つの計画パラメータを前記オーダー又はロットに対し設定するステップと、
前記資源に割り付け可能な複数のジョブをバックワードに割り付けて山積みし、次いで山崩しするステップと、
前記複数のジョブの山積み／山崩しステップの後、前記割付条件に従い、複数のジョブの並び順を前記資源毎に制御するステップと
を含み、
前記複数のジョブの山積み／山崩しステップは、
（ａ）前記資源に割り付け可能な複数のジョブをバックワードに山積みで割り付けるステップと、
（ｂ）前記資源毎に、負荷超過があるかを調べるステップと、
（ｃ）負荷超過がある場合、前記資源毎に、割り付けられた複数のジョブの所要資源量合計がその資源の能力上限を超えている時間帯を特定するステップと、
（ｄ）前記特定された時間帯に関わる各ジョブに対して、そのジョブの割付方向とは逆の方向にジョブの開始時刻がシフトするように前記ジョブの所要時間を引き延ばすステップと、
（ｅ）前記引き延ばされたジョブを含む前記複数のジョブを、バックワードにもう一度山積みで割り付けるステップと、
（ｆ）負荷超過がなくなるまで上記ステップ（ｂ）からステップ（ｅ）の処理を繰り返すことにより、先頭工程ジョブの最早開始時刻を推定するステップと
を含む生産スケジューリング方法を、コンピュータに実行させるためのプログラム。
【請求項７】
前記計画パラメータの設定ステップは、
その資源について優先させたい複数の種類の制約にそれぞれ対応しかつ所定の値を持つ複数の割付キーと、前記割付キーの値を並び順の種類に応じて正規化するための複数の正規化関数との中から所定の割付キーと正規化関数との組み合わせを指定するステップと、
前記指定した割付キーに関し、割付キー毎に設定及び変更が可能な重みを指定するステップと
を含む請求項６に記載の生産スケジューリング方法を、コンピュータに実行させるためのプログラム。
【請求項８】
前記ジョブの所要時間を引き延ばすステップは、前記複数のジョブが割り付けられている時間帯における所要資源量の平均値に応じて引き延ばすステップを含む請求項６に記載の生産スケジューリング方法を、コンピュータに実行させるためのプログラム。
【請求項９】
前記複数のジョブの並び順制御ステップは、次式で規定される評価値をその資源に割付可能なジョブ毎に計算することにより、基準ジョブに割り付けられるべき１つのジョブを決定するステップを含む請求項６に記載の生産スケジューリング方法を、コンピュータに実行させるためのプログラム。
【数２】
0004880827.tif 000005
ここで、ｉは割付ルールで指定する割付キーの番号，Ｘｉは割付キーの値、ＮＯＲＭｉは正規化関数、Ｗｉは各割付キーに設定した重みである。
【請求項１０】
前記複数のジョブの並び順制御ステップ終了後にバックワードの割付及び／又はフォワードの割付を複数回繰り返し、これによりジョブの開始時刻又は終了時刻を補正することを特徴とする請求項６乃至９のいずれかに記載の生産スケジューリング方法を、コンピュータに実行させるためのプログラム。
【請求項１１】
各オーダー又はロットの対象物を生産するために必要とされる各々の資源に対し、その生産工程に関連した複数のジョブを時間軸方向に割り付けることにより、前記オーダー又はロットに対応した生産計画を生成する生産スケジューリング方法であって、
前記資源毎に異なる割付条件を設定可能な少なくとも１つの計画パラメータを前記オーダー又はロットに対し設定するステップと、
前記資源に割り付け可能な複数のジョブをバックワードに割り付けて山積みし、次いで山崩しするステップと、
前記複数のジョブの山積み／山崩しステップの後、前記割付条件に従い、複数のジョブの並び順を前記資源毎に制御するステップと
を含み、
前記複数のジョブの山積み／山崩しステップは、
（ａ）前記資源に割り付け可能な複数のジョブをバックワードに山積みで割り付けるステップと、
（ｂ）前記資源毎に、負荷超過があるかを調べるステップと、
（ｃ）負荷超過がある場合、前記資源毎に、割り付けられた複数のジョブの所要資源量合計がその資源の能力上限を超えている時間帯を特定するステップと、
（ｄ）前記特定された時間帯に関わる各ジョブに対して、そのジョブの割付方向とは逆の方向にジョブの開始時刻がシフトするように前記ジョブの所要時間を引き延ばすステップと、
（ｅ）前記引き延ばされたジョブを含む前記複数のジョブを、バックワードにもう一度山積みで割り付けるステップと、
（ｆ）負荷超過がなくなるまで上記ステップ（ｂ）からステップ（ｅ）の処理を繰り返すことにより、先頭工程ジョブの最早開始時刻を推定するステップと
を含む生産スケジューリング方法をコンピュータに実行させるためのプログラムを記録した、コンピュータ読み取り可能な記録媒体。
【請求項１２】
前記計画パラメータの設定ステップは、
その資源について優先させたい複数の種類の制約にそれぞれ対応しかつ所定の値を持つ複数の割付キーと、前記割付キーの値を並び順の種類に応じて正規化するための複数の正規化関数との中から所定の割付キーと正規化関数との組み合わせを指定するステップと、
前記指定した割付キーに関し、割付キー毎に設定及び変更が可能な重みを指定するステップと
を含む請求項１１に記載の生産スケジューリング方法をコンピュータに実行させるためのプログラムを記録した、コンピュータ読み取り可能な記録媒体。
【請求項１３】
前記ジョブの所要時間を引き延ばすステップは、前記複数のジョブが割り付けられている時間帯における所要資源量の平均値に応じて引き延ばすステップを含む請求項１１に記載の生産スケジューリング方法をコンピュータに実行させるためのプログラムを記録した、コンピュータ読み取り可能な記録媒体。
【請求項１４】
前記複数のジョブの並び順制御ステップは、次式で規定される評価値をその資源に割付可能なジョブ毎に計算することにより、基準ジョブに割り付けられるべき１つのジョブを決定するステップを含む請求項１１に記載の生産スケジューリング方法を、コンピュータに実行させるためのプログラムを記録した、コンピュータ読み取り可能な記録媒体。
【数３】
0004880827.tif 000006
ここで、ｉは割付ルールで指定する割付キーの番号，Ｘｉは割付キーの値、ＮＯＲＭｉは正規化関数、Ｗｉは各割付キーに設定した重みである。
【請求項１５】
前記複数のジョブの並び順制御ステップ終了後にバックワードの割付及び／又はフォワードの割付を複数回繰り返し、これによりジョブの開始時刻又は終了時刻を補正することを特徴とする請求項１１乃至１４のいずれかに記載の生産スケジューリング方法をコンピュータに実行させるためのプログラムを記録した、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各オーダー又はロットの対象物を生産するために必要とされる各々の資源に対し、その生産工程に関連した複数のジョブを時間軸方向に割り付けることにより、前記オーダー又はロットに対応した生産計画を生成する生産スケジューリング方法に関し、特に、多品種、多工程の生産計画を高速かつ精度良く立案管理する目的に好適な新規な生産スケジューリング方法に関する。更に、本発明は、かかる生産スケジューリング方法をコンピュータに実行させるためのプログラム、並びにその生産スケジューリング方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
消費者ニーズが多様化するとともに商品の寿命も短くなった現在、グローバルな競争に企業が勝ち抜いてゆくためには、顧客からの商品の急な注文や注文の変更に対しスピーディーな対応ができる生産計画システムの確立が要求される。
【０００３】
工場における生産管理ないし生産計画のコンピュータ化の始まりは、１９７０年頃から広まったＭＲＰ（Material Requirements Planning）である。ＭＲＰはオーダー情報から資材の所要量を計算するための手法で、工場の管理のコンピュータ化に非常に大きな貢献をしてきた。ＭＲＰの発展形がＭＲＰIIである。資材所要量計画だけでなく生産管理全体をＭＲＰの発展形で統合化したもので、工場全体を管理する能力がある。さらにそれを企業全体にまで範囲を広げたものが、ＥＲＰ（Enterprise Resource Planning）である。
【０００４】
ＭＲＰでは、工程間の時間を固定的なリードタイムで表現する。すなわち、ＭＲＰではリードタイムを１日のようなおおざっぱな単位で十分にとり、複数のオーダーによる工程の干渉を無視してスケジュールを立てる。このため、オーダー量の増減がスケジュール結果、つまり、リードタイムに全く影響しない非現実的なスケジュールが作成される。また、ＭＲＰの根本的な機能である資材発注も必要以上に早く行うことになり、在庫を増大させる。これは無限能力スケジューリング（無限山積み）と呼ばれている。
【０００５】
これを是正するには、各工程の加工時間を正確な時間で登録し、機械の稼動時間をオーバーしないようにスケジュールを自動調整しながら計画を立案管理する機能、すなわちＦＣＳ（Finite Capacity Scheduling：有限能力スケジューリング）が必要になってくる。現実の工場では、品目、工程の順序、各工程の製造時間、カレンダ、段取り、原料、機械、人、金型、治具、中間ストックの量の制御など多くの種類の制約が伴う。これらの多くの制約を同時に考えながらスケジュールを作成するのが、ＦＣＳの基本機能である。より細かな設定と現実上の多くの制約条件を加味してスケジュールすることにより、初めて現有の資源を最大限に活用し、リードタイムをさらに短縮させることが可能となる。
【０００６】
生産スケジューラは各機械の秒単位のスケジュールを自動作成し、スケジュールの結果は、ガントチャートでグラフィカルに表示される。例えば、あるロットの製品をＪＩＴ（Just In Time）で生産する場合、材料を複数の工程を経て機械加工し、完成した製品を検査するまでの一連の工程において、どの機械、人員等の資源を如何なる時間帯に割り当てるか（言い換えれば、機械加工、検査等のジョブをどの資源に割り当てるか）を秒単位で計算し、生産がロットの指定納期にジャストインタイムに終わるようなスケジュールを立案する。生産スケジューラのガントチャート上では、ジョブと呼ばれる複数のバーによってスケジュールの結果が表示される。実際の生産スケジューラではこれらジョブ数は数千から数万になるが、最近のパーソナルコンピュータの能力によれば、数分程度で全体のスケジュールが完了する。これにより、顧客からの注文があったときに、納期回答を正確にスピーディーに行うことができる。
【０００７】
一般的には、製品毎・工程毎に作業を担当できる機械やラインが複数存在し、各機械によって作業スピードは異なる。しかしながら、製品毎・工程毎に担当する機械を複数登録でき、かつ機械毎の作業の標準時間を登録可能な生産管理システムはまだ少ない。
【０００８】
【発明が解決しようとする課題】
ところで、従来の生産スケジューラでは、計画立案を制御するための計画パラメータは稼働率重視、納期重視など大雑把な指定方法しか設定できず、計画全体として納期重視、稼働率重視等の優先要素を考慮しているにすぎなかった。従って、現実の工場の製造現場では「この資源は、段取りを最小にして、この資源は色の薄いものから濃いものの順番に並べる」など各資源に対して、細かい品目の並び順に制御が必要であるが、従来の生産スケジューラでは実現できない。また、ジョブの並び順を資源毎に指定できないため、例えば、ある資源は段取り時間最小化を目的とし、別の資源は色が薄いものから濃い物の順でジョブを並べることを目的として、というような割付の制御は不可能である。
【０００９】
また、ジョブの並び順を指定する場合に、第１優先は「納期」、第２優先は「段取り時間」など優先する決定要素で指定する方法と、加重平均のような重み付けで決める方法が公知である。製造現場でジョブの優先順を考える時、決定要素に従った優先順で指定したい場合と、重み付けで加重平均した評価値で評価して割り付けたい場合の両方があるが、優先順位法と加重平均法の両方の機能を併せ持った方式の生産スケジューラは未だ提供されていない。
【００１０】
周知のとおり、スケジューリングには、先頭工程が指定されたＥＳＴ（Earliest Start Time ：最早開始時刻）で始まり、順に後工程を割り付けていき、左詰めなスケジュールができる、フォワード・スケジューリングと、最終工程が指定されたＬＥＴ（Latest End Time ：最遅終了時刻）すなわち納期に完了するように割り付き、順に前工程を割り付けていき、右詰めなスケジュールができる、バックワード・スケジューリングとがある。ＭＲＰでは、通常、右詰オーダーの着手時刻を決めるのに固定リードタイムで計算している。ＭＲＰIIでいうＣＲＰ（Capacity Requirement Planning：能力所要量計画）でも、タイムバケットを用いて着手時刻を計算している。このようにＭＲＰでは固定リードタイムを用いているために着手時刻が必要以上に手前に来るように計画されてしまい、オーダーの着手から完了までの期間が必要以上に長いスケジュールになってしまう。また、ＣＲＰにおいても、タイムバケットを用いているために、タイムバケットの精度でしか結果が得られない。
【００１１】
生産スケジューリングにおけるジョブの割付方法には様々な方法があり、(i) オーダーに着目し、オーダー毎に、各工程のジョブを割り付けていく方法、(ii)資源に着目し、資源毎にその資源に割付可能なジョブを割り付けていく方法、(iii) 遺伝的アルゴリズム、数理計画法など汎用のアルゴリズムを適用する方法が公知である。しかしながら、上記の各手法には、それぞれ以下のような問題点がある。すわなち、(i) の方法では、オーダーの各工程での同期化や優先順位付けは簡単であるが、資源上での品目の並び順を考慮するのが難しい。(ii)の方法では、資源上での品目の並び順を考慮するのは簡単であるが、オーダー毎の同期化や優先順位付けを考慮するのが難しい。(iii) の方法では短時間に良い結果を安定して出すのが難しい。
【００１２】
そこで、本発明は、これら従来技術の問題点に鑑み完成されたものであって、その目的は、資源の詳細スケジュールを生成するときに、オーダーの納期に間に合いながらも、資源毎にジョブが並んで欲しい順番を極力守るようにスケジュールする生産スケジューリング方法を提供することにある。
【００１３】
本発明の別の目的は、資源毎に細かいジョブの並び順を個別に制御することが可能な生産スケジューリング方法を提供することにある。
【００１４】
本発明の更に別の目的は、優先順位法と加重平均法の両方の機能を併せ持ったジョブの並び順の指定が可能な生産スケジューリング方法を提供することにある。
【００１５】
本発明の更に別の目的は、従来の固定リードタイム又はタイムバケットという概念によって制約されない、精度の高い負荷調整が可能な生産スケジューリング方法を提供することにある。
【００１６】
本発明の更に別の目的は、オーダーの各工程での同期化や優先順位付けと、資源上での品目の並び順を同時に考慮することができる生産スケジューリング方法を提供することにある。
【００１７】
なお、本発明に係る生産スケジューリング方法は、コンピュータに実行させるためのプログラム、並びにその生産スケジューリング方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体としても提供されるものである。
【００１８】
【課題を解決するための手段】
上記の目的を達成するために、本発明は、各オーダー又はロットの対象物を生産するために必要とされる各々の資源に対し、その生産工程に関連した複数のジョブを時間軸方向に割り付けることにより、前記オーダー又はロットに対応した生産計画を生成する生産スケジューリング方法において、
前記資源毎に異なる割付条件を設定可能な少なくとも１つの計画パラメータを前記オーダー又はロットに対し設定するステップと、
前記資源に割り付け可能な複数のジョブをバックワード及び／又はフォワードに割り付けて山積みし、次いで山崩しするステップと、
前記複数のジョブの山積み／山崩しステップの後、前記割付条件に従い、複数のジョブの並び順を前記資源毎に制御するステップと
を含むことを特徴とする。
【００１９】
ここで、本発明の一つの好ましい態様においては、前記計画パラメータの設定ステップは、
その資源について優先させたい複数の種類の制約にそれぞれ対応しかつ所定の値を持つ複数の割付キーと、前記割付キーの値を並び順の種類に応じて正規化するための複数の正規化関数との中から所定の割付キーと正規化関数との組み合わせを指定するステップと、
前記指定した割付キーに関し、割付キー毎に設定及び変更が可能な重みを指定するステップとを含む。
【００２０】
また、本発明の一つの好ましい態様においては、前記複数のジョブの山積み／山崩しのステップは、
資源毎に、割り付けられた複数のジョブの所要資源量合計がその資源の能力上限を超えている時間帯を特定するステップと、
特定された時間帯に関わる各ジョブに対して、そのジョブの割付方向とは逆の方向にジョブの開始時刻又は終了時刻がシフトするように前記ジョブの所要時間を引き延ばすステップとからなる。
【００２１】
上記において、好ましくは、前記ジョブの所要時間を引き延ばすステップは、前記複数のジョブが割り付けられている時間帯における所要資源量の平均値に応じて引き延ばすステップを含む。
【００２２】
一方、本発明の一つの好ましい態様においては、前記複数のジョブの並び順制御ステップは、次式で規定される評価値をその資源に割付可能なジョブ毎に計算することにより、基準ジョブに割り付けられるべき１つのジョブを決定するステップを含む。
【００２３】
【数４】
0004880827.tif 000002
【００２４】
ここで、ｉは割付ルールで指定する割付キーの番号，Ｘｉは割付キーの値、ＮＯＲＭｉは正規化関数、Ｗｉは各割付キーに設定した重みである。
【００２５】
本発明の一つの好ましい態様では、前記複数のジョブの並び順制御ステップ終了後にバックワードの割付及び／又はフォワードの割付を複数回繰り返し、これによりジョブの開始時刻又は終了時刻を補正することを特徴とする。
【００２６】
【発明の実施の形態】
以下、本発明の好ましい実施の形態を、図面に基づき説明する。
図１は、本発明に係る生産スケジューリング方法を使用した生産スケジューリングシステム（以下、「生産スケジューラ」という）の一実施形態をブロック図で示している。図１において、生産スケジューラ１は、バス１９に接続された、ＣＰＵ１１、ＲＡＭ１２、記憶装置１３、入力装置１４、出力装置１５、マスターＤＢ１６、オーダーＤＢ１７、及び計画パラメータＤＢ１８を備えている。
【００２７】
ＣＰＵ１１は、記憶装置１３に格納されたシステムプログラムを読み出して、ＲＡＭ１２に設けられたワークエリアに展開して実行することにより、生産スケジューラ１の各部の動作を制御する。特に、ＣＰＵ１１は、入力装置１４（キーボード、マウス等）における指示入力に基づいて、記憶装置１３に格納された生産スケジューラプログラムを読み出して実行することにより、後述する本発明に係る生産スケジューリング方法のそれぞれの機能を実現する。なお、出力装置１５は、ＣＲＴ、プリンター等を含むが、特にこれを限定するものではない。
【００２８】
マスターＤＢ１６は、品目マスター、工程マスター、及び資源マスターのデータをそれぞれ格納するための複数の格納部１６１、１６２、及び１６３を有している。品目マスター１６１は、品目コード、品目名、品目グループ、仕様、ロット単位、単価等の情報を含む。また、工程マスターは、工程順、工程コード、入力品目コード、出力品目コード、必要量、重なり方法等の情報を含む。更に、資源マスター１６３は、資源コード、資源名、資源グループ、仕様、製造効率、段取り効率等の情報を含む。
【００２９】
オーダーＤＢ１７は、オーダー情報を格納する。ここで、オーダー情報とは、例えば、「製品Ａを、２００１年６月３０日の１７：００までに、５０００個納品して欲しい」という顧客のオーダーに対応してシステムに投入される、品目名（製品Ａ）、納期（２００１年６月３０日、１７：００）及び生産数量（５０００個）等の情報をいう。
【００３０】
計画パラメータＤＢ１８は、ディスパッチングルール、ディスパッチングキー、正規化関数、及び重みのデータをそれぞれ格納するための複数の格納部１８１、１８２、１８３、及び１８４を有している。
【００３１】
図２は、図１の生産スケジューラ１によって本発明の生産スケジューリング方法を実施するときの全体処理の一例を示すフローチャートである。本発明の生産スケジューリング方法においては、まず、資源毎に異なる割付条件を設定可能な少なくとも１つの計画パラメータをオーダー（又はロット）に対し設定する（ステップＳ１０）。オーダー情報が投入されると（ステップＳ２０）、スケジューラは、各オーダーに係る品目の生産に必要となる工程、資源等を特定する。次いで、各資源に割り付け可能な複数のジョブを、バックワード及び／又はフォワードに割り付けて山積みし、次いで山崩しする（ステップＳ３０）。この複数のジョブの山積み／山崩しステップの後、ステップＳ１０において設定した割付条件に従い、複数のジョブの並び順を前記資源毎に制御する（ステップＳ４０）。そして、複数のジョブの並び順制御ステップＳ４０の終了後に、バックワードの割付及び／又はフォワードの割付を複数回繰り返し、これによりジョブの開始時刻又は終了時刻を補正する（以上、ステップＳ５０及びＳ５１）
【００３２】
図３は、ステップＳ１０における計画パラメータ設定の詳細ステップを示すフローチャート、図４は、計画パラメータの設定例を示す概念図である。
【００３３】
図４を参照して、本発明の生産スケジューリング方法においては、１つの計画４００に複数の計画パラメータ４０１、４０２、４０３…を登録することができる。そして、１つの計画パラメータ４０１には、資源ごとにディスパッチングルール（ジョブの並び順）４２１、…を設定することができる。１つのディスパッチングルールは、複数のディスパッチングキー４４０を指定でき、各ディスパッチングキーに対して、正規化関数に基づく正規化の方法４６０と重み４８０を指定することができる。ここで、ディスパッチングルールは、本発明における割付ルールに、また、ディスパッチングキーは、本発明における割付キーに、それぞれ該当する。
【００３４】
次に、図３、図５、図６、図７、図８、図９、図１０及び図１１を参照して、計画パラメータの設定手順を具体的に説明する。ここで、図５は、計画パラメータ設定画面の一例を示す図、図６は、ディスパッチングルールの設定画面の一例を示す図、図７は、ディスパッチングキーの具体例を、ディスパッチングキーの値の意義と正規化関数の選択範囲とを関連付けて示した表、図８は、図７に示した表中、正規化関数の選択の欄に表示した「１、２、３」について、それぞれの場合に選択可能な正規化関数の範囲を示す表、図９は、８種類の正規化関数について、関数ｆ（ｘ）の式の具体例を、当該関数のグラフ及び結果の形と共に説明した図表、図１０は、正規化関数をユーザ設定する場合の設定画面の一例を示す図、及び、図１１は、待ち時間、空き時間及びジョブ余裕時間として定義されるディスパッチングキーの具体的意義を説明するための図である。
【００３５】
まず、図５の計画パラメータ設定画面５００において、ある１つの資源を指定する（ステップＳ１０１）。そして、その資源毎にディスパッチングルールを設定する。ここでは、一例として、「混合１」という資源について、ディスパッチングルールを設定する場合について述べる。
【００３６】
前述のとおり、本発明においては、１つのディスパッチングルールについて複数のディスパッチングキーを指定することができる。本実施の形態では、図６に示すとおり、ディスパッチングルール設定画面６００においては、１つの資源についてディスパッチングキー指定部６１０において８種類のディスパッチングキーを指定することができる。
【００３７】
図７は、ディスパッチングキーの具体例を示す表である。図７には、ロット優先度、ロット納期、ロット最早開始時刻、ロット余裕時間、ロット余裕度、資源負荷、外注資源、資源優先度、前後ジョブ、段取りコスト、段取り時間、待ち時間、空き時間、ジョブ余裕時間、ジョブ製造数量、ジョブ開始時刻、ジョブ資源候補数、品目優先度、数値仕様１〜４、仕様１〜４、品目コード、ロットコードのそれぞれのディスパッチングキーについて、そのディスパッチングキーの値の意義と、システム上許容される正規化関数の選択範囲を表している。この表に用いられている用語の意義を以下、補足説明する。
【００３８】
JobEST：ジョブ最早開始時刻  Job Earliest Start Time ・・・ジョブを割付可能なもっとも早い開始時刻をいう。前工程ジョブの終了時刻、原料制約、ロット最早開始時刻などから決まる。
JobLET：ジョブ最遅終了時刻  Job Latest End Time ・・・ジョブを割付可能なもっとも遅い終了時刻をいう。後工程ジョブの開始時刻、ロット最遅終了時刻などから決まる。
JobPST：ジョブ開始時刻（推定値）  Job Predicted Start Time・・・ジョブを割り付けた結果得られる開始時刻の予測値をいい、JobPST = MAX( JobEST , 基準ジョブの終了時刻 )である。JobPSTは、副資源、内段取り資源、カレンダ等に影響を受ける。
JobPET：ジョブ終了時刻（推定値）  Job Predicted End Time ・・・ジョブを割り付けた結果得られる開始時刻の予測値をいい、JobPET = MIN( JobLET , 基準ジョブの開始時刻 )である。JobPETは、副資源、内段取り資源、カレンダ等に影響を受ける。
JobPLST ：ジョブ推定最遅開始時刻・・・納期遅れにならないぎりぎりのジョブ開始時刻の推定値をいう。
JobPEET ：ジョブ推定最早終了時刻・・・先頭工程で行き詰らないぎりぎりのジョブ終了時刻の推定値をいう。
【００３９】
待ち時間・・・前後工程ジョブ間の待ち時間をいう。理論的にはJobESTで割り付け可能であるが、実際に割り付けるとJobPSTになってしまう。待ち時間は、このJobPSTとJobESTの差をいう（図１１（ａ）参照）。
空き時間・・・基準ジョブの右に空く時間をいい、基準ジョブの終了時刻と後工程のジョブの開始時刻との差である（図１１（ｂ）参照）。
ジョブ余裕時間・・・基準ジョブの終了時刻とJobPLST との差をいう（図１１（ｃ）参照）。
【００４０】
次に、計画パラメータの設定においては、ディスパッチングキーと正規化関数との組み合わせを指定する（ステップＳ１０２）。すなわち、図６に示すディスパッチングルール設定画面６００において、ディスパッチングキー指定部６１０において所望のディスパッチングキーを指定すると共に、指定したディスパッチングキーのそれぞれについて、正規化関数指定部６２０において一つの正規化関数を指定する。この図では、「空き時間」のディスパッチングキーに対し、「ユーザ」の正規化関数を指定すると共に、「段取り時間」のディスパッチングキーに対し、「小さい順」の正規化関数を指定している。
【００４１】
図８は、図７に示した、ディスパッチングキー毎に選択可能な正規化関数の範囲を具体的に示した表であり、１の場合は、「大きい順、小さい順」のいずれか一方、２の場合は、「大きい順、小さい順、昇順、降順、昇降順、近い順、同一、ユーザ（ユーザが任意に設定する正規化関数）」のうちのいずれか一つ、３の場合は、「同一」のみを選択することができる。
【００４２】
図９は、図８に示した「大きい順、小さい順、昇順、降順、昇降順、近い順、同一、ユーザ」という８種類の正規化関数について、関数ｆ（ｘ）の式の具体例を、関数のグラフと結果の形と共に説明した図表である。ここで、ｃは定数、ｘは、「１  大きい順」及び「２  小さい順」のときは、ディスパッチングキーの値、「３  昇順、４  降順、５  昇降順、６  近い順、７  同一、８  ユーザ」のときは、（現ジョブのディスパッチングキーの値）−（基準ジョブのディスパッチングキーの値）である。正規化関数の具体例から明らかなように、正規化関数は、ディスパッチングキーの値を、０から１までの範囲の値に変換する。
【００４３】
なお、正規化関数は、ユーザが任意に設定することもできる。図１０は、ユーザが「空き時間」のディスパッチングキーに関し、「８  ユーザ」の正規化関数を任意に設定する場合の表示画面の一例を示している。図１０において、ユーザは、空き時間が０の場合、正規化関数の値が１に、空き時間が０より大きい場合は正規化関数の値が０になるようにステップ状に設定している。
【００４４】
次いで、各ディスパッチングキーについて、重みを指定する（ステップＳ１０３）。図６を再び参照して、重みは、重み指定部６３０のスライダを左右に移動させることにより指定することができる。この重みは、好ましくは０から２２３までの範囲の値を取る。
【００４５】
以上により、計画パラメータの要素、すなわちディスパッチングキー及び正規化関数の組み合わせの指定及び重みの指定によってディスパッチングルールの設定が完了する。図４の例は、「資源１」について、最初の「仕様１」というディスパッチングキーに対し、正規化関数「同一」、重みの値「３２」が指定され、第２の「段取り時間」というディスパッチングキーに対し、正規化関数「小さい順」、重みの値「０」が指定されたことを示している。すなわち、仕様１が同一のジョブを優先し、かつ、仕様１が同一（同じ品目グループ）のジョブが複数存在する場合は、段取り時間が小さいものを優先する、という設定である。また、図５の例では、中央の表示部５１０に、「混合１」という資源について、「空き時間ゼロ優先／段取り時間最小」というディスパッチングルールが設定されたことを表している。
【００４６】
本発明によれば、上記した資源毎のディスパッチングルールの設定によって、資源毎に細かいジョブの並び順を個別に制御することが可能となる。また、複数の計画パラメータを指定可能にすることにより、計画パラメータをいろいろ用意してスケジュール結果を比較することができる。これにより、段取り時間の小さい順に並べる、同一品目をまとめる、同一品目グループをまとめる、数値的仕様(色の濃さ、処理温度、幅、長さ、厚さなど)の順に並べるなどの指定が、資源毎に可能となる。
【００４７】
以上により、ステップＳ１０の計画パラメータ設定処理が終了後、オーダーを投入する（ステップＳ２０）。そして、図２に示すステップ３０の山積み／山崩し処理以降の処理を実行する。
【００４８】
次に、図２に示すステップＳ３０の山積み／山崩し処理について、図２及び図１２を参照して詳細に説明する。
【００４９】
まず、各オーダーをバックワードに山積みで割り付ける（ステップＳ３０１）。このとき、同時に資源の負荷を分散してもよい。次いで、資源毎に負荷超過があるか調べる（ステップＳ３０２）。負荷超過となっている時間帯（超過時間帯）を特定する（ステップＳ３０３）。負荷超過がある場合、超過時間帯に関わる各ジョブに対して、そのジョブが割り付いている時間帯における負荷超過の平均値を算出し（ステップＳ３０４）、その平均値に定数（定数は通常 1.0以上の値）を掛けることにより、Expansion Rate（引き延ばし率）を計算する（ステップＳ３０５）。次いで、そのジョブの占有時間（例えば製造時間）を、Expansion Rateを掛けて引き延ばす（ステップＳ３０６）。これにより、そのジョブの負荷量をExpansion Rateで割って小さくする。次いで、ステップＳ３０１に戻り、もう一度山積みする。そして、資源毎に負荷超過があるか調べ、負荷超過があればステップＳ３０３〜Ｓ３０６、及びＳ３０１を繰り返す。負荷超過がなければ終了する（ステップＳ３０２）。以上の処理は、バックワードに山積みされた状態から時間軸方向に連続的に山崩しする処理に相当する。
【００５０】
図１２（ａ）は、ステップＳ３０１において山積みした直後の負荷超過の状態を示す図、図１２（ｂ）は、ステップＳ３０２〜Ｓ３０５の処理により時間軸方向に連続的に山崩しして負荷を小さくした状態を示す図である。
【００５１】
図１２（ｂ）から、処理後は、先頭工程のＥＳＴを推定することができる。通常、後詰オーダーは、最終工程から先頭工程に向かって割付処理するが、最適化を行う場合には先頭工程から最終工程に向かって割付処理する必要がある。その場合、本実施形態のように時間軸方向に連続した山崩しを行うことによって先頭工程のＥＳＴを推定し、その時刻またはその時刻以降に開始するように制御して後詰オーダーを先頭工程から最終工程に向かって割付処理することが可能となり、前詰オーダーと後詰オーダーの混在状態においても、精度の高い負荷調整ができる。このように、本発明によれば、従来の固定リードタイム又はタイムバケットという概念によって制約されない、精度の高い負荷調整が可能な生産スケジューリングが可能となっている。
【００５２】
次に、図２に示すステップＳ４０の並び順制御について、図２及び図１３を参照して詳細に説明する。図１３は、右方向割付の処理により並び順を制御する例を示した説明図である。以下、この図１３を参照し、右方向割付の処理の例について述べる。
【００５３】
図１３（ａ）を参照して、資源１にＪｏｂ１が、資源２にＪｏｂ２がすでに割り付いている。各主資源の最も右に割り付いているジョブを基準ジョブと呼び、この例では、Ｊｏｂ１、Ｊｏｂ２が基準ジョブである。この基準ジョブのさらに右に割り付けるジョブを、以下のようにして決定する。今、資源１に割付可能なジョブは、Ｊｏｂ３、Ｊｏｂ４、資源２に割付可能なジョブは、Ｊｏｂ４、Ｊｏｂ５であり、現在、資源１と資源２であわせて４つの候補が発生している（但し、ジョブの種類は、Ｊｏｂ３、Ｊｏｂ４、Ｊｏｂ５の３種類である）。この４つの候補について、次の式により評価値を計算する（ステップＳ４０１）。
【００５４】
【数５】
0004880827.tif 000003
【００５５】
ここで、i はディスパッチングルールで指定するディスパッチングキーの番号（ｉ＝１、２、…８）、Ｘｉはディスパッチングキーの値、ＮＯＲＭｉは図９に具体例を示して説明した正規化関数であり、ディスパッチングキーの値を０から１の値に変換する。正規化関数によって正規化された値は、生産スケジューラ内部的には符号無し３２ビット数で表される。また、Ｗｉは、各ディスパッチングキーに設定した重みの値であり、図６に示したディスパッチングルール設定画面６００で設定した重みのスライダの位置により、０から２２３の値を取る。ここで、評価値は、符号無し２５６ビットの数値となる。
【００５６】
数式（１）により計算した評価値を比較し、評価値が最も高い候補のジョブを、基準ジョブの右に割り付ける（ステップＳ４０２）。資源２へのＪｏｂ４の評価値が最も高いとすると、結果は図１３（ｂ）のようになる。
【００５７】
図１３（ｂ）の状態においては、資源２の基準ジョブがＪｏｂ４となる。Ｊｏｂ４が割り付けられた結果、もしＪｏｂ４の後工程のジョブがあれば、それが新たな割付可能なジョブになる。このようにして、各資源に割付可能なジョブについて評価値を計算し、評価値が最も高い候補のジョブを割り付けるという処理を繰り返すことによって、全てのジョブを右方向に割り付けてゆく。
【００５８】
上記、評価値の算定式数式（１）によれば、例えば、２つのディスパッチングキーの指定に対して、並び順を優先順で指定したい場合、重みＷｉの差を３２以上に設定する一方、並び順を２つのディスパッチングキー間の重み付けで指定したい場合には、重みＷｉの差を３１以下に設定することで、優先順位法と加重平均法の両方の機能を表現した評価式とすることができる。これにより、優先順位法と加重平均法の両方の機能を併せ持ったジョブの並び順の指定が可能となる。
【００５９】
更に、上記ステップＳ４０１、Ｓ４０２の処理を行うことにより、オーダーの各工程での同期化や優先順位付けと、資源上での品目の並び順を同時に考慮することができる。また、実験の結果、遺伝的アルゴリズム、数理計画法など汎用のアルゴリズムを適用した場合に比較して短時間で処理が行えることがわかった。
【００６０】
なお、以上は右方向割付の例について説明したが、左方向割付のときは、右方向割付と逆の方向で同様の処理をすればよい。また、双方向割付のときは、前詰オーダーは右方向割付で、後詰オーダーは左方向割付をする。このとき、左右両方に別々に資源毎の割付可能ジョブのリストができ、それらすべての評価値を計算して割り付けるジョブを決定することにより、双方向から割り付ける。
【００６１】
ここで、前記評価値の算定式において、ディスパッチングキーの番号ｉは８迄に制限されるものではなく、１つの資源に対し設定可能なディスパッチングキーの数に応じて拡張してもよいのは勿論である。
【００６２】
次に、図２に示すステップＳ５０、Ｓ５１のバックワード／フォワード割付の繰り返し処理について、具体例を説明する。まず、右方向割付を行い、結果をチェックして、一度計画されたスケジュール結果に調整をかける。例えば、右詰オーダーの最終工程の終了日時が納期に対し指定された以上離れている場合はそのオーダーの先頭工程のＥＳＴを遅くし、逆に納期遅れしている場合にはＥＳＴを早めるなどの調整を行う。ステップＳ３０の山積み／山崩しを行うと、後詰オーダーの先頭工程のＥＳＴを推定することができるので、ここでの処理にはそのＥＳＴを利用する。この右方向の割付を繰り返し行う。この繰り返しは、指定した繰り返し回数の終了等、所定の終了条件を満足することにより、又は入力装置の操作による指示により終了させることができる。
【００６３】
なお、右方向割付と左方向割付を交互に繰り返すことにより、前詰オーダーを左に寄せ、後詰オーダーを右に寄せるように調整してもよい。
【００６４】
このスケジュール結果の改良処理は、コンピュータを使用していない時間を利用して複数回実行させることにより、いわゆる最適化のレベルを向上させることができる。
【００６５】
上記の実施形態においては、ステップＳ３０の山積み／山崩しにおいてステップＳ３０１〜Ｓ３０６により特定される時間軸方向に連続的に山崩しする処理を行っているが、それに代えて公知の通常の山積み／山崩しを行い、次いでステップＳ４０における並び順制御処理を行うように変更しても良い。また、ステップＳ５０、Ｓ５１におけるバックワード／フォワード割付処理は、適宜省略しても良い。
【００６６】
なお、本発明は、上記した実施の形態に限定されるものではなく、特許請求の範囲に記載した技術思想の範囲内において種々の変更が可能なのはいうまでもない。
【００６７】
【発明の効果】
以上説明したように、本発明によれば、以下の如き有利な効果が得られる。
【００６８】
各オーダー又はロットの対象物を生産するために必要とされる各々の資源に対し、その生産工程に関連した複数のジョブを時間軸方向に割り付けることにより、前記オーダー又はロットに対応した生産計画を生成する生産スケジューリング方法において、前記資源毎に異なる割付条件を設定可能な少なくとも１つの計画パラメータを前記オーダー又はロットに対し設定するステップと、前記資源に割り付け可能な複数のジョブをバックワード及び／又はフォワードに割り付けて山積みし、次いで山崩しするステップと、前記複数のジョブの山積み／山崩しステップの後、前記割付条件に従い、複数のジョブの並び順を前記資源毎に制御するステップとを含むことによって、資源毎に細かいジョブの並び順を個別に制御することが可能であり、資源の詳細スケジュールを生成するときに、オーダーの納期に間に合いながらも、資源毎にジョブが並んで欲しい順番を極力守るようにスケジュールすることができる。
【００６９】
また、前記計画パラメータの設定ステップに、その資源について優先させたい複数の種類の制約にそれぞれ対応しかつ所定の値を持つ複数の割付キーと、前記割付キーの値を並び順の種類に応じて正規化するための複数の正規化関数との中から所定の割付キーと正規化関数との組み合わせを指定するステップと、前記指定した割付キーに関し、割付キー毎に設定及び変更が可能な重みを指定するステップとを含めることによって、従来困難であった優先順位法と加重平均法の両方の機能を併せ持ったジョブの並び順の指定が可能となる。
【００７０】
更に、前記複数のジョブの山積み／山崩しのステップを、資源毎に、割り付けられた複数のジョブの所要資源量合計がその資源の能力上限を超えている時間帯を特定するステップと、特定された時間帯に関わる各ジョブに対して、そのジョブの割付方向とは逆の方向にジョブの開始時刻又は終了時刻がシフトするように前記ジョブの所要時間を引き延ばすステップとから構成することによって、従来の固定リードタイム又はタイムバケットという概念によって制約されない、精度の高い負荷調整が可能である。
【００７１】
特に、前記複数のジョブの並び順制御ステップが、所定の式に従い、評価値をその資源に割付可能なジョブ毎に計算することにより、基準ジョブに割り付けられるべき１つのジョブを決定するステップを含むことによって、オーダーの各工程での同期化や優先順位付けと、資源上での品目の並び順を同時に考慮したスケジューリングができる。
【図面の簡単な説明】
【図１】本発明に係る生産スケジューリング方法を使用した生産スケジューラの一実施形態を示すブロック図である。
【図２】図１の生産スケジューラによって本発明の生産スケジューリング方法を実施するときの全体処理の一例を示すフローチャートである。
【図３】図２のステップＳ１０における計画パラメータ設定の詳細ステップを示すフローチャートである。
【図４】計画パラメータの設定例を示す概念図である。
【図５】計画パラメータ設定画面の一例を示す図である。
【図６】ディスパッチングルールの設定画面の一例を示す図である。
【図７】ディスパッチングキーの具体例を、ディスパッチングキーの値の意義と正規化関数の選択範囲とを関連付けて示した表である。
【図８】図７に示した表中、正規化関数の選択の欄に表示した「１、２、３」について、それぞれの場合に選択可能な正規化関数の範囲を示す表である。
【図９】８種類の正規化関数について、関数ｆ（ｘ）の式の具体例を、当該関数のグラフ及び結果の形と共に説明した図表である。
【図１０】正規化関数をユーザ設定する場合の設定画面の一例を示す図である。
【図１１】待ち時間、空き時間及びジョブ余裕時間として定義されるディスパッチングキーの具体的意義を説明するための図である。
【図１２】複数の資源の負荷状態を示す図であり、図１２（ａ）は、図２のステップＳ３０１において山積みした直後の負荷超過の状態を示す図、図１２（ｂ）は、図２のステップＳ３０２〜Ｓ３０５の処理により時間軸方向に連続的に山崩しして負荷を小さくした状態を示す図である。
【図１３】右方向割付の処理により並び順を制御する例を示した説明図である。
【符号の説明】
１    生産スケジューラ
１１    ＣＰＵ
１２    ＲＡＭ
１３    記憶装置
１４    入力装置
１５    出力装置
１６    マスターＤＢ
１７    オーダーＤＢ
１８    計画パラメータＤＢ
４００    計画
４０１、４０２、４０３…    計画パラメータ
４４０    ディスパッチングキー
４６０    正規化関数
４８０    重み
５００    計画パラメータ設定画面
６００    ディスパッチングルール設定画面
【図１】
0004880827.tif 000007
【図２】
0004880827.tif 000008
【図３】
0004880827.tif 000009
【図４】
0004880827.tif 000010
【図５】
0004880827.tif 000011
【図６】
0004880827.tif 000012
【図７】
0004880827.tif 000013
【図８】
0004880827.tif 000014
【図９】
0004880827.tif 000015
【図１０】
0004880827.tif 000016
【図１１】
0004880827.tif 000017
【図１２】
0004880827.tif 000018
【図１３】
0004880827.tif 000019