问题背景
在电力市场出清中,由于系统过大,使用most进行多时段出清时,其默认计算结束gap为0,导致计算过慢甚至永远无法得到结果。故可设置其停止计算的gap精度或计算时间。
设置停止的gap或时间
分别设置 gurobi.opts.MIPGap 与 gurobi.TimeLimit 字段
%% solver options
if have_feature('gurobi')
%mpopt = mpoption(mpopt, 'gurobi.method', -1); %% automatic
%mpopt = mpoption(mpopt, 'gurobi.method', 0); %% primal simplex
mpopt = mpoption(mpopt, 'gurobi.method', 1); %% dual simplex
%mpopt = mpoption(mpopt, 'gurobi.method', 2); %% barrier
mpopt = mpoption(mpopt, 'gurobi.threads', 2);
mpopt = mpoption(mpopt, 'gurobi.opts.MIPGap', 5e-4); % 停止计算的gap为0.05%
mpopt = mpoption(mpopt, 'gurobi.TimeLimit', 10); % 设置求解时间为10s
mpopt = mpoption(mpopt, 'gurobi.opts.MIPGapAbs', 0);
end
这与yalmip操作类似。