下推自动机“猜测”-这是什么意思?


14

我意识到非确定性下推自动机可以比确定性下推自动机更好,因为它们可以在多个状态之间“选择”,并且有一些上下文无关的语言无法被确定性下推所接受。

不过,我不知道他们到底是如何 “选择”的。例如,对于palindormes,我发现的每个来源都只是说自动机“猜测”了单词的中间部分。这意味着什么?

我可以想到几种可能的含义:

  1. 它随机进入一种状态,因此可能不接受实际上是该语言中的单词

  2. 它以某种“一切可能的方式”进行,因此,如果第一个错误,它将测试另一个是否正确

  3. 我不知道某种机制,它选择单词的中间,因此不是随机的,但是自动机总是找到正确的中间。

这只是一个例子。我想知道的是,对于具有一个以下多个状态且位于同一状态之前的自动机,它是如何工作的。


相关:我们的参考问题解释了随机算法和不确定算法之间的区别。
拉斐尔

Answers:


8

很简单,机制是魔术。非确定性的思想是,它只知道接受该词应该采取哪种方式,然后就这样去了。如果有多种方式,那就是其中之一。

非确定性无法在真正的硬件中实现。我们使用回溯等技术对其进行仿真。但这主要是一个理论工具,可用于简化某些概念的表示。

对于回文,您可以通过两种方式来考虑。有一种神奇的力量可以让您的机器说出“这是单词的中间,是从推送到弹出的时间”,或者在读完每个字母之后,它说:“我将分叉这个字母的新过程是单词的中间,然后看是否发现它是回文。然后在另一个线程中,我将继续尝试,假设这不是单词的中间。”

另一种思考方式是无限并行性。因此,一个等效的模型将是,它不尝试选择新路径,而是同时尝试两条路径,分支出新的“过程”,如果在读取整个单词后处于最终状态,则成功。同样,这不能使用真实的硬件构建,但是可以使用不确定性进行建模。

关于不确定性的有趣之处在于,对于有限自动机和图灵机,它根本不会增加它们的计算能力,而只会增加它们的效率。


5

确定性自动机和非确定性自动机之间的主要区别(以我的观点)是,对于确定性自动机,给定的输入单词只有一条通过机器的路径。在不确定的自动机中,给定的输入单词可能具有通过机器的多个路径(因为在某些点上可能有选择)。

鉴于此,还需要改变接受输入单词的条件以适应单词可能引起通过机器的多个路径这一事实。对于非确定性自动机,接受的通常定义如下:要使自动机接受一个单词,该单词必须至少有一个接受路径。

然后,这导致了自动机“猜测”的想法,如果一个单词被不确定的自动机接受,那么我们倾向于认为自动机会自动做出正确的选择,从而(一个或多个)接受路径当该单词作为输入出现时,将紧随其后。

这对回文而言意味着pda本质上具有两种模式:推入模式(在其中将当前字母推入堆栈)和弹出模式(在其中将这些字母弹出并与输入匹配)。这台机器将有一个空的从推动状态到弹出状态的过渡,它将可以在单词的任何点上跟随。但是,如果机器已读取回文并在回文的中间进行了空过渡,则机器只会清空其堆栈并进入接受状态。因为我们只需要存在接受路径,所以可以说自动机“猜测”单词中间的位置。


5

非确定性的概念非常简单:在某些情况下,自动机可能需要执行几个后续步骤。该自动机接受,如果有一些的步骤从初始配置导致一个接受一个,它将拒绝仅当有(有可能是几个!)序列没有这样的序列。

这意味着它“决定”在那些模棱两可的情况下下一步应采取的步骤。谈论此问题的一种方法是说它总是神奇地选择“正确”的下一步(如果有多个“正确”的步骤,则选择一个)。另一种看待它的方式是,在这种情况下,自动机的计算会分成几份,每份都遵循一条路径。

在实践中,这可以通过回溯来实现,将某种形式的标签放置在做出决定的地方,然后在当前路径无法解决的情况下返回并尝试下一个替代方法。这通常通过递归处理。或用自动信息在法律上补充额外的信息(这是您在黑板上展示不确定性自动机如何工作,向前看并找出哪些步骤可以成功的操作)。


我认为回溯并不是一个好主意。您的树可能不是有限的。我知道它在某些非确定性实现中使用,例如Prolog,我认为在Robert Floyd的早期工作中也是如此。但这本来是要在程序员的监督下进行的,我不会将其用于自动机理论。实际上,甚至Prolog都有其他实现来解决该问题。
2015年

@babou,这是实践中的一种方法。我不是说这是解决方案
vonbrand

2

“猜测”与我们对非决定论的存在性解释直接相关

简而言之: 非确定性自动机可以猜测(或由甲骨文帮助)的想法与我们对非确定性的存在性解释直接相关。在“猜测”没有意义的情况下,可能会有另一种解释(可能是其他解释)。

非确定性很奇怪。我们确实有一种在自动机理论中对其进行解释的方式,但是我们如何做到这一点并不是先验的。

似乎令人惊讶,但是不确定性是一种非常普遍的情况。当必须证明一个定理时,给定某种数学理论的公理,该过程自然是一种不确定的过程。这就是为什么我们通常不知道该怎么做才能解决问题,例如寻找三次方程的解或证明某些定理。

有很多方法可以将已知的知识与推理规则结合起来以获得新的结果。如果我们尝试从结果中反向构造证明,则情况通常是相同的。

在尝试解决此类问题时,我们尝试在某些过渡系统中猜测 ”一条路径

实际上,我们不猜测,而是在脑海中建立一些结构,以组织和/或简化可能性的迷宫,以便我们看到通过它的路径。在某些情况下,问题遵循一种确定的模式,对于该模式,我们有一种标准的方法(有时?通常?总是?)找到解决方案,我们称其为算法。

我们可以使用的一种(通常很昂贵的)技术只是简单地全面探索迷宫:遵循所有路径,首先广度执行,以避免陷入无限的子图中。这几乎是通过将非确定性自动机的所有可能的计算合并在一起来完成的。这种导出的燕尾式计算本身就是确定性的。

这与计算相吻合 dC 模拟原始自动机的所有可能计算 一种,但没有告诉我们应该如何解释它。它可以告诉我们A是否会因接受或拒绝而暂停,并可能始终停止。但是,除了一种 本身,告诉我们 一种 永不停止,或永不因接受而停止。

实际上,可能会有不同的方式来解释非确定性计算。Afaik他们都是一致的,但彼此之间是不一致的。

如果是语言识别器 [R(例如NPDA)无法停止或因接受或拒绝而停止的状态,据说识别器会接受输入w如果有一种计算停止并接受。这与我们自己对非确定性证明过程的观点一致,认为该过程可以成功,因为它可以为要证明的定理确定一个证明树。

猜测识别器的想法只是从我们自己的“猜测”如何找到证明树的方式拍摄的图像。但是最大的不同是我们的大脑不是PDA。它们是更复杂的设备,具有探索和绘制近似过渡结构的能力,因此我们可以通过它们找到自己的出路,有时我们将其视为猜测。

关于非确定性计算的这种解释就是所谓的“ 存在接受”,这是因为它仅需要存在一个接受计算。这与我在另一个答案中介绍的存在停止有关

但是,也可以以一种通用的方式将不确定性解释为:如果所有可能的计算都停止并且接受该输入,则认为识别器(普遍)接受输入“ w”。这种普遍接受与在同一答案中引入的普遍停止的概念相对应。

普遍接受和普遍停顿似乎导致对非决定论的一致理解。因此,可以对这一定义进行理论研究。但这与我们在许多非确定性情况(例如定理证明)或日常生活中的惯常做法不一致。当遇到问题时,我们只想解决问题的一种方法,然后不在乎其他方法是否成功(这有点过分简化了)。

如果必须识别回文,我们可以通过测量长度并寻找中间点来进行猜测。PDA无法。但是,由于我们只对一种解决方案的存在感兴趣,因此我们总是可以假装它可以……如果有帮助的话。或者我们可以认为它具有由更多智能机器(我们?)提供的预言机来帮助它。或者,您甚至可以称其为魔术,并认为是魔术(毕竟,存在量词是一种魔术棒)。如果可以帮上忙,那就可以了。如果没有接受的计算,将毫无帮助。

注意,这种猜测的想法在普遍接受的解释中将毫无意义。

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.