【发布时间】:2016-03-27 11:11:32
【问题描述】:
我需要找到线性程序(所有输入都是整数)的精确解。重要的是求解器还将解输出为有理数,理想情况下无需对浮点数执行任何中间步骤。
GLPK 可以进行精确的算术运算,但不能将解显示为有理数(即我得到 0.3333 的 1/3)。我可能会尝试猜测这意味着哪个数字,但这似乎很脆弱。
我找不到可以做这种事情的 LP 求解器。有吗?性能不是一个大问题;我的问题很小。 (我确实考虑过使用像 Z3 这样的 SMT 求解器;他们可以解决这类问题并提供精确的合理解决方案,但他们诉诸于量词消除,而不是使用更适合 Simplex 等线性规划的算法)
【问题讨论】:
-
QSopt_ex Rational LP Solver (link) 有可用的源代码
-
这看起来不错,而且因为它是免费软件而获得奖励积分。谢谢!如果你把它变成一个答案,我会接受它。
-
为了未来读者的利益:我无法在我的系统上构建上述 QSopt_ex,但是 Github 上的这个 QSopt_ex 分支运行良好:github.com/jonls/qsopt-ex
标签: linear-programming arbitrary-precision