09 更新报酬与再生建模
一台设备反复经历“运行—更换—运行—更换”。如果每次运行时间都不一样,问它在很长时间里平均每天产出多少,不能只拿一次运行的产量除以一次运行时间。更自然的做法是把每次完整的运行—更换过程看成一个周期,记录周期持续多久、带来多少报酬,再比较两种周期量的平均值。
这一章把更新过程和再生结构收束成一个可复用的建模方法。你会看到,许多看似不同的问题都可以归结为同一个比值;也会看到这个比值依赖哪些条件,什么时候“取平均再相除”会失效。这里的重点不是背下一条极限公式,而是面对一个随机系统时,能辨认出周期从哪里重新开始、报酬应该记在哪里,以及一个周期是否真的与上一个周期具有相同的概率规律。

从更新时刻切开随机系统
设一件事情每次发生到下一次发生之间要等待一个正的随机时间。记第 n 个等待时间为 X_n,并假设 X_1,X_2,... 独立同分布,分布函数为 F,且 E[X_1]<∞。定义
S_0=0, S_n=X_1+...+X_n (n≥1)。
S_n 是第 n 次更新发生的时刻。给定时间 t≥0,截至 t 已经发生的更新次数是
N(t)=max{n:S_n≤t}。
这里的“更新”不是某个固定长度的时钟滴答,而是系统完成一次相同功能的重置。例如,灯泡烧坏并换上新灯泡、顾客离开后下一个顾客到达、库存补货完成,都可以选作更新时刻。X_n 负责描述相邻更新之间的时间,N(t) 负责数在时间 t 前完成了多少个周期。
若平均等待时间是 μ=E[X_1],长期更新率的直觉是 1/μ。单位要对得上:平均每周期 μ 小时,长期就是平均每小时 1/μ 次更新。更新定理会在适当条件下把这个直觉变成极限结论,但本章更常用的是带报酬的形式。
建模时要把“一个周期结束”的时刻说完整。设备只有在维修完成后才回到可运行状态,那么周期可以是“维修完成到下一次维修完成”;如果只把故障时刻当作更新,却把维修时间漏掉,长期速率的分母就少算了一段时间。
周期报酬与长期速率
设第 n 个周期带来的报酬为 R_n。报酬可以是产量、服务人数、收入,也可以是净收益,所以它不必总是非负。假设二维随机向量
(X_1,R_1),(X_2,R_2),...
独立同分布,E[X_1] 有限且为正,E[|R_1|] 有限。到时间 t 为止,完整周期带来的总报酬记作
Y(t)=R_1+...+R_{N(t)}。
在这些条件下,再生报酬定理给出
Y(t)/t → E[R_1]/E[X_1] (t→∞)。
这里的收敛可以先理解为“对绝大多数长期运行轨迹,平均报酬率稳定到这个值”。本章不证明一般形式的定理;我们关注公式为什么长这样,以及怎样把题目中的量放进公式。

最容易混淆的一点是,不能把每个周期的比值先平均:
E[R_1/X_1] 通常不等于 E[R_1]/E[X_1]。
长期总报酬除以长期总时间,分子会把所有周期的 R_n 加起来,分母会把所有周期的 X_n 加起来。因此出现的是“报酬总量的平均 / 时间总量的平均”,而不是“每个周期的报酬率的平均”。周期越长,它在长期时间中占的份量越大,这正是直接平均 R_n/X_n 会忽略的加权。
如果每个周期内还有随时间累积的报酬,可以令 R_n 等于该周期中的总报酬。例如周期长度是 X_n,设备在周期内每小时产出 a,周期结束时支付固定成本 c,那么 R_n=aX_n-c,长期净产出率就是
E[aX_1-c]/E[X_1]=a-c/E[X_1]。
这个写法把“按运行时间收取的报酬”和“每周期只发生一次的成本”放在了不同的位置。固定成本被平均到每个周期,再通过周期频率折算成单位时间成本。

一道完整的设备更换题
某设备每次更换完成后开始新的运行周期。一次运行时间 X 以相同概率取 2 天或 4 天。运行期间每天产出 3 个单位,周期结束时产生 8 个单位的更换成本。求长期平均净产出率,并解释周期波动是否改变了答案的计算方法。
这里应选择再生报酬方法,因为每次更换完成后,设备回到同一个“全新、可运行”的状态;下一次运行时间与本次运行时间同分布且独立。一个完整周期的长度是 X,净报酬是 R=3X-8。
E[X]=(2+4)/2=3 天。它表示许多周期合在一起时,每周期平均占用的时间。R=3X-8。因此当 X=2 时,R=-2;当 X=4 时,R=4。E[R]=(-2+4)/2=1 个单位。等价地,E[R]=3E[X]-8=9-8=1。E[R]/E[X]=1/3 个单位/天。答案不是 E[R/X],因为长度为 4 天的周期在长期时间里会比长度为 2 天的周期占据更多时间。
若把题目改成“每个周期结束时获得报酬 X,求每个周期的平均报酬率”,那才是在问 E[R/X]。原题问的是长期总净产出除以总天数,必须坚持 E[R]/E[X]。这两个量都合理,却回答了不同的问题。
再生结构不只出现在设备里
更新方法真正有用的地方,是它能把复杂过程切成一段段从同一个状态重新出发的周期。切点不一定叫“更新”,只要切点之后的未来与过去脱开,并且周期的联合规律保持一致,就有再生结构。
库存补货:一次补货到下一次补货
考虑一个简单的批量补货系统。每次库存降到触发线时补入一批货,补货完成后系统重新回到同一个库存起点。若需求到达之间的间隔独立同分布,且每个周期服务的顾客数为 R_n,那么长期服务率仍由 E[R]/E[X] 给出。若研究的是缺货时间,可以令 R_n 等于该周期中缺货的总小时数,得到长期缺货比例
E[一个周期内缺货小时数]/E[周期长度]。
这里的报酬可以是“坏的量”。把目标换成成本或损失,公式结构不变,但解释从“长期平均收益”改为“长期平均成本”。
服务系统:空系统到下一次空系统
在一个服务台模型中,顾客到达和服务时间都在变化。若系统回到空状态后,未来顾客的到达过程与服务过程重新开始,并且没有遗留顾客,那么“空状态到下一次空状态”可以作为一个再生周期。周期报酬可以取该周期服务的顾客数,也可以取所有顾客等待时间之和。
对等待时间总和使用再生报酬方法时,得到的是长期单位时间等待成本,不是“一个随机顾客的平均等待时间”自动就等于它。后者还涉及顾客抽样方式和到达时刻是否偏好看到繁忙系统的问题。模型的切点帮助我们算总量,但不替我们跳过抽样解释。

马尔可夫链中的再生片段
离散时间马尔可夫链在访问某个状态 i 时,可以把每次回到 i 的时刻当作切点。若从 i 出发后的未来只由当前状态决定,那么两次回访之间的路径片段具有相同分布,并且片段之间独立。于是访问状态 j 的次数、在某些状态上停留的时间,都可以当作周期报酬。
这揭示了平稳分布和再生报酬之间的关系:在正再生、不可约等合适条件下,长期处在状态 j 的比例可以写成“一个回访周期中在 j 停留的平均步数 / 平均回访周期长度”。不要把这句话当成所有链的无条件公式;若回访平均时间是无穷,或状态空间与周期结构不满足相应条件,比例的解释会改变。
更新方程:把“等多久”拆成第一次和之后
有时问题不是直接求长期速率,而是求截至 t 的期望更新次数。记更新函数为
m(t)=E[N(t)]。
观察第一次更新时间 X_1:若 X_1>t,截至 t 没有更新;若 X_1≤t,第一次更新已经发生,剩余时间 t-X_1 内的更新行为与从零开始的过程同分布。于是有更新方程
m(t)=F(t)+∫_0^t m(t-x)dF(x)。
右边第一项 F(t) 只数第一次更新是否已经发生;积分项把第一次更新发生在 x 附近的所有可能性加起来,并加上之后的期望更新次数。这个方程的价值在于,它把一个反复发生的问题还原成“第一次发生在哪里”。

在离散时间里,如果 X 取正整数,写 f_k=P(X=k),则
m_n=F_n+Σ_{k=1}^n f_k m_{n-k},
其中 F_n=P(X≤n)。计算时可以从 m_0=0 开始逐项得到 m_1,m_2,...。这是一种递推,不需要先猜一个复杂的闭式;但递推结果仍要检查是否符合“时间越长,期望更新次数不应减少”这一基本性质。
选择方法时的三道检查
面对一个新题目,可以把方法选择压缩成三件事。
第一,找切点。系统在什么时刻回到一个未来只依赖当前、而不依赖更早历史的状态?如果找不到这样的状态,不能因为题目中出现了“重复”二字就强行使用再生法。
第二,配对周期量。每个周期必须同时记录 X_n 和 R_n,而且报酬的单位要和题目所问一致。问长期每小时服务多少人,就取周期服务人数;问长期每小时缺货多久,就取周期缺货小时数。
第三,查条件。周期是否同分布?不同周期是否独立?E[X] 和 E[|R|] 是否有限?如果周期中带有“设备老化”或“顾客积压”,切点之后的状态并没有真正重置,原来的比值可能不再适用。
“每次都会回到某个状态”不等于“每次回访之间的周期都适合直接套定理”。必须确认回访时状态信息足以重置未来,并检查平均周期长度和平均绝对报酬的有限性。特别长的周期可能让样本路径看起来很久没有更新,此时有限时间观察值与长期速率之间会有明显差距。
上面的交互位置适合把一条条随机周期画在时间轴上,同时显示 ΣR_n/ΣX_n 与 E[R]/E[X] 的靠近过程。观察时可以改变周期长度的波动,但要保持周期的平均值不变,看看固定成本如何随更新频率变化。
第二个交互位置适合比较设备更换、库存补货和服务系统的切点。关键不是得到一个漂亮的模拟曲线,而是逐项确认周期长度、周期报酬、独立性和有限性假设。
练习
题 1(巩固)。 每个周期长度恒为 5 小时,周期报酬以相同概率取 10 或 20。求长期平均报酬率。
题 2(变式)。 周期长度 X 以相同概率取 1 小时和 9 小时。每个周期报酬恒为 6。求长期平均报酬率,并比较 E[R/X]。
题 3(迁移)。 一个服务系统每次回到空状态后开始新的周期。平均每个周期服务 4 位顾客,平均周期长度为 2 小时。若满足再生报酬方法的条件,估计长期平均服务率;说明“平均每位顾客等待时间”为什么还不能由这两个数直接得到。
题 4(条件边界)。 某设备每次更换后虽然重新启动,但下一次寿命的分布会因累计磨损而改变。你仍然能直接写出 E[R]/E[X] 作为长期报酬率吗?给出理由和一个可行的改模方向。
小结:把复杂运行压成一张周期账
更新方法的核心不是“看到重复就求平均”,而是找到真正的再生切点。切点把轨迹分成同规律的周期,X_n 记时间,R_n 记这一段时间里真正关心的总量。长期报酬率由 E[R]/E[X] 控制;更新方程则从第一次更新的时间位置出发,递推地描述有限时间内的更新次数。
当你完成建模后,至少应能回答四个问题:周期何时开始和结束,周期长度是什么,周期报酬是什么,独立同分布与有限性条件在哪里用到。只要这四个问题还含糊,公式算得再快也可能是在解另一个问题。