mip2.py.


mip2.py.


#!/ usr / bin / env python3.7#版权所有2021,guro狗万app足彩bi优化,llc#此示例从文件中读取MIP模型,解决它并打印#解决MIP时生成的所有可行解决方案的客观值。然后它创建了相关的固定模型和#解决该模型。导入Sys Import Gurobipy作为Gurobipy导入Grb Ifloge导入GuROBY IF LEN(SYS.ARGV)<2:PRINT('用法:MIP2.PY FILENAME')SYS.EXIT(0)#读取和求解模型模型= GP.READ(SYS。argv [1])如果model.ismip == 0:print('型号不是mip')sys.exit(0)model.optimize()如果model.status == grb.optimal:print('最佳目标:%g'%model.objval)elif model.status == grb.inf_or_unbd:打印('型号是不可行的或无界')sys.exit(0)elif model.status == gr.infeasible:print('模型是不可行的')sys.exit(0)elif model.status == grb.unbounded:print('型号是无界')sys.exit(0)else:print('优化以status%d'%model.status结束)sys.exit(0)#迭代解决方案并计算kperams.outputflag = 0打印(model.solcount):model.params.solutionnumber = k打印('解决方案%d有目标%g'%(k,model.poolobjval))打印('')model.params.outputflag = 1固定= model.fixed()fixed.params.presolve = 0 fixed.optimize()如果fixed.status!=GRB..optimal:打印(“错误:固定模型不是最佳”)sys.exit(1)diff = model.objval  -  fixed.objval如果abs(diff)> 1e-6 *(1.0 + abs(model.objval)): print('Error: objective values are different') sys.exit(1) # Print values of nonzero variables for v in fixed.getVars(): if v.X != 0: print('%s %g' % (v.VarName, v.X))