概率程序预期运行时间推理与浮点数值精度提升
1. 确定性程序的运行时间
预期运行时间(ert)的概念同样适用于确定性程序,即不包含概率守卫、概率赋值和非确定性选择运算符的程序。我们发现,确定性程序的 ert 与通过扩展 Hoare 逻辑推导得出的运行时间的最紧上界相吻合。
1.1 编程语言限制
为了将 ert 与相关演算进行比较,我们将编程语言限制为确定性程序的语言 dProgs,其语法如下:
C ::= skip | x := E | C; C | if (ξ) {C} else {C} | while (ξ) {C}
其中,E 是确定性表达式,ξ 是确定性守卫,对于每个状态 σ ∈Σ,⟦E⟧(σ) 和 ⟦ξ⟧(σ) 都是 Dirac 分布。
1.2 程序的 MDP 模型
对于确定性程序,程序 C ∈dProgs 和程序状态 σ ∈Σ 的马尔可夫决策过程(MDP)M₀₍σ₎⟦C⟧ 是一个带标签的转换系统。如果从 M₀₍σ₎⟦C⟧ 的初始状态可以到达形式为 ⟨↓, σ′⟩ 的终止状态,那么该终止状态是唯一的。
1.3 Nielson 的 Hoare 演算扩展
Nielson 开发了经典 Hoare 演算的扩展,用于确定程序运行时间的上界。正确性属性的形式为:
{ P } C { E ⇓Q }
其中,C ∈dProgs,E 是关于程序变量的确定
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



