Answers:
正如Max所说,修改并不难,我建议您不要阅读本答案的其余部分,而是多考虑一下问题,只有一部分需要修改,并且要记住机器接受将帮助您修复该部分。
我将在下面解释所需的修改,但首先让我们简要了解一下原始证明。
在证明原件是建立在步骤步骤用make确保个机,,并不能决定语言正确。请注意,该集合位于。我我P 中号我 { X | ∃ ý ∈ 甲| x | = | y | } N P A
我们使用在上建立的部分模拟来实现这一点,其中足够大(字符串比前面步骤中考虑的字符串长)。接受,我们不添加任何内容,如果它拒绝,我们添加一个长度为的字符串,表示不对该集合进行查询(存在这样的字符串,因为存在成倍的长度为字符串,但是无法询问所有这些都在多项式时间内)。在以后的步骤中,我们将不会修改这一部分(即长度为或更短的字符串将保持不变)。这可以确保甲0 米米中号我中号中号我中号中号我甲米中号甲我将无法正确决定语言并完成证明。
现在,假设机器位于中,而不是。我们需要修改的证明,以确保将无法识别。如果它接受,我们将保留为以前的样子,并且一切工作都与原始证明中一样。如果拒绝,我们需要在集合中添加一个字符串,以确保其不能正确回答。我们仍然可以用的一部分来模拟,问题是可能查询所有长度为字符串。机器的工作方式在这里变得很重要。它接受且仅当全部Ç ö Ñ P P 中号甲我大号阿中号我阿中号我 Ñ Ç ö Ñ P米甲计算路径接受。由于在这种情况下拒绝,因此存在一条拒绝的计算路径。只要我们保持此路径完整无缺,一切都会起作用,因此我们只需要使该路径中查询的答案保持相同即可。该路径中的查询数量是多项式(因为机器以多项式时间运行),因此存在路径长度不为字符串,只需将其中一个添加到,其余的证明按之前。
这些步骤是算法步骤,因此集合是递归的(构造的基本部分是能够模拟可以在)。d 小号p 一个Ç ë(Ñ ω (1 ))
您可能还希望查阅Christos Papadimitriou撰写的“ 计算复杂性 ”一文。特别是第14章第3节,深入探讨了甲骨文。例如,详细提供了一些Oracle和和证明,这可能对您的主要问题有所帮助。希望能有所帮助。P B ≠ N P B A B