2. 随机过程基础与排队系统性能指标
排队系统的随机仿真,本质上是在计算机里“重演”一个随机到达、随机服务的系统。要让仿真结果可信,首先必须把随机性用数学模型描述清楚,其次要明确我们究竟用哪些指标衡量系统表现。本节围绕这两件事展开:先复习泊松过程、指数分布与更新过程这三个核心随机模型,再定义平均等待时间、队长、吞吐量、拒绝率、资源利用率等关键指标,并说明它们之间的内在联系。
一、三个核心随机模型
泊松过程描述“事件在时间轴上随机发生”的计数规律。设 N(t) 为 [0,t] 内到达的顾客数,若满足独立增量、平稳增量且 N(t) 服从参数为 λt 的泊松分布,则称到达过程为泊松过程,λ 为单位时间平均到达率。它有两个在仿真中极其重要的性质:其一,相邻到达间隔相互独立且服从参数为 λ 的指数分布;其二,在任意时刻往后看,剩余等待时间仍服从同参数指数分布(无记忆性)。这两条性质直接决定了离散事件仿真中“下一次到达时刻 = 当前时刻 + 指数随机数”的生成方式。
指数分布是泊松过程的“间隔分布”,密度为 f(t)=λe-λt(t≥0),均值为 1/λ,方差为 1/λ²。它的无记忆性意味着:已经等待了 10 分钟的服务台,下一个顾客还需等待的时间分布与刚空闲时完全相同。这一性质使指数分布成为排队论中最易解析的假设,但也意味着它无法刻画“服务时间高度集中”或“有明显下限”的场景。仿真中常用逆变换法生成:取 U~Uniform(0,1),则 X = -ln(U)/λ 服从指数分布。
更新过程是泊松过程的推广:间隔时间 X₁, X₂, … 独立同分布,但不必是指数分布。此时计数过程 N(t) 称为更新过程,其到达率随时间趋于 1/E[X],但不再是常数。实际系统中,服务时间往往更接近“均值附近波动”的分布(如爱尔朗分布、对数正态分布),此时用更新过程建模比强行套用泊松假设更合理。仿真实现上,只需把“生成指数间隔”替换为“从目标分布抽样”,其余事件调度逻辑不变。
二、关键性能指标及其定义
排队系统的性能指标可分为“时间类”“数量类”“流量类”和“效率类”四组,它们从不同侧面描述同一个系统。
- 平均等待时间 Wq:顾客在队列中排队(不含服务)的平均时长,是用户体验最直接的指标。
- 系统时间 W:顾客从到达到离开的总时长,W = Wq + E[S],其中 E[S] 为平均服务时间。
- 平均队长 Lq:队列中等待的顾客数的时间平均值;系统内顾客数 L 则包含正在服务的顾客。
- 吞吐量 X:单位时间内系统成功完成服务的顾客数,稳态下等于有效到达率。
- 拒绝率 Ploss:因缓冲区满或等待超时而被拒绝的顾客比例,直接反映系统容量是否充足。
- 资源利用率 ρ:服务台忙碌时间占总时间的比例,单服务台时 ρ = λE[S](有效到达率乘以平均服务时间)。
这些指标并非彼此独立。最著名的是利特尔法则(Little's Law):L = λeff·W,Lq = λeff·Wq,其中 λeff 为实际进入系统的有效到达率。它不依赖具体分布,只要系统处于稳态就成立,因此是校验仿真结果一致性的有力工具。另一个重要关系是利用率与拥塞的非线性:当 ρ 从 0.7 升到 0.9 时,M/M/1 系统的平均队长会从约 2.3 人急升到约 9 人,等待时间近似按 ρ/(1-ρ) 放大。这说明“利用率越高越好”是危险的直觉——接近 1 的利用率意味着任何波动都会引发长队列。
三、从模型到指标:一个可执行的仿真片段
下面用一段伪代码把上述模型与指标串起来。假设单服务台、容量 K=5、到达率 λ=0.8 人/分钟、服务时间服从均值 1 分钟的指数分布(即 μ=1),仿真 10000 分钟,统计各指标。参数为教学示例假设值。
初始化:t=0, 队列=[], 服务台空闲, 累计等待=0, 完成数=0, 拒绝数=0, 到达数=0
生成首个到达时刻 tA = -ln(U1)/λ
while t < 10000:
若 tA < 下一服务完成时刻:
t = tA; 到达数 += 1
若 队列长度 < K: 入队,记录到达时刻
否则: 拒绝数 += 1
tA = t + (-ln(U2)/λ)
否则:
t = 服务完成时刻; 完成数 += 1
若 队列非空: 出队,累计等待 += (t - 到达时刻)
安排下一次服务完成 = t + (-ln(U3)/μ)
否则: 服务台空闲
输出:Wq = 累计等待/完成数;X = 完成数/10000;
Ploss = 拒绝数/到达数;ρ = 服务总时长/10000
运行后若得到 Wq≈1.2 分钟、Lq≈0.9 人、X≈0.78 人/分钟、Ploss≈0.02、ρ≈0.78,可用利特尔法则校验:λeff·Wq = 0.78×1.2 ≈ 0.94,与 Lq≈0.9 基本吻合(差异来自统计波动与有限仿真时长)。若两者偏差超过 10%,通常说明仿真未进入稳态、统计区间选取不当,或事件调度存在逻辑错误,应优先排查而不是直接采信结果。
四、指标之间的取舍
实际容量分析中,指标往往互相牵制。提高利用率可以降低单位服务成本,但会推高等待时间与队长;增大缓冲区能降低拒绝率,却可能让顾客在长队列中等待更久,反而恶化 Wq;提高吞吐量若以牺牲服务质量为代价,长期看会流失需求。因此,仿真输出的不应是单一数字,而是一组指标随参数(服务台数量、容量 K、到达率 λ)变化的曲线,供决策者在“成本—体验—容量”之间做权衡。理解每个指标的定义与相互关系,正是读懂这些曲线的前提。