如何在Gurobi的目标方程中定义多项式的更高次幂?

时间:2019-07-13 14:28:19

标签: python gurobi

我正在尝试在我的目标方程式中添加不同幂的多项式。我尝试在公式中使用Python的math.pow,但没有用。以下是我的代码:

modal = Model("modal")

temp = modal.addVar(-26,48, vtype=GRB.CONTINUOUS, name = "temp")

EC = gurobi.QuadExpr(math.exp(7e-7)*math.pow(temp,6) - math.exp(9e-5)*math.pow(temp,5) + 0.0022*math.pow(temp,4) + 0.0887*math.pow(temp,3)- 0.5655*pow(temp,2) - 69.606*temp + 4979.7)

mAggresive.setObjective(EC + EUC + ELAggresive, GRB.MINIMIZE)

1 个答案:

答案 0 :(得分:0)

Gurobi仅能处理(某些)二次形式。当然,x ^ 6与:

x2 = x^2
x4 = x2^2
x6 = x4*x2

看起来不错,但通常情况下必须凸出。这意味着我们不能有二次等式约束。在某些情况下,您可以将事情转换为不平等现象,但总的来说,古罗比无法满足您的需求。

当然,另一种选择是使用分段线性逼近。古罗比(Gurobi)具有使此操作变得容易的设施。