总映射与答案保持

多一归约,又称映射归约,是语言之间的一种可计算性关系。A≤mB表示存在总可计算函数f,对每个字符串x都有x∈A当且仅当f(x)∈B。总可计算意味着计算f的机器在所有输入上都能停机并给出结果,而不只是对某些肯定实例成功。

“多一”不是要求每个目标恰好有多个原像,而是允许不同源输入映到同一个目标输入;函数不必单射,也不必满射。真正关键的是成员资格的双向保持。普通格式转换若没有这项保证,或者必须先解决不可判定的问题才知道如何转换,就不构成所需归约。

参考:[1] [2]

转换的是程序,不是先求答案

一个典型构造从机器M及输入w出发,生成新机器N的描述。N在输入y不等于w时拒绝;当y=w时模拟M在w上的运行,并且只在M接受时接受。于是N识别的语言,要么是单元素集合{w},要么为空,取决于M是否接受w。

生成N的程序文本不需要先判断M会不会接受w,只需把M和w嵌入一个固定模拟模板。若以A_TM表示机器接受语言,以NONEMPTY表示机器语言非空的描述集合,就有〈M,w〉∈A_TM当且仅当〈N〉∈NONEMPTY。这个例子显示归约的计算可以结束,而被编码的运行仍可能永不结束。

参考:[1] [2]

可解性与困难性的方向

若A≤mB且B有判定器,先计算f(x),再运行B的判定器,就能判定A。若B只有识别器,同一组合仍能识别A:成员输入最终接受,非成员可以拒绝或不停机。因此可判定性和可识别性都从目标B传回源A。

取逆否命题,若A不可判定,则B也不可判定;若A不可识别,则B也不可识别。证明一个新问题B困难,应把已知困难的A归约到B。仅仅把B归约到一个困难问题,不能证明B同样困难,因为容易问题也可能借助较强的求解器。

参考:[1] [2]

归约的复合与资源限制

多一归约具有自反性和传递性。恒等函数给出A≤mA;若A经f归约到B,B经g归约到C,则g∘f是总可计算映射并保持答案,故A≤mC。这些性质使归约链能够组织出问题的相对能力关系,却不要求反向归约也成立。

这里仅限制可计算,不限制转换所花时间。若进一步要求f能在多项式时间内计算,才得到复杂度理论中的多项式时间多一归约。图灵归约则允许把目标问题当作可多次查询的预言机,并根据答案继续计算,能力更灵活;不能混用不同归约下的困难性结论。

参考:[1] [3]