non-deterministic相关内容

旅行商问题中的NP-难与NP-完全混淆

旅行商优化问题(TSP-OPT)是一个NP-Hard问题,而旅行商搜索(TSP)是NP-完全问题。然而,TSP-OPT可以归结为TSP,因为如果TSP可以在多项式时间内求解,那么TSP-OPT(1)也可以。我认为要将A简化为B,B必须和A一样难,如果不比A更难的话。正如我在下面的参考文献中看到的,TSP-OPT可以简化为TSP。TSP-OPT应该比TSP更难。我很困惑... 参考文献:(1) ..

强制浮点在 .NET 中具有确定性?

我已经阅读了很多关于 .NET 中浮点确定性的内容,即确保具有相同输入的相同代码在不同机器上给出相同的结果.由于 .NET 缺少 Java 的 fpstrict 和 MSVC 的 fp:strict 等选项,共识似乎是没有办法解决这个问题使用纯托管代码的问题.C# 游戏 AI Wars 已决定使用 Fixed-point math 代替,但这是一个繁琐的解决方案. 主要问题似乎是 CLR 允 ..
发布时间:2022-01-09 10:02:01 C#/.NET

如何使用 List monad 对非确定性建模?

谁能解释一下(用简单的英语示例更好)列表 monad 可以做什么来模拟非确定性计算?即问题是什么以及列表 monad 可以提供什么解决方案. 解决方案 这是一个基于抛硬币的例子.问题如下: 您有两枚硬币,分别标记为 Biased 和 Fair.Biased 硬币有两个正面,Fair 硬币有一个正面和一个反面.随机选择这些硬币中的一个,扔它并观察结果.如果结果是正面,那么您选择 Bia ..

为什么字典排序是不确定的?

我最近从 Python 2.7 切换到 Python 3.3,似乎虽然在 Python 2 中字典键的顺序是任意但一致的,但在 Python 3 中,字典键的顺序是通过例如vars() 似乎是不确定的. 如果我跑: class Test(object):通过参数 = 变量(测试)打印(列表(参数.keys())) 在 Python 2.7 和 Python 3.3 中,则: Pyt ..
发布时间:2021-12-02 16:41:17 Python

Prolog 中“半身"的概念已经解决了吗?

作为 Prolog 的新手,我遇到了一个非常有趣的讨论 发生在 2012 年末.我注意到当时有两种概念Prolog 社区中的“半身",即: 最多成功一次的计算. 一种计算,一旦成功,就不会留下任何选择点. 很明显,第二个意味着第一个,但反之则不然. 阅读线程,我明白第一个是Neumerkel 博士的概念,其次是 Drs.Wielemaker、O'Keefe 和其他人. 谷 ..

使用集合显示非确定性行为的种子 Python RNG

在尝试从集合中选择伪随机元素时,我看到了非确定性行为,即使 RNG 已播种(示例代码如下所示).为什么会发生这种情况,我是否应该期望其他 Python 数据类型表现出类似的行为? 注意:我只在 Python 2.7 上测试过,但它可以在两台不同的 Windows 计算机上重现. 类似问题:Python 随机种子中的问题不使用遗传编程示例代码 可能是类似的.根据我的测试,我的假设是集合内 ..
发布时间:2021-06-26 19:50:18 Python

C浮点数不确定吗?

我在某处读到C双精度浮点中存在不确定性的来源,如下所示: C标准规定,仅产生约64位精度就需要64位浮点数(双精度数). 硬件可以在80位寄存器中进行浮点运算. 由于(1),在将double填充到高位之前,不需要C编译器清除浮点寄存器的低位. 这意味着YMMV,即结果可能会出现微小差异. 现在真的会发生什么常见的硬件和软件组合吗?我在其他线程中看到.net存在此问题, ..
发布时间:2021-05-08 19:55:44 其他开发

Prolog中的"semidet"概念是否已解决?

成为Prolog的新手,我遇到了一个非常有趣的 博士Neumerkel说(在此引用谓词 call_semidet ): 实施可能会有所改善,但在进行优化和标记实际含义需要解决. 那么,含义已经解决了吗? "det"怎么样? 习惯上根据谓词的数量对谓词进行分类解决方案.根据 SWI-Prolog的定义(见下文),"det'可以充分发挥作用非确定性(例如并行)计算,只要它承诺 ..

在Haskell中合并ST和List单子

使用StateT monad转换器,我可以创建类型StateT s [] a,它与s -> [(a, s)]同构.现在,我希望使用 STT monad转换器,因为我想拥有多个不同类型的可变变量,并希望能够根据早期计算的结果随意实例化它们. 但是,STT的链接文档明确提及: 此monad转换器不应与可能包含多个答案的monad(例如列表monad)一起使用.原因是状态令牌将在不同的答案之 ..
发布时间:2020-07-01 19:47:04 其他开发

非确定性梯度计算

我意识到,即使我将TensorFlow随机种子保持不变,每次训练它们的模型最终都会有所不同. 我确认: 初始化是确定性的;在第一次更新之前,权重是相同的. 输入是确定性的.实际上,对于第一批产品,包括损失在内的各种正向计算都是相同的. 第一批的梯度不同.具体来说,我正在比较tf.gradients(loss, train_variables)的输出.虽然loss和train_var ..
发布时间:2020-07-01 19:47:02 其他开发

Python 2和3中的不确定集

Python 2 集合是无序值的集合.如果我通过集合文字构造一个集合,例如 s = {'a', 'b', 'c'} 然后将其打印,我以某种扰乱的顺序获取了元素.但是,似乎在Python 2.7中,上面的示例始终导致相同的顺序: print(s) # set(['a', 'c', 'b']) in Python 2.7 Python 2.7如何确定此顺序?甚至'a','b ..
发布时间:2020-07-01 19:46:58 Python

我不了解非确定性图灵机的概念

我不理解非确定性图灵机的概念。我想我理解术语非确定性算法 :(非确定性算法是一种可以在不同的 运行中表现出不同行为的算法,而不是确定性算法。)因此,该算法可能像: a = fromSomeAlgo(); if(a> foo) stateA(); else stateB(); 但是对于非确定性图灵机,我阅读,它可以包含多个在给定时间的一种状态。另外,维基 ..
发布时间:2020-06-03 20:31:11 其他开发

确定性python脚本以非确定性方式运行

我有一个不使用随机化的脚本,当我运行它时会给我不同的答案.我希望每次运行脚本时答案都是一样的.该问题似乎仅针对某些(病态)输入数据才会发生. 该代码段来自一种算法,用于为线性系统计算特定类型的控制器,并且主要由线性代数(矩阵求逆,Riccati方程,特征值)组成. 显然,这对我来说是一个大问题,因为我现在不相信自己的代码可以给我正确的结果.我知道条件不佳的数据的结果可能是错误的,但我希 ..
发布时间:2020-05-18 20:59:21 Python

多线程程序可以确定吗?

通常,多线程程序是不确定的,这意味着,如果多线程程序崩溃,则几乎不可能重新创建导致该情况的错误.谁真的不知道接下来要运行什么线程,以及什么时候该线程会被再次抢占. 当然,这与OS线程调度算法有关,而且这一事实不知道下一步将运行哪个线程以及该线程将有效运行多长时间. 程序执行顺序也起作用,等等. 但是,如果您拥有用于线程调度的算法,又又知道何时运行什么线程,那么多线程程序又可以变成“确定 ..
发布时间:2020-05-13 20:47:36 其他开发

使用指数补偿的好处是什么?

当代码等待某种不确定的延迟时间条件时,似乎很多人选择使用指数补偿,即等待N秒,检查条件是否满足;如果不是,请等待2N秒,检查条件,等等.与以恒定/线性增加的时间跨度进行检查相比,这样做有什么好处? 解决方案 在同时尝试做某事会互相干扰,而使 none 成功的情况下,指数补偿是很有用的.在这种情况下,让设备在太小的窗口中随机尝试操作将导致大多数尝试失败并必须重试.只有当窗口足够大时,尝试才会 ..