Params.java


/*版权所有2023,Gurobi O狗万app足彩ptimization, LLC */ /*使用与模型相关的参数。一个MIP可以用不同的参数集求解几秒钟。选择MIP间隙最小的,继续优化,直到找到最优解为止。*/进口gurobi.*;公共类参数{公共静态无效main(字符串[]args) {if (args。长度< 1){System.out。println("使用:java Params文件名");system . exit (1);} try{//读取模型并验证它是MIP GRBEnv env = new GRBEnv();GRBModel m = new GRBModel(env, args[0]);if (m.t get(grb . intatr . ismip) == 0){系统。println("模型不是整数程序"); System.exit(1); } // Set a 2 second time limit m.set(GRB.DoubleParam.TimeLimit, 2); // Now solve the model with different values of MIPFocus GRBModel bestModel = new GRBModel(m); bestModel.optimize(); for (int i = 1; i <= 3; ++i) { m.reset(); m.set(GRB.IntParam.MIPFocus, i); m.optimize(); if (bestModel.get(GRB.DoubleAttr.MIPGap) > m.get(GRB.DoubleAttr.MIPGap)) { GRBModel swap = bestModel; bestModel = m; m = swap; } } // Finally, delete the extra model, reset the time limit and // continue to solve the best model to optimality m.dispose(); bestModel.set(GRB.DoubleParam.TimeLimit, GRB.INFINITY); bestModel.optimize(); System.out.println("Solved with MIPFocus: " + bestModel.get(GRB.IntParam.MIPFocus)); } catch (GRBException e) { System.out.println("Error code: " + e.getErrorCode() + ". " + e.getMessage()); } } }