“随机程序还需区分几乎必然终止与有限期望时间。排序上鞅把逐步下降改成统一条件期望下降,在非负性和可积性等条件下给出终止及时间界;任意非负上鞅本身并不是终止证书。”
形式陈述
设概率程序的终止时间为
在次概率语义中,这等价于终止输出总质量为一。若还满足
有限期望推出 AST,因为若
直觉
AST 允许存在不终止运行,只要求它们总体概率为零。有限期望还限制罕见但极长的运行,不能让它们的概率与耗时相乘后累积成无穷。
因此“每次继续的概率都小于一”“每条有限路径以后都有机会结束”“平均时间有限”是不同说法。需要计算累计存活概率,而不是只看某一步的分支概率。
例子与边界
抛到正面:不终止路径存在,概率却为零
每次独立抛公平币,正面结束,反面继续。按抛掷次数计时,有
“永远反面”是一条合法无限运行,所以程序不是每条运行都终止;它仍 AST,甚至 PAST。零概率不是逻辑不可能。
AST 但期望工作量无穷
先抛公平币,令
每一种规模出现得越来越少,却各自对期望贡献同样的
每轮都可能结束,仍可有正概率永不结束
第
所以每轮“有机会退出”不够。若存在统一
推论与应用
对非负整数时间,尾和公式
排序上鞅若提供统一正幅度的平均下降,通常可证明 PAST;只有非负上鞅或没有统一下降幅度,则需要更精细的 AST 规则。期望运行时间变换器可以直接表达无穷期望,而不会把“概率一结束”误当成有限数值答案。
本页没有调度非确定性。若程序还由调度者选择动作,必须说明是对每个调度者都 AST,还是存在一个调度者 AST;概率一不能替代这个额外量词。
参考资料
- [1] Annabelle McIver et al., A New Proof Rule for Almost-Sure Termination, 2018,AST 与运行时间边界。
- [2] Benjamin Lucien Kaminski et al., Weakest Precondition Reasoning for Expected Run-Times of Probabilistic Programs, 2016,期望运行时间与正几乎必然终止。