Discrete-Event Simulation

系统不是“连续流动”,而是在事件发生的瞬间跳到下一个状态

离散事件仿真把注意力放在“状态改变的时刻”:客户到达、机器空闲、任务完成、资源释放。 中间没有事件时,系统其实什么都不用算,这正是它高效又直观的地方。

事件驱动 排队等待 资源占用 吞吐与瓶颈
进入交互实验

DES 的直觉

只在事件发生时更新系统状态,所以它特别适合排队、制造、物流、医院、呼叫中心等流程系统。

状态 队列里有多少人、服务器是否忙碌、当前仿真时间是多少。
事件 到达、开始服务、完成服务、资源释放,都会推动系统跳变。
资源 柜台、机器、医生、车位等有限资源会决定拥堵和等待。
输出 等待时间、利用率、吞吐量、排队长度,都是最后读出来的结果。
理解方法

DES 的核心是“时间跳到下一个关键事件”

不是一秒一秒傻算,而是直接跳到“下一位客户到达”或“下一个服务完成”的时刻。这会让流程仿真非常高效。

1

定义实体和资源

先明确谁会流动、谁在等待、哪些资源有限,例如顾客、任务、柜台、机器。

2

定义事件

到达、开始服务、结束服务、离开系统,这些事件是状态改变的唯一触发器。

3

把时间跳到下一个事件

系统不需要在无事发生的时间段里做计算,而是直接跳转到下一次状态改变。

4

统计流程表现

排队长度、资源利用率、平均等待时间和吞吐量,都是仿真结束后最重要的输出。

这页的教学实验

我们用多服务台排队系统来演示 DES。你会看到:当到达速度略快于处理速度时,队列会突然失控,这就是流程瓶颈最直观的样子。

交互实验室

调快到达、调慢服务,看看系统在哪一刻开始拥堵

这是一个事件驱动的排队系统。每次点击“推进一个事件”,系统时间都会直接跳到下一个关键时刻,而不是一点点前进。

排队系统现场
左侧是到达入口,中间是等待队列,右侧是服务台。你会直观看到客户什么时候开始排队、什么时候系统恢复顺畅。
等待中 服务中 已完成
队列长度曲线
只要到达强度稍微高过系统处理能力,队列曲线就会持续抬升,这是流程瓶颈的直观证据。
最近事件日志
DES 的本质就是事件序列。这里列出的每一项,都是系统状态真正发生改变的瞬间。

点击“推进一个事件”后,这里会出现到达、开始服务和完成服务的时间线。

什么时候用

当系统由流程、资源和等待共同决定表现时

医院挂号、呼叫中心、工厂排产、物流分拣、收费站、机场安检,都很适合用离散事件仿真来理解瓶颈。

系统以事件推进

如果状态主要在到达、完成、切换这些时刻改变,而不是连续平滑变化,那么 DES 很自然。

资源是有限的

服务器、机器、工位、车辆、床位等有限资源,会自然产生等待和拥堵,这正是 DES 的主战场。

你需要定位瓶颈

如果你要回答“加一个柜台有没有用”“哪一步最堵”“等待会不会爆炸”,DES 非常直接。