“最弱前期望是该核对输出奖励的积分;取奖励恒为一,就读出终止概率。对任意可测事件 $A$,取指示函数便读出终止且满足 $A$ 的概率。”
形式陈述
对程序
它是终止输出奖励的期望,不终止路径贡献零。本页没有非确定选择,表达式总定义且可测,概率
基本规则是
对循环
非负可测函数按逐点顺序排列;从零函数迭代
直觉
布尔后置条件只问成功与否,后期望允许给成功结果不同奖励。反向计算把“最终能拿多少钱”变成“从当前状态开始平均能拿多少钱”。概率分支因此使用加权平均,而不是逻辑合取或最小值。
最小不动点不可省略。一个循环方程可能有很多解,只有从有限终止执行累积出的最小解符合这里的非终止约定。
例子与边界
顺序替换要从最后一行开始
程序以概率
若先把
输出期望与条件输出均值不同
程序以概率
对事件
相同不动点方程可以有不同候选解
对永不退出的 while true do skip,
零起点迭代得
推论与应用
wp 单调:
概率循环不变式用
参考资料
- [1] Benjamin Lucien Kaminski et al., Weakest Precondition Reasoning for Expected Run-Times of Probabilistic Programs, 2016,wp 与循环不动点基础。
- [2] Annabelle McIver et al., A New Proof Rule for Almost-Sure Termination, 2018,期望变换器、循环不变式及终止证明。