このページの内容

周期性と時間変動パラメータの設定

繰り返し(周期性)とは?

実際の業務プロセスは常に同じ運用ではありません。カスタマーサービスは営業時間中に問い合わせが増え、工場はシフトや人員で動きが変わります。小売では季節ごとに需要のピーク時期があります。

周期性(周期性)は、特定のシミュレーションルールをいつ適用するかを設定できます。グローバルな値ではなく、期間ごとに異なるパラメータを細かく設定できます。

  • 平日と週末で切り替え
  • 朝シフトと夜シフト
  • 繁忙期と閑散期
  • 営業時間内・時間外など

これにより、シミュレーションがさまざまな時間帯や状況に合わせ現実的に動きます。


なぜ周期設定が重要か

カスタマー到着件数のシンプルな例を考えてみましょう。

周期設定なしの場合:

  • 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 PeriodstartDateTime, endDateTime1回だけの期間(繰り返しなし)
Each DaystartTime, endTime毎日同じ時間で適用
Each WeekdaystartTime, endTime月曜〜金曜のみ適用
Each Weekend DaystartTime, endTime土曜・日曜のみ適用
Each WeekstartDay, startTime, endDay, endTime週ごとに複数日にまたがる繰り返し
Each MonthstartDayOfMonth, startTime, endDayOfMonth, endTime月ごとの繰り返しパターン
Each YearstartMonth, startDayOfMonth, startTime, endMonth, endDayOfMonth, endTime年次・季節的なパターン

周期タイプの詳細

Always

最もシンプルな選択肢で、常にルールが変動なく適用されます。

活用例: パラメータが時間で変動しない場合や、ベースラインのシミュレーション作成時に推奨です。


Default

他の時間ベースのルールが該当しない場合のフォールバックになります。

活用例: 特定の時間のみ例外を設定し、それ以外はデフォルト値を使いたい場合に便利です。

Defaultルールは必ず追加

複数の周期ルールを設定する際は、どの時間帯にも漏れがないよう必ずDefaultルールを含めてください。該当ルールがなくて想定外の動作になるのを防げます。


毎日

このルールは毎日の特定時間に適用されます。

パラメータ:

  • startTime:ルール開始時刻(例:09:00)
  • endTime:ルール終了時刻(例:17:00)

例: 09:00~17:00の営業時間が週末も含めて毎日適用されます。


平日のみ

このルールは月曜から金曜までの特定時間に適用されます。

パラメータ:

  • startTime:開始時刻
  • endTime:終了時刻

例: カスタマーサービスは平日8:00~18:00で稼働し、週末は別ルールとします。


週末のみ

このルールは土日限定の特定時間帯に適用されます。

パラメータ:

  • startTime:開始時刻
  • endTime:終了時刻

例: 週末はサポート対応を10:00~16:00に短縮します。


毎週

このルールは週の中で複数日にわたる時間帯に適用できます。1日単位で区切れないパターンに便利です。

パラメータ:

  • startDay:開始曜日(Monday, Tuesdayなど)
  • startTime:開始曜日の時刻
  • endDay:終了曜日
  • endTime:終了曜日の時刻

例: 水曜14:00から金曜12:00までが高負荷期間となります。


毎月

このルールは毎月の特定日に適用されます。

パラメータ:

  • startDayOfMonth:開始日(1~31)
  • startTime:開始日の時刻
  • endDayOfMonth:終了日
  • endTime:終了日の時刻

例: 毎月25日8:00から最終日23:59まで月末処理の繁忙期となります。


毎年

このルールは毎年の特定期間に適用されます。

パラメータ:

  • 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:00Normal(30 min, 5 min)
Evening Shift平日 16:00-00:00Normal(45 min, 10 min)
Weekend Crew週末 10:00-18:00Normal(60 min, 15 min)
Overnight/DefaultデフォルトNormal(90 min, 20 min)

Day Shiftはスタッフが多く最速です。Evening Shiftは監督が減るためやや遅くなります。週末は最小人数体制で最も遅いです。デフォルトは夜間の時間帯をカバーします。

ルールの優先順位

複数のルールが一致する場合:

  1. ルールは設定に記載された順に評価されます
  2. 最初に一致したルールが適用されます(上のものが優先)
  3. デフォルトルールは他の条件が該当しない場合のみ適用されます

ポイント: より具体的なルールを一般的なルールより上に配置しましょう。平日と土日で異なる動作が必要な場合は「Each Weekday」を「Each Day」より上に配置してください。


周期設定を使う項目

周期設定は多くのシミュレーションパラメータに利用できます:

パラメータ周期設定のユースケース
ケースの到着 (Case Arrivals)業務時間は到着件数が多く、夜間は少ない
処理時間 (処理時間s)フルスタッフ時は処理が早く、時間外は遅い
リソースキャパシティ (Resource Capacity)ピーク時は人員増強、夜間は最少体制
スキップ確率 (Skip Chances)週末や祝日で異なるルーティング
ゲートウェイ分岐確率 (Gateway Probabilities)時間帯による意思決定パターンの変化

総合例:カスタマーサポートセンター

複数パラメータにまたがる周期設定の活用例を、カスタマーサポートのシミュレーションで紹介します。

到着率の設定例

周期到着率
Each Weekday 09:00-18:00Poisson(1時間あたり50件)
Each Weekday 18:00, -22:00Poisson(1時間あたり20件)
Each Weekend Day 10:00-16:00Poisson(1時間あたり15件)
DefaultPoisson(1時間あたり5件)

ビジネス時間帯は件数が多く、夜間は中程度、週末・深夜は少なめという現実的なパターンを再現できます。

処理時間の設定

周期分布
平日 09:00-17:00Triangular(10, 20, 45 min)
週末Triangular(20, 40, 90 min)
デフォルトTriangular(30, 60, 120 min)

ピーク時間帯は最速、週末や時間外は遅くなります。

スタッフ体制の設定

周期稼働エージェント数
平日 09:00-18:0010名
平日 18:00, -22:004名
週末 10:00-16:003名
デフォルト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)・深夜・月末など、端のタイミングでも正しくルールが適用されるか確かめてください。

  • シフトが交代する17:00ちょうどに何が起きますか?
  • 深夜の処理は正しく行われていますか?
  • 日数が異なる月でも、月末のルールは適切に機能しますか?

6. 設定したルールの記録


次のステップ

次のステップ