(57)【特許請求の範囲】
【請求項１】
一度に１品目の生産が可能な１つの生産ラインでＩ個の品目ｉ（ｉ＝１，…，Ｉ）を生産する工程に適用される生産スケジュールを、中間結果記憶エリア、最終結果記憶エリア及び生産スケジュール記憶エリアが確保された記憶手段と、初期設定手段と、品目別最適化手段と、判定手段と、機械干渉制御手段と、格納手段と、最適生産スケジュール生成手段と、出力手段とを有するコンピュータにより生成する多品目ロットサイズスケジューリング方法であって、
前記Ｉ個の品目ｉについて、品目ｉ別に、且つ計画対象期間が一定の時間間隔で分割されたタイムスロットｔ（ｔ＝１，…，Ｔ）毎に設定される決定変数であって、前記タイムスロットｔが前記品目ｉの生産のために使用されるか否かを示すための決定変数の初期値を、前記初期設定手段が、前記中間結果記憶エリアに設定する第１の初期設定ステップと、
前記タイムスロットｔ毎のペナルティコストであって、前記タイムスロットｔが複数の品目の生産に使用される状態である品目間機械干渉の程度に応じて更新されるペナルティコストの初期値を、前記初期設定手段が、前記中間結果記憶エリアに設定する第２の初期設定ステップと、
前記Ｉ個の品目ｉの各々について、前記中間結果記憶エリアに格納されている前記品目ｉの前記タイムスロットｔ毎の決定変数及び前記タイムスロットｔ毎のペナルティコストに依存する総コストを最適化することによって前記品目ｉの在庫量の状態を最適化するための前記品目ｉ別の１次元の部分最適化問題を、前記品目別最適化手段が、前記Ｉ個の品目ｉのうちの他の品目とは独立に解き、前記品目ｉ別に、且つ前記タイムスロットｔ毎に、新たな決定変数を解として取得する解法ステップと、
前記中間結果記憶エリアに格納されている、前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数を、前記解法ステップで取得された解に前記品目別最適化手段が更新する決定変数更新ステップと、
前記決定変数更新ステップで更新された前記中間結果記憶エリア上の前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数に基づいて、前記判定手段が、前記Ｉ個の品目ｉのうちの複数の品目の生産に使用されるタイムスロットの数を算出し、当該算出されたタイムスロットの数に基づいて前記品目間機械干渉の程度の大小を判定する判定ステップと、
前記判定ステップで前記品目間機械干渉の程度が大きいと判定された場合、前記機械干渉制御手段が、当該品目間機械干渉の程度を小さくするように、前記中間結果記憶エリアに前記タイムスロットｔ毎に格納されている前記ペナルティコストを、前記算出されたタイムスロットの数に対応する値だけ更新し、前記ペナルティコストの更新の都度、前記解法ステップを再実行させるペナルティコスト更新ステップと、
前記判定ステップで前記品目間機械干渉の程度が小さいと判定された場合、前記品目間機械干渉が解消されたとして、前記中間結果記憶エリアに前記品目ｉ別、前記タイムスロットｔ毎に格納されている前記決定変数を、前記格納手段が前記最終結果記憶エリアに格納する格納ステップと、
前記最終結果記憶エリアに格納された前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数に基づいて、前記最適生産スケジュール生成手段が、前記品目ｉ別にロットサイズとロット順序を表す生産スケジュールを生成し、当該生成された生産スケジュールを前記生産スケジュール記憶エリアに格納する生産スケジュール生成ステップと、
前記生産スケジュール記憶エリアに格納された前記生産スケジュールを前記出力手段が出力する出力ステップと
を具備することを特徴とする多品目ロットサイズスケジューリング方法。
【請求項２】
前記品目ｉ別に、且つ前記タイムスロットｔ毎に設定される前記決定変数の初期値には、前記タイムスロットｔが前記品目ｉの生産のために使用されることを示す第１の値または前記タイムスロットｔが前記品目ｉの生産のために使用されないことを示す第２の値のうちの前記第２の値が用いられることを特徴とする請求項１記載の多品目ロットサイズスケジューリング方法。
【請求項３】
前記１次元の部分最適化問題が、任意のタイムスロットｔにおける前記品目ｉ毎の前記決定変数のうち、１品目の決定変数のみが生産のために使用されることを示すことができるという機械干渉に関する制約が前記ペナルティコストを表すラグランジュ乗数による重み付けにより解除された非制約部分最適化問題であり、
前記ペナルティコスト更新ステップにおいて前記機械干渉制御手段は、前記ラグランジュ乗数を単調非減少方向に更新することを特徴とする請求項２記載の多品目ロットサイズスケジューリング方法。
【請求項４】
前記解法ステップにおいて前記品目別最適化手段は、前記１次元の部分最適化問題を、タイムスロットｔにおける品目ｉの前記決定変数、当該タイムスロットｔの終了時の当該品目ｉの在庫状態、及び当該品目ｉへのセットアップに必要な段取時間の残り時間を、それぞれ状態変数δit，ｘit，ｓitとして、タイムスロット０から前記タイムスロットtまでの各タイムスロットにおいて採られた最適化に伴って発生するコストの和を表す最適コスト関数Ｖit（δit，ｘit，ｓit）により解くことを特徴とする請求項３記載の多品目ロットサイズスケジューリング方法。
【請求項５】
前記ペナルティコストは前記生産ラインにおける機械使用料に相当し、
前記解法ステップにおいて前記品目別最適化手段は、前記ラグランジュ乗数をｕt、前記品目ｉへのセットアップに必要な段取時間をｓimax、前記品目ｉへのセットアップに必要な段取時間の残り時間をｓit、前記品目ｉの１タイムスロットｔ当たりの在庫保管費をｈiをとすると、前記最適コスト関数を表す次式の再帰関係式
【数１】
0004780260.tif 000022
により、前記１次元の部分最適化問題を解くことを特徴とする請求項４記載の多品目ロットサイズスケジューリング方法。
【請求項６】
前記ペナルティコスト更新ステップにおいて前記機械干渉制御手段は、前記ラグランジュ乗数ｕtを、前記解法ステップで前記品目ｉ別に且つタイムスロットｔ毎に取得された解δitをもとに、次式
【数２】
0004780260.tif 000023
により更新することを特徴とする請求項５記載の多品目ロットサイズスケジューリング方法。
【請求項７】
一度に１品目の生産が可能な１つの生産ラインでＩ個の品目ｉ（ｉ＝１，…，Ｉ）を生産する工程に適用される生産スケジュールを、中間結果記憶エリア、最終結果記憶エリア及び生産スケジュール記憶エリアが確保された記憶手段と、初期設定手段と、品目別最適化手段と、判定手段と、機械干渉制御手段と、格納手段と、最適生産スケジュール生成手段と、出力手段とを有するコンピュータにより生成するためのプログラムであって、
前記コンピュータに、
前記Ｉ個の品目ｉについて、品目ｉ別に、且つ計画対象期間が一定の時間間隔で分割されたタイムスロットｔ（ｔ＝１，…，Ｔ）毎に設定される決定変数であって、前記タイムスロットｔが前記品目ｉの生産のために使用されるか否かを示すための決定変数の初期値を、前記初期設定手段が、前記中間結果記憶エリアに設定する第１の初期設定ステップと、
前記タイムスロットｔ毎のペナルティコストであって、前記タイムスロットｔが複数の品目の生産に使用される状態である品目間機械干渉の程度に応じて更新されるペナルティコストの初期値を、前記初期設定手段が、前記中間結果記憶エリアに設定する第２の初期設定ステップと、
前記Ｉ個の品目ｉの各々について、前記中間結果記憶エリアに格納されている前記品目ｉの前記タイムスロットｔ毎の決定変数及び前記タイムスロットｔ毎のペナルティコストに依存する総コストを最適化することによって前記品目ｉの在庫量の状態を最適化するための前記品目ｉ別の１次元の部分最適化問題を、前記品目別最適化手段が、前記Ｉ個の品目ｉのうちの他の品目とは独立に解き、前記品目ｉ別に、且つ前記タイムスロットｔ毎に、新たな決定変数を解として取得する解法ステップと、
前記中間結果記憶エリアに格納されている、前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数を、前記解法ステップで取得された解に前記品目別最適化手段が更新する決定変数更新ステップと、
前記決定変数更新ステップで更新された前記中間結果記憶エリア上の前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数に基づいて、前記判定手段が、前記Ｉ個の品目ｉのうちの複数の品目の生産に使用されるタイムスロットの数を算出し、当該算出されたタイムスロットの数に基づいて前記品目間機械干渉の程度の大小を判定する判定ステップと、
前記判定ステップで前記品目間機械干渉の程度が大きいと判定された場合、前記機械干渉制御手段が、当該品目間機械干渉の程度を小さくするように、前記中間結果記憶エリアに前記タイムスロットｔ毎に格納されている前記ペナルティコストを、前記算出されたタイムスロットの数に対応する値だけ更新し、前記ペナルティコストの更新の都度、前記解法ステップを再実行させるペナルティコスト更新ステップと、
前記判定ステップで前記品目間機械干渉の程度が小さいと判定された場合、前記品目間機械干渉が解消されたとして、前記中間結果記憶エリアに前記品目ｉ別、前記タイムスロットｔ毎に格納されている前記決定変数を、前記格納手段が前記最終結果記憶エリアに格納する格納ステップと、
前記最終結果記憶エリアに格納された前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数に基づいて、前記最適生産スケジュール生成手段が、前記品目ｉ別にロットサイズとロット順序を表す生産スケジュールを生成し、当該生成された生産スケジュールを前記生産スケジュール記憶エリアに格納する生産スケジュール生成ステップと、
前記生産スケジュール記憶エリアに格納された前記生産スケジュールを前記出力手段が出力する出力ステップと
を実行させるプログラム。
【請求項８】
一度に１品目の生産が可能な１つの生産ラインでＩ個の品目ｉ（ｉ＝１，…，Ｉ）を生産する工程に適用される生産スケジュールを、中間結果記憶エリア、最終結果記憶エリア及び生産スケジュール記憶エリアが確保された記憶手段と、初期設定手段と、品目別最適化手段と、判定手段と、機械干渉制御手段と、格納手段と、最適生産スケジュール生成手段と、出力手段とを有するコンピュータにより生成するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
前記Ｉ個の品目ｉについて、品目ｉ別に、且つ計画対象期間が一定の時間間隔で分割されたタイムスロットｔ（ｔ＝１，…，Ｔ）毎に設定される決定変数であって、前記タイムスロットｔが前記品目ｉの生産のために使用されるか否かを示すための決定変数の初期値を、前記初期設定手段が、前記中間結果記憶エリアに設定する第１の初期設定ステップと、
前記タイムスロットｔ毎のペナルティコストであって、前記タイムスロットｔが複数の品目の生産に使用される状態である品目間機械干渉の程度に応じて更新されるペナルティコストの初期値を、前記初期設定手段が、前記中間結果記憶エリアに設定する第２の初期設定ステップと、
前記Ｉ個の品目ｉの各々について、前記中間結果記憶エリアに格納されている前記品目ｉの前記タイムスロットｔ毎の決定変数及び前記タイムスロットｔ毎のペナルティコストに依存する総コストを最適化することによって前記品目ｉの在庫量の状態を最適化するための前記品目ｉ別の１次元の部分最適化問題を、前記品目別最適化手段が、前記Ｉ個の品目ｉのうちの他の品目とは独立に解き、前記品目ｉ別に、且つ前記タイムスロットｔ毎に、新たな決定変数を解として取得する解法ステップと、
前記中間結果記憶エリアに格納されている、前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数を、前記解法ステップで取得された解に前記品目別最適化手段が更新する決定変数更新ステップと、
前記決定変数更新ステップで更新された前記中間結果記憶エリア上の前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数に基づいて、前記判定手段が、前記Ｉ個の品目ｉのうちの複数の品目の生産に使用されるタイムスロットの数を算出し、当該算出されたタイムスロットの数に基づいて前記品目間機械干渉の程度の大小を判定する判定ステップと、
前記判定ステップで前記品目間機械干渉の程度が大きいと判定された場合、前記機械干渉制御手段が、当該品目間機械干渉の程度を小さくするように、前記中間結果記憶エリアに前記タイムスロットｔ毎に格納されている前記ペナルティコストを、前記算出されたタイムスロットの数に対応する値だけ更新し、前記ペナルティコストの更新の都度、前記解法ステップを再実行させるペナルティコスト更新ステップと、
前記判定ステップで前記品目間機械干渉の程度が小さいと判定された場合、前記品目間機械干渉が解消されたとして、前記中間結果記憶エリアに前記品目ｉ別、前記タイムスロットｔ毎に格納されている前記決定変数を、前記格納手段が前記最終結果記憶エリアに格納する格納ステップと、
前記最終結果記憶エリアに格納された前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数に基づいて、前記最適生産スケジュール生成手段が、前記品目ｉ別にロットサイズとロット順序を表す生産スケジュールを生成し、当該生成された生産スケジュールを前記生産スケジュール記憶エリアに格納する生産スケジュール生成ステップと、
前記生産スケジュール記憶エリアに格納された前記生産スケジュールを前記出力手段が出力する出力ステップと
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
一度に１品目の生産が可能な１つの生産ラインでＩ個の品目ｉ（ｉ＝１，…，Ｉ）を生産する工程に適用される生産スケジュールを生成する多品目ロットサイズスケジューリング装置であって、
中間結果記憶エリア、最終結果記憶エリア及び生産スケジュール記憶エリアが確保された記憶手段と、
前記Ｉ個の品目ｉについて、品目ｉ別に、且つ計画対象期間が一定の時間間隔で分割されたタイムスロットｔ（ｔ＝１，…，Ｔ）毎に設定される決定変数であって、前記タイムスロットｔが前記品目ｉの生産のために前記生産ラインにより使用されるか否かを示すための決定変数の初期値を、前記中間結果記憶エリアに設定すると共に、前記タイムスロットｔ毎のペナルティコストであって、前記タイムスロットｔが複数の品目の生産に使用される状態である品目間機械干渉の程度に応じて更新されるペナルティコストの初期値を、前記中間結果記憶エリアに設定する初期設定手段と、
前記Ｉ個の品目ｉの各々について、前記中間結果記憶エリアに格納されている前記品目ｉの前記タイムスロットｔ毎の決定変数及び前記タイムスロットｔ毎のペナルティコストに依存する総コストを最適化することによって前記品目ｉの在庫量の状態を最適化するための前記品目ｉ別の１次元の部分最適化問題を、前記Ｉ個の品目ｉのうちの他の品目とは独立に解き、前記品目ｉ別に、且つ前記タイムスロットｔ毎に、新たな決定変数を解として取得し、前記中間結果記憶エリアに格納されている、前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数を、前記取得された解に更新する品目別最適化手段と、
前記更新された前記中間結果記憶エリア上の前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数に基づいて、前記Ｉ個の品目ｉのうちの複数の品目の生産に使用されるタイムスロットの数を算出し、当該算出されたタイムスロットの数に基づいて前記品目間機械干渉の程度の大小を判定する判定手段と、
前記判定手段により前記品目間機械干渉の程度が大きいと判定された場合、当該品目間機械干渉の程度を小さくするように、前記中間結果記憶エリアに前記タイムスロットｔ毎に格納されている前記ペナルティコストを、前記算出されたタイムスロットの数に対応する値だけ更新し、前記ペナルティコストの更新の都度、前記品目別最適化手段を再動作させる機械干渉制御手段と、
前記判定手段により前記品目間機械干渉の程度が小さいと判定された場合、前記品目間機械干渉が解消されたとして、前記中間結果記憶エリアに前記品目ｉ別、前記タイムスロットｔ毎に格納されている前記決定変数を、前記最終結果記憶エリアに格納する格納手段と、
前記最終結果記憶エリアに格納された前記品目ｉ別、前記タイムスロットｔ毎の前記決定変数に基づいて、前記品目ｉ別にロットサイズとロット順序を表す生産スケジュールを生成し、当該生成された生産スケジュールを前記生産スケジュール記憶エリアに格納する最適生産スケジュール生成手段と、
前記生産スケジュール記憶エリアに格納された前記生産スケジュールを出力する出力手段と
を具備することを特徴とする多品目ロットサイズスケジューリング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１つの生産ラインで複数の品目を生産する工程における最適スケジューリングに好適な多品目ロットサイズスケジューリング方法に関する。
【０００２】
【従来の技術】
一度に高々１品目の生産が可能な１つの生産ラインで複数の品目を生産する工程におけるスケジューリングでは、生産する品目のロット順序の決定（lot sequencing）と各々のロットサイズの決定（lot sizing）という全く異なる２つの決定の局面がある。従来、この種のスケジューリング（ロットスケジューリング）では、ロットサイズは予め品目毎に登録されることが多い。
【０００３】
したがって通常、スケジューリングのアルゴリズムではロットの順序のみが取り扱われ、ロットサイズは時間的に不変としてアルゴリズムの外に置かれている。逆にロットのサイズを可変にしてこれを最適化しようとする場合には、生産する品目の順序の最適決定が難しく、通常この順序を所与としている。
【０００４】
従来、ロットの順序を決める問題は順列組合せに代表される離散数学の範疇で扱われ、ロットサイズを決める問題は微分して０と置く方法に代表される連続数学の範疇で扱わてきた。
【０００５】
ところがスケジューリングの問題には、離散的決定の局面と連続的決定の局面とが混在しており、これらは互いに分かち難く結びいている。ここに解法上の難しさがあった。
【０００６】
そのために従来のスケジューリングにおいては、ロットの順序を決める問題及びロットサイズを決める問題のいずれにおいても、一方を陽に取り扱うためには他方に人為的な制約を置くことを余儀なくされていた。つまり従来は、人為的な制約を置いて、一度に１つの決定の局面のみを取り上げて、これらを順に取り扱う方法が取られてきた。例えば、負荷計画、ロットサイズの決定、差し立て、ロットの順序計画等と言われているものがそれに当たる。
【０００７】
【発明が解決しようとする課題】
上記したように従来のスケジューリングにおいては、ロットの順序を決める問題及びロットサイズを決める問題のいずれにおいても、全く異なる２つの決定の局面の一方を陽に取り扱うためには、他方に人為的な制約を置くことを余儀なくされていた。このため従来は、この人為的な制約が障害となって、両者を同時に最適化することを困難にしてきた。また、日々変化する出荷要求に対して迅速で柔軟な対応ができないという問題もあった。
【０００８】
本発明は上記事情を考慮してなされたものでその目的は、ロットの順序とサイズとを同時に最適化できる多目的ロットサイズスケジューリング方法を提供することにある。
【０００９】
【課題を解決するための手段】
本発明は、一度に高々１品目の生産が可能な１つの生産ラインでＩ個の品目ｉ（ｉ＝１，…，Ｉ）を生産する工程における多品目ロットサイズスケジューリング方法であって、上記生産ラインで生産されるすべての品目ｉ（ｉ＝１，…，Ｉ）について、その品目の生産在庫を最適化する品目別スケジュールを他の品目とは独立に取得するステップと、取得された品目別スケジュールに対する当該各品目間の機械干渉の程度の大小を判定するステップと、各品目間の機械干渉の程度が大きいと判定された場合、当該機械干渉の程度を小さくするように上記取得ステップを再実行させるステップと、各品目間の機械干渉の程度が小さいと判定された場合、その際に上記取得ステップで求められている品目別スケジュールに基づいて品目別にロットサイズとロット順序を生成するステップとを備えたことを特徴とする。
【００１０】
このように本発明においては、一度に高々１品目の生産が可能な１つの生産ラインで複数の品目を生産品目を切り換えながら生産するのに必要な、全体の生産スケジュールを立てる問題を直接解くのではなく、即ち、ロットサイズ、ロット順序など、全体のスケジュールを立てる問題に含まれる異質の決定の局面を、人為的制約のもとで、ひとつひとつ特定するのではなく、人為的な制約を必要としない品目別のスケジュールを求める問題と、この品目別スケジュールを求めることにより発生する品目別スケジュール（品目別解)の間の機械干渉を解消する問題(調整の問題)とに変換することにより、機械干渉が解消されたと判定された際の品目別スケジュールに基づき、上記異質の決定の局面をすべて同時に解決することが可能となる。
【００１１】
品目別のスケジュールを求める問題とは、例えば生産ラインで生産される品目ｉの在庫量の状態ｘiを最適化するための１次元の部分最適化問題である。この１次元の部分最適化問題を解く解法ステップでは、品目ｉ別に、かつ計画対象期間が一定の時間間隔で分割された各タイムスロットｔ（ｔ＝１，…，Ｔ）毎に、そのタイムスロットｔが当該品目ｉの生産のために使用されているか否かを示す決定変数を、品目別スケジュールを表す解（品目別解）として取得するとよい。
【００１２】
また、１次元の部分最適化問題を、任意のタイムスロットｔにおける品目ｉ毎の決定変数のうち、高々１品目の決定変数のみが生産のために使用されていることを示すことができるという機械干渉に関する制約がラグランジュ乗数による重み付けにより解除された非制約部分最適化問題とすることにより、品目別解の間の機械干渉を解消する問題(調整の問題)を、機械の使用料に相当するラグランジュ乗数を単調非減少方向に更新することで簡単に解決できるようになる。
【００１３】
また、１次元の部分最適化問題を扱うことで、決定変数、在庫状態（在庫の推移）、及び段取時間の残り時間を陽に取り扱うことができるため、この１次元の部分最適化問題を、タイムスロットｔにおける品目ｉの決定変数、当該タイムスロットｔの終了時の在庫状態、及び品目ｉへのセットアップに必要な段取時間の残り時間を、それぞれ状態変数δit，ｘit，ｓitとして、タイムスロット０からタイムスロットtまでの各タイムスロットにおいて採られた最適決定に伴って発生するコストの和を表す最適コスト関数Ｖit（δit，ｘit，ｓit）により解くことができる。ここでは、品目ｉへの切り換えのセットアップのための段取時間（セットアップタイム）の残り時間を遅れ要素としてスケジューリングすることが可能となる。また、段取時間に対応する段取費（品目ｉへの切り換え費）、在庫状態に対応する保管費もコスト計算に考慮することができる。
【００１４】
ここで、最適コスト関数Ｖit（δit，ｘit，ｓit）を、発明の実施の形態の欄中に示されている式（１７）及び（１８）の再帰関係式、つまり(δit-1,ｓit-1）から(δit,ｓit）への状態推移の関係を考慮して、δitとｓitとの取り得る状態別に場合分けした再帰関係式で表して、当該再帰関係式により上記１次元の部分最適化問題を解くならば、少ない計算量で解を求めることができる。
【００１５】
また、式（１８）中のラグランジュ乗数ｕtを、上記解法ステップで品目ｉ別にかつタイムスロットｔ毎に取得された解δitをもとに、発明の実施の形態の欄中に示されている式（１９）に従って更新するならば、ラグランジュ乗数ｕtを常に単調非減少方向に更新することができる。これによりラグランジュ乗数ｕtが限りなく振動を繰り返すのを防止でき、品目別スケジュールを求める問題（１次元の部分最適化問題）と、品目別スケジュール（品目別解)の間の機械干渉を解消する問題(調整の問題)とを繰り返す回数を少なくすることができる。
【００１６】
なお、以上の多品目ロットサイズスケジューリング方法に係る本発明は、装置（多品目ロットサイズスケジューリング装置）に係る発明としても成立する。
また、本発明は、コンピュータに当該発明に相当する手順を実行させるための（或いはコンピュータを当該発明に相当する各手段として機能させるための、或いはコンピュータに当該発明に相当する機能を実現させるための）プログラムを記録したコンピュータ読み取り可能な記録媒体に係る発明としても成立し、更に当該プログラム自体に係る発明としても成立する。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【００１８】
図１は本発明の一実施形態に係る多品目ロットサイズスケジューリング装置の機能ブロック構成を示す。
【００１９】
この図１のスケジューリング装置は、図２に示すブロック構成のパーソナルコンピュータ等の計算機によって実現される。図２の計算機は、当該計算機全体を制御するＣＰＵ２１、当該ＣＰＵ２１が実行する最適化スケジューリングプログラム（２４１）を含む各種プログラム及びデータ等が記憶される主メモリ２２とを備えている。
【００２０】
図２の計算機はまた、外部記憶装置としての例えば磁気ディスク装置（以下、ＨＤＤと称する）２３と、記録媒体としての例えばＣＤ−ＲＯＭ２４２に予め格納されている情報を計算機内に読み込むことが可能なＣＤ−ＲＯＭ装置２４とを有している。図２の例では、ＣＤ−ＲＯＭ２４２には、１つの生産ラインで複数の品目を生産する工程における多品目ロットサイズスケジューリングを行うための最適化スケジューリングプログラム２４１が予め格納されている。この最適化スケジューリングプログラム２４１は、ＣＤ−ＲＯＭ装置２４によりＣＤ−ＲＯＭ２４２から計算機内に読み込まれて、ＨＤＤ２３に格納（インストール）されていものとする。ＣＰＵ２１がＨＤＤ２３から最適化スケジューリングプログラム２４１を主メモリ２２上に読み込んで当該プログラム２４１を実行することにより、図１のスケジューリング装置の機能ブロック構成が実現される。
【００２１】
図２の計算機は更に、入力装置としてのキーボード２５と、表示用の出力装置としてのディスプレイ２６とを有している。ＣＰＵ２１、主メモリ２２、ＨＤＤ２３、ＣＤ−ＲＯＭ装置２４、キーボード２５及びディスプレイ２６は、システムバス２７により相互接続されている。
【００２２】
次に、図１のスケジューリング装置の構成を説明する前に、本実施形態で適用する、生産のロットサイズとロット順序等の決定の局面をすべて同時に最適化するための最適スケジューリングの基本原理について説明する。
【００２３】
＜取り扱う問題＞
本実施形態で取り扱う問題は次の通りである。まず、複数の品目を生産している１つの生産ラインがあるものとする。このラインでは、１度に生産できる品目は高々１つであり、どの品目にも生産開始時に段取費と段取時間とがかかる。これらはいずれも品目に固有である。一方、どの品目にもある期間に亙って期別に出荷要求があり、品切れや納期遅れは許されない。上限を超えない範囲内で在庫を用意することはできるが、これらには保管費がかかり、これも品目に固有で、保管の量と期間とに比例する。上記した段取時間（段取費）と出荷要求（在庫）という２つの制約のもとで、ある計画対象期間に亙って総コストを最小にする生産スケジュールを生成することが本実施形態の問題である。
【００２４】
＜目的＞
本実施形態の目的は、上述の問題に含まれるすべての意思決定の局面を全体最適化の視点から同時に最適化することにある。そのために、時間と空間の刻みを細かにして数理モデルの解像度を向上させることによって、意思決定に必要な顧客の要求と生産の状況とを、数理モデルによって陽に取り扱うことを可能にする。次に、従来のスケジューリングにおける人為的制約をすべて除去することによって、解の許容集合あるいは解の空間を飛躍的に拡大することを可能にする。最後に、数値計算に当たっては、問題を品目別に分解した後、品目毎に他と独立に生産在庫の最適化問題を解き、この操作と解に対する品目間の機械干渉を解消するための調整とを交互に繰り返すことによって、問題に含まれるすべての決定の局面を単一のモデルの中で同時に最適化することを可能にする。
【００２５】
このように本実施形態の特徴は、問題に含まれる異質の決定の局面を、ひとつひとつ特定することなく、品目別の最適解に対する機械干渉を解消する問題に変換することによって、すべて同時に解決する点にある。段取時間を考慮したロットサイズスケジューリング問題において、ロットの順序とサイズとを同時に最適化する方法は今日まで知られておらず、本実施形態ではこれを可能にする
＜解法のスキーム＞
本実施形態においては、各品目の在庫状態の時間的推移を陽に取り扱う。また、段取時間の残り時間が状態の推移に関係する。後者は制御の遅れとなって現れる。そこで、この問題を遅れのある最適制御過程の1つであるとみなして、これらの局面を動的計画法に定式化して取り扱う。
【００２６】
ところが動的計画法の計算に要する時間とメモリ容量は、状態ベクトルの次元の多項式オーダーになり、さらに品目１つに対して、在庫の状態と機械のセッティング、段取時間の残り時間（残り段取時間）が状態ベクトルの次元を構成するために、つまり多次元であるために、多品目からなる問題に対しては、状態ベクトルの次元が品目数に比例して増え、計算に要する時間とメモリ容量とが指数オーダーとなって、合理的な範囲内に納まらない。
【００２７】
そこで本実施形態では、問題を品目別に分解して次元を縮小している。つまり、スケジュールに含まれる様々な意思決定の局面を直接的に決定する立場を捨てて、簡単に解ける品目別部分最適化問題に変換している。そして、品目別に分解した後、これらにラグランジュ（Lagrange）緩和法を採用する。これをラグランジュ分解調整法と称する。
【００２８】
ラグランジュ分解調整法の基本的なスキームは以下の通りである。品目毎に計画対象期間に亙る生産在庫計画を立てる。これによってどの品目についても品目別のスケジュール、したがって、ロットのサイズとその時間的位置が決まる。ロットは１つとは限らないし、サイズも時間的に可変である。その結果品目間に機械干渉が見られなければ、それで計算は終了し、そうでなければ、その時間帯の機械の使用料に相当するラグランジュ乗数の値を上げて、再度各品目の部分最適化問題を解き直す。このプロセスを機械干渉が解消するまで繰り返すことによって実行可能解あるいは近似最適解を導くものである。
【００２９】
＜記号＞
本実施形態で適用される記号を、
ｉ：品目番号(＝1,2,…,T）を表す
ｔ：タイムスロット（＝1,2,…,T）を表す
ｃi：品目ｉへの切り換え費（所与）
ｓimax：品目ｉへの段取時間（所与）
ｐi：品目ｉの１タイムスロット当たりの生産能力（所与）
ｈi：品目ｉの１タイムスロット当たりの在庫保管費（所与）
ｒit：品目ｉのタイムスロットｔにおける出荷要求量（所与）
ｘit：品目ｉのタイムスロットｔにおける期末在庫量（後述する動的計画法においては状態変数として扱われ、初期在庫量ｘi0は所与）
ｓit：品目ｉへのセットアップに必要な段取時間（セットアップタイム）の残り時間（残り段取時間、これも状態変数でｓi0：は所与）
ｕt：ラグランジュ乗数
のように定義する。
【００３０】
また、次式に示す２種の記号も定義する。
【００３１】
【数３】
0004780260.tif 000002
【００３２】
＜制約条件＞
在庫量の制約
各品目ｉについて、在庫下限Ｌiを下回ったり、在庫上限Ｕiを上回ることは許されない。したがって、タイムスロットｔにおける品目ｉの期末在庫量ｘitは次式で表される範囲内に入っていなければならない。
【００３３】
【数４】
0004780260.tif 000003
【００３４】
在庫推移方程式
タイムスロットｔにおける各品目ｉの生産は、δit＝１でかつｓit＝０の状態のとき以外には行なえないので、在庫推移は以下の式に従う。
【００３５】
【数５】
0004780260.tif 000004
【００３６】
残り段取時間の推移方程式
タイムスロットｔにおける各品目ｉの残り段取時間ｓitは、機械（生産ライン）の遊休中はｓit＝０であり、品目を切り換えたとき、即ちδit-1＝０からδit＝１へ状態が変わったときにｓimaxとなる。以後ｓitは、時間が１タイムスロット経過する毎に１ずつ０になるまで減少し、それ以後は再び切り換えが起こるまでその状態を維持する。したがってｓitは次式
0004780260.tif 000005
に従わなければならない。
【００３７】
機械干渉に関する制約
機械（生産ライン）は１台（１ライン）であり、一度に高々１品目の生産が可能である。このラインでは、ある品目への切り換え中に、別の品目の生産あるいは切り換えを行なうこともできない。この制約を機械干渉に関する制約と呼び、次式が成立する必要がある。
【００３８】
【数６】
0004780260.tif 000006
【００３９】
＜目的関数と定式化された問題＞
発生する費用は品目ｉへの切り換え時に発生する段取費ｃiと各タイムスロット末毎に期末在庫量ｘitに比例して発生する在庫保管費ｈiの２種類である。これらはそれぞれｃi（１−δit-1）δit，ｈiiｘitにより表される。したがって品目ｉのタイムスロットｔにおけるコストをｆ（δit-1，δit，ｘit）で表すと、このコストｆi（δit-1，δit，ｘit）は次式で表される。
【００４０】
【数７】
0004780260.tif 000007
【００４１】
タイムスロットｔにおけるコストは、先行するタイムスロットｔ−１における決定変数δit-1にも依存する点に注意されたい。
【００４２】
したがって、目的関数は次式のようになる。
【００４３】
【数８】
0004780260.tif 000008
【００４４】
上記式（６）の目的関数は、品目ｉのタイムスロットｔにおけるコストの全品目（ｉ＝１，…，Ｉ）、全期間（ｔ＝１，…，Ｔ）についての総和を表す。したがって、取り扱うべき問題は、式（６）の目的関数の値を最小とすることであり、次式で表される。
【００４５】
【数９】
0004780260.tif 000009
【００４６】
なお、式（７）中のs.t.（１），（２），（３），（４）は、取り扱うべき問題が式（１），（２），（３），（４）の制約を受けることを示す。
【００４７】
＜解法の準備＞
（非制約の最適化問題への変換）
式（７）で示される問題には制約式（２），（３），（４）がある。そのうち（２）と（３）は推移方程式である。これに対し、制約式（４）は、施される制御についての制約である。したがってこの問題は制約（４）のもとでの最適制御過程の問題となる。制約付最適化問題については、制約式をラグランジュ乗数により重み付けして目的関数に加えることによりラグランジュ関数を導いた上で、問題を非制約の最適化問題に変換することによって、パラメトリックに取り扱うことができる。このことは広く知られており、ラグランジュ緩和法と呼ばれている。
【００４８】
最適制御過程の問題も最適化問題であることに変わりはない。そこで、以下ではその流れに従って問題を再定式化する。
【００４９】
（ラグランジュ関数と非制約最適化問題及びその下界）
まず、ペナルティコスト（ラインの使用料）を表すラグランジュ乗数ｕtを用いて、ラグランジュ関数を次式のように定義する。
【００５０】
【数１０】
0004780260.tif 000010
【００５１】
次に、上記した非制約最適化問題を以下のように定義する。
まず、所与のｕに対して、次式で示されるようにｈ(ｘ，ｕ)を定義する。
【００５２】
【数１１】
0004780260.tif 000011
【００５３】
これにより、結局、本実施形態で扱う最適化問題、つまり式（１），（２），（３），（４），（７）の問題は、次式を求めることと等価である。
【００５４】
【数１２】
0004780260.tif 000012
【００５５】
さて、式（１０）のｈ(ｘ，ｕ)が目的関数の下界を与えることは広く知られており、反復計算を途中で打ち切った場合にも、この下界を用いて、最適値からの相対誤差の見積もりができることがこの解法のひとつの利点である。
【００５６】
（従来のラグランジュ乗数更新ルールの欠陥）
ラグランジュ緩和法において広く知られているラグランジュ乗数ｕtの更新ルールをこの問題に適用すれば、次式のようになる。
【００５７】
【数１３】
0004780260.tif 000013
【００５８】
式（１１）において、νは数値計算の繰り返し番号、αはステップサイズで、例えばα＝０．００５のようにモデルの外から与えられる。式（１１）の括弧（）の中の値は、タイムスロットｔにおける繰り返し数νでの機械干渉数、つまり式（４）の制約から外れる度合いを表し、正値（式（４）の制約から外れている場合）、０（１品目のみセットアップまたは生産中）、または−１（遊休中）のいずれかを取る。
【００５９】
式（１１）に示す更新ルールの特徴は、ｕtνの値が非負である限り、括弧（）内の値に応じて乗数の値を増減する点にある。しかし、本実施形態のように機械干渉を解消することによって多品目のスケジューリング問題を解こうとする場合には、この更新ルールは役に立たない。このルールを適用すると、意に反して、通常、解は振動し収束には至らないからである。
【００６０】
主たる理由は次の点にある。まず、スケジューリング問題には通常、機械（ライン）に遊休、即ちすべての品目ｉについてδit＝０の期間（タイムスロットｔ）が発生する。これに対し、遊休が全く存在しない状況、即ち切換え時間を含めた稼働率が１００％に達するような状況にあっては、事実上出荷要求を満たすスケジュールを期待することが難しい。したがって、遊休があれば、機械干渉を解消するための制約式（４）に関して、狭義不等号（＜）の成り立つタイムスロットｔが常に存在する。換言すれば、ラグランジュ乗数の更新ルール（１１）における任意の繰り返しνに対して、括弧（）の中の値が−１であるタイムスロットｔが常に存在することである。この性質は計算の過程で保存される。したがって式（１１）のもとでは、明らかに、乗数ｕitは限りなく振動を繰り返す。
【００６１】
一方、多くの制約付き最適化問題に対するラグランジュ緩和法においては、計算過程の比較的早い段階において、効いていない制約式、すなわち、狭義不等号で満たされる制約式を特定することができる。その場合には、ラグランジュ乗数の値が０となって、それらを反復計算の過程で消去することができる。ところが本実施形態で対象とする最適化問題においては、計算の過程で狭義不等号で満たされる制約式、すなわち機械に遊休の生じている期を特定することができない。この点にこの問題の特異性がある。これが従来の更新ルール（１１）が適用できない理由である。
【００６２】
＜解法＞
（ラグランジュ分解・調整法）
本実施形態で対象とする最適化問題には以下の理由により加算分離可能性が成り立つ。まず、制約式（１），（２），（３）は各品目ｉについての制約であるから、分離可能であることは自明である。また、制約式（３）と目的関数について、いずれも品目ｉについて和の形に表すことができる。したがってラグランジュ関数も、所与のラグランジュ乗数ｕtの値に対して、次式のようにｉについて和の形に表すことができる。
【００６３】
【数１４】
0004780260.tif 000014
【００６４】
そこで、δi（δi1，…，δiT）,xi（δi0，…，δiT）と置き、さらにｉ＝１，…，Ｉに対して、次式のように置く。
【００６５】
【数１５】
0004780260.tif 000015
【００６６】
すると、式（１２）は次式のように表される。
【００６７】
【数１６】
0004780260.tif 000016
【００６８】
よって、所与のｕに対して次式が成り立つ。
【００６９】
【数１７】
0004780260.tif 000017
【００７０】
この式（１５）は、所与のｕのもとで在庫の状態推移ベクトルｘを持つＩ次元（多次元）の最適制御過程の問題（左辺）が、右辺の第１項のΣ内のｍｉｎＬi（δi，ｘi，ｕ）に示されるように、在庫の状態がｘiである１次元の最適制御過程の問題をｉ＝１，…，Ｉについて、それぞれ他と独立に解くことに変換（再定式化）されたことを示している。
【００７１】
この１次元の最適制御過程の問題を部分最適化問題と呼ぶ。この部分最適化問題は、次式のように表される。
【００７２】
【数１８】
0004780260.tif 000018
【００７３】
（部分最適化問題の動的計画法による定式化）
取り得る状態
タイムスロットｔにおいて取り得る決定δitは、先行するタイムスロットｔ−１における在庫状態ｘit-1に依存するばかりでなく、先行するタイムスロットｔ−１における機械の状態δit-1、及び同じタイムスロットｔにおける残り段取時間ｓitにも依存する。(δit-1,ｓit-1）から(δit,ｓit）への状態推移の関係を整理すれば、図５のようになる。図中の○印はタイムスロットｔ−１の状態に対して許される決定が存在することを、×印はそうでないことを表している。
【００７４】
図６は、この(δit,ｓit）の状態遷移を示す。図６において、（０，０）の状態６１が次のタイムスロットに取り得る状態は、同じ状態６１または(１，ｓimax）の状態６２のいずれかである。状態６１は、機械（ライン）の遊休中を示す。また、状態６２は、品目を切り換えたとき、つまりセットアップの開始時を示す。この状態６２、即ち(１，ｓimax）の状態６２が次のタイムスロットに取り得る状態は(１，ｓimax−１）の状態６３のみである。
【００７５】
状態６３は、セットアップ開始時から時間が１タイムスロットだけ経過し、残り段取時間がｓimax−１となったことを示す。以下、同様にして、時間が１タイムスロット経過する毎に、(δit,ｓit）のうちのδitが１のままの状態で、ｓitだけが１ずつ減少していき、やがて（１，１）の状態６４に遷移する。状態６４は残り段取時間が１（１タイムスロット分）であり、セットアップ終了直前の状態となったことを示す。状態６２から状態６４までの期間がセットアップ中の期間６５となる。状態６４、即ち（１，１）の状態６４が次のタイムスロットに取り得る状態は（１，０）の状態６５のみである。状態６５は生産中を示す。この状態６５、即ち（１，０）の状態６５が次のタイムスロットに取り得る状態は、同じ状態６５または(０，０）の状態６１のいずれかである。
【００７６】
以上に述べた(δit-1,ｓit-1）から(δit,ｓit）への状態推移の関係は、後述する動的計画法の再帰関係式を導く際に役立つ。
【００７７】
最適コスト関数
本実施形態では、最適コスト関数を
Ｖit（δit，ｘit，ｓit）
で表し、タイムスロットｔにおいて品目ｉの決定変数（機械のセッティングの状態）、在庫状態（タイムスロットｔの終了時の在庫量）、残り段取時間が、それぞれδit，ｘit，ｓitであるとき、タイムスロット０からタイムスロットｔまでの各タイムスロットにおいて採られた最適決定に伴って発生するコストの和であると定義する。
【００７８】
ここで重要なことは、最適コスト関数中に、決定変数δitがｘit，ｓitと同様の状態変数として入っている点である。つまり、決定変数δitが状態変数の役割も担っている点である。この場合、最適コスト関数は動的計画法による次の再帰関係式で表すことができる。
【００７９】
【数１９】
0004780260.tif 000019
【００８０】
この最適コスト関数は、図５及び図６の(δit-1,ｓit-1）から(δit,ｓit）への状態推移の関係を考慮して、δitとｓitとの取り得る状態別に場合分けしたもので、δit，ｘit，ｓitの１次式の和の形で表されている。
【００８１】
（本実施形態で適用するラグランジュ乗数の更新ルール）
先の（従来のラグランジュ乗数更新ルールの欠陥）の欄で述べた理由によって解が振動することを避けるために、本実施形態では次式に示す新規なラグランジュ乗数の更新ルールを、ｔ＝１，…，Ｔに対して適用する。
【００８２】
【数２０】
0004780260.tif 000020
【００８３】
この式（１９）において、括弧（）の中の値は、正値（式（４）の制約から外れている場合）、０（１品目のみセットアップまたは生産中）、または−１（遊休中）のいずれかを取る。したがって、式（１９）の括弧｛｝の中の値は｛０，正値｝，｛０，０｝，｛０，−１｝のいずれかとなり、括弧｛｝内の最大値は、それぞれ正値，０，０となる。つまり、制約式（４）に関して狭義不等号が成立するタイムスロットｔが存在しても、括弧｛｝内の最大値は負とならない。この括弧｛｝内の最大値は、タイムスロットｔにおける繰り返し数νでの機械干渉数、つまり式（４）の制約から外れる度合いを表している。
【００８４】
したがって、式（１９）のように、この括弧｛｝内の最大値、即ちタイムスロットｔにおける繰り返し数νでの機械干渉数（非負）を繰り返し数νでのラグランジュ乗数に加えた値を、次の繰り返し数ν＋１でのラグランジュ乗数とすることにより、従来のように乗数ｕtが限りなく振動を繰り返すのを防止し得る。
【００８５】
（ラグランジュ分解調整法の適用による最適スケジューリングの概要）
式（１６）の部分最適化問題を、式（１８）の最適コスト関数を用いて解き、その解を求める動作と、式（１８）中のラグランジュ乗数を式（１９）により更新（調整）する動作とを、機械干渉が解消していると判定できるまで繰り返す。機械干渉が解消していると判定できた際に求められた解を用いて生産スケジュールを生成する。
【００８６】
＜最適スケジューリングの実現例＞
以上が、本実施形態で適用する最適スケジューリングの基本原理である。図１のスケジューリング装置は、この基本原理を適用して最適スケジューリングを行うもので、品目別最適化部１１と、在庫量抽出部１２と、残り段取時間抽出部１３と、品目間機械干渉判定部１４と、品目間機械干渉制御部１５と、最適生産スケジュール生成部１６と、主制御部１７とを備えている。これら各部１１〜１７は、図２の計算機内のＣＰＵ２１が最適化スケジューリングプログラム２４１を実行することにより実現される機能要素である。
【００８７】
品目別最適化部１１は、各品目ｉについて、式（１６）の部分最適化問題を、式（１８）の最適コスト関数を用いて、他の品目とは独立に解き、その解を求める動作を実行する。在庫量抽出部１２は、品目別最適化部１１での動作に必要な在庫量を抽出する。残り段取時間抽出部１３は、品目別最適化部１１での動作に必要な残り段取時間を抽出する。
【００８８】
品目間機械干渉判定部１４は、品目別最適化部１１により求められた品目ｉ毎の解から、機械干渉が解消されていると見なせるか否かを判定する。品目間機械干渉制御部１５は、機械干渉が解消されていない場合に、機械干渉が減少するように品目別最適化部１１を制御する。具体的には、品目別最適化部１１が用いる最適コスト関数中のラグランジュ乗数を更新する。最適生産スケジュール生成部１６は機械干渉が解消されたものと判定された場合、その際に求められた解を用いて生産スケジュールを生成する。主制御部１７はスケジューリング装置全体を制御する。
【００８９】
また、主メモリ２２には、品目ｉ別のｐi，ｓimax，ｃi，ｈi，ｘi0の各データからなる生産データを格納するための生産データ記憶エリア２２１と、品目ｉ毎の指定タイムスロットｔにおけるｒitからなる出荷要求量データを格納するための出荷要求量記憶エリア２２２と、品目別最適化部１１で算出されたタイムスロットｔまでのコストの和Ｖit（δit，ｘit，ｓit）及び当該和Ｖit（δit，ｘit，ｓit）に対応する状態変数δit，ｘit，ｓitを格納するためのコスト記憶エリア２２３とが確保されている。δit，ｘit，ｓitを格納するエリアを別に確保することも可能である。主メモリ２２には更に、品目別最適化部１１で最適部分問題を解くことにより求められた解の中間結果を格納するための中間結果記憶エリア２２４と、同じく最終結果を格納するための最終結果記憶エリア２２５と、最適生産スケジュール生成部１６により生成された生産スケジュールを格納するための生産スケジュール記憶エリア２２６とが確保されている。
【００９０】
次に図１の構成の動作を、図３のフローチャートを参照して説明する。
まず、図１のスケジューリング装置を用いて最適生産スケジュールを作成するには、品目ｉ別のｐi，ｓimax，ｃi，ｈi，ｘi0の各データからなる生産データを予め入力しておく必要がある。ここでは、この生産データをキーボード２５を用いて例えば図７に示すような表形式で入力するものとする。入力された生産データは、主制御部１７の制御により主メモリ２２内の生産データ記憶エリア２２１に格納される。また、この生産データ記憶エリア２２１に格納された生産データをＨＤＤ２３に保存して、再利用することができる。また、生産スケジュールの生成が必要となる毎に、品目ｉ毎の指定タイムスロットｔにおけるｒitからなる出荷要求量データが入力されて、主メモリ２２内の出荷要求量記憶エリア２２２に格納される。ここでは、品目数が１０品目（Ｉ＝１０）、計画対象期間が２週間、１日７時間の３シフトで、タイムスロットを３０分刻みにして、Ｔ＝５８８タイムスロットであるものとする。つまり本実施形態では、出荷要求量データを入力することで、計画対象期間を３０分刻みで５８８個のタイムスロットが設定されることになる。この刻み幅、つまり１タイムスロット期間は小さいほど、最適化問題（数理モデル）の解像度を上げることができる。計算量は刻みの数（タイムスロット数）の１次のオーダーにしかならないから、刻み幅を小さくすることをそれほど恐れる必要はない。即ち、刻み幅を半分にしても計算時間は倍にしかならない。勿論、必ずしも刻み幅を著しく小さくする必要はなく、丸め誤差が無視し得る程度であれば、実用上問題ない。丸め誤差とは、対象となる期間を刻み幅の整数倍に丸めることにより生じる誤差をいう。例えば３０分刻みの場合に、段取時間が２時間４５分であるとすると、当該段取時間は３時間に丸められることから、丸め誤差は１５分となる。
【００９１】
この状態で、キーボード２５からスケジューリングの開始指示が入力されると、主制御部１７により初期化処理が行われ、繰り返し数（繰り返し番号）νと、中間結果記憶エリア２２４上の品目ｉ（ｉ＝１，…，Ｉ）別、タイムスロットｔ（ｔ＝１，…，Ｔ）別の決定変数δitνと、タイムスロットｔ（ｔ＝１，…，Ｔ）別のラグランジュ乗数ｕtνとを初期値０に設定する（ステップ３０１〜３０３）。
【００９２】
すると主制御部１７は品目別最適化部１１を起動する。品目別最適化部１１はまず、品目ｉを１に初期設定する（ステップ３０４）。次に品目別最適化部１１は、品目ｉの式（１６）に示す部分最適化問題を、在庫推移方程式（２）及び残り段取時間推移方程式（３）の制約のもとで、式（１８）の最適コスト関数を用いて解き、その解δitνを求める（ステップ３０５）。
【００９３】
このステップ３０５では、品目別最適化部１１は、部分最適化問題を解くために、各品目ｉ毎に、δit，ｘit，ｓit（ｔ＝１，…，Ｔ）の組み合わせで、式（１８）に従ってＶit（δit，ｘit，ｓit）を逐次算出する。このδit，ｘit，ｓitの組み合わせ毎のＶit（δit，ｘit，ｓit）の値は、当該δit，ｘit，ｓitと対をなして主メモリ２２内のコスト記憶エリア２２３に格納される。このコスト記憶エリア２２３におけるＶit（δit，ｘit，ｓit）の格納形態の模式図を図４に示す。
【００９４】
次に品目別最適化部１１は、コスト記憶エリア２２３上の最適コストＶit（δit，ｘit，ｓit）をｔ＝Ｔから逆に辿る。即ち品目別最適化部１１は、まずタイムスロットＴまでの最適コストＶiT（δiT，ｘiT，ｓiT）を探し、そこから当該最適コストＶiTに至った直前のタイムスロットＴ−１での（δiT-1，ｘiT-1，ｓiT-1）を決定する。これをｔ＝１まで繰り返す。この動作を、最適コストＶit（δit，ｘit，ｓit）から、当該最適コストＶitに至った直前のタイムスロットｔ−１での（δit-1，ｘit-1，ｓit-1）を決定する場合を例に簡単に説明する。
【００９５】
まず、ｘit-1は、最適コストＶit（δit，ｘit，ｓit）と対をなして格納されているｘitを用いることで、在庫推移方程式（２）に従い、在庫量抽出部１２により容易に求められる。
【００９６】
次に、δit-1，ｓit-1は、図５または図６の(δit-1,ｓit-1）から(δit,ｓit）への状態推移の関係を逆に辿ることで、（δit，ｓit）が例えば（０，０）であれば、（δit-1，ｓit-1）は（０，０）または（１，０）のいずれかであることが容易に判別できる。そして、式（１８）の最適コスト関数の最初のｍｉｎ値算出式を例にとると、第１段の式ではＶit-1（δit-1，ｘit-1，ｓit-1）が（０，ｘit-1，０）であり、第２段の式ではＶit-1（δit-1，ｘit-1，ｓit-1）が（１，ｘit-1，０）である。したがって、最適コストＶit（δit，ｘit，ｓit）が、第１段または第２段のいずれを選んで算出されたかにより、ｘit-1が決定される。この処理は、残り段取時間抽出部１３により行われる。このとき、δit-1も決定される。一般には、ｘit-1，ｓit-1が決定されることで、δit-1も決定される。このδit-1の決定は品目別最適化部１１により行われる。
【００９７】
以上のようにして、品目ｉについて最適コストを与えるδitν（ｔ＝１，…，Ｔ）が品目別最適化部１１により求められる。すると品目別最適化部１１は、中間結果記憶エリア２２４上のδitνを、求めた最新のδitνに更新する（ステップ３０６）。
【００９８】
次に品目別最適化部１１はｉを１だけインクリメントし、そのインクリメント後のｉがＩを超えていないならば、未処理の品目が存在するものと判定し、品目ｉについて、上記ステップ３０５以降の処理を実行する。そして、ｉ＝１，…，Ｉのすべての品目について解δitνを求めると、品目間機械干渉判定部１４が起動される。
【００９９】
品目間機械干渉判定部１４は、全品目の解δitνから各品目ｉ間のδit＝１のタイムスロットの重なりの回数を表す機械干渉数を算出し、その数から機械干渉が解消されていると見なせるか否かを判定する（ステップ３０９）。具体的には、次式に示すように、繰り返し数νにおける全品目、全期間（全計画対象期間）に亙る機械干渉数の総和をＴで除して得られる、１タイムスロット当たりの平均機械干渉数を算出し、その値が閾値（ここでは、０．１）以下であるか否かにより、機械干渉が解消されていると見なせるか否かを判定する。
【０１００】
【数２１】
0004780260.tif 000021
【０１０１】
もし、上記ステップ３０９の判定で機械干渉が解消されていると見なせない場合、品目間機械干渉制御部１５が起動される。品目間機械干渉制御部１５は、繰り返し数（反復回数）νを１だけインクリメントし（ステップ３１０）、しかる後にラグランジュ乗数ｕtνを前記式（１９）により更新（調整）して、品目別最適化部１１を起動する（ステップ３１１）。
【０１０２】
これにより、ラグランジュ乗数ｕtνを用いてステップ３０５が品目数分繰り返し実行され、品目別の解δitνが求められる。ここでは、式（１９）のラグランジュ乗数の更新ルールから、任意のタイムスロットｔと繰り返しνに対して、ｕtν+1はｕtν以下、即ちｕtνはνに対して単調非減少である。したがって、ラグランジュ乗数ｕ0，ｕ1，ｕ2，…の軌跡は、係数（ステップサイズ）αを刻み幅とする格子点上を０から順にたどって遠ざかる点列となる。
【０１０３】
やがて、上記ステップ３０９において、品目間機械干渉判定部１４により、機械干渉が解消されていると見なせると判定されると、そのときの品目別の解δitνが最終結果記憶エリア２２５に格納され（ステップ３１２）、最適生産スケジュール生成部１６が起動される。
【０１０４】
最適生産スケジュール生成部１６は、最終結果記憶エリア２２５に格納されている品目別の解δitνをもとに、生産スケジュールを生成して、生産スケジュール記憶エリア２２６に格納する（ステップ３１３）。前記したように品目別の解δitνは０−１変数により表される。そして、時間軸上に刻まれたタイムスロットｔに、当該スロットで品目ｉを処理（セットアップまたは生産）すれば１で、そうでなければ０で表される。したがって、解δitνにおける１の並びとその時間的位置により品目別にロットサイズとそれらのロットの時間的位置を生成することができる。ロットの時間的位置は実行可能なスケジュールにおいてロットの順序を決定するための情報を与える。つまり本実施形態においては、品目間の解（スケジュール）の機械干渉が解消されていると見なせる解δitνが求まった時点で、ロットサイズとロット順序を同時に生成することができる。
【０１０５】
生産スケジュール記憶エリア２２６に格納された生産スケジュールは、図２中のディスプレイ２６に表示されると共に、キーボード２５からの印刷指示入力に応じて、または自動的に、プリンタ装置（図示せず）から印刷出力される。また、この生産スケジュールをそのままの形で、または所定のデータ変換により、生産ラインでの制御情報として用いることができる。
【０１０６】
図７に示す生産データ及び図８に示す出荷要求量データに基づく最適スケジューリングが行われた場合の、繰り返し数νに対する目的関数値の推移及び機械干渉の数の推移の例を、それぞれ図９及び図１０に示す。ここでは、式（１９）中のα（ステップサイズ）として０，０１を適用している。同様に、上記最適スケジューリングの結果としての、在庫推移及びガントチャートの例を、それぞれ図１１（ａ）及び（ｂ）に示す。
【０１０７】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０１０８】
【発明の効果】
以上詳述したように本発明によれば、全体の生産スケジュールを立てる問題を、品目別のスケジュールを求める問題と、この品目別スケジュールを求めることにより発生する品目別スケジュール（品目別解)の間の機械干渉を解消する問題(調整の問題)とに変換して処理するようにしたので、人為的な制約を排除した最適なスケジューリングが実現でき、しかも機械干渉が解消されたと判定された際の品目別スケジュールに基づき、ロットの順序とサイズとを同時に決定することができる。
【図面の簡単な説明】
【図１】図１は本発明の一実施形態に係る多品目ロットサイズスケジューリング装置の機能ブロック構成を示す図。
【図２】図１のスケジューリング装置を実現する計算機のブロック構成図。
【図３】図１の構成の動作を説明するためのフローチャート。
【図４】主メモリ２２内のコスト記憶エリア２２３におけるＶit（δit，ｘit，ｓit）の格納形態の模式図。
【図５】  (δit-1,ｓit-1）から(δit,ｓit）への状態推移の関係を説明するための図。
【図６】  (δit,ｓit）の状態遷移図。
【図７】生産データの一例を示す図。
【図８】出荷要求量データの一例を示す図。
【図９】図７に示す生産データ及び図８に示す出荷要求量データに基づく最適スケジューリングが行われた場合の、繰り返しνに対する目的関数値の推移の例を示す図。
【図１０】図７に示す生産データ及び図８に示す出荷要求量データに基づく最適スケジューリングが行われた場合の、繰り返しνに対する機械干渉の数の推移の例を示す図。
【図１１】上記最適スケジューリングの結果としての、在庫推移及びガントチャートの例を示す図。
【符号の説明】
１１…品目別最適化部
１２…在庫量抽出部
１３…残り段取時間抽出部
１４…品目間機械干渉判定部
１５…品目間機械干渉制御部
１６…最適生産スケジュール生成部
１７…主制御部
２１…ＣＰＵ
２２…主メモリ
２２１…生産データ記憶エリア
２２２…出荷要求量記憶エリア
２２３…コスト記憶エリア
２２４…中間結果記憶エリア
２２５…最終結果記憶エリア
２２６…生産スケジュール記憶エリア
２４１…最適化スケジューリングプログラム
２４２…ＣＤ−ＲＯＭ
【図１】
0004780260.tif 000024
【図２】
0004780260.tif 000025
【図３】
0004780260.tif 000026
【図４】
0004780260.tif 000027
【図５】
0004780260.tif 000028
【図６】
0004780260.tif 000029
【図７】
0004780260.tif 000030
【図８】
0004780260.tif 000031
【図９】
0004780260.tif 000032
【図１０】
0004780260.tif 000033
【図１１】
0004780260.tif 000034