ILOG
Welcome, Guest | Sign In


Blogs | Forums | Worldwide sites | Contact us

title element1
Technical Issues
Performance Tuning
Helpful Articles
ILOG R&D
Recommended Reading
Teaching Optimization
Teaching Overview
Academic Sales
Student Downloads
Related Links
Edelman Award Finalists
INFORMS Science of Better
ILOG CPLEX Performance Tuning for Linear Programs  

ILOG CPLEX has internal logic that enables it to examine and solve linear programs. The application’s default settings typically perform very well. However, if you should want to improve ILOG CPLEX's performance on a linear program, ILOG offers some suggestions below.

Note: Refer to the ILOG CPLEX user manual for additional information.

  • Test each linear programming algorithm
    While changing individual parameters rarely has a major impact on performance, ILOG CPLEX algorithms can behave quite differently. ILOG CPLEX can solve a linear program using the primal simplex method, the dual simplex method, the barrier method, and, in some cases, the network simplex method. ILOG CPLEX also supports variants of these algorithms, including sifting and concurrentopt. Sifting is a simple form of column generation well suited for models where the number of variables dramatically exceeds the number of constraints. Concurrentopt works with multiple processors, running a different algorithm on each processor and stopping as soon as one finds an optimal solution. Find out which algorithm works best on your particular problem for improved performance. The barrier method tends to work well on problems where the product of the constraint matrix multiplied by its transpose is sparse.

  • Solve the dual problem
    You can obtain the solution to a linear program either by solving the primal linear program itself, or solving the dual of the linear program and using its dual variables to obtain the solution to the linear program. If you set the pre-solve dual indicator on, ILOG CPLEX will do this for you by solving the dual problem and returning solution values in the context of the primal problem. Since the computation time for the simplex method depends more on the number of constraints than on the number of variables, this approach is most likely to help with problems where the primal has more constraints than variables. The dual will have fewer constraints. ILOG CPLEX will solve the dual faster than the primal, especially if you try each linear programming algorithm as mentioned above.

  • Check for degeneracy
    Degeneracy can dramatically slow down the simplex method. If a customer reports slow performance on a linear program, degeneracy is a likely cause. To verify this, check the ILOG CPLEX iteration log and look for long sequences of iterations where the objective value remains unchanged. Also look for messages that indicate ILOG CPLEX has to perturb the problem. While perturbations help speed up performance on degenerate problems, using a different algorithm works better. If the problem is primal degenerate, the dual simplex method may still work well; if the problem is dual degenerate, the primal simplex method may still work well; and if the problem is both primal and dual degenerate, the barrier method may work well.

  • Check for numerical difficulties
    ILOG CPLEX algorithms perform millions of floating point computations, so round-off error can gradually accumulate. However, because ILOG CPLEX uses numerically stable methods to perform its linear algebra, round off error usually does not cause problems. Still, if a problem is fundamentally ill conditioned, even the most stable methods may have trouble, either with the accuracy of the final solution or simply with the amount of time required to solve the problem. Use ILOG CPLEX’s solution-quality routines to determine if this is a problem. From the interactive ILOG CPLEX Optimizer, use the 'display solution quality' command. 'Display solution kappa' will give the condition number of the current basis. Condition numbers larger than 1e+8 suggest the problem may be numerically unstable. From the ILOG CPLEX Callable Library, use the CPXgetdblquality and CPXgetkappa routines to obtain the corresponding information. From Concert, use IloILOG CPLEX::getQuality for solution quality. Concert does not currently support a function to obtain the basis condition number.

    If you find that numerical instability hampers performance, setting the Markowitz tolerance to its maximum value of .99999 may help. In addition, set ILOG CPLEX's scaling parameter to 1. Users of ILOG CPLEX 10.0 and later can turn on ILOG CPLEX's numerical caution emphasis parameter to set these and other parameters at once. Consider the feasibility and optimality tolerances. The default values are 1e-6. If your problem data is only accurate to a larger value, consider increasing the feasibility and optimality tolerance to the same level of accuracy as your data.

Tell Me About Optimization
    How does it work?  
    What can it do?  
    Why is ILOG the leader?  
     
The ILOG Optimization Suite
 
ILOG OPL Development Studio
 
 
ILOG ODM
 
 
ILOG CPLEX
 
 
ILOG CP Optimizer
 
     
ILOG ODMS Demo
This demo will show how ILOG ODMS can help you develop decision support applications that address your company's unique planning and scheduling problems.
 
Watch the demo
 
 
Academic Sales
 
The Right Hand Side
 
Check out ILOG's optimization e-newsletter.
 
     
ILOG Optimization Technologies Workshop
  2 October 2008
Toronto, Ontario Canada
 
 
Learn more
 
Report
Are Packaged Planning Solutions Always Appropriate?
By Simon Bragg

ARC Advisory Group

Managers should consider a custom planning and scheduling solution when:

  • Multiple modules are required to create a plan
  • Risk versus reward is an important trade-off
  • Your industry has relatively few participants.

Read it now

Customer Spotlight
   
     
 
 
element3