Skip to content

Lecture 11. Introduction to Space Complexity 空间复杂性引入 ​

定义 。若图灵机 一定停机,且对于长度为 的输入,至多使用 个纸带的格子,那么就意味着图灵机 runs in space 。若非确定性图灵机 的所有分支都必定停机,且对于长度为 的输入,每个分支都至多使用 个纸带的格子,那么 也是 runs in space 的。

定义:

  • .
  • .
  • .
  • .

时间复杂性强调了单带,这里空间复杂性没有。

这里空间复杂性并不是指的额外空间占用,而是总共的空间占用。那么问题来了, 等亚线性是什么情况?亚线性空间的都是使用两个纸带的模型。一个纸带是输入的,只读;另一个纸带随便。

时空复杂性的关系 ​

定理:对于所有的 ,都有 。

证明:runs in steps 的图灵机,不可能使用超过 个纸带格子。反之,能使用 个纸带格子的图灵机,至少需要运行 步,但也不能消耗超过 的时间(假设不死循环, 代表格局的数量)

推论:。但是注意 的不一定在 中。


定理:。但是注意 的不一定在 中。

证明:只需先证明出:

  1. 。
  2. 归约,若 且 ,那么就能推出

定义:。。

,。

。

但是目前学术界不知道,是否 ,或者是否 。

通常认为的关系是:

image-20221205111403262

事实上,以后还将指出:。

TQBF 问题 ​

量词(quantifier) 包括 和 。

定义 quantified Boolean formula(QBF)表示开头具有 或 修饰的布尔式子。所有布尔变量都在作用域 scope 内。有的 QBF 是真的,有的是假的。

  • 真
  • 假

定义问题 。根据定义,刚刚两个式子:

不难发现, 问题就是仅含有 的 问题。

定理:。

证明:设计一个图灵机 。 "On input :"

  1. 若 不具有量词,那么 就不含变量。所以 的形式就是 或 。直接输出
  2. 若形式是 ,那么分别令 和 ,递归地计算 。若任意一个计算接受了,就接受。否则就拒绝。
  3. 若形式是 ,那么分别令 和 ,递归地计算 。若两个计算都接受了,就接受。否则就拒绝。"

接下来分析这个的空间占用。

每一层的递归,都要消耗常数级别的空间来记录 的值。而递归的深度,不会超过量词的个数,于是也就不会超过 。故,。

Ladder 问题 ​

ladder 是指,一堆由长度相等的字符串(而不是字符)构成的数组(序列),且每一个相邻的字符串,仅有一个字符不同。(有点像格雷码呢)

比如,这个 WORK 到 PLAY 的序列就是一个 ladder:

image-20221205115425843

A word ladder for English is a ladded of English words.

Let be a language, a ladder in is a ladder of strings in .

定义: 。

定理: ​

证明思路比较简单:(注意图灵机无法存储序列,且必须停机)。

该非确定性图灵机 "对于输入 :"

  1. 若 直接拒绝
  2. 令 ,令
  3. 重复以下步骤至多 次:
    1. 非确定性的修改 当中的一个符号
    2. 若修改后的 则直接拒绝
    3. 若修改后的 则接受
  4. 如果已经运行了 步还没有接受,那么也拒绝。"

这台图灵机虽然步骤 3 消耗的时间达到了指数级别,但是它的额外空间占用始终是线性级别(存储当前串串 和运行上限次数 )的。故 .

定理: ​

考虑一个简化的问题:。

构造图灵机: "对于输入 ,

  1. 令
  2. 对于 的情况,若 且 的编辑距离在 以内,则接受,否则决绝
  3. 对于 的情况,对于每个 中长度为 的串串 ,重复以下步骤(枚举语言中所有指定长度的串串):
    1. 递归地检查:是否能 且 (二分)
    2. 若两边的调用都接受了,就接受,否则继续
  4. 拒绝(所有检查都失败了)"

那么,对于 的判定,就可以转化为 ,其中 。

空间分析:每一层消耗 的空间来记录单词(选择的 是谁),递归总共 层,故空间复杂度是 。