mip2.py


# !/usr/bin/env python3.7 # 2023年版权,Gurobi优化狗万app足彩,LLC #这个例子从文件读取MIP模型,解决了它从所有可行的解决方案并打印#客观值#解决MIP时生成的。然后它创建相关的固定模型和#解决模型。导入系统导入gurobipy从gurobipy gp进口伽马线暴如果len (sys.argv) < 2:打印(“用法:mip2。py文件名”)sys.exit(0) #阅读和解决模型模型= gp.read (sys.argv[1])如果模型。IsMIP = = 0:打印(模型不是一个MIP) sys.exit (0) model.optimize()如果模型。状态= =伽马线暴。优:打印(“优化目的:% g”% model.ObjVal) elif模型。状态= =伽马线暴。INF_OR_UNBD:打印(“模型是不可行或无界”)sys.exit (0) elif模型。状态= =伽马线暴。不可行:打印(模型是不可行的)sys.exit (0) elif模型。状态= =伽马线暴。无限:打印(模型是无限的)sys.exit(0)其他:打印(的优化以地位% d ' % model.Status) sys.exit (0) # model.Params迭代解决方案和计算目标。OutputFlag = 0 print () k范围内(model.SolCount): model.Params。SolutionNumber = k打印(解决% d客观% g’% (k, model.PoolObjVal))打印model.Params (”)。fixed.Params OutputFlag = 1固定= model.fixed ()。如果固定Presolve = 0 fixed.optimize ()。地位! =伽马线暴。优:打印(“错误:固定模型不是最优”)sys.exit (1) diff =模型。ObjVal——固定。ObjVal if 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))