⚠ 当前无法加载公式渲染库(KaTeX 走 CDN),公式可能显示为原始代码——联网后刷新即可。
🏠 学习总导航 · 随机过程与排队论 · 在线代码阅读器(手机端免下载直读)

M/M/1 排队系统事件驱动仿真器(queueing_simulation.html)

源文件:queueing_simulation.html(共 20 行) 支持语法高亮 · 一键复制源码 · 护眼暗色模式

1 · 功能说明与手机端直读指南

使用独立指数分布到达间隔 Exp(λ) 与指数分布服务时长 Exp(μ),对无限容量单服务台排队系统 M/M/1/∞ 进行 100,000 名顾客的蒙特卡洛事件驱动仿真,直观验证稳态平均逗留时间 W = 1/(μ-λ) 与平均等待时间 Wq = λ/[μ(μ-λ)]。

为什么提供 HTML 代码阅读器? 在手机或平板浏览器中直接点击 .py 链接通常会触发文件下载而无法直接预览。本页面将 queueing_simulation.html 渲染为带行号、语法高亮与一键复制按钮的标准 V3 网页,方便随时对照课程笔记复习代码细节;同目录下的原始 queueing_simulation.html 仍完整保留供本地 Python 直接运行。

2 · 完整源码:queueing_simulation.html

  1"""事件驱动 M/M/1 仿真:使用独立 Exp(lambda) 到达间隔与 Exp(mu) 服务时长。"""
  2import random
  3
  4def simulate_mm1(arrival_rate=2.0,service_rate=3.0,customers=100_000,seed=2026,warmup=1000):
  5    if not (0 < arrival_rate < service_rate) or customers <= warmup or warmup < 0:
  6        raise ValueError(&#x27;须满足 0<lambda<mu、customers>warmup>=0')
  7    r=random.Random(seed); arrival=free=wait_sum=sojourn_sum=0.0
  8    for i in range(customers):
  9        arrival+=r.expovariate(arrival_rate)
 10        duration=r.expovariate(service_rate)
 11        start=max(arrival,free);free=start+duration
 12        if i>=warmup:
 13            wait_sum+=start-arrival
 14            sojourn_sum+=free-arrival
 15    n=customers-warmup
 16    return {&#x27;W_sim':sojourn_sum/n,'Wq_sim':wait_sum/n,
 17            &#x27;W_theory':1/(service_rate-arrival_rate),
 18            &#x27;Wq_theory':arrival_rate/(service_rate*(service_rate-arrival_rate))}
 19
 20if __name__==&#x27;__main__':print(simulate_mm1())

3 · 核心实现要点与复杂度对照

核心递推关系(Lindley 递推式)与仿真输出对照
  • 到达时刻:\(A_i = A_{i-1} + T_i\),其中到达间隔 \(T_i \stackrel{ ext{i.i.d.}}{\sim} \operatorname{Exp}(\lambda)\);
  • 开始服务时刻:\(S_i = \max(A_i, F_{i-1})\)(若顾客到达时服务台空闲则立即开始,否则等前一人离开 \(F_{i-1}\));
  • 离开时刻:\(F_i = S_i + D_i\),其中服务时间 \(D_i \stackrel{ ext{i.i.d.}}{\sim} \operatorname{Exp}(\mu)\);
  • 等待时间与逗留时间:\(W_{q,i} = S_i - A_i\),\(W_i = F_i - A_i\)。
  • 默认参数(\(\lambda=2.0, \mu=3.0, ho=2/3\))运行结果:{'W_sim': 1.0031, 'Wq_sim': 0.6695, 'W_theory': 1.0, 'Wq_theory': 0.6667},仿真值与理论公式高度吻合!