我是一名电气工程师,而且26年前在大学里只有一门CS课程。但是,我也是Mathematica的忠实用户。
我觉得图灵机在计算机科学中非常重要。重要性仅在计算机科学理论中吗?如果有实际意义/应用,其中有哪些?
我是一名电气工程师,而且26年前在大学里只有一门CS课程。但是,我也是Mathematica的忠实用户。
我觉得图灵机在计算机科学中非常重要。重要性仅在计算机科学理论中吗?如果有实际意义/应用,其中有哪些?
Answers:
图灵机的重要性是双重的。首先,图灵机是最早的(如果不是第一个)计算机理论模型,可以追溯到1936年。第二,考虑到图灵机,已经发展了许多理论计算机科学,因此许多基本结果是用图灵机的语言。原因之一是图灵机很简单,并且易于分析。
也就是说,图灵机不是用于计算的实用模型。作为工程师和Mathematica用户,他们根本不会关心您。即使在理论上的计算机科学界中,在算法和数据结构领域中也使用了更现实的RAM机器。
实际上,从复杂性理论的角度来看,图灵机在多项式上等同于许多其他机器模型,因此可以根据这些模型等效地定义P和NP等复杂性类。(其他复杂度级别则更为精细。)
图灵机是早期的计算模型之一,也就是说,当人们对计算本身了解得不多时(大约在1940年),便开发了它们。我想关注两个方面(可以说)使它们成为当时的首选模型,这导致它们成为最成熟的模型,因此最终成为标准模型。
证明的简单性从
理论上讲,图灵机具有“简单”的魅力,即当前的机器状态只有恒定的大小。确定下一台机器状态所需的所有信息是一个符号和一个(控制)状态号。机器状态的变化同样很小,仅增加了机器头部的运动。这极大地简化了(正式)证明,尤其是要区分的案件数量。
将这方面与RAM模型进行比较(如果不以其极简形式使用):下一个操作可以是几种操作中的任何一种,它们可以访问任何(两个)寄存器。还有多种控制结构。
运行时和空间使用情况
(仅有)与Turing Machines几乎同时出现的两个主要计算模型,即Church的演算和Kleene的 mu-递归函数。他们回答了图灵所做的相同问题-希尔伯特的Entscheidungsproblem问题 -但很难(如果有的话)很容易地定义运行时和空间使用情况。从某种意义上说,他们是过于抽象因此被涉及到更真实的机型。
但是,对于图灵机,这两个概念都很容易定义(如果我没记错的话,这是图灵在其模型的第一篇论文中)。由于对效率的考虑很快对实际操作非常重要,因此这是图灵机的绝对优势。
因此,已经建立了图灵机作为计算模型,可以将其视为历史“事故”及其某些关键属性的组合。然而,自那时以来已经定义并大量使用了许多模型,特别是为了克服图灵机的缺点。例如,他们对于“编程”(即定义)很乏味。
我在实践中不知道有任何直接应用。特别是,计算实践与计算理论并行(并且一开始主要独立于计算理论)而发展。编程语言是在没有正式机器模型的情况下开发的。但是,很明显(事后看来),理论上在计算实践中取得了许多进步。
此外,请记住,应该通过考虑所有后代来衡量理论概念对实践所具有的价值,即,后续工作,结果和该概念可能带来的新思想。在这方面,我认为可以说图灵机(以及其他机器)的概念彻底改变了世界。
图灵机是计算的数学模型。它的好处是:
1.检查可确定性如果TM无法在可计算的时间内解决问题,那么将没有任何算法可以解决该问题(这是无法确定的问题)。
对于一个决策问题,如果对于所有有限长度的输入,其TM在可计数的时间内停止,那么我们可以说该问题可以通过算法在可计数的时间内解决。
2.分类问题 TM有助于将可确定的问题分类为多项式层次结构。
假设我们发现问题是可以确定的。然后目标就变成了我们解决问题的效率。效率是通过步骤数,使用的额外空间,代码长度/ FSM大小来计算的。
3.实用机器的设计和实现算法 TM有助于在其他实际机器中传播算法思想。成功检查1,2个标准后,我们可以使用实际的设备/计算机来设计和实现算法。
图灵机是一种良好的心理锻炼方法,几乎没有实际用途。没有一个人没有害处。图灵机的所有应用都是直观的或有宗教性的,因为无法证明或驳斥它们。