(57)【要約】【課題】部品が上流側から下流側に向かう流れを生起するために、その部品に対して処理を施すべき複数の機械が予め定められたフローに従って配置されて構成されたシステムについて、各機械を遊休状態に陥らせる原因を生成する原因要素と、その原因が各機械に波及する原因経路とを推定する。【解決手段】生産システムにおける各構成要素の経時的な状態変化を表すデータに基づき、その生産システムのうち遊休状態にある機械Ｍｉを特定するとともに、その機械Ｍｉにつき、同じ生産システム上において別の各機械Ｓ，Ａ，Ｂをその生産システム上における部品の流れの正方向または逆方向に追跡し、それにより、その生産システムの挙動を時系列的に模擬するシミュレーションに依存することなく、機械Ｍｉに遊休状態を生じさせる別の機械である原因要素と、その原因要素から機械Ｍｉまでの経路である原因経路とを推定する。【選択図】  図１１
2005055956.tif 000002
【特許請求の範囲】
【請求項１】
被処理要素が上流側から下流側に向かう流れを生起するために、その被処理要素に対して処理を施すべき複数個の構成要素が予め定められたフローに従って配置されて構成されたシステムについて、ある構成要素に遊休状態を発生させる別の構成要素である原因要素と、その原因要素から、前記遊休状態にある構成要素である遊休構成要素までの原因経路とを推定する原因・経路推定方法であって、
前記システムにおける各構成要素の経時的な状態変化を表すシステムデータに基づき、前記遊休構成要素とそれに隣接する別の構成要素とのそれぞれの経時的な状態変化相互の関係を決定し、その決定された関係に基づき、前記遊休構成要素を第１の出発要素としてそれに隣接する別の構成要素を前記流れの正方向と逆方向とのうち対応する方向に追跡する第１の追跡工程と、
前記システムデータに基づき、かつ、予め定められた判定規則に従い、その追跡された構成要素が前記原因要素に該当するか否かを判定することにより、その原因要素を特定する原因特定工程と、
前記第１の追跡工程の実行結果のみでは前記原因特定工程において前記原因要素が特定されない場合に、それが特定されるまで、少なくとも１回の追跡の各々を、前記システムデータに基づき、最後に追跡された構成要素とそれに隣接する別の構成要素とのそれぞれの経時的な状態変化相互の関係を決定するとともに、その決定された関係に基づき、最後に追跡された構成要素を第２の出発要素としてそれに隣接する別の構成要素を前記流れの正方向と逆方向とのうち対応する方向に追跡する内容で行う第２の追跡工程と、
前記システムデータに基づき、前記原因特定工程によって特定された原因要素に関連付けて、その原因要素が前記遊休構成要素に影響を及ぼす経路を前記原因経路として特定する経路特定工程と
を含む原因・経路推定方法。
【請求項２】
さらに、前記システムデータに基づき、同じ遊休構成要素の複数の遊休期間について前記原因要素が少なくとも１個存在する場合に、各原因要素ごとに、それが前記遊休構成要素に及ぼす影響を、その影響が各原因要素から前記遊休構成要素に及ぶ各原因経路に関連付けて推定する影響推定工程を含む請求項１に記載の原因・経路推定方法。
【請求項３】
前記第１および第２の追跡工程が、共に、前記追跡に先立ち、前記第１および第２の出発要素のうち対応するものの状態の種類に応じ、上流向きと下流向きとのうちのいずれかに前記追跡の向きを設定する向き設定工程を含む請求項１または２に記載の原因・経路推定方法。
【請求項４】
前記第１および第２の追跡工程が、共に、前記追跡に先立ち、前記第１および第２の出発要素のうち対応するものに隣接するすべての隣接構成要素にそれらの各状態に応じて順位を付与し、その付与された順位に従っていずれかの隣接構成要素を前記第１および第２の出発要素のうち対応するものとして選択する順位付け工程を含み、
前記経路特定工程が、各原因要素ごとに、それに付与された順位に基づき、前記遊休構成要素と各原因要素との間における各原因経路を特定する工程を含む請求項１ないし３のいずれかに記載の原因・経路推定方法。
【請求項５】
さらに、前記追跡中、前記システムデータに基づき、前記システムにおける各構成要素間の各バッファの位置ごとに、そのバッファの変更によって前記遊休構成要素の状態の持続時間が変化する量と、各バッファが前記原因要素であり続ける時間と、前記遊休構成要素に隣接する各隣接構成要素が前記原因経路上にあり続ける時間とのうちの少なくとも一つを含む統計値を計算する統計値計算工程を含む請求項１ないし４のいずれかに記載の原因・経路推定方法。
【請求項６】
被処理要素が上流側から下流側に向かう流れを生起するために、その被処理要素に対して処理を施すべき複数個の構成要素が予め定められたフローに従って配置されて構成されたシステムについて、そのシステムの各構成要素間における各バッファの変更によってそのシステムの性能が改善される改善量を推定するシステム性能改善量推定方法であって、
前記システムにおける各構成要素の経時的な状態変化を表すシステムデータに基づき、各構成要素ごとに、前記バッファ内に存在する前記被処理要素の数が変化する第１の変化量と、前記バッファ内において前記被処理要素を一時的に収容可能なスペースの数が変化する第２の変化量とを推定する第１推定工程と、
それら推定された第１および第２の変化量に基づき、各構成要素ごとに、各構成要素が利用可能な被処理要素数が前記バッファの変更に起因して変化する第３の変化量と、各構成要素が利用可能なスペース数が前記バッファの変更に起因して変化する第４の変化量とを推定する第２推定工程と、
各構成要素ごとに、前記推定された第３および第４の変化量に基づき、各構成要素の遊休時間が前記利用可能な被処理要素数の変化に起因して変化する第１遊休時間変化量と、各構成要素の遊休時間が前記利用可能なスペース数の変化に起因して変化する第２遊休時間変化量との合計値を推定する第３推定工程と、
その推定された合計値をすべての構成要素について合計することにより、前記改善量を推定する第４推定工程と
を含むシステム性能改善量推定方法。
【請求項７】
前記第２推定工程が、前記第３および第４の変化量を、請求項５における統計値に基づいて推定する請求項６に記載のシステム性能改善量推定方法。
【請求項８】
前記第１推定工程が、
前記複数の構成要素のうち、各バッファより上流側におけるすべての構成要素についての代表的なボトルネック確率と、下流側におけるすべての構成要素についての代表的なボトルネック確率とに基づき、前記各バッファの満杯率と空乏率との少なくとも一方を推定し、その推定値に基づいて前記第１および第２の変化量を推定する請求項６または７に記載のシステム性能改善量推定方法。
【請求項９】
請求項１ないし８のいずれかに記載の方法を実施するためにコンピュータにより実行されるプログラム。
【請求項１０】
請求項９に記載のプログラムをコンピュータ読取り可能に記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、被処理要素が上流側から下流側に向かう流れを生起するために、その被処理要素に対して処理を施すべき複数の構成要素が予め定められたフローに従って配置されて構成されたシステムについて、ある構成要素に遊休状態を発生させる原因を解析する技術に関し、特に、ある構成要素に遊休状態を発生させる別の構成要素である原因要素と、その原因要素から、前記遊休状態にある構成要素である遊休構成要素までの原因経路とを推定する技術に関する。
【０００２】
【従来の技術】
被処理要素が上流側から下流側に向かう流れを生起するために、その被処理要素に対して処理を施すべき複数の構成要素が予め定められたフローに従って配置されて構成されたシステムが既に存在する。この種のシステムの一例は、部品に加工を施したり、別の部品と組み合わせたりして製品を生産する生産システムである。
【０００３】
この生産システムの処理能力（スループット）を改善する上で最も簡単な方法は、その生産システムにバッファを割り当てることである。なぜなら、バッファの割り当ては、システムの迅速な変更を可能にするとともに、その変更のための初期費用が少なくて済むからである。その初期費用は、バッファを追加したり除去したりするための費用であって、その額は、通常、処理機械を加えるかまたはシステムのフローを変更する費用の一部にすぎない。
【０００４】
しかしながら、バッファサイズを増加させれば、常に処理能力が増加するが、時には、仕掛在庫数および総処理時間も増加し、その結果、在庫および消費者に届くまでの時間が増加する。したがって、その処理能力と仕掛在庫数と総処理時間との間における背反（トレードオフ）に研究上、重要な関心が集まる。
【０００５】
バッファは、システムにおいてボトルネックを構成する機械を原因とする、他の機械の遊休時間（機械がスターブまたはブロックされた時間）を減少させることにより、その機械の稼動率を改善することができる。機械がスターブする（部品が欠乏する）状態とは、機械に供給される部品が不足するために、その機械が作用できない状態を意味し、一方、機械がブロックされる（閉塞される）状態とは、機械が処理した部品を搬出できないために、その機械が作用できない状態を意味する。
【０００６】
バッファは特に２つの目的を果たす。すなわち、バッファは、部品を追加することによって機械のスタービング時間を減少させるとともに、自由スペースを追加することによって機械のブロッキング時間を減少させ、それにより、システムの処理能力を改善するのである。
【０００７】
バッファの割り当てに関する探索法が多数存在する。それら方法のうちの大半は、例えば、シミュレーテッド・アニーリング法、遺伝的アルゴリズム、ニューラルネットワーク、勾配に基づく探索、タブーサーチ法等を用いることにより、極めて多数回（例えば、数千回、数十万回）の反復を必要とするメタモデルの構築に基づいている。
【０００８】
しかし、工業的には、そのメタモデルを用いるために必要な多数の反復実験値を取得することは通常困難であり、さらに、上記方法を利用することは非能率的である。
【０００９】
最適なバッファサイズを探る最も単純な方法は、考え得るすべてのバッファサイズの組合せについてシミュレーションを適用して実行し、それぞれの実行結果を評価する方法である。この方法を採用する場合、例えば３台のバッファがそれぞれ、サイズ１から１０までの値を取り得ると仮定すれば、わずか３台のバッファであっても、そのサイズ組合せの総数は１，０００通りにもなる。
【００１０】
この手法は現実的ではないため、多くの場合、システムの改善に効果があると経験的に予想されるバッファのみに着目し、そのようなバッファのサイズを離散的に変更してシミュレーションを適用するという方法を採用する。しかし、この方法は、真に最適なサイズ組合せを探り得るものではない。
【００１１】
さらに、シミュレーション試行回数を減らす手法として、「実験計画法」を用いることも考えられるが、いずれにしても、最適なバッファサイズの組合せを求めるためには多数回のシミュレーションを行うことが必要であることは改めて指摘するまでもないことである。
【００１２】
システムへのバッファの割り当てを最適化することが究極の課題であるが、そのためには、バッファがシステム中の各対象物（機械、別のバッファを含む）に与える効果、例えば、バッファの変更（変更位置または変更量）と各対象物のスタービング時間またはブロッキング時間の削減量との関係を定義して、バッファの変更からスタービング時間またはブロッキング時間の削減量を推定することが必要である。
【００１３】
さらに、そのようなバッファの効果を精度よく推定するためには、システムの各構成要素（「各対象物」ともいう。例えば、生産ラインにおける加工設備が該当する。）のスターブまたはブロックの原因要素であるバッファと、そのバッファの影響が各対象物のスターブまたはブロックに及ぶ経路である原因経路とを精度よく推定することが必要である。
【００１４】
以上説明した事情を背景とし、本発明は、被処理要素が上流側から下流側に向かう流れを生起するために、その被処理要素に対して処理を施すべき複数の構成要素が予め定められたフローに従って配置されて構成されたシステムについて、各構成要素を遊休状態に陥らせる原因を生成する原因要素と、その原因が各構成要素に波及する原因経路とを推定することを課題としてなされたものである。
【００１５】
【課題を解決するための手段】
本発明によって下記の各態様が得られる。各態様は、項に区分し、各項に番号を付し、必要に応じて他の項の番号を引用する形式で記載する。これは、本明細書に記載の技術的特徴のいくつかおよびそれらの組合せのいくつかの理解を容易にするためであり、本明細書に記載の技術的特徴やそれらの組合せが以下の態様に限定されると解釈されるべきではない。
【００１６】
さらに、各項を他の項の番号を引用する形式で記載することが必ずしも、各項に記載の技術的特徴を他の項に記載の技術的特徴から分離させて独立させることを妨げることを意味するわけではなく、各項に記載の技術的特徴をその性質に応じて適宜独立させることが可能であると解釈されるべきである。
【００１７】
（１）  被処理要素が上流側から下流側に向かう流れを生起するために、その被処理要素に対して処理を施すべき複数個の構成要素が予め定められたフローに従って配置されて構成されたシステムについて、ある構成要素に遊休状態を発生させる別の構成要素である原因要素と、その原因要素から、前記遊休状態にある構成要素である遊休構成要素までの原因経路とを推定する原因・経路推定方法であって、
前記システムにおける各構成要素の経時的な状態変化を表すシステムデータに基づき、前記遊休構成要素とそれに隣接する別の構成要素とのそれぞれの経時的な状態変化相互の関係を決定し、その決定された関係に基づき、前記遊休構成要素を第１の出発要素としてそれに隣接する別の構成要素を前記流れの正方向と逆方向とのうち対応する方向に追跡する第１の追跡工程と、
前記システムデータに基づき、かつ、予め定められた判定規則に従い、その追跡された構成要素が前記原因要素に該当するか否かを判定することにより、その原因要素を特定する原因特定工程と、
前記第１の追跡工程の実行結果のみでは前記原因特定工程において前記原因要素が特定されない場合に、それが特定されるまで、少なくとも１回の追跡の各々を、前記システムデータに基づき、最後に追跡された構成要素とそれに隣接する別の構成要素とのそれぞれの経時的な状態変化相互の関係を決定するとともに、その決定された関係に基づき、最後に追跡された構成要素を第２の出発要素としてそれに隣接する別の構成要素を前記流れの正方向と逆方向とのうち対応する方向に追跡する内容で行う第２の追跡工程と、
前記システムデータに基づき、前記原因特定工程によって特定された原因要素に関連付けて、その原因要素が前記遊休構成要素に影響を及ぼす経路を前記原因経路として特定する経路特定工程と
を含む原因・経路推定方法。
【００１８】
システムにおける複数の構成要素のフローを特定して、そのシステム内における被処理要素の流れを特定すれば、経験則に従い、そのシステムにおいて互いに隣接した任意の２個の構成要素が相互に及ぼし得る影響のいくつかの可能性を推定することが可能である。このことは後に、図１１および図１２を参照して詳述する。
【００１９】
このような環境において、そのシステムにおける各構成要素の経時的な状態変化を表すシステムデータを用いれば、任意の構成要素とそれに隣接する別の構成要素とのそれぞれの経時的な状態変化相互の関係を決定することが可能である。そして、その関係を用いれば、上述のいくつかの可能性の中から適当なものを選択し、それにより、互いに隣接した特定の２個の構成要素間の関係、例えば、一方の構成要素が遊休状態にあって、他方の構成要素がその遊休状態の原因を構成するとともに、それら２個の構成要素間の経路が、その原因が遊休状態の構成要素に波及する経路を構成するという関係を一義的に推定することが可能である。
【００２０】
さらに、そのような推定は、そのシステムの挙動を時系列的に模擬するシミュレーションの多数回の繰返しに依存せずに短時間で効率よく行うことが可能である。
【００２１】
以上説明した知見に基づき、本項に係る方法においては、システムにおける各構成要素の経時的な状態変化を表すシステムデータに基づき、遊休構成要素とそれに隣接する別の構成要素とのそれぞれの経時的な状態変化相互の関係が決定される。
【００２２】
さらに、その決定された関係に基づき、遊休構成要素を出発要素としてそれに隣接する別の構成要素が、システムにおける被処理要素の流れの正方向と逆方向とのうち対応する方向に追跡される。
【００２３】
それにより、ある構成要素に遊休状態を生じさせる別の構成要素である原因要素と、その原因要素から、遊休構成要素までの経路である原因経路とが推定される。
【００２４】
したがって、この方法によれば、システムの挙動を時系列的に模擬するシミュレーションの多数回の繰返しに依存せずに原因要素および原因経路を推定することが可能となり、よって、シミュレーションに依存する場合より極めて短時間でその推定を行うことが可能となる。
【００２５】
ところで、本項に係る方法を実施するためには、前記システムデータを事前に取得することが必要であり、このシステムデータは、そのシステムの挙動を時系列的に模擬するシミュレーションによって取得することが可能である。この場合には、そのシステムデータの取得と原因要素および原因経路の推定（「原因解析」または「原因調査」ともいう）とを含む一連の解析がシミュレーションに依存せざるを得ない。
【００２６】
しかしながら、本項に係る方法を実施する場合には、原因解析がシミュレーションの多数回の繰返しに依存せずに済むため、システムデータの取得のための１回限りのシミュレーションによって上述の一連の解析を完了可能となる。
【００２７】
よって、この方法によれば、システムのための一連の解析を効率よく短時間で行うことが可能となり、その実用性が向上する。
【００２８】
本項における「第２の追跡工程」は、追跡を１回のみ行う場合や、複数回、反復して行う場合がある。後者の場合には、今回の追跡における「第２の出発要素」が、前回の追跡において最後に追跡された構成要素に一致し、このように、第２の出発要素は追跡が反復されるごとに更新される。このことは、下記の各項における「第２の出発要素」についても同様である。
【００２９】
（２）  さらに、前記システムデータに基づき、同じ遊休構成要素の複数の遊休期間について前記原因要素が少なくとも１個存在する場合に、各原因要素ごとに、それが前記遊休構成要素に及ぼす影響を、その影響が各原因要素から前記遊休構成要素に及ぶ各原因経路に関連付けて推定する影響推定工程を含む（１）項に記載の原因・経路推定方法。
【００３０】
システムにおいては、同じ遊休構成要素の複数の遊休期間について原因要素が少なくとも１個存在する場合がある。この場合、本項に係る方法によれば、各原因要素ごとに、それが遊休構成要素の遊休状態に及ぼす影響が、その影響が各原因要素から遊休構成要素に及ぶ各原因経路に関連付けて推定される。
【００３１】
さらに、この方法によれば、その影響の推定が、システムデータに基づいて行われる。
【００３２】
したがって、この方法によれば、その影響の推定を、各原因要素ごとに個別に、かつ、シミュレーションの多数回の繰返しに依存せずに短時間で行うことが可能となる。
【００３３】
（３）  前記第１および第２の追跡工程が、共に、前記追跡に先立ち、前記第１および第２の出発要素のうち対応するものの状態の種類に応じ、上流向きと下流向きとのうちのいずれかに前記追跡の向きを設定する向き設定工程を含む（１）または（２）項に記載の原因・経路推定方法。
【００３４】
例えば、後に詳述するが、今回の遊休構成要素がスタービング状態にある場合には、その原因は、それより上流側に存在する可能性が高い。そのため、今回の遊休構成要素のための追跡は、それから上流に向かって行うべきである。
【００３５】
これに対し、今回の遊休構成要素がブロッキング状態にある場合には、その原因は、それより下流側に存在する可能性が高い。そのため、今回の遊休構成要素のための追跡は、それから下流に向かって行うべきである。
【００３６】
このような知見に基づき、本項に係る方法においては、追跡に先立ち、出発要素の状態の種類に応じた向きに追跡の向きが設定される。
【００３７】
したがって、この方法によれば、原因・経路特定のための追跡を無駄なく短時間で行うことが容易となる。
【００３８】
（４）  前記第１および第２の追跡工程が、共に、前記追跡に先立ち、前記第１および第２の出発要素のうち対応するものに隣接するすべての隣接構成要素にそれらの各状態に応じて順位を付与し、その付与された順位に従っていずれかの隣接構成要素を前記第１および第２の出発要素のうち対応するものとして選択する順位付け工程を含み、
前記経路特定工程が、各原因要素ごとに、それに付与された順位に基づき、前記遊休構成要素と各原因要素との間における各原因経路を特定する工程を含む（１）ないし（３）項のいずれかに記載の原因・経路推定方法。
【００３９】
遊休構成要素を遊休状態に陥らせる原因およびその経路は、後に詳述するが、その遊休構成要素に隣接する別の構成要素の状態によって、いくつかのパターンに分類することができる。
【００４０】
この知見に基づき、本項に係る方法においては、追跡に先立ち、出発要素に隣接するすべての隣接構成要素にそれらの各状態に応じて順位が付与される。さらに、各原因要素ごとに、それに付与された順位に基づき、遊休構成要素と各原因要素との間における各原因経路が特定される。
【００４１】
（５）  さらに、前記追跡中、前記システムデータに基づき、前記システムにおける各構成要素間の各バッファの位置ごとに、そのバッファの変更によって前記遊休構成要素の状態の持続時間が変化する量と、各バッファが前記原因要素であり続ける時間と、前記遊休構成要素に隣接する各隣接構成要素が前記原因経路上にあり続ける時間とのうちの少なくとも一つを含む統計値を計算する統計値計算工程を含む（１）ないし（４）項のいずれかに記載の原因・経路推定方法。
【００４２】
本項および下記の各項における「バッファ」は、システムに実在するバッファを意味するように解釈したり、潜在的に存在するバッファを意味するように解釈することができる。後者の場合には、例えば、現実にバッファが存在し得る位置が特定されることとなる。
【００４３】
（６）  被処理要素が上流側から下流側に向かう流れを生起するために、その被処理要素に対して処理を施すべき複数個の構成要素が予め定められたフローに従って配置されて構成されたシステムについて、そのシステムの各構成要素間における各バッファの変更によってそのシステムの性能が改善される改善量を推定するシステム性能改善量推定方法であって、
前記システムにおける各構成要素の経時的な状態変化を表すシステムデータに基づき、各構成要素ごとに、前記バッファ内に存在する前記被処理要素の数が変化する第１の変化量と、前記バッファ内において前記被処理要素を一時的に収容可能なスペースの数が変化する第２の変化量とを推定する第１推定工程と、
それら推定された第１および第２の変化量に基づき、各構成要素ごとに、各構成要素が利用可能な被処理要素数が前記バッファの変更に起因して変化する第３の変化量と、各構成要素が利用可能なスペース数が前記バッファの変更に起因して変化する第４の変化量とを推定する第２推定工程と、
各構成要素ごとに、前記推定された第３および第４の変化量に基づき、各構成要素の遊休時間が前記利用可能な被処理要素数の変化に起因して変化する第１遊休時間変化量と、各構成要素の遊休時間が前記利用可能なスペース数の変化に起因して変化する第２遊休時間変化量との合計値を推定する第３推定工程と、
その推定された合計値をすべての構成要素について合計することにより、前記改善量を推定する第４推定工程と
を含むシステム性能改善量推定方法。
【００４４】
この方法においては、（ａ）バッファ内に存在する被処理要素の数が変化する第１の変化量と、（ｂ）バッファ内において被処理要素を一時的に収容可能なスペースの数が変化する第２の変化量と、（ｃ）各構成要素が利用可能な被処理要素数がバッファ変更に起因して変化する第３の変化量と、（ｄ）各構成要素が利用可能なスペース数がバッファ変更に起因して変化する第４の変化量とに基づき、バッファ変更に起因するシステム性能の改善量が推定される。
【００４５】
さらに、本項に係る方法においては、その改善量の推定に用いるべき第１ないし第４の変化量が、前記システムデータに基づいて行われる。
【００４６】
したがって、この方法によれば、シミュレーションの多数回の繰返しに依存することなく、バッファ変更に起因したシステム性能の改善量の推定を行うことが可能となり、よって、その推定を短時間で効率よく行うことが容易となる。
【００４７】
ここに、「第１の変化量」は、例えば、バッファの変更に起因して、バッファ内に存在する被処理要素の数が変化する量として定義することができ、同様に、「第２の変化量」は、例えば、バッファの変更に起因して、バッファ内において被処理要素を一時的に収容可能なスペースの数が変化する量として定義することができる。
【００４８】
（７）  前記第２推定工程が、前記第３および第４の変化量を、前記（５）項における統計値に基づいて推定する（６）項に記載のシステム性能改善量推定方法。
【００４９】
（８）  前記第１推定工程が、
前記複数の構成要素のうち、各バッファより上流側におけるすべての構成要素についての代表的なボトルネック確率と、下流側におけるすべての構成要素についての代表的なボトルネック確率とに基づき、前記各バッファの満杯率と空乏率との少なくとも一方を推定し、その推定値に基づいて前記第１および第２の変化量を推定する（６）または（７）項に記載のシステム性能改善量推定方法。
【００５０】
本項における「ボトルネック確率」は、例えば、システムにおける各構成要素が作用状態にある時間の長さの、全時間（例えば、システムにとっての総解析時間）に対する比率として定義することが可能である。このように定義されたボトルネック確率は、例えば、システムにおける各構成要素がボトルネックとして機能するボトルネック期間が全時間に占有するボトルネック期間占有率を意味する。ボトルネック期間占有率の計算手法の一例が本出願人の特願２００２−８１０７７号に記載されている。
【００５１】
（９）  （１）ないし（８）項のいずれかに記載の方法を実施するためにコンピュータにより実行されるプログラム。
【００５２】
このプログラムがコンピュータにより実行されれば、前記（１）ないし（８）項のいずれかに記載の方法におけると基本的に同じ原理に従い、同様な効果が実現され得る。
【００５３】
このプログラムは、それの機能を果たすためにコンピュータにより実行される指令の組合せのみならず、各指令に従ってコンピュータにより処理されるファイルやデータをも含むように解釈することが可能である。
【００５４】
（１０）  （９）項に記載のプログラムをコンピュータ読取り可能に記録した記録媒体。
【００５５】
この記録媒体に記録されたプログラムがコンピュータにより実行されれば、前記（１）ないし（８）項のいずれかに記載の方法におけると基本的に同じ原理に従い、同様な効果が実現され得る。
【００５６】
本項における「記録媒体」は種々の形式を採用可能であり、例えば、フレキシブルディスク等の磁気記録媒体、ＣＤ、ＣＤ−ＲＯＭ等の光記録媒体、ＭＯ等の光磁気記録媒体、ＲＯＭ等のアンリムーバブル・ストレージ等の少なくとも１つを採用可能である。
【００５７】
（１１）  前記（１）ないし（８）項のいずれかに記載の方法をコンピュータを用いて実施するシステム解析装置。
【００５８】
この装置によれば、前記（１）ないし（８）項のいずれかに記載の方法におけると基本的に同じ原理に従い、同様な効果が実現され得る。
【００５９】
【発明の実施の形態】
以下、本発明のさらに具体的な実施の形態の一つを図面に基づいて詳細に説明する。
【００６０】
本発明の一実施形態に従うバッファ予測方法は、概略的に説明すれば、図１に概念的にフローチャートで表すように、複数の構成要素を有する離散事象システム（以下、単に「システム」という。）において、各構成要素を遊休状態に陥らせる原因を構成する構成要素である原因要素と、その原因が各構成要素に波及する原因経路とを推定する原因・経路推定工程を含んでいる。このバッファ予測方法は、バッファ敷設効果予測方法に言換えることが可能である。
【００６１】
このバッファ予測方法は、さらに、そのシステムにおけるバッファの変更（変更位置または変更量）と各構成要素のスタービング時間（部品不足状態の継続時間）またはブロッキング時間（部品搬出不能状態の継続時間）の削減量との間における、時間に依存しない数学的な関係に従い、バッファの変更からスタービング時間またはブロッキング時間の削減量を推定する削減スタービング／ブロッキング時間推定工程を含んでいる。
【００６２】
このバッファ予測方法は、さらに、そのシステムへのバッファの割り当て（設置位置およびバッファ容量に関する）を最適化するバッファ最適化工程を含んでいる。
【００６３】
そのシステムは、複数の要素であって様々な作用を行うものにより構成されている。このシステムは、作用を行わない被処理対象物を含まないか、または含んでいる。要素は、例えば、被処理対象物を加工したり（変形させたり）搬送することにより、その被処理対象物に対して作用を行うことが可能である。要素はさらに、他の要素に対して作用を行うことも可能である。
【００６４】
そのようなシステムの一例が生産ラインに関するものである。そこでの被処理対象物は、処理、すなわち、結合、変形または分離が行われる部品である。その処理を行う要素は、その処理を行う機械である。
【００６５】
しかしながら、要素は被処理対象物に対して変形を行うもののみではない。自動誘導車または作業者のように、被処理対象物を搬送する要素も存在することが可能である。いくつかの要素は、例えば、必要な場合に他の要素を修理する修理チームとして、他の要素に対してサービスを行うことが可能である。さらに、他の要素は、そのシステム内に被処理対象物を搬入したり、そのシステムからその被処理対象物を取り外したりするために利用することが可能である。最後に、いくつかの要素は、上述の複数の用途のうちのいくつかの組合せのために利用することが可能である。
【００６６】
以上説明した要素は一般的なものであるが、ここに説明されていない他の要素についても、本発明を適用することが可能である。
【００６７】
普通、それら要素のすべては、ある時間内に行うことが可能である作用の数によって制限される。そのため、システム全体は、ある時間内にそのシステムを通過可能である部品の数によって制限される。いくつかの要素は、他の要素より大きな影響をシステム全体の性能に与える。本実施形態においては、様々な要素がシステム全体の性能に与える影響が測定される。多くの場合には、いくつかの要素は、他の要素より多く、システム全体の処理能力（スループット）を制限する。それら要素は、一般に、ボトルネックまたはコンストレイントと称される。
【００６８】
本実施形態においては、必要な情報を取得するために、作動中のシステムが観測される。この観測は、例えば、生産ラインを見たり、シミュレーション・データを収集することにより行われる。必要な情報は、各要素についてのデータ（時系列データ）のリストであって、各時期における各要素の状態を詳細に示すものである。
【００６９】
図２は、ある時間中における機械（例えば、加工機）の状態の一例を示している。その機械は、いくつかの期間には部品に関して稼動し、別の期間には遊休状態の一例であるスタービング状態の一例となって新たな部品を待ち、別の期間には、搬出側の待ち行列がいっぱいであるためにブロッキング状態となって、処理済みの部品がすべて搬出されるのを待ち、そして、別の期間には故障して修理中となる。
【００７０】
ここに、ブロッキング状態とは、例えば、その機械に続く装置、例えば、バッファ、別の機械、コンベヤベルト等が稼動状態で部品を取り扱うことができないため、その機械が、完成した部品を搬出することができない状態をいう。
【００７１】
図３は、様々な機械についてのデータ集合の一例を示す。この例においては、機械の名称と時間とが、機械の状態の各変化ごとに与えられている。同図においては、状態０が稼動状態、状態１がスタービング状態、状態２がブロッキング状態、状態３が、故障して自己修理中である状態をそれぞれ示している。同図に示すデータのリストは、本実施形態を実施するために必要なものである。
【００７２】
このバッファ予測方法につき、理論的背景および具体的手法を説明する。
１  シミュレーション例
【００７３】
図４には、このバッファ予測方法が実施されるシステムの一例が概念的にブロック図で表されている。このバッファ予測方法は、そのシステムの時間的挙動であってコンピュータによる１回のシミュレーションによって解析されたもの（または現実のシステムを測定することによって取得されたもの）に基づいて実施される。したがって、図４に示す例は、シミュレーションの実施対象の一例でもある。
【００７４】
ここに「シミュレーション」という用語は、例えば、「実体を模擬して、コンピュータ・プログラム言語によって表現されたモデルを時系列的に変化させ、それにより、実体の動的挙動に関する情報を取得する処理」として定義することが可能である。このように、シミュレーションは、時間に依存する処理であると考えることができるのである。
【００７５】
上記のシステム例は、生産システムであり、図４に示すように、Ｍ１からＭ７までの名称が付された７台の機械を備えている。それら機械は、上流側の直線部と、２つの流れに分岐した分岐部と、下流側の直線部とによって構成される生産ラインに沿って流れるようになっている。
【００７６】
さらに、この生産システムにおいては、各機械の前方または後方に９個のバッファ位置が設定されている。機械Ｍ３，Ｍ５およびＭ６の前方に設置されるバッファにはそれぞれＢＭ３，ＢＭ５およびＢＭ６という名称が付されており、これに対し、機械Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５およびＭ６の後方に設置されるバッファにはそれぞれＡＭ１，ＡＭ２，ＡＭ３，ＡＭ４，ＡＭ５およびＡＭ６という名称が付されている。この生産システムにおいては、最初の機械Ｍ１は決してスターブしないし、最後の機械Ｍ７は決してブロックされない。
【００７７】
この生産システムにおいては、機械のサイクルタイムは一定であるが、指数関数的に分布する故障時間によって機械が不規則に遅延するようになっている。あるシミュレーション・ソフトウェアを用いてこの生産システムについてシミュレーションを行ったところ、その時間は、シミュレーション５００日分であった。
【００７８】
この生産システムにおいては、機械Ｍ３が主要なボトルネックであり、機械Ｍ２、機械Ｍ５および機械Ｍ６が副次的なボトルネックであり、そのシステムはバランスが良い。そのシステムにおいては、５５．７ｓ（秒）ごとに１個の部品が完成し、すなわち、１時間当たり平均して６４．７個の部品が完成する。
【００７９】
２  バッファ予測モデル
【００８０】
このバッファ予測方法は、バッファ予測モデルを想定して実施される。このバッファ予測モデルは、バッファのサイズの増加によってシステムの処理能力に生ずる効果を推定することを目的として構築されている。
【００８１】
２．１  バッファ予測モデルの概要
【００８２】
生産システムにおいてバッファサイズを変更したことによる効果を予測する方法を概略的に簡単に説明する。図５には、このバッファ予測モデルの概略がフローチャートで表されており、さらに、このバッファ予測方法において用いられるいくつかの記号が記載されている。図６９および図７０には、それら記号の定義が示されている。
【００８３】
このバッファ予測方法を実施するに先立ち、初期のシステムについて統計的な解析を多数回行うことが必要である。この解析には、（ａ）機械の稼働率と、初期のシステムの性能と、機械の待ち時間（「遊休時間」ともいう）の分布とを決定するための基本的な統計的解析と、（ｂ）システムの各構成要素がボトルネックとして作用するボトルネック確率を決定するためのボトルネック検出解析とがある。
【００８４】
このバッファ予測方法は、さらに、機械のスタービングおよびブロッキングの原因要素と、ブロック／スターブ（「ブロックまたはスターブ」という意味である。以下、同じ。）された機械とそのブロック／スターブの原因要素との間におけるバッファとを特定するために、スタービングおよびブロッキングという事象の解析を必要とする。
【００８５】
この初期の統計的解析の終了後、バッファ容量を選択して変更することができる。これは、解析者によって行われるか、または最適化プログラムによって自動的に行われる。ボトルネックの確率および他の情報に基づき、変更されたバッファ内の平均部品数および平均スペース数が推定される。
【００８６】
この推定を行うために利用可能な方法が多数存在するが、本実施形態においては、全バッファ内の部品／スペース（「部品またはスペース」という意味である。以下、同じ。）の平均追加数と機械のブロッキングおよびスタービングの原因とに基づき、種々の機械ｉについて、平均部品数の追加量△Ｆｉと、平均空スペース数の追加量△Ｅｉとが推定される。
【００８７】
次の工程においては、全機械について、遊休時間が減少する時間的割合が解析される。この工程はやや複雑で、例えば機械の待ち時間の分布、稼働率、１部品当たりの作用時間である単位作用時間（Ｔｉｍｅ  Ｐｅｒ  Ｐａｒｔ）など、更なるデータを多数必要とする。機械の遊休（ブロックまたはスターブされた）時間の減少量の推定値は、その後、ボトルネック確率を用いることにより、システムの性能の減少量の推定値にまとめられる。これにより最終的に、変更されたシステムの、システム全体の性能を予測することが可能になる。
【００８８】
２．２  スタービングまたはブロッキングの原因
【００８９】
バッファは、機械のブロッキングおよびスタービングの期間を削減し、システム内における物の流れを円滑化することを目的とする。そして、最初の工程においては、ブロックまたはスターブされた機械の原因が決定される。
【００９０】
バッファの効果を知るためには、不十分なバッファ容量によってスターブまたはブロックされた機械がいずれであるかを知ることが必要である。したがって、ブロックまたはスターブの原因を構成する要素だけでなくブロッキングおよびスタービングの経路を決定するために、すべてのブロッキングおよびスタービングの事象が辿られる。このバッファ予測方法の全体を詳述する前に、まず、いくつかの事例研究の一覧を紹介する。
【００９１】
２．２．１  事例研究
【００９２】
２．２．１．１  直線的なライン
【００９３】
最も単純な事例は直線的なラインである。図６は、３台の機械Ｍ１，Ｍ２，Ｍ３と２個のバッファＢ１，Ｂ２とを有する単純なラインを示している。
【００９４】
明らかに、機械Ｍ２におけるブロックはバッファＢ２に起因する。しかし、バッファＢ２は必ずしもそのブロックの本来の原因であるとは限らない。バッファＢ２が満杯である場合には、そのブロックは同じライン上の最後の機械Ｍ３によって引き起こされる。したがって、機械Ｍ２におけるブロックはバッファＢ２を介して機械Ｍ３によって引き起こされたことになる。
【００９５】
しかし、バッファＢ２が満杯ではなく、しかも、そのバッファＢ２の速度のみが機械Ｍ２のわずかな遅れを生じさせる可能性もまた存在する。この場合、そのブロックはバッファＢ２に起因する。
【００９６】
同様の論理を機械Ｍ２のスタービングの解析に利用することが可能である。機械Ｍ２がスターブされる場合、そのスターブはバッファＢ１に起因する。バッファＢ１が空である場合には、そのスターブは最初の機械Ｍ１に起因する。バッファＢ１が空ではない場合には、スターブは、バッファＢ１の不十分な速度のせいで、そのバッファＢ１に起因する可能性がある。
【００９７】
２．２．１．２  分枝したライン
【００９８】
ラインが分枝している場合、全体のアプローチはより複雑になる。図７は、４台の機械を有する分枝システムを示している。説明を単純にするためにバッファは設定していない。機械Ｍ１がブロックされる場合、そのブロックは機械Ｍ２もしくは機械Ｍ３または両者を経由して発生する可能性があり、さらに、後続する３台の機械Ｍ２、機械Ｍ３および機械Ｍ４うちのいずれかに起因する可能性がある。
【００９９】
ブロッキングが機械Ｍ４に起因する場合には、そのブロックの原因要素を決定することが重要であるのみならず、そのブロックの経路を決定することも重要である。例えば、機械Ｍ１が機械Ｍ２を経由して機械Ｍ４によってブロックされた場合には、機械Ｍ３は機械Ｍ１のブロックとは無関係であるため、機械Ｍ３の周辺のバッファの改善が必ずしもそのラインの処理能力の改善にはならない。
【０１００】
２．２．１．３  リバース・ブロッキング
【０１０１】
更に複雑な事例については、ある機械が別の機械によりブロックされる可能性があり、その別の機械は、そのある機械より下流側にあるのでなく、並列または上流側にある可能性がある。
【０１０２】
図８の例においては、機械Ｍ１および機械Ｍ２は機械Ｍ３のために部品を供給し、機械Ｍ３は、稼動（ｗｏｒｋ）するために機械Ｍ１および機械Ｍ２の双方から部品を必要とする（例えば、機械Ｍ３は機械Ｍ１からの部品と機械Ｍ２からの部品とを組み立てる）。
【０１０３】
機械Ｍ１がブロックされる場合、機械Ｍ３は機械Ｍ１から部品を受け取ることができない。これは、機械Ｍ３が稼動中であることが原因である可能性がある。しかし、機械Ｍ３は機械Ｍ２から部品を受け取れないためにスターブされる可能性もある。したがって、機械Ｍ１におけるブロックは機械Ｍ２に起因し、すなわち、そのブロックの原因は、機械Ｍ１から機械Ｍ３まで下流に向かって辿られ、その後、上流に向かって機械Ｍ２まで再び辿られる可能性がある。
【０１０４】
２．２．１．４  リバース・スタービング
【０１０５】
図９に示すように、同様の事例がスタービングの状態でも観察される。機械Ｍ２は、機械Ｍ１が機械Ｍ３によってブロックされているためスターブされる可能性がある。したがって、機械Ｍ２のスターブは機械Ｍ３に起因する。
【０１０６】
２．２．２  ブロッキングおよびスタービングについての一般的な理論
【０１０７】
スタービングおよびブロッキングという事象を上流側または下流側に辿るための論理を詳述する。その論理は大部分の事例に当てはまるが、時にブロックまたはスターブの正確な原因が決定しない状況が存在する。後述の論理は最良の推定を可能にするが、時には正確な原因を決定するために更なる情報を必要とする。また、複数の上流側もしくは下流側における機械またはバッファが利用可能である場合、ブロッキングまたはスタービングの最も確からしい原因を決定するために順位付けが行われる。
【０１０８】
２．２．２．１  スタービングについての一般的な理論
【０１０９】
上流側対象物については基本的に６つの可能性が存在する。図１０は、図１１および図１２の表記法の解説を示す。
【０１１０】
１台の機械がスターブされたと仮定すると、スターブされた機械の上流側に対象物（バッファまたは機械）が１個存在する。図１１には、可能性のある対象物が５個示されている。これら対象物は次のとおりである。
【０１１１】
スタービング状況（１）
【０１１２】
上流側対象物もまた、スターブされた機械である。この場合、スターブの原因調査は上流に向かって続けなければならない。
【０１１３】
スタービング状況（２）
【０１１４】
上流側対象物が空のバッファである。この場合、空のバッファの原因を決定することによってスタービングの原因調査を上流に向かって続けなければならない。
【０１１５】
スタービング状況（３）
【０１１６】
上流側対象物が、作用状態にある機械である。この場合、スタービングは、その作用状態にある機械によって引き起こされている。この場合、以上で、スタービングの原因調査が終了する。
【０１１７】
スタービング状況（４）
【０１１８】
上流側対象物が、ブロックされた機械である。この場合、スタービングは、ブロックされた上流側機械によって引き起こされており、したがって、そのスタービングの最終的な原因を決定するために、ブロックされた機械を下流に向かって辿らなければならない。
【０１１９】
スタービング状況（５）
【０１２０】
上流側対象物が、空でも満杯でもないバッファである。この場合は、決して明確ではないが、バッファがスターブされた機械に部品を出荷する途中であるが、その不十分なバッファ速度のせいで、（空ではない）バッファが下流側機械をスターブさせたと仮定する。この場合、以上で、そのスタービングの原因調査が終了する。
【０１２１】
２．２．２．２  ブロッキングについての一般的な理論
【０１２２】
上流側機械による１台の機械のスタービングの場合と同様に、１台の機械は下流側対象物によってブロックされ得る。図１２は、ブロッキングの状況について５つの基本的な可能性を示している。
【０１２３】
ブロッキング状況（１）
【０１２４】
下流側対象物もまた、ブロックされた機械である。この場合、ブロッキングの原因調査は下流に向かって続けなければならない。
【０１２５】
ブロッキング状況（２）
【０１２６】
下流側対象物が満杯のバッファである。この場合、満杯のバッファの原因を決定することによってブロッキングの原因調査を下流に向かって続けなければならない。
【０１２７】
ブロッキング状況（３）
【０１２８】
下流側対象物が、作用状態にある機械である。この場合、ブロッキングは、作用状態にあるその機械によって引き起こされる。この場合、以上で、そのブロッキングの原因調査が終了する。
【０１２９】
ブロッキング状況（４）
【０１３０】
下流側対象物が、スターブされた機械である。この場合、ブロッキングは、スターブされた下流側機械によって引き起こされ、したがって、ブロッキングの最終的な原因を決定するために、スターブされた機械を上流に向かって辿らなければならない。
【０１３１】
ブロッキング状況（５）
【０１３２】
下流側対象物が空でも満杯でもないバッファである。この場合、決して明確ではないが、そのバッファがブロックされた機械から部品を受け取る途中であるが、その不十分なバッファの速度のせいで、（決して満杯ではない）バッファが上流側機械をブロックさせたと仮定する。この場合、以上で、そのブロッキングの原因調査が終了する。
【０１３３】
２．２．２．３  スタービングの順位付け
【０１３４】
１台の機械が、それのスタービングの原因要素として、上流側対象物または下流側対象物を１個のみ有するのではなく、上流側および下流側にある複数の対象物（例えば、１台の機械に関して互いに並列となる関係を有する複数の設備）を有する場合がある。この場合、スタービングの原因を調査するためにあるアルゴリズムを利用しなければならない。
【０１３５】
その調査のため、上流側および下流側にある複数の機械が順位付けされる。その重み付け法は、上流側に１個以上の同一の対象物が存在する場合に利用される。例えば、１台の機械をそれの上流側においてスターブさせる２台の機械であって共に作用状態にあるものが存在する場合、それら２台の機械は、そのスターブの原因を半分ずつ有すると判断される。スターブしている機械の上流側にある複数の対象物についての順位付けは次のように行われる。
【０１３６】
順位１：スタービング状況（１）
【０１３７】
スターブされた機械が上流側にもう１台存在する場合、そのスターブされた機械を上流に向かって辿る。スターブされた機械が上流側に複数台存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１３８】
順位２：スタービング状況（２）
【０１３９】
上流側に空のバッファが存在する場合、この空のバッファを上流に向かって辿る。繰り返すが、空のバッファが上流側に複数個存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１４０】
順位３：スタービング状況（３）
【０１４１】
作用状態にある機械が上流側に存在する場合、スタービングは、その作用状態にある機械によって引き起こされる。作用状態にある機械が上流側に複数台存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１４２】
順位４：スタービング状況（４）
【０１４３】
ブロックされた機械が上流側に存在する場合、スタービングの原因でもあるブロッキングの原因を調査するために、そのブロックされた機械を下流に向かって辿る。ブロックされた機械が上流側に複数台存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１４４】
順位５：スタービング状況（５）
【０１４５】
空でないバッファが上流側に存在する場合、問題の機械は上流側バッファの速度が原因でスターブされている。空でないバッファが上流側に複数個存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１４６】
したがって、例えば、作用状態にある機械とスターブされた機械とが上流側に存在する場合、前記アルゴリズムは、作用状態にある機械（順位３）を無視し、スターブされた機械（順位１）を上流に向かって辿る。２個の対象物が同じ順位を有する場合、正確な原因は決定され得ないが、両方の対象物が辿られ、スタービングの原因要素が２つ存在する可能性があることになる。
【０１４７】
２．２．２．４  ブロッキングの順位付け
【０１４８】
スタービング状況と同様に、ブロッキング状況についても各対象物が順位付けされる。複数個の対象物が下流側に存在する場合、順位付けは次のように行われる。
【０１４９】
順位１：ブロッキング状況（１）
【０１５０】
ブロックされた機械が下流側にもう１台存在する場合、そのブロックされた機械を下流に向かって辿る。ブロックされた機械が下流側に複数台存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１５１】
順位２：ブロッキング状況（２）
【０１５２】
下流側に空のバッファが存在する場合、この空のバッファを下流に向かって辿る。空のバッファが下流側に複数個存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１５３】
順位３：ブロッキング状況（３）
【０１５４】
作用状態にある機械が下流側に存在する場合、そのブロッキングは、その作用状態にある機械によって引き起こされる。作用状態にある機械が下流側に複数台存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１５５】
順位４：ブロッキング状況（４）
【０１５６】
スターブされた機械が下流側に存在する場合、ブロッキングの原因でもあるスタービングの原因を調査するために、そのスターブされた機械を上流に向かって辿る。スターブされた機械が下流側に複数台存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１５７】
順位５：ブロッキング状況（５）
【０１５８】
空でないバッファが下流側に存在する場合、問題の機械は下流側バッファの速度が原因でブロックされている。空でないバッファが下流側に複数個存在する場合、それら各々を辿るとともに、それらの経路に同じ重みを与える。
【０１５９】
２．２．３  ブロッキングおよびスタービングの原因
【０１６０】
今回着目している生産システムは、全機械のブロッキングおよびスタービングの原因を決定するために解析された。図１３は、各機械が別の機械によってスターブされる確率を示している。
【０１６１】
図１３は、１台の機械（同図の右側における座標軸上にある）が別の機械（同図の下部における座標軸上にある）によってスターブされた時間的割合（スタービング時間が前記システムの全解析時間を占有する比率）をパーセントで示している。例えば、最大のスタービング可能性（最も高い柱）に注目すると、機械Ｍ４は機械Ｍ３によって約２６パーセントの時間的割合でスターブされた。機械Ｍ３は前記システムのボトルネックであり、機械Ｍ４は、本生産システムにおいては、機械Ｍ３より非常に高速であるため、これは驚くことではない。
【０１６２】
更に興味深いことは機械Ｍ３のスタービングである。機械Ｍ３はシステムの主要なボトルネックであり、上流側にある機械Ｍ２によって約２パーセントの時間的割合でスターブされた。しかし、機械Ｍ３も、機械Ｍ５によって約２．１パーセントの時間的割合でスターブされた。しかしながら、機械Ｍ５は機械Ｍ３の上流側にも下流側にも存在しない。その代わりに、機械Ｍ５は機械Ｍ３と並列の経路上にある。このことは、機械Ｍ３は機械Ｍ２によってスターブされ、その機械Ｍ２は機械Ｍ５によってブロックされたことを意味する。いくつかの事例においては、機械Ｍ５が機械Ｍ２をブロックすることにより、機械Ｍ３が、機械Ｍ６および機械Ｍ７さえによっても（それぞれ０．８パーセントおよび０．７パーセントの時間的割合で）スターブされた。
【０１６３】
同様に、機械Ｍ５は、上流側の機械Ｍ２によって（３．２パーセントの時間的割合で）スターブされたのみならず、それと並列の機械Ｍ３によって（１．９パーセントの時間的割合で）スターブされた。
【０１６４】
図１４は、各機械が別の機械によってブロッキングされる確率を示している。例えば、機械Ｍ１は、全解析時間の大半において、それに後続する機械Ｍ２によって（３１パーセントの時間的割合）ブロックされ、機械Ｍ６は下流側の機械Ｍ７によって（２７パーセントの時間的割合）ブロックされる。このシミュレーションにおいては、並列の経路におけるスタービングに起因したブロッキングは発生しない。
【０１６５】
２．２．４  ブロッキングおよびスタービングの経路
【０１６６】
ブロッキングおよびスタービングという挙動はさらに、図１５および図１６に示すように表現することもできる。
【０１６７】
図１５は、機械Ｍ３について、それにブロッキングを発生させる経路とスタービングを発生させる経路とを示している。すべてのスタービング時間のうち、約３０パーセントは機械Ｍ２に起因し、約６０パーセントは機械Ｍ５に起因するかまたは機械Ｍ５を経由する。機械Ｍ５は、機械Ｍ３のスタービング時間の３０パーセントを発生させ、機械Ｍ６および機械Ｍ７はそれぞれ、機械Ｍ５を通過することにより、スタービング時間の１５パーセントを発生させる。
【０１６８】
機械Ｍ３はさらに、時々ブロックされる。すべてのブロッキングが機械Ｍ４を通過するが、機械Ｍ４に起因するブロッキングはほとんど存在しない。その代わりに、機械Ｍ３が機械Ｍ７によってほとんどブロックされ、さらに機械Ｍ６によってもブロックされる。
【０１６９】
図１６には、同様のグラフが機械Ｍ５について作成されている。機械Ｍ５は上流側の機械Ｍ２によってスターブされるだけでなく、それと並列の機械Ｍ３によってもスターブされ、機械Ｍ４によってもスターブされる。下流側のブロッキングは、予想通り、機械Ｍ６および機械Ｍ７のみに起因する。
【０１７０】
２．２．５  ブロッキングおよびスタービングについての要説
【０１７１】
バッファの増加により、関連機械のブロッキングおよびスタービングが減少する。上記の項は、どのバッファが潜在的に機械のブロッキングおよびスタービングに影響を及ぼすかについて詳述している。理論的には、多数のバッファ位置を取り得る。説明を簡単にするために、このアルゴリズムでは、バッファが各機械の直前および直後に配置され得ると推定する。あるバッファが別の機械を緩和するモードが全部で４つ存在する。これら４つのモードは次に列記されており、さらに図１７に表で表されている。
【０１７２】
モード１
【０１７３】
空のバッファの容量を増加させると、別の機械のブロッキングが減少する（例えば、図１５においては、バッファＡＭ４内のバッファ容量を増加させると機械Ｍ３のブロッキングが減少する）。
【０１７４】
モード２
【０１７５】
空のバッファ容量を増加させると、別の機械のスタービングが減少する（例えば、図１６においては、バッファＢＭ３内のバッファ容量を増加させると機械Ｍ５のスタービングが減少する）。
【０１７６】
モード３
【０１７７】
バッファ内の部品数を増加させると、別の機械のブロッキングが減少する（例えば、図８においては、機械Ｍ１の後方にあるバッファＡＭ１内の部品数を増加させると機械Ｍ２のブロッキングが減少する）。
【０１７８】
モード４
【０１７９】
バッファ内の部品数を増加させると、別の機械のスタービングが減少する（例えば、図１５においては、バッファＢＭ３内の部品数を増加させると機械Ｍ３のスタービングが減少する）。
【０１８０】
したがって、ブロッキングおよびスタービングの状況を解析すると、あるバッファ位置が別の機械に影響を及ぼす時間的割合が決定される。その時間的割合が、前述のモード１ないし４についてそれぞれ、図１８ないし図２１に表で表されている。図１８ないし図２１に示す結果は、後述の図５０または図５１のルーチンがコンピュータ２０によって実行されることによって取得される。
【０１８１】
図１８は、モード１につき、各機械がブロックされる時間的割合（ブロックされる時間の、総時間に対する比率。以下、単に「時間の比率」ともいう。）を示しており、そのブロックという事象は、バッファ内に利用可能な自由なスペースがより多くあれば減少する可能性がある。
【０１８２】
例えば、機械Ｍ１は４６．１パーセントの時間的割合でブロックされる。機械Ｍ１がブロックされるごとに、そのブロックは、それに隣接するバッファＡＭ１を通過する。このバッファＡＭ１に利用可能な自由なスペースが追加されれば、機械Ｍ１のブロッキングが減少する。
【０１８３】
しかし、機械Ｍ１がブロックされるのは４．４パーセントの時間的割合のみであり、そのブロックはバッファＢＭ３を通過する。バッファＢＭ３に利用可能なスペースを追加すれば、ブロッキング時間の減少によって、機械Ｍ１の搬出時間間隔ＴＢＰの４．４パーセントのみが減少することが可能である。バッファｊ内の空のスペースが機械ｉのブロッキングを減少させる時間的割合をＰＢＥＢｊ，ｉで表す。
【０１８４】
なお付言するに、搬出時間間隔ＴＢＰは、ある機械から、先行する処理済み部品が１個搬出された瞬間と、後続する処理済み部品が１個搬出された瞬間との間における時間間隔を意味し、搬出部品間隔ともいう。ただし、機械ごとの搬出時間間隔間隔と、システム全体としての搬出時間間隔とは必ずしも一致しない。
【０１８５】
図１９は、モード２につき、各機械がスターブされる時間的割合を示しており、バッファ内の自由なスペースがより多く利用可能になれば、そのスターブは減少し得る。この現象は分枝システム内において時々発生し、その分枝システムにおいては、別の機械がブロックされるためにある機械がスターブされるとともに、別の機械のブロッキングが減少すればそのある機械のスターブが減少する。
【０１８６】
例えば、バッファＢＭ５によって機械Ｍ２がブロックされるために、機械Ｍ３は３．４パーセントの時間的割合でスターブされる。バッファｊ内の空のスペースが機械ｉのスターブに与える効果をＰＢＥＳｊ，ｉと称する。
【０１８７】
図２０は、モード３につき、各機械がブロックされる時間的割合を示しており、別のバッファ内において利用可能な部品が増加すると、そのブロックは減少する。この現象は、分枝システム内において時々発生し、その分枝システムにおいては、別の機械がスターブされるためにある機械がブロックされるとともに、別の機械のスターブを減少させるとそのある機械のブロックが減少する。
【０１８８】
しかし、説明した例は、そのような効果を示しておらず、図２０の表における各値はすべて０である。バッファｊ内の部品数の増加が機械ｉのブロッキングに与える効果をＰＢＦＢｊ，ｉで表す。
【０１８９】
図２１は、モード４につき、各機械がスターブされる時間的割合を示しており、別のバッファ内において利用可能な部品が増加すると、そのブロックは減少する可能性がある。例えば、機械Ｍ６は、バッファＡＭ４を介して６．５パーセントの時間的割合でスターブされる。バッファｊ内の部品数の増加が機械ｉのスタービングに与える効果をＰＢＦＳｊ，ｉと称する。
【０１９０】
３．３  有効バッファサイズ
【０１９１】
以上においては、部品数またはバッファの容量の増加が別の機械の遊休時間にどのようにして影響を与えるかを説明した。しかし、バッファにおいては、部品数または利用可能な容量は無限ではない。第１に、たいていのバッファはサイズによって制限される。第２に、部品または利用可能なバッファスペースの数は実際には、バッファ内の平均部品数およびバッファのサイズに依存している。
【０１９２】
例えば、図４に示す生産システムにおいては、バッファＡＭ１は機械Ｍ１のブロッキングに影響を与える。バッファＡＭ１内の自由なスペースを追加すると、機械Ｍ１がブロックされる可能性が減少する。しかし、バッファＡＭ１はほとんど常に満杯である。そのバッファのスペースが少数増加しても、それらスペースはほとんど直ちに満杯になってしまい、長時間の挙動を見ると、機械Ｍ１に変わりはない。
【０１９３】
したがって、自由なスペースの平均数および利用可能な部品の平均数を推定するために、バッファ内の平均部品数を決定する必要がある。例えば、バッファＡＭ３が１０個というサイズを有していて、４個という平均部品数を有している場合、これは、平均して４個の部品が機械Ｍ４にとって利用可能であり、一方で、平均して６個のスペース（１０個の容量から４個の部品を引き算する）が機械Ｍ３が部品を搬出するために利用可能であるということを意味する。
【０１９４】
図２２に式で示すように、あるバッファｊが満杯である平均満杯率がＰＢＦｊとして示され、それとバッファ内平均部品数ＢＦｊとの関係が、バッファ容量ＢＣｊを用いて構成される。この式によれば、バッファｊにつき、平均満杯率ＰＢＦｊとバッファ容量ＢＣｊとの積により、平均部品数ＢＦｊが計算される。この式はさらに、バッファｊが空である平均空乏率ＰＢＥｊと、バッファ内の平均自由スペース数ＢＥｊとの関係も示している。この式によれば、平均自由スペース数ＢＥｊが、平均空乏率ＰＢＥｊとバッファ容量ＢＣｊとの積によって計算される。
【０１９５】
この式において、さらに、平均満杯率ＢＦｊと平均空乏率ＰＢＥｊとの関係および平均部品数ＢＦｊと平均スペース数ＢＥｊとバッファ容量ＢＣｊとの関係も示されている。
【０１９６】
なお付言すれば、本実施形態において利用されるいくつかの数式は、時間を変数としないものと変数とするものとを含んでいる。時間を変数としない数式を利用する場合には、当然に、システムを時系列的に模擬するシミュレーションを行うことなく、解を求め得る。これに対し、時間を変数とする数式は、本実施形態においては、統計的な規則を表現するものであるため、この数式についても、システムを時系列的に模擬するシミュレーションを行うことなく、解を求め得る。
【０１９７】
したがって、本実施形態においては、必要な解をすべて、そのようなシミュレーションによることなく求めることができ、システム解析のためのコンピュータ計算時間の大幅な短縮が容易となる。
【０１９８】
３．３．１  実験的な解析
【０１９９】
バッファ内の平均部品数を決定するために、２つの基本的な手法が存在する。最も簡単な手法は、バッファ内の平均部品数を単に測定することである。これは、測定可能なバッファがシミュレーション内に存在することを前提とすれば、バッファ内の平均部品数を決定する測定する最も簡単な手法である。この手法は、バッファのサイズが０である場合には機能しない。
【０２００】
さらに、システムによっては、バッファサイズが増加するとバッファ内の平均部品数が変化する可能性がある。例えば、図２３は、バッファサイズが１である場合のバッファＡＭ３をヒストグラムで示している。バッファ内の平均部品数は０．０５部品、すなわち、５容量パーセント（全容量の５パーセント）である。
【０２０１】
しかし、バッファサイズが１０に変化すると、それら値は変化する。図２４は、サイズが１０であるバッファをヒストグラムで示している。この例においては、いずれの時期においても、６個より多数の部品が存在することはない。このように、バッファサイズが１０に変化すると、平均部品数は０．１４すなわち１．４容量パーセントに変化する。したがって、平均部品数および容量の双方が変化する。そのため、バッファサイズを増加させる場合には、利用可能な部品数の予測がより困難になる。
【０２０２】
３．３．２  理論的な解析
【０２０３】
バッファ内の平均部品均数を実験的に解析する際の問題は、バッファがシミュレーション内に存在しなければならないということである。バッファが存在しない場合、平均部品数は測定できない。したがって、現実のバッファを実際に測定することなく、バッファ内の平均部品数を理論的に推定することは興味深いことである。
【０２０４】
このバッファ予測方法においては、現実のバッファの測定値なしでバッファ内の平均部品数が推定される。この推定は、あるシステム内においてある機械がボトルネックであるボトルネック確率に基づいている。その基礎的な概念は、ボトルネックの上流側にあるバッファは満杯である傾向があり、一方、ボトルネックの下流側にあるバッファは空である傾向があるというものである。
【０２０５】
上流側と下流側との間におけるボトルネック確率の関係から、バッファ内の平均部品数を推定することができる。ここで用いられている例は、図４に示されている例である。図２５には、ほとんどすべてのバッファの容量が０または１である初期のシステムについてのボトルネック確率（全ボトルネック確率、すなわち、ある機械が単独でボトルネックである確率と、複数の機械間においてボトルネックがシフトするシフティング・ボトルネックである確率との合計値）が表で示されている。
【０２０６】
バッファＡＭ１について次の例を仮定する。今回の手法における第１の工程は、バッファＡＭ１の上流側と下流側とについてボトルネック確率の合計値を計算することである。
【０２０７】
上流側ボトルネック確率は、単に機械Ｍ１のボトルネック確率であり、それは０パーセントである。したがって、上流側ボトルネック確率の合計値は、０パーセントである。
【０２０８】
図２６に示すように、機械Ｍ２の後方において今回のシステムは分枝するため、下流側ボトルネックは上流側ボトルネックよりわずかに複雑である。現在、その分岐部には、分枝したボトルネックの重みを１／２に減らすとともに、それぞれの分枝を最後まで辿る技術が組み合わされる。したがって、下流側ボトルネック確率の合計値は、機械Ｍ２のボトルネック確率に、第１の分枝部Ｍ３−Ｍ４−Ｍ６−Ｍ７についてのボトルネック確率の１／２（重み付けボトルネック確率）と、第２の分枝部Ｍ５−Ｍ６−Ｍ７についてのボトルネック確率の１／２（重み付けボトルネック確率）との和を加算したものである。
【０２０９】
機械Ｍ６および機械Ｍ７についてのボトルネック確率は、それぞれの分岐部において１／２として重み付けされており、よって、それらボトルネック確率は、それら機械Ｍ６およびＭ７の全ボトルネック確率の計算に用いられる。したがって、バッファＡＭ１の下流側ボトルネック確率の合計値（全重み付けボトルネック確率）は、Ｍ２＋（Ｍ３＋Ｍ４＋Ｍ６＋Ｍ７）／２＋（Ｍ５＋Ｍ６＋Ｍ７）／２＝１２１パーセントである。この合計値は、シフティング・ボトルネックの影響と単独ボトルネックの影響との双方を含むため、１００パーセントを超える可能性がある。
【０２１０】
したがって、バッファＡＭ１の満杯率Ｚは、下流側ボトルネック確率Ｙ（Ｍ２のボトルネック確率と（Ｍ３＋Ｍ４＋Ｍ６＋Ｍ７）についての重み付けボトルネック確率と（Ｍ５＋Ｍ６＋Ｍ７）についての重み付けボトルネック確率との和）を上流側ボトルネック確率Ｘ（Ｍ１のボトルネック確率）と下流側ボトルネック確率Ｙとの合計値で割り算したものとして推定される。それら３者間の関係は、
Ｚ＝Ｙ／（Ｘ＋Ｙ）
で表される。したがって、この例においては、バッファＡＭ１はほぼ１００パーセント満杯であると推定される。
【０２１１】
これに対し、バッファＢＭ１の満杯率Ｚは、上流側ボトルネック確率Ｘを上流側ボトルネック確率Ｘと下流側ボトルネック確率Ｙとの合計値で割り算したものとして推定される。それら３者間の関係は、
Ｚ＝Ｘ／（Ｘ＋Ｙ）
で表される。
【０２１２】
図２７には、バッファの満杯率に関し、測定結果（実測値）と比較しつつ推定値（予測値）が表で示されている。測定結果は、多種類のバッファの構成に起因するとともに、システムの変更がボトルネック確率に、ひいてはバッファの推定値に与える効果は含んでいない。いくつかのバッファについては、測定値がまったく取得されていない。
【０２１３】
図２８には、複数のバッファにつき、バッファサイズと平均部品数との関係が測定値と予測値とに関して対比的に複数のグラフで示されている。ただし、それらグラフのスケールはすべて同じであるわけではない。
【０２１４】
図２８に示す測定値および予測値は、初期のシステム（バッファの容量が増加させられる前のシステム）のボトルネック確率に基づいている。それら予測値を導いた予測モデルは、シミュレーションの初期設定（バッファＡＭ１、ＡＭ２、ＡＭ３、ＢＭ６およびＡＭ６は０の容量を有し、バッファＢＭ３、ＡＭ４、ＢＭ５およびＡＭ５は１の容量を有する）に基づいている。
【０２１５】
ほとんどのバッファについて今回の予測モデルが適切であるということが分かる。バッファＡＭ２，ＢＭ３，ＢＭ５およびＡＭ５についての予測値は、バッファ処理能力を解析するモデルにおいて使用するのに十分なほど正確である。
【０２１６】
３．３．２．１  ボトルネック確率の変化に起因する予測誤差
【０２１７】
バッファサイズが大きく変化すると、ボトルネック確率が変化する。バッファ内の平均部品数がボトルネック確率に基づくため、バッファ内の平均部品数の予測値もまた変化する。
【０２１８】
図２９には、２種類のバッファ構成についてボトルネック確率（全体ボトルネック確率、すなわち、単独ボトルネック確率とシフティング・ボトルネック確率との合計値）が表で示されている。初期のバッファ（バッファＡＭ１、ＡＭ２、ＡＭ３、ＢＭ６およびＡＭ６は０の容量を有し、バッファＢＭ３、ＡＭ４、ＢＭ５およびＡＭ５は１の容量を有する）においては、機械Ｍ３が、６２パーセントのボトルネック確率を有する主要なボトルネックであるが、機械Ｍ２、機械Ｍ５および機械Ｍ７もまた、２０パーセントと３０パーセントとの範囲内のボトルネック確率を有する重要な副次的なボトルネックである。
【０２１９】
図２９中の最も右側の欄は、容量が２０に増加させられたバッファＡＭ２、ＢＭ３、ＡＭ３、ＡＭ４、ＢＭ５およびＡＭ５についてボトルネック確率を示している。この場合、明らかに、機械Ｍ３は、９９パーセントのボトルネック確率を有する主要かつ唯一のボトルネックであり、残りの機械は、２パーセント以下のボトルネック確率を有するそれほど重要ではないボトルネックである。
【０２２０】
図３０には、初期のシステムと、容量が２０に増加させられたバッファを有するシステムとの双方について、バッファの満杯率の測定値と予測値とが表で示されている。ボトルネック確率が変化したため、バッファの満杯率も変化した。
【０２２１】
図２８を図３１と比較する。図３１も、バッファの満杯率の予測値と測定値との比較を示している。しかし、その予測値は、容量が２０に増加させられたバッファＡＭ２、ＢＭ３、ＡＭ３、ＡＭ４、ＢＭ５およびＡＭ５についてのボトルネック確率に基づいている（図２９において最も右側の欄参照）。バッファＡＭ２、ＢＭ３、ＢＭ５およびＡＭ５は相当に正確であり、バッファＡＭ３およびＡＭ４も真の測定値に近い。
【０２２２】
３．３．２．２  バッファ内平均部品数比率の減少に起因する予測誤差
【０２２３】
上記の予測モデルにおいては、バッファ内の平均部品数がバッファ容量のパーセント（バッファ内部品数比率）として与えられている。そのため、異なるバッファ間において計算および比較が容易にできる。
【０２２４】
しかし、バッファ内の部品数のパーセントは、バッファ容量の関数として変化する可能性もある。例えば、機械を１台のみ有する単純な待ち行列システムであって供給量を超える機械容量を有するものにおいては、バッファ内の平均部品数を計算することができる。例えば、その機械が１時間当たり６個の部品（指数分布）を加工することができるとともに、１時間当たり５個の部品（指数分布）が到着する場合、バッファの平均部品数を４．２個として計算し得る。大形のバッファ（容量＞１５）については、バッファ内の平均部品数は常に約４．２個である。
【０２２５】
したがって、バッファ内部品数比率は、バッファ容量が増加するとともに部品数が維持されることに伴って減少する。同様に、小形のバッファについては、バッファ内部品数比率が、待ち行列における待ち時間の分布によって増加する可能性がある。
【０２２６】
機械Ｍ４の後方にあるバッファＡＭ４を例にとって説明する。このバッファはシステムの性能にほとんど効果を与えないため、この例は、変化するボトルネックにより干渉されることなく、種々のバッファサイズについて部品数を研究するのに好都合の例である。
【０２２７】
図３２は、容量が５である場合についてバッファをヒストグラムで示している。そのバッファは、２個より多数の部品を収容することはほとんどなく、３個より多数の部品を収容する時期は皆無である。したがって、３個を超えるバッファサイズは、不使用のままである。
【０２２８】
このことは、図３３にグラフで示されており、そこには、種々のバッファサイズについてのバッファ内平均部品数が左側の目盛り上に示されている。３個を超えるバッファサイズについては、平均部品数がほとんど変化しない。部品数が維持されるとともにバッファサイズが増加することに伴い、バッファ内部品数比率が減少する。このことは、図３３において右側の目盛り上に示されている。
【０２２９】
したがって、特定のバッファサイズについてのバッファ内部品数比率の予測値は、別のバッファサイズのものとは大きく異なる可能性がある。この潜在的な誤差により、予測モデルの精度が減少する可能性がある。
【０２３０】
３．４  有効バッファ容量
【０２３１】
バッファの容量を増やすと、１台またはそれ以上の機械が影響を受ける。
【０２３２】
３．４．１  効果比率
【０２３３】
図１８ないし図２１においては、あるバッファが、ブロッキングまたはスタービングしている別の機械に影響を及ぼす時間（ブロッキング時間またはスタービング時間の減少量）の、総時間に対する割合である対総時間比率が考慮されている。この対総時間比率は、常に、その機械がブロックまたはスターブされる確率の合計値以下である。
【０２３４】
これに対し、あるバッファが別の機械に影響を及ぼす時間の、ブロッキング／スタービング時間に対する割合である対ブロッキング時間／スタービング時間比率（効果比率）が必要となる場合がある。
【０２３５】
この比率は、あるバッファが別の機械のブロッキングまたはスタービングに影響を及ぼす時間（減少ブロッキング時間または減少スタービング時間）の、総時間（前記システムの総解析時間）に対する比率を、その機械がブロックまたはスターブされる時間の、総時間に対する比率で割り算することによって計算できる。
【０２３６】
例えば、機械Ｍ３は、６．１パーセントの対総時間比率でブロックされる。さらに、バッファＡＭ３の容量が増加すると機械Ｍ３のブロッキングが６．１パーセントの対総時間比率で減少する。したがって、バッファＡＭ３により、機械Ｍ３のブロッキングが１００パーセントの対ブロッキング時間比率で減少する。バッファＡＭ６が機械Ｍ３のブロッキングを減少させる対総時間比率は２．８パーセントに過ぎないが、これは、４５．９パーセントの対ブロッキング時間比率に相当する。
【０２３７】
図３４には、バッファ位置内の容量が増加すると機械Ｍ３のブロッキングが減少する比率が対総時間比率と対ブロッキング時間比率とに関して表で示されている。機械Ｍ３は、６．１パーセントの対総時間比率でブロックされ、さらに、当然のことであるが、バッファＡＭ３内のバッファ容量が増加すると、そのブロッキングが６．１パーセントの対総時間比率で、すなわち、１００パーセントの対ブロッキング時間比率で減少する。
【０２３８】
あるバッファがブロックまたはスターブされている別の機械に与える効果比率を決定するために、図１８ないし図２１に示されている全データ（空スペースまたは部品を追加するとブロッキングまたはスタービングが減少する時間の、総時間に対する比率）を、その機械がスターブまたはブロックされる時間の、総時間に対する比率のうち対応するもので割り算する必要がある。
【０２３９】
図３５に式で表すように、空のバッファｊによってブロッキングが減少する場合に機械ｉがブロックされる時間の、そのブロッキング時間に対する比率ＰＢＥＢ−Ｅｊ，ｉ（効果比率）は、バッファｊ内の空のスペースによって機械ｉのブロッキングが減少する時間の、総時間に対する比率ＰＢＥＢｊ，ｉを、その機械ｉがブロックされる時間の、総時間に対する比率ＰＭ−Ｂｉで割り算することによって計算される。
【０２４０】
同様のことが、機械ｉがスターブされるとともに空のバッファｊによってそのスタービングが減少する時間の、そのスタービング時間に対する比率ＰＢＥＳ−Ｅｊ，ｉ（効果比率）と、機械ｉがブロックされるとともに満杯のバッファｊによってそのブロッキングが減少する時間の、そのブロッキング時間に対する比率ＰＢＦＢ−Ｅｊ，ｉ（効果比率）と、機械ｉがスターブするとともに満杯のバッファｊによってそのスタービングが減少する時間の、そのスタービング時間に対する比率ＰＢＦＳ−Ｅｊ，ｉ（効果比率）とに当てはまる。
【０２４１】
図３５においては、ＰＢＥＳｊ，ｉが、機械ｉがスターブされるとともに空のバッファｊによってそのスタービングが減少する時間の、総時間に対する比率を表し、ＰＭ−Ｓｉが、そのスタービング時間の、総時間に対する比率を表している。
【０２４２】
さらに、図３５においては、ＰＢＦＢｊ，ｉが、機械ｉがブロックされるとともに満杯のバッファｊによってそのブロッキングが減少する時間の、総時間に対する比率を意味している。さらに、ＰＢＦＳｊ，ｉが、機械ｉがスターブされるとともに満杯のバッファｊによってそのスタービングが減少する時間の、総時間に対する比率を意味している。
【０２４３】
３．４．２  隣接バッファの容量の代表値
【０２４４】
前述のように、バッファ内の平均部品数は、バッファｊが空である空乏率ＰＢＦｊと満杯である満杯率ＰＢＥｊとによって決定される。ここでは、それらが、バッファ容量変化量△Ｂｊと、満杯および空である種々のバッファが複数の機械のブロッキングおよびスタービングに与える効果の比率ＰＢＥＢ−Ｅｊ，ｉ、ＰＢＥＳ−Ｅｊ，ｉ、ＰＢＦＢ−Ｅｊ，ｉおよびＰＢＦＳ−Ｅｊ，ｉとに組み合わせることが必要である。
【０２４５】
隣接バッファ容量の代表値は、
バッファｊ内の空スペースの増加に起因する、機械ｉの後方における代表的追加空スペース数△ＢＥＢ−Ａｊ，ｉと、
バッファｊの空スペースの増加に起因する、機械ｉの前方における代表的追加部品数△ＢＥＳ−Ａｊ，ｉと、
バッファｊ内の部品の増加に起因する、機械ｉの後方における代表的追加空スペース数△ＢＦＢ−Ａｊ，ｉと、
バッファｊ内の部品の増加に起因する、機械ｉの前方における代表的追加部品数△ＢＦＳ−Ａｊ，ｉと
に区別される。このことがそれら４つの場合のすべてについて図３６に式で表されている。
【０２４６】
例えば、機械ｉの後方におけるバッファｊの容量を追加したときのそのバッファｊの代表的追加空スペース数△ＢＥＢ−Ａｊ，ｉは、バッファｊ内に空スペースを追加すると機械ｉのブロッキングが減少する時間の、そのブロッキング時間に対する比率ＰＢＥＢ−Ｅｊ，ｉと、バッファｊの空乏率ＰＢＥｊと、バッファｊの容量変化量ΔＢｊとの積により、計算される。
【０２４７】
また、機械ｉの前方におけるバッファｊの容量を追加したときのそのバッファｊの代表的追加部品数△ＢＥＳ−Ａｊ，ｉは、バッファｊ内に空スペースを追加すると機械ｉのスタービングが減少する時間の、そのスタービング時間に対する比率ＰＢＥＳ−Ｅｊ，ｉと、バッファｊの空乏率ＰＢＥｊと、バッファｊの容量変化量ΔＢｊとの積により、計算される。
【０２４８】
例えば、バッファＡＭ３のスペースが４個増加するとともに、バッファＡＭ３が通常、その最大容量の２３パーセントであるとすると（図２７参照）、そのバッファ内には平均して、３．０８個の追加空スペースと０．９２個の追加部品とが存在する。
【０２４９】
さらに、バッファＡＭ３内の容量の追加は機械Ｍ３のブロッキングに、１００パーセントの時間的割合で影響し、そして、この追加容量は１００パーセントの時間的割合で使用され得る。したがって、バッファＡＭ３内に３．０８個の追加空スペースが存在すると、機械Ｍ３のブロッキングは１００パーセントの時間的割合で影響を受け、すなわち、その３．０８個のスペースは機械Ｍ２のブロッキング減少に対して１００パーセントの効果を示す。
【０２５０】
しかし、バッファＢＭ６のスペースが４個増加すると、このバッファＢＭ６は常に容量の２６．２パーセントまで満たされているため、平均的に、２．９６個のスペースと１．０４個部品とが追加される。さらに、バッファＢＭ６は、７７．０５パーセントの時間的割合でのみ機械Ｍ３のブロッキングに影響を与え、その２．９６個のスペースの追加は、７７．０５パーセントの時間的割合だけ有効である。このことは、機械Ｍ３のブロッキングを緩和するために、その機械Ｍ３の直後に２．３０個のスペース（２．９６個ｘ７７．０５パーセント）のみを追加することとして表現できる。
【０２５１】
あるバッファが別の機械のブロッキングに影響を与える時間的割合を、バッファサイズの増加量およびバッファ内部品数比率に組み合せることにより、その機械に隣接したバッファ内の部品／スペースの代表数を評価することが可能である。この計算は、下記に示すように、あるバッファが別の機械に影響を及ぼし得る種々の態様に関して、変更されたバッファが種々の機械に与える全効果について行うことが必要である。
・バッファ内の自由スペースの追加によりブロッキングが減少する態様
・バッファ内の自由スペースの追加によりスタービングが減少する態様
・バッファ内の利用可能部品の追加によりブロッキングが減少する態様
・バッファ内の利用可能部品の追加によりスタービングが減少する態様
【０２５２】
３．４．３  有効バッファ容量の組合せ
【０２５３】
すべてのバッファ増加量（自由スペースの増加量と部品の増加数とを含む）が種々の機械に与える効果を、それら機械に隣接する（仮想的な）バッファの代表的なバッファサイズに変換すれば、その代表的な隣接バッファ容量を、ブロッキングされている機械であるかスタービングされている機械であるかを区別しつつ、各機械ごとに加えることが可能である。
【０２５４】
ブロッキングを減少させるために機械ｉの後方に利用可能スペースを追加する追加量ΔＥｉは、図３７に式で表すように、バッファｊの空スペースの増加に起因する、機械ｉの後方における代表的追加空スペース数△ＢＥＢ−Ａｊ，ｉと、バッファｊ内の部品の増加に起因する、機械ｉの後方における代表的追加空スペース数△ＢＦＢ−Ａｊ，ｉとの合計値である。
【０２５５】
これに対し、スタービングを減少させるために機械ｉの前方に利用可能部品を追加する追加量ΔＦｉは、図３７に式で表すように、バッファｊの空スペースの増加に起因する、機械ｉの前方における代表的追加部品数△ＢＥＳ−Ａｊ，ｉと、バッファｊ内の部品の増加に起因する、機械ｉの前方における代表的追加部品数△ＢＦＳ−Ａｊ，ｉとの合計値である。
【０２５６】
例えば、図４において、バッファＢＭ３のスペースを４個増加させることが、機械Ｍ２に隣接した０．９０個の空スペースを表し、バッファＢＭ５のスペースを４個増加させることが、機械Ｍ２に隣接する１．６７個の空スペースを表すとすると、それら空スペースは組み合わされて、機械Ｍ２のブロッキングを減少させるのに利用可能な総空スペースが２．５７個となる。
【０２５７】
同様に、バッファＢＭ３のスペースを４個増加させることと、バッファＢＭ５のスペースを４個増加させることとがそれぞれ、機械Ｍ６が利用可能な追加部品が０．３６個であることと０．３７個であることとを表すとすると、それら利用可能な部品は組み合わされて、機械Ｍ６が利用可能な全部品は０．７３個となる。この場合、この利用可能部品数の増加は２つの異なる効果に起因する。
【０２５８】
すなわち、まず、それらバッファＢＭ３およびＢＭ５内の利用可能部品の増加により、（０．２６＋０．１０）＝０．３６という代表的隣接部品数を有する機械Ｍ６を含む下流側のスタービングが減少する。
【０２５９】
さらに、バッファＢＭ３およびＢＭ５内の利用可能な空スペースの増加によってそれより上流側のブロッキングが減少し、続いて、図１に示すシステムにおける並列分岐部における機械Ｍ３，Ｍ４およびＭ５のスタービングを減少させる可能性がある。
【０２６０】
例えば、バッファＢＭ３のスペースが追加されると、バッファＢＭ３が、機械Ｍ２をブロックさせることによって機械Ｍ５をスターブさせる可能性が低くなり、よって、バッファＢＭ３内の利用可能スペースが機械Ｍ６をスターブさせる可能性も低くなる。したがって、機械Ｍ６が利用可能な部品の追加数は、（０．２７＋０．１０）＝０．３７として表され、結局、機械Ｍ６のスタービングを緩和するために利用可能な部品の追加数の合計値が０．７３（＝０．３６＋０．３７）となる。
【０２６１】
隣接する追加の空スペースであって代表的なものすべては、機械のために加えることが可能であり、さらに、隣接する追加の部品であって代表的なものすべては機械のために加えることが可能である。しかし、隣接する追加の空スペースであって代表的なものと、隣接する追加の部品であって代表的なものとは、互いに異なる効果を有するため、組み合わせることはしない。
【０２６２】
この計算後、各機械は、その機械の後方における代表的追加スペース数の、すべてのバッファｊ（ｊ＝１ｔｏｍ）についての合計値と、その機械の前方における代表的追加部品数の、すべてのバッファｊ（ｊ＝１ｔｏｍ）についての合計値とを有する。
【０２６３】
図３８には、バッファＢＭ３およびＢＭ５のバッファ容量が５部品に増加された例について、代表的追加スペース数と代表的追加部品数とが表で示されている。この表は、機械Ｍ１の後方における追加空スペースが０．８１個であることと、機械Ｍ２の後方における追加の空スペースが２．５７個であることと、機械Ｍ３の前方における追加の部品が２．４９個であることなどを表している。次の工程においては、それら追加スペース数および追加部品数が、削減遊休時間の推定値に変換される。
【０２６４】
３．５  削減待ち時間（削減遊休時間）
【０２６５】
次の工程においては、バッファサイズを増加させた場合に、種々の機械について削減待ち時間および削減ブロッキング時間が決定される。この決定には、種々の機械についての待ち時間の分布の測定値が必要である。
【０２６６】
３．５．１  単位作用時間ＴＰＰ（Ｔｉｍｅ  Ｐｅｒ  Ｐａｒｔ）
【０２６７】
待ち時間に関連する基本的な問題は、スターブされた機械にとっては１個の部品、ブロックされた機械については１個のスペースが運転継続のために追加された場合に、どれくらいの時間が削減されるのかということである。今回のアルゴリズムにおいては、単位作用時間ＴＰＰｉは、１個の部品が作用状態にある時間であると仮定されており、よって、修理時間および工具交換時間を含んでいる。機械ｉについての単位作用時間ＴＰＰｉは、
ＴＰＰｉ＝ＴＢＰｉ・ＰＭ−Ａｉ
なる式を用いて計算される。すなわち、単位作用時間ＴＰＰｉは、機械ｉの搬出時間間隔ＴＢＰｉの平均値に、機械ｉが作用状態にある時間の比率である作用時間比率Ｐ−ＭＡｉを掛け算することによって計算されるのである。
【０２６８】
機械ｉの状態は、作用状態と非作用状態とに分類される。機械ｉの作用状態は、機械ｉの稼動状態と、他の作用状態すなわち例えば、修理状態および工具交換状態とを含んでいる。これに対し、機械ｉの非作用状態は、共に遊休状態であるブロッキング状態とスタービング状態とを含んでいる。
【０２６９】
機械ｉが稼動状態にある時間をサイクルタイムという。したがって、単位作用時間ＴＰＰは、サイクルタイムと、稼動状態を除く作用状態に機械ｉがある時間との和で表され、また、搬出時間間隔ＴＢＰは、単位作用時間ＴＰＰと機械ｉが非作用状態にある時間との和で表される。
【０２７０】
図３９には、各機械ごとに、平均搬出時間間隔ＴＢＰｉと、作用時間比率ＰＭ−Ａｉと、平均単位作用時間ＴＰＰｉとが表で示されている。例えば、スターブされた機械Ｍ４に利用可能な部品を１個追加すると、この機械Ｍ４はさらに１０３．４ｓ（秒）稼動する。同様に、ブロックされた機械Ｍ１に利用可能なスペースを１個追加すると、この機械Ｍ１はさらに３０ｓ稼動することになる。
【０２７１】
３．５．２  待ち時間の分布
【０２７２】
今回のアルゴリズムは、スタービング時間とブロッキング時間とを互いに区別しつつ、すべての機械事象に対して適用され、その結果、スタービング時間またはブロッキング時間である待ち時間の持続期間が決定される。それらデータは、ランダム分布関数すなわち確率密度関数として表現される。その関数は、機械ｉのブロッキングおよびスタービングの時間についての確率密度関数として、ｐｄｆＭ−Ｂｉ（ｔ）およびｐｄｆＭ−Ｓｉ（ｔ）で表す。それらの分布は、時間ｔの関数である。
【０２７３】
分布関数として標準的な分布関数（例えば指数関数）を使用し得る。しかし、取得されたデータによって規定される特別な分布関数を定義することが通常、より簡単でかつ正確である。すなわち、統計の教科書からの分布関数を前記取得データに適合させるか、またはこの分布を定義するために前記取得データを単に用いることにより、確率密度関数ｐｄｆまたは累積密度関数ｃｄｆを定義することが可能なのである。前記取得データを単に用いる手法は、簡単であると同時に正確であるように思われる。図４０には、複数の待ち時間のうち選択されたものの累積密度関数がグラフで示されている。
【０２７４】
スタービング時間を減少させるために利用可能な部品を追加するか、またはブロッキング時間を減少させるために利用可能なスペースを追加すると、遊休時間のうちのどれくらいが減少するのかを推定することが可能である。例えば、機械Ｍ３に平均的に１個の自由スペースを追加すると、上述の式に示すように、その機械Ｍ３は、１回のサイクルタイム分、すなわち、１４７ｓ長く、稼動することが可能である。
【０２７５】
この情報と、機械Ｍ３のブロッキング時間の分布とを組み合わせれば、削減ブロッキング時間を推定することが可能である。図４１に示す式は、機械ｉについての搬出時間間隔ＴＢＰｉの削減量比率ＰΔＴｉの数学的な計算であって、ブロッキング時間およびスタービング時間の分布と、その機械ｉの後方における利用可能スペース数ΔＥｉと、その機械ｉの前方における利用可能部品数ΔＦｉと、ブロッキングおよびスタービングの時間の、総時間（総解析時間、指定解析時間等）に対する比率ＰＭ−ＢｉおよびＰＭ−Ｓｉと、１個の部品を製造するのに必要な時間である単位作用時間ＴＰＰｉとに基づくものを示している。この式は、確率密度関数ｐｄｆＭ−Ｂｉ（ｔ）およびｐｄｆＭ−Ｓｉ（ｔ）を用いて表現することができる。
【０２７６】
この式は、２つの項から成り、それは、減少ブロッキング時間に起因する削減量比率項（第１項）と、減少スタービング時間に起因する削減量比率項（第２項）とである。
【０２７７】
各削減量比率項は、ある機械がブロック／スターブされた時間の比率ＰＭ−Ｂｉ／ＰＭ−Ｓｉに、減少ブロッキング／スタービング時間の平均値の、総ブロッキング／スタービング時間の平均値に対する比率を掛け算することによって算出される。
【０２７８】
システムにおけるランダム変数（例えば、各機械ｉのスタービング時間、ブロッキング時間）の平均値は、確率密度関数ｐｄｆと時間ｔとの積を、下端（待ち時間の場合は通常０）と上端との間について積分することによって決定することができる。上端が無限大より小さい場合には、この上端以下のすべての時間についてランダム変数の平均値が与えられる。上端が無限である場合には、すべてのランダム変数の平均値が与えられる。
【０２７９】
上端は、スタービング時間については、追加部品数ΔＦｉと、単位作用時間ＴＰＰｉ（機械ｉの「サイクルタイム」ともいう）との積として決定することができ、ブロッキング時間については、追加スペース数ΔＥｉと、単位作用時間ＴＰＰｉとの積として決定することができる。前者の積は、機械ｉのために部品を追加するとその機械ｉの作用時間が増加する最大量を意味し、同様に、後者の積は、機械ｉのためにスペースを追加するとその機械ｉの作用時間が増加する最大量を意味している。
【０２８０】
例えば、バッファＢＭ３およびＢＭ５スペースが５個増加すると、機械Ｍ２の後方における利用可能スペースが２．５７個追加されることとなり、これは、単位作用時間ＴＴＰの減少量の近似値が８．３１パーセントであることを意味する。同じバッファ構成は、機械Ｍ３が利用可能な部品の追加数が２．４９個であることを示し、これは、機械Ｍ３のスタービングを５．２９パーセント減少させる。
【０２８１】
次の工程においては、前記システムの新たな処理能力の予測モデルを作成するため、単位作用時間ＴＰＰｉの削減量比率ＰΔＴｉが、ボトルネック確率および初期のシステムの処理能力に組み合わされる。機械ｉについての削減待ち時間の総比率がＰΔＴｉで表される。
【０２８２】
３．６  予測モデル
【０２８３】
前記システムの搬出時間間隔ＴＢＰの有効削減量比率ＰΔＴｉを決定し、ひいてはこのシステムの新たな搬出時間間隔ＴＢＰの予測値を決定するために、種々の機械についての搬出時間間隔ＴＢＰの削減量比率ＰΔＴｉがボトルネック確率に組み合わされる。
【０２８４】
３．６．１  搬出時間間隔ＴＢＰの有効削減量比率
【０２８５】
上記においては、種々の機械について搬出時間間隔ＴＢＰの総削減量比率ＰΔＴｉが推定される。しかし、それら機械は、互いに独立しているのではなく、むしろ機械のネットワークの一部である。したがって、１台の機械の性能を改善すると、そのシステムの搬出時間間隔ＴＢＰに影響を及ぼす可能性もあり及ぼさない可能性もある。機械の搬出時間間隔ＴＢＰの改善がシステムの搬出時間間隔ＴＢＰに及ぼす影響の比率を決定するために、各機械ｉについてボトルネック確率ＰＭ−ＳＢＮｉが使用される。システムの有効総削減量比率ＰΔＴは、図４２に式で示すように、機械ｉごとの、待ち時間の総削減量比率ＰΔＴｉ（すなわち、待ち時間の削減量に起因する、搬出時間間隔ＴＢＰの削減量比率）と単独ボトルネック確率ＰＭ−ＳＢＮｉとの積を、全機械（ｉ＝１ｔｏｎ）について合計したものである。
【０２８６】
例えば、機械Ｍ１は、搬出時間間隔ＴＢＰを２４．１８パーセントまで削減する可能性がある。しかし、機械Ｍ１は、決してボトルネックではなく、よって、機械Ｍ１を改善してもシステムの搬出時間間隔ＴＢＰの改善に決してならない。別の機械であるＭ３は、このシステムのボトルネックであって、３２パーセントのボトルネック確率を有する。
【０２８７】
したがって、この機械Ｍ３の削減待ち時間のうちの３２パーセントが、このシステムの搬出時間間隔ＴＢＰの改善になる。削減待ち時間の推定値は５．３パーセントであるため、有効削減量比率は、この値の３２パーセントであり、このことは、全体のシステム性能が１．７パーセント（＝３２パーセントｘ１．７パーセント）改善される。
【０２８８】
図４３には、バッファＢＭ３およびＢＭ５の各スペースを５個に増加させた例につき、削減待ち時間と、機械の単独ボトルネック確率と、それらを組み合わせた値である、機械の搬出時間間隔ＴＢＰの有効削減量とが表で示されている。全体として、全機械について搬出時間間隔ＴＢＰの有効削減量比率を合計することができる。この例においては、バッファＢＭ３およびＢＭ５を５個のスペース容量を有するように改善することによって総搬出時間間隔ＴＢＰが３．６３パーセント減少する可能性がある。理論的には、単独ボトルネック確率ではなく全体ボトルネック確率を使用することがさらに可能である。しかし、予測結果は、単独ボトルネック確率を用いる場合の方が正確であった。
【０２８９】
３．６．２  改善された搬出時間間隔ＴＢＰの予測
【０２９０】
このシステムの搬出時間間隔ＴＢＰの有効削減量比率ＰΔＴを計算した後、改善されたシステムについて搬出時間間隔ＴＢＰの新たな値を予測することは非常に簡単である。そのための計算式は、
ＴＢＰ’＝ＴＢＰ・（１−ＰΔＴ）
であり、更新された搬出時間間隔ＴＢＰ’を取得するため、初期のシステムの搬出時間間隔ＴＢＰが単に、前述のようにして算出された搬出時間間隔ＴＢＰの有効削減量比率ＰΔＴだけ減少させられる。
【０２９１】
例えば、バッファＢＭ３およびＢＭ５の容量を５個に増加させると、システムの搬出時間間隔ＴＢＰが３．６３パーセント減少する。システムの搬出時間間隔ＴＢＰの初期値は５５．６８ｓであったため、このシステムの搬出時間間隔ＴＢＰの新たな値は２．０２ｓ減少して５３．６６ｓとなる。このように、バッファＢＭ３およびＢＭ５のスペースを１から５に変化させると、このシステムの総搬出時間間隔ＴＢＰが３．６３パーセント減少して５５．６８ｓから５３．６６ｓになる。
【０２９２】
以上、このバッファ予測方法の理論的背景および具体的手法を詳細に説明したが、次に、このバッファ予測方法を実施する具体的なアルゴリズムの一例をコンピュータ・プログラムを参照して説明する。
【０２９３】
図４４には、上記バッファ予測方法を実施するためにユーザにより使用されるシステム解析装置１０のハードウエア構成が概念的にブロック図で示されている。このシステム解析装置１０は、バッファ予測装置の一例である。
【０２９４】
このシステム解析装置１０は、よく知られているように、プロセシング・ユニット（同図において「ＰＵ」で表す。）１２とストレージ１４とがバス１６により互いに接続されて構成されたコンピュータ２０を備えている。
【０２９５】
このコンピュータ２０は、ポインティング・デバイスとしてのマウスおよびキーボードを備えた入力装置３０と、画像を画面上に表示する出力装置４０とに接続されている。ストレージ１４は、ＲＯＭ，ＲＡＭ，磁気ディスク，光ディスク等の記録媒体を含むように構成される。ユーザは、必要なデータを入力装置３０を介してコンピュータ２０に入力する。その入力に応答し、コンピュータ２０によるデータ処理結果が出力装置４０を介してユーザに可視化して提示される。
【０２９６】
ストレージ１４には、このバッファ予測方法を実施するためにＰＵ１２により実行されるバッファ予測プログラムが予め記憶されている。このバッファ予測プログラムは、それが実行される対象であるシステムのフロー（そのシステムにおける複数の機械の位置および複数のバッファの位置相互の関係）に適合するように設計されている。さらに、このバッファ予測プログラムは、そのシステムにおける部品の流れに関する条件にも適合するように設計されている。したがって、このバッファ予測プログラムは、そのシステムの各構成要素の状態の経時的な変化を表すシステムデータさえ与えられれば、そのシステムにおける部品の流れを時間的にも位置的にも再現することができるようになっている。ストレージ１４には、ＰＵ１２がそのバッファ予測プログラムを実行する際に使用されるデータが適宜記憶されるようになっている。
【０２９７】
図４５には、そのバッファ予測プログラムの内容が概念的にフローチャートで表されている。
【０２９８】
このバッファ予測プログラムにおいては、まず、ステップＳ１００（以下、単に「Ｓ１００」で表す。他のステップについても同じとする。）において、予測モデルが作成される。このステップの詳細が予測モデル作成ルーチンとして図４６にフローチャートで概念的に表されている。
【０２９９】
この予測モデル作成ルーチンにおいては、まず、Ｓ１０１において、与えられた任意の時期における各機械／バッファの状態を含むシステムデータが取得される。
【０３００】
このシステムデータは、図３におけると同様な形式で構成することが可能である。具体的には、このシステムデータは、例えば、要素すなわち機械の識別子（例えば、Ｍ１，Ｍ２，Ｍ３等）と、その機械の状態（例えば、前述の状態０、状態１、状態２、状態３等）と、各機械が各状態を示す期間を特定するための時間的情報とが互いに関連するように構成される。その時間的情報は、後述のように、各機械が各状態を示す期間の開始時期と終了時期とを含むように構成される。
【０３０１】
このシステムデータに基づき、各機械ｉの作用時間が、各作用期間の開始時期と終了時期とから計算により取得される。また、このシステムデータは、例えば、システムの過去における現実の作動状態を表すデータとしたり、そのシステムについてシミュレーションにより解析された仮想の作動状態を表すデータとすることができる。すなわち、このシステムデータは、例えば、１回のシミュレーションの実施によって取得したり、生産システムの測定によって取得することが可能なのである。
【０３０２】
次に、Ｓ１０２において、いくつかの統計値が解析される。それら統計値には、各機械ｉの搬出時間間隔ＴＢＰｉの平均値と、各機械ｉが特定の状態にある時間の、総解析時間（指定解析時間）に対する比率（ＰＭ−ＳｉおよびＰＭ−Ｂｉを含む）と、各バッファｊ内の平均部品／スペース数ＢＦｊ，ＢＥｊとが含まれる。
【０３０３】
続いて、Ｓ１０３において、各機械ｉのボトルネック確率が決定される。ボトルネック確率は、例えば、各機械ｉの作用時間の長さを総解析時間で割り算することによって決定することが可能であり、その一具体例が本出願人の特願２００２−８１０７７号出願明細書に詳細に記載されている。
【０３０４】
その後、Ｓ１０４において、全機械につき、ブロッキング時間の分布およびスタービング時間の分布が決定される。これにより、確率密度関数ｐｄｆＭ−ＢｉおよびｐｄｆＭ−Ｓｉが各機械ｉごとに定義される。
【０３０５】
以上で、この予測モデル作成ルーチンの一回の実行が終了する。
【０３０６】
その後、図４５のＳ２００において、スタービングおよびブロッキングの原因が解析される。この詳細が原因解析ルーチンとして図４７にフローチャートで概念的に表されている。
【０３０７】
この原因解析ルーチンにおいては、まず、Ｓ２０１において、全機械のうちのいずれかが最初の機械（上流または下流に向かう追跡のための出発要素）として選択される。次に、Ｓ２０２において、各機械が取り得る複数の事象のうちのいずれかが、最初の機械について注目すべき事象（以下、「今回の機械事象」という）として選択される。
【０３０８】
続いて、Ｓ２０３において、重みが１に設定されるとともに、今回の注目期間が、今回の機械事象が継続する期間に設定される。
【０３０９】
その後、Ｓ２０４において、前記システムデータに基づき、前記最初の機械の状態が、ブロッキング状態であるか、スタービング状態であるか、それらのいずれでもないかが判定される。
【０３１０】
今回は、前記最初の機械の状態がブロッキング状態であると仮定すると、Ｓ６００に移行する。このＳ６００においては、前記最初の機械の次の下流側対象物が決定される。
【０３１１】
このＳ６００の詳細が下流側対象物決定ルーチンとして図４８にフローチャートで概念的に表されている。
【０３１２】
この下流側対象物決定ルーチンにおいては、まず、Ｓ６０１において、今回の機械に隣接したすべての下流側対象物が次のルールに従って順位付けされる。
【０３１３】
順位１：ブロックされた機械
順位２：満杯のバッファ
順位３：作用状態にある機械
順位４：スターブされた機械
順位５：満杯ではないバッファ
この順位付けにより、システムにおいて、各下流側対象物ごとに、前記最初の機械の遊休状態を発生させる経路が決定される。
【０３１４】
次に、Ｓ６０２において、前記最初の機械の遊休期間（今回は、仮定上、ブロッキング期間である）を発生させた原因要素に至る原因経路の一部に既になっている対象物が今回の解析対象から除外される。これは、原因解析のために各対象物を下流に向かって辿る際に無限ループ（デッドロッキング）が発生しないようにするためである。
【０３１５】
続いて、Ｓ６０３において、上述の隣接したすべての下流側対象物のうち、最上位に順位付けされたもの（複数存在する場合がある）が選択される。その後、Ｓ６０４において、そのようにして選択された対象物が存在しないか否かが判定される。今回は、存在しないと仮定すれば、判定がＹＥＳとなり、直ちにこの下流側対象物決定ルーチンの一回の実行が終了し、その後、図４７のＳ２０５に移行する。
【０３１６】
これに対し、今回は、選択された対象物が存在すると仮定すれば、図４８のＳ６０４の判定がＮＯとなり、Ｓ６０５に移行する。
【０３１７】
このＳ６０５においては、重みが、前回の対象物（前記最初の機械である場合と、それに隣接した対象物である場合と、さらに後続した対象物である場合とがある）について予め設定された重みをＳ６０３において選択された対象物の数（複数である場合がある）で割り算した値に設定される。例えば、システムのうちの二股分岐部については、選択された対象物の数が２であるため、各対象物の重みが共に１／２に設定される。その後、Ｓ６０６において、最上位の対象物（複数存在する場合がある）の中から最初の対象物が選択される。
【０３１８】
続いて、Ｓ６０７において、注目期間が、前回の対象物の状態の開始時期から、最上位に順位付けされた対象物（複数存在する場合がある）の次の状態変化の時期と、前記原因経路上にある前回の対象物の期間の終了時期とのうち早い時期までの期間に設定される。
【０３１９】
その後、Ｓ６０８において、今回の対象物の順位が４であるか否かが判定される。今回は、４ではないと仮定すると、判定がＮＯとなり、Ｓ８００に移行する。このＳ８００においては、設定された注目期間について対象物が下流に向かって辿られる。このＳ８００の詳細が下流追跡ルーチンとして図５０にフローチャートで概念的に表されている。
【０３２０】
この下流追跡ルーチンにおいては、まず、Ｓ８０１において、前記最初の機械がブロックされているか否かが判定される。今回は、ブロックされていると仮定されているため、判定がＹＥＳとなり、Ｓ８０２に移行する。
【０３２１】
このＳ８０２においては、Ｓ６０５または後述のＳ７０５の実行によって設定された重み（以下、単に「設定重み」という）と、Ｓ６０７または後述のＳ７０７の実行によって設定された注目期間（以下、単に「設定注目期間」という）の長さとの積（以下、単に「重み付けされた時間」という）が、今回の対象物の前方にあるバッファ内のスペースを追加すれば前記最初の機械のブロッキングが減少する時間に加算される。この時間は、前述のモード１に関連するとともに、前述の比率ＰＢＥＢ−Ｅｊ，ｉすなわち後述のデータ（３）の取得に利用される。
【０３２２】
その後、Ｓ８０３において、今回の重み付けされた時間が、前記最初の機械のブロッキングを発生させた経路（前記最初の機械と、それをブロックさせた原因要素である機械との間における経路）の一部であった（その経路上に位置していた）時間に加算される。この時間は、後述のデータ（７）の取得に利用される。
【０３２３】
続いて、Ｓ８０４において、今回の対象物が作用状態にあるか否かが判定される。今回は、今回の対象物が機械であり、かつ、それが作用状態にあると仮定すれば、判定がＹＥＳとなり、Ｓ８０５において、今回の対象物が、前記最初の機械のブロッキングの原因であると判定される。
【０３２４】
このＳ８０５においては、さらに、今回の重み付けされた時間が、今回の対象物が前記最初の機械のブロッキングを発生させる時間（今回の対象物が、前記最初の機械のブロッキングを発生させる原因であり続ける時間）に加算される。この時間は、後述のデータ（５）の取得に利用される。
【０３２５】
以上で、この下流追跡ルーチンの一回の実行が終了し、図４８のＳ６０９に移行する。
【０３２６】
これに対し、今回は、今回の対象物が作用状態にはないと仮定すれば、図５０のＳ８０４の判定がＮＯとなり、Ｓ８０６に移行する。
【０３２７】
このＳ８０６においては、今回の重み付けされた時間が、今回の対象物の後方にあるバッファ内のスペースを追加すれば前記最初の機械のブロッキングが減少する時間に加算される。
【０３２８】
その後、図４８のＳ６０１に移行し、下流側対象物決定ルーチンが再度実行される。
【０３２９】
ここで、図６８に示す例について図４８の下流側対象物決定ルーチンと図５０の下流追跡ルーチンとの実行内容を説明する。
【０３３０】
図５０の下流追跡ルーチンは、機械Ｍ１が最初の機械であるため、機械Ｍ２と機械Ｍ３と機械Ｍ４とについて実行される。機械Ｍ１はブロッキング状態にあり、かつ、図４８の下流側対象物決定ルーチンは、まず、機械Ｍ２を今回の対象物（機械Ｍ１に後続する対象物）として選択する。
【０３３１】
その後、図５０の下流追跡ルーチンが、Ｓ８０１において、最初の機械Ｍ１がブロッキング状態にあるか否かを判定すると、その判定はＹＥＳであるため、Ｓ８０２において、機械Ｍ２の期間の長さ（Ｓ６０７において設定）と重み（Ｓ６０５において設定）との積である今回の重み付けされた時間が、機械Ｍ２の後方におけるバッファ内にスペースを追加すると機械Ｍ１のブロッキング状態が減少する時間に加算される。さらに、Ｓ８０３において、今回の重み付けされた時間が、機械Ｍ２が、機械Ｍ１のブロッキングを発生させた経路の一部であった時間に加算される。
【０３３２】
機械Ｍ２は、作用状態にはないため、Ｓ８０４の判定がＮＯとなり、その後、Ｓ８０６において、今回の重み付けされた時間が、機械Ｍ２の後方におけるバッファ内にスペースを追加すると機械Ｍ１のブロッキング状態が減少する時間に加算される。
【０３３３】
その後、図５０の下流追跡ルーチンから図４８の下流側対象物決定ルーチンに移行して、そこで、次の下流側対象物が探索される。下流側対象物決定ルーチンは、今回の対象物として機械Ｍ３を探索し、よって、再び図５０の下流追跡ルーチンに移行する。
【０３３４】
この下流追跡ルーチンは、Ｓ８０１において、最初の機械である機械Ｍ１がブロッキング状態にあるか否かを再度判定し、その判定は今回もＹＥＳであるため、Ｓ８０２において、機械Ｍ３の期間の長さ（Ｓ６０７において設定）と重み（Ｓ６０５において設定）との積である今回の重み付けされた時間が、機械Ｍ３の後方におけるバッファ内にスペースを追加すると機械Ｍ１のブロッキング状態が減少する時間に加算される。さらに、Ｓ８０３において、今回の重み付けされた時間が、機械Ｍ３が、機械Ｍ１のブロッキングを発生させた経路の一部であった時間に加算される。
【０３３５】
機械Ｍ３は、作用状態にはないため、Ｓ８０４の判定がＮＯとなり、Ｓ８０６において、今回の重み付けされた時間が、機械Ｍ３の後方におけるバッファ内にスペースを追加すると機械Ｍ１のブロッキング状態が減少する時間に加算される。
【０３３６】
その後、図５０の下流追跡ルーチンから図４８の下流側対象物決定ルーチンに移行して、そこで、次の下流側対象物が探索される。下流側対象物決定ルーチンは、今回の対象物として機械Ｍ４を探索し、よって、再び図５０の下流追跡ルーチンに移行する。
【０３３７】
この下流追跡ルーチンは、最初の機械である機械Ｍ１がブロッキング状態にあるか否かを再度判定し、その判定は今回もＹＥＳであるため、Ｓ８０２において、機械Ｍ４の期間の長さ（Ｓ６０７において設定）と重み（Ｓ６０５において設定）との積である今回の重み付けされた時間が、機械Ｍ４の後方におけるバッファ内にスペースを追加すると機械Ｍ１のブロッキング状態が減少する時間に加算される。さらに、Ｓ８０３において、今回の重み付けさされた時間が、機械Ｍ４が、機械Ｍ１のブロッキングを発生させた経路の一部であった時間に加算される。
【０３３８】
機械Ｍ４は、作用状態にあるため、Ｓ８０４の判定がＹＥＳとなり、Ｓ８０５において、機械Ｍ４が、最初の機械である機械Ｍ１のブロッキングのもともとの原因であったと判定されるとともに、今回の重み付けされた時間が、機械Ｍ４が機械Ｍ１のブロッキングを発生させる時間に加算される。
【０３３９】
以上で、下流追跡ルーチンの一回の実行が終了し、その後、図４８のＳ６０９に移行する。機械Ｍ４が当該システムにおいて最後の対象物であるため、Ｓ６０９の判定はＹＥＳとなり、Ｓ６１０に移行する。
【０３４０】
以上、今回の対象物の順位が４ではない場合を説明したが、４である場合には、図４８のＳ６０８の判定がＹＥＳとなり、Ｓ９００において、設定された注目期間について対象物が上流に向かって辿られる。
【０３４１】
このＳ９００の詳細が上流追跡ルーチンとして図５１にフローチャートで概念的に表されている。この上流追跡ルーチンにおいては、まず、Ｓ９０１において、前記最初の機械がブロックされているか否かが判定される。今回は、ブロックされていると仮定されているため、判定がＹＥＳとなり、Ｓ９０２に移行する。
【０３４２】
このＳ９０２においては、今回の重み付けされた時間が、今回の対象物の後方にあるバッファ内の部品を追加すれば前記最初の機械のブロッキングが減少する時間に加算される。この時間は、前述のモード３に関連するとともに、前述の比率ＰＢＦＢ−Ｅｊ，ｉすなわち後述のデータ（２）の取得に利用される。
【０３４３】
続いて、Ｓ９０３において、今回の重み付けされた時間が、今回の対象物が前記最初の機械のブロッキングを発生させた経路の一部であった時間に加算される。この時間は、後述のデータ（７）の取得に利用される。
【０３４４】
その後、Ｓ９０４において、今回の対象物が作用状態にあるか否かが判定される。今回は、作用状態にあると仮定すれば、判定がＹＥＳとなり、Ｓ９０５に移行する。このＳ９０５においては、今回の対象物が、前記最初の機械のブロッキングの原因であると判定される。
【０３４５】
さらに、このＳ９０５においては、今回の重み付けされた時間が、今回の対象物が前記最初の機械のブロッキングを発生させる時間に加算される。この時間は、後述のデータ（５）の取得に利用される。
【０３４６】
以上で、この上流追跡ルーチンの一回の実行が終了し、その後、図４８のＳ６０９に移行する。
【０３４７】
これに対し、今回は、今回の対象物が作用状態にはないと仮定すると、図５１のＳ９０４の判定がＮＯとなり、Ｓ９０６において、今回の重み付けされた時間が、今回の対象物の前方にあるバッファ内の部品を追加すれば前記最初の機械のブロッキングが減少する時間に加算される。
【０３４８】
その後、図４９のＳ７０１に移行し、後述の上流側対象物決定ルーチンが実行される。
【０３４９】
図４８の下流側対象物決定ルーチンにおいては、Ｓ８００またはＳ９００の実行が終了すると、その後、Ｓ６０９において、選択されたすべての対象物について反復が終了したか否かが判定される。今回は、未だ終了してはいないと仮定すれば、判定がＮＯとなり、次の対象物についてＳ６０７以下のステップが実行される。
【０３５０】
これに対し、今回は、選択されたすべての対象物について反復が終了したと仮定すれば、Ｓ６０９の判定がＹＥＳとなり、Ｓ６１０に移行する。
【０３５１】
このＳ６１０においては、前回の対象物の状態の全期間がカバーされるまでの反復が終了したか否かが判定される。今回は、未だ終了してはいないと仮定すれば、判定がＮＯとなり、Ｓ６０１に戻るが、今回は、終了したと仮定すれば、Ｓ６１０の判定がＹＥＳとなり、この下流側対象物決定ルーチンの一回の実行が終了し、その後、図４７のＳ２０５に移行する。
【０３５２】
ここで、図４８の下流側対象物ルーチンの実行内容を図７に示す生産システムを例にとり、具体的に説明する。
【０３５３】
図６８には、図７に示す生産システムにおける４台の機械Ｍ１ないしＭ４がブロッキング状態と作用状態とに変化する様子が時間ｔと共にタイムチャートで表されている。
【０３５４】
機械Ｍ１は、時刻ｔ０と時刻ｔ３との間においてブロッキング状態にある。このバッファ予測プログラムは、その機械Ｍ１のブロッキングの原因とそれの経路とを特定するために実行される。
【０３５５】
ここで、コンピュータ２０が、このバッファ予測プログラムのうち、図４８の下流側対象物決定ルーチンを実行する時点においては、前記最初の機械または前回の対象物（すなわち、いずれの場合にも、それらの遊休状態の原因が調査される対象物を意味する）が機械Ｍ１であって、注目期間として時刻ｔ０と時刻ｔ３との間の期間が設定されていると仮定する。その期間中、機械Ｍ１はブロッキング状態にある。
【０３５６】
この場合、Ｓ６０１の実行により、その機械Ｍ１にそれの下流側において隣接するすべての対象物、すなわち、機械Ｍ２および機械Ｍ３に対して順位付けが行われ、その後、Ｓ６０３の実行により、それら機械Ｍ２および機械Ｍ３が同じ順位を付与されたと判定されるとともに、それらが今回の対象物として選択される。
【０３５７】
それら機械Ｍ２および機械Ｍ３が選択されると、Ｓ６０５の実行により、前回の対象物である機械Ｍ１について設定された重み（すなわち、この例においては、機械Ｍ１について設定された１の重み）が、最上位に順位付けされた対象物の数（すなわち、この例においては、２）で割り算され、結局、下流側対象物Ｍ２，Ｍ３についての新たな重みがそれぞれ、１／２として設定されることになる。
【０３５８】
その後、Ｓ６０６の実行により、機械Ｍ２が、更なる調査のために、最上位を有する最初の対象物として選択されたと仮定する。この場合、続いて、Ｓ６０７の実行により、注目期間（今回の解析が実施されるべき対象期間）が、前回の対象物である機械Ｍ１のブロッキング期間の開始時期である時刻ｔ０から、最上位に順位付けされた対象物（今回は、機械Ｍ２とＭ３）の次の状態変化の時刻（選択された対象物が複数存在する場合には、それらのうち最も早い時刻を意味し、この例においては、最上位に順位付けされた機械Ｍ２とＭ３のうち機械Ｍ２の次の状態変化の時刻ｔ１が該当する）と、前回の対象物である機械Ｍ１のブロッキング期間の終了時期ｔ３とのうち早い方までの期間として設定される。この例においては、時刻ｔ１の方が時刻ｔ３より早いため、今回の注目期間は、時刻ｔ０とｔ１との間の期間として設定され、その設定された注目期間につき、今回の対象物である機械Ｍ２が追跡されることになる。
【０３５９】
同様な処理が次の対象物である機械Ｍ３についても行われる。この機械Ｍ３の重みも、上述のように、１／２に設定される。機械Ｍ３についての注目期間は、時刻ｔ０から、最上位に順位付けされた対象物（今回は、機械Ｍ３のみ）の次の状態変化の時刻ｔ１と、前回の対象物である機械Ｍ１のブロッキング期間の終了時期ｔ３とのうち早い方までの期間として設定される。この機械Ｍ３についても、機械Ｍ２と同様に、今回の注目期間が、時刻ｔ０とｔ１との間の期間として設定され、その設定された注目期間につき、機械Ｍ３が追跡されることになる。
【０３６０】
図４８におけるＳ６０１ないしＳ６０９の実行は、前回の対象物である機械Ｍ１の特定状態の全期間、すなわち、時刻ｔ０から時刻ｔ３までの期間がカバーされるまで反復される。時刻ｔ０から時刻ｔ１までの期間は既に解析された（カバーされた）ため、今度は、時刻ｔ１から時刻ｔ３までの期間が解析される。その期間につき、下流側機械である機械Ｍ２および機械Ｍ３を順位付けすると、機械Ｍ２は作用状態にあるのに対し、機械Ｍ３はブロッキング状態にあるため、今回は、機械Ｍ３の順位の方が機械Ｍ２の順位より上位である。したがって、その期間については、最上位の機械が１台しか存在せず、その機械Ｍ３の重みは、今回は、最上位に順位付けされた対象物の数が１であるから、１のままとされる。
【０３６１】
機械Ｍ３についての注目期間（個別解析期間）が、時刻ｔ１から、機械Ｍ３の次の状態変化の時刻ｔ２と、全体の対象物である機械Ｍ１のブロッキング期間の終了時刻ｔ３とのうち早い方である時刻ｔ２までの期間として設定される。したがって、機械Ｍ１のブロッキングが、時刻ｔ１から時刻ｔ２までの期間につき、下流に向かって追跡されることになる。今回は、最上位に順位付けされた対象物が１個しか存在しないため、Ｓ６０９の判定はＹＥＳとなり、Ｓ６１０に移行する。
【０３６２】
現時点においては、時刻ｔ０から時刻ｔ１までの期間と、時刻ｔ１から時刻ｔ２までの期間とがいずれもカバーされており、残っている期間は、時刻ｔ２から時刻ｔ３までの期間である。この期間については、機械Ｍ２および機械Ｍ３が、共に、作用状態にあると仮定されているため、同じ順位を付与されるとともに、重みがそれぞれ１／２に設定される。
【０３６３】
Ｓ６０７、Ｓ６０８およびＳ８００により構成されるループの実行が、機械Ｍ２と機械Ｍ３とについて反復され、そのＳ８００の実行により、機械Ｍ１のブロッキングが下流に向かって追跡される。このＳ８００の実行により、機械Ｍ２と機械Ｍ３とがいずれも、時刻ｔ２から時刻ｔ３までの期間について機械Ｍ１のブロッキングの原因であると決定され、各機械Ｍ２およびＭ３は、共に重みが１である。
【０３６４】
時刻ｔ０から時刻ｔ３までの全期間について解析が行われたならば、Ｓ６０１ないしＳ６０９により構成されるループの実行が終了する。
【０３６５】
以上、図４７の原因解析ルーチンにおいて、前記最初の機械の状態がブロッキング状態であると仮定したが、スタービング状態であると仮定すると、Ｓ７００において、前記最初の機械の次の上流側対象物が決定される。
【０３６６】
このＳ７００の詳細が上流側対象物決定ルーチンとして図４９にフローチャートで概念的に表されている。この上流側対象物決定ルーチンは、基本的には、図４８の下流側対象物決定ルーチンと共通する。
【０３６７】
この上流側対象物決定ルーチンにおいては、まず、Ｓ７０１において、前記最初の機械に隣接したすべての上流側対象物が次のルールに従って順位付けされる。
【０３６８】
順位１：スターブされた機械
順位２：空のバッファ
順位３：作用状態にある機械
順位４：ブロックされた機械
順位５：空ではないバッファ
この順位付けにより、システムにおいて、各上流側対象物ごとに、前記最初の機械の遊休状態を発生させる経路が決定される。
【０３６９】
次に、Ｓ７０２において、前記最初の機械の遊休期間（今回は、仮定上、スタービング期間）の原因要素に至る原因経路の一部に既になっている対象物が除外される。無限ループを回避するためである。
【０３７０】
続いて、Ｓ７０３において、上述の、隣接したすべての上流側対象物のうち最上位のものが選択される。その後、Ｓ７０４において、そのようにして選択された対象物が存在しないか否かが判定される。
【０３７１】
今回は、存在しないと仮定すれば、判定がＹＥＳとなり、直ちに、この上流側対象物決定ルーチンの一回の実行が終了する。これに対し、今回は、選択された対象物が存在すると仮定すれば、判定がＮＯとなり、Ｓ７０５に移行する。
【０３７２】
このＳ７０５においては、重みが、前回の対象物について予め設定された重みをＳ７０３において選択された対象物の数で割り算した値に設定される。その後、Ｓ７０６において、最上位の対象物の中から最初の対象物が選択される。
【０３７３】
続いて、Ｓ７０７において、注目期間が、前回の対象物の状態の開始時期から、最上位に順位付けされた対象物（複数存在する場合がある）の次の状態変化の時期と、前記原因経路上にある前回の対象物の期間の終了時期とのうち早い時期までの期間に設定される。
【０３７４】
その後、Ｓ７０８において、選択された対象物の順位が４であるか否かが判定される。今回は、４ではないと仮定すれば、判定がＮＯとなり、Ｓ９００において、図５１の上流追跡ルーチンが実行されることにより、対象物が上流に向かって辿られる。
【０３７５】
この上流追跡ルーチンにおいては、まず、Ｓ９０１において、前記最初の機械がブロックされているか否かが判定される。今回は、スタービング状態にあると仮定されているため、判定がＮＯとなり、Ｓ８０７に移行する。
【０３７６】
このＳ８０７においては、今回の重み付けされた時間が、今回の対象物の前方にあるバッファ内のスペースを追加すれば前記最初の機械のスタービングが減少する時間に加算される。この時間は、前述のモード２に関連するとともに、前述の比率ＰＢＥＳ−Ｅｊ，ｉすなわち後述のデータ（４）の取得に利用される。
【０３７７】
続いて、Ｓ８０８において、今回の重み付けされた時間が、今回の対象物が前記最初の機械のスタービングを発生させた経路の一部であった時間に加算される。この時間は、後述のデータ（８）の取得に利用される。
【０３７８】
その後、Ｓ８０９において、今回の対象物が作用状態にあるか否かが判定される。今回は、作用状態にあると仮定すれば、判定がＹＥＳとなり、Ｓ８１０において、今回の対象物が、前記最初の機械のスタービングの原因であると判定される。
【０３７９】
さらに、このＳ８１０においては、今回の重み付けされた時間が、今回の対象物が前記最初の機械のスタービングを発生させる時間に加算される。この時間は、後述のデータ（６）の取得に利用される。
【０３８０】
以上で、この下流追跡ルーチンの一回の実行が終了し、その後、図４８のＳ６０９に移行する。
【０３８１】
これに対し、今回は、今回の対象物が作用状態にはないと仮定すれば、図５０のＳ８０９の判定がＮＯとなり、Ｓ８１１に移行する。このＳ８１１においては、今回の重み付けされた時間が、今回の対象物の後方にあるバッファ内のスペースを追加すれば前記最初の機械のスタービングが減少する時間に加算される。
【０３８２】
その後、図４８のＳ６０１に移行し、下流側対象物決定ルーチンが再度実行される。
【０３８３】
これに対し、今回は、選択された対象物の順位が４であると仮定すると、Ｓ７０８の判定がＹＥＳとなり、Ｓ８００において、図５０の下流追跡ルーチンが実行されることにより、対象物が下流に向かって辿られる。
【０３８４】
この下流追跡ルーチンにおいては、まず、Ｓ８０１において、前記最初の機械がブロックされているか否かが判定される。今回は、スタービング状態にあると仮定されているため、判定がＮＯとなり、Ｓ９０７に移行する。
【０３８５】
このＳ９０７においては、今回の重み付けされた時間が、今回の対象物の後方にあるバッファ内の部品を追加すれば前記最初の機械のスタービングが減少する時間に加算される。この時間は、前述のモード４に関連するとともに、前述の比率ＰＢＥＳ−Ｅｊ，ｉすなわち後述のデータ（１）の取得に利用される。
【０３８６】
続いて、Ｓ９０８において、今回の重み付けされた時間が、今回の対象物が前記最初の機械のスタービングを発生させた経路の一部であった時間に加算される。この時間は、後述のデータ（８）の取得に利用される。
【０３８７】
その後、Ｓ９０９において、今回の対象物が作用状態にあるか否かが判定される。今回は、作用状態にあると仮定すれば、判定がＹＥＳとなり、Ｓ９１０に移行する。このＳ９１０においては、今回の対象物が、前記最初の機械のスタービングの原因であると判定される。
【０３８８】
さらに、このＳ９１０においては、今回の重み付けされた時間が、今回の対象物が前記最初の機械のスタービングを発生させる時間に加算される。この時間は、後述のデータ（６）の取得に利用される。
【０３８９】
以上で、この上流追跡ルーチンの一回の実行が終了し、その後、図４８のＳ６０９に移行する。
【０３９０】
これに対し、今回は、今回の対象物が作用状態にはないと仮定すれば、図５１のＳ９０９の判定がＮＯとなり、Ｓ９１１に移行する。このＳ９１１においては、今回の重み付けされた時間が、今回の対象物の前方にあるバッファ内の部品を追加すれば前記最初の機械のスタービングが減少する時間に加算される。
【０３９１】
その後、図４９のＳ７０１に移行し、上流側対象物決定ルーチンが実行される。
【０３９２】
いずれの場合にも、その後、Ｓ７０９において、選択されたすべての対象物について反復が終了したか否かが判定される。今回は、未だ終了してはいないと仮定すれば、判定がＮＯとなり、次の対象物についてＳ７０７以下のステップが実行される。
【０３９３】
これに対し、今回は、選択されたすべての対象物について反復が終了したと仮定すれば、Ｓ７０９の判定がＹＥＳとなり、Ｓ７１０に移行する。
【０３９４】
このＳ７１０においては、前回の対象物の状態の期間全体がカバーされるまでの反復が終了したか否かが判定される。今回は、未だ終了してはいないと仮定すれば、判定がＮＯとなり、Ｓ７０１に戻るが、今回は、終了したと仮定すれば、Ｓ７１０の判定がＹＥＳとなり、この上流側対象物決定ルーチンの一回の実行が終了し、その後、図４７のＳ２０５に移行する。
【０３９５】
以上、図４７の原因解析ルーチンにおいて、前記最初の機械の状態がスタービング状態である場合を説明したが、ブロッキング状態でもスタービング状態でもない場合には、直ちにＳ２０５に移行する。
【０３９６】
いずれの場合にも、このＳ２０５においては、全機械事象についての反復が終了したか否かが判定される。今回は、未だ終了してはいないと仮定すれば、判定がＮＯとなり、Ｓ２０６において、次の事象が、最初の機械についての事象として選択された後、Ｓ２０３に戻る。これに対し、今回は、全機械事象についての反復が終了したと仮定すると、Ｓ２０５の判定がＹＥＳとなる。
【０３９７】
この場合、その後、Ｓ２０７において、全機械についての反復が終了したか否かが判定される。今回は、未だ終了してはいないと仮定すれば、判定がＮＯとなり、Ｓ２０８において、次の機械が最初の機械として選択された後、Ｓ２０２に戻る。これに対し、今回は、全機械についての反復が終了したと仮定すると、Ｓ２０７の判定がＹＥＳとなる。
【０３９８】
その後、Ｓ２０９において、バッファ／部品の追加による効果の比率であるバッファ効果比率と、各機械が別の機械の遊休状態の原因を構成する比率である原因構成比率と、各機械が別の機械の遊休状態の原因の経路を構成する比率である経路構成比率とが計算される。この計算は、適宜、これまでに決定された複数の時間（図５０の下流追跡ルーチンまたは図５１の上流追跡ルーチンの実行によって取得された各種時間）の長さを総解析時間で割り算することにより、行われる。
【０３９９】
バッファ効果比率としては、
データ（１）
各バッファｊ内の部品を追加すれば各機械ｉのスタービングが減少する時間の、総解析時間に対する比率ＰＢＦＳ−Ｅｊ，ｉと、
データ（２）
各バッファｊ内の部品を追加すれば各機械ｉのブロッキングが減少する時間の、総解析時間に対する比率ＰＢＦＢ−Ｅｊ，ｉと、
データ（３）
各バッファｊ内のスペースを追加すれば各機械ｉのブロッキングが減少する時間の、総解析時間に対する比率ＰＢＥＢ−Ｅｊ，ｉと、
データ（４）
各バッファｊ内のスペースを追加すれば各機械ｉのスタービングが減少する時間の、総解析時間に対する比率ＰＢＥＳ−Ｅｊ，ｉと
が含まれる。
【０４００】
これに対し、原因構成比率としては、
データ（５）
ある機械が別の機械のブロックの原因であった時間の、総解析時間に対する比率と、
データ（６）
ある機械が別の機械のスターブの原因であった時間の、総解析時間に対する比率と
が含まれる。
【０４０１】
また、経路構成比率としては、
データ（７）
ある機械が別の機械のブロックの経路であった時間の、総解析時間に対する比率と、
データ（８）
ある機械が別の機械のスターブの経路であった時間の、総解析時間に対する比率と
が含まれる。
【０４０２】
ただし、上記データ（１）ないし（４）の比率は、各機械ｉの前後におけるバッファｊの位置と各機械ｉとの組合せのすべてについて計算され、これに対し、上記データ（５）ないし（８）の比率は、機械ｉ同士の組合せのすべてについて計算される。
【０４０３】
以上で、この原因解析ルーチンの一回の実行が終了し、その後、図４５のＳ３００に移行する。このＳ３００においては、機械の前後におけるバッファのための追加バッファ容量が指定される。続いて、Ｓ４００において、追加バッファ容量の効果が推定される。このＳ４００の詳細がバッファ効果推定ルーチンとして図５２にフローチャートで概念的に表されている。
【０４０４】
このバッファ効果推定ルーチンにおいては、まず、Ｓ１０００において、各機械の前方および後方におけるバッファ内の平均部品数が推定される。このＳ１０００の詳細が平均部品数推定ルーチンとして図５３にフローチャートで概念的に表されている。
【０４０５】
この平均部品数推定ルーチンにおいては、まず、Ｓ１００１において、別の機械が、スターブ中の今回の機械の経路の一部であった時間の、総解析時間に対する比率（前述のデータ（８））に、今回の機械のボトルネック確率が掛け算され、それにより、重み付け上流側ボトルネック確率が計算される。
【０４０６】
次に、Ｓ１００２において、別の機械がブロック中の今回の機械の経路の一部であった時間の、総解析時間に対する比率（前述のデータ（７））に、今回の機械のボトルネック確率が掛け算され、それにより、重み付け下流側ボトルネック確率が計算される。
【０４０７】
続いて、Ｓ１００３において、上記別の機械が全機械をカバーしたか否か、すなわち、全機械の範囲内で変化させられたか否かが判定される。今回は、全機械をカバーしてはいないと仮定すれば、判定がＮＯとなり、Ｓ１００１以下のステップが再度、更新された別の機械について実行される。これに対し、今回は、全機械をカバーしたと仮定すれば、Ｓ１００３の判定がＹＥＳとなり、Ｓ１００４に移行する。
【０４０８】
このＳ１００４においては、いくつかの機械についてのいくつかの重み付け上流側ボトルネック確率が合計されることにより、全重み付け上流側ボトルネック確率が計算される。さらに、いくつかの機械についてのいくつかの重み付け下流側ボトルネック確率が合計されることにより、全重み付け下流側ボトルネック確率が計算される。
【０４０９】
続いて、Ｓ１００５において、今回の機械の前方におけるバッファｊ内の平均部品数ＢＦｊが計算される。具体的には、
ＢＦｊ＝バッファ容量ｘ全重み付け上流側ボトルネック確率／（全重み付け上流側ボトルネック確率＋全重み付け下流側ボトルネック確率＋今回の機械のボトルネック確率）
なる式を用いて計算される。
【０４１０】
その後、Ｓ１００６において、今回の機械の後方におけるバッファｊ内の平均部品数ＢＦｊが計算される。具体的には、
ＢＦｊ＝バッファ容量ｘ（全重み付け上流側ボトルネック確率＋今回の機械のボトルネック確率）／（全重み付け上流側ボトルネック確率＋全重み付け下流側ボトルネック確率＋今回の機械のボトルネック確率）
なる式を用いて計算される。
【０４１１】
続いて、Ｓ１００７において、全機械について反復が終了したか否かが判定される。今回は、終了してはいないと仮定すれば、判定がＮＯとなり、Ｓ１００１以下のステップが再度、更新された今回の機械について実行される。これに対し、今回は、全機械について反復が終了したと仮定すれば、Ｓ１００７の判定がＹＥＳとなり、以上で、この平均部品数推定ルーチンの一回の実行が終了し、その後、図５２のＳ１１００に移行する。
【０４１２】
なお付言するに、図４６のＳ１０２においては、バッファ内の平均部品数が計算されるが、この点、この平均部品数推定ルーチンと共通する。しかし、Ｓ１０２においては、シミュレーションのモデル内に現に存在するバッファ内の平均部品数が測定されるのであり、これに対し、この平均部品数推定ルーチンにおいては、仮想的なバッファ内に平均部品数が推定されるのであって、平均部品数が関連付けられるバッファの現実の存在が必要とはされない。
【０４１３】
このＳ１１００においては、機械が利用可能な部品およびスペースの追加数が推定される。このＳ１１００の詳細が追加部品／スペース数推定ルーチンとして図５４にフローチャートで概念的に表されている。
【０４１４】
この追加部品／スペース数推定ルーチンにおいては、まず、Ｓ１１０１において、今回のバッファｊ内に部品を追加すれば今回の機械ｉのスタービングが減少する時間の比率ＰＢＦＳｊ，ｉ（前述のデータ（１））にバッファｊ内の平均部品数ＢＦｊが掛け算され、それが今回の機械ｉのための追加部品数ΔＦｉに加算される。
【０４１５】
次に、Ｓ１１０２において、今回のバッファｊ内にスペースを追加すれば今回の機械ｉのスタービングが減少する時間の比率ＰＢＥＳｊ，ｉ（前述のデータ（４））にバッファｊ内の平均スペース数ＢＥｊが掛け算され、それが今回の機械ｉのための追加部品数ΔＦｉに加算される。
【０４１６】
続いて、Ｓ１１０３において、今回のバッファｊ内に部品を追加すれば今回の機械ｉのブロッキングが減少する時間の比率ＰＢＦＢｊ，ｉ（前述のデータ（２））にバッファｊ内の平均部品数ＢＦｊが掛け算され、それが今回の機械ｉのための追加スペース数ΔＥｉに加算される。
【０４１７】
その後、Ｓ１１０４において、今回のバッファｊ内にスペースを追加すれば今回の機械ｉのブロッキングが減少する時間の比率ＰＢＥＢｊ，ｉ（前述のデータ（３））にバッファｊ内の平均スペース数ＢＥｊが掛け算され、それが今回の機械ｉのための追加スペース数ΔＥｉに加算される。
【０４１８】
続いて、Ｓ１１０５において、全バッファについて反復が終了したか否か、すなわち、バッファｊの更新が不要となったか否かが判定される。今回は、全バッファについて反復が終了したわけではないと仮定すれば、判定がＮＯとなり、バッファｊが更新された後、Ｓ１１０１に戻る。これに対し、全バッファについて反復が終了したと仮定すれば、Ｓ１１０５の判定がＹＥＳとなり、Ｓ１１０６に移行する。
【０４１９】
このＳ１１０６においては、全機械について反復が終了したか否か、すなわち、機械ｉの更新が不要となったか否かが判定される。今回は、全機械について反復が終了したわけではないと仮定すれば、判定がＮＯとなり、機械ｉが更新された後、Ｓ１１０１に戻る。これに対し、全機械について反復が終了したと仮定すれば、Ｓ１１０６の判定がＹＥＳとなる。
【０４２０】
以上で、この追加部品／スペース数推定ルーチンの一回の実行が終了し、その後、図５２のＳ１２００に移行する。
【０４２１】
このＳ１２００においては、機械の削減遊休時間比率が推定される。このＳ１２００の詳細が削減遊休時間比率推定ルーチンとして図５５にフローチャートで概念的に表されている。
【０４２２】
この削減遊休時間比率推定ルーチンにおいては、まず、Ｓ１２０１において、今回の機械ｉのために部品を追加すると今回の機械ｉの作用時間が増加する最大量である最大増加量が、今回の機械ｉのための追加部品数ΔＦｉに今回の機械ｉの搬出時間間隔ＴＰＰｉを掛け算することによって決定される。
【０４２３】
次に、Ｓ１２０２において、今回の機械ｉのスタービング時間分布関数をそれの全変域について積分することにより、平均スタービング時間が決定される。
【０４２４】
続いて、Ｓ１２０３において、今回の機械ｉのスタービング時間分布関数を、０と、部品追加に起因した作用時間の最大増加量ΔＦｉ・ＴＰＰｉとの変域について積分することにより、減少スタービング時間が決定される。
【０４２５】
その後、Ｓ１２０４において、減少スタービング時間と平均スタービング時間との比に、今回の機械ｉがスターブされる時間の、総解析時間に対する比率ＰＭ−Ｓｉを掛け算し、それにより、今回の機械ｉのために部品を追加すると遊休時間が削減される時間の比率である削減遊休時間比率が決定される。
【０４２６】
続いて、Ｓ１２０５において、今回の機械ｉのためにスペースを追加すると今回の機械ｉの作用時間が増加する最大量である最大増加量が、その今回の機械ｉのための追加スペース数ΔＥｉにその今回の機械ｉの搬出時間間隔ＴＰＰｉを掛け算することによって決定される。
【０４２７】
その後、Ｓ１２０６において、今回の機械ｉのブロッキング時間分布関数を、それの全変域について積分することにより、平均ブロッキング時間が決定される。
【０４２８】
続いて、Ｓ１２０７において、今回の機械ｉのブロッキング時間分布関数を、０と、スペース追加に起因した作用時間の最大増加量ΔＥｉ・ＴＰＰｉとの間の変域について積分することにより、減少ブロッキング時間が決定される。
【０４２９】
その後、Ｓ１２０８において、減少ブロッキング時間と平均ブロッキング時間との比に、今回の機械ｉがブロックされる時間の、総解析時間に対する比率ＰＭ−Ｂｉを掛け算することにより、今回の機械ｉのためのスペースを追加すると遊休時間が削減される時間の比率である削減遊休時間比率が決定される。
【０４３０】
続いて、Ｓ１２０９において、スペース追加による削減遊休時間比率と、部品追加による削減遊休時間比率とを合計することにより、今回の機械ｉ全体としての削減遊休時間比率ＰΔＴｉが決定される。
【０４３１】
その後、Ｓ１２１０において、全機械について反復が終了したか否かが判定される。今回は、終了してはいないと仮定すれば、判定がＮＯとなり、次の機械ｉについてＳ１２０１に戻るが、今回は、終了したと仮定すれば、判定がＹＥＳとなる。
【０４３２】
以上で、この削減遊休時間比率推定ルーチンの一回の実行が終了し、その後、図５２のＳ４０１に移行する。
【０４３３】
このＳ４０１においては、今回の機械ｉにつき、削減遊休時間比率ＰΔＴｉにその今回の機械ｉのボトルネック確率ＰＭ−ＳＢＮｉを掛け算することにより、有効削減遊休時間比率ＰΔＴｉが決定される。
【０４３４】
その後、Ｓ４０２において、全機械について反復が終了したか否かが判定される。今回は、終了してはいないと仮定すれば、判定がＮＯとなり、次の機械ｉについてＳ４０１に移行する。これに対し、今回は、全機械について反復が終了したと仮定すれば、Ｓ４０２の判定がＹＥＳとなり、Ｓ４０３に移行する。
【０４３５】
このＳ４０３においては、決定された有効削減遊休時間比率ＰΔＴｉが全機械について合計され、これにより、システム全体の改善量ＰΔＴが決定される。
【０４３６】
続いて、Ｓ４０４において、改善されたシステムの搬出時間間隔ＴＢＰ’が、それの過去の搬出時間間隔ＴＢＰを改善量ＰΔＴによって減少させることによって推定される。
【０４３７】
その後、Ｓ４０５において、改善されたシステムの仕掛在庫数が、全バッファ内の平均部品数の合計値と、機械が部品を収容する時間の比率に相当するその機械内における平均部品数との和として推定される。
【０４３８】
続いて、Ｓ４０６において、改善されたシステムの総処理時間（メークスパン）が、その改善されたシステムの仕掛在庫数と、その改善されたシステムの搬出時間間隔ＴＢＰ’との積として推定される。
【０４３９】
以上で、このバッファ効果推定ルーチンの一回の実行が終了し、その後、図４５のＳ５００に移行する。
【０４４０】
このＳ５００においては、その推定された総処理時間の長さ等に基づき、システムが最適化されたか否かが判定される。最適化されてはいない場合には、判定がＮＯとなり、Ｓ３００に戻り、新たな追加バッファ容量が指定される。これに対し、今回は、システムが最適化されたと仮定すれば、Ｓ５００の判定がＹＥＳとなり、このバッファ予測プログラムの一回の実行が終了する。
【０４４１】
以上の説明から明らかなように、本実施形態においては、Ｓ２０１，Ｓ２０４，Ｓ６００およびＳ７００が前記（１）項における「第１の追跡工程」の一例を構成し、Ｓ８０４，Ｓ８０５，Ｓ８０９，Ｓ８１０，Ｓ９０４，Ｓ９０５，Ｓ９０９およびＳ９１０が同項における「原因特定工程」の一例を構成し、Ｓ６００およびＳ７００が同項における「第２の追跡工程」の一例を構成し、Ｓ６０１，Ｓ６０３，Ｓ６０６，Ｓ７０１，Ｓ７０３およびＳ７０６が同項における「経路特定工程」の一例を構成しているのである。
【０４４２】
さらに、本実施形態においては、Ｓ２０４，Ｓ６０８およびＳ７０８が前記（３）項における「向き設定工程」の一例を構成しているのである。
【０４４３】
さらに、本実施形態においては、Ｓ６０１およびＳ７０１が前記（４）項における「順位付け工程」の一例を構成し、Ｓ６０３，Ｓ６０６，Ｓ６０８，Ｓ７０３，Ｓ７０６およびＳ７０８が同項における「各原因経路を特定する工程」の一例を構成しているのである。
【０４４４】
さらに、本実施形態においては、Ｓ８００およびＳ９００が前記（５）項における「統計値計算工程」の一例を構成しているのである。
【０４４５】
さらに、本実施形態においては、Ｓ１０００が前記（６）項における「第１推定工程」の一例を構成し、Ｓ１１００が同項における「第２推定工程」の一例を構成し、Ｓ１２００が同項における「第３推定工程」の一例を構成し、Ｓ４０１ないしＳ４０６が同項における「第４推定工程」の一例を構成しているのである。
【０４４６】
さらに、本実施形態においては、Ｓ１１００が前記（７）項における「第２推定工程」の一例を構成しているのである。
【０４４７】
さらに、本実施形態においては、Ｓ１０００が前記（８）項における「第１推定工程」の一例を構成しているのである。
【０４４８】
さらに、本実施形態において、バッファ予測プログラムが前記（９）項に係る「プログラム」の一例を構成し、そのバッファ予測プログラムを予め記憶しているストレージ１４が前記（１０）項に係る「記録媒体」の一例を構成しているのである。
【０４４９】
次に、以上説明したバッファ予測方法を、それによる予測値と測定値との比較によって検証する。
【０４５０】
この検証においては、多種の予測モデルにつき、予測されたシステム処理能力の改善量が実際の改善量に単に比較される。全般的に見れば、予測値が必ずしも完全ではないが、通常、実用的な精度を有する。
【０４５１】
１  ８台の機械を有する直線的な生産システム
【０４５２】
これは、１から８まで番号が付された８台の機械を有する直線的な生産システムの単純な例である。各機械の間にはバッファ位置が存在し、図５６に示すように、ＡからＧまでの番号が付されている。主要なボトルネックは、９５パーセントの総ボトルネック確率を有する機械Ｍ４である。そのボトルネックに隣接する２個のバッファであるバッファＣとバッファＤが解析された。このシステムの性能は主に機械Ｍ４によって決まるため、このモデルの予測は非常に容易である。機械Ｍ４ははるかに大きなボトルネック確率を有するとともに、それら２つのバッファＣおよびＤであって解析されたものはそのボトルネックに隣接している。このことにより、予測モデルが非常に単純化されるとともに、その予測精度が非常に増加する。
【０４５３】
１．１  バッファＣ
【０４５４】
図５７は、このバッファ予測方法を用いて得られたシステム処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から１０まで変化するバッファＣのバッファサイズについての測定データとの比較を示している。測定データは、処理能力の９５パーセント信頼区間と共に示されている。全般的に見て、その予測値は非常に近似的に測定データに追従しており、ほとんどすべての予測値が測定データの９５パーセントの信頼区間内にある。平均総二乗誤差の平方根は０．２５ｓにすぎなかった。
【０４５５】
１．２  バッファＤ
【０４５６】
図５８は、このバッファ予測方法を用いて得られた処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から５まで変化するバッファＤのバッファサイズについての測定データとの比較を示している。短期間のシミュレーションであることとバッファの効果が小さいことに起因して、信頼区間は全体の改善と比較してやや大きい。それにもかかわらず、その予測値はほとんど常に９５パーセントの信頼区間内にあり、その予測値は非常に正確である。
【０４５７】
２  ７台の機械を有する分枝生産システム
【０４５８】
この例は、図４に示されている。バッファＡＭ２、ＢＭ３、ＡＭ３およびＡＭ４は詳細に調査された。バッファＢＭ５およびＡＭ５は簡単に調査された。
【０４５９】
２．１  バッファＡＭ２
【０４６０】
図５９は、このバッファ予測方法を用いて得られた処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から１０まで変化するバッファＡＭ２のバッファサイズについての測定データとの比較を示している。測定データは、処理能力の９５パーセント信頼区間と共に示されている。全般的に見て、その予測値は測定データに、その初期にあっては、非常によく追従しており、バッファサイズの大きな値については小さな誤差を有している。平均総二乗誤差の平方根は０．４０ｓであった。
【０４６１】
２．２  バッファＢＭ３
【０４６２】
図６０は、このバッファ予測方法を用いて得られた処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から１０まで変化するバッファＢＭ３のバッファサイズについての測定データとの比較を示している。測定データは、処理能力の９５パーセント信頼区間と共に示されている。その予測値は測定データに非常によく追従しており、ほとんどすべての予測値が測定データの９５パーセントの信頼区間内にある。平均総二乗誤差の平方根は０．２２ｓにすぎなかった。
【０４６３】
２．３  バッファＡＭ３
【０４６４】
図６１は、このバッファ予測方法を用いて得られた処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から１０まで変化するバッファＡＭ３のバッファサイズについての測定データとの比較を示している。測定データは、処理能力の９５パーセント信頼区間と共に示されている。その予測値は、バッファサイズの最初の少数の値については、測定データに非常によく追従している。平均総二乗誤差の平方根は０．７８ｓであった。
【０４６５】
２．４  バッファＡＭ４
【０４６６】
図６２は、このバッファ予測方法を用いて得られた処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から１０まで変化するバッファＡＭ４のバッファサイズについての測定データとの比較を示している。測定データは、処理能力の９５パーセント信頼区間と共に示されている。平均総二乗誤差の平方根は０．９６ｓであった。
【０４６７】
２．５  バッファＢＭ５
【０４６８】
図６３は、このバッファ予測方法を用いて得られた処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から１０まで変化するバッファＢＭ５のバッファサイズについての測定データとの比較を示している。しかし、このバッファＢＭ５は簡単にしか調査されておらず、バッファサイズの初期値の他には、５である場合についてしか検証が行われなかった。その予測値は、測定データの９５パーセント信頼区間内にあり、よって、妥当である。少ないデータ数のため、平均総二乗誤差の平方根は存在しない。
【０４６９】
２．６  バッファＡＭ５
【０４７０】
図６４は、このバッファ予測方法を用いて得られた処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から１０まで変化するバッファＡＭ５のバッファサイズについての測定データとの比較を示している。繰り返すが、このバッファＡＭ５も簡単にしか調査されておらず、バッファサイズの初期値の他には、５である場合についてしか検証が行われなかった。その予測値は、測定データの９５パーセント信頼区間内にあり、よって、妥当である。少ないデータ数のため、平均総二乗誤差の平方根は存在しない。
【０４７１】
２．７  まとめ
【０４７２】
この予測モデルは、たいていの事例について正確な結果を与えるように見える。バッファＡＭ２、ＢＭ３、ＢＭ５およびＡＭ５については非常に正確である。バッファＡＭ３における初期の傾向はよく予測された。
【０４７３】
それら実験に加えて、シミュレーションが１回、バッファの新たな組合せについて追加された。バッファＡＭ２、ＢＭ３、ＡＭ３、ＡＭ４、ＢＭ５およびＡＭ５はそれぞれ、２０のスペースというようにやや大きな容量を有するように設定された。そのシミュレーションにより、４８．８９ｓという搬出時間間隔ＴＢＰが、それぞれの側において０．１９ｓの信頼区間を有するように求められた。その予測値は、５０．６９ｓであり、決して的外れではない。それら間に約０．８ｓの差が存在するが、この誤差は、５５．７ｓという初期値に対して小さく、その傾向は非常によく予測される。平均総二乗誤差の総平方根は０．８２ｓであった。
【０４７４】
３  ２台の機械が分岐するシステム
【０４７５】
図６５に示すように、この例においては、２台の機械と３個のバッファとが設けられている。バッファＢＭ０にはタイプＡ部品とタイプＢ部品とが到着する。到着したタイプＡ部品ごとに２個のタイプＢ部品が存在し、それら部品は無限に供給される。すべてのタイプＡ部品はバッファＢＭ１を経由して機械Ｍ１に移行し、すべてのタイプＢ部品はバッファＢＭ２を経由して機械Ｍ２に移行する。機械Ｍ１は、９０パーセントの全ボトルネック確率を有する主要なボトルネックであり、機械Ｍ２は、３０パーセントの全ボトルネック確率を有する副次的なボトルネックである。
【０４７６】
重要な２個のバッファはバッファＢＭ１とＢＭ２である。これらバッファは、後続の機械をスターブさせ得るし、さらに、並列の経路内の機械をブロックさせ得る。例えば、満杯のバッファＢＭ１はバッファＢＭ０をブロックさせる可能性があり、したがって、ＢＭ２をスターブさせる可能性がある。もちろん、空のバッファＢＭ１は機械Ｍ１をスターブさせる。
【０４７７】
３．１  バッファＢＭ１
【０４７８】
図６６は、このバッファ予測方法を用いて得られた処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から１０まで変化するバッファＢＭ１のバッファサイズについての測定データとの比較を示している。測定データは、処理能力の９５パーセント信頼区間と共に示されている。全般的に見て、その予測値は測定データに、その初期にあっては、非常によく追従しており、バッファサイズの大きな値については小さな誤差を有している。平均総二乗誤差の平方根は０．４４ｓであった。
【０４７９】
３．２  バッファＢＭ２
【０４８０】
図６７は、このバッファ予測方法を用いて得られた処理能力（搬出時間間隔ＴＢＰ）の予測値と、スペースが０から１０まで変化するバッファＢＭ２のバッファサイズについての測定データとの比較を示している。測定データは、処理能力の９５パーセント信頼区間と共に示されている。平均総二乗誤差の平方根は０．５６ｓであった。
【０４８１】
３．３  まとめ
【０４８２】
この予測値は、バッファサイズの大きな変化量については必ずしも満足のいくものではない。それらデータについての平均二乗誤差の総平方根は０．５１ｓであった。上記データの値に加えて、別のシミュレーションが、５０スペースを有する非常に大きなバッファ２個と共に実行された。搬出時間間隔ＴＢＰの測定値は、３６．５０ｓ（９５パーセントの信頼区間についてプラス・マイナス０．１４ｓ）であったが、これは、予測値の大きな範囲の割に、実用的には３６．８１ｓという予測値に近い。
【０４８３】
４  総括
【０４８４】
全般的に見て、このバッファ予測方法は、バッファサイズの小さな変化量については実用的によく機能しており、直線的なシステムについては非常によく機能している。
【０４８５】
ところで、システムにおける各構成要素間にバッファのサイズを改善することが必要である場合、シミュレーションを用いた従来の試行錯誤的な探索的方法では、少なくともバッファの容量（サイズ）を変更するたびにシミュレーションのためのモデルの設定を変更し、再度シミュレーションを行うことが必要であった。そのため、そのモデルの変更作業にかかる時間と、シミュレーションの実行時間という２つの待ち時間が経過してからでないと、結果を得ることができなかった。
【０４８６】
また、多くの探索的方法の場合には、最適解が、探索結果として唯一誘導されることになるが、その最適解は、いずれのバッファが評価関数に対してどの程度の感度で効果をもたらすかについて示すものではない。そのため、設計者にその解、すなわち、バッファの改善策の妥当性を理解させることがしばしば困難であった。
【０４８７】
これに対し、本実施形態によれば、いずれのバッファをどのように改善すればよいのかを示すだけで、それによってもたらされる効果を瞬時に予測できる。したがって、設計者は、設計上の試行錯誤を、自らの思考過程を停止させることなく、繰り返すことが可能となる。
【０４８８】
以上、本発明の一実施形態を図面に基づいて詳細に説明したが、これは例示であり、前記［課題を解決するための手段］の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態に従うバッファ予測方法を概念的に表すフローチャートである。
【図２】図１のバッファ予測方法が実施される生産システムにおける各機械の状態が時間と共に変化する一例を説明するためのタイムチャートである。
【図３】図１のバッファ予測方法を実施するために利用することが必要であるシステムデータの一例を表形式で説明するための図である。
【図４】図１のバッファ予測方法が実施される生産システムの一例を概念的に表すフローチャートである。
【図５】図１のバッファ予測方法が用いるバッファ予測モデルを概略的に表すフローチャートである。
【図６】３台の機械と２個のバッファとを直線的なライン上に備えたシステムを示す図である。
【図７】分岐部を有するライン上に４台の機械を備えたシステムを示す図である。
【図８】リバース・ブロッキングが発生するシステムの一例を示す図である。
【図９】リバース・スタービングが発生するシステムの一例を示す図である。
【図１０】図１１および図１２における絵表示を解説するための図である。
【図１１】機械Ｍｉが取り得る５つのスタービング状況を説明するための図である。
【図１２】機械Ｍｉが取り得る５つのブロッキン状況を説明するための図である。
【図１３】図４の生産システムにおいて各機械にスタービングが発生する確率を示すグラフである。
【図１４】図４の生産システムにおいて各機械にブロッキングが発生する確率を示すグラフである。
【図１５】図４の生産システムにおいて機械Ｍ３にブロッキングとスタービングとが発生する原因を説明するための図である。
【図１６】図４の生産システムにおいて機械Ｍ５にブロッキングとスタービングとが発生する原因を説明するための図である。
【図１７】システムにおいてバッファが機械に与える効果についてのモード１ないしモード４を表形式で示す図である。
【図１８】上記モード１につき、ある機械がブロックされる時間的割合を表形式で示す図である。
【図１９】上記モード２につき、ある機械がスターブされる時間的割合を表形式で示す図である。
【図２０】上記モード３につき、ある機械がブロックされる時間的割合を表形式で示す図である。
【図２１】上記モード４につき、ある機械がスターブされる時間的割合を表形式で示す図である。
【図２２】有効バッファサイズに関連するいくつかの式を示す図である。
【図２３】図４の生産システムにおける、サイズが１であるバッファＡＭ３に部品が存在する確率を示すヒストグラムである。
【図２４】図４の生産システムにおける、サイズが１０であるバッファＡＭ３に部品が存在する確率を示すヒストグラムである。
【図２５】図４の生産システムの初期設定における各機械のボトルネック確率を表形式で示す図である。
【図２６】図４の生産システムにおけるバッファＡＭ１の下流側におけるボトルネック確率の配分を説明するための図である。
【図２７】図４の生産システムにおける各バッファの満杯率の予測値と測定値とを対比的に表形式で示す図である。
【図２８】図４の生産システムにつき、容量変更前の各バッファの満杯率の予測値と測定値とを対比的に示すグラフである。
【図２９】図４の生産システムにつき、各機械のボトルネック確率を、バッファ容量の変更前と変更後とについて対比的に表形式で示す図である。
【図３０】図４の生産システムにつき、各バッファの満杯率の予測値と測定値とを、バッファ容量の変更前と変更後とについて対比的に表形式で示す図である。
【図３１】図４の生産システムにつき、容量変更後の各バッファの満杯率の予測値と測定値とを対比的に示すグラフである。
【図３２】図４の生産システムにおける、サイズが５であるバッファＡＭ４に部品が存在する確率を示すヒストグラムである。
【図３３】図４の生産システムにおけるバッファＡＭ４の平均部品数と平均部品数比率とを示すグラフである。
【図３４】図４の生産システムにおける各バッファにスペースを追加すると機械Ｍ３のブロッキングが影響を受ける対総時間比率と対ブロッキング時間比率とを表形式で示す図である。
【図３５】バッファ内にスペースまたは部品を追加することによる効果比率に関連するいくつかの式を示す図である。
【図３６】隣接バッファ容量の代表値に関連するいくつかの式を示す図である。
【図３７】有効バッファ容量の合成値に関連するいくつかの式を示す図である。
【図３８】図４の生産システムにおいてバッファＢＭ３およびＢＭ５の容量を５に増加させた場合の各機械の代表的追加スペース数と代表的追加部品数とを表形式で示す図である。
【図３９】図４の生産システムにおける各機械の搬出部品間隔と作用時間比率と単位作用時間とを表形式で示す図である。
【図４０】図４の生産システムにつき、選択されたいくつかの機械の待ち時間についての累積分布関数の特性を示すグラフである。
【図４１】各機械についての削減待ち時間に関連する式を示す図である。
【図４２】全機械についての削減待ち時間に関連する式を示す図である。
【図４３】図４の生産システムにおける各機械の削減待ち時間比率と単独ボトルネック確率と有効削減量比率とを表形式で示す図である。
【図４４】前記バッファ予測方法を実施するために好適なシステム解析装置のハードウエア構成を示すブロック図である。
【図４５】図４４におけるバッファ予測プログラムの内容を概念的に表すフローチャートである。
【図４６】図４５におけるＳ１００を予測モデル作成ルーチンとして概念的に表すフローチャートである。
【図４７】図４５におけるＳ２００を原因解析ルーチンとして概念的に表すフローチャートである。
【図４８】
図４７におけるＳ６００を下流側対象物決定ルーチンとして概念的に表すフローチャートである。
【図４９】
図４７におけるＳ７００を上流側対象物決定ルーチンとして概念的に表すフローチャートである。
【図５０】
図４８および図４９におけるＳ８００を下流追跡ルーチンとして概念的に表すフローチャートである。
【図５１】
図４８および図４９におけるＳ９００を上流追跡ルーチンとして概念的に表すフローチャートである。
【図５２】
図４５におけるＳ４００をバッファ効果推定ルーチンとして概念的に表すフローチャートである。
【図５３】
図５２におけるＳ１０００を平均部品数推定ルーチンとして概念的に表すフローチャートである。
【図５４】
図５２におけるＳ１１００を追加部品／スペース数推定ルーチンとして概念的に表すフローチャートである。
【図５５】
図５２におけるＳ１２００を削減遊休時間比率推定ルーチンとして概念的に表すフローチャートである。
【図５６】
８台の機械を有する直線的な生産システムを示す図である。
【図５７】
図５６におけるバッファＣの搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図５８】
図５６におけるバッファＤの搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図５９】
図４におけるバッファＡＭ２の搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図６０】
図４におけるバッファＢＭ３の搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図６１】
図４におけるバッファＡＭ３の搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図６２】
図４におけるバッファＡＭ４の搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図６３】
図４におけるバッファＢＭ５の搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図６４】
図４におけるバッファＡＭ５の搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図６５】
２台の機械が分岐する生産システムを示す図である。
【図６６】
図６５におけるバッファＢＭ１の搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図６７】
図６５におけるバッファＢＭ２の搬出時間間隔ＴＢＰの予測値と測定値とを対比的に示すグラフである。
【図６８】
図７の生産システムにおける各機械の状態の経時的な変化の一例を示すタイムチャートである。
【図６９】
前記実施形態の説明に用いるいくつかの記号の定義を表形式で説明するための図である。
【図７０】
前記実施形態の説明に用いる別の記号の定義を表形式で説明するための図である。
【符号の説明】
１０  システム解析装置
１２  プロセシング・ユニット
１４  ストレージ
２０  コンピュータ
【図１】
2005055956.tif 000003
【図２】
2005055956.tif 000004
【図３】
2005055956.tif 000005
【図４】
2005055956.tif 000006
【図５】
2005055956.tif 000007
【図６】
2005055956.tif 000008
【図７】
2005055956.tif 000009
【図８】
2005055956.tif 000010
【図９】
2005055956.tif 000011
【図１０】
2005055956.tif 000012
【図１１】
2005055956.tif 000013
【図１２】
2005055956.tif 000014
【図１３】
2005055956.tif 000015
【図１４】
2005055956.tif 000016
【図１５】
2005055956.tif 000017
【図１６】
2005055956.tif 000018
【図１７】
2005055956.tif 000019
【図１８】
2005055956.tif 000020
【図１９】
2005055956.tif 000021
【図２０】
2005055956.tif 000022
【図２１】
2005055956.tif 000023
【図２２】
2005055956.tif 000024
【図２３】
2005055956.tif 000025
【図２４】
2005055956.tif 000026
【図２５】
2005055956.tif 000027
【図２６】
2005055956.tif 000028
【図２７】
2005055956.tif 000029
【図２８】
2005055956.tif 000030
【図２９】
2005055956.tif 000031
【図３０】
2005055956.tif 000032
【図３１】
2005055956.tif 000033
【図３２】
2005055956.tif 000034
【図３３】
2005055956.tif 000035
【図３４】
2005055956.tif 000036
【図３５】
2005055956.tif 000037
【図３６】
2005055956.tif 000038
【図３７】
2005055956.tif 000039
【図３８】
2005055956.tif 000040
【図３９】
2005055956.tif 000041
【図４０】
2005055956.tif 000042
【図４１】
2005055956.tif 000043
【図４２】
2005055956.tif 000044
【図４３】
2005055956.tif 000045
【図４４】
2005055956.tif 000046
【図４５】
2005055956.tif 000047
【図４６】
2005055956.tif 000048
【図４７】
2005055956.tif 000049
【図４８】
2005055956.tif 000050
【図４９】
2005055956.tif 000051
【図５０】
2005055956.tif 000052
【図５１】
2005055956.tif 000053
【図５２】
2005055956.tif 000054
【図５３】
2005055956.tif 000055
【図５４】
2005055956.tif 000056
【図５５】
2005055956.tif 000057
【図５６】
2005055956.tif 000058
【図５７】
2005055956.tif 000059
【図５８】
2005055956.tif 000060
【図５９】
2005055956.tif 000061
【図６０】
2005055956.tif 000062
【図６１】
2005055956.tif 000063
【図６２】
2005055956.tif 000064
【図６３】
2005055956.tif 000065
【図６４】
2005055956.tif 000066
【図６５】
2005055956.tif 000067
【図６６】
2005055956.tif 000068
【図６７】
2005055956.tif 000069
【図６８】
2005055956.tif 000070
【図６９】
2005055956.tif 000071
【図７０】
2005055956.tif 000072