形式陈述
有向图公理库有向图Directed graph · Digraph以顶点有序对为弧、能够保留连接方向的有限简单图结构。的源点到目标点可达性语言为
允许零长度路径,所以合法实例中 时答案为是。本页也允许自环,即弧集可为 的任意子集,邻接矩阵的对角位可以为 。固定一种显式编码:顶点编号为 ,;字符串依次写顶点数 、按行排列的 个邻接矩阵位、源点 、目标点 ,四个字段用分隔符连接,三个整数均用无多余前导零的二进制表示。矩阵尺寸、符号或编号不合法的字符串不属于该语言。STCON 在确定性对数空间多一归约下是 NL公理库复杂度类 NLComplexity class NL · Nondeterministic logspace可在非确定性对数空间内判定的语言类。 完全的,也就是 STCON 属于非确定对数空间类,且每个 都有 。
这里 表示存在总函数 ,由总停机的确定性转换器在输入长度 的 工作空间内输出,且对所有字符串 都满足
转换器有只读输入带和只写、不可回读的输出带;输出长度为多项式。标准模型也能从停机和多项式多个内部配置推出这一长度界:若不含输出位置的内部配置重复,机器因无法读输出而会重复同一行为,不能最终停机。归约只负责构造实例,不调用目标语言判定器。
成员性:有界猜路
NL 机器先用计数器检查编码合法性:扫描取得输入长度 ,读取顶点数字段时一旦数值超过 就拒绝,因为合法输入仅矩阵就有 位。这样即使遇到非法的超长数字,也不必保存超过 位的整数;其余字段和矩阵尺寸可用同阶空间计数核对。然后保存当前顶点 和步数 ,初始为 。若 则接受;否则,在 时猜测下一个顶点 ,扫描只读矩阵检查 ,有边才更新当前位置并增加步数。无边、非法编号或用尽预算仍未到达目标的分支拒绝。
若图中可达,去掉回路便得到至多 步的简单路径,某个分支能够猜中并接受。若不可达,任何由合法边组成的猜测都不会到目标,所有分支最终拒绝。当前位置、候选编号和步数各用 位,矩阵扫描索引用 位,因此总工作空间为 。步数上限保证每条分支停机,即使图中有自环也成立。
困难性:逐位生成配置图
任取 ,固定判定它的对数空间非确定机器 。对于输入 ,完整配置包括有限状态、 位工作内容、工作头位置和输入头位置,所以可用 位编码。令 ,归约器保留编号 的所有候选作为图顶点,另添编号为 的超级接受点 ;不合法的候选编码成为孤立点。这样无需先计算“第几个合法配置”,图顶点数 已经明确且为多项式。
转换器先输出二进制顶点数 和分隔符,再按行序枚举 ,每行枚举 。每对 恰好输出一个矩阵位,规则为:
- 若 ,两者均为合法配置,且 在输入 上能够一步从 转移到 ,输出 。
- 若 、,且 是合法接受配置,输出 。
- 其余情况全部输出 ,包括超级接受点所在的整行。
因此每行最后一位直接写出该顶点是否连向 ,不需要回头补列。合法性检查须确认带符号、状态、工作预算、各头位置和固定填充均有效,一步检查则逐位置比较带内容并核对有限转移规则。需要输入字符时回扫原输入定位。转换器只保存两个编号和少量扫描计数器,整个过程只用 工作位。
完整矩阵输出结束后,转换器依次输出分隔符、初始配置编号 、分隔符和目标编号 ,完成开头约定的四字段编码。初始配置必有合法编码;孤立的非法候选不能制造接受路径。邻接矩阵有 位,是多项式长度,所有字段顺序写到输出带,转换器既不保存整张矩阵,也不回读已输出的内容。对于任意字符串 ,机器 都定义了计算,故此构造是全函数;若 的应用语法把某些串定义为非法, 对它们拒绝,图也随之成为否实例。
若 ,取一条接受计算,其配置序列给出从 到某个接受配置的图路径,再走一步就到 。反过来,若图中存在起点到 的路径,最后一条边的前驱必是合法接受配置;此前每条边均为 的真实一步转移,所以该路径给出接受分支。于是
因此,归约在两个方向都保持成员资格,完成困难性证明。
直觉
非确定机器每次选择一个后继配置,恰好对应在有向图上选一条出边。对数空间的作用有两层:一份配置足够短,因而所有配置的总数只有多项式;检查两份配置之间是否有一步边也足够省空间,因而整张图能逐位生成。仅证明“图的规模是多项式”还不够,生成它的工作区也必须满足对数预算。
归约器的输出可以比内存大很多,就像用两只计数器依次打印矩阵的每个格子。输出带不可回读,因此已经打印的内容不占工作空间,也不能供后续计算读取。下一节进一步说明,当目标算法想读回这张图时,复合机器怎样重新生成需要的那一位。
例子与边界
同一八点图的两种答案
取顶点 ,边为链 ,另有 与 ,询问从 到 。猜路分支 在六步后接受;猜到 的分支即使不断选择自环,也会在七步预算用尽时拒绝。存在拒绝分支不影响是实例的接受,成员性只要求至少一个接受分支。
删除 后,从源点可达集合是 。每条合法分支都被困在该集合,因而所有分支拒绝。这与Savitch 定理公理库Savitch 定理Savitch's theorem通过配置可达性的中点递归与工作区复用,把非确定空间 s 确定化为平方空间。中的中点表使用完全相同的图:前者展示非确定地猜一条路,后者展示如何用确定性递归穷尽中点而复用工作区。
低空间复合:把输出作为虚拟输入
设 是上面的对数空间转换,输出长度 ;假设目标语言有一个对数空间判定器 。不能先把 全部写入可读工作带,再运行 ,因为这一步就可能使用多项式空间。正确模拟只保存 的工作区、状态和虚拟输入头位置 ,需要读 的第 位时,从头重跑转换器 。
重跑时另设输出计数器,每当 准备写一位就增加计数,计数到 时把那一位交给 ;之前的输出全部丢弃。如果需要长度或右端标记,则重跑到结束并计数。每次读字符可以重复同样过程,无须缓存已读前缀。 的工作区用 位,虚拟输入索引用 位,转换器及其输出计数器用 位;由 ,这些空间相加仍为 。
例如虚拟输入是配置图的邻接矩阵, 想读第 个矩阵位时,复合机按图生成顺序重算到那一位,取得边是否存在的答案,再恢复 的执行。若接续的是另一个对数空间转换器,也同样按需模拟它的输入读取,同时将最终输出写到真正的只写输出带。这说明对数空间归约可复合,且目标属于 L 时源也属于 L。
归约方向与资源界
若要证明目标问题 为 NL 困难,应构造 ;目标算法便能经过转换解决 STCON,再借传递性解决所有 NL 语言。反向 只表示可用 STCON 的算法解决 ,不证明 困难。困难性还必须配合 ,才能得到完全性。
多项式时间归约公理库多项式时间归约Polynomial-time reduction · Karp reduction用一个多项式时间可计算的变换把问题 A 的实例转换为问题 B 的实例。不足以表达这里的精细困难性。STCON 可用 BFS 在多项式时间内判定;上述配置图也可在多项式时间构造,因此 NL 包含于 P。于是一个多项式时间归约器可以先解决任意 NL 源问题,再按答案输出任意非平凡目标语言中固定的是实例或否实例。这种归约无法辨认对数空间的难度差异。
推论与应用
配置图构造与显式图搜索给出 ,但 BFS 的访问标记和队列不保证对数空间。把同一可达性问题交给 Savitch 定理公理库Savitch 定理Savitch's theorem通过配置可达性的中点递归与工作区复用,把非确定空间 s 确定化为平方空间。,则得到确定性 空间算法;这是空间保证,不能把它的中点枚举误记为多项式时间保证。
STCON 属于 L 当且仅当 L=NL:正向由本页的完全性和低空间复合得出,反向因为 STCON 本来就属于 NL。这一等价明确了试图把有向可达性压到对数空间的意义。Immerman–Szelepcsényi 定理公理库Immerman–Szelepcsényi 定理Immerman–Szelepcsényi theorem · NL equals coNL非确定性空间类在补运算下封闭,特别地 NL 等于 coNL。另给出 NL 对补封闭,因此有向不可达性也有非确定对数空间算法;这不是简单交换猜路机器的接受和拒绝状态。
参考资料