概率程序定量终止分析的随机不变量与算法
1. 随机不变量的计算与直觉
随机不变量可视为概率程序中的定量安全规范。对于给定概率阈值 $p$,若 $(SI, p)$ 是随机不变量,意味着随机概率程序运行离开 $SI$ 的概率至多为 $p$。计算随机不变量的难点在于,它不仅要确定安全集,还要证明离开该安全集的概率至多为给定概率。
为计算随机不变量,可合成一个状态函数 $f_{SI}$,使其与 $p$ 一起满足相关定义条件,再通过 $SI(\ell) = {x | I(\ell) \land f_{SI}(\ell, x) < 1}$ 定义谓词函数 $SI$。
直觉上,若对状态函数 $f_{SI}$ 施加条件,使其为目标状态集 $(x |= I(\ell) \land f_{SI}(\ell, x) < 1)$ 可达概率的上界,且 $f_{SI}(\ell_{init}, x_{init}) \leq p$,则 $p$ 是从初始状态出发离开 $SI$ 概率的上界。
2. 随机不变量与终止概率下限计算
随机不变量结合概率程序的几乎必然终止证书,可用于计算终止概率的下限。
- 定理 2 :设 $C$ 是概率控制流图(pCFG),$(SI, p)$ 是 $C$ 中的随机不变量。若对于每个调度器,$C$ 中的运行几乎必然要么终止,要么到达 $\neg SI$ 中的状态,即 $\inf_{\sigma} P_{\sigma}[Term \cup Reach(\neg SI)] = 1$,则 $C$ 终止的概率至少为 $1 - p$。反之,若 $C$ 终止的概率至少为 $1 -