周期性与随时间变化的参数
什么是周期性?
实际流程并不会在所有时段以相同方式运行。客户服务在工作时间接听的电话更多。制造业在不同班次安排不同的人员。零售业会经历季节性高峰。
周期性允许您定义特定模拟规则何时生效。您无需使用一个全局值,而是可以为不同时间段指定不同参数:
- 工作日与周末
- 早班与晚班
- 旺季与淡季
- 工作时间与非工作时间
这样,模拟便能在不同时间场景下更真实地运行。
周期性为何重要
以客户到达建模为例。
没有周期性:
- 每小时10位客户,全天候运行
使用周期性:
- 每小时25位客户,工作日9:00-18:00
- 每小时15位客户,工作日18:00-21:00
- 每小时5位客户,周末
- 每小时2位客户,夜间
第二种模型能够捕捉影响排队、资源使用和吞吐量的真实需求模式。
可用的周期性类型
ProcessMind支持九种周期性类型,每种类型都定义了规则的生效时间:
| 类型 | 参数 | 描述 |
|---|---|---|
| 始终 | (无) | 规则始终生效,不随时间变化 |
| 默认 | (无) | 没有其他基于时间的规则匹配时使用的后备规则 |
| 固定周期 | startDateTime、endDateTime | 一次性周期(不重复) |
| 每天 | startTime、endTime | 每天相同的时段 |
| 每个工作日 | startTime、endTime | 仅周一至周五 |
| 每个周末日 | startTime、endTime | 仅周六和周日 |
| 每周 | startDay、startTime、endDay、endTime | 每周重复,可跨越多天 |
| 每月 | startDayOfMonth、startTime、endDayOfMonth、endTime | 每月重复的模式 |
| 每年 | startMonth、startDayOfMonth、startTime、endMonth、endDayOfMonth、endTime | 年度或季节性模式 |
周期性类型详解
始终
最简单的选项:规则始终生效,不随时间变化。
**适用场景:**参数确实不随时间变化,或您正在创建简单的基准模拟。
默认
当其他基于时间的规则与当前模拟时间不匹配时,作为后备规则使用。
**适用场景:**您希望为特定时段定义例外,并让其他时段使用默认值。
始终包含默认规则
使用多个周期性规则时,请始终加入默认规则,以覆盖基于时间的规则中的空缺。这样可以避免没有特定规则匹配时出现意外行为。
每天
规则在每周每天的特定时段生效。
参数:
startTime:规则开始时间(例如09:00)endTime:规则结束时间(例如17:00)
**示例:**常规工作时间09:00-17:00,每天生效,包括周末。
每个工作日
规则在仅周一至周五的特定时段生效。
参数:
startTime:规则开始时间endTime:规则结束时间
**示例:**客户服务在工作日08:00-18:00运行,周末使用不同规则。
每个周末日
规则在仅周六和周日的特定时段生效。
参数:
startTime:规则开始时间endTime:规则结束时间
**示例:**周末支持时间缩短为10:00-16:00。
每周
规则在每周内可跨越多天的时间范围内生效。适用于无法整齐对应单日的模式。
参数:
startDay:规则开始日期(周一、周二等)startTime:开始日期的时间endDay:规则结束日期endTime:结束日期的时间
**示例:**高业务量时段从周三14:00持续至周五12:00。
每月
规则在每月的特定日期生效。
参数:
startDayOfMonth:规则开始日期(1-31)startTime:开始日期的时间endDayOfMonth:规则结束日期endTime:结束日期的时间
**示例:**月末处理高峰从25日08:00持续至月末最后一天23:59。
每年
规则在每年的特定日期生效。
参数:
startMonth:规则开始月份startDayOfMonth:开始月份中的日期startTime:开始日期的时间endMonth:规则结束月份endDayOfMonth:结束月份中的日期endTime:结束日期的时间
**示例:**节日零售高峰从11月15日00:00持续至12月31日23:59。
固定周期
规则在特定日期和时间范围内生效,不重复。适用于一次性事件。
参数:
startDateTime:确切的开始日期和时间endDateTime:确切的结束日期和时间
**示例:**产品发布周为2025年3月15日至22日,期间使用特殊处理规则。
组合多个规则
周期性的真正价值在于组合多个规则。您可以为不同时间场景定义不同参数,模拟会在每个时刻判断适用的规则。
示例:多班次处理时间
以制造流程为例,不同班次对应不同的处理时间:
| 规则名称 | 周期性 | 处理时间分布 |
|---|---|---|
| 白班 | 每个工作日,08:00-16:00 | 正态分布(30分钟,5分钟) |
| 晚班 | 每个工作日,16:00-00:00 | 正态分布(45分钟,10分钟) |
| 周末班组 | 每个周末日,10:00-18:00 | 正态分布(60分钟,15分钟) |
| 夜间/默认 | 默认 | 正态分布(90分钟,20分钟) |
白班速度最快(人员齐备,员工状态良好)。晚班较慢(监督减少)。周末最慢(仅保留基本人员)。默认规则覆盖夜间时段。
规则优先级
当多个规则可能匹配时:
- 规则按照在配置中定义的顺序进行评估
- 使用第一个匹配的规则(最上方规则优先)
- 默认规则仅在没有其他规则适用时匹配
**提示:**将更具体的规则置于通用规则之前。如果您希望工作日与周末采用不同的行为,请将“每个工作日”置于“每天”之前。
周期性的适用场景
周期性可以应用于多种模拟参数:
| 参数 | 周期性适用场景 |
|---|---|
| 案例到达 | 工作时间到达速率较高,夜间较低 |
| 处理时间 | 人员齐备时处理更快,人员减少时处理更慢 |
| 资源容量 | 高峰时段人员更多,夜间仅保留基本人员 |
| 跳过概率 | 周末或节假日采用不同路由规则 |
| Gateway概率 | 根据时段采用不同的决策模式 |
完整示例:客户支持中心
以下示例展示了如何在客户支持模拟中为多个参数使用周期性:
到达速率配置
| 周期性 | 到达速率 |
|---|---|
| 每个工作日09:00-18:00 | 泊松分布(每小时50次) |
| 每个工作日18:00-22:00 | 泊松分布(每小时20次) |
| 每个周末日10:00-16:00 | 泊松分布(每小时15次) |
| 默认 | 泊松分布(每小时5次) |
工作时间业务量高,晚间流量适中,周末和夜间流量较低。
处理时间配置
| 周期性 | 分布 |
|---|---|
| 每个工作日09:00-17:00 | 三角分布(10、20、45分钟) |
| 每个周末日 | 三角分布(20、40、90分钟) |
| 默认 | 三角分布(30、60、120分钟) |
人员配置高峰期处理最快,周末和非工作时间较慢。
人员容量配置
| 周期性 | 可用客服人员 |
|---|---|
| 每个工作日09:00-18:00 | 10名客服人员 |
| 每个工作日18:00-22:00 | 4名客服人员 |
| 每个周末日10:00-16:00 | 3名客服人员 |
| 默认 | 1名客服人员 |
工作时间人员齐备,其他时段减少覆盖。
整体运行方式
周二上午10:00:
- 到达速率为每小时50次
- 处理使用快速三角分布
- 可用客服人员为10名
周二晚上8:00:
- 到达速率降至每小时20次
- 处理使用默认的较慢分布
- 仅有4名客服人员可用
周六下午2:00:
- 到达速率为每小时15次
- 处理使用周末分布
- 有3名客服人员可用
最佳实践
1. 从默认规则开始
始终先定义默认规则,确保覆盖其他规则未明确处理的时间。
2. 从通用规则逐步细化
先设置宽泛模式(工作日与周末),再根据需要添加更具体的规则(具体班次时间)。
3. 初始配置保持简单
先区分工作日和周末,再添加按小时或季节划分的细节。之后您可以随时增加复杂度。
4. 以数据为依据设置模式
如有条件,请分析历史数据,了解实际模式。按小时和星期几查看到达速率、处理时间和人员配置。
5. 测试边界情况
确认规则能够正确处理时间切换:
- 班次在17:00切换时,恰好17:00会发生什么?
- 午夜是否得到正确处理?
- 月末规则在不同天数的月份中是否正常运行?
6. 记录规则
复杂的周期性配置之后可能难以理解。请记录每条规则存在的原因及其代表的业务模式。