问题标签 [mzn2fzn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
minizinc - 如何通过非标准的 FlatZinc 扩展获得有理数的精确无限精度表示?
默认情况下,自动计算MiniZincmzn2fzn
模型中浮点除法的结果,并将其作为常量浮点值存储在生成的FlatZinc模型中。
例子:
文件test.mzn
翻译成
变得等于
相反,我们想要获得的是一个FlatZinc文件,内容如下:
其中float_div()
是一个新引入的非标准FlatZinc约束。
是否可以通过使用约束目录的变体来生成原始问题的std
这种编码,或者这种编码是否需要对工具的源代码进行更重大的更改mzn2fzn
?在后一种情况下,我们可以提供一些指导吗?
***:我们有一些公式不适合有限精度浮点表示,因为它会将SAT
结果更改为UNSAT
.
minizinc - FlatZinc 文件中的这些 `float_div` 和 `float_times` 约束是什么?
我只是尝试运行mzn2fzn
以下MiniZinc文件:
这是生成的FlatZinc文件:
的版本mzn2fzn
如下:
我有以下问题:
- 什么是FlatZinc 1.6 标准
float_div
似乎没有提到的约束? - 什么是FlatZinc 1.6 标准
float_times
似乎没有提到的约束?
是否有任何FlatZinc求解器实际上支持它们?
注意我实际上在FlatZinc 2.2.0 的文档中找到了这些函数的踪迹,但是,我不明白为什么这些函数是由 1.6 版生成的,mzn2fzn
因为它的文档似乎没有提到它们中的任何一个。
minizinc - Gecode 和 G12 (MIP) 是否使用无限精度算术?
我只想知道这两个 MiniZinc 求解器是否默认使用无限精度算术。
floating-point - MiniZinc 中的最小和最大浮点值
来自 MiniZinc规范:
浮点数代表实数。浮点表示是实现定义的。这意味着浮点数的可表示范围和精度是实现定义的。然而,一个实现应该在运行时中止异常浮点操作(例如,如果使用 IEEE754 浮点,则产生 NaN 的那些)。
Float 表示是实现定义的,这意味着什么?这是否取决于将使用的求解器?
mzn2fzn工具如何处理浮点表示?它的界限是什么?