Parameters

Parameters are manipulated using IloCplex.setParam(). For example:

    cplex.setParam(IloCplex.BooleanParam.PreInd, false);

sets the Boolean parameter PreInd to false, instructing ILOG CPLEX not to apply presolve before solving the problem.

Integer parameters often indicate a choice from a numbered list of possibilities, rather than a quantity. For example, the class IloCplex.PrimalPricing defines constants with the integer parameters shown in Table 2.4, Constants in IloCplex.PrimalPricing for better maintainability of the code.

Table 2.4 Constants in IloCplex.PrimalPricing

Integer Parameter 
Constant in class IloCplex.PrimalPricing 
0 
IloCplex.PrimalPricing.Auto 
1 
IloCplex.PrimalPricing.Devex 
2 
IloCplex.PrimalPricing.Steep 
3 
IloCplex.PrimalPricing.SteepQStart 
4 
IloCplex.PrimalPricing.Full 

Thus, the suggested method for setting steepest-edge pricing for use with the primal simplex algorithm is:

  cplex.setParam(IloCplex.IntParam.PPriInd,
	IloCplex.PrimalPricing.Steep);

Table 2.5 gives an overview of the classes defining constants for parameters.

Table 2.5 Classes with Parameters Defined by Integers.

class 
for use with parameters: 
IloCplex.Algorithm 
IloCplex.IntParam.RootAlgIloCplex.IntParam.NodeAlg 
IloCplex.MIPEmphasis 
IloCplex.IntParam.MIPEmphasis 
IloCplex.VariableSelect 
IloCplex.IntParam.VarSel 
IloCplex.NodeSelect 
IloCplex.IntParam.NodeSel 
IloCplex.DualPricing 
IloCplex.IntParam.DPriInd 
IloCplex.PrimalPricing 
IloCplex.IntParam.PPriInd 

Parameters can be queried with method IloCplex.getParam() and reset to their default settings with method IloCplex.setDefaults(). The minimum and maximum value to which an integer or double parameter can be set, is queried with methods IloCplex.getMin() and IloCplex.getMax(), respectively. The default value of a parameter is obtained with IloCplex.getDefault().

When solving MIPs, another important way to control the solution process is by providing priority orders and branching directions for variables. The methods for doing so are:

Priority orders and branch directions allow you to control the branching performed during branch & cut in a static way.

Dynamic control of the solution process of MIPs is provided through goals or control callbacks. Goals and control callbacks are discussed for C++ in Chapter 9, More About Using ILOG CPLEX. The Java goals and callbacks are similar to the C++ versions. Goals and callbacks allow you to control the solution process when solving MIPs based on information generated during the solution process itself.


Previous Page: Controlling ILOG  CPLEX Optimizers  Return to Top Next Page: More Solution Information