CPLEX Simplex Parameter Options

You can change the Simplex options for CPLEX by choosing CPLEX parameters from the Options menu and then pressing the Simplex tab. This will display the dialog box shown below:

Figure 4.42: The Simplex Tab in the CPLEX Options Dialog Box

List of Options

Option Name MPL Name Solver Param ParamNr Type Default Min Max
Algorithm OptimizeAlgorithm list 1 1 6
Crash Method CrashIndicator CraInd 1007 list 1 -1 1
Scaling ScaleAlgorithm ScaInd 1034 list 0 -1 1
Pricing Primal PrimalPricingAlg PPriInd 1029 list 0 -1 4
Pricing Dual DualPricingAlg DPriInd 1009 list 0 0 5
Refactorization RefactorFreq ReInv 1031 int 0 0 10000
Basis Interval BasisInterval BasInterval 1004 int 50000 1 MAXINT
Use Perturbation PerturbationIndicator PerInd 1027 flag 0 0 1
Perturbation Constant PerturbationConstant EpPer 1015 real 0.0001 1e-8 MAXREAL
Perturbation Limit PerturbationLimit PerLim 1028 int 0 0 MAXINT
Feasibility Tolerance FeasibilityTol EpRHS 1016 real 1e-6 1e-10 0.1
Optimality Tolerance OptimalityTol EpOpt 1014 real 1e-6 1e-10 0.1
Markowitz Tolerance MarkowitzTol EpMrk 1013 real 0.01 0.0001 0.99999


Description of Options

Algorithm

The algorithm option selects which algorithm to use when optimizing the LP problem. Primal simplex is the default algorithm, but always try to dual simplex as well, particularly for difficult problems. Barrier works well on many large problems. The network algorithm is fastest if a large network structure exists in the problem.

Primal (1) Use the primal simplex algorithm
Dual (2) Use the dual simplex algorithm
Net Primal (3) Use the network algorithm and then primal simplex
Net Dual (4) Use the network algorithm and then dual simplex
Barrier (5) Use the barrier algorithm
Barrier w/Cross (6) Use the barrier algorithm followed by an automatic crossover to a basic solution

Crash Method

The Crash Method option determines the way CPLEX orders variables relative to the objective function when selecting an initial basis. Standard order usually works well, but experimentation is required to determine if changing this option will benefit the problem solution efficiency.

Alternate objective/aggressive (-1) If primal, alternate ways of using objective coefficients; else, if dual aggressive starting basis.
Ignore objective/aggressive (0) If primal, ignore object coefficients during crash; else, if dual aggressive starting basis.
Alternate objective/default (1) If primal, alternate ways of using objective coefficients; else, if dual default starting basis (default).

Scaling

The Scaling option determines the scaling of the problem matrix. If your problem has difficulty remaining feasible during the solution process, try aggressive scaling.

No scaling (-1) No scaling is to be done
Equilibration scaling (0) Use the equilibration scaling method
More aggressive scaling (1) Use a modified, more aggressive scaling method that can produce improvements on some problems

Pricing Primal

The Pricing Primal option selects the pricing algorithm for the primal simplex. The default hybrid pricing usually provides the fastest solution time but many problems can benefit from alternate settings.

Reduced cost pricing (-1) Use reduced-cost pricing
Hybrid reduced/devex (0) Use Hybrid reduced-cost and Devex pricing
Devex pricing (1) Use Devex pricing
Steepest edge pricing (2) Use Steepest-edge pricing
Steepest w/slack norms (3) Use Steepest-edge pricing with slack initial norms
Full pricing (4) Use Full pricing

Pricing Dual

The Pricing Dual option selects the pricing algorithm for the dual simplex. While the default pricing usually provides the fastest solution time, many problems benefit from alternate settings.

Determined automatically (0) Pricing determined automatically
Standard dual pricing (1) Use Standard dual pricing
Steepest edge pricing (2) Use Steepest-edge pricing
Steepest in slack space (3) Use Steepest-edge pricing in slack space
Steepest, unit init norms (4) Use Steepest-edge pricing, unit init norms.

Refactorization

The number of iterations between refactorizations of the basis matrix. In the default setting of zero, CPLEX determines a setting automatically at run time.

Basis Interval

The number of iterations between refactorizations of the basis matrix. In the default setting of zero, CPLEX determines a setting automatically at run time.

Use Perturbation

When the perturbation option is On all problems will automatically be perturbed as optimization begins. When Off allows CPLEX to determine dynamically, during solution, whether progress is slow enough to merit a perturbation. The default in Off, since the situations in which a perturbation helps will be rare and restricted to problems that exhibit extreme degeneracy.

Perturbation Constant

The perturbation constant sets the amount by which CPLEX will perturb the upper and lower bounds on the variables when a problem is perturbed. This parameter can be set to a smaller value if the default value creates too large a change in the problem.

Perturbation Limit

The primal and dual simplex methods include a perturbation mechanism for dealing with situations in which no progress has been made in the objective function over a significant number of iterations. This phenomenon is sometimes called stalling. With default settings, the number of stalled iterations before perturbation is invoked is determined internally by CPLEX depending upon problem dimensions. However, when the parameter is set to a positive value by the user, that value becomes the limit on stalled iterations before perturbation will be performed.

Feasibility Tolerance

The feasibility tolerance specifies the degree to which a problem's basic variables may violate their bounds. This tolerance influences the selection of an optimal basis and can be reset to a lower value when a problem is having difficulty maintaining feasibility during optimization. Default value is 1e-06.

Optimality Tolerance

The optimality tolerance specifies the reduced cost tolerance for optimality. This option governs how closely CPLEX must approach the theoretically optimal solution. Default value is 1e-06.

Markowitz Tolerance

The Markowitz tolerance influences pivot selection during basis factorization. Increasing the Markowitz threshold may improve the numerical properties of the solution. Default value is 0.01.


Back To Top | Maximal Home Page | List of Solvers | Previous Page | Next Page