2017-09-27 130 views
0

有人可以向我解释参数“已调整”的功能吗? getAdjustmentExponent(),用于ojalgo包的类ModelEntity中的lower,upper,weights,...?我能理解函数是否应该提高的数值表现,但我不明白,为什么限制调整如下:计算为什么在ojalgo中调整参数?

问题:

min 2x+y 
s.t. x+y=3, 
    0<=x<=3.0, 
    0<=y<=0.05 <-- 

到ojalgo问题

min 2x+y 
s.t. x+y=3 
    0<=x<=3.0 
    0<=y<=0.5 <-- 

是这是一个错误还是我忽略了一些东西?

回答

0

这样做是为了提高数字性能。它是如何工作的问题,你会得到不正确的解决方案吗?

你的例子表明有什么不对,但是真的会发生什么?

+0

谢谢你的解释。一般的实现应该是正确的,到目前为止我可以测试它。 我的问题是病态,因此我得到了错误的结果。最后,我找到了可以工作的解算器设置(取消激活补偿功能)。我重新激活它,我有一个问题(https://github.com/optimatika/ojAlgo-extensions/issues/3)。这可能只是一个cplex扩展的具体问题。 – Thomas

+0

解决了这个问题。你可以通过调用'''ExpressionsBasedModel.clearPresolvers();''' – apete

+0

谢谢,关闭ojAlgo的预解析器。现在它运作良好。很高兴知道我可以停用预溶器。不过,我喜欢有这样的工具。 表达式此刻未被调整是否正确?我知道这可能并不总是一个好主意,但有时可以将“0.01a + 0.03b <= 0.04”转换为“1.0a + 3.0b <= 4”。 – Thomas

相关问题