最近,我听到了这样的声音:
“非确定性机器与概率机器不同。从广义上讲,非确定性机器是其中不知道转移概率的概率机器”。
我觉得我明白了,但我真的没有。有人可以向我解释(在机器环境中还是一般情况下)?
编辑1:
只是为了澄清,报价是在有限自动机的上下文中,但是这个问题对图灵机也很有意义,正如其他人回答的那样。
另外,我听到人们说-“ ...然后我不确定地从集合中选择对象x”。我曾经以为它们的意思是“随机”。因此造成混乱。
最近,我听到了这样的声音:
“非确定性机器与概率机器不同。从广义上讲,非确定性机器是其中不知道转移概率的概率机器”。
我觉得我明白了,但我真的没有。有人可以向我解释(在机器环境中还是一般情况下)?
编辑1:
只是为了澄清,报价是在有限自动机的上下文中,但是这个问题对图灵机也很有意义,正如其他人回答的那样。
另外,我听到人们说-“ ...然后我不确定地从集合中选择对象x”。我曾经以为它们的意思是“随机”。因此造成混乱。
Answers:
重要的是要了解,计算机科学家使用的“不确定性”一词与其他科学中通常使用的方式不同。非确定性TM实际上在物理学意义上是确定性的-也就是说,NTM总是在给定的输入上产生相同的答案:它要么总是接受,要么总是拒绝。概率TM将以一定的概率接受或拒绝输入,因此在一次运行中它可能接受,而在另一次运行中它可能拒绝。
更详细地:在NTM执行的计算的每个步骤中,可以使用多个规则来代替单个过渡规则。要确定NTM是接受还是拒绝,您可以查看计算的所有可能分支。(因此,例如,如果每个步骤有2个转换可供选择,并且每个计算分支总共有N个步骤,则将考虑总余额。)对于标准NTM,接受输入如果有任何计算分支接受。
可以修改定义的最后一部分,以获取其他相关类型的图灵机。如果您对具有独特解决方案的问题感兴趣,那么只要有一个分支接受,就可以让TM接受。如果您对多数行为感兴趣,则可以将TM定义为接受一半以上的分支。而且,如果您随机(根据某种概率分布)选择一个可能的分支,并根据该分支的作用接受或拒绝,那么您就有了概率TM。
在图灵机的上下文中,“不确定”实际上是指“并行”。随机算法可以随机浏览非确定性Turing机器的计算树的分支,但是非确定性Turing机器可以同时(全部)浏览它们,这就是它的强大功能。
在其他情况下(如果您正在谈论图灵机,我无法从您的报价中得知),随机算法可能有意使用随机性,而您想要确定性的算法可能由于错误而最终表现出不确定性...
响应您的编辑,当人们说“不确定地选择一个元素”时,可能只是“随机”。但是,它们的含义也可能是“从集合中神奇地选择-right-元素”。查看非确定性图腾机的一种常见方法是,它们首先神奇地“猜测”解决方案,然后检查其正确性。当然,您可以将这种神奇的猜测视为并行检查所有可能性的结果。
在几种不同的上下文中,“确定性”,“随机”和“非确定性”意味着三件事。在有多个参与者的情况下,例如安全性和并发性,直觉通常类似于:
确定性意味着“我可以选择”
非确定性意味着“其他人可以选择”
随机意味着“没有人可以选择”
一些例子:
[并发性,随机性]考虑一个网络协议,例如Ethernet,其中多个节点可以随时发送消息。如果两个节点以非常接近的间隔发送消息,则会发生冲突:消息重叠并且不可读。如果发生冲突,则两个节点都必须稍后尝试再次发送消息。想象一下您正在编写以太网规范。您如何指定重试之间的延迟?(延迟最好有所不同,否则会再次发生碰撞!)
确定性的:定义两个节点都必须使用的算法。这样做不是针对以太网的,因为为了给出不同的结果,该算法将必须使一个节点相对于另一节点具有特权(对于任何给定的消息内容),并且以太网避免这样做。
非确定性:让每个实施者决定。这不好,因为两个节点上的实现者可能选择相同的算法。
随机:每个节点必须随机选择一个延迟值(具有指定的分布)。就是这样。这两个节点选择相同的延迟的可能性很小,并且还会发生另一次冲突,但是随着重试次数的增加,成功的概率会渐近地朝着1增加。
[并发性,不确定性]您编写了一个并发算法。在特定情况下,可能会出现死锁。如何防止死锁的发生?这取决于您的并发环境的调度类型。
确定性的:调度程序总是在某些明确定义的点(例如仅在代码明确产生时)在线程之间切换。然后,您只需安排线程在不好的时候不屈服。
random:保证调度程序可以随机切换线程。然后,可行的策略是检测死锁(如果发生),并从头开始重新启动算法。
非确定性的(大多数调度程序都是这样的):您不知道调度程序何时在线程之间切换。因此,您确实必须避免僵局。如果您尝试像随机情况一样检测并重新启动,则可能会导致调度程序一次又一次地以完全相同的方式调度线程。
[安全,随机]您使用密码提示编写应用程序。您如何模拟攻击者?
确定性的:攻击者始终尝试使用相同的密码。这根本不是一个有用的攻击者模型-定义上无法预测攻击者。
不确定:攻击者以某种方式知道您的密码并输入。这显示了密码的局限性:必须将其保密。如果您的密码是秘密的,则此攻击者是不现实的。
随机:攻击者随机尝试输入密码。在这种情况下,这是攻击者的现实模型。您可以研究攻击者需要多长时间才能猜测出您的密码,具体取决于他所使用的随机分布。好的密码对于任何实际的分发来说都需要很长时间。
[安全性,不确定性]您编写了一个应用程序,并且担心它可能存在安全漏洞。您如何模拟攻击者?
确定性的:攻击者知道您所知道的一切。同样,这不是攻击者的有用模型。
随机:攻击者抛出随机垃圾,并希望使您的程序崩溃。有时这很有用(模糊),但是攻击者可能比这更聪明。
非确定性:如果有漏洞,攻击者最终会找到它。因此,您最好加强您的应用程序(提高攻击者的智能要求;请注意,由于这是一种智能要求而不是计算要求,因此在AI出现之前,它就属于不确定性),或者更好地证明没有安全漏洞,因此不存在这样的攻击者。
一个使事情更清楚的例子:
假设您必须挑选一扇要在10000门中打开的门(例如其中一扇门后面有奖品)。随机选择意味着您将在10000门中选择一个并输入。如果只有一扇门后面有奖品,您很可能找不到。一台不确定的机器将同时进入所有10000门。如果任何地方都有奖品,则不确定性机器会找到它。
非确定性图灵机的定义:对于当前单元格内容和当前状态的某些组合,图灵机具有多个下一个状态。如果任何移动顺序导致接受,则接受输入。
概率图灵机的定义: 一种不确定的图灵机(TM),它根据某种概率分布在每个点的可用转换之间随机选择。
概率图灵机是会出错的非确定性图灵机。
我更喜欢以下定义:
根本没有概率的图灵机!只有确定性机器(在每个步骤中都有一个可能的跟踪状态)和非确定性机器(在每个步骤中都有一定数量的可能的跟踪状态)。
非确定性的工作原理如下:考虑一个非确定性的机器,它会在每个输入上停止(如果问题可以确定,则可以停止),其中每个可能的计算使用相同数量的步骤,并且每个步骤恰好具有2个可能的跟踪状态(两者都不是真正的限制)。如NP的定义,如果存在至少一个可能的接受计算,则不确定性机器将接受输入,如果所有计算都被拒绝,则不确定机器将拒绝输入。
随机性发挥如下作用:您可以从如上所述的这种不确定性机器中随机选择一个统一的计算路径。仅当此随机选择的计算路径接受时,您才接受。如果这种可能性是正确的,那么这种随机方法可以“解决”您的问题。
因此,非确定性和随机性之间的区别在于是否你正在寻找的仅仅存在一个正确的是应答(和可靠的无答案)的,或者您是否有兴趣解决您的问题“大部分时间”。
当您希望在调试时(及时)向后退步时,非确定性机器的概念会提示自己。在典型的计算机中,每个步骤仅修改有限数量的内存。如果您始终在前10000个步骤中保存此信息,则可以在程序中向前和向后步进,并且这种可能性不仅限于玩具程序。如果您尝试消除前进和后退步幅之间的不对称性,那么最终将出现不确定性机器的概念。
尽管概率机器与非确定性机器具有某些特征,但是前进和后退步之间的这种对称性是不共享的。为了看到这一点,让我们通过(全部或部分)函数对确定性机器的步或转移进行建模,通过(有限)关系对非确定性机器的转移进行建模,并通过(子)随机矩阵对概率性机器的转移进行建模。例如,这是有限自动机的相应定义
过渡仅是机器的一部分,初始和最终状态,可能的输出和接受条件也很重要。但是,确定性机器的非等价接受条件非常少,非确定性机器的许多合理接受条件(NP,coNP,#P等)以及概率机的许多可能接受条件。因此,这个答案主要集中在过渡上。
这篇文章表明,不确定性的动机之一是消除前进和后退步骤之间的不对称性。这种不确定性的对称性是否仅限于有限自动机?这是下推自动机的相应对称定义
这是一个高级输入操作的示意图,其反转看起来很糟糕
具有多于一个堆栈的机器等效于图灵机,并且堆栈操作很容易反转。一开始的动机还表明,(图灵机的)逆转应该不难。具有典型指令集的Turing机器不太适合反转,因为头部下方的符号会影响磁带向左或向右移动。但是,如果对指令集进行了适当的修改(而又不降低机器的计算能力),那么反转将再次变得微不足道。
也可以在不修改指令集的情况下构造反转,但这不是规范的并且有点丑陋。似乎存在逆转的难度很难决定与图灵机相关的其他许多问题,但是逆转是本地结构,困难的问题通常具有全球性,因此悲观主义在这里可能是不合理的。
转换为等效指令集的冲动(更容易逆转)表明,这些问题并不像它们最初出现时那么明显。以前,此功能发生了更细微的变化,当时总功能和随机矩阵被部分功能和亚随机矩阵所替代。严格来说,此切换不是必需的,但相反的话则很难进行。切换到亚随机矩阵实际上是很明显的一点,即可逆性毕竟并不那么琐碎,人们应该写下细节(如上所述),而不是仅仅从较高的角度(如动机所述)。开始)。Niel de Beaudrap提出的问题也使人们认识到,高层观点有些不稳定。
非确定性机器在每个步骤中允许有限数量的确定性转换。对于概率机器,这些过渡还具有可能性。这篇文章表达了关于不确定性和随机性的不同观点。忽略全局接受条件,它专注于局部可逆性(作为局部对称性)。由于随机性保留了确定性无法保留的某些局部对称性,因此这种观点揭示了不确定性和概率性机器之间的重要差异。