周期性と時間変動パラメータの設定
周期設定とは?
現実のプロセスは常に同じ運用ではありません。カスタマーサービスはビジネスアワー中にコール数が増え、製造ではシフトごとに人員が異なり、小売でも季節ごとにピークがあります。
周期設定 を使えば、特定のシミュレーションルールを「いつ」適用するか柔軟に指定できます。グローバルな値ではなく、時間帯や曜日などで個別にパラメータを設定できます。
- 平日と週末
- 朝番と夜番シフト
- 繁忙期と閑散期
- ビジネスアワーと時間外
こうした管理により、シミュレーションをより現実的な動作にできます。
なぜ周期設定が重要か
カスタマー到着件数のシンプルな例を考えてみましょう。
周期設定なしの場合:
- 1時間あたり10件、24時間365日同じ
周期設定ありの場合:
- 平日9:00〜18:00は1時間あたり25件
- 平日18:00〜21:00は1時間あたり15件
- 週末は1時間あたり5件
- 夜間は1時間あたり2件
後者のようにリアルな需要パターンを再現すると、待ち行列・リソース利用・処理量に影響を反映できます。
利用可能な周期タイプ
ProcessMindは9種類の周期タイプをサポートし、それぞれのタイプでルールの適用タイミングを定義できます。
| タイプ | パラメータ | 説明 |
|---|---|---|
| Always | (なし) | 常に適用されるルール、変動なし |
| Default | (なし) | 他の時間ベースのルールが該当しない場合のフォールバック |
| Fixed Period | startDateTime, endDateTime | 1回だけの期間(繰り返しなし) |
| Each Day | startTime, endTime | 毎日同じ時間で適用 |
| Each Weekday | startTime, endTime | 月曜〜金曜のみ適用 |
| Each Weekend Day | startTime, endTime | 土曜・日曜のみ適用 |
| Each Week | startDay, startTime, endDay, endTime | 週ごとに複数日にまたがる繰り返し |
| Each Month | startDayOfMonth, startTime, endDayOfMonth, endTime | 月ごとの繰り返しパターン |
| Each Year | startMonth, startDayOfMonth, startTime, endMonth, endDayOfMonth, endTime | 年次・季節的なパターン |
周期タイプの詳細
Always
最もシンプルな選択肢で、常にルールが変動なく適用されます。
活用例: パラメータが時間で変動しない場合や、ベースラインのシミュレーション作成時に推奨です。
Default
他の時間ベースのルールが該当しない場合のフォールバックになります。
活用例: 特定の時間のみ例外を設定し、それ以外はデフォルト値を使いたい場合に便利です。
Defaultルールは必ず追加
複数の周期ルールを設定する際は、どの時間帯にも漏れがないよう必ずDefaultルールを含めてください。該当ルールがなくて想定外の動作になるのを防げます。
Each Day
1週間すべて同じ時間帯にルールが適用されます。
パラメータ:
startTime: 開始時刻(例:09:00)endTime: 終了時刻(例:17:00)
例: 毎日、土日も含めた09:00~17:00がビジネスアワーの場合
Each Weekday
月曜から金曜だけ指定時間帯にルールが適用されます。
パラメータ:
startTime: 開始時刻endTime: 終了時刻
例: 平日は08:00~18:00でカスタマーサービス、週末は別ルール
Each Weekend Day
土曜・日曜のみ特定時間帯に適用できます。
パラメータ:
startTime: 開始時刻endTime: 終了時刻
例: 週末は10:00〜16:00でサポート時間短縮
Each Week
週の中で複数日をまたぐ時間範囲を設定できます。1日単位の分割では表せないパターンにも適しています。
パラメータ:
startDay: 開始曜日(例:水曜日)startTime: 開始時刻endDay: 終了曜日endTime: 終了時刻
例: 水曜14:00~金曜12:00を高負荷期間に設定
Each Month
毎月の特定期間にルールを適用します。
パラメータ:
startDayOfMonth: 何日目から開始(1-31)startTime: 開始日の時刻endDayOfMonth: 何日目まで適用endTime: 終了日の時刻
例: 25日8:00~月末23:59まで月末処理を強化
Each Year
毎年決まった期間でルールを適用できます。
パラメータ:
startMonth: 開始月startDayOfMonth: 開始月の日付startTime: 開始時刻endMonth: 終了月endDayOfMonth: 終了月の日付endTime: 終了時刻
例: 11月15日0:00~12月31日23:59を小売のホリデーピークとして設定
固定期間
このルールは特定の日付と時間範囲に適用されます(繰り返しではありません)。一度きりのイベントに使用します。
パラメータ:
startDateTime: 開始日時endDateTime: 終了日時
例: 2025年3月15日〜22日のプロダクトローンチ週、特別対応ルールを適用します。
複数ルールの組み合わせ
周期設定の本当の強みは、複数のルールを組み合わせて使うことです。異なる時間帯ごとにパラメータを設定でき、シミュレーション中に自動で適用されるルールが判定されます。
例:複数シフトの処理時間
シフトごとに処理時間が異なる製造プロセスの例です:
| ルール名 | 周期 | 処理時間分布 |
|---|---|---|
| Day Shift | 平日 08:00-16:00 | Normal(30 min, 5 min) |
| Evening Shift | 平日 16:00-00:00 | Normal(45 min, 10 min) |
| Weekend Crew | 週末 10:00-18:00 | Normal(60 min, 15 min) |
| Overnight/Default | デフォルト | Normal(90 min, 20 min) |
Day Shiftはスタッフが多く最速です。Evening Shiftは監督が減るためやや遅くなります。週末は最小人数体制で最も遅いです。デフォルトは夜間の時間帯をカバーします。
ルールの優先順位
複数のルールが一致する場合:
- ルールは設定に記載された順に評価されます
- 最初に一致したルールが適用されます(上のものが優先)
- デフォルトルールは他の条件が該当しない場合のみ適用されます
ポイント: より具体的なルールを一般的なルールより上に配置しましょう。平日と土日で異なる動作が必要な場合は「Each Weekday」を「Each Day」より上に配置してください。
周期設定を使う項目
周期設定は多くのシミュレーションパラメータに利用できます:
| パラメータ | 周期設定のユースケース |
|---|---|
| Case Arrivals | 業務時間は到着件数が多く、夜間は少ない |
| Processing Times | フルスタッフ時は処理が早く、時間外は遅い |
| Resource Capacity | ピーク時は人員増強、夜間は最少体制 |
| Skip Chances | 週末や祝日で異なるルーティング |
| Gateway Probabilities | 時間帯による意思決定パターンの変化 |
総合例:カスタマーサポートセンター
複数パラメータにまたがる周期設定の活用例を、カスタマーサポートのシミュレーションで紹介します。
到着率の設定例
| 周期 | 到着率 |
|---|---|
| Each Weekday 09:00-18:00 | Poisson(1時間あたり50件) |
| Each Weekday 18:00-22:00 | Poisson(1時間あたり20件) |
| Each Weekend Day 10:00-16:00 | Poisson(1時間あたり15件) |
| Default | Poisson(1時間あたり5件) |
ビジネス時間帯は件数が多く、夜間は中程度、週末・深夜は少なめという現実的なパターンを再現できます。
処理時間の設定
| 周期 | 分布 |
|---|---|
| 平日 09:00-17:00 | Triangular(10, 20, 45 min) |
| 週末 | Triangular(20, 40, 90 min) |
| デフォルト | Triangular(30, 60, 120 min) |
ピーク時間帯は最速、週末や時間外は遅くなります。
スタッフ体制の設定
| 周期 | 稼働エージェント数 |
|---|---|
| 平日 09:00-18:00 | 10名 |
| 平日 18:00-22:00 | 4名 |
| 週末 10:00-16:00 | 3名 |
| デフォルト | 1名 |
営業時間中はフル体制、それ以外は必要最低限で対応します。
仕組みの例
火曜日10:00の場合:
- 到着は1時間あたり50件
- 処理は高速な三角分布を使用
- 10名のエージェントが稼働
火曜日20:00の場合:
- 到着は1時間あたり20件に減少
- 処理はデフォルト(遅い)分布を使用
- 4名のエージェントのみ稼働
土曜日14:00の場合:
- 到着は1時間あたり15件
- 処理は週末分布を使用
- 3名のエージェントが稼働
ベストプラクティス
1. まずDefaultから設定
最初にDefaultルールを必ず設定しましょう。その他ルールで対応できない時間帯もカバーできます。
2. ざっくり→詳細の順で設定
まず平日/週末のような大枠から始めて、必要に応じてシフトなど細かなルールを追加しましょう。
3. まずはシンプルに
最初は平日/週末などの大まかな区分けから始め、あとで時間帯や季節ごとの細かい条件も追加できます。
4. データでパターンを設計
可能なら履歴データを分析し、(到着件数・処理時間・曜日・時間帯別の人員など)実際の傾向をもとに設計しましょう。
5. 境界ケースのテスト
シフト切替(例:17:00)・深夜・月末など、端のタイミングでも正しくルールが適用されるか確かめてください。
6. ルールは必ず記録
複雑な周期設定は後から分かりにくくなるため、それぞれのルールの目的や業務背景も記録しておきましょう。