我有一个混合整数二次问题,我的目标函数如下
其中、、是线性函数,表示方差,是 3000 个二进制变量的向量。
如果我想在 gurobi 中使用混合整数二次求解器解决问题,我必须以以下形式定义它:
由于问题是以高级格式定义的并且有大量变量和系数,我不知道如何提取和
我有一个混合整数二次问题,我的目标函数如下
其中、、是线性函数,表示方差,是 3000 个二进制变量的向量。
如果我想在 gurobi 中使用混合整数二次求解器解决问题,我必须以以下形式定义它:
由于问题是以高级格式定义的并且有大量变量和系数,我不知道如何提取和
正如在其他地方回答的那样,对于 MATLAB,您有 CVX 和 YALMIP 之类的东西。在 YALMIP 中,您可以使用类似的方法来解决(假设您已经定义了函数 f 和 g)
x = binvar(n,1);
objective = var(f(x),g(x)) + ...
optimize([],objective)
将调用一个合适的求解器(如果 f 和 g 是线性运算符,它是一个 MIQP,如果 Gurobi 已安装并且在路径上可见,它将被使用)
如果您只想导出数字数据(等),您可以这样做
export([],objective,sdpsettings('solver','gurobi'))
但请注意,对于任何求解器来说,具有 3000 个变量的 MIQP 很容易完全难以处理。