業務プロセスや製造プロセスを、フローチャートやVSM(Value Stream Map)を使ってモデル化することは、プロセス改善の現場では普通に行われています。それはフローチャートやVSMが、視覚的にプロセスを捉えるうえで大変優れているだけではなく、フローチャートではループ(やり直し)や分岐(判断)、合流(待ち)を容易に見つけることができたり、VSMでは作業時間(サイクルタイム)や待ち時間などを容易に洗い出すことができるためで、それらの削減が実際のプロセス改善に役立つからです。
しかしフローチャートやVSMは静的なモデルのため、動的な問題を考えるときには不便を感じます。不便なところの一つ目は、シミュレーションが難しいこと、二つ目はプロセスがイベント(入力)の変化にどう対応するのか、動的に掴めないことです。そのため時々、また必要に応じて、プロセスをソフトウェアを使ってモデル化することがあります。
代表的なソフトウェアは MATLAB/Simulink のライブラリである SimEvents、または RockwellAutomation の Arena です。僕の同僚は Arena のファンですが、僕は SimEvents が好きです。両ソフトウェアとも大体同じことができるので、ここでは両ソフトウェアの違いについて論じることはせず、単にソフトウェアとしておきます。
業務や製造のプロセスをソフトウェアで表現することの利点は何といっても、プロセスの属性となるパラメータを変えた時、プロセスがどのように変化するのかをシミュレーションできることです。つまりプロセスの実験ができることが最大の利点です。実際の業務や製造プロセスを実験で用いることはほぼ不可能ですし、仮にできたとしても、時間やコストが莫大にかかることでしょう。シミュレーションを使えば、安く、一瞬のうちに実験が行えます。僕はこれをプロセスのDOE(Design of Experiments)と呼んでいます。
リーンシックスシグマで一般に使われるDOEと同じように、小さなプロセスならシミュレーションを使うことでDOEができます。まずパラメータのスクリーニング(スクリーニングDOE)を行い、多数のパラメータの中から、プロセスに最も影響を及ぼすパラメータだけを選びます。次に選択したパラメータの値や組み合わせを統計的に変化させて、数値モデルを作ります(モデリングDOE)。プロセスを数値モデルに置き換えることができれば、後の最適化は簡単です。
数値モデルがあれば、パラメータ値が変化したときの、プロセスの動作が予想できるようにもなりますし、モンテカルロ・シミュレーションを使えば、確率分布も把握できます。
何らかの入力があった時に始めてプロセスは動き出します。どのくらいの頻度の入力をそのプロセスが処理できるかは、プロセスの処理能力で違ってきます。もし入力の頻度がプロセスの処理能力を超えると、プロセスの内部で待ち時間が増えたり、WIP(Work in Process)が増えたりします。シミュレーションを用いれば、TOC (Theory of Constraints) のテクニックを使って、業務や製造プロセスの処理能力を測ったり、許容量を超えた場合の問題個所の洗い出しを行うことができます。
業務や製造プロセスの改善は、早く改善策を実施することが目的であって、シミュレーションを行うことが目的ではないと思われるかもしれません。またシミュレーションが現実を正しく...