Gurobi 6.0.2中分段线性目标出现崩溃/setPWLObj

3
我们有一个复杂的优化问题,其中包括若干个带有整数和连续变量的二次项(使用Anaconda Python / Pycharm with Gurobi 6.0.2)。我们应用setPWLObj函数来逼近二次目标组成部分。以下是该函数的代码:
    m.addConstr(l1[t] == 1/2.0 * (hsqrt[t]+hQ[t]))
    m.addConstr(l2[t] == 1/2.0 * (hsqrt[t]-hQ[t]))
    hlx1 = linspace(-10, 10, 50)  
    hlx2 = linspace(-10, 10, 50)
    h1y1 = [0]*50
    hly2 = [0]*50

    for i in range(len(hlx1)):
        h1y1[i] = hlx1[i] * hlx1[i] * 7.348 / 1000.0
        hly2[i] = -hlx2[i] * hlx2[i] * 7.348 / 1000.0

    m.setPWLObj(l1[t], hlx1, h1y1)
    m.setPWLObj(l2[t], hlx2, hly2)

当l1和l2是连续变量时。

这个问题表现不一致。在Mac上运行时,大多数情况下会出现退出代码138和139(对应总线错误10),有时可以计算出相同问题的解决方案。特别是在连续几次启动优化时,情况似乎是随机的。

在Windows机器上,要么Python崩溃,要么提供退出代码“-1073741819”。进一步搜索此退出代码并没有真正帮助我们。


提供l1等变量的完整定义示例将非常有用。 - Sebastian Werk
1个回答

1
抱歉让您久等了,但我们已经解决了问题。
实际上,我们发现 Python 崩溃是由于 Gurobi 中的一个 bug 导致的。我们向他们提出请求后,该 bug 被修复了。
如果使用 Gurobi 6.0.3 或以上版本,则不再存在此错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接