×

证明命令式程序的多项式时间和线性/多项式空间。 (英语) Zbl 1100.68035号

小结:在克里斯蒂安森和尼格尔的早期工作中,多项式时间可计算函数的特征是堆栈程序\(\mu\)-measure \(0),线性空间可计算函数是循环程序\(\ mu\)-measure(0)。直到最近,一个悬而未决的问题是如何将这些特征化扩展到具有用户友好的基本指令(如赋值语句)和混合数据结构的程序。
本文展示了如何通过排序以及if-then-else和for-do语句,将上述特征增强到由任意基本指令构建的命令式程序。这些程序对变量进行操作,每个变量都可以表示任何数据结构,例如堆栈、寄存器、树或图形。
本文在基本指令也是多项式大小有界的自然假设下,提出了一种证明这种命令式程序“多项式大小有边界”的新方法。变量在({mathttX}{1},\ldots,{mathtt X}{n})之间的程序的证书将是有限集({0,1,\infty})上的((n+1)次(n+1,)矩阵(M({matHTtP})。
结果表明,经过认证的字符串程序(即堆栈程序,但具有任何多项式时间可计算的基本指令)精确地计算FPTIME中的函数。因此,经过认证的通用循环程序(使用任何线性空间可计算的基本指令)精确地计算FLINSPACE中的函数。
此外,还表明,经认证的幂字符串程序(即字符串程序,但由多项式空间可计算的基本指令构建,并由幂循环语句扩展)精确地计算FPSPACE中的多项式空间可运算函数。
此外,还提供了经认证的“自然”(实现)算法的示例,如插入排序或二进制加法和乘法。

MSC公司:

2015年第68季度 复杂性类(层次结构、复杂性类之间的关系等)
65年第68季度 算法和问题复杂性分析
60年第68季度 规范和验证(程序逻辑、模型检查等)
2015年3月1日 计算复杂性(包括隐式计算复杂性)
68号30 软件工程的数学方面(规范、验证、度量、需求等)
PDF格式BibTeX公司 XML格式引用
全文: DOI程序