プロセスのMonte Carloシミュレーション:できることと、いつ誤るか
Monte Carloシミュレーションは、同じプロセスを何百回も、実行ごとにランダムに選んだ処理時間や数量で実行し、結果の分布を評価します。「6,4日」という単一のリードタイムの代わりに、例えばP10が4,1日からP90が11,8日までといった幅を得られ、現場で有効な判断ができます。ただし、試行回数が十分でない場合、明らかに片寄った所要時間に対して対称的な分布を選んだ場合、入力間の依存関係を無視した場合、またはウォームアップ期間まで評価に含めてしまった場合には誤った結果になります。
Inhaltsverzeichnis
「Monte Carlo」と聞くと大げさに聞こえますが、実際は非常に単純で、それが良い点です。体系的なサイコロ振りだと考えてください。
手法を四文で説明すると
ある工程が10分かかると指定するのではなく、5〜20分、通常は8分と指定します。コンピュータは1つの処理をプロセスに通し、各工程でその範囲からランダムに時間を引きます。それを1日分の処理で何百回も繰り返します。結果として得られるのは単一の通過時間ではなく、何百もの通過時間から成る分布です。
それだけです。宇宙のモデルでも人工知能でもありません。ただ世界が厳密であるふりをしない姿勢です。
なぜプロセスに必要か
よくある反論はこうです。平均値が分かっているなら平均値で計算すれば十分ではないか、というものです。
プロセスは非線形だからです。すぐに分かる例を二つ示します。
待ち行列。 ある工程の稼働率が85%だと、その工程の処理時間の5.7倍の待ち時間を生みます;95%だと19倍になります。日中に稼働率が70%から100%の間で変動するとき、これらの待ち時間の平均は「中央値の稼働率での待ち時間」にはなりません。はるかに大きくなります。(計算方法はEngpass berechnenにあります。)
長い方が勝つ。 二つの並列分岐があり両方が完了する必要がある場合、全体の所要時間は二つの最大値であり、最大値の期待値は期待値の最大値より大きくなります。平均値で計画を立てたプロジェクト計画は系統的に楽観的すぎます。
この二つはジェンセンの不等式、一般には「Flaw of Averages」として知られるものです。Monte Carloは平均を取るのではなく、計算してから評価することでこれを回避します。
入力するもの
| 指定項目 | 必要な理由 | 欠けているとどうなるか |
|---|---|---|
| 到着率と分布 | 負荷を生む | 待ち行列が常に発生しないか常に発生する |
| 各工程の所要時間を範囲で | 待ち時間の主要因 | 結果が系統的に良すぎる |
| 役割またはプールごとの能力 | 限界を作る | 稼働率も待ち行列も生じない |
| 分岐比率 | 量を振り分ける | 後続工程への量が間違う |
| カレンダーとシフト | 待ち時間を現実的にする | 待ち時間が3分の1ほど低く出る |
最もよく欠けるのは最後の項目です。カレンダーがないと、金曜16:50に到着した処理は10分だけ待ちますが、カレンダーがあれば月曜まで待ちます。
何回回すべきか?
必ず出る質問で答えは満足できないものです:結果が動かなくなるまで回してください。
実務上の目安:
- 100回でどの工程がボトルネックかは分かります。順位は数字が安定する前に安定します。
- 500〜1000回は信頼できるパーセンタイル、特にP90のために必要です。P90は稀な事象に依存します。
- 5000回超はこの規模のプロセスではほとんど追加の洞察を与えず、計算時間だけ増えます。
自身で確かめる方法:同じモデルを異なるシードで二回走らせてください。結果が明らかに異なれば回数が不足しています。
どの分布を使うか?
ここで多くの人が二つ目の誤りを犯します。処理時間はほとんど対称ではありません:非常に速くなる上限はあるが、極端に遅くなることはあり得ます。分布は右側に長い裾を持ちます。
- 三角分布(最小、最もありそうな値、最大)は多くの事務プロセスで十分で、ワークショップで三つの値を聞き出せる利点があります。
- 対数正規分布は長い裾をより良く表現し、外れ値がプロセスを支配する場合の正しい選択です。
- 正規分布はほとんどの場合不適切です。対称であり、負の時間を許してしまいます。
経験則:迷ったら三角分布を選び、結果を幅として示してください。分布の選択はパーセンタイルを動かしますが、どの工程がボトルネックかを変えることはほとんどありません。
結果を無意味にする四つの誤り
1. 回数不足。 二回の実行で異なる答えが出る場合に気づきます。二分で確認できます。
2. ねじれた所要時間に対して対称分布を使う。 これによりP90が明らかに低く出ます。つまり計画に使うべき値が低く見積もられます。
3. 依存性を無視する。 複雑な案件が各工程で常に長くかかるなら、所要時間は相関します。各所要時間を独立にランダム化するモデルはこの効果を平均化して分散を過小評価します。対策:処理タイプを分けて個別にモデル化し、すべてに対してただ一つの幅広い分布を使わないこと。
4. ウォームアップ期間を評価に含める。 ランの初めはシステムが空で待ち行列がなく、通過時間が短いです。この期間を含めると、実稼働では存在しない状態で結果が希釈されます。
結果の読み方
Monte Carloの評価は一つの数値ではなく最低でも三つを返します:
- P10: 好ましい場合。約10%の期間でこれだけ良くなります。
- P50: 中央値。半分のケースがこれ未満です。
- P90: 悪い場合。容量計画はここで行ってください、平均値ではなく。
これらを再び一つの数値にしてしまうなら、手間は無駄でした。幅そのものが結果です。読み方とP50が誤解を招く理由はP10, P50, P90 richtig lesenにあります。
Monte Carloができないこと
入力が悪ければ結果は良くなりません。量が推測なら結果も推測に過ぎません。ただ小数点以下まで付くという点が罠です:データの裏付けがないのに信頼を生んでしまいます。
だから各評価には三つの記載が必要です:どの入力が測定でどれが推定か、何回走らせたか、どのシードを使ったか。これがなければ結果は追試不能です。追試不能な結果は、疑わしければ無効です。
FlowVisualはちょうどその通りに計算し、シードとラン回数をマニュアルに印刷します。細かさのためではなく、再現できない数値は意思決定資料に入ってはならないからです。
よくある質問
プロセスモデルにはMonte Carloランを何回実行する必要がありますか?
どの工程がボトルネックかを問うには、およそ100回の実行で十分です。順位付けは早い段階で安定します。信頼できるパーセンタイル、特にP90を得るには500回から1000回が必要です。十分だったかどうかは、別の開始値で同じモデルを再度実行して確認してください。結果が大きく異なる場合は、実行回数が不足していたことになります。
Welche Verteilung eignet sich für Bearbeitungsdauern?
多くの管理プロセスでは最小値、最も起こりやすい値、最大値からなる三角分布を用います。これら三つの値はワークショップで確認できます。外れ値がプロセスを支配する場合は対数正規分布の方が適切です。正規分布はほぼ常に誤りです、対称で負の継続時間を許してしまうためです。
Monte Carloは離散事象シミュレーションと同じものですか?
いいえ、両者は補完関係にあります。ディスクリートイベントシミュレーションは単一の実行を行います:処理が到着し、待機し、処理されます。Monte Carloは、この実行を新たに引かれた乱数で何度も繰り返し、結果の分布を解析することを意味します。
Warum muss ein Seed dokumentiert werden?
同じ初期値と同じ試行回数なら誰でも同じ数値を得られ、差が変更された仮定に起因するのか単なる偶然なのかを検証できるためです。再現できない結果は意思決定資料にはふさわしくありません。
ご自身のプロセスで計算してみてください。
FlowVisualはこの記事の数値を、お客様の処理量、お客様の処理能力、お客様の利益幅を用いて実行されるモデルにします。
Guide: seven steps to the number- 手法
P10、P50、P90を正しく読む:平均値が誤解を招くところ
パーセンタイルは統計学者の虚栄ではなく、変動する結果を示す唯一の正直な方法です。三つの数値、三つの目的。そして、意思決定資料によく含まれる三つの読み間違いがあります。
読書 - 手法
業務プロセスのための離散事象シミュレーション
離散事象シミュレーションは時間刻みではなくイベントからイベントへ跳びます。なぜそうするかを理解すれば、多くのモデルが失敗する三つの判断を正しく下せます:分布、ウォームアップ期間、実行回数。
読書 - 手法
業務プロセスをシミュレーションする:実践的なガイド
シミュレーションは企業では統計プロジェクトではなく、意思決定ツールです。このガイドは、どのプロセスに取り組む価値があるか、最終的に文書として何が残るか、最初の取り組みがどのようなものか、そして多くの取り組みを失敗させる四つの誤りを示します。
読書