我们如何在 Gurobi 的 setObjective 中设置 objective 函数

How can we set a objective function in setObjective in Gurobi

import numpy as np
import scipy.optimize
import gurobipy as gp

halfspaces = np.array([[-0.513574, 0.858045 , 0,1.99106]
,[0.513574 ,-0.858045 , -0,2.00894]
,[-0.856348 , -0.512558, -0.0628725, 3.28365]
,[ 0.856348 , 0.512558 , 0.0628725,-0.402219]
,[0.0539475 , 0.0322897 ,-0.998022,-0.928943]
,[-0.0539475 ,-0.0322897 , 0.998022,2.92894]
,[-0.853709 , -0.509332 , -0.108451,0.0116693]])


A = halfspaces[:,0:3]
b = halfspaces[:,-1]

def objective(c):
    d = np.dot(A,c)-b
    d=np.where(d<=-1e-15, d, d+1.0)
    return np.max([0, np.max(d)])

c = np.dot(np.linalg.pinv(A), b)
c = scipy.optimize.fmin(func=objective, x0=c)

我需要转换成 Gurobi,但我还没有找到将 objective 定义为函数的方法。 Here 说还不支持。有人可以建议我有什么解决方法吗?或者这个还没有实现。

这在 Gurobi 中是不可能的。通常,MIP 求解器需要依赖固定且已知的系数来执行优化。将函数定义为 objective 会严重影响求解器的性能。