排队论模拟器 返回
概率·统计

排队论模拟器(M/M/1·M/M/c)

调整到达率 λ、服务率 μ、服务器数 c,实时可视化平均等待时间、系统内人数、概率分布。可用于便利店收银增设、呼叫中心最优设计等场景,支持Erlang C公式。

参数

预设

利用率 ρ ≥ 1。队列将无限增长。请增大 μ 或 c。
计算结果
利用率 ρ
等待人数 Lq
等待时间 Wq (分)
系统内人数 L
逗留时间 W (分)
空闲概率 P₀
密度

服务器数 c = 1, 2, 3 的无量纲等待时间 Wq × μ 随利用率 ρ 的变化。● 表示当前设置。

队列 P_n 分布

状态概率 P(n):系统内有 n 个人的概率分布。蓝色 = 服务器空闲(n < c),红色 = 产生等待(n ≥ c)。

敏感性

固定 μ·c,改变 λ 时 L·Lq·Wq × μ 的变化趋势。

理论·主要公式

设到达率 \(\lambda\)、服务率 \(\mu\)(单位:每服务器)、服务器数 \(c\),定义供应负荷 \(a = \lambda/\mu\)、利用率 \(\rho = \lambda/(c\mu) = a/c\)(稳定条件:\(\rho < 1\))。


空闲状态概率 \(P_0\):

\(P_0 = \left[\sum_{n=0}^{c-1}\frac{a^n}{n!} + \frac{a^c}{c!}\cdot\frac{1}{1-\rho}\right]^{-1}\)

Erlang C(全服务器占用概率 = 进入等待的概率):

\(C(c,a) = \frac{a^c}{c!}\cdot\frac{P_0}{1-\rho}\)

主要性能指标(由Little法则 \(L = \lambda W\) 推导):

\(L_q = C(c,a)\cdot\frac{\rho}{1-\rho},\quad W_q = \frac{L_q}{\lambda},\quad L = L_q + a,\quad W = W_q + \frac{1}{\mu}\)

当 \(c = 1\) 时,\(C(1,a) = \rho\),M/M/1 公式 \(L_q = \rho^2/(1-\rho)\) 成立。

排队论是什么? — 对话式理解

🙋
听说过"排队论"这个术语,但具体用在哪些场景呢?真的是用数学计算银行的队列吗?
🎓
没错,银行就是最典型的例子。当顾客"随机到达"并"随机接受服务"时,排队论可以计算平均等待时间和排队人数。不仅限于银行,呼叫中心需要多少个接线员、云服务器的请求处理、工厂质检线的瓶颈分析等都要用到这个理论。
🙋
"M/M/1"这个记号中的三个元素分别代表什么?
🎓
这是国际标准的Kendall记号,格式是"到达过程/服务时间分布/服务器数"。M代表Markovian(马尔可夫),即指数分布。所以M/M/1就是"泊松到达·指数服务·1台服务器",M/M/c就是相同条件下有c台服务器。
🙋
利用率 ρ 必须小于1,这怎样才能直观理解?
🎓
ρ = λ/(cμ) 表示"处理能力对总工作量的比例"。ρ = 0.9 意味着90%的时间在忙碌中。当ρ ≥ 1时,进来的工作量超过处理能力,队列会无限增长永不停止。你可以在模拟器中把 ρ 调到0.99,会发现等待时间爆炸式增长。
🙋
从1台服务器增加到2台,等待时间会下降多少?
🎓
会有戏剧性的变化。比如 λ=5、μ=6(单服务器时 ρ=0.83),1台时 Wq ≈ 0.83分钟。改成2台后 ρ=0.42,Wq ≈ 0.035分钟,约下降24倍。看"Wq vs ρ"标签页中 c=1,2,3 的对比,你会发现在高利用率区间改进最明显。
🙋
"Little法则"经常出现,它有什么特别的地方?
🎓
L = λW 这个公式超级简洁:系统内平均人数 = 到达率 × 平均逗留时间。无论是M/M/1还是M/M/c,甚至任何排队系统都成立。比如超市每小时60人进店、平均停留5分钟,那就说明收银台周边常有约5个人。这对实务的妙处是"难以测量的Lq可以从容易测的λ和Wq反推"。
🙋
Erlang C公式是做什么的?看起来比M/M/1复杂…
🎓
M/M/c需要先求"全部服务器都占用、新客户必须等待的概率",这就是Erlang C公式 C(c,a)。M/M/1时直接用 Lq = ρ²/(1-ρ),但多服务器变复杂。正因为能量化"多几个服务器能带来多大改善",呼叫中心优化和医院挂号设计都必须用这个公式。

常见问题

M/M/1 的服务时间遵循指数分布(随机),而 M/D/1 每个客户恰好需要 1/μ 分钟。M/D/1 的等待队列约为 M/M/1 的一半(Lq_D = ρ²/(2(1-ρ)))。对于机械加工线或自动化系统这类规则性的服务流程,M/D/1 更合适。
在实际应用中属于危险值。M/M/1 时 ρ = 0.95,Lq = ρ²/(1-ρ) ≈ 18 人。如果需求稍稍增长(ρ → 0.99),Lq ≈ 98 人会急剧爆炸。通常以 ρ ≤ 0.8 为设计目标,为高峰期预留余地。
Wq 只计算排队等候的时间,不包括接受服务的时间。W = Wq + 1/μ 是总时间(从进入到完成)。在银行例子中,"在窗口前排队的时间"是 Wq,"从开始排队到办完手续的时间"是 W。
若到达过程为一般分布,应使用 G/M/1 或 GI/G/1 模型;M/G/1 适用于服务时间为一般分布、到达为泊松过程的情况。Pollaczek–Khinchin公式为 Lq = λ²E[S²]/(2(1-ρ))。E[S²] 是服务时间二阶矩,方差越大等待时间越长。
品质检验线(c 个检验员检查 λ 件/小时的缺陷品)、HPC计算集群的作业调度优化、供应链物流瓶颈分析等。可用于优化CAE作业队列以缩短周转时间的设计中。
P(n) 表示“系统内恰好有 n 个人的稳态概率”。P(0) 越高说明服务器空闲时间越多(余裕充足),反之若大 n 的概率仍然显著,则偶尔会出现长队列。设计标准通常设为“P(n ≥ 10) ≤ 0.01”。

排队论模拟器将到达过程和服务过程建模为随机过程。假设到达间隔服从平均到达率λ的指数分布,服务时间服从平均服务率μ的指数分布。M/M/1模型考虑单一服务器(c=1),系统内人数n的稳态概率为 \( P_n = (1 - \rho) \rho^n \),其中ρ = λ/μ是流量强度,稳定条件为ρ < 1。平均等待时间 \( W_q = \frac{\rho}{\mu(1 - \rho)} \),当ρ接近1时急剧上升。M/M/c模型引入服务器数c,使用Erlang C公式 \( C(c, \rho) = \frac{\frac{(c\rho)^c}{c!} \cdot \frac{1}{1-\rho}}{\sum_{k=0}^{c-1} \frac{(c\rho)^k}{k!} + \frac{(c\rho)^c}{c!} \cdot \frac{1}{1-\rho}} \) 计算等待概率。通过该公式能够定量评估便利店增加收银台或呼叫中心增加接线员的效果。

实世界应用

产业界的实际案例
例如,国内领先便利店连锁"某某便利"通过M/M/c模型分析午间收银队列,优化收银台数量。又如,主要呼叫中心运营商利用"Erlang C公式"内置于Avaya、Genesys等系统中,自动计算通话高峰期所需的接线员数。这样既将人工成本降低20%,又能把客户平均等待时间控制在30秒内。

学术教学应用
高校经营管理学、运筹学课程利用本模拟器教学。学生通过调节λ、μ参数,实时观看等待时间分布如何遵循指数律,加深对Erlang公式的理解。该工具已被多所高校(如上海交通大学、北京大学)纳入运筹学教材实验。

CAE分析的角色定位
本模拟器在生产工程中作为CAE的一部分被使用。例如半导体制造设备的物流系统,用M/M/1模型分析"晶圆到达间隔"和"搬运机器人处理时间"。CAE结果反馈给排队论分析,确定理论瓶颈值,再据此优化设备配置——在真实采购前就能预估改进空间。

常见误解与提示

常误认为"增加服务器数必定按比例缩短等待时间",但实际上按Erlang C公式,利用率越接近1,增加服务器的效果越明显;利用率很低时则收效甚微,投资回报率需综合考量。

常误认为"到达率和服务率恒定,队列就稳定",但因为到达和服务都是随机的(泊松过程、指数分布),短期等待时间会大幅波动。当利用率超过0.8时,不仅平均值增长,95%分位值会急速上升,需要特别关注。

常误认为"M/M/1模型直接适用于任何现场",但实际中服务时间分布可能比指数分布的方差小(甚至几乎固定),到达可能因时段而非定常,模拟器结果只应作为理论下界参考,需配合现场数据验证。

使用指南

  1. 通过滑块设置到达率λ。例如呼叫中心每分钟8个来电,输入8
  2. 调整服务率μ。例如1个接线员每分钟处理10个来电,输入10
  3. 设置服务器数c。c=1时为M/M/1,c≥2时自动作为M/M/c(例:c=3为3个并联窗口)实时计算结果

具体计算例

银行两替窗口采用M/M/2系统:到达率λ=8客/小时,服务率μ=10客/小时,利用率ρ=0.4。根据Erlang C公式,c=2窗口下等待概率Pw≈0.229,平均等待时间Wq≈0.019小时(约1.1分钟),远优于M/M/1单窗口的Wq≈0.4小时(24分钟),约改善到1/20。

实务提醒