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
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 |
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 |
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). |
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 |
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 |
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. |
The number of iterations between refactorizations of the basis matrix. In the default setting of zero, CPLEX determines a setting automatically at run time.
The number of iterations between refactorizations of the basis matrix. In the default setting of zero, CPLEX determines a setting automatically at run time.
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.
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.
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.
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.
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.
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.