为什么会有一些关掉presolve之后的数值问题吗?
回答亲爱的支持团队,
我是测试一个简单的模型。
当我解决了这个问题,没有设置任何参数,结果表明,vratio = 0.1和-2.30259 logv = = ln(0.1),这满足了两个约束条件。
然而,当我关掉presolve再次运行相同的模型,我得到了警告,指出最大约束违反超过公差。由此产生的决策变量,vratio = 0.1,但logv = -23.0226,这不是ln(0.1)但ln (1)。
我想知道为什么我有一个不同的结果是不正确的,当我关掉presolve。非常感谢你提前。
最好的问候,
Yen-Chu吴
0
-
嗨Yen-Chu,
Presolving Gurobi必须确定变量的域。你不显式地指定变量的范围\ (\ texttt {vratio} \),所以Gurobi不知道如何分配支持点的分段线性近似\日志(\ \)。的近似面积约0.1然后也不准确的。可以减少最终错误通过设置一个上限\ (\ texttt {vratio} \),例如,\ (\ texttt {vratio} \ leq 10 \)。
与启用presolving Gurobi立即检测到这个问题很简单,直接在presolving解决它。
欢呼,
马蒂亚斯0
请登录留下你的评论。
评论
1评论