确定性(deterministic)和非确定性算法(non-deterministic algorithms)的区别

确定性算法是一种算法,给定一个特定的输入将始终产生相同的输出,而底层机器始终通过相同的状态序列。换句话说,对于相同的输入,确定性算法总是得到相同的结果。...

什么是确定性算法(a deterministic algorithm)?

确定性算法是一种算法,给定一个特定的输入将始终产生相同的输出,而底层机器始终通过相同的状态序列。换句话说,对于相同的输入,确定性算法总是得到相同的结果。

确定性算法是迄今为止研究最多、最熟悉的算法,也是最实用的算法之一,因为它们可以在实际机器上高效运行。形式上,确定性算法计算数学函数;函数对其域中的任何输入都有唯一的值,而算法是一个将此特定值作为输出的过程。

确定性算法可以用状态机来定义:状态描述机器在特定时刻所做的事情。状态机以离散的方式从一个状态传递到另一个状态。在输入之后,机器处于初始状态或启动状态。如果机器是确定性的,这意味着从这一点开始,其当前状态决定其下一个状态;它通过一组状态的过程是预先确定的。请注意,机器可能是确定性的,但仍然不会停止或完成,因此无法交付结果。

确定性抽象机器的例子包括确定性图灵机和确定性有限自动机。

关于确定性算法你需要知道什么

  • 确定性算法是一种算法,给定一个特定的输入将始终产生相同的输出,而底层机器始终通过相同的状态序列。
  • 在确定性算法中,算法的执行路径在每次执行中都是相同的。
  • 根据确定性算法的执行和结果,它们也被归类为可靠算法,因为对于机器将始终提供相同输出的特定输入指令。
  • 在确定性算法执行中,目标机器执行相同的指令并产生相同的结果,这与指令执行的方式或过程无关。
  • 由于结果是已知的,并且在不同的执行上是一致的,所以确定性算法的执行需要多项式时间。

什么是一种非确定性算法(a non-deterministic algorithm)?

非确定性算法是一种算法,即使对于相同的输入,在不同的运行中也可能表现出不同的行为。换句话说,它是一种算法,其中每个算法的结果不是唯一定义的,并且结果可能是随机的。

在不确定多项式时间内解决问题的算法可以在多项式时间或指数时间内运行,这取决于它在执行过程中所做的选择。当使用确定性算法获得精确解的成本太高时,通常使用非确定性算法来寻找近似解。

非确定性算法不同于更熟悉的确定性算法,它能够使用不同的路径得出结果。如果确定性算法表示从输入到结果的单一路径,则非确定性算法表示源自多条路径的单一路径,其中一些路径可能到达相同的输出,而另一些路径可能到达唯一的输出。

什么使算法不确定?

多种因素可导致算法以不确定或不确定的方式运行:

  • 如果它使用输入以外的外部状态,例如用户输入、全局变量、硬件计时器值、随机值或存储的磁盘数据。
  • 如果它以对时间敏感的方式运行,例如,如果它有多个处理器同时写入同一数据。在这种情况下,每个处理器写入数据的精确顺序将影响结果。
  • 如果硬件错误导致其状态以意外方式更改。

关于非确定性算法你需要知道什么

  • 非确定性算法是指每个算法的结果都不是唯一定义的,并且结果可能是随机的算法。
  • 在非确定性算法中,算法在每次执行中的执行路径都不相同,可以采用任意随机路径执行。
  • 非确定性算法被归类为特定输入的非可靠算法。机器在不同执行时会给出不同的输出。
  • 在非确定性算法中,允许执行每个操作的机器根据稍后定义的确定条件选择这些结果中的任何一个。
  • 由于结果是未知的,并且在不同的执行上是不一致的,所以非确定性算法不能在多项式时间内执行。

Also Read: Difference Between NP Hard And NP Complete Problem

确定性(deterministic)和表格形式的非确定性算法(non-deterministic algorithms in tabular form)的区别

比较基础 确定性算法 非确定性算法
描述 确定性算法是一种算法,给定一个特定的输入将始终产生相同的输出,而底层机器始终通过相同的状态序列。 非确定性算法是指每个算法的结果都不是唯一定义的,并且结果可能是随机的算法。
执行路径 在确定性算法中,算法的执行路径在每次执行中都是相同的。 在非确定性算法中,算法在每次执行中的执行路径都不相同,可以采用任意随机路径执行。
比较基础 根据确定性算法的执行和结果,它们也被归类为可靠算法,因为对于机器将始终提供相同输出的特定输入指令。 非确定性算法被归类为特定输入的非可靠算法。机器在不同执行时会给出不同的输出。
活动 在确定性算法执行中,目标机器执行相同的指令并产生相同的结果,这与指令执行的方式或过程无关。 在非确定性算法中,允许执行每个操作的机器根据稍后定义的确定条件选择这些结果中的任何一个。
输出 由于结果是已知的,并且在不同的执行上是一致的,所以确定性算法的执行需要多项式时间。 由于结果是未知的,并且在不同的执行上是不一致的,所以非确定性算法不能在多项式时间内执行。

  • 发表于 2021-11-29 11:16
  • 阅读 ( 456 )
  • 分类:科学

你可能感兴趣的文章

适应的(adaptive)和非自适应路由算法(non adaptive routing algorithms)的区别

...应路由算法 5. 摘要 什么是自适应路由算法(adaptive routing algorithms)? 动态路由或自适应路由使用自适应算法。这些算法根据拓扑结构和网络流量改变路由决策。相邻路由器或所有路由器提供路由信息。主要的优化参数是一些跳数...

  • 发布于 2020-10-18 20:02
  • 阅读 ( 598 )

算法(algorithm)和流程图(flowchart)的区别

...列比较-算法与表格形式的流程图 6. 摘要 什么是算法(an algorithm)? 每一个任务都是根据一个算法来完成的。如果Facebook有一个这样的问题,那么它将如何在一个日志中出现。首先,用户应该打开浏览器。然后他应该输入正确的网...

  • 发布于 2020-10-19 17:44
  • 阅读 ( 866 )

在youtube上发现新内容的好方法

...auto-generated channels of trending and popular videos that are created by algorithms. On these channels, you'll see a notice in the "About" section that they've been auto-generated by YouTube. YouTube's auto-generated channels have "Topic" as a suffix. ...

  • 发布于 2021-03-16 12:38
  • 阅读 ( 490 )

什么是伪码(what is the pseudocode)和算法?(algorithm?)的区别

简单来说,伪代码是一种描述算法逻辑的叙述。 伪代码不是可执行代码,因此不必使用精确的语法;但是,遵循业界广泛使用的标准是很有帮助的,解决方案团队可以很容易地理解该标准。 统一建模语言(UML)和其他业务...

  • 发布于 2021-06-24 23:47
  • 阅读 ( 1622 )

dda公司(dda)和bresenham算法(bresenham’s algorithm)的区别

...实际差异。 什么是数字差分算法(dda)(digital differential algorithm (dda))? DDA主要用于在计算机图形学中绘制线,在预测下一个像素值时使用实际值。假设初始像素值为(X0,Y0)(X0,Y0),目标像素为(X1,Y1)(X1,Y1)。我们将...

  • 发布于 2021-06-25 00:12
  • 阅读 ( 620 )

算法(algorithm)和伪码(pseudocode)的区别

...区别的比较 关键术语 算法,伪代码,编程 什么是算法(algorithm)? 算法是一个逐步解决问题的过程。过程是一个有限的指令序列,每个指令在有限的时间内执行。每一个问题都可以借助一个算法来解决。例如,当用户想要登录...

  • 发布于 2021-06-30 18:03
  • 阅读 ( 896 )

普里姆斯(prims)和krushal算法(krushal algorithm)的区别

...语 图,克鲁希尔算法,PRM算法,树 什么是prims算法(prims algorithm)? Prim的算法有助于从图中找到最小生成树。它确定包含图的每个顶点的边的子集。它还减少了边的权重之和。此外,该算法从根节点开始,在每一步检查所有相邻...

  • 发布于 2021-07-01 11:09
  • 阅读 ( 251 )

遗传算法(genetic algorithm)和传统算法(traditional algorithm)的区别

...、搜索、排序、分治、传统算法 什么是遗传算法(genetic algorithm)? 遗传算法是指基于遗传和自然选择的一类算法。这与物种适应环境变化并能够生存的过程相似。换句话说,它是建立在生物进化的基础上的。 此外,该算法不断...

  • 发布于 2021-07-01 15:41
  • 阅读 ( 248 )

流程图(flowchart)和算法(带图片)(algorithm (with pictures))的区别

...之前,他必须在几分钟内检查流程图。 什么是算法(an algorithm)? 算法是一个定义良好的逐步过程,用于处理数据(为特定问题提供解决方案)。Analogrithm准确地定义了程序执行操作所需的步骤。它包括输入、输出和逻辑...

  • 发布于 2021-11-27 16:25
  • 阅读 ( 324 )

NP困难(np hard)和np完全问题(np complete problem)的区别

...是否可满足等。 Also Read: Difference Between Deterministic And Non-deterministic Algorithms 什么是np难问题(np hard problem)? 这些问题至少和NP中最难的问题一样难。如果我们能在多项式时间内解决这些问题,我们就能解决任何可能存在...

  • 发布于 2021-11-29 11:13
  • 阅读 ( 306 )