Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CPLEX浮点精度_Java_Linear Programming_Cplex - Fatal编程技术网

Java CPLEX浮点精度

Java CPLEX浮点精度,java,linear-programming,cplex,Java,Linear Programming,Cplex,问题:在CPLEX将其视为0之前,浮点可以有多小 我问这个问题是因为我的ILP通常处理小数字,但现在它遇到了10^-18到10^-35的数字。结果表明出了问题。Java没有读错或写错,下一步是CPLEX解决ILP,所以我想知道浮点可以有多小 更多信息:我的系统使用了一种百分位松弛的形式,允许人工变量接管目标函数变量的工作,而不涉及太多细节,然而,现在看来,这些对目标函数没有影响的人工变量并不是从具有权重的目标函数变量中选取的。CPLEX可能会对问题进行缩放,因此您的问题可能不仅是这个,而且是:我

问题:在CPLEX将其视为0之前,浮点可以有多小

我问这个问题是因为我的ILP通常处理小数字,但现在它遇到了10^-18到10^-35的数字。结果表明出了问题。Java没有读错或写错,下一步是CPLEX解决ILP,所以我想知道浮点可以有多小


更多信息:我的系统使用了一种百分位松弛的形式,允许人工变量接管目标函数变量的工作,而不涉及太多细节,然而,现在看来,这些对目标函数没有影响的人工变量并不是从具有权重的目标函数变量中选取的。

CPLEX可能会对问题进行缩放,因此您的问题可能不仅是这个,而且是:我的变量之间的差距有多大?分析结果应该通过读取状态消息来完成(您没有说明您是如何得出结论的)。除此之外,大多数公差可以由我假设的参数控制。但这肯定是一个复杂的主题。CPLEX(和大多数其他解算器)在具有较小值范围的数字时表现最佳。例如,CPLEX内部的可行性和完整性内置公差通常为10^-5或10^-6。因此,如果模型中的值介于10^-18和10^-35之间,涵盖17个数量级,比默认公差宽得多,那么较小的值可能会在噪声中丢失。这些非常微小的值在您的模型中实际有用吗?它们是否以有意义的方式影响解决方案?10^18是关于原子和行星之间的大小比。@Timchippingtonderick回答你的问题是的,这些值很重要,因为它们表示重要性,数字越低,重要性越高,因此它应该首先“激活”这些值。Atm自动选择它们,因为它们几乎为0。现在,我有了这个范围,我可能可以缩放它们中的每一个,以适应这个范围,最低的仍然是最低的等等。谢谢你的帮助!如果你想把它写在一个答案中,我会接受它作为解决方案,只要我知道它是有效的。如果你尝试一个理性的LP解算器,比如。