我可以肯定,我不是第一个接受即将提出的想法的人。但是,如果我能找到与该想法相关的任何文献,那将是有帮助的。
想法是构造一个图灵机M,其特性是,如果P = NP,则M将在多项式时间内求解3-SAT。(3-SAT的选择是任意的。在NP中实际上可能是任何问题)。
只是要清楚,这并不是P = NP的主张。实际上,我相信相反。我仅声明如果P = NP,则M将提供多项式时间解。如果您正在寻找有效的解决方案,我应该警告说,这远非有效。
M的构造如下:首先,假设所有图灵机都采用规范编码,然后对这些机器应用编号。因此,有一个图灵机编号1,一个数字2等。通用图灵机可以读取所提供机器的格式,然后模拟该机器在单独输入上运行的想法是众所周知的。M将使用通用图灵机依次构建和模拟每台图灵机。
它首先一步一步模拟Turing Machine 1的运行。
然后,它查看Turing Machine 1的输出。
它模拟Turing Machine 1的运行两步,并查看输出,然后继续仿真Turing Machine 2的两步。它继续并以这种方式循环,依次运行图灵机1进行k步,然后运行2进行k步……然后最终运行k进行k步。
每次模拟运行后,它将检查运行的输出。如果输出是满足3-SAT问题实例的变量分配,则M停止处于接受状态。另一方面,如果输出是某种可验证的证明语言中的证明字符串,并且证明问题实例不能令人满意,则M处于拒绝状态。(例如,对于证明语言,我们可以使用具有二阶逻辑的Peano公理和基本的希尔伯特风格的逻辑公理。我将其作为练习让读者弄清楚,如果P = NP,证明语言存在并且可以多项式时间验证)。
在这里,我要说的是,当且仅当P = NP时,M才能在多项式时间内求解3-SAT。最终,该算法将找到一些神奇的图灵机,其编号为K,恰好是3-SAT问题的有效求解器,并且能够提供其成功或失败结果的证明。最终将对某个多项式运行poly(strlen(input))步骤模拟K。M的多项式在最大因子上大约是k的多项式的平方,但是多项式中有一些可怕的常数。
在这里重申我的问题:我想知道是否有文献采用这种思想。我对讨论这个想法本身不太感兴趣。