【问题标题】:How can we set a objective function in setObjective in Gurobi我们如何在 Gurobi 的 setObjective 中设置目标函数
【发布时间】:2021-03-07 04:32:29
【问题描述】:
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,但我还没有找到将目标定义为函数的方法。 Here 表示尚不支持。有人可以告诉我有什么解决方法吗?或者这还没有实现。

【问题讨论】:

  • 可能值得在 Gurobi 论坛链接上提出这个问题

标签: python numpy optimization gurobi


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多