manbet体育手机客户端


feasopt.m.


函数feasopt(文件名)%offy oftright 2019,gurobi优化,llc 狗万app足彩%%此示例从文件读取MIP模型,将人工%变量添加到每个约束,然后最小化%人工变量的总和。具有目标零的解决方案对应于输入模型的可行解决方案。%我们还可以使用feasrelax功能来进行。在此示例中,We%使用Minrelax = 1,即优化返回的模型找到解决原始目标的解决方案%,但只能从最小化人工变量的总和中的那些%解决方案中最小化。%读取模型fprintf('读取模型%s \ n',文件名);model = gurobi_read(文件名);params.logfile ='feasopt.log';结果1 = Gurobi(模型,参数);[行,cols] = size(model.a);%创造惩罚,只允许线性约束是放松的惩罚.rhs = in(行,1); result = gurobi_feasrelax(model, 0, true, penalties, params); gurobi_write(result.model, 'feasopt1.lp'); % clear objective model.obj = zeros(cols, 1); nvar = cols; for c = 1:rows if model.sense(c) ~= '>' nvar = nvar + 1; model.A(c, nvar) = -1; model.obj(nvar) = 1; model.vtype(nvar) = 'C'; model.varnames(nvar) = strcat('ArtN_', model.constrnames(c)); model.lb(nvar) = 0; model.ub(nvar) = inf; end if model.sense(c) ~= '<' nvar = nvar + 1; model.A(c, nvar) = 1; model.obj(nvar) = 1; model.vtype(nvar) = 'C'; model.varnames(nvar) = strcat('ArtP_', model.constrnames(c)); model.lb(nvar) = 0; model.ub(nvar) = inf; end end gurobi_write(model, 'feasopt2.lp'); result2 = gurobi(model, params); end