feasopt.m


函数feasopt(文件名)% % 2023年版权,Gurobi优化,LLC % %这个例子从狗万app足彩文件读取MIP模型,增加了人工%变量每个约束,然后最小化%人工变量的总和。解决方案与目标零对应%输入模型的可行解。%我们也可以使用FeasRelax特性。在这个例子中,我们使用minrelax = 1,即优化模型发现%的解决方案,最大限度地减少返回原来的目标,但只从其中%的解决方案,最大限度地减少人工变量的总和。%读取流模型(“% s \ n阅读模式”,文件名);模型= gurobi_read(文件名);参数个数。日志文件=“feasopt.log”;result1 = gurobi编写此表达式(模型、参数);(行,关口)=大小(水平井眼); % Create penalties, only linear constraints are allowed to be relaxed penalties.rhs = ones(rows, 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