跳转到主要内容

推迟节点是什么?

回答

评论

6个评论

  • JaromiłNajman
    Gurobi员工Gurobi员工

    你好卢卡斯,

    节点推迟如果数值问题过程中遇到的松弛节点的解决方案。这可能是由于非常大/小的变量范围或非常大/小的系数。而不是试图做计算可能错误的数值,Gurobi推迟这一特定节点,希望它可以删除该节点或解决数值问题通过信息聚集在B&B树。

    你可以发布你的日志文件的第一行显示模型数据,我。e的行数、列和非零系数范围一起吗?

    最好的问候,
    Jaromił

    2
  • 卢卡斯巴斯
    Gurobi-versary
    第一个问题
    健谈的人

    嗨Jaromił,

    这是我的模型的大小:

    优化模型与663497行、331973列和2427819 0
    xb4fd3671模型指纹:0
    有296个SOS约束模型
    变量类型:111748连续,220225整数(220224二进制)

    我意识到这是一个相当大的模型。我给Gurobi 128个线程来优化这个模型,虽然它看起来像大部分时间做一些单线程。系数看起来不太糟了:

    系数统计:
    矩阵范围[1 e + 00, 3 e + 03]
    目标范围(1 e + 00, 5 e + 00)
    边界范围[1 e + 00, 3 e + 03]
    RHS范围[1 e + 00, 3 e + 03]

    我也有一些数字麻烦的系数高达10 ^ 8早些时候,新配方的部分我的模型,现在至少根放松不给我“数值遇到麻烦”消息了。

    模型太大吗?

    谢谢,卢卡斯

    0
  • JaromiłNajman
    Gurobi员工Gurobi员工

    你好卢卡斯,

    模型的大小不应推迟的原因节点。你说你新配方的部分模型。你执行再形成做了什么?注意调整约束

    \ [x = 10 ^ 8 y \]

    作为

    \[开始\{对齐}x & = 10 ^ 4 x ' \ \ x ' & = 10 ^ 4 y \{对齐}结束\]

    不能帮助你并不是真正的缩放系数,而是试图隐藏大系数。

    这也可能发生,你几乎是系数矩阵奇异导致数值问题。

    我们的数值指导可能会吸引你的兴趣。

    最好的问候,
    Jaromił

    0
  • 卢卡斯巴斯
    Gurobi-versary
    第一个问题
    健谈的人

    再次感谢!事实上,presolving引进一些大型变量范围:

    gurobi > m =阅读(“gurobi.mps”)
    读议员gurobi.mps模型文件格式
    阅读时间= 1.51秒
    :663497行、331973列,2427819 0
    gurobi > m.printStats ()

    统计模型不知名的:
    线性约束矩阵:663497若干,331973 var, 2427819国际
    变量类型:111748连续,220225整数(220224二进制)
    SOS约束:296
    矩阵系数范围(2830.51):
    目标系数范围(1、5):
    变量绑定范围(2830.51):
    RHS系数范围(2830.51):

    然后,presolving之后:

    gurobi > m = m.presolve ()
    Presolve删除591行和148列(Presolve时间= 5 s)……
    Presolve添加0行和146列
    Presolve删除15 0行和列
    Presolve时间:6.37秒
    gurobi > m.printStats ()

    统计模型_pre:
    线性约束矩阵:663482若干,332119 var, 2323938国际
    变量类型:111748连续,220371整数(220370二进制)
    矩阵系数范围(2830.51):
    目标系数范围(1、5):
    变量绑定范围:[1,9.97035 e + 07]
    RHS系数范围(2830.51):

    我最好的猜测是,有些我没有提供一个绑定的变量,presolving推断一些上界(非常大)。与此有关的两个问题:

    • 这是更坏吗?auto-inferred变量边界约束矩阵添加?如果是这样的话,这将在这种情况下当然矩阵条件恶化。
    • 我可以以某种方式阻止Gurobi这样做吗?你可以看到presolving不做这个模型,所以完全禁用presolving可能是一个好主意在这种情况下,但我认为这将是伟大的如果一个人可以禁止Gurobi矩阵条件恶化。
    0
  • JaromiłNajman
    Gurobi员工Gurobi员工

    你好卢卡斯,

    Auto-inferred界限被添加到presolved模型。你可以试试关掉Presolve通过设置参数设置为0时,你也可以尝试设置参数为0。你提供所有变量的范围,特别是离散的吗?如果不是,尝试为那些看这有助于提供范围。

    最好的问候,
    Jaromił

    0
  • 卢卡斯巴斯
    Gurobi-versary
    第一个问题
    健谈的人

    嗨Jaromlł,

    谢谢。变量的范围被推断确实是我的模型的变量。给他们一些合理的上界presolving后解决了大范围的问题。我仍然不能明白这个模型的行为,但我会为其他问题打开一个不同的问题。

    再次感谢,

    卢卡斯

    0

登录留下你的评论。