Change parameters

Examples: callback, fixanddive, lp, lpmethod, mip2, params, sensitivity

This section illustrates the use of Gurobi parameters. Example params reads a MIP model from a file, then solves the model using four different values of the MIPFocus parameter, running for five seconds per value (MIPFocus chooses the high-level strategy that the MIP solver uses to solve the problem). It then chooses the parameter value that produced the smallest MIP gap, and continues solving the model until it achieves optimality.

The mechanics of setting a parameter are quite simple. To set the MIPFocus parameter in C, do the following:

  GRBsetintparam(GRBgetenv(model), GRB_INT_PAR_MIPFOCUS, i);
In C++:
  model.getEnv().set(GRB_IntParam_MIPFocus, i);
In Java:
  model.getEnv().set(GRB.IntParam.MIPFocus, i);
In C#:
  model.GetEnv().Set(GRB.IntParam.MIPFocus, i);
In Python:
  model.params.MIPFocus = i

Note how parameter settings affect the behavior of the different models. When we set the TimeLimit parameter on the base model, then make a copy of that model, the parameter setting is carried over to the copy. The copy gets its own environment that is a copy of the original. When we set the MIPFocus parameter on the copy, that parameter change has no effect on the other copies, nor on the original model.