feasopt.m
函数feasopt(filename)%%版权所有2019,Gurobi Optimizati狗万app足彩on,LLC%%此示例从文件中读取MIP模型,向每个约束添加人工%变量,然后最小化%人工变量之和。目标为零的解决方案对应于输入模型的可行解决方案我们也可以使用FeasRelax特性来实现这一点。在本例中,我们%使用minrelax=1,即优化返回的模型会找到一个使原始目标最小化的解决方案%,但只能从使人工变量之和最小化的%解决方案中找到读取模型fprintf('读取模型%s\n',文件名);model=gurobi_read(文件名);params.logfile='feasopt.log';结果1=古罗比(模型,参数);[行,列]=大小(型号A);%创建惩罚,仅允许线性约束被放松惩罚。rhs=一(行,1);结果=gurobi_feasrelax(模型,0,真,惩罚,参数);gurobi_write(result.model,'feasopt1.lp');%明确目标模型。obj=零(cols,1);nvar=cols;对于c=1:如果model.sense(c)~='>'nvar=nvar+1,则为行;模型A(c,nvar)=-1;模型obj(nvar)=1;型号.vtype(nvar)=“C”;model.varnames(nvar)=strcat('ArtN_uz',model.constrnames(c));模型lb(nvar)=0;ub(nvar)=inf;如果型号为,则结束。检测(c)~='<'nvar=nvar+1;模型A(c,nvar)=1;模型obj(nvar)=1;型号.vtype(nvar)=“C”;model.varnames(nvar)=strcat('ArtP_u',model.constrnames(c));模型lb(nvar)=0;ub(nvar)=inf;结束gurobi_write(模型'feasopt2.lp');结果2=古罗比(模型,参数);终止