Try our new documentation site (beta).
Filter Content By
Version
Text Search
${sidebar_list_label} - Back
Filter by Language
Params.java
/* Copyright 2023, Gurobi Optimization, LLC */ /* Use parameters that are associated with a model. A MIP is solved for a few seconds with different sets of parameters. The one with the smallest MIP gap is selected, and the optimization is resumed until the optimal solution is found. */ import gurobi.*; public class Params { public static void main(String[] args) { if (args.length < 1) { System.out.println("Usage: java Params filename"); System.exit(1); } try { // Read model and verify that it is a MIP GRBEnv env = new GRBEnv(); GRBModel m = new GRBModel(env, args[0]); if (m.get(GRB.IntAttr.IsMIP) == 0) { System.out.println("The model is not an integer program"); 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()); } } }