计算理论与密码学中的多项式时间算法
在计算理论和密码学领域,有许多重要的概念和算法值得深入探讨。本文将介绍图灵机、确定性多项式时间、相关算法及其计算复杂度等内容。
1. 图灵机简介
图灵机是一种假想的计算设备,由图灵提出,用于提供一种原始但足够通用的计算模型。我们使用的图灵机变体由有限状态控制单元、若干条磁带(数量为 (k\geq1))和相同数量的磁头组成。
图灵机解决问题的过程如下:
- 磁头扫描放置在一条磁带最左侧单元格中的有限符号串,每个符号占据一个单元格,磁带右侧其余单元格为空,这个符号串就是问题的输入。
- 扫描从包含输入的磁带最左侧单元格开始,机器处于指定的初始状态。
- 任何时候只有一个磁头访问其磁带,磁头对磁带的一次访问步骤称为一次(合法)移动。
- 如果机器从初始状态开始,依次进行合法移动,完成对输入字符串的扫描,最终满足终止条件并终止,则称该机器识别了输入;否则,机器在某一点将没有合法移动可做,将停止而不识别输入。被图灵机识别的输入称为可识别语言中的一个实例。
图灵机的运行时间 (T_M) 是指机器识别输入所采取的移动次数,可表示为关于输入实例长度 (n) 的函数 (T_M(n)),显然 (T_M(n)\geq n)。此外,机器还有空间需求 (S_M),即磁头在写入访问中访问过的磁带单元格数量,也可表示为函数 (S_M(n)),称为机器的空间复杂度。
2. 确定性多项式时间
我们考虑由确定性图灵机在多项式时间内可识别的语言类。一个函数 (p(n)) 是关于整数 (n) 的多项式,形式如下:
[p(n)=c_k n^k + c_{k - 1} n^{