非确定性编程
词条百科 1
非确定性编程
非确定性编程语言是一种可以在程序的某些点(称为选择点)指定程序流程的各种选择的语言。 与 if-then 语句不同,程序员不直接指定在这些备选方案之间进行选择的方法; 程序必须在运行时通过应用于所有选择点的一些通用方法在备选方案之间做出决定。 程序员指定了有限数量的备选方案,但程序稍后必须在它们之间进行选择。 (实际上,选择是非确定性运算符的典型名称。)可以形成选择点的层次结构,较高级别的选择导致分支,其中包含较低级别的选择。
一种选择方法体现在回溯系统中,其中某些备选方案可能会失败,从而导致程序回溯并尝试其他备选方案。 如果所有备选方案都在特定选择点失败,那么整个分支都会失败,程序将进一步回溯到较早的选择点。 一个复杂的问题是,因为任何选择都是试探性的并且可以重新做出,系统必须能够通过消除部分执行最终失败的分支所导致的副作用来恢复旧的程序状态。

另一种选择方法是强化学习,体现在 Alisp 等系统中。 在这样的系统中,系统不是回溯,而是跟踪一些成功的衡量标准,并了解哪些选择通常会导致成功,以及在哪些情况下(内部程序状态和环境输入都可能影响选择)。 这些系统适用于机器人和其他领域的应用,在这些领域中,回溯将涉及尝试撤消在动态环境中执行的操作,这可能很困难或不切实际。
内容来源于网络,本内容不代表16map.com立场,内容投诉举报请联系16map.com客服。如若转载,请注明出处:https://16map.com/wiki/nmjeei4lnizq