文档列表
本页内容

模拟引擎架构及运作解析

了解模拟引擎

ProcessMind 采用 离散事件仿真(DES) 引擎建模您的业务流程。了解其工作原理有助于您更高效地配置模拟和解读结果。


什么是离散事件仿真?

离散事件仿真中,系统状态仅在特定 event 发生时才变化,时钟会从一个 event 跳到下一个,event 之间无任何变化。这非常适合业务流程建模,因为:

  • Activity 有明确的起止时间
  • 资源在特定时刻分配和释放
  • Case 在指定节点进入与完成

为什么用离散事件?

不同于物理、流体等连续模拟方式,业务流程无需实时建模。例如贷款申请不会逐步从“已提交”变成“已批准”,而是在具体 event 下直接状态切换。


核心事件循环

模拟引擎遵循如下简单而强大的循环:

1. 初始化:设置起始条件
2. 获取下一个事件:从优先队列中找出最早的事件
3. 推进时间:将模拟时钟推进至该事件时间
4. 处理事件:执行该事件(开始/完成 activity 等)
5. 安排新事件:依据结果安排后续事件
6. 重复:直到模拟结束或达最大事件数 (2,000,000)
7. 输出:生成完整 event log

事件类型

模拟过程中会生成并处理多种事件类型:

事件类型说明
Case Arrival新 case 在 start event 处进入流程
Activity Startcase 开始执行 activity(资源分配)
Activity Completecase 完成 activity(资源释放)
Gateway Evaluation决策分支路径
Case Completecase 到达 end event

Case 的生成与进入

Case 通过 BPMN 模型的 Start Events 进入模拟。到达模式由 case generation distribution 控制。

默认到达模式

默认情况下,case 按 Poisson distribution、每小时 1 个速率到达,模拟真实业务中的随机到达间隔。

自定义到达模式

您可参考 Distributions  文档,使用不同分布类型配置 case 到达模式。


Case 在流程中的流转

Sequence Flow

当 case 完成一个元素后,会立即沿 outgoing sequence flow 前进。若仅一条路径,自动采用。

Gateway 行为

Gateway 决定 case 的分支和合并方式:

Gateway 类型行为说明
XOR (Exclusive)按概率权重随机选取一个输出路径。概率为相对权重,系统自动归一化。
AND (Parallel)所有输出路径同时进行,case 拆成多个并行 token。
OR (Inclusive)随机选取输出路径,至少会选中一条。
Event-Based在可用事件中随机选择路径。

设置概率

XOR gateway 需为每个 outgoing flow 配置概率(相对权重):

  • 若设置为 70, 20, 10,则归一化为 70%、20%、10%
  • 设置为 7, 2, 1,同样归一化
  • 所有 flow 均需设置概率,未设置者自动分配剩余比例

活动执行

当 case 到达任务(activity)时,系统引擎按以下流程执行:

1. 检查资源可用性

所需资源当前是否有可用容量?

2. 如需则排队

若资源不可用,case 进入等候队列。ProcessMind 采用 FIFO(先进先出) 顺序,case 按到达顺序依次处理。

3. 分配资源

一旦资源可用,本 case 会分配到所需资源单元。

4. 获取处理时长

系统会从已配置的处理时长分布中随机选取时长,决定 activity 执行所需的时间。

5. 安排完成事件

current_time + processing_time 时刻,为本 case 加入完成事件到事件队列。

6. 释放资源

完成事件触发后,相关资源会释放回资源池供其他 case 使用。

最短处理时长

为保证 timestamp 唯一和更真实的模拟,所有 activity 的最短时长为 1 秒,即使配置为零时长也不例外。


跳过概率

可以为 activity 设置 skip chance(0-100%)。当 activity 被跳过时:

  • case 直接进入下一个元素
  • 不消耗任何资源
  • 不花费时间(只保留最少 1 秒)
  • 日志中该 activity 时长为最小值

适用于部分步骤在实际流程中偶尔被跳过的场景。


时间处理方式

模拟时钟

模拟过程中系统会维护一个虚拟时钟,按事件跳转。如果下个事件时间为 10:35,当前为 10:30,则时钟直接跳到 10:35。

时间单位

所有时间会被内部统一转化。您可以用以下单位输入:

  • 秒(Seconds)
  • 分钟(Minutes)
  • 小时(Hours)
  • 天(Days)
  • 周(Weeks)
  • 月(Months)

时段与参数周期性

参数可随模拟时间段变动。例如:

  • 工作日和周末设置不同到达率
  • 早班和晚班有不同处理时间
  • 高峰时段可设置不同资源容量

详见 Periodicity  文档。


资源管理

资源池

每项资源都有容量,即能同时服务的 case 数量上限。

队列管理

当需求超过容量时,case 会进入队列排队。ProcessMind 采用 FIFO(先进先出),保证 case 按到达顺序处理。


Event Log 生成

模拟运行中,每次 activity 执行都会被记录到输出 event log:

字段描述
Case ID每个 case 唯一标识(顺序生成)
ActivityBPMN 元素名称
Start Timestamp活动开始时间
Complete Timestamp活动完成时间
Resource执行活动的资源
Attributes当前 case 属性信息

该日志符合标准 event log 格式,可用所有 ProcessMind 工具分析。


模拟限制

限制数值说明
Max Events2,000,000防止模拟失控
Min Duration1 second保证每个 timestamp 唯一

建议先小规模测试,再扩展

新建模拟时,建议先用几天或几周的小周期测试配置。当您确认模型表现正常后再延长模拟周期。


下一步操作

Resources
了解如何建模资源及容量约束。