非确定性图腾机中的非确定性是否与有限自动机和下推自动机不同?


9

假设输入字符串为。然后,如果某个NFA当前处于状态(并且已读取输入的最大字母),则在读取下一个输入符号之前,如果存在以下转换,则NFA会分成两个NFA,一个处于状态,另一个处于。类型。如果存在类型为,其中是NFA的某些状态,那么记住状态另一个NFA 直到读取输入直到字母 ř 瓦特 ř 小号ř ε →交通小号ř ε →交通小号ε →交通 q 1ϵ q k ϵ r q i r w i r w i r ϵ ϵ a s ϵ ϵ a q 1w1w2...wnrwirsrϵsrϵsϵq1....ϵqkϵrqirwi

如果PDA(不确定性)处于状态(并且读取输入直到),并且存在一个周期(其中意味着在之后没有任何东西从输入中读取,没有弹出或从堆栈中读取任何内容,并且将字母压入堆栈),然后在读取下一个输入字母之前,状态会存在无限的PDArwiε ε 瓦特一个瓦特+ 1个 [R s ^ q 1q ķrϵ,ϵasϵ,ϵaq1....ϵ,ϵaqkϵ,ϵarϵ,ϵawiawi+1r,s,q1,...qk 因为与NFA不同,尽管状态是有限的,但是如果我没有记错的话,堆栈的内容可能会有所不同(无限可能性)。

与NFA和PDA一样,不确定性的力量来自过渡。因此,我假设非确定性Turing机器也从转换(例如NFA和PDA,更像PDA)中获得了非确定性。我知道确定性图灵机可以模拟非确定性图灵机(我知道使用面包优先搜索的证明)。但是,现在我对如何做到这一点感到怀疑。因为如果上述PDA中类型的循环存在于非确定性图灵机的状态图中,则在读取下一个符号ε 瓦特+ 1ϵϵwi+1即使在非确定性Turing机器的某些分支中模拟配置时,确定性Turing机器(而bfs)也必须跟踪无限Turing机器(同样,状态是有限的,但是磁带上的符号具有无限的可能性)。
那么在图灵机的情况下如何精确地确定不确定性呢?我误会了一些小事吗?非确定性图灵机是否使用转换?ϵ


我为我的琐碎的疑问感到抱歉。如果有任何不正确的地方,我可以更新我的问题。


2
关于标题问题,正式定义没有太大区别。至于涌现的力量,是的,它在每种机器模型中都有很大不同的含义。至于其余的问题,很难解析。:(
vzn


@YuvalFilmus是的,我有。转换函数的定义包括我理解的功率集。但是关于图灵机中过渡的事情,我仍然不清楚。epsilon
sashas 2015年

@vzn我是这么认为的。真的对不起。我不敢提出怀疑。但是,如果您提出建议,我可以改善。
sashas 2015年

Answers:


8

在所有情况下,非确定性都是相同的概念–允许机器在任何给定点进行几种选择。但是,语义有所不同,因为DFA / NFA和PDA始终定义全部功能,而图灵机(确定性或非确定性)通常定义部分功能。

部分功能是仅在部分域中定义的功能。如果未在定义,则我们写。(因此,实际上是一个总函数,但在范围内有一个特殊元素表示未定义输出。)确定性图灵机定义如下的部分函数:如果暂停则是当在暂停时,磁带的内容;否则,。fxf(x)=fMMxM(x)MxM(x)=

确定性图灵机决定器有两种停止状态,接受和拒绝的,并限定一个局部函数,如下所示:如果上暂停在接受状态,则 ; 如果它停止在拒绝状态,则 ; 如果不停止,则。如果总是停止,那么我们说它接受语言。MxM(x)=1M(x)=0M(x)=ML={x:M(x)=1}

允许非确定性图灵机(始终是决策者)“分支”(在任何给定时间点具有多个可能的选项),并且具有以下语义:

  • M(x)=1如果在输入,,则机器在所有分支上停止,并在至少一个分支的接受状态下停止。xM
  • x MM(x)=0如果在输入,,则机器停止所有分支,始终在拒绝状态下停止。xM
  • X 中号M(x)=如果在输入上存在一个分支,不会停止。xM

有了这个定义,就可以清楚地知道如何使用确定性图灵机决策器来模拟非确定性图灵机:您尝试所有分支,检查其中的任何分支是否导致可接受的暂停状态。在所有分支都停止之后,您可以决定是进入接受状态还是进入拒绝状态。如果非确定性图灵机没有在某个分支上停止,那么确定性图灵机也将停止。


那 epsilon-动作呢?它们造成麻烦,因为相应的自动机可能永远不会停止。对于有限自动机(NFA和PDA),我们默默地忽略非停止计算。我们这样做的原因是,即使确定性地模拟语言(模拟所有计算路径)的幼稚算法无法正常工作,结果语言也始终是可计算的。对于可以转换为DFA的NFA来说,并不是那么困难。但是,确定性PDA严格比非确定性PDA弱。不过,您可以证明每个PDA都等效于没有 PDA (尽管证明可能会涉及上下文无关的语法)。εϵϵ

您可以在Turing机器中模拟移动,但是必须小心,不要有导致非暂停计算的循环。但是,在某些情况下,我们可以使用与上述相同的技巧。例如,假设您的Turing机器受空间限制:我们知道它使用的空间的上限(取决于输入长度)。在那种情况下,每个非停止计算都必须循环(因为图灵机具有有限的许多状态,包括磁带内容),因此,如果我们如上所述“忽略”非停止计算,则所得的计算模型仍然是可计算的。更一般而言,只要我们保证每个不暂停的计算周期,此方法就起作用。(对于NFA就是这种情况,但对于PDA则不是。)ϵ


谢谢。我最后一个疑问。在过渡为的PDA中,如果PDA处于状态则仅当 (是从输入磁带读取的字母,是从堆栈弹出的字母,是无论和是什么(或常规堆栈字母),都将被推入。我对吗 ?r b b c a ϵ a c ϵrb,casrbbcaϵacϵ
sashas

@sasha只要有多个选择可以继续执行,“执行”就会“分裂”。
Yuval Filmus 2015年

如何证明具有转换的PDA 可以转换为没有它们的PDA ?我知道我可以始终证明任何PDA接受的语言都是可以通过将其转换为普通乔姆斯基格式的CFG来确定的。但是在没有epsilon转换的情况下仍然无法转换为PDA。我真的很感谢任何提示。ϵ
sashas 2015年

1
@sasha您可以将Greibach普通形式的无上下文语法转换为没有转换的PDA (至少根据Wikipedia)。ϵ
Yuval Filmus 2015年

1
@YuvalFilmus,从GNF的非确定性结构基本上递归下降:对于生产,如果是在堆栈的顶部,上输入取代由堆栈上。视线中没有。仍然不是确定性的(可能会有几个产生开头)。 A a A B 1B n ϵ A a AaB1B2BnAaAB1BnϵAa
vonbrand
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.