理解计算理论中的识别者和决策者

时间:2011-03-14 04:18:04

标签: computer-science computation-theory

我在掌握机器识别和决定语言意味着什么方面遇到了一些麻烦。我认为我接近定义但不对。

当有人说图灵机T识别语言L

L = { <A> | A is a DFA }

其中DFA =确定性有限自动机

我的理解是,它意味着可以构建一个图灵机,给予任何类型的输入(字符串,汽车,人,等等!)将能够告诉你,你作为输入提供的东西是否是一个DFA与否。我的意思是,我将始终接受DFA并始终拒绝非DFA输入。

即,如果该输入是L的成员。另一个例子就是说X家是他父亲的认可者,无论你摆在他面前的是什么,他都能告诉你他面前的是他父亲是不是他的父亲。它是否正确?哪部分不正确?

另一方面,语言上的decider似乎是一个永远不会loops的图灵机,也就是说,对于任何输入,它总是会在接受或拒绝状态下停止。这与我上面关于识别器的解释是不是相似或相同?

由于

4 个答案:

答案 0 :(得分:12)

经过一番研究,我认为我得到了两者之间的区别。

与往常一样,魔鬼在细节中。

首先,可判定语言始终是一种可识别的语言

可识别的语言是至少有一台机器将其作为语言的语言。起初,这可能看起来像是那些循环定义中的一个,但是......

用非专业术语来说,如果你能想到一台能够接受其所有字符串的机器,那么语言是可识别的。

一个例子

让我们设计一些非常简单的语言:

L = { abc }

这种语言仅由abc这个词组成。这意味着要证明这种语言是可识别的,必须构建一台接受它的机器。我们会非正式地做到这一点:

  

M是当输入接受abc时的机器,否则无限循环。

本机接受语言L的所有成员,因此它是L的识别器。但是,对于所有其他输入,它将永远挂起。如果机器存在,对于每个输入接受/拒绝,该语言也可以是可判定语言类的一部分。你能建一个吗?

(剧透警报!!! 11 @#$!1)

  

M'是指当abc作为输入接受时的机器,否则拒绝。

也就是说,因为有一台识别L的机器,无论你给它什么输入,总是接受/拒绝,语言被认为是可判定的。

此外,你是否有兴趣建立一台识别L的机器,你知道你至少有一台机器能够始终如一地完成它而不会产生能够接受abc但是失败的问题。其他情况,永远挂在上面!

答案 1 :(得分:2)

我认为简单的答案是:

决策者总是停止,接受或拒绝

但是

识别器并不总是停止,机器可以接受,拒绝或循环。通过循环意味着机器不会停止。

对于识别器,有时候我们会使用决策者来决定,如果机器在循环中,那么决策者将根据我们的描述拒绝。

答案 2 :(得分:0)

我认为图灵机识别诸如L之类的语言意味着图灵机将接受与L组成的DFA相同的所有输入。因此,在某种意义上,它们在这方面是等同的。

答案 3 :(得分:0)

可判定的图灵意味着有一台图灵机可以接受该语言中的所有字符串,并拒绝所有非该语言中的字符串,请注意,如果这是一台决定器,则不允许该计算机永远循环一个字符串,它必须停止在某一阶段接受或拒绝输入字符串。

可识别的图灵意味着有一个图灵机可以接受该语言的所有字符串。请注意,该计算机不必拒绝非该语言的字符串,换言之,允许该计算机在非该语言的字符串上永久循环。

要使用高级英语表达,决策者机器必须对问题“是语言A中的字符串x”回答“是”或“否”。 如果字符串的语言不是BUT,则识别器必须对相同的问题回答“是”,如果字符串不是,则可以说“否”或“没有注释,即永远循环”