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.set(GRB_IntParam_MIPFocus, i);
In Java:
  model.set(GRB.IntParam.MIPFocus, i);
In C#:
  model.Parameters.MIPFocus = 1
  model.Set(GRB.IntParam.MIPFocus, i);
In Python:
  model.Params.MIPFocus = i

We should add a comment on how parameter settings propagate between 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. When we set the MIPFocus parameter on the copy, that parameter change has no effect on the other copies, nor on the original model.