确定性算法是一种算法,给定一个特定的输入将始终产生相同的输出,而底层机器始终通过相同的状态序列。换句话说,对于相同的输入,确定性算法总是得到相同的结果。
确定性算法是迄今为止研究最多、最熟悉的算法,也是最实用的算法之一,因为它们可以在实际机器上高效运行。形式上,确定性算法计算数学函数;函数对其域中的任何输入都有唯一的值,而算法是一个将此特定值作为输出的过程。
确定性算法可以用状态机来定义:状态描述机器在特定时刻所做的事情。状态机以离散的方式从一个状态传递到另一个状态。在输入之后,机器处于初始状态或启动状态。如果机器是确定性的,这意味着从这一点开始,其当前状态决定其下一个状态;它通过一组状态的过程是预先确定的。请注意,机器可能是确定性的,但仍然不会停止或完成,因此无法交付结果。
确定性抽象机器的例子包括确定性图灵机和确定性有限自动机。
非确定性算法是一种算法,即使对于相同的输入,在不同的运行中也可能表现出不同的行为。换句话说,它是一种算法,其中每个算法的结果不是唯一定义的,并且结果可能是随机的。
在不确定多项式时间内解决问题的算法可以在多项式时间或指数时间内运行,这取决于它在执行过程中所做的选择。当使用确定性算法获得精确解的成本太高时,通常使用非确定性算法来寻找近似解。
非确定性算法不同于更熟悉的确定性算法,它能够使用不同的路径得出结果。如果确定性算法表示从输入到结果的单一路径,则非确定性算法表示源自多条路径的单一路径,其中一些路径可能到达相同的输出,而另一些路径可能到达唯一的输出。
多种因素可导致算法以不确定或不确定的方式运行:
Also Read: Difference Between NP Hard And NP Complete Problem
比较基础 | 确定性算法 | 非确定性算法 |
描述 | 确定性算法是一种算法,给定一个特定的输入将始终产生相同的输出,而底层机器始终通过相同的状态序列。 | 非确定性算法是指每个算法的结果都不是唯一定义的,并且结果可能是随机的算法。 |
执行路径 | 在确定性算法中,算法的执行路径在每次执行中都是相同的。 | 在非确定性算法中,算法在每次执行中的执行路径都不相同,可以采用任意随机路径执行。 |
比较基础 | 根据确定性算法的执行和结果,它们也被归类为可靠算法,因为对于机器将始终提供相同输出的特定输入指令。 | 非确定性算法被归类为特定输入的非可靠算法。机器在不同执行时会给出不同的输出。 |
活动 | 在确定性算法执行中,目标机器执行相同的指令并产生相同的结果,这与指令执行的方式或过程无关。 | 在非确定性算法中,允许执行每个操作的机器根据稍后定义的确定条件选择这些结果中的任何一个。 |
输出 | 由于结果是已知的,并且在不同的执行上是一致的,所以确定性算法的执行需要多项式时间。 | 由于结果是未知的,并且在不同的执行上是不一致的,所以非确定性算法不能在多项式时间内执行。 |
...应路由算法 5. 摘要 什么是自适应路由算法(adaptive routing algorithms)? 动态路由或自适应路由使用自适应算法。这些算法根据拓扑结构和网络流量改变路由决策。相邻路由器或所有路由器提供路由信息。主要的优化参数是一些跳数...
...列比较-算法与表格形式的流程图 6. 摘要 什么是算法(an algorithm)? 每一个任务都是根据一个算法来完成的。如果Facebook有一个这样的问题,那么它将如何在一个日志中出现。首先,用户应该打开浏览器。然后他应该输入正确的网...
...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. ...
简单来说,伪代码是一种描述算法逻辑的叙述。 伪代码不是可执行代码,因此不必使用精确的语法;但是,遵循业界广泛使用的标准是很有帮助的,解决方案团队可以很容易地理解该标准。 统一建模语言(UML)和其他业务...
...实际差异。 什么是数字差分算法(dda)(digital differential algorithm (dda))? DDA主要用于在计算机图形学中绘制线,在预测下一个像素值时使用实际值。假设初始像素值为(X0,Y0)(X0,Y0),目标像素为(X1,Y1)(X1,Y1)。我们将...
...区别的比较 关键术语 算法,伪代码,编程 什么是算法(algorithm)? 算法是一个逐步解决问题的过程。过程是一个有限的指令序列,每个指令在有限的时间内执行。每一个问题都可以借助一个算法来解决。例如,当用户想要登录...
...语 图,克鲁希尔算法,PRM算法,树 什么是prims算法(prims algorithm)? Prim的算法有助于从图中找到最小生成树。它确定包含图的每个顶点的边的子集。它还减少了边的权重之和。此外,该算法从根节点开始,在每一步检查所有相邻...
...、搜索、排序、分治、传统算法 什么是遗传算法(genetic algorithm)? 遗传算法是指基于遗传和自然选择的一类算法。这与物种适应环境变化并能够生存的过程相似。换句话说,它是建立在生物进化的基础上的。 此外,该算法不断...
...之前,他必须在几分钟内检查流程图。 什么是算法(an algorithm)? 算法是一个定义良好的逐步过程,用于处理数据(为特定问题提供解决方案)。Analogrithm准确地定义了程序执行操作所需的步骤。它包括输入、输出和逻辑...
...是否可满足等。 Also Read: Difference Between Deterministic And Non-deterministic Algorithms 什么是np难问题(np hard problem)? 这些问题至少和NP中最难的问题一样难。如果我们能在多项式时间内解决这些问题,我们就能解决任何可能存在...