skip to main content
article

OPT++: An object-oriented toolkit for nonlinear optimization

Published:01 June 2007Publication History
Skip Abstract Section

Abstract

Object-oriented programming is a relatively new tool in the development of optimization software. The code extensibility and the rapid algorithm prototyping capability enabled by this programming paradigm promise to enhance the reliability, utility, and ease of use of optimization software. While the use of object-oriented programming is growing, there are still few examples of general purpose codes written in this manner, and a common approach is far from obvious. This paper describes OPT++, a C++ class library for nonlinear optimization. The design is predicated on the concept of distinguishing between an algorithm-independent class hierarchy for nonlinear optimization problems and a class hierarchy for nonlinear optimization methods that is based on common algorithmic traits. The interface is designed for ease of use while being general enough so that new optimization algorithms can be added easily to the existing framework. A number of nonlinear optimization algorithms have been implemented in OPT++ and are accessible through this interface. Furthermore, example applications demonstrate the simplicity of the interface as well as the advantages of a common interface in comparing multiple algorithms.

References

  1. Bartlett, R. A. Moocho: Multifunctional object-oriented architecture for optimization, user's guide. http://software.sandia.gov/trilines/packages/docs/dev/packages/moocho/doc/html/ind.Google ScholarGoogle Scholar
  2. Bartlett, R. A. 2001. An introduction to rSQP++: An object-oriented framework for reduced-space successive quadratic programming. Report, Department of Chemical Engineering, Carnegie Mellon University, Pittsburgh, PA (Oct.).Google ScholarGoogle Scholar
  3. Benson, S., McInnes, L. C., Moré, J. J., and Sarich, J. 2005. Tao users manual. Tech. Rep. ANL/MCS-TM-242-Revision 1.8, Argonne National Laboratory.Google ScholarGoogle Scholar
  4. Budd, T. 1991. An Introduction to Object-Oriented Programming. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Byrd, R. H., Schnabel, R. B., and Shultz, G. A. 1988. Parallel quasi-Newton methods for unconstrained optimization. Math. Prog. 42, 273--306. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Couture, G., Audet, C., Dennis, J., and Abramson, M. 2006. Nonlinear optimization for mixed variables and derivatives. Online at http://www.gerad.ca/~couturgiNOMAD.Google ScholarGoogle Scholar
  7. Davies, R. B. 2003. NEWMAT09, an experimental matrix package in C++. Online at http://www. robertnz.net/nm_intro.htm.Google ScholarGoogle Scholar
  8. Deng, H. L., Gouveia, W., and Scales, J. A. 1996. The CWP object-oriented optimization library. Leading Edge 15, 5, 365--369. Online at http://coool.mines.edu/index.html.old (see also http://coool.mines.edu).Google ScholarGoogle ScholarCross RefCross Ref
  9. Dennis, Jr., J. E. and Torczon, V. 1991. Direct search methods on parallel machines. SIAM J. Opt. 1, 4, 448--474.Google ScholarGoogle ScholarCross RefCross Ref
  10. El-Bakry, A., Tapia, R., Tsuchiya, T., and Zhang, Y. 1996. On the formulation and theory of the Newton interior point method for nonlinear programming. J. Optim. Theory App. 89, 507--541. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Gertz, E. M. and Wright, S. J. 2003. Object-oriented software for quadratic programming. ACM Trans. Math. Soft. 29, 1, 58--81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Gockenbach, M. S., Petro, M. J., and Symes, W. W. 1999. C++ classes for linking optimization with complex simulations. ACM Trans. Math. Softw. 25, 2, 191--212. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Gondzio, J. and Grothey, A. 2003. Parallel interior point solver for structured quadratic programs: application to financial planning problems. Tech. Rep. MS-03-001, School of Mathematics, The University of Edinburgh.Google ScholarGoogle Scholar
  14. Gondzio, J. and Grothey, A. 2004. Solving nonlinear portfolio optimization problems with the primal-dual interior point method. Tech. Rep. MS-04-001, School of Mathematics, The University of Edinburgh.Google ScholarGoogle Scholar
  15. Gondzio, J. and Sarkissian, R. 2003. Parallel interior point solver for structured linear programs. Math. Prog. 96, 3, 561--584.Google ScholarGoogle ScholarCross RefCross Ref
  16. Gray, G. A. and Kolda, T. G. 2004. APPSPACK 4.0: Asynchronous parallel pattern search for derivative-free optimization. Tech. Rep. SAND2004-6391, Sandia National Laboratories.Google ScholarGoogle Scholar
  17. Gropp, W., Lusk, E., and Skjellum, A. 1994. Using MPI: Portable Parallel Programming with the Message-Passing Interface. The MIT Press, Cambridge, Massachusetts. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Holub, A. I. 1992. C+ C++ Programming With Objects in C and C++. McGraw-Hill, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Hough, P. D. and Meza, J. C. 2002. A class of trust-region methods for parallel optimization. SIAM J. Optim. 13, 1, 264--282. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Howle, V. E., Shontz, S. M., and Hough, P. D. 2000. Some parallel extensions to optimization methods in opt++. Tech. Rep. SAND2000-8877, Sandia National Laboratories.Google ScholarGoogle Scholar
  21. Kolda, T. G. 2004. Revisiting asynchronous parallel pattern search. Tech. Rep. SAND2004-8055, Sandia National Laboratories.Google ScholarGoogle Scholar
  22. Kolda, T. G., Lewis, R. M., and Torczon, V. 2003. Optimization by direct search: new perspectives on some classical and modern methods. SIAM Rev. 45, 3, 385--482.Google ScholarGoogle ScholarCross RefCross Ref
  23. Liu, D. C. and Nocedal, J. 1989. On the limited memory BFGS method for large scale optimization. Math. Prog. 45, 503--528. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Long, K. R. 2003. Sundance: A high-level toolkit for parallel pde simulation and optimization. Online at http://csmr.ca.sandia.gov/~klong/sundance.html.Google ScholarGoogle Scholar
  25. Meza, J. C. 1994. OPT++: An object oriented class library for nonlinear optimization. Tech. Rep. 94-8225, Sandia National Laboratories.Google ScholarGoogle Scholar
  26. Meza, J. C., Judson, R. S., Faulkner, T. R., and Treasurywala, A. M. 1996. A comparison of a direct search method and a genetic algorithm for conformational searching. J. Computat. Chem. 17, 9, 1142--1151.Google ScholarGoogle ScholarCross RefCross Ref
  27. Meza, J. C. and Martinez, M. L. 1993. Direct search methods for the molecular conformation problem. J. Computat. Chem. 15, 6, 627--632. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Meza, J. C. and Plantenga, T. D. 1995. Optimal control of a CVD reactor for prescribed temperature behavior. Tech. Rep. 95-8222, Sandia National Laboratories.Google ScholarGoogle Scholar
  29. Moen, C. D., Spence, P. A., and Meza, J. C. 1995. Optimal heat transfer design of chemical vapor deposition reactors. Tech. Rep. 95-8223, Sandia National Laboratories.Google ScholarGoogle Scholar
  30. Moré, J. J. and Thuente, D. J. 1992. Line search algorithms with guaranteed sufficient decrease. Tech. Rep. MCS-P330-1092, Argonne National Laboratory.Google ScholarGoogle Scholar
  31. Moré, J. J. and Wright, S. J. 1993. Optimization Software Guide. SIAM Press, Philadelphia, PA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Oliva, R. A. 2003. An object-oriented library for molecular dynamics energy computations. Tech. Rep. LBNL-53778, Lawrence Berkeley National Laboratory.Google ScholarGoogle Scholar
  33. Padula, A. D., Scott, S. D., and Symes, W. W. 2004. The standard vector library: A software framework for coupling complex simulation and optimization. Tech. Rep. TR04-19, Rice University.Google ScholarGoogle Scholar
  34. Padula, A. D., Scott, S. D., and Symes, W. W. 2005. A software framework for abstract expression of coordinate-free linear algebra and optimization algorithms. Tech. Rep. TR05-12, Rice University.Google ScholarGoogle Scholar
  35. Stroustrup, B. 1987. The C++ Programming Language. Addison-Wesley, Reading, Massachusetts. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. OPT++: An object-oriented toolkit for nonlinear optimization

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader