为什么图灵机只能识别一种语言?


13

我试图理解不可识别语言的存在。为此,我需要知道为什么图灵机只能识别一种语言,而不识别多种语言。为什么是这样?


12
我怀疑您可能对“语言”的含义不清楚。您能说出您相信“语言”是什么吗?
埃里克·利珀特

你为什么要知道那个?您认为这可能会有所作为?
2015年

Answers:


29

根据定义,图灵机识别的语言是它接受的一组字符串。将输入提供给机器时,输入是否被接受。对该计算机的任何特定输入要么总是被接受(用语言),要么总是不被接受(不是用语言)。因此,没有一种机制可以使一台图灵机甚至可以接受多个语言。


6
我会说“按定义”。
戴夫·克拉克

1
@DaveClarke当然是定义。但这在我看来有点短,因为它还表示我们可以使我们的定义有所不同,以便TM可以接受两种语言或任意多种语言。我实际上不同意David Richerby的说法,即TM没有一种机制可以接受两种语言:这仅仅是因为我们选择忽略它们,否则我们可以这样做。因此,恕我直言,如果我们不解释这样做的合理性,那么这个问题将无法得到完全回答。
2015年

2
我认为这里的问题是用于描述“语言”本身的语言。无论我们对语言的定义如何,图灵机都可以接受字符串形式的任何内容。TM通过其接受的语言来定义语言,这与我们(人类)对语言的理解不同。这就是为什么这个答案很好并且被“ ...完全回答”的原因。
大卫·巴克

2
我同意David的观点,OP很可能读过Turing机器只接受一种语言的地方,并且正在努力理解这意味着什么。鉴于这可能来自正常来源,我们可以假定他们使用的是计算理论中定义的“语言”的正常定义,而不是其他任何定义。该定义可以是任意的,但是它是一个很好理解的共识。
科特·阿蒙

3
接受两种语言的图灵机就是接受一种语言的两种语言的图灵机。
西蒙·里希特

9

这样想:TM就像一台装有软件的计算机。每个软件都做一件事,对吗?例如,考虑一下您的计算机,并假设其中仅加载了1个程序。然后PC +“ photoshop”仅执行photoshop,而PC +“扫雷器”仅扫雷。

因此,图灵机是一种非常简单的生物,每次运行都获得一个输入,并输出yesno。它在哪个输入上表示是,在哪个上表示否-这是由TM的“程序”设置的,该“程序”由状态和转换函数决定。一旦解决了这些问题,“程序”就被修复,对于任何给定的输入,只有一个答案:(接受/拒绝)。这恰好定义了一种语言= 给TM时产生“是”的所有输入。

在另一方面,该所有 TMS是相当于一套计算机+“软件”与所有可能的方案。现在可以确定更多的语言-但是,每个特定的TM只能确定(或识别)一种语言。


关键点:我不会说TM输出“是或否”,因为这忽略了非终止。这种简化可能会在以后引起更多问题。

4

图灵机之所以像它们那样工作,是因为我们选择定义它们。 我们可以有更复杂的定义,但问题是它是否可以达到目的,是否可以使我们做更多的事情。而且,据我们所知,答案是否定的。

制作能够识别两种语言的图灵机模型非常容易。给定语言L 2,我们可以定义一种具有两种接受状态的TM:一种用于L 1,一种用于L 2。A TM将被所述接受大号如果它进入在某一点,相应的接受状态。但是它将恢复计算以查看它是否也可以进入另一种接受状态。我们可以要求它稍后停止,或者可能不停止。然后,您可以在这样的机器上建立整个理论。它会比我们通常做的事情复杂得多。L1L2L1L2Li

L1L2

关键是各种变体都可以用来做理论。还尝试了非常不同的方法来对计算进行建模,例如lambda演算,组合逻辑,递归函数理论等。

始终表明,它们中没有一个能做我们TM仅识别一种语言的简单模型无法完成的任何事情。在某种程度上,人们猜测它会做任何可以做的事情。那就是所谓的“ Turing-Turing”论文。它是可计算性理论的基石,据我们所知,它决定了哪些语言可以识别。

因此,我们不妨使用一种简单的模型,因为复杂的模型会使我们的生活更加艰难,而没有任何实际好处。

当然,有时我们会使用其他模型,因为它们可以使我们更好地理解某些问题。


我认为第一段有些误导。我愿意打赌,OP并不是在问我们为什么要用这种方式定义事物,而是他们甚至都不知道是这种情况。“我们可以有更复杂的定义,但问题是它是否可以达到目的”似乎使您需要先了解概念的目的,然后才能想出一个名字-在我看来,这很不好学习方式。
有趣的是

OP说他想知道为什么TM只识别一种语言才能理解其他语言。我回答他,他们这样做是因为我们以这种方式定义它们。我补充说的是,我们可以使用不同的定义,但这不会改变理论。这是一种告诉他的方法,无论他追求什么,定义的选择都是无关紧要的,并且可以定义可识别性以覆盖完全相同的集合。选择定义的原因是方便和富有成果,这就是为什么它们会随着时间的推移以及概念的命名或标注方式而发展的原因。
2015年

好的,那很有道理。我认为我主要是反对“复杂”的使用-这意味着需要一个不太简单的定义。
有趣的是

3

我想在Richerby的回答中扩展一点:

将输入提供给机器时,输入是否被接受。

原因是图灵机是确定性的:给定相同的输入和启动状态,它每次运行时都将始终执行相同的操作(终止于相同的接受状态或相同的拒绝状态,或者永远循环)。

此外,我们可以轻松证明每台Turing机器都能识别一种语言:

矛盾地,假设图灵机M识别两种不同的语言L1和L2。由于L1和L2是不同的,因此必须在L1中存在一个字符串S,但在L2中不存在(不失一般性-可以反过来,但是从此处交换L1和L2,证明将以相同的方式进行)。现在在S上运行M。如果它接受,则会产生矛盾,因为S会在L2中。如果它不接受(拒绝或循环),则将产生矛盾,因为S不在L1中。


2

Turing机器识别一种语言,因为这是“ 识别 ”一词的定义:Turing机器识别的语言是Turing机器接受的所有字符串/输入的集合。


2
欢迎来到计算机科学!您的答案是正确的(IMO),但我认为它不会增加先前的答案。我们有很多未解决的问题,回答其中一个问题比重复现有答案要有趣得多,效率更高。
David Richerby

1
谢谢!实际上,我起初没有看到当前接受的答案(我认为很好),因为答案太短了,我觉得其他答案都没有以简单的方式回答问题。
有趣的是

1

答案取决于您对“车床”的理解。任何计算模型都有三个组成部分(此处仅限于决策者/接受者):

  • 句法,
  • 语义,
  • 验收标准。

对于图灵机,语法将是状态集,字母,过渡函数等的元组。该语义将一个定义计算,那就是介绍如何应用过渡功能,以获得一些步骤之后磁带的内容。的验收标准是说,“当这种情况发生,我们停下来,结果却是”。

现在,图灵机对您来说只是语法和语义,还是您还包括接受标准?如果您选择前者,则任何TM都可以使用不同的接受标准来接受多种语言。您甚至可以构思允许多种接受语言的接受标准(例如,考虑两参数TM)。但是,如果您选择后者,则不会有任何回旋余地,通常的接受标准确实确实允许每个TM(这种类型)使用一种语言。

TCS中术语的通常定义和用法包括所有三个部分。这是有道理的,因为特别是更改接受标准可以极大地改变自动机所代表的对象的类别,因此我们需要确定标准以了解我们在说什么。

例如,比较有限自动机Büchi自动机。语法和语义完全相同,但是一个接受有限的单词,而另一个接受无限的单词!
尝试弄清楚如果将Büchi自动机的接受标准插入TM定义中会发生什么。

现在,为什么通常的接受标准是有意义的标准?只要您将自己限制为有限字符串的语言,就在概念层面上,每个TM可以使用多种语言,不会有太大变化:我们仍然可以接受同一组语言。因此,我们坚持使用更简单的模型。但这并不是说,涉及更多的模型对应用程序中的建模没有用,但这超出了TCS的范围(拥有权威性)。


0

M1L1L2L1L2s1s1L1s1L2M1s1s1L2M1s1sL2sL1

MLsLMssMsL

sLMs

ATM


不必证明TM只能识别一种语言:这是直接从“识别”的定义开始的。有了这个定义,甚至还不清楚TM接受一种以上的语言(如您在第一句话中所假定的)意味着什么,或者从这样的假设中进行的任何推论(如您在第三句话中)是否有效。仅当推论是不透水的时,通过矛盾的证明才有效:此处,错误可能出在关于识别TM的TM行为方式的假设上,而不是在存在这种机器的假设下。
David Richerby

-2

语言是一组字符串。两种语言L1和L2的并集不是一组字符串(我们称其为L3),那么另一种语言也不会吗?然后,如果图灵机识别两种语言,则它会识别L3(一种语言)。


2
但是,图灵机无法识别两种语言,除非它们实际上是相同的。识别出L1意味着它不接受L1之外的任何字符串。识别L2表示它不接受L2之外的任何内容。如果L1和L2不同,则无法识别两者。
David Richerby

-3

没有其他答案指出通用图灵机的存在,这是图灵在他的暂停证明中首次描述/发现的。是的,TM接受一种递归可枚举的语言,但是如果将UTM与输入字符串一起编码在输入上,则UTM可以识别任何递归可枚举的语言。所以这个问题有些禅意。TM都仅接受一种语言和所有可能的可编码语言。


4
{M,xM accepts x}

&那和写的有什么不同?
vzn 2015年

2
识别语言编码与识别语言不同。
David Richerby,2015年

是的,完全
如上所述

1
{(m,x)m=M,}xm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.