我有两个历史问题:
谁首先描述了不确定性计算?
我知道库克描述了NP完全问题,爱德蒙兹提出了P算法是“有效”或“良好”算法。
我搜索了这篇 Wikipedia文章,并略读了“关于算法的计算复杂性”,但找不到关于非确定性计算第一次讨论的参考。
第一次提到NP类是什么?是库克(Cook)的1971年论文吗?
我有两个历史问题:
谁首先描述了不确定性计算?
我知道库克描述了NP完全问题,爱德蒙兹提出了P算法是“有效”或“良好”算法。
我搜索了这篇 Wikipedia文章,并略读了“关于算法的计算复杂性”,但找不到关于非确定性计算第一次讨论的参考。
第一次提到NP类是什么?是库克(Cook)的1971年论文吗?
Answers:
我一直见过可归因于迈克尔·拉宾(Michael Rabin)和达娜·斯科特(Dana Scott)的计算中的不确定性概念。他们在著名的论文定义非确定性有限自动机有限自动机及其决策问题,1959年拉宾的图灵奖引文也表明,拉宾和斯科特介绍了不确定的机器。
这是Odifreddi在这个问题上说的:
“我们的图灵机模型是确定性的,在某种意义上说,指令必须是一致的(在给定的情况下,最多只能使用其中的一条指令。)香农[1948]和De Leeuw,Moore,Shannon和Shapiro [1956]基本上有两种模型:不确定性的图灵机在模棱两可的情况下(可能适用有冲突的指令)通过随机选择其中之一来表现:它们的计算能力至少为0,一值函数(集合)不超过确定性函数的能力。概率机器与非确定性机器的不同之处在于下一状态具有概率,因此冲突的指令被机器选择的机会不同。”
[P. Odifreddi,古典递归理论,第 1,第50页]
请注意,可计算性理论中早就存在复杂性理论(例如Kleene的范式,算术层次结构)中的“存在+验证者”意义上的不确定性概念。其他计算模型,例如 Post规范系统(至少自1943年以来为人所知)和语法,也是不确定的。我认为甚至可以将这个概念推到希尔伯特的ε演算和选择算子时代。
关于NP,我问史蒂夫·库克。理查德·卡普(Richard Karp)在其1972年的著名论文中引入了用于不确定性多项式时间可计算问题的类的名称NP。库克在其1971年的著名论文中提到了多项式时间不确定的Turing机可计算问题的类别,该论文定义了多项式时间约简,并表明存在完整的问题,但未给此类命名。
在他的论文之前,对不确定性图灵机在多项式时间内可计算的问题的兴趣不大,只有在卡普的论文之后,才发现NP中存在许多自然问题。库克的论文发表后,一些人开始感兴趣,尤其是早在卡尔普的论文发表之前就对此感兴趣的两个人是迈克尔·拉宾(Michael Rabin)和艾伦·鲍罗丁(Allan Borodin)。
卡普(Karp)在1972年发表的论文中,通过证明普遍存在的NP完全性是自然问题之一,使人们感到惊讶。
Rabin和Scott于1959年4月在IBM期刊上发表了他们的研究论文,介绍了非确定性有限自动机。他们在论文中提到:
我们通过消除复杂的输出函数并使我们的机器简单地给出“是”或“否”的答案,采用了更简单的定义形式。Myhill也使用此方法,但是我们对“不确定性”,“双向”和“多带式”机器的概括似乎是新的。
全文可在此处查看:http : //www.cse.chalmers.se/~coquand/AUTOMATA/rs.pdf