首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >残值,如4e^-14随机出现在Cplex LP模型解决方案:我如何摆脱它们?

残值,如4e^-14随机出现在Cplex LP模型解决方案:我如何摆脱它们?
EN

Stack Overflow用户
提问于 2021-04-28 09:07:35
回答 1查看 30关注 0票数 0

虽然我在Cplex中的线性规划模型的结果似乎是有意义的,但q变量有时是随机的(至少对我来说它似乎是随机的)显示微小的值,比如4e^-14。这对决策变量没有影响,但仍然非常令人恼火,因为我不确定我的模型中是否有什么不正确。您可以在这里看到Q变量的结果,并在这里使用迷你残差:结果Q变量。当我引入二进制变量时,这些残差才开始出现在我的模型中。

Q的定义为:右旋ci浮子q(年),i in Options = (ci * (at+s[i]-at+s[i]-1));

A是一个决策变量。

这是一个约束,Q受以下约束: qi == ai * pi* yt)

因为y是一个二进制变量,所以q应该是ai * pi或0的值。这就是为什么我对剩余价值非常恼火的原因。

,有人知道为什么会出现这些值,以及如何消除它们吗?,我已经花了很多时间在这个问题上,不知道如何解决它。

我在试图解决这个问题时注意到了一些事情:

  • 将所有输入变量转换为整数变量不会改变任何事情
  • 将q转换成整数变量可以解决这个问题,但是由于ai需要成为一个浮动变量,所以它破坏了模型。
  • 添加约束使q >= 0不消除负残值,例如-4e^-14。
  • 为特定的t添加一个使q=0的约束有助于消除那里的残值,但当然也会破坏模型。

非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-28 15:17:28

这是一个容忍问题。像Cplex这样的MIP解决者有一群这样的人。这里发挥作用的是整数可行性公差(epint)和可行性公差(eprhs)。你可以把它们拉紧,但我通常把它们留在原处。有时,它有助于在打印结果之前对结果进行舍入,或者只是在输出的格式设置中使用较少的数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67297156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档