manbet体育手机客户端


mip2.java.


/ *版权所有2018,Gurobi优狗万app足彩化,LLC * // *此示例从文件中读取MIP模型,解决了它并从解决MIP解决时生成的所有可行解决方案的客观值。然后它创建固定模型并解决该模型。* /进口gurobi。*;公共类MIP2 {公共静态void main(String [] args){if(args.length <1){system.out.println(“用法:java mip2 filename”);system.exit(1);试试{grbenv env = new grbenv();grbmodel模型=新grbmodel(env,args [0]);if(model.get(grb.intattr.ismip)== 0){system.out.println(“型号不是mip”);system.exit(1);model.Optimize(); int optimstatus = model.get(GRB.IntAttr.Status); double objval = 0; if (optimstatus == GRB.Status.OPTIMAL) { objval = model.get(GRB.DoubleAttr.ObjVal); System.out.println("Optimal objective: " + objval); } else if (optimstatus == GRB.Status.INF_OR_UNBD) { System.out.println("Model is infeasible or unbounded"); return; } else if (optimstatus == GRB.Status.INFEASIBLE) { System.out.println("Model is infeasible"); return; } else if (optimstatus == GRB.Status.UNBOUNDED) { System.out.println("Model is unbounded"); return; } else { System.out.println("Optimization was stopped with status = " + optimstatus); return; } /* Iterate over the solutions and compute the objectives */ GRBVar[] vars = model.getVars(); model.set(GRB.IntParam.OutputFlag, 0); System.out.println(); for (int k = 0; k < model.get(GRB.IntAttr.SolCount); ++k) { model.set(GRB.IntParam.SolutionNumber, k); double objn = 0.0; for (int j = 0; j < vars.length; j++) { objn += vars[j].get(GRB.DoubleAttr.Obj) * vars[j].get(GRB.DoubleAttr.Xn); } System.out.println("Solution " + k + " has objective: " + objn); } System.out.println(); model.set(GRB.IntParam.OutputFlag, 1); /* Create a fixed model, turn off presolve and solve */ GRBModel fixed = model.fixedModel(); fixed.set(GRB.IntParam.Presolve, 0); fixed.optimize(); int foptimstatus = fixed.get(GRB.IntAttr.Status); if (foptimstatus != GRB.Status.OPTIMAL) { System.err.println("Error: fixed model isn't optimal"); return; } double fobjval = fixed.get(GRB.DoubleAttr.ObjVal); if (Math.abs(fobjval - objval) > 1.0e-6 * (1.0 + Math.abs(objval))) { System.err.println("Error: objective values are different"); return; } GRBVar[] fvars = fixed.getVars(); double[] x = fixed.get(GRB.DoubleAttr.X, fvars); String[] vnames = fixed.get(GRB.StringAttr.VarName, fvars); for (int j = 0; j < fvars.length; j++) { if (x[j] != 0.0) { System.out.println(vnames[j] + " " + x[j]); } } // Dispose of models and environment fixed.dispose(); model.dispose(); env.dispose(); } catch (GRBException e) { System.out.println("Error code: " + e.getErrorCode() + ". " + e.getMessage()); } } }