シミュレーションエンジンの仕組みとアーキテクチャ
ProcessMind のディスクリートイベントシミュレーションエンジンがプロセスをどのようにモデル化するかを解説します。
現実のプロセスにはバラつきがあります。例えば、お客様対応が5分で終わる場合もあれば、25分かかることもあります。一日の注文数も50件の日もあれば120件の日も。こうした自然なバリエーションはビジネスプロセスの本質的な特徴です。
Fixed値(「すべての作業がきっちり10分」など)は非現実的なシミュレーションになりがちですが、分布を使えば変動を数理的に表現し実際のプロセス挙動を再現できます。
平均10分のタスクにおける2つのシナリオを比較:
| シナリオ | 分布 | シミュレーションへの影響 |
|---|---|---|
| 固定10分 | ばらつきなし | 非現実的なキュー、単調な流れ |
| Normal (mean=10, stdDev=3) | 現実的なばらつき | 自然なキュー、実際に近い遅延 |
後者の方が現実的です。タスクごとに時間は異なり、そのばらつきがキューや遅延を生み出します。
ProcessMind では、さまざまなばらつきを表現するために 8 種類の分布を提供しています。
| 分布 | 用途 | 主なパラメータ |
|---|---|---|
| 固定値 | 一定で変化しない値 | value |
| 正規分布 | 平均の周りで対称に変動 | mean, stdDev |
| 一様分布 | 指定範囲内で一様な確率 | min, max |
| 三角分布 | 範囲内に最も起こりやすい値がある場合 | min, mode, max |
| ポアソン分布 | ランダムな到着イベント | lambda, rateUnit |
| 対数正規分布 | 右に歪む(通常は短いが、ときどき長い) | mean, stdDev |
| ワイブル分布 | 信頼性・故障解析 | scale, shape |
| ベータ分布 | min と max の間で形状を柔軟に調整可能 | min, max, alpha, beta |
| ピアソンVI分布 | 複雑に偏ったパターン | alpha1, alpha2, beta |
もっともシンプルな分布で、常に同じ値を返します。
| パラメータ | 説明 |
|---|---|
| value | 返される一定の値 |
システム生成メールは必ず5秒で送信されます。
よく知られる「ベルカーブ」で、値は平均を中心に左右対称に分布し、中心から離れるにつれて確率が低下します。
| パラメータ | 説明 |
|---|---|
| mean | 平均値(曲線の中心) |
| stdDev | 標準偏差(値のばらつき度合い) |
データ入力taskの平均5分・標準偏差1分の場合:
指定範囲内は全ての値が等確率で発生するフラットな分布です。
| パラメータ | 説明 |
|---|---|
| min | 最小値 |
| max | 最大値 |
承認作業は2~8分の範囲で発生し、全ての値が等確率です。典型値の情報はありません。
最小・最大・最頻値(mode)の3点で構成されるシンプルな三角形状の分布です。
| パラメータ | 説明 |
|---|---|
| min | 最小値 |
| mode | 最頻値(三角形ピーク) |
| max | 最大値 |
請求書確認作業:
多くは5分前後ですが、複雑な請求書ほど15分寄りになります。
Expert Estimation
Triangular分布は現場の見積もりに最適です。「最短は?普通は?最長は?」と聞けばmin, mode, maxがすぐに得られます。
一定期間で発生するevent数をモデル化します。到着プロセスのモデリングに最適です。
| パラメータ | 説明 |
|---|---|
| lambda | eventの平均発生率 |
| rateUnit | レートの時間単位(perHour, perDay, perWeek, perMonth, perYear) |
Lambda=20, rateUnit=perDayは1日あたり約20件のcase到着をモデル化します。日によって15件や25件の日もあり(自然なバラつきです)。
右側に裾が伸び、多くは小さい値ですが、ときどき大きな値が発生します。値の対数がNormal分布に従います。
| パラメータ | 説明 |
|---|---|
| mean | 基礎となるNormal分布の平均値 |
| stdDev | 基礎となるNormal分布の標準偏差 |
テクニカルサポートのチケット:
Lognormal分布でこの「たいてい早いがたまに長い」ケースを表せます。
信頼性工学や障害分析でよく使われる柔軟な分布です。
| パラメータ | 説明 |
|---|---|
| scale | スケールパラメータ(代表的寿命) |
| shape | 形状パラメータ(分布の形状の決定要素) |
| 形状値 | 分布の挙動 |
|---|---|
| shape below 1 | 故障率が低下(初期故障) |
| shape = 1 | 故障率が一定(指数分布) |
| shape above 1 | 故障率が上昇(摩耗故障) |
最小値と最大値の間で値を生成し、2 つのパラメータで形状を調整できる柔軟な分布です。この実装は一般化ベータ分布(4 パラメータ)です。
| パラメータ | 説明 |
|---|---|
| min | 取りうる最小値 |
| max | 取りうる最大値 |
| alpha | 第1の形状パラメータ(α > 0) |
| beta | 第2の形状パラメータ(β > 0) |
| パラメータ | 分布の挙動 |
|---|---|
| α = 1, β = 1 | [min, max] 上で一様(フラット) |
| α = β | 中点を中心に対称な山型 |
| α < β | 左に歪む(min 付近に集まる) |
| α > β | 右に歪む(max 付近に集まる) |
| α < 1, β < 1 | U字型(両端に集まる) |
レビュータスクの所要時間は 2〜15 分で、多くは短めで終わります。この場合は Beta(min=2, max=15, α=2, β=5) を使います。平均は 2 + 13 × 2/7 ≈ 5.7 分で、値は下限側に集まりやすく、2 を下回らず 15 を超えることもありません。
単純なモデルでは表現できない複雑な歪みパターン向けの高度な分布です。
| パラメータ | 説明 |
|---|---|
| alpha1 | 第一の形状パラメータ |
| alpha2 | 第二の形状パラメータ |
| beta | スケールパラメータ |
| 状況 | 推奨する分布 |
|---|---|
| 平均の周りで対称に変動する | 正規分布 |
| 範囲(min〜max)のみ分かっている | 一様分布 |
| 最も起こりやすい値・最小・最大が分かっている | 三角分布 |
| たいていは速いが、ときどき非常に長い | 対数正規分布 |
| 時間が常に一定(まれ) | 固定値 |
| 比率や確率(0〜1) | ベータ分布 |
| 状況 | 推奨分布 |
|---|---|
| ランダム・独立で到着 | Poisson |
| 一定間隔で到着 | Fixed |
まずはNormal分布やTriangular分布から始めましょう。わかりやすく、パラメータ設定も簡単です。必要な場合のみ複雑な分布を使いましょう。
専門家の推定は非常に参考になります:
履歴データがある場合:
現実のプロセスでは外れ値が発生することも多いです。LognormalやWeibull分布はNormalやTriangularより外れ値をうまく表現できます。
当サイトでは、閲覧体験の向上、コンテンツのパーソナライズ、トラフィックの分析のためにCookieを使用しています。「すべて許可」をクリックすると、Cookieの使用に同意いただいたことになります。