(57)【特許請求の範囲】
【請求項１】
複数の機械により複数の工程で当該各工程に対応した品目をそれぞれ処理し、かつ少なくとも１つの機械または工程では段取を伴う品目の切り換えが可能な多品目多工程生産システムに適用される生産スケジュールをコンピュータにより生成する多品目多工程ロットサイズスケジューリング方法であって、
前記各工程で処理される各品目ｉについて、品目間の機械干渉に関する制約が第１のラグランジュ乗数による重み付けにより緩和されると共に仕掛品在庫量を非負とする制約が第２のラグランジュ乗数による重み付けにより緩和された１次元の部分最適化問題を他の品目とは独立に解いて、品目ｉ別及び機械別に、かつ計画対象期間が一定の時間間隔で分割されたタイムスロットｔ毎に、前記タイムスロットｔが前記品目ｉの生産のために前記機械により使用されているか否かを示す決定変数を解として取得する解法ステップであって、前記１次元の部分最適化問題を、任意のタイムスロットｔにおける品目ｉの前記決定変数をδit、前記第１のラグランジュ乗数をμ、前記第２のラグランジュ乗数をλiとすると共に、当該タイムスロットｔの終了時の、当該品目ｉの次工程へ実際に渡される累積出荷量に代えて当該品目ｉの当該タイムスロットtまでの各タイムスロットにおける外部需要を当該タイムスロットｔにおける品目ｉに展開した累積量を用いて算出される見かけの在庫の状態、及び品目ｉへのセットアップに必要な段取時間の残り時間を、それぞれ状態変数ｘit，ｓitとして、当該タイムスロットtまでの各タイムスロットにおいて採られた最適決定に伴って発生するコストの和を表す最適コスト関数Ｖt（δit，ｘit，ｓit，μ，λi）により解く解法ステップと、
前記解法ステップで品目ｉ別及び機械別に、かつタイムスロットｔ毎に求められた決定変数δitに基づいて、機械別に、同一機械で複数の品目が生産されるタイムスロットｔの数を算出し、当該機械別に算出されたタイムスロットｔの数に基づいて、機械別に、品目間の同一機械における機械干渉の程度の大小を判定する機械干渉判定ステップと、
前記解法ステップで品目ｉ別及び機械別に、かつタイムスロットｔ毎に求められた決定変数δitと組をなす前記状態変数ｘitに基づいて算出される仕掛品在庫量が非負でないタイムスロットｔの数を全品目ｉについて算出し、当該算出されたタイムスロットｔの数に基づいて、仕掛品在庫の充足の有無を判定する仕掛品在庫充足判定ステップと、
前記機械干渉判定ステップにより前記品目間の機械干渉の程度が大きいと判定された場合には、当該機械干渉の程度を小さくするように前記第１のラグランジュ乗数μを更新し、前記仕掛品在庫充足判定ステップにより前記仕掛品在庫が充足していないと判定された場合には、当該仕掛品在庫を充足させるように前記第２のラグランジュ乗数λiを更新し、その都度前記解法ステップを再実行させるステップと、
前記機械干渉判定ステップにより前記品目間の機械干渉の程度が小さいと判定され、かつ前記仕掛品在庫充足判定ステップにより前記仕掛品在庫が充足していると判定された場合、その際に前記解法ステップで品目ｉ別及び機械別に、かつタイムスロットｔ毎に求められている決定変数δitに基づいて生産スケジュールを生成するステップと
を具備することを特徴とする多品目多工程ロットサイズスケジューリング方法。
【請求項２】
前記品目間の機械干渉に関する制約が、任意のタイムスロットｔにおける品目ｉ別及び機械別の決定変数δitのうち、同一機械について少なくとも１品目の決定変数のみが生産のために使用されていることを示すことができるという相互関係制約であることを特徴とする請求項１記載の多品目多工程ロットサイズスケジューリング方法。
【請求項３】
前記最適コスト関数で算出されるコストは、前記第１のラグランジュ乗数μに基づいて算出される機械の使用料に相当する第１のペナルティコストと、前記第２のラグランジュ乗数λiに基づいて算出される機械の使用料に相当する第２のペナルティコストと、前記品目ｉの処理によって新たに付加される価値に対するタイムスロット当たりのエシェロン在庫保管費ｈiと前記状態変数ｘitとで決まるコストとを含むことを特徴とする請求項２記載の多品目多工程ロットサイズスケジューリング方法。
【請求項４】
複数の機械により複数の工程で当該各工程に対応した品目をそれぞれ処理し、かつ少なくとも１つの機械または工程では段取を伴う品目の切り換えが可能な多品目多工程生産システムにおける多品目多工程ロットサイズスケジューリングのためのプログラムであって、
コンピュータに、
前記各工程で処理される各品目ｉについて、品目間の機械干渉に関する制約が第１のラグランジュ乗数による重み付けにより緩和されると共に仕掛品在庫量を非負とする制約が第２のラグランジュ乗数による重み付けにより緩和された１次元の部分最適化問題を他の品目とは独立に解いて、品目ｉ別及び機械別に、かつ計画対象期間が一定の時間間隔で分割されたタイムスロットｔ毎に、前記タイムスロットｔが前記品目ｉの生産のために前記機械により使用されているか否かを示す決定変数を解として取得する解法ステップであって、前記１次元の部分最適化問題を、任意のタイムスロットｔにおける品目ｉの前記決定変数をδit、前記第１のラグランジュ乗数をμ、前記第２のラグランジュ乗数をλiとすると共に、当該タイムスロットｔの終了時の、当該品目ｉの次工程へ実際に渡される累積出荷量に代えて当該品目ｉの当該タイムスロットtまでの各タイムスロットにおける外部需要を当該タイムスロットｔにおける品目ｉに展開した累積量を用いて算出される見かけの在庫の状態、及び品目ｉへのセットアップに必要な段取時間の残り時間を、それぞれ状態変数ｘit，ｓitとして、当該タイムスロットtまでの各タイムスロットにおいて採られた最適決定に伴って発生するコストの和を表す最適コスト関数Ｖt（δit，ｘit，ｓit，μ，λi）により解く解法ステップと、
前記解法ステップで品目ｉ別及び機械別に、かつタイムスロットｔ毎に求められた決定変数δitに基づいて、機械別に、同一機械で複数の品目が生産されるタイムスロットｔの数を算出し、当該機械別に算出されたタイムスロットｔの数に基づいて、機械別に、品目間の同一機械における機械干渉の程度の大小を判定する機械干渉判定ステップと、
前記解法ステップで品目ｉ別及び機械別に、かつタイムスロットｔ毎に求められた決定変数δitと組をなす前記状態変数ｘitに基づいて算出される仕掛品在庫量が非負でないタイムスロットｔの数を全品目ｉについて算出し、当該算出されたタイムスロットｔの数に基づいて、仕掛品在庫の充足の有無を判定する仕掛品在庫充足判定ステップと、
前記機械干渉判定ステップにより前記品目間の機械干渉の程度が大きいと判定された場合には、当該機械干渉の程度を小さくするように前記第１のラグランジュ乗数μを更新し、前記仕掛品在庫充足判定ステップにより前記仕掛品在庫が充足していないと判定された場合には、当該仕掛品在庫を充足させるように前記第２のラグランジュ乗数λiを更新し、その都度前記解法ステップを再実行させるステップと、
前記機械干渉判定ステップにより前記品目間の機械干渉の程度が小さいと判定され、かつ前記仕掛品在庫充足判定ステップにより前記仕掛品在庫が充足していると判定された場合、その際に前記解法ステップで品目ｉ別及び機械別に、かつタイムスロットｔ毎に求められている決定変数δitに基づいて生産スケジュールを生成するステップと
を実行させるためのプログラム。
【請求項５】
複数の機械により複数の工程で当該各工程に対応した品目をそれぞれ処理し、かつ少なくとも１つの機械または工程では段取を伴う品目の切り換えが可能な多品目多工程生産システムに適用される生産スケジュールを生成する多品目多工程ロットサイズスケジューリング装置であって、
前記各工程で処理される各品目ｉについて、品目間の機械干渉に関する制約が第１のラグランジュ乗数による重み付けにより緩和されると共に仕掛品在庫量を非負とする制約が第２のラグランジュ乗数による重み付けにより緩和された１次元の部分最適化問題を他の品目とは独立に解いて、品目ｉ別及び機械別に、かつ計画対象期間が一定の時間間隔で分割されたタイムスロットｔ毎に、前記タイムスロットｔが前記品目ｉの生産のために前記機械により使用されているか否かを示す決定変数を解として取得する解法ステップであって、前記１次元の部分最適化問題を、任意のタイムスロットｔにおける品目ｉの前記決定変数をδit、前記第１のラグランジュ乗数をμ、前記第２のラグランジュ乗数をλiとすると共に、当該タイムスロットｔの終了時の、当該品目ｉの次工程へ実際に渡される累積出荷量に代えて当該品目ｉの当該タイムスロットtまでの各タイムスロットにおける外部需要を当該タイムスロットｔにおける品目ｉに展開した累積量を用いて算出される見かけの在庫の状態、及び品目ｉへのセットアップに必要な段取時間の残り時間を、それぞれ状態変数ｘit，ｓitとして、当該タイムスロットtまでの各タイムスロットにおいて採られた最適決定に伴って発生するコストの和を表す最適コスト関数Ｖt（δit，ｘit，ｓit，μ，λi）により解く品目別最適化手段と、
前記品目別最適化手段により品目ｉ別及び機械別に、かつタイムスロットｔ毎に取得された決定変数δitに基づいて、機械別に、同一機械で複数の品目が生産されるタイムスロットｔの数を算出し、当該機械別に算出されたタイムスロットｔの数に基づいて、機械別に、品目間の同一機械における機械干渉の程度の大小を判定する機械干渉判定手段と、
前記品目別最適化手段により品目ｉ別及び機械別に、かつタイムスロットｔ毎に取得された決定変数δitと組をなす前記状態変数ｘitに基づいて算出される仕掛品在庫量が非負でないタイムスロットｔの数を全品目ｉについて算出し、当該算出されたタイムスロットｔの数に基づいて、仕掛品在庫の充足の有無を判定する仕掛品在庫充足判定手段と、
前記機械干渉判定手段により前記品目間の機械干渉の程度が大きいと判定された場合には、当該機械干渉の程度を小さくするように前記第１のラグランジュ乗数μを更新して前記品目別最適化手段を制御する機械干渉制御手段と、
前記仕掛品在庫充足判定手段により前記仕掛品在庫が充足していないと判定された場合には、当該仕掛品在庫を充足させるように前記第２のラグランジュ乗数λiを更新して前記品目別最適化手段を制御する仕掛品在庫制御部手段と、
前記機械干渉判定手段により前記品目間の機械干渉の程度が小さいと判定され、かつ前記仕掛品在庫充足判定手段により前記仕掛品在庫が充足していると判定された場合、その際に前記品目別最適化手段により品目ｉ別及び機械別に、かつタイムスロットｔ毎に取得されている決定変数δitに基づいて最適生産スケジュールを生成する最適生産スケジュール生成手段と
を具備することを特徴とする多品目多工程ロットサイズスケジューリング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の機械により複数の工程で当該各工程に対応した品目をそれぞれ処理し、かつ少なくとも１つの機械または工程では段取を伴う品目の切り換えが可能な多品目多工程生産システムに適用される生産スケジュールを生成するのに好適な多品目多工程ロットサイズスケジューリング方法に関する。
【０００２】
【従来の技術】
一般に、図８に示すような、多工程、多機械から成る生産システムでは、多様な注文を複数の品目に分類して切り換え生産をするのが一般的である。この種の生産システム、つまり多品目多工程生産システムでは、どの工程及びどの機械設備においても処理する品目が切り替わる度に段取が伴う。この段取には、段取時間（セットアップタイム）と段取り費がかかる。但し、段取時間が０の場合もあり得る。この段取時間と段取り費は、いずれも処理する品目に依存する。一方、品目の在庫には期間に比例して保管費がかかり、これは品目に依存する。そこで、品切れあるいは納期遅れを起こさないで、計画対象期間に亙る総費用ができるだけ少なくて済むシステム全体のスケジュール（最適スケジュール）を求める多品目多工程生産システムのロットサイズスケジューリングが要求される。
【０００３】
このスケジューリングでの問題は、時間最適化問題、換言するならば、最適制御過程の問題である。生産すれば在庫は増え、使えば減るから、どの品目についても在庫の時間的推移を計画対象期間に亙って陽に追う必要がある。
【０００４】
また、多品目多工程ロットサイズスケジューリングでは、１つの問題の中に多様な異質の決定の局面、特に離散的な決定の局面と連続的な決定の局面とが混在する。これらの異質な諸局面は互いに分かち難く結びついており、ここに解法上の難しさがある。上記スケジューリング問題に含まれる決定の諸局面として、各品目のロットサイズ、ロットの順序、ロットの分割、差し立て、仕掛品在庫量の決定、同一機械での繰り返し処理についての決定などがある。これらはすべて時間と共に変化する。
【０００５】
ところが従来は、上記諸局面のうち、例えば、ロットのサイズ決定は時間的に不変であるとの前提を置いて連続数学の範疇で扱われ、ロットの順序決定は離散数学の範疇で扱われている。
【０００６】
多品目多工程ロットサイズスケジューリングの問題は、高次元の問題でもある。それは１つの品目が少なくとも１つの次元を構成するからである。したがって、スケジューリング問題は高次元の時間最適化問題となり、分解をしない限り、計算に要する時間とメモリが爆発して、合理的な時間とメモリの範囲内で解を得ることは期待できない。これは、文献「Bellman, R.: Adaptive Control Processes: A Guided Tour, Princeton University Press (1961)」に記載されているように、ベルマンの次元の呪いとして広く知られている。
【０００７】
そこで、スケジューリング問題の中に含まれている多様な異質の決定の局面を分解することが考えられるが、これらは互いに分かち難く結びいているため、容易ではない。
【０００８】
そこで従来は、一度に上記の異質な決定の局面の一つを他と切り離して取り上げて一つ一つ順に取り扱う手法を適用してきた。このように、着目する1つの局面を他と切り離すためには、つまり着目する1つの局面を陽に取り扱うためには、他の各局面に人為的制約を置く必要がある。例えばロットの順序を決定するためには、それぞれのロットのサイズを予め与えておく必要がある。
【０００９】
【発明が解決しようとする課題】
上記したように従来の多品目多工程ロットサイズスケジューリングでは、当該スケジューリングの問題である、多様な異質な決定の諸局面を含む高次元の時間最適化問題を解くために、一度に上記異質な決定の局面の一つを他と切り離して取り上げて一つ一つ順に取り扱う手法を適用してきた。そのため従来は、１つの局面を他と切り離す度に人為的制約を置くことを余儀なくされ、各局面を同時に最適化することを困難にしてきた。これらがスケジューリングの柔軟性及び即応性の大きな障害になり、収益性の障害にもなっていた。
【００１０】
本発明は上記事情を考慮してなされたものでその目的は、多品目多工程のスケジューリングの問題に含まれる多様な決定の諸局面を一つ一つ列挙することも意識することもなく、また人為的な制約を必要とすることなく、当該諸局面を全体最適化の視点から解決して経済的かつ合理的な実行可能スケジュールを生成することができる多品目多工程ロットサイズスケジューリング方法を提供することにある。
【００１１】
【課題を解決するための手段】
本発明は、複数の機械により複数の工程で当該各工程に対応した品目をそれぞれ処理し、かつ少なくとも１つの機械または工程では段取を伴う品目の切り換えが可能な多品目多工程生産システムに適用される生産スケジュールをコンピュータにより生成する多品目多工程ロットサイズスケジューリング方法であって、各工程で処理される各品目について、品目間機械干渉に対応する第１のペナルティコスト及び仕掛品在庫の充足に対応する第２のペナルティコストを含む総コストを最適化する品目別スケジュールを他の品目とは独立に取得するステップと、取得された品目別スケジュールに対する当該各品目間の同一機械における機械干渉の程度の大小を判定する機械干渉判定ステップと、取得された品目別スケジュールに対する仕掛品在庫の充足の有無を判定する仕掛品在庫充足判定ステップと、上記機械干渉判定ステップにより各品目間の機械干渉の程度が大きいと判定された場合には、当該機械干渉の程度を小さくするように上記第１のペナルティコストを更新し、上記仕掛品在庫充足判定ステップにより仕掛品在庫が充足していないと判定された場合には、当該仕掛品在庫を充足させるように上記第２のペナルティコストを更新し、その都度上記取得ステップを再実行させるステップとを備えたことを特徴とする。
【００１２】
このように本発明においては、多品目多工程のスケジューリングの問題を、人為的な制約を必要としない品目別のスケジュールを求める問題と、この品目別スケジュールを求めることにより発生する品目別スケジュール（品目別解)の間の機械干渉を解消する問題と、仕掛品在庫を充足する（非負とする）問題とに変換することにより、機械干渉が解消されたと判定され、かつ仕掛品在庫を充足していると判定された際の品目別スケジュールに基づき、上記多品目多工程のスケジューリングの問題に含まれる多様な決定の諸局面を一つ一つ列挙することも意識することもなく、すべて同時に解決することが可能となる。
【００１３】
ここで、上記品目別のスケジュールを求める問題を、例えば各工程で処理される各品目について、品目間の機械干渉に関する制約が第１のラグランジュ乗数による重み付けにより緩和されると共に仕掛品在庫量を非負とする制約が第２のラグランジュ乗数による重み付けにより緩和された１次元の部分最適化問題とするならば、品目別解の間の機械干渉を解消する問題及び仕掛品在庫を充足する問題を、それぞれ機械の使用料に相当する固有の第１及び第２のラグランジュ乗数を個々に更新することで簡単に解決できるようになる。
【００１４】
また、１次元の部分最適化問題を扱うことで、各品目及び各機械別に、かつ計画対象期間が一定の時間間隔で分割された各タイムスロット毎に、そのタイムスロットが当該品目の生産のために当該機械により使用されているか否かを示す決定変数、在庫状態（在庫の推移）、及び段取時間の残り時間を陽に取り扱うことができる。このため、この１次元の部分最適化問題を、任意のタイムスロットｔにおける品目ｉの決定変数をδit、第１のラグランジュ乗数をμ、第２のラグランジュ乗数をλiとすると共に、当該タイムスロットｔの終了時の、当該品目ｉの次工程へ実際に渡される累積出荷量に代えて当該品目ｉの当該タイムスロットtまでの各タイムスロットにおける外部需要を当該タイムスロットｔにおける品目ｉに展開した累積量を用いて算出される見かけの在庫の状態、及び品目ｉへのセットアップに必要な段取時間の残り時間を、それぞれ状態変数ｘit，ｓitとして、当該タイムスロットtまでの各タイムスロットにおいて採られた最適決定に伴って発生するコストの和を表す最適コスト関数Ｖi（δit，ｘit，ｓit，μ，λi）により解くことが可能となる。
【００１５】
ここで、上記最適コスト関数で算出されるコストが、第１のラグランジュ乗数μに基づいて算出される機械の使用料に相当する第１のペナルティコストと、第２のラグランジュ乗数λiに基づいて算出される機械の使用料に相当する第２のペナルティコストと、品目ｉの処理によって新たに付加される価値に対するタイムスロット当たりのエシェロン在庫保管費ｈiと状態変数ｘitとで決まるコストとを含むようにするとよい。
【００１６】
なお、以上の多品目多工程ロットサイズスケジューリング方法に係る本発明は、装置（多品目多工程ロットサイズスケジューリング装置）に係る発明としても成立する。
【００１７】
また、本発明は、コンピュータに当該発明に相当する手順を実行させるための（或いはコンピュータを当該発明に相当する各手段として機能させるための、或いはコンピュータに当該発明に相当する機能を実現させるための）プログラムを記録したコンピュータ読み取り可能な記録媒体に係る発明としても成立し、更に当該プログラム自体に係る発明としても成立する。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【００１９】
図１は本発明の一実施形態に係る多品目多工程ロットサイズスケジューリング装置の機能ブロック構成を示す。
【００２０】
この図１のスケジューリング装置は、多工程から成る生産システムにおいて多様な注文を複数の品目に分類して切り換え生産をするためのスケジューリング（多品目多工程ロットサイズスケジューリング）の有する問題、つまり高次元時間最適化問題を解いて最適スケジュール（最適生産スケジュール）を決定するものである。
【００２１】
このスケジューリング装置は、図２に示すブロック構成のパーソナルコンピュータ等の計算機によって実現される。図２の計算機は、当該計算機全体を制御するＣＰＵ２１、当該ＣＰＵ２１が実行する最適化スケジューリングプログラム２４１を含む各種プログラム及びデータ等が記憶される主メモリ２２とを備えている。
【００２２】
図２の計算機はまた、外部記憶装置としての例えば磁気ディスク装置（以下、ＨＤＤと称する）２３と、記録媒体としての例えばＣＤ−ＲＯＭ２４２に予め格納されている情報を計算機内に読み込むことが可能なＣＤ−ＲＯＭ装置２４とを有している。図２の例では、ＣＤ−ＲＯＭ２４２には、複数の工程（多工程）、多機械（多設備）で複数の品目を生産する生産システムにおける多品目多工程ロットサイズスケジューリングを行うための最適化スケジューリングプログラム２４１が予め格納されている。この最適化スケジューリングプログラム２４１は、ＣＤ−ＲＯＭ装置２４によりＣＤ−ＲＯＭ２４２から計算機内に読み込まれて、ＨＤＤ２３に格納（インストール）されていものとする。ＣＰＵ２１がＨＤＤ２３から最適化スケジューリングプログラム２４１を主メモリ２２上に読み込んで当該プログラム２４１を実行することにより、図１のスケジューリング装置の機能ブロック構成が実現される。
【００２３】
図２の計算機は更に、入力装置としてのキーボード２５と、表示用の出力装置としてのディスプレイ２６とを有している。ＣＰＵ２１、主メモリ２２、ＨＤＤ２３、ＣＤ−ＲＯＭ装置２４、キーボード２５及びディスプレイ２６は、システムバス２７により相互接続されている。
【００２４】
《最適化スケジューリングの基本原理》
次に、図１のスケジューリング装置の構成を説明する前に、本実施形態で適用する、各品目のロットサイズ、ロット順序、仕掛品在庫量等の決定の局面をすべて同時に最適化するための最適化スケジューリングの基本原理について説明する。
【００２５】
〈時間最適化問題の高分解能モデルへの定式化〉
本実施形態では、スケジューリング問題、つまり高次元の時間最適化問題を高い分解能のモデルに定式化するために、計画対象期間をタイムスロットと呼ぶ細かな時間に刻み、さらにこの時間最適化問題を品目別に分解している。
【００２６】
このタイムスロットが、問題を離散化して解くための最小時間単位になる。時間の刻み幅、すなわちタイムスロットの幅を決める基準については、丸めの誤差、特に段取時間、あるいはタイムスロット当たりの処理量（生産量）における丸め誤差が許容できる範囲に納まるように決めればよい。例えば、１０分単位に刻めば段取時間の丸め誤差は５分であり、処理量の丸め誤差は５分間に処理できる量になる。これらの丸め誤差が許容できるならば、刻み幅（タイムスロット幅）は１０分である。
【００２７】
このように時間を細かく刻むことは、問題に含まれているすべての決定の局面を一つ一つ取り上げることも意識することもなく、問題に含まれるすべての決定の局面を一挙に解決するために必要不可欠である。次に、問題を品目別に取り扱うのは、実際の処理あるいは注文が品目ベースで成されるからである。
【００２８】
ここでモデルにおけるきめ細かさの概念を明らかにするために、上記「モデルの分解能」を次のように定義する。
スケジューリングあるいはビジネスのプロセスを数式モデルに定式化して扱うためには、初めに時間軸と空間を規定する幾つかの軸とを設定することが必要である。ビジネスプロセスはこの座標空間上に展開される。そこで、これらの各軸を刻む最小の単位をすべて列挙して、これを「モデルの分解能」と呼ぶことにする。
【００２９】
本実施形態におけるモデルの分解能は、タイムスロット、品目、機械設備である。したがって、得られるスケジュールの分解能も上記３点の何れが違っても識別できるものである。
【００３０】
〈問題の品目別への分解〉
多品目多工程ロットサイズスケジューリングの高次元最適化問題には、文献「村松健児:“拡張ラグランジュ分解調整法による同時最適スケジューリング”，オペレーションズ・リサーチ vol. 45, no. 6, pp.270-275. (2000)」に記載されている多品目単一機械ロットサイズスケジューリング問題と同様に、分離可能性が成り立ち、さらに制約式が存在する。そこで、問題を品目別に分解する。この分解が可能であれば、対象とする生産システムの構造は特に多工程であるために極めて複雑であるにもかかわらず、問題の解法は品目別の部分最適化問題の解法と部分問題間の相互関係制約を充足するための調整とに帰着する。
【００３１】
但し、このままでは部分最適化問題を他と独立に解くことができない。それは次の理由による。多工程のスケジューリング問題においては仕掛かり品目が関係する。実際の仕掛品については、処理が前工程において成されれば在庫が増え、後工程において成されれば減るから、１つの品目に２つの系列の処理が関係する。言い換えると、１つの系列の処理によって増減する品目が処理の前後に少なくとも２つあるということである。したがって、一方の部分問題の最適化を図ると、他方の部分問題の最適化が崩れることになる。このように、１つの品目に２つの処理の系列が関係することが、後述するラグランジュ分解調整法における分解と調整にとって最大の障害になる。
【００３２】
〈見かけの在庫〉
まず、上記した１つの品目に２つの処理の系列が関係することに起因する問題の所在を明確にするために、「処理の独立性」という概念を導入し、次のように定義する。
問題を部分最適化問題に分解したとき、同一の処理あるいは処理の系列が複数の部分最適化問題に亙って現れないことを、「処理の独立性」と呼ぶことにする。
【００３３】
この処理の独立性を確保するためには、問題の本質を変えないで、１つの品目からいずれか一方の処理の系列を消去する必要がある。そのための手段が以下に定義する「見かけの在庫」という概念である。
【００３４】
一般に仕掛品在庫とは、工程間に発生する実際の在庫であって、初期在庫と累積生産量の和から次工程への実際の累積出荷量あるいは累積処理量を引いたものと定義できる。ところが本実施形態では、ある品目の次工程へ実際に渡される累積出荷量の代わりに、後述する式（１）に示されるように、外（生産システム外）からの各タイムスロットにおける出荷要求（外部需要）をその品目に展開してこれの累積量を用いて上記仕掛品在庫に相当する量を計算する。したがって、これは実際の仕掛品在庫ではなく、架空の在庫あるいは見かけ上の在庫である。以後、これを「見かけの在庫」と呼ぶ。
【００３５】
このように、仕掛品在庫の代わりに見かけの在庫という概念を新たに導入することにより、１つの品目に１つの系列の処理を対応させることが可能になる。ところが、見かけの在庫に基づいて処理を計画した結果、実際の仕掛品在庫が品切れを起こす危険がある。そこで、この危険を回避する手段が必要となる。そのために本実施形態では、以下に定義する「処理の整合性」という概念を導入する。
【００３６】
仕掛品の実際の在庫は、仕掛品及びその後続直結点の品目の処理によって増減する。処理の独立性のもとに、見かけの在庫に基づいてなされるこれらの処理が、実際の仕掛品在庫の品切れを起こさないという意味で、実行可能であるとき、「処理の整合性」が成立していると呼ぶことにする。このことは逆に、「処理の整合性」が成立している限りは処理の独立性が認められるが、「処理の整合性」が成立しなくなったなら処理の独立性が認められなくなるため、実際の仕掛品在庫が品切れとならないように（つまり充足するように）調整が必要となることを示す。なお、後続直結点の品目とは、ある品目ｘを生産する直後の工程（後続直結点）で当該品目ｘを組み込んで生産される品目ｙのことであり、図１の例における、品目１に対する品目ｉ及び品目ｉ−１などである。一方、品目ｘは品目ｙの直前の工程で生産される品目、つまり先行直結点の品目である。
【００３７】
〈処理の整合性を達成するために〉
本実施形態では、上記のように定義した処理の整合性を達成するために、実際の仕掛品在庫が品切れとならない条件、つまり実際の仕掛品在庫に対する非負条件を次のように相互関係制約に追加する。
【００３８】
まず見かけの在庫を用いて、後述する式（７）に示されるように、実際の仕掛かり品在庫に対する量を定式化する。続いて、見かけの在庫により定式化された仕掛品在庫に対して、その非負条件を、後述する式（８）に示されるように、部分問題間の制約、すなわち相互関係制約に追加して、これを陽に取り扱う。
【００３９】
〈エシェロン在庫保管費〉
ところが、実際の仕掛品在庫でなく見かけの在庫に注目して部分問題を解くために、通常の在庫保管費を適用すると計算に矛盾が生じる。そこで在庫保管費についても見かけの在庫に合わせて把握をする必要が生じる。そのようにすることによって実態を反映した在庫保管費の計算ができる。これには既に知られている方法が利用できる。それが「エシェロン在庫保管費」という考え方である。
【００４０】
以下、エシェロン在庫保管費について述べる。
まず、どの品目に対しても、処理がなされて新たに価値が付加されたとき、処理により生まれた品目の全体の価値に対してでなく、新たに付加された部分の価値に対して在庫保管費を見積もることができる。さらにその価値は、品目がシステム内に存続する限り、その品目が別の品目に組み込まれた場合にも不変であると考えることができる。その場合には同様の考え方に基づいて、新たに生産される品目の価値のうち、新たに付加された価値に対してのみ在庫保管費を見積もることにする。このようにして定義される在庫保管費を「エシェロン在庫保管費」と呼ぶ。
【００４１】
このエシェロン在庫保管費の詳細を、時刻τ1で生産された品目１と時刻τ2で生産された品目２とを組み込んだ品目３を時刻τ3で生産して当該品目３を時刻τ4で出荷した場合を例に図７を参照して説明する。ここでは、品目１，２の価値に対して見積もられる在庫管理費がｈ1，ｈ2であり、品目３の生産により新たに付加された価値に対して見積もられる在庫管理費がｈ3であるものとする。
【００４２】
この場合、一般には図７（ａ）に示すように、品目１の在庫保管費ｈ1は時刻τ1〜τ3の期間、品目２の在庫保管費ｈ2は時刻τ2〜τ3の期間、それぞれ発生する。また、品目３の保管在庫費は、当該品目の生産により新たに付加された価値に対して見積もられる在庫保管費ｈ3に、品目１及び２の保管在庫費ｈ1，ｈ2の和ｈ1＋ｈ2を加えたものｈ1＋ｈ2＋ｈ3となり、時刻τ3〜τ4の期間発生する。
【００４３】
これに対してエシェロン在庫保管費では、図７（ｂ）に示すように、品目１及び２が品目３に組み込まれた時刻τ3以後も、その品目１及び２の在庫保管費ｈ1，ｈ2は不変であり、品目３の出荷時刻τ4まで継続するものとして扱われる。また、品目３の在庫保管費は、新たに付加された価値に対してのみ見積もられるｈ3となり、時刻τ3〜τ4の期間発生するものとして扱われる。これにより、在庫保管費を各品目１，２，３毎に独立して扱うことができ、在庫保管費を見かけの在庫に合わせることが可能となる。
【００４４】
〈ラグランジュ分解調整法の反復演算による解法〉
本実施形態では、すべての相互関係制約式をラグランジュ緩和してラグランジュ関数を導く。このラグランジュ関数は分解ができて、問題の最適化は、所与のラグランジュ乗数値に対して各品目の部分最適化問題を他と独立に解くことと、各制約条件に対応するラグランジュ乗数値を更新することとを交互に反復することから成る。
【００４５】
部分問題の解法には動的計画法を用いる。制約式の扱いは、部分問題の中で陽に取り扱うものと相互関係制約として扱うものとに別れる。
【００４６】
〈本実施形態で適用する解法の特徴〉
スケジューリングの問題を高い分解能のモデルに定式化して、ラグランジュ分解調整法により解く考え方は、多品目単一機械ロットサイズスケジューリング問題に関しては、特願２００１−３１３４６号にて本発明者により提案されている。ここでは多品目単一機械の問題に関し、各品目について他と独立に生産在庫問題を最適化することと機械干渉の生じているタイムスロットの使用料（すなわちラグランジュ乗数の値）を調整して干渉を解消するために、ラグランジュ分解調整法が使われている。
【００４７】
ところが本実施形態では、上記の品目（出荷の対象となる品目）の他に工程間において発生する品目すなわち仕掛品を分解して取り扱わなくてはならない。したがって、品目間の分解のみならず工程間の分解を可能にする機構が必要になる。そのために本実施形態では、見かけの在庫とエシェロン在庫保管費との概念を導入して処理の独立性を導くと共に処理の整合性を保証するために、見かけの在庫を用いて実際の仕掛品在庫量を定式化して、その非負条件を相互関係制約に加えることによって、多品目多工程の問題を品目別に分解する新規な方法を適用している。
【００４８】
ここでは、機械干渉の生じているタイムスロットの他に、仕掛品在庫が充足していないタイムスロットの使用料（ペナルティコスト）に相当するラグランジュ乗数、すなわち双対変数を調整することによって全体最適化を図っている点に注目されたい。
【００４９】
《定式化》
次に、上記最適化スケジューリングの基本原理における定式化の詳細について説明する。
【００５０】
〈前提条件〉
まず、本実施形態で取り上げる問題の前提条件を明らかにしておく。
（１）対象あるいは適用領域
どの工程どの機械設備におけるどの品目もロットを構成して処理される。ロットのサイズはこの問題が解かれたときに決まる。注文が確定するまでは処理に着手できない品目あるいは予め初期在庫を持つことが許される標準品のいずれであっても、対象とすることができる。前者の場合には初期在庫はすべて０として扱われる。
【００５１】
具体的には、プリント配線基板、半導体、キッチン家具、オーディオ・ビジュアル、光学器機などの生産工程の全体あるいは部分に適用の可能性が高い。特に、図８中の機械４における品目ｐ−１と品目ｐとの関係のように、同一機械設備において処理が繰り返される状況（例えばプリント基板の表面のプリント配線処理と当該プリント基板の裏面のプリント配線処理）を含むシステムに対しても、そうでない場合と同様に適用可能である。このような例として、プリント基板の表面のプリント配線処理と当該プリント基板の裏面のプリント配線処理とを同一機械設備で行う場合がある。このとき、プリント基板自体は同一でありながら、表面のプリント配線処理が行われるプリント基板と裏面のプリント配線処理が行われるプリント基板とを区別し、それぞれ異なる品目（の処理番号）として扱われる。図８中の機械４における品目ｐ−１及び品目ｐが、これに当たる。
【００５２】
（２）データに関する必要条件
計画対象期間に亙ってタイムスロット別に各品目の出荷要求データが所与である。
【００５３】
どのタイムスロットにおいても、処理時間で把握されるネットの累積出荷要求量が工程能力を超えてはならない。実際には切り換えの際の段取時間も関係するが、本実施形態では実行可能解の存在条件は満たされているものとして取り扱う。
【００５４】
（３）工程間移動時間
工程間移動時間あるいは（工程間移動に伴う）処理のリードタイム（処理を先行させる時間）を無視できないときは、所要量を展開するためのモデルにおいてそれらを考慮する。
【００５５】
（４）離散化と丸め誤差
問題を予め離散化問題に定式化して取り扱う。タイムスロットの刻み幅は、許容できる丸め誤差に基づいて定める。例えば、段取時間の長さがそれぞれ２〜３時間、計画対象期間が２週間（２４時間×１４日）の問題に対して、刻みを３０分に定めれば、丸め誤差は１５分であり、問題は２×２４×１４＝６７２タイムスロットの最適制御過程になる。
【００５６】
（５）モデルの分解能を高めるための処置
通常のスケジューリングにおいては、オペレーションをあたかも所与の単位あるいは既存のオブジェクトであるかのようにして取り扱うことが多い。ところが、本実施形態においては、それに対応するものを認めない。本実施形態における決定の最小単位は、品目をタイムスロットにおいて資源を使用して“処理するか、しないか”を表す１−０の決定変数である。この決定変数自体は、ディジタル画像処理におけるピクセルのようなものであって、１か０の数にすぎないが、これらが集まって決定の局面を表すことになる。例えば、ある品目と機械設備に対して連続するタイムスロットが値１を取れば、それはロットのサイズを表すことになる。
【００５７】
〈用いる記号〉
（１）添字とその集合
まず、本実施形態で適用される添字とその集合を、
ｉ：品目またはその処理番号，ｉ∈Ｉ(１,２,…,ｎi)，但しｉ＝０は市場（システムの外）を表す
ｋ：機械番号，ｋ∈Ｋ(１,２,…,ｎk)を表す
ｔ：タイムスロット番号，ｔ∈Ｔ(１,２,…,ｎt)を表す
Ａ：仕掛品目の集合
Ｓ(i)：品目ｉの後続直結点の集合
Ｋ(i)：品目ｉの処理に利用できる機械の集合
Ｍ(i)：機械ｋが処理できる品目の集合
Ｐ(i)：品目ｉの先行直結点の集合
のように定義する。
【００５８】
（２）入力データ
次に、本実施形態で適用される、予め設定される入力データ（生産データ及び出荷要求量データ）を、
ｐik：機械ｋにおけるタイムスロット当りの品目ｉの処理量
ｓimaxk：機械ｋの品目ｉに対する段取時間
ｓi0k：機械ｋ，品目ｉのタイムスロットｔ＝０における段取りの残り時間すなわち初期値
ｘi0：品目ｉのタイムスロットｔ＝０における実際の在庫量，在庫を持たない問題に対しては０とする
δi0k：機械ｋにおける品目ｉのタイムスロットｔ＝０における処理の状態すなわち初期値
ｒi0t：タイムスロットｔにおける品目ｉの外部需要を示す出荷要求量データであり、システムの外へ例えば補修部品などとして引かれる分
ρij：品目ｊに組み込まれる品目ｉの品目ｊ１単位あたりの所要量
ｃik：機械ｋにおける品目ｉの段取費用
ｈi：品目ｉの処理によって新たに付加される価値に対するタイムスロット当たり在庫保管費（エシェロン在庫保管費）
ｒijt：タイムスロットｔにおいて品目ｊを生産するために使用される品目ｉの所要量
ｒi・t：品目ｉのタイムスロットｔにおける所要量
τij：品目jに組み込まれるまでの品目iのリードタイム（処理を先行させる時間）
のように定義する。
【００５９】
（３）決定変数と状態変数
次に決定変数と状態変数を次のように定義する。
【００６０】
δitk：タイムスロットｔにおける機械ｋの品目ｉの処理を表す決定変数，
δitkは品目ｉがタイムスロットｔにおいて機械ｋにより処理されるとき１、それ以外のとき０
ここに、δitはδitl，ｌ∈Ｋ(i)を要素とするベクトル，
δi＝(δi1,…,δit,…δint)
δ ＝(δ1,…,δi,…δni)
ｓitk：品目ｉのタイムスロットｔにおける機械ｋの段取りの残り時間
０≦ｓitk≦ｓimaxk
ここに、
ｓitはｓtil，ｌ∈Ｋ(i)を要素とするベクトル，
ｓi＝(ｓi1,…,ｓit,…ｓint)
ｓ ＝(ｓ1,…,ｓi,…ｓni)
ｘit：品目ｉのタイムスロットｔ末における見かけ上の在庫量で、定義式は次のように表される。
【００６１】
【数１】
0004737735.tif 000002
【００６２】
上記式（１）では、ｘitが、右辺の第１項で示される初期在庫ｘi0と、第２項で示されるタイムスロットｔ'における品目ｉの処理量のｔ'＝１からｔ'＝ｔまでの総和、つまりタイムスロットｔ末までの品目ｉの処理量の累積量（累積生産量）との和から、第３項で示されるタイムスロットｔ'における品目ｉの所要量のｔ'＝１からｔ'＝ｔまでの総和、つまり外からのタイムスロットｔ末までの各タイムスロットにおける出荷要求をその品目ｉに展開してこれの累積量を取ったものを引いたものとして定義されている。
【００６３】
なお、ｘi0は仕掛品ｉ∈Ａに対しては、見かけの在庫量ｘitのタイムスロットｔ＝０における値すなわち初期値であるが、この場合には実際の初期在庫を表す点に注意されたい。
【００６４】
〈制約条件〉
（１）各種所要量の関係
品目ｊの所要量は、当該品目ｊに品目ｉが組み込まれるまでの品目ｉのリードタイムτijを考慮して品目ｉに展開される。ここに品目ｉは仕掛品である。したがって、ｒijtはρijとリードタイムτijが反映されたｒj・(t-τij)とを用いて下記式（２）のように表され、ｒj・tはｒijtとｒi0tを用いて下記式（３）のように表される。
【００６５】
【数２】
0004737735.tif 000003
【００６６】
上記式（３）では、ｒj・tは、Ｓ(i)に含まれる全品目ｊについてのタイムスロットｔにおいて品目ｊを生産するために使用される品目ｉの所要量ｒijtの総和、つまり後工程（後続直結点）の品目ｊに組み込まれる量（右辺第１項）と、タイムスロットｔにおいてシステムの外へ引かれる分（右辺第２項）との和により表されている。
【００６７】
（２）状態推移
機械の段取時間の残り時間（残り段取時間）の推移方程式：
タイムスロットｔにおける各品目ｉの段取時間の残り時間（残り段取時間）ｓitkは、機械（生産ライン）の遊休中はｓitk＝０で、品目を切り換えたとき、すなわち処理状態がδit-1k＝０からδitk＝１へ変わったときにｓimaxkとなる。以後ｓitkは、時間が１タイムスロット経過する毎に１づつ０になるまで減少し、それ以後は再び切り換えが起こるまでその状態を維持する。したがってｓitkは次式に従う。
【００６８】
【数３】
0004737735.tif 000004
【００６９】
上記式（４）式の右辺第１項は、δit-1k＝０からδitk＝１へ変わったときにｓimaxkとなる残り段取時間の状態遷移を示し、第２項中の(ｓit-1k−１)は１タイムスロット経過する毎にｓitkが１ずつ減少する状態を示している。
【００７０】
在庫の推移方程式：
タイムスロットｔにおける各品目ｉの実処理は、δitk＝１かつｓitk＝０の状態のときに限られる。したがって、在庫推移は以下の式に従う。
【００７１】
【数４】
0004737735.tif 000005
【００７２】
上記式（５）のｘitは、品目ｉのタイムスロットｔ−１末における見かけの在庫量（右辺第１項）とタイムスロットｔにおける処理量（右辺第２項）との和から外部需要を展開して得られるタイムスロットｔまでの所要量ｒi・t（右辺第３項）を引いたものとして表されている。
【００７３】
繰り返すが、右辺第３項が後続直結点からの要求量でなく、外部需要を展開して得られる所要量ｒi・tであるから、ｘitは仕掛品ｉ∈Ａに対しては、タイムスロットｔ末における見かけの在庫量である。しかしｔ＝０に対しては実在庫、さらに最終品に対しても実在庫となる。
【００７４】
機械干渉に関する制約：
どのタイムスロットｔにおいても機械ｋは高々１品目しか処理できない。ある品目の段取り及び処理中に、別の品目の段取りを行うこともできない。この制約を機械干渉に関する制約と呼び、次式が成立する必要がある。
【００７５】
【数５】
0004737735.tif 000006
【００７６】
品切れを生じないための条件（品切れ禁止制約）：
どのタイムスロットｔにおけるどの品目ｉに対しても品切れは許されない。最終品目については、見かけの在庫が同時に実在庫を表すから、この在庫の非負条件は、部分最適化問題の中で陽に取り扱われる。ところが、仕掛品については実際の仕掛品を定式化して、これの非負条件を置かなくてはならない。
【００７７】
タイムスロットｔにおける品目ｉの仕掛品在庫量は、初期在庫量ｘi0と累積生産量との和から累積払い出し量を除いた量である。ただし直接外部へ出荷された量ｒi0tは予め差し引いておかなくてはならない。したがって、タイムスロットｔにおける品目ｉの仕掛品在庫量の非負条件は次式のように表される。
【００７８】
【数６】
0004737735.tif 000007
【００７９】
上記式（７）の左辺第２項は各タイムスロットにおいて品目ｉの処理量から直接外部へ出荷された量を予め差し引いた処理量のタイムスロットｔ末までの累積量、つまり累積生産量を表し、第３項はタイムスロットｔ末までの累積払い出し量を表す。
【００８０】
ところが品目が最終品の場合には、式（７）左辺の第１項及び第２項の部分のみとなる。上記式（７）の制約式に見かけの在庫量の定義式（１）を代入して整理すると、次式を得る。
【００８１】
【数７】
0004737735.tif 000008
【００８２】
ここに、左辺第２項は、リードタイムτij＝０の場合には式（２），（３）から値０となって消える。
【００８３】
使用できる機械台数の制約：
同時に使用できる機械は高々ｃ台に限られる。したがって次式が成立する必要がある。
【００８４】
【数８】
0004737735.tif 000009
【００８５】
〈コスト〉
関連する費用は機械ｋが品目ｉへの切り換え時に発生する段取費ｃikと各タイムスロットｔ末毎に見かけの在庫量ｘitに比例して発生するエシェロン在庫保管費ｈiとの２種類である。これらはそれぞれｃik（１−δit-1k)δitk，ｈiｘitにより表される。したがって品目ｉのタイムスロットｔにおけるコストをｆi（δi，si，ｘi）で表すと、このコストｆi（δi，si，ｘi）、即ち品目ｉにおけるコスト関数は次式（１０）で表される。
【００８６】
【数９】
0004737735.tif 000010
【００８７】
ここで、タイムスロットｔにおけるコストは、タイムスロットｔ−１における決定変数δit-1kにも依存する点に注意されたい。
【００８８】
〈問題〉
以上により、結局、取り扱うべき最適化問題は、式（１０）のコストｆi（δi，si，ｘi）の全品目についての総和を表す関数、つまり目的関数の値を、一定の制約のもとで最小とすることであり、次式に定式化される。
【００８９】
【数１０】
0004737735.tif 000011
【００９０】
なお、式（１１）中のs.t.（４），（５），（６），（８），（９）は、取り扱うべき問題が式（４），（５），（６），（８），（９）の制約、すなわち機械の残り段取時間の推移方程式、見かけの在庫に対して定義された在庫の推移方程式、機械干渉に関する制約、実際の仕掛品在庫に対する品切れ禁止制約（つまり実際の仕掛品在庫に対する非負制約式）、及び使用できる機械代数の制約を受けることを示す。
【００９１】
《ラグランジュ分解調整法に基づく解法》
〈制約条件の取り扱い〉
この問題には、制約条件として、式（２），（３），（４），（５），（６），（８），（９）が関係している。ここに提案する解法ではこれらの制約条件の取り扱い方が大きく２通りに分かれることに注意されたい。第１は部分問題の中に取り込まれて、個々の問題を解く際に陽に取り扱われるものであり、第２は相互関係制約として複数の部分問題に亙って関係するものである。
【００９２】
式（２），（３）は入力データ間の関係を表すもので決定変数を含まないから、上記のいずれにも入らない。式（４）及び（５）は推移方程式であり、品目に固有であり、品目別の部分問題を動的計画法で解くときに欠かすことができない。したがってこれらは第１の種類に属する。同時（一度）に使用できる機械の制約式（９）についても品目に固有であり、第１の種類に属し、やはり部分問題の中で取り扱うことにする。
【００９３】
ところが、機械干渉に関する式（６）は複数の品目に関係しており、第２の種類である相互関係制約に属する。
【００９４】
次に、品切れを避けるための制約（８）については注意が必要である。すなわち、品目が最終品目の場合には、式（７）において左辺第３項が関係しないから、初めから処理の独立性が成り立っており、在庫の非負制約は、部分問題の中で陽に取り扱うことができる。これに反して品目が仕掛品の場合には、上記第３項が関係して、処理の独立性が犯されるために、最適化スケジューリングの基本原理において既に説明した理由により部分問題の中で取り扱うことはできない。そこで、処理の整合性を保証するために式（８）を第２の種類である相互関係制約として取り扱う。
【００９５】
〈ラグランジュ関数〉
相互関係制約、すなわち、機械干渉の制約（６）と仕掛品在庫に対する非負制約（８）とを緩和して次式に示すラグランジュ関数を導く。
【００９６】
【数１１】
0004737735.tif 000012
【００９７】
ここに、とμtkとλitとは、それぞれ、機械干渉制約条件（６）と仕掛品在庫の非負条件（８）に対するペナルティコスト（ラインの使用料）を表すラグランジュ乗数である。但し、μtはμtl，ｌ∈Ｋ(i)を要素とするベクトル、μ＝(μ1,μt,…,μnt)，λi＝（λi1,…,λit,…,λint)，λ＝（λ1,…,λi,…,λnt)とする。
【００９８】
〈ラグランジュ問題〉
結局、制約条件として、式（２），（３），（４），（５），（６），（８），（９）が関係している上記（１１）式の問題は、式（２），（３），（４），（５），（６），（８），（９）中の式（４），（５），（９）を制約条件とする次式に示すラグランジュ問題と同値になる。
【００９９】
【数１２】
0004737735.tif 000013
【０１００】
ここで、問題を品目別に分解するために、式（１２）をまず品目ｉについて整理して、以下のラグランジュ関数を導く。
【０１０１】
【数１３】
0004737735.tif 000014
【０１０２】
ここで、ａ(i)を品目ｉが後続直結点を持つとき（つまり仕掛品となり得るとき）１、それ以外のとき０と表現すれば、上記式（１４）は次式のように表すことができる。
【０１０３】
【数１４】
0004737735.tif 000015
【０１０４】
〈部分最適化問題〉
上記式（１５）から、所与のμ，λに対して、式（１１）で示される問題は以下の部分問題（部分最適化問題）に分解することができる。
【０１０５】
【数１５】
0004737735.tif 000016
【０１０６】
品目ｉに対する、この式（１６）で示される部分最適化問題は、所与のμ，λに対して、他と独立に解くことができる。この解法については後述する。
【０１０７】
〈ラグランジュ乗数の調整〉
繰返し計算の第ν回目でのラグランジュ乗数の更新ルールは、ラグランジュ乗数がμtkとλitとの２種用いられていることから、機械干渉に用いるラグランジュ乗数の更新ルールと、仕掛品の在庫充足に用いるラグランジュ乗数の更新ルールの２つが必要となる。
【０１０８】
機械干渉に用いるラグランジュ乗数の更新ルール：
まず、機械干渉に用いるラグランジュ乗数の更新ルールは次式に示される通りである。
【０１０９】
【数１６】
0004737735.tif 000017
【０１１０】
仕掛品の在庫充足に用いるラグランジュ乗数の更新ルール：
次に、仕掛品の在庫充足に用いるラグランジュ乗数の更新ルールは次式に示される通りである。
【０１１１】
【数１７】
0004737735.tif 000018
【０１１２】
なお、上記式（１８）においてα，βはスカラーステップサイズである。このα，βの値は数値計算で試行錯誤的に決められる。ここで、α，βをそれぞれｋ（機械），ｉ（品目）に依存させることも可能である。
【０１１３】
《部分最適化問題の動的計画法》
次に、式（１６）で示される部分最適化問題を動的計画法に再定式化して解く方法について説明する。
【０１１４】
〈取り得る状態〉
タイムスロットｔにおいて取り得る決定δitkは、先行するタイムスロットｔ−１における在庫状態ｘに依存するばかりでなく、先行するタイムスロットｔ−１における利用可能なすべての機械の状態、及び同じタイムスロットｔにおける残り段取時間ｓit-1kにも依存する。(δit-1k，ｓit-1k)から(δitk，ｓitk)への状態推移の関係を整理すれば、図５に示すようになる。図中の○印はタイムスロットｔ−１の状態に対して許される決定が存在することを、×印はそうでないことを表している。
【０１１５】
図６は、この(δitk，ｓitk）の状態遷移を示す。図６において、（０，０）の状態６１が次のタイムスロットに取り得る状態は、同じ状態６１または(１，ｓimaxk）の状態６２のいずれかである。状態６１は、機械ｋの遊休中を示す。また、状態６２は、品目を切り換えたとき、つまりセットアップの開始時を示す。この状態６２、即ち(１，ｓimaxk）の状態６２が次のタイムスロットに取り得る状態は(１，ｓimaxk−１）の状態６３のみである。
【０１１６】
状態６３は、セットアップ開始時から時間が１タイムスロットだけ経過し、残り段取時間がｓimaxk−１となったことを示す。以下、同様にして、時間が１タイムスロット経過する毎に、(δitk,ｓitk）のうちのδitkが１のままの状態で、ｓitkだけが１ずつ減少していき、やがて（１，１）の状態６４に遷移する。状態６４は残り段取時間が１（１タイムスロット分）であり、セットアップ終了直前の状態となったことを示す。状態６２から状態６４までの期間がセットアップ中の期間６５となる。状態６４、即ち（１，１）の状態６４が次のタイムスロットに取り得る状態は（１，０）の状態６６のみである。状態６６は生産中を示す。この状態６６、即ち（１，０）の状態６６が次のタイムスロットに取り得る状態は、同じ状態６６または(０，０）の状態６１のいずれかである。
【０１１７】
〈最適コスト関数とその計算〉
次に、最適コスト関数とその計算について説明する。
本実施形態では、所与のラグランジュ乗数μ，λiに対して、最適コスト関数を
Ｖt（δit，ｓit，ｘit，μ，λi）
で表し、タイムスロットｔにおいて品目ｉの決定変数（機械のセッティングの状態）、残り段取時間、在庫状態（タイムスロット末の在庫量）が、それぞれδit，ｓit，ｘitであるとき、タイムスロット０からタイムスロットｔまでの各タイムスロットにおいて採られた最適決定に伴って発生するコストの和であると定義する。
【０１１８】
ここで重要なことは、上記最適コスト関数に、状態変数のベクトルとして、ベクトルｓitと変数ｘitの他に、決定変数のベクトルδitが入っている点である。つまり、決定変数δitが状態変数の役割も担っている点である。これはタイムスロットｔにおいて発生する段取りコストが、タイムスロットｔ−１の決定にも依存することに起因している。言い換えるならば、タイムスロットｔにおいて発生するコストを計算するために、先行タイムスロットｔ−１におけるの情報が必要になるからである。この場合、最適コスト関数は動的計画法による次の再帰関係式で表すことができる。
【０１１９】
【数１８】
0004737735.tif 000019
【０１２０】
ここでｘit-1が許容範囲にないときは、任意のδit-1k，ｓit-1kに対して、Ｖt（δit，ｓit，ｘit，μ，λi）は常に＋∞である。このとき、δit-1*（δit，ｓit，ｘit，μ，λi）は上記式（２０）の最適決定を表すものとする。
【０１２１】
所与のδitl，ｓitl，ｌ∈Ｋ(i)，ｘit，μ，λiと前記式（４），（５）から選択された決定δit-1l，ｌ∈Ｋ(i)に対してｓit-1k，ｘit-1を求めれば、タイムスロットｔ−１における最適コスト関数の値が決まる。勿論、タイムスロットｔにおいて発生するすべてのコストも確定している。したがって上記式（２０）が計算できる。
【０１２２】
〈最適解の決定〉
品目ｉの、タイムスロットｔ＝１，…，ｎtに対して上記式（２０）の最適コスト関数値Ｖt（δit，ｓit，ｘit，μ，λi）、及び最適決定すなわちδit-1*（δit，ｓit，ｘit，μ，λi）がすべて求まり表の形でメモリ（ここではコスト記憶エリア２２３）内に格納されているものとする。このとき品目の最適解すなわちスケジュールと状態推移を確定するための手続きについて、図４のフローチャートを参照して説明する。
【０１２３】
まず、ｔ＝ｎtのタイムスロットに対して取り得るすべてのδit，ｓit，ｘitの組み合わせ（δit，ｓit，ｘit）の中からＶt（δit，ｓit，ｘit，μ，λi）が最小となるδit，ｓit，ｘitを求めて、最適な解として確定し、これらの値をδit*，ｓit*，ｘit*とする（ステップ４０５，４０６）。
【０１２４】
次に、δit*，ｓit*，ｘit*に対し最適な決定δit-1*（δit*，ｓit*，ｘit*）を特定する（ステップ４０７）。このδit*，ｓit*，ｘit*を前記式（４），（５）に代入してｓit-1*，ｘit-1*を求める（ステップ４０８）。
【０１２５】
次に、ｔを１だけデクリメントし（ステップ４０９）、このデクリメント後のｔが１より小さくならなければ（ステップ４１０）、そのデクリメント後のｔに対して上記ステップ４０６以降の処理を行う。これをｔ＝１まで繰り返す（ステップ４１０）。
【０１２６】
以上、本実施形態で適用する最適化スケジューリングの基本原理と、当該基本原理における定式化の詳細と、ラグランジュ分解調整法に基づく解法と、部分最適化問題の動的計画法とについて説明した。
【０１２７】
＜最適化スケジューリングの実現例＞
次に、上記した最適化スケジューリングの実現例について説明する。
図１のスケジューリング装置は、上記した最適化スケジューリングの基本原理を適用して最適化スケジューリングを行うもので、品目別最適化部１１と、在庫量抽出部１２と、残り段取時間抽出部１３と、品目間機械干渉判定部１４と、品目間機械干渉制御部１５と、最適生産スケジュール生成部１６と、主制御部１７と、仕掛品在庫充足判定部１８と、仕掛品在庫制御部１９とを備えている。これら各部１１〜１９は、図２の計算機内のＣＰＵ２１が最適化スケジューリングプログラム２４１を実行することにより実現される機能要素である。
【０１２８】
品目別最適化部１１は、各品目ｉについて、式（１６）の部分最適化問題を、在庫推移と残り段取時間推移の制約のもとで、式（２０）の最適コスト関数を用いて、他の品目とは独立に解き、その解を求める動作を実行する。在庫量抽出部１２は、品目別最適化部１１での動作に必要な在庫量を抽出する。残り段取時間抽出部１３は、品目別最適化部１１での動作に必要な残り段取時間を抽出する。
【０１２９】
品目間機械干渉判定部１４は、品目別最適化部１１により求められた品目ｉ毎の解から、機械干渉が解消されていると見なせるか否かを判定する。品目間機械干渉制御部１５は、機械干渉が解消されていない場合に、機械干渉が減少するように品目別最適化部１１を制御する。具体的には、品目別最適化部１１が用いる最適コスト関数中の機械干渉に用いるラグランジュ乗数（μtk）を更新する。
【０１３０】
仕掛品在庫充足判定部１８は、品目別最適化部１１により求められた品目ｉ毎の解から、仕掛品在庫が充足しているか否かを判定する。仕掛品在庫制御部１９は、仕掛品在庫が充足していない場合、つまり仕掛品在庫の品切れを起こしている場合に、仕掛品在庫が充足するように品目別最適化部１１を制御する。具体的には、品目別最適化部１１が用いる最適コスト関数中の仕掛品の充足に用いるラグランジュ乗数（λit）を更新する。
【０１３１】
最適生産スケジュール生成部１６は機械干渉及び仕掛品在庫の品切れが解消されたものと判定された場合、その際に求められた解を用いて生産スケジュールを生成する。主制御部１７はスケジューリング装置全体を制御する。
【０１３２】
また、主メモリ２２には、品目ｉ及び機械ｋ別のｐik，ｓimaxk，ｓi0k，δi0k，ｃikの各データと、品目ｉ別のｘi0，，ρij，ｈi，τijの各データと、品目ｉ毎の各タイムスロットｔにおけるｒijt，ｒi・tの各データとから成る生産データを格納するための生産データ記憶エリア２２１と、品目ｉ毎の各タイムスロットｔにおけるｒi0tから成る出荷要求量データを格納するための出荷要求量記憶エリア２２２と、品目別最適化部１１で算出されたタイムスロットｔまでのコストの和Ｖt（δit，ｓit，ｘit，μ，λi）及び当該和Ｖt（δit，ｓit，ｘit，μ，λi）に対応するδit*，ｓit*，ｘit*を格納するためのコスト記憶エリア２２３とが確保されている。ここで、δit*，ｓit*，ｘit*を格納するエリアを別に確保することも可能である。
【０１３３】
主メモリ２２には更に、品目別最適化部１１で最適部分問題を解くことにより求められた解の中間結果を格納するための中間結果記憶エリア２２４と、同じく最終結果を格納するための最終結果記憶エリア２２５と、最適生産スケジュール生成部１６により生成された生産スケジュールを格納するための生産スケジュール記憶エリア２２６とが確保されている。
【０１３４】
次に図１の構成の動作を、図３のフローチャートを参照して説明する。
まず、図１のスケジューリング装置を用いて最適生産スケジュールを作成するには、ｐik，ｓimaxk，ｓi0k，δi0k，ｃikの各データと、品目ｉ別のｘi0，，ρij，ｈi，τijの各データと、品目ｉ毎の各タイムスロットｔにおけるｒijt，ｒi・tの各データとから成る生産データを予め入力しておく必要がある。ここでは、この生産データをキーボード２５を用いて例えば表形式で入力するものとする。
【０１３５】
入力された生産データは、主制御部１７の制御により主メモリ２２内の生産データ記憶エリア２２１に格納される。また、この生産データ記憶エリア２２１に格納された生産データをＨＤＤ２３に保存して、再利用することができる。
【０１３６】
また、生産スケジュールの生成が必要となる毎に、品目ｉ毎の指定タイムスロットｔにおけるｒi0tから成る出荷要求量データが入力されて、主メモリ２２内の出荷要求量記憶エリア２２２に格納される。
【０１３７】
ここでは、計画対象期間が２週間、１日７時間の３シフトで、タイムスロットを３０分刻みにして、Ｔ＝５８８タイムスロットであるものとする。つまり本実施形態では、出荷要求量データを入力することで、計画対象期間を３０分刻みで５８８個のタイムスロットが設定されることになる。この刻み幅、つまり１タイムスロット期間は小さいほど、最適化問題（数理モデル）の解像度を上げることができる。計算量は刻みの数（タイムスロット数）の１次のオーダーにしかならないから、刻み幅を小さくすることをそれほど恐れる必要はない。即ち、刻み幅を半分にしても計算時間は倍にしかならない。勿論、必ずしも刻み幅を著しく小さくする必要はなく、丸め誤差が無視し得る程度であれば、実用上問題ない。
【０１３８】
この状態で、キーボード２５からスケジューリングの開始指示が入力されると、主制御部１７により初期化処理が行われ、繰り返し数（繰り返し番号）νと、中間結果記憶エリア２２４上の品目ｉ（ｉ∈Ｉ(１,２,…,ｎi)）別、タイムスロットｔ（ｔ∈Ｔ(１,２,…,ｎt)）別及び機械ｋ（ｋ∈Ｋ(１,２,…,ｎk)）別の決定変数δitkνとを初期値０に設定する（ステップ３０１，３０２）。また、タイムスロットｔ（ｔ∈Ｔ(１,２,…,ｎt)）別及び機械ｋ（ｋ∈Ｋ(１,２,…,ｎk)）別のラグランジュ乗数μtkνと、タイムスロットｔ（ｔ∈Ｔ(１,２,…,ｎt)）別のラグランジュ乗数λtνも初期値０に設定する（ステップ３０３）。
【０１３９】
すると主制御部１７は品目別最適化部１１を起動する。品目別最適化部１１はまず、品目ｉを１に初期設定する（ステップ３０４）。次に品目別最適化部１１は、品目ｉの式（１６）に示す部分最適化問題を、残り段取時間推移方程式（４）及び在庫推移方程式（５）の制約のもとで、式（２０）の最適コスト関数を用いて解き、その解δitkνを求める（ステップ３０５）。ここでは、品目ｉについて、当該品目ｉの処理に利用可能な各機械ｋ別に、各タイムスロット毎の解δitkν（∀ｔ∈Ｔ，ｋ∈Ｋ(i)）が求められる。
【０１４０】
このステップ３０５の詳細手順を図４のフローチャートに示す。ここでは品目別最適化部１１は、品目ｉの部分最適化問題を解くために、以下に述べる最適コスト関数値Ｖt（δit，ｓit，ｘit，μ，λi）と最適決定δit-1*（δit，ｓit，ｘit）とを求める。
【０１４１】
そのため品目別最適化部１１は、まずタイムスロットｔを１に設定する（ステップ４０１）。そして品目別最適化部１１は、品目ｉについて、取り得る（実行し得る）すべての組み合わせの（δit，ｓit，ｘit）に対し、当該品目ｉの処理（生産）に使用可能な機械ｋの範囲（ｋ∈Ｋ(i)）で前記式（２０）の最適コスト関数を用いて最適コスト関数値Ｖt（δit，ｓit，ｘit，μ，λi）を算出し、その時の最適決定δit-1*（δit，ｓit，ｘit）と共に、コスト記憶エリア２２３に格納する（ステップ４０２）。
【０１４２】
次に品目別最適化部１１は、ｔを１だけインクリメントし（ステップ４０３）、そのインクリメント後のｔがｎtより大きくなければ（ステップ４０４）、そのインクリメント後のｔに対して上記ステップ４０２以降の処理を行う。これをｔ＝ｎtまで繰り返す（ステップ４０４）。
【０１４３】
この状態で品目別最適化部１１は、コスト記憶エリア２２３上の最適コストＶt（δit，ｘit，ｓit）をｔ＝ｎtから逆に辿る。即ち品目別最適化部１１は、先に説明したように、まず、ｔ＝ｎtのタイムスロットに対して取り得るすべてのδit，ｓit，ｘitの組み合わせ（δit，ｓit，ｘit）の中からＶt（δit，ｓit，ｘit，μ，λi）の最小値（最適コスト）を探して、その際のδit，ｓit，ｘitを最適解δit*，ｓit*，ｘit*とする（ステップ４０５，４０６）。
【０１４４】
次に品目別最適化部１１は、δit*，ｓit*，ｘit*に対し最適な決定δit-1*（δit*，ｓit*，ｘit*）を特定し（ステップ４０７）、このδit*，ｓit*，ｘit*を前記式（４），（５）に代入して、最適コストＶtに至った直前のタイムスロットt−１でのｓit-1*，ｘit-1*を求める（ステップ４０８）。これをｔを１ずつデクリメントしながら（ステップ４０９）、ｔ＝１まで繰り返す（ステップ４１０）。
【０１４５】
以上のようにして、品目ｉについて最適コストを与えるδitkν（ｔ＝１，…，ｎt，ｋ∈Ｋ(i)）が品目別最適化部１１により求められる。すると品目別最適化部１１は、中間結果記憶エリア２２４上のδitkνを、求めた最新のδitkνに更新する（ステップ３０６）。
【０１４６】
次に品目別最適化部１１はｉを１だけインクリメントし（ステップ３０７）、そのインクリメント後のｉがｎiを超えていないならば（ステップ３０８）、未処理の品目が存在するものと判定し、そのインクリメント後のｉで示される品目ｉについて、上記ステップ３０５以降の処理を実行する。そして、ｉ＝１，…，ｎiのすべての品目について解δitkν（∀ｉ∈Ｉ，ｔ∈Ｔ，ｋ∈Ｋ(i)）を求めると、品目間機械干渉判定部１４及び仕掛品在庫充足判定部１８が起動される。
【０１４７】
品目間機械干渉判定部１４は、機械ｋ毎に、その機械ｋで処理（生産）されるすべての品目ｉ（ｉ∈Ｍ(i)）の解δitkνから、各品目ｉ間のδitk＝１のタイムスロットの重なりの回数を表す機械干渉数を算出し、その数から機械干渉が解消されていると見なせるか否かを判定する（ステップ３０９）。具体的には、全機械についての繰り返し数νにおける全品目、全期間（全計画対象期間）に亙る機械干渉数の総和をｎt×ｎk（全タイムスロット数×全機械数）で除して得られる平均機械干渉数を算出し、その値が閾値以下であるか否かにより、機械干渉が解消されていると見なせるか否かを判定する。
【０１４８】
一方、仕掛品在庫充足判定部１８は、上記ステップ３０９において、全品目ｉ（ｉ∈Ｉ(１,２,…,ｎi)）について、仕掛品在庫量がマイナスとなる（つまり非負条件を満たさなかった）タイムスロットの総数を求め、その数から仕掛品在庫が充足しているか否かを判定する。具体的には、全品目について、仕掛品在庫量がマイナスとなるタイムスロットの総数を求め、それをｎi×ｎt（全品目数×全タイムスロット数）で除して得られる平均仕掛品在庫不足割合を算出し、その値が閾値以下であるか否かにより、仕掛品在庫が充足しているか否かを判定する。ここで、各仕掛品在庫量は、ステップ３０５で求められた対応する解δitkνと組をなすｘitを用いて、前記式（８）に従って算出される。
【０１４９】
もし、機械干渉が解消されているという条件及び仕掛品在庫量が充足しているととう条件の少なくとも一方の条件を満たさない場合、繰り返し数（反復回数）νが１だけインクリメントされ（ステップ３１０）、品目間機械干渉制御部１５及び仕掛品在庫制御部１９の少なくとも一方が起動される。ここでは、機械干渉が解消されていないときは品目間機械干渉制御部１５が、仕掛品在庫量が充足していないときは仕掛品在庫充足判定部１８が、それぞれ起動される。上記両条件が成立していないときは、品目間機械干渉制御部１５及び仕掛品在庫充足判定部１８の両方が起動される。
【０１５０】
品目間機械干渉制御部１５は、自身が起動された場合、機械干渉に用いるラグランジュ乗数μtkνを前記式（１７）により更新（調整）して、品目別最適化部１１に通知する（ステップ３１１）。
【０１５１】
一方、仕掛品在庫充足判定部１８は、自身が起動された場合、上記ステップ３１１において、仕掛品の在庫充足に用いるラグランジュ乗数λtνを前記式（１８）により更新（調整）して、品目別最適化部１１に通知する。
【０１５２】
これにより、更新されたラグランジュ乗数μtkν及びまたはλtνを用いてステップ３０５が品目数分繰り返し実行され、品目別、機械別の解δitkνがタイムスロット毎に求められる。
【０１５３】
やがて、品目間機械干渉判定部１４により機械干渉が解消されていると見なせると判定されると共に、仕掛品在庫充足判定部１８により仕掛品在庫量が充足していると判定されると、そのときの品目別、機械別の解δitkνが最終結果記憶エリア２２５に格納され、最適生産スケジュール生成部１６が起動される。
【０１５４】
最適生産スケジュール生成部１６は、最終結果記憶エリア２２５に格納されている品目別、機械別の解δitkνをもとに、生産スケジュールを生成して、生産スケジュール記憶エリア２２６に格納する。前記したように品目別、機械別の解δitkνは０−１変数により表される。そして、時間軸上に刻まれたタイムスロットｔに、当該スロットで機械ｋにより品目ｉを処理（セットアップまたは生産）すれば１で、そうでなければ０で表される。したがって、解δitkνにおける１の並びとその時間的位置により品目別及び機械別にロットサイズとそれらのロットの時間的位置を生成することができる。ロットの時間的位置は実行可能なスケジュールにおいてロットの順序を決定するための情報を与える。つまり本実施形態においては、品目間の解（スケジュール）の機械干渉が解消されていると見なせ、かつ仕掛品在庫量が充足していると判定される解δitkνが求まった時点で、ロットサイズとロット順序を同時に生成することができる。
【０１５５】
生産スケジュール記憶エリア２２６に格納された生産スケジュールは、図２中のディスプレイ２６に表示されると共に、キーボード２５からの印刷指示入力に応じて、または自動的に、プリンタ装置（図示せず）から印刷出力される。また、この生産スケジュールをそのままの形で、または所定のデータ変換により、生産ラインでの制御情報として用いることができる。
【０１５６】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０１５７】
【発明の効果】
以上詳述したように本発明によれば、多品目多工程のスケジューリングの問題に含まれる多様な決定の諸局面を一つ一つ列挙することも意識することもなく、また人為的な制約を必要とすることなく、当該諸局面を全体最適化の視点から解決して経済的かつ合理的な実行可能スケジュールを生成することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る多品目多工程ロットサイズスケジューリング装置の機能ブロック構成を示す図。
【図２】図１のスケジューリング装置を実現する計算機のブロック構成図。
【図３】図１の構成の動作を説明するためのフローチャート。
【図４】図３中のステップ３０５の詳細手順を説明するためのフローチャート。
【図５】  (δit-1k，ｓit-1k)から(δitk，ｓitk)への状態推移の関係を説明するための図。
【図６】  (δitk，ｓitk)の状態推移図。
【図７】エシェロン在庫保管費を説明するための図。
【図８】多品目多工程の生産システムを説明するための図。
【符号の説明】
１１…品目別最適化部
１２…在庫量抽出部
１３…残り段取時間抽出部
１４…品目間機械干渉判定部
１５…品目間機械干渉制御部
１６…最適生産スケジュール生成部
１７…主制御部
１８…仕掛品在庫充足判定部
１９…仕掛品在庫制御部
２１…ＣＰＵ
２２…主メモリ
２２１…生産データ記憶エリア
２２２…出荷要求量記憶エリア
２２３…コスト記憶エリア
２２４…中間結果記憶エリア
２２５…最終結果記憶エリア
２２６…生産スケジュール記憶エリア
２４１…最適化スケジューリングプログラム
２４２…ＣＤ−ＲＯＭ
【図１】
0004737735.tif 000020
【図２】
0004737735.tif 000021
【図３】
0004737735.tif 000022
【図４】
0004737735.tif 000023
【図５】
0004737735.tif 000024
【図６】
0004737735.tif 000025
【図７】
0004737735.tif 000026
【図８】
0004737735.tif 000027