feasopt.py


feasopt.py


#!这个例子从一个文件中读取一个MIP模型,为每个约束添加人工#变量,然后使#人工变量狗万app足彩的总和最小化。目标为0的解对应于输入模型的可行解。# #我们也可以使用FeasRelax功能来实现。在这个例子中,我们#使用minrelax=1,也就是说,优化返回的模型会找到一个能够最小化原始目标的解决方案#,但只会从那些能够最小化人工变量之和的#解决方案中找到。导入系统导入gurobipy医生如果len (sys.argv) < 2:印刷(用法:feasopt.py文件名)sys.exit (0) feasmodel = gp.read (sys.argv[1]) #创建一个副本使用FeasRelax特性后feasmodel1 = feasmodel.copy() #明确客观feasmodel.setObjective(0.0) #添加松弛变量c的feasmodel.getConstrs():感觉= c.sense如果感觉! =“>”:feasmodel.addVar(obj=1.0, name="ArtN_" + c. construcname, column=gp。= '<': feasmodel.addVar(obj=1.0, name="ArtP_" + c. construcname, Column =gp. add (obj=1.0, name="ArtP_" + c. construcname, Column =gp.);Column([1], [c])) # optimization modified model feasmodel. optimization () feasmodel.write('feasopt.lp') # use FeasRelax feature feasmodel1. Column([1], [c])) #优化修改后的模型feasmodel. optimization ()feasmodel1.write("feasopt1.lp") feasmodel1.optimize()