Skip to content

定义Definition

最弱前期望

Weakest preexpectation · Quantitative weakest precondition

把输出奖励反向传过概率程序,推导赋值、概率分支和循环规则,并计算终止概率与未归一化期望。

形式陈述 ​

对程序 C 的终止次概率核 KC 和非负可测后期望 f:S→[0,∞],定义最弱前期望

wp[C](f)(s)=∫Sf(t)KC(s,dt).

它是终止输出奖励的期望,不终止路径贡献零。本页没有非确定选择,表达式总定义且可测,概率 p∈[0,1]。非负扩展实数的加权公式采用 0⋅∞=0,使零概率分支不贡献奖励。

基本规则是

wp[x:=E](f)=f[x/E],wp[C;D](f)=wp[C](wp[D](f)),wp[{C}[p]{D}](f)=pwp[C](f)+(1−p)wp[D](f).

对循环 W=while G do C,令

Φf(X)=[¬G]f+[G]wp[C](X),wp[W](f)=lfpΦf.

非负可测函数按逐点顺序排列;从零函数迭代 Φf,得到有限展开的奖励,取上确界即循环语义。[1]

直觉

布尔后置条件只问成功与否,后期望允许给成功结果不同奖励。反向计算把“最终能拿多少钱”变成“从当前状态开始平均能拿多少钱”。概率分支因此使用加权平均,而不是逻辑合取或最小值。

最小不动点不可省略。一个循环方程可能有很多解,只有从有限终止执行累积出的最小解符合这里的非终止约定。

例子与边界

顺序替换要从最后一行开始 ​

程序以概率 1/3 执行 x:=2,否则 x:=5,随后执行 x:=x+1。取最终奖励 f(x)=x2。先穿过末行,得 (x+1)2;再穿过分支,得

wp[C](f)=13⋅32+23⋅62=27.

若先把 x 的平均值算成 4,再算 (4+1)2=25,就错把非线性奖励作用于均值。规则保留了奖励与分布之间正确的顺序。

输出期望与条件输出均值不同 ​

程序以概率 1/4 返回 8,其余永远循环。则 wp[C](x)=2,wp[C](1)=1/4。若条件于终止,平均输出才是 2/(1/4)=8。wp 本身没有偷偷做这个除法。

对事件 A,wp[C]([A]) 是终止且落入 A 的概率;对 1 则是终止概率。确定性总正确性下的 最弱前置条件可以看作相应指示函数的特例,但部分正确性的 wlp 有不同非终止约定。

相同不动点方程可以有不同候选解 ​

对永不退出的 while true do skip,Φf(X)=X,每个函数都是不动点,最小者为零,所以 wp 为零。对每轮以概率 p>0 结束、结束奖励为一的循环,标量方程为

x=p+(1−p)x.

零起点迭代得 xn=1−(1−p)n,极限为一。若 p=0,方程又变成 x=x,最小解却是零,不能直接除以 p 延续前面的计算。

推论与应用

wp 单调:f≤g 蕴涵 wp[C](f)≤wp[C](g)。在本页没有非确定选择的语义下,它还对非负奖励线性;循环依靠单调收敛定理把有限展开的等式传给极限。

概率循环不变式用 Φf(I)≤I 提供上界;下界不能只把不等号反过来。期望运行时间变换器则另加执行成本,不能只把 wp 的后期望换成一就得到运行时间。

参考资料
关系图谱14 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系