本书算法通过“电路”演示快速傅立叶变换,使用“导线”传输数据。什么是电路?它只是本书作者为更好地演示算法而构成的概念,还是公认的计算机科学概念?
答案 0 :(得分:2)
你的问题的答案是,是的,“电路”是理论计算机科学中公认的概念,借鉴了电子学的相关概念。布尔电路基本上就是它的声音:用于计算二进制字符串的模型,由布线逻辑门与电线串在一起组成。您可以在维基百科上找到正式定义here,。
正如您所见,它们派上用场的地方确定了特定问题的复杂性。 FFT示例相当容易,但最有名的例子可能是库克对NP完全性的定义,它可以证明确定给定的布尔电路是否满足是NP-Complete。Barrington和Maciel有一系列的计算复杂性lecture notes,它们在第一讲中引入了电路,并继续使用这个概念。
答案 1 :(得分:0)
有些问题很容易,有些问题很难。为了说明什么使问题变得容易以及什么使得更难以解决问题,我们通常使用计算机模型并对这些模型施加约束。
Turing Machines是用于定义问题类别的常用模型。例如,复杂性类 P 包括问题,使得存在图灵机,其可以针对某个幂p(多项式时间)解决O(n ^ p)时间的问题。我们可以使用图灵机上的时间或空间限制获得其他复杂性类。
Non-deterministic Turing Machines是计算机的另一种模式。 Alternating Turing machines are another。存在许多计算机模型,每个模型都可用于定义不同类型的问题。 Circuits是这些计算机模型之一。
图灵机可用于建模单线程计算机程序。在对大规模并行计算进行建模时,电路会发光。例如,Nick的类或 NC 包含可以使用多项式数的处理器“快速”(多重日志时间)解决的问题。