“概率循环不变式用 $\Phi f(I)\le I$ 提供上界;下界不能只把不等号反过来。期望运行时间变换器则另加执行成本,不能只把 wp 的后期望换成一就得到运行时间。”
形式陈述
固定成本模型:赋值或一次随机采样赋值成本为一,每次条件判断成本为一,顺序连接本身成本为零。令后续成本
与最弱前期望的关系是
典型规则为
对循环,包含每次守卫检查的特征函数是
退出时也要判断一次守卫,所以常数一在两个分支之外。
直觉
wp 把未终止路径的输出奖励记为零,ert 却必须记录它已经花掉、还会继续花掉的时间。仅把后期望设为一,得到的是终止概率,不是运行时间。
后续成本可能依赖前段生成的随机状态,因此顺序组合不能只把两个脱离输入的平均数相加。必须将后一段的成本函数传回前段积分。
例子与边界
抛到成功到底要付几次判断
程序先执行 while x=0 do x:=Bernoulli(p),其中
令
算上初始化,整程序成本为
当
点态有限的后段仍可能有无穷平均
前段几乎必然产生
因此“前段有限期望、后段每个输入有限时间”不足以推出组合有限期望。需要控制后段成本在前段输出分布下的可积性。[1, Introduction]
推论与应用
若找到
成本模型可以改为指令数、查询数或能耗,但必须逐项重新说明。若允许零成本无限循环,累计成本可能有限而程序不终止;本页通过正成本守卫排除了这一情况,不能把有限成本结论无条件推广到任意自定义奖励。
参考资料
- [1] Benjamin Lucien Kaminski, Joost-Pieter Katoen, Christoph Matheja and Federico Olmedo, Weakest Precondition Reasoning for Expected Run-Times of Probabilistic Programs, 2016/2017,§§2–5:成本模型、ert 规则、操作对应和循环界。
- [2] Expected Runtime Analysis by Program Verification, Foundations of Probabilistic Programming,第 6 章。