統計分布の徹底ガイド(シミュレーション対応)
処理時間や到着率などシミュレーションのバラつきを統計分布でモデリング。
ProcessMindは**discrete event simulation (DES)**エンジンでプロセスをモデル化します。この仕組みを理解することで、シミュレーション設定や結果の解釈がより正確に行えます。
Discrete Event Simulationでは、システム状態は特定のeventのみで変化します。クロックはevent間でジャンプし、eventの間は変化しません。これが業務プロセスに最適な理由:
連続シミュレーション(物理など)と異なり、業務プロセスでは細かい瞬間を再現せず、event単位で変化します。例えばローン申請は”submitted”から”approved”へevent発生時に切り替わります。
シミュレーションエンジンは、シンプルながら強力なループで処理します:
1. 初期化: 開始条件をセット
2. 次のイベント取得: プライオリティキューから最も早いイベントを取得
3. 時刻前進: シミュレーションクロックをそのイベント時刻まで進める
4. イベント処理: イベント(アクティビティ開始・完了など)を処理
5. 新イベント登録: 処理結果に応じて新しいイベントを追加
6. 繰り返し: 終了時刻または最大イベント数(2,000,000)まで繰り返す
7. 出力: 完成したevent logを出力 シミュレーションでは、以下の種類のイベントを生成・処理します:
| イベント種別 | 内容 |
|---|---|
| Case Arrival | 新しいcaseがStart Eventでプロセス開始 |
| Activity Start | caseがアクティビティを開始(リソース割当) |
| Activity Complete | caseがアクティビティを完了(リソース解放) |
| Gateway Evaluation | 分岐点で進行パス決定 |
| Case Complete | caseがEnd Eventに到達 |
ケースはBPMNモデルのStart Eventからシミュレーションに入ります。到着パターンはcase generation distributionでコントロールされます。
標準では、ケースはPoisson distributionで1時間に1件到着します。ビジネスプロセスでよく見られる不規則な間隔を再現します。
Distributions で解説している分布を使って、さまざまな到着パターンを設定できます。
caseがエレメントを完了すると、すぐにアウトゴーイングのSequence Flowを進みます。1本のみなら自動で進みます。
Gatewayはcaseの分岐や結合を制御します:
| Gateway Type | 動作説明 |
|---|---|
| XOR (Exclusive) | 確率重みづけで1つだけランダム分岐。設定は自動で重み付け・正規化されます。 |
| AND (Parallel) | すべて同時分岐。caseはパラレルなトークンに分割します。 |
| OR (Inclusive) | 1つ以上選択されるランダム分岐。 |
| Event-Based | 利用可能なeventの中からランダム選択。 |
XOR gatewayではアウトゴーイングごとに確率(相対重み)を設定します:
caseがタスク(アクティビティ)に到達すると、エンジンは次の手順で処理します:
必要なリソースにキャパシティがあるかチェックします。
リソースがなければ、caseは待機キューへ。ProcessMindは**FIFO (First In, First Out)**で到着順に対応します。
リソースが空き次第、必要分をこのcaseに割り当てます。
エンジンは設定された処理時間分布から値を取得し、アクティビティの所要時間を決定します。
current_time + processing_timeで完了イベントがイベントキューに追加されます。
完了イベント時に、リソースは他のcase用にプールへ戻ります。
すべてのアクティビティに1秒の最小durationがあります。処理時間分布が0でも必ず1秒かかります。
アクティビティにはskip chance(0~100%)を設定できます。スキップされると:
現実の業務で一部工程が省略される場面をシミュレートできます。
シミュレーションは仮想クロックでevent間を区切り、時間をジャンプさせます。次のeventが10:35で現在10:30ならクロックは10:35にジャンプします。
すべての時間は内部で統一単位に変換されます。指定可能な単位:
シミュレーション時間に応じて値を変更可能です。例:
設定方法はPeriodicity をご確認ください。
各リソースにはcapacity(同時に扱えるcase数)が設定されています。
リソース需要がキャパシティを超えた場合、caseは待機キューに入ります。ProcessMindは**FIFO (First In, First Out)**方式で到着順に処理します。
シミュレーション実行中、各アクティビティの実行が出力event logに記録されます:
| 項目 | 説明 |
|---|---|
| Case ID | ケースごとのユニークID(連番で生成) |
| Activity | BPMNエレメントの名称 |
| Start Timestamp | アクティビティ開始時刻 |
| Complete Timestamp | アクティビティ終了時刻 |
| Resource | 実行したリソース名 |
| Attributes | その時点でのcase属性 |
このログは標準的なevent logフォーマットに準拠し、ProcessMindのどのツールでも分析可能です。
| 制限 | 値 | 目的 |
|---|---|---|
| Max Events | 2,000,000 | シミュレーションの暴走防止 |
| Min Duration | 1 second | タイムスタンプの一意性を保証 |
まず小さく始めましょう
新規シミュレーションを設定する場合は、数日や数週間など短期間から設定を確認してください。挙動が正しいことが確認できたら、期間を拡大しましょう。
当サイトでは、閲覧体験の向上、コンテンツのパーソナライズ、トラフィックの分析のためにCookieを使用しています。「すべて許可」をクリックすると、Cookieの使用に同意いただいたことになります。