Answers:
根据定义,图灵机识别的语言是它接受的一组字符串。将输入提供给机器时,输入是否被接受。对该计算机的任何特定输入要么总是被接受(用语言),要么总是不被接受(不是用语言)。因此,没有一种机制可以使一台图灵机甚至可以接受多个语言。
这样想:TM就像一台装有软件的计算机。每个软件都做一件事,对吗?例如,考虑一下您的计算机,并假设其中仅加载了1个程序。然后PC +“ photoshop”仅执行photoshop,而PC +“扫雷器”仅扫雷。
因此,图灵机是一种非常简单的生物,每次运行都获得一个输入,并输出yes或no。它在哪个输入上表示是,在哪个上表示否-这是由TM的“程序”设置的,该“程序”由状态和转换函数决定。一旦解决了这些问题,“程序”就被修复,对于任何给定的输入,只有一个答案:是或否(接受/拒绝)。这恰好定义了一种语言= 给TM时产生“是”的所有输入。
在另一方面,该组的所有 TMS是相当于一套计算机+“软件”与所有可能的方案。现在可以确定更多的语言-但是,每个特定的TM只能确定(或识别)一种语言。
图灵机之所以像它们那样工作,是因为我们选择定义它们。 我们可以有更复杂的定义,但问题是它是否可以达到目的,是否可以使我们做更多的事情。而且,据我们所知,答案是否定的。
制作能够识别两种语言的图灵机模型非常容易。给定语言和L 2,我们可以定义一种具有两种接受状态的TM:一种用于L 1,一种用于L 2。A TM将被所述接受大号我如果它进入在某一点,相应的接受状态。但是它将恢复计算以查看它是否也可以进入另一种接受状态。我们可以要求它稍后停止,或者可能不停止。然后,您可以在这样的机器上建立整个理论。它会比我们通常做的事情复杂得多。
关键是各种变体都可以用来做理论。还尝试了非常不同的方法来对计算进行建模,例如lambda演算,组合逻辑,递归函数理论等。
始终表明,它们中没有一个能做我们TM仅识别一种语言的简单模型无法完成的任何事情。在某种程度上,人们猜测它会做任何可以做的事情。那就是所谓的“ Turing-Turing”论文。它是可计算性理论的基石,据我们所知,它决定了哪些语言可以识别。
因此,我们不妨使用一种简单的模型,因为复杂的模型会使我们的生活更加艰难,而没有任何实际好处。
当然,有时我们会使用其他模型,因为它们可以使我们更好地理解某些问题。
我想在Richerby的回答中扩展一点:
将输入提供给机器时,输入是否被接受。
原因是图灵机是确定性的:给定相同的输入和启动状态,它每次运行时都将始终执行相同的操作(终止于相同的接受状态或相同的拒绝状态,或者永远循环)。
此外,我们可以轻松证明每台Turing机器都能识别一种语言:
矛盾地,假设图灵机M识别两种不同的语言L1和L2。由于L1和L2是不同的,因此必须在L1中存在一个字符串S,但在L2中不存在(不失一般性-可以反过来,但是从此处交换L1和L2,证明将以相同的方式进行)。现在在S上运行M。如果它接受,则会产生矛盾,因为S会在L2中。如果它不接受(拒绝或循环),则将产生矛盾,因为S不在L1中。
答案取决于您对“车床”的理解。任何计算模型都有三个组成部分(此处仅限于决策者/接受者):
对于图灵机,语法将是状态集,字母,过渡函数等的元组。该语义将一个定义计算,那就是介绍如何应用过渡功能,以获得一些步骤之后磁带的内容。的验收标准是说,“当这种情况发生,我们停下来,结果却是”。
现在,图灵机对您来说只是语法和语义,还是您还包括接受标准?如果您选择前者,则任何TM都可以使用不同的接受标准来接受多种语言。您甚至可以构思允许多种接受语言的接受标准(例如,考虑两参数TM)。但是,如果您选择后者,则不会有任何回旋余地,通常的接受标准确实确实允许每个TM(这种类型)使用一种语言。
TCS中术语的通常定义和用法包括所有三个部分。这是有道理的,因为特别是更改接受标准可以极大地改变自动机所代表的对象的类别,因此我们需要确定标准以了解我们在说什么。
例如,比较有限自动机和Büchi自动机。语法和语义完全相同,但是一个接受有限的单词,而另一个接受无限的单词!
尝试弄清楚如果将Büchi自动机的接受标准插入TM定义中会发生什么。
现在,为什么通常的接受标准是有意义的标准?只要您将自己限制为有限字符串的语言,就在概念层面上,每个TM可以使用多种语言,不会有太大变化:我们仍然可以接受同一组语言。因此,我们坚持使用更简单的模型。但这并不是说,涉及更多的模型对应用程序中的建模没有用,但这超出了TCS的范围(拥有权威性)。
语言是一组字符串。两种语言L1和L2的并集不是一组字符串(我们称其为L3),那么另一种语言也不会吗?然后,如果图灵机识别两种语言,则它会识别L3(一种语言)。