home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / faqs / sci / answers / nonlinear-programming-faq < prev    next >
Internet Message Format  |  1997-10-05  |  42KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!nntprelay.mathworks.com!news.maxwell.syr.edu!newsfeed.acns.nwu.edu!news.acns.nwu.edu!4er
  2. From: 4er@iems.nwu.edu (Robert Fourer)
  3. Newsgroups: sci.op-research,sci.answers,news.answers
  4. Subject: Nonlinear Programming FAQ
  5. Followup-To: sci.op-research
  6. Date: 4 Oct 1997 20:20:09 GMT
  7. Organization: Northwestern University, Evanston, IL, US
  8. Lines: 798
  9. Approved: news-answers-request@MIT.Edu
  10. Distribution: world
  11. Expires: 11/05/97
  12. Message-ID: <6168dp$mj6@news.acns.nwu.edu>
  13. Reply-To: 4er@iems.nwu.edu (Robert Fourer)
  14. NNTP-Posting-Host: scherzo.iems.nwu.edu
  15. Summary: A List of Frequently Asked Questions about Nonlinear Programming
  16. Keywords: FAQ, NLP, Nonlinear Programming
  17. Originator: 4er@scherzo.iems.nwu.edu
  18. Xref: senator-bedfellow.mit.edu sci.op-research:8391 sci.answers:7179 news.answers:113858
  19.  
  20. Posted-By: auto-faq 2.4
  21. Archive-name: nonlinear-programming-faq
  22. Last-modified: October 4, 1997
  23.  
  24. [ ]
  25.  
  26.         Nonlinear Programming
  27.         Frequently Asked Questions
  28.  
  29. Optimization Technology Center of
  30. Northwestern University and Argonne National Laboratory
  31. Posted monthly to Usenet newsgroup sci.op-research
  32.  
  33. World Wide Web version:
  34. http://www.mcs.anl.gov/home/otc/Guide/faq/nonlinear-programming-faq.html
  35. Plain-text version:
  36. ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq
  37.  
  38. THIS PLAIN-TEXT VERSION DOES NOT SHOW THE MANY HYPERTEXT LINKS THAT
  39. ARE INCLUDED IN THE WORLD WIDEWEB VERSION.
  40.  
  41. Date of this version: October 4, 1997
  42.  
  43.    * Q1. "What is Nonlinear Programming?"
  44.    * Q2. "What software is there for nonlinear optimization?"
  45.    * Q3. "I wrote an optimization code. Where are some test models?"
  46.    * Q4. "What references and Web links are there in this field?"
  47.    * Q5. "How do I access the Netlib server?"
  48.    * Q6. "Who maintains this FAQ list?"
  49.  
  50. See also the following pages
  51. pertaining to mathematical programming and optimization modeling:
  52.  
  53.    * The related Linear Programming FAQ.
  54.    * The NEOS Guide to optimization models and software.
  55.    * The Decision Tree for Optimization Software by H.D. Mittelmann and P.
  56.      Spellucci.
  57.    * Jiefeng Xu's List of Interesting Optimization Codes in the Public
  58.      Domain.
  59.    * Software for Optimization: A Buyer's Guide by Robert Fourer.
  60.    * Harvey Greenberg's Mathematical Programming Glossary.
  61.  
  62. [ ]
  63.  
  64. Q1. "What is Nonlinear Programming?"
  65.  
  66. A: A Nonlinear Program (NLP) is a problem that can be put into the form
  67.  
  68.     minimize   F(x)
  69.     subject to g (x)  = 0     for i=1,...,m1       where m1 >= 0
  70.                 i
  71.                h (x) >= 0    for j=m1+1,...,m      where m >= m1
  72.                 j
  73.  
  74. That is, there is one scalar-valued function F, of several variables (x here
  75. is a vector), that we seek to minimize subject (perhaps) to one or more
  76. other such functions that serve to limit or define the values of these
  77. variables. F is called the "objective function", while the various other
  78. functions are called the "constraints". (If maximization is sought, it is
  79. trivial to do so, by multiplying F by -1.)
  80.  
  81. Because NLP is a difficult field, researchers have identified special cases
  82. for study. A particularly well studied case is the one where all the
  83. constraints g and h are linear. The name for such a problem, unsurprisingly,
  84. is "linearly constrained optimization". If, as well, the objective function
  85. is quadratic at most, this problem is called Quadratic Programming (QP). A
  86. further special case of great importance is where the objective function is
  87. entirely linear; this is called Linear Programming (LP) and is discussed in
  88. a separate FAQ list. Another important special case, called unconstrained
  89. optimization, is where there are no constraints at all.
  90.  
  91. One of the greatest challenges in NLP is that some problems exhibit "local
  92. optima"; that is, spurious solutions that merely satisfy the requirements on
  93. the derivatives of the functions. Think of a near-sighted mountain climber
  94. in a terrain with multiple peaks, and you'll see the difficulty posed for an
  95. algorithm that tries to move from point to point only by climbing uphill.
  96. Algorithms that propose to overcome this difficulty are termed "Global
  97. Optimization".
  98.  
  99. The word "Programming" is used here in the sense of "planning"; the
  100. necessary relationship to computer programming was incidental to the choice
  101. of name. Hence the phrase "NLP program" to refer to a piece of software is
  102. not a redundancy, although I tend to use the term "code" instead of
  103. "program" to avoid the possible ambiguity.
  104.  
  105. [ ]
  106.  
  107. Q2. "What software is there for nonlinear optimization?"
  108.  
  109. A: It's unrealistic to expect to find one general NLP code that's going to
  110. work for every kind of nonlinear model. Instead, you should try to select a
  111. code that fits the problem you are solving. If your problem doesn't fit in
  112. any category except "general", or if you insist on a globally optimal
  113. solution (except when there is no chance of encountering multiple local
  114. optima), you should be prepared to have to use a method that boils down to
  115. exhaustive search, i.e., you have an intractable problem.
  116.  
  117. If you simply want to try solving a particular model, consider the
  118. Optimization Technology Center at http://www.mcs.anl.gov/home/otc/otc.html.
  119. The centerpiece of this ambitious project is NEOS, the Network-Enhanced
  120. Optimization System, consisting of a library of optimization software, a
  121. facility to use this library over the network at
  122. http://www.mcs.anl.gov/home/otc/Server/neos.html, and a guide to more
  123. information about the software packages. Linear and nonlinear models are
  124. covered. Capabilities and access modes are still being enhanced - this is an
  125. ongoing process.
  126.  
  127. Several of the commercial LP codes referenced in the LP FAQ have specialized
  128. routines, particularly QP. The ones that I know of that have some form of QP
  129. are: LINDO, KORBX, LOQO, MPS-III, OSL, and PC-PROG. Of course, you don't
  130. generally get source code when you license one of these products; but many
  131. of them can be licensed as a callable library of solver routines. Many
  132. general nonlinear problems can be solved (or at least confronted) by
  133. application of a sequence of LP or QP approximations.
  134.  
  135. There are ACM TOMS routines for QP, #559 and #587, available in
  136. ftp://netlib2.cs.utk.edu/toms/559 and ftp://netlib2.cs.utk.edu/toms/587
  137.  
  138. There is a directory on Netlib, ftp://netlib2.cs.utk.edu/opt, containing a
  139. collection of optimization routines. The last time I checked, I saw
  140.  
  141.    * "praxis" (unconstrained optimization, without requiring derivatives)
  142.    * "tn" (Newton method for unconstrained or simple-bound optimization)
  143.    * "ve08" (optimization of unconstrained separable function).
  144.    * "simann" (unconstrained optimization using Simulated Annealing)
  145.    * "subplex"(unconstrained optimization, general multivariate functions)
  146.    * "donlp2" (differentiable nonlinear optimization, dense linear algebra)
  147.    * "hooke" (Hooke and Jeeves method)
  148.  
  149. A newer version of the "donlp2" code, mentioned above, can be found at
  150. ftp://plato.la.asu.edu/pub/donlp2. This is P. Spellucci's implementation of
  151. a SQP method for general nonlinear optimization problems including nonlinear
  152. equality and inequality constraints (generally referred to as the NLP
  153. problem). It is freely available for non-commercial and research use, and
  154. includes a number of nontrivial examples. There are four versions:
  155.  
  156.    * donlp2.tar.gz, donlp2_d.tar.gz (f77, exact & numerical gradients
  157.      respectively)
  158.    * donlp2_c.tar.gz, donlp2_d_c.tar.gz (f2c-converted C-versions of the
  159.      above)
  160.  
  161. A package for large optimization problems (with only simple bounds for
  162. constraints), L-BFGS-B, implements a limited memory BFGS algorithm. The user
  163. must supply the gradient g of f, but knowledge about the Hessian matrix is
  164. not required. This program is an extension of algorithm L-BFGS (Harwell
  165. routine VA15) which can handle only unconstrained problems. Both codes can
  166. be obtained via anonymous ftp at ftp://eecs.nwu.edu/pub/lbfgs and
  167. ftp://eecs.nwu.edu/pub/lbfgs.unc.
  168.  
  169. A package called conmin (unrelated to the one by Vanderplaats and
  170. Associates), is available at or
  171. ftp://anusf.anu.edu.au/mld900/constr_minimum. Any comments should be sent to
  172. Murray Dow at m.dow@anusf.anu.edu.au. The author states that it is reliable
  173. but not state of the art; surpassed, for instance, by FSQP.
  174.  
  175. Will Naylor (naylor@synopsys.com) has a collection of software he calls
  176. WNLIB. Routines of interest include
  177. - unconstrained non-linear optimization routines: implementation of
  178. conjugate-gradient and conjugate-directions algorithms.
  179. - constrained non-linear optimization routines: based on conjugate-gradient
  180. algorithm with penalties.
  181. - simplex method for linear programming: contains anti-cycling and numerical
  182. stability hacks. No optimization for sparse matrix.
  183. - transportation problem/assignment problem routine: optimization for sparse
  184. matrix.
  185. - general simulated annealing routine
  186. These routines can be obtained by anonymous ftp from
  187. ftp://ftp.rahul.net/pub/spiketech/softlib/wnlib/.
  188.  
  189. NSWC Library of Mathematical Subroutines has a subroutine to minimize a
  190. function of n variables (OPTF) and a subroutine to solve a system of
  191. nonlinear equations (HBRD). Such routines are also available in NMS library
  192. [Kahaner].
  193.  
  194. SolvOpt, by Alexei Kuntsevich (alex@bedvgm.kfunigraz.ac.at) and Franz Kappel
  195. (franz.kappel@kfunigraz.ac.at), is designed for local optimization of
  196. nonsmooth nonlinear problems. Free source code is available in C and
  197. Fortran, and also as M-functions for use with MATLAB. Further information is
  198. provided by a manual that is also available for downloading.
  199.  
  200. For nonlinear optimization problems with both continuous and binary
  201. variables (MINLP), there is a code called DICOPT++, available commercially
  202. from GAMS Development Corp. Contact gams@gams.com for more information.
  203. (There is a survey article, "Constrained Nonllinear 0-1 Programming" by
  204. Hansen, Jaumard, and Mathon, in the ORSA Journal on Computing, 5, 2, Spring
  205. 1993.)
  206.  
  207. While they are not NLP solvers, per se, attention should be given to
  208. modeling languages like GAMS, AIMMS and AMPL. See the Linear Programming FAQ
  209. for details on contacting the vendors of these and other modeling language
  210. products.
  211.  
  212. Microsoft Excel 4.0 and above has a function called "Solver", based on GRG2.
  213. This product runs on PC and Macintoshes. The attraction of this approach is
  214. that models can be built using the spreadsheet. I am told that this function
  215. can handle 200 independent variables and 500 constraints. Quattro also has a
  216. solver based on GRG2.
  217.  
  218. A package that uses Microsoft Excel as its input mechanism is Magestic, a
  219. non-linear least squares minimization program. You can contact the vendor
  220. at: Logix Consulting, Inc., 11408 Audelia, Ste 4944, Dallas, TX 752431,
  221. 1-800-900-5541 or 214-918-0700.
  222.  
  223. O-Matrix for Windows includes several non-linear optimization tools. You can
  224. contact the vendor at: Harmonic Software Inc., 12223 Dayton Avenue North,
  225. Seattle WA 98133, 1-800-895-4546, 206-367-8742.
  226.  
  227. Information for obtaining ACCPM, which implements an analytic center cutting
  228. plane method for convex optimization problems, is available at
  229. http://ecolu-info.unige.ch/~logilab/software/accpm.html.
  230.  
  231. Semidefinite Programming is a generalization of linear programming to the
  232. space of block diagonal, symmetric, positive semidefinite matrices. Interest
  233. in this topic, which has numerous engineering applications, has been greatly
  234. stimulated by the extension of interior-point methods from linear
  235. programming to the semidefinite case. Several groups of researchers are
  236. developing interior-point codes, such as:
  237.  
  238.    * CSDP, a subroutine library available in C or Fortran source.
  239.    * SDPpack, a package of Matlab files currently in version 0.8 beta.
  240.    * SDPSOL, a parser/solver for semidefinite programming and related
  241.      determinant maximization problems with matrix structure.
  242.    * SDPT3, a Matlab package.
  243.  
  244. See the semidefinite programming home pages maintained by Farid Alizadeh and
  245. Christoph Helmberg for links and further information.
  246.  
  247. An extensive index of information on Global Optimization is maintained by
  248. Arnold Neumaier of the Computational Mathematics group at the University of
  249. Vienna. The following are a few of the codes available in this area:
  250.  
  251.    * BARON consists of a "core" module for global nonlinear optimization in
  252.      continuous and/or discrete variables, and a variety of specialized
  253.      modules for such problems as bilinear programming, fixed-charge
  254.      programming, indefinite quadratic programming, linear multiplicative
  255.      programming, and univariate polynomial programming. Information is
  256.      available from Nick Sahinidis, nikos@uiuc.edu.
  257.  
  258.    * A software package for solving structured global optimization problems,
  259.      cGOP, is available by ftp from the Computer-Aided Systems Laboratory at
  260.      Princeton University. It implements a primal-dual decomposition
  261.      algorithm applicable to general constrained biconvex problems, using a
  262.      set of C subroutines to solve these problems via decomposition and
  263.      branch-and-bound techniques; version 1.1 has been updated to use CPLEX
  264.      4.0 and MINOS 5.4 as the solvers for various linear and convex
  265.      subproblems. For assistance, write to cgop@titan.princeton.edu.
  266.  
  267.    * Fortran source code for global minimization using a stochastic
  268.      integration algorithm (TOMS 667), is obtainable at
  269.      http://www.netlib.org/toms/667.
  270.  
  271.    * LGO integrates several global and local optimization solvers, which can
  272.      be activated by the user in interactive or automatic execution modes.
  273.      The PC version is embedded under a menu-driven interface.
  274.  
  275. The following products are said to do some nonlinear optimization, but don't
  276. fall into any of the usual categories:
  277.  
  278.    * UniCalc, for "arbitrary algebraic systems of equations and
  279.      inequalities," has been developed at the Russian Research Institute of
  280.      Artificial Intelligence, narin@artint.msk.su.
  281.  
  282.    * Fortran Calculus is a programming front end to a variety of nonlinear
  283.      problem solvers, available from Optimal Designs,
  284.      OptimalDesigns@awaiter.com.
  285.  
  286. For difficult problems like Global Optimization, methods like Genetic
  287. Algorithms and Simulated Annealing have been studied heavily. I'm not
  288. well-versed in any of these topics, and I have been assured of contradictory
  289. things by different experts. A particular point of controversy is whether
  290. there is a proof of optimality for practical variants of such algorithms for
  291. Global Optimization problems, and I take no particular stand on the issue
  292. (since for difficult problems such a proof may be of academic interest
  293. only). Even moreso than usual, I say "let the user beware" when it comes to
  294. code. There's a (compressed) Postscript file available at
  295. ftp://ftp.cs.colostate.edu/pub/TechReports/1993/tr-103.ps.Z, containing a
  296. forty-page introduction to the topic of GA. The Usenet newsgroup on GA,
  297. comp.ai.genetic, has a FAQ on the topic, otherwise known as "The
  298. Hitch-Hiker's Guide to Evolutionary Computation", available at
  299. ftp://rtfm.mit.edu/pub/usenet/news.answers/ai-faq/genetic. Genetic Algorithm
  300. code can be obtained at ftp://cs.ucsd.edu/pub/GAucsd. A commercial
  301. organization, New Light Industries, Ltd. offers a "Genetic Algorithm Solver
  302. for Excel" they call GENERATOR; their email address is nli@comtch.iea.com.
  303. Simulated Annealing code for NLP and other problems is available at
  304. http://www.ingber.com/ (or ftp.ingber.com) -- contact Lester Ingber
  305. (ingber@alumni.caltech.edu) for more info. A code called SDSC EBSA (Ensemble
  306. Based Simulated Annealing) is available at
  307. ftp://ftp.sdsc.edu/pub/sdsc/math/Ebsa, or contact Richard Frost
  308. (frost@sdsc.edu). And there is the simann code available on Netlib,
  309. mentioned above. For other ideas on Global Optimization, you may want to
  310. consult one of the books given in the section on references , such as
  311. [Nemhauser] or one of the ones with "Global" in its title. There is also the
  312. Journal of Global Optimization, published by Kluwer.
  313.  
  314. Another technique that should be considered is "Constraint Programming"
  315. (sometimes embedded in Prolog-like languages to form "Constraint Logic
  316. Programming"). There is a Usenet newsgroup, comp.constraints, devoted to the
  317. topic. A WWW page exists at
  318. http://www.cs.city.ac.uk/archive/constraints/constraints.html. Or you can
  319. access the FAQ at //ftp.cs.city.ac.uk/pub/constraints/constraints-faq. The
  320. maintainer of that FAQ, Michael Jampel (jampel@cs.city.ac.uk), suggests CLP
  321. is best suited for small problems that don't fit typical OR categories (LP,
  322. QP, etc.),
  323.  
  324.    * "especially if there is indeterminism / incompleteness. Also, if you
  325.      wish to mix numeric with non-numeric domains.... Also, if you need to
  326.      do a lot of encoding of your problem to get it to fit into the OR
  327.      technique; it may be better to use a relatively slow CSP technique on
  328.      10 variables rather than a super-fast OR technique on 2^10 variables."
  329.  
  330. In the following table is a condensed version of a survey of NLP software
  331. published in the April 1995 issue of " OR/MS Today", a publication of
  332. INFORMS. For further information I would suggest you read the full article.
  333. Several of the software vendors listed in the survey offer multiple
  334. products, in keeping with the conventional wisdom that no one algorithm will
  335. be best for all NLP models. Hence I have grouped the solver products by
  336. vendor, rather than listing them alphabetically by product name. Since the
  337. information won't fit on one line, I've broken the SOLVERS part of the table
  338. into two pieces.
  339.  
  340. Key to Methods:
  341.   SQP = Successive Quadratic Programming
  342.   SLP = Successive Linear Programming
  343.   GRG = Generalized Reduced Gradient
  344.  
  345. SOLVERS:
  346.  
  347. Vendor                   Phone         Email or URL
  348. ---------------------    ------------  ----------------------------------
  349. Aptech Systems           206-432-7855  info@aptech.com
  350. ARKI Consult & Dvlpmt +45 44-49-03-23  info@arki.dk
  351. Boeing Comp Svc          206-865-3298
  352. ILOG                     415-390-9000  info@ilog.com
  353. INRIA                  +33 13963-5557
  354. LINDO Systems            312-988-7422  info@lindo.com
  355. The Mathworks            508-653-1415  info@mathworks.com
  356. Numerical Alg Group      708-971-2337
  357. Numerical Opt Ctr     +44 1707-286762
  358. Optimal Methods          512-471-9433
  359. Rutherford Lab        +44 1235-821900  gould@cerfacs.fr
  360. SAITECH                  908-264-4700
  361. Prof. K. Schittkowski +49 921-55-3278  Klaus.Schittkowski@uni-bayreuth.de
  362. Stanford Bus Soft        415-962-8719
  363. Prof. A.L. Tits          301-405-3669  andre@isr.umd.edu
  364. VMA Eng                  719-473-4611
  365. Visual Num.              713-784-3131  support@houston.vni.com
  366.  
  367. Vendor          Product                  Method
  368. --------------  -----------------------  ------------------------
  369. Aptech          Constr. Max. Likelihood  SQP
  370.                 Constr. Optimization     SQP
  371. ARKI            CONOPT                   GRG
  372. Boeing          SPRNLP                   SQP
  373. ILOG            Numerica                 Constraint-based global search
  374. INRIA           Direct Opt. Control      SQP
  375. LINDO Systems   LINGO                    GRG
  376. Mathworks       MATLAB NAG Toolbox       various
  377.                 MATLAB Opt. Toolbox      various
  378. NAG             NAG Libraries            various
  379. Num Opt Ctr     OPTIMA                   SQP
  380. Opt. Methods    GRG2                     GRG
  381.                 INTPT                    Interior point
  382.                 SLP                      SLP
  383.                 SQP                      SQP
  384. Rutherford Lab  LANCELOT                 Trust region / aug. lagrangian
  385. SAITECH         SOPT                     SQP / Interior point
  386. K. Schittkowski DFNLP                    Newton methods
  387.                 NLPQL                    SQP
  388. Stan Bus Soft   LSSOL                    Active set method
  389.                 MINOS                    Reduced gradient
  390.                 NPSOL                    SQP
  391. A.L. Tits       FFSQP/CFSQP              SQP
  392. VMA Eng         DOC/DOT                  various
  393. Visual Num      IMSL                     various
  394.  
  395. MODELING PRODUCTS AND OTHERS:
  396. Product Name       H/W       Phone        Email address or URL
  397. ------------       --------- ------------ --------------------
  398. AIMMS              PC3     +31 23-5350935 info@paragon.nl
  399.                                           http://www.paragon.nl/
  400. AMPL               PC3 ^     702-322-7600 info@ampl.com
  401.                                           http://www.ampl.com/ampl/
  402. CUTE               PC ^     +32 81-724917 pht@math.fundp.ac.be
  403.                                           http://www.rl.ac.uk/departments/ccd/numerical/cute/cute.html
  404. GAMS               PC2 ^     415-583-8840 gams@gams.com
  405.                                           http://www.gams.com/
  406. What's Best!       PC/Mac/WS 800-441-2378 info@lindo.com
  407.                                           http://www.lindo.com/
  408.  
  409. Here is a summary of other NLP codes mentioned in newsgroups in the past few
  410. years (or, further information on the ones in the above table), sorted
  411. alphabetically. Perhaps someone will volunteer to organize these references
  412. more usefully.
  413.  
  414.    * Amoeba - Numerical Recipes
  415.    * Brent's Method - Numerical Recipes
  416.    * CO/CML - Applications written in GAUSS language, general constrained
  417.      optimization and constrained maximum likelihood estimation using SQP.
  418.      CML includes statistical inference (also Bayesian, bootstrap) for
  419.      constrained parameters. Postscript file descriptions via
  420.      ftp://ftp.u.washington.edu/public/rons. Contact info@aptech.com, or
  421.      call +1-206-432-7855.
  422.    * CONMAX - Fortran program for solving nonlinearly constrained problems
  423.      of the form:
  424.         o Choose x1,...,xn to minimize w subject to
  425.         o abs(fi - gi(x1,...,xn)) .LE. w, 1 .LE. i .LE. m1
  426.         o gi(x1,...,xn) .LE. w, m1 + 1 .LE. i .LE. m2
  427.         o gi(x1,...,xn) .LE. 0, m2 + 1 .LE. i .LE. m3
  428.      where the fi are given real numbers, and the gi are given smooth
  429.      functions. Constraints of the form gi(x1,...,xn) = 0 can also be
  430.      handled. Each iteration of our algorithm involves approximately solving
  431.      a certain nonlinear system of first order ordinary differential
  432.      equations to get a search direction. The program and its extensive
  433.      user's guide can be obtained from the opt folder of netlib.
  434.    * CONMIN - Vanderplaats, Miura & Associates, Colorado Springs, Colorado,
  435.      719-527-2691.
  436.    * CONOPT - Large-scale GRG code, by Arne Drud. Available with GAMS,
  437.      AIMMS, AMPL, LINGO, and What's Best (modeling languages - see LP FAQ)
  438.      and as a standalone subroutine library. Phone +45 44 49 03 23, e-mail
  439.      adrud@arki.dk
  440.    * DFPMIN - Numerical Recipes (Davidon-Fletcher-Powell)
  441.    * Eureka - Borland Software (for IBM PC class of machines)
  442.    * FFSQP/CFSQP (Fortran/C) - Contact Andre Tits, andre@src.umd.edu. Free
  443.      of charge to academic users. Solves general nonlinear constrained
  444.      problems, including constrained minimax problems. CFSQP (C code)
  445.      includes a scheme to efficently handle problems with many constraints
  446.      (e.g., discretized semi-infinite problems). Interface to AMPL.
  447.    * GENOCOP - Solves linearly constrained problems via a Genetic algorithm,
  448.      available at ftp://unccsun.uncc.edu. Author: Zbigniew Michalewicz,
  449.      zbyszek@mosaic.uncc.edu.
  450.    * Harwell Library routines
  451.         o VF01: based on R. Fletcher algorithm
  452.         o VF02: based on M. Powell alogorithm
  453.         o VF03: using "watchdog techniques" for line search. An improved
  454.           version of VF02.
  455.         o VF04: Automatically calculate 1st order derivatives, VF03 ia
  456.           required to provide the derivatives.
  457.    * Hooke and Jeeves algorithm - see reference below. A version is
  458.      available at ftp://netlib2.cs.utk.edu/opt/hooke.c, and may be useful
  459.      because it handles nondifferentiable and/or discontinuous functions.
  460.    * LANCELOT - large-scale NLP. See the book by Conn et al. in the
  461.      references section. For peaceful purposes only. For information on
  462.      licensing this package, see the email addresses for Conn, Toint, or
  463.      Gould, in the entry for CUTE,
  464.    * LSSOL - Stanford Business Software Inc. (See MINOS) This code does
  465.      convex (positive semi-definite) QP. Is the QP solver used in current
  466.      versions of NPSOL.
  467.    * MATLAB Optimization Toolbox - The Mathworks, Inc. 508-653-1415. Handles
  468.      various nonlinear optimization problems. Data sheet available in
  469.      postscript format at
  470.      ftp://ftp.mathworks.com/pub/product-info/optimization.ps Email address:
  471.      info@mathworks.com .
  472.    * MINOS - Stanford Business Software Inc., 415-962-8719. Mailing address:
  473.      2672 Bayshore Parkway, Suite 304, Mountain View, CA 94043. Email:
  474.      mike@sol-michael.stanford.edu. This large-scale code is often used by
  475.      researchers as a "benchmark" for others to compare with.
  476.    * MINPACK I and II - Contact Jorge More', more@mcs.anl.gov, or check
  477.      ftp://netlib2.cs.utk.edu/minpack. Solves dense nonlinear least-squares
  478.      problems.
  479.    * Nelder and Mead's method - Numerical Recipes, also Barabino.
  480.    * NOVA - DOT Products, Houston TX
  481.    * QLD - Contact: Klaus.Schittkowski@uni-bayreuth.de. Solves Quadratic
  482.      Programming and other nonlinear problems.
  483.    * QPSOL - see LSSOL.
  484.    * SLATEC - Quadratic solvers dbocls, dlsei, and other routines. National
  485.      Energy Software Center, 9700 Cass Ave., Argonne, Illinois 60439. Also
  486.      available at ftp://netlib2.cs.utk.edu/slatec
  487.  
  488. An extremely useful book is the Optimization Software Guide, by Jorge More'
  489. and Stephen Wright, from SIAM Books. Call 1-800-447-7426 to order ($24.50,
  490. less ten percent if you are a SIAM member). It contains references to 75
  491. available software packages, and goes into more detail than is possible in
  492. this FAQ. A Web version is available, at least the parts that give info on
  493. actual software packages, in URL
  494. http://www.mcs.anl.gov/home/otc/Guide/SoftwareGuide.
  495.  
  496. I would be interested in hearing of people's experiences with the codes they
  497. learn about from reading this FAQ. (Note, I'm looking for more-or-less
  498. independent confirmation or denial of the practicality of codes.)
  499.  
  500. [ ]
  501.  
  502. Q3. "I wrote an optimization code. Where are some test models?"
  503.  
  504. A: There are various test sets for NLP. Among those I've seen mentioned are:
  505.  
  506.    * A. Corana et al, "Minimizing Multimodal Functions of Continuous
  507.      Variables with the Simulated Annealing Algorithm," ACM Transactions on
  508.      Mathematical Software, Vol. 13, No. 3, Sept 1987, pp. 262-280.
  509.      (Difficult unconstrained nonlinear models)
  510.    * C.A. Floudas and P.M. Pardalos, A Collection of Test Problems for
  511.      Constrained Global Optimization Algorithms, Springer-Verlag, Lecture
  512.      Notes in Computer Science 455 (1990).
  513.    * W.W. Hager, P.M. Pardalos, I.M. Roussos, and H.D. Sahinoglou, Active
  514.      Constraints, Indefinite Quadratic Programming, and Test Problems,
  515.      Journal of Optimization Theory and Applications Vol. 68, No. 3 (1991),
  516.      pp. 499-511.
  517.    * J. Hasselberg, P.M. Pardalos and G. Vairaktarakis, Test case generators
  518.      and computational results for the maximum clique problem, Journal of
  519.      Global Optimization 3 (1993), pp. 463-482.
  520.    * B. Khoury, P.M. Pardalos and D.-Z. Du, A test problem generator for the
  521.      steiner problem in graphs, ACM Transactions on Mathematical Software,
  522.      Vol. 19, No. 4 (1993), pp. 509-522.
  523.    * Y. Li and P.M. Pardalos, Generating quadratic assignment test problems
  524.      with known optimal permutations, Computational Optimization and
  525.      Applications Vol. 1, No. 2 (1992), pp. 163-184.
  526.    * P. Pardalos, "Generation of Large-Scale Quadratic Programs", ACM
  527.      Transactions on Mathematical Software, Vol. 13, No. 2, p. 133.
  528.    * P.M. Pardalos, Construction of test problems in quadratic bivalent
  529.      programming, ACM Transactions on Mathematical Software, Vol. 17, No. 1
  530.      (1991), pp. 74-87.
  531.    * P.M. Pardalos, Generation of large-scale quadratic programs for use as
  532.      global optimization test problems, ACM Transactions on Mathematical
  533.      Software, Vol. 13, No. 2 (1987), pp. 133-137.
  534.    * F. Schoen, "A Wide Class of Test Functions for Global Optimization", J.
  535.      of Global Optimization, 3, 133-137, 1993, with C source code available
  536.      at ftp://ghost.dsi.unimi.it/pub/schoen.
  537.    * publications (referenced in another section of this list) by
  538.      Schittkowski; Hock & Schittkowski; Torn & Zilinskas.
  539.  
  540. Some of the other publications listed in the references section also may
  541. contain problems that you could use to test a code.
  542.  
  543. A package called CUTE (Constrained and Unconstrained Testing Environment) is
  544. a set of Fortran subroutines, system tools and test problems in the area of
  545. nonlinear optimization and nonlinear equations, available at
  546. ftp://joyous-gard.cc.rl.ac.uk/pub/cute. or at
  547. ftp://thales.math.fundp.ac.be/cute. A LaTex formatted manuscript is included
  548. in the distribution file. Download the README file first and follow the
  549. directions contained therein. Questions should be directed toward any of the
  550. package's authors:
  551.  
  552.    * Ingrid Bongartz bongart@watson.ibm.com
  553.    * Andy Conn arconn@watson.ibm.com
  554.    * Nick Gould gould@cerfacs.fr
  555.    * Philippe Toint pht@math.fundp.ac.be
  556.  
  557. John Beasley has posted information on his OR-Lib, which contains various
  558. optimization test problems. Send e-mail to umtsk99@vaxa.cc.imperial.ac.uk to
  559. get started. Or have a look in the Journal of the Operational Research
  560. Society, Volume 41, Number 11, Pages 1069-72. Available at
  561. ftp://mscmga.ms.ic.ac.uk/pub. The only nonlinear models in this collection
  562. at this writing are Quadratic Assignment problems.
  563.  
  564. A collection of Global Optimization problems resides at
  565. ftp://fourier.ee.ucla.edu/pub. In this directory, reverse.zip
  566. (reverse.tar.Z) and concave.zip (concave.tar.Z) contain a collection of test
  567. problems for linear reverse convex programs, known as LRCP and concave
  568. minimization problems. For further details, see the README file in the
  569. directory, or contact Khosrow Moshirvaziri at moshir@ee.ucla.edu.
  570.  
  571. Fortran source code of global optimization test problems (1-10 dimensional)
  572. are at the end of TOMS 667 fortran code, obtainable at
  573. http://www.netlib.org/toms/667.
  574.  
  575. The paper "An evaluation of the Sniffer Global Optimization Algorithm Using
  576. Standard Test Functions", Roger A.R. Butler and Edward E. Slaminka, J. Comp.
  577. Physics, 99, 28-32, (1992) mentions the following reference containing 7
  578. functions that were intended to thwart global minimization algorithms:
  579. "Towards Global Optimization 2", L.C.W. Dixon and G.P. Szego, North-Holland,
  580. 1978. [from Dean Schulze - schulze@asgard.lpl.arizona.edu]
  581.  
  582. The modeling language GAMS comes with about 150 test models, which you might
  583. be able to test your code with. The models are in the public domain
  584. according to the vendor, although you need access to a GAMS system if you
  585. want to run them without modifying the files. The modeling system AIMMS also
  586. comes with a number of test models.
  587.  
  588. In the journal Mathematical Programming, Volume 61 (1993) Number 2, there is
  589. an article by Calamai et al. that discusses how to generate QP test models.
  590. It gives what seems a very full bibliography of earlier articles on this
  591. topic. The author offers at the end of the article to send a Fortran code
  592. that generates QP models, if you send email to phcalamai@dial.waterloo.edu,
  593. or use anonymous ftp at ftp://dial.uwaterloo.ca/pub/phcalamai/math_prog in
  594. file genqp.code.tar.Z.
  595.  
  596. Hans D. Mittelmann and P. Spellucci have prepared a test environment of over
  597. 400 unconstrained and constrained nonlinear optimization problems, plus code
  598. to facilitate interfacing solvers to them. This material is available as a
  599. tar file from ftp://plato.la.asu.edu/pub/donlp2/testenviron.tar.gz.
  600.  
  601. [ ]
  602.  
  603. Q4. "What references are there in this field?"
  604.  
  605. A: What follows here is an idiosyncratic list, a few books that I like, or
  606. have been recommended on the net, or are recent. I have *not* reviewed them
  607. all.
  608.  
  609. General reference
  610.  
  611.    * Nemhauser, Rinnooy Kan, & Todd, eds, Optimization, North-Holland, 1989.
  612.      (Very broad-reaching, with large bibliography. Good reference; it's the
  613.      place I tend to look first. Expensive, and tough reading for
  614.      beginners.)
  615.    * Harvey Greenberg has compiled an on-line Mathematical Programming
  616.      Glossary.
  617.  
  618. Other publications (can someone help classify these more usefully?)
  619.  
  620.    * Barabino, et al, "A Study on the Performances of Simplex Methods for
  621.      Function Minimization," 1980 Proceedings of the IEEE International
  622.      Conference on Circuits and Computers, (ICCC 1980), pp. 1150-1153.
  623.    * Bazaraa, Shetty, & Sherali, Nonlinear Programming, Theory &
  624.      Applications, Wiley, 1994.
  625.    * Bertsekas, Dimitri P., Dynamic Programming and Optimal Control.
  626.      Belmont, MA: Athena Scientific, 1995.
  627.    * Bertsekas, Dimitri P., Nonlinear Programming. Belmont, MA: Athena
  628.      Scientific, 1995.
  629.    * Borchers & Mitchell, "An Improved Branch and Bound Algorithm for Mixed
  630.      Integer Nonlinear Programs", Computers and Operations Research, Vol 21,
  631.      No. 4, p 359-367, 1994.
  632.    * Coleman & Li, Large Scale Numerical Optimization, SIAM Books.
  633.    * Conn, A.R., et al., "LANCELOT: a Fortran Package for Large-Scale
  634.      Nonlinear Optimization", Springer Series in Computational Mathematics,
  635.      vol. 17, 1992.
  636.    * Dennis & Schnabel, Numerical Methods for Unconstrained Optimization and
  637.      Nonlinear Equations, Prentice Hall, 1983.
  638.    * Du and Pardalos (eds.), Minimax and applications, Kluwer, 1995.
  639.    * Du and Sun (eds.), Advances in Optimization and Approximation, Kluwer,
  640.      1994.
  641.    * Fiacco & McCormick, Sequential Unconstrained Minimization Techniques,
  642.      SIAM Books. (An old standby, given new life by the interior point LP
  643.      methods.)
  644.    * Fletcher, R., Practical Methods of Optimization, Wiley, 1987. (Good
  645.      reference for Quadratic Programming, among other things.)
  646.    * Floudas & Pardalos, Recent Advances in Global Optimization, Princeton
  647.      University Press, 1992.
  648.    * Gill, Murray & Wright, Practical Optimization, Academic Press, 1981.
  649.      (An instant NLP classic when it was published.)
  650.    * Himmelblau, Applied Nonlinear Programming, McGraw-Hill, 1972. (Contains
  651.      some famous test problems.)
  652.    * Hock & Schittkowski, Test Examples for Nonlinear Programming Codes,
  653.      Springer-Verlag, 1981.
  654.    * Hooke & Jeeves, "Direct Search Solution of Numerical and Statistical
  655.      Problems", Journal of the ACM, Vol.8 pp. 212-229, April 1961.
  656.    * Horst and Pardalos (eds.), Handbook of Global Optimization, Kluwer,
  657.      1995.
  658.    * Horst, Pardalos, and Thoai, Introduction to global optimization,
  659.      Kluwer, 1995.
  660.    * Horst and Tuy, Global Optimization, Springer-Verlag, 1993.
  661.    * Kahaner, Moler & Nash, Numerical Methods and Software, Prentice- Hall.
  662.    * Lau, H.T., A Numerical Library in C for Scientists and Engineers ,
  663.      1994, CRC Press. (Contains a section on optimization.)
  664.    * Luenberger, Introduction to Linear and Nonlinear Programming, Addison
  665.      Wesley, 1984. (Updated version of an old standby.)
  666.    * More', "Numerical Solution of Bound Constrained Problems", in
  667.      Computational Techniques & Applications, CTAC-87, Noye & Fletcher, eds,
  668.      North-Holland, 29-37, 1988.
  669.    * More' & Toraldo, Algorithms for Bound Constrained Quadratic Programming
  670.      Problems, Numerische Mathematik 55, 377-400, 1989.
  671.    * More' & Wright, "Optimization Software Guide", SIAM, 1993.
  672.    * Nash, S., and Sofer, A., Linear and Nonlinear Programming, McGraw-Hill,
  673.      1996.
  674.    * Nocedal, J., summary of algorithms for unconstrained optimization in
  675.      "Acta Numerica 1992".
  676.    * Pardalos & Wolkowicz, eds., Quadratic Assignment and Related Problems,
  677.      American Mathematical Society, DIMACS series in discrete mathematics,
  678.      1994.
  679.    * Powell, M.J.D., "A Fast Algorithm for Nonlinearly Constrained
  680.      Optimization Calculations", Springer-Verlag Lecture Notes in
  681.      Mathematics, vol. 630, pp. 144-157. (Implemented in the Harwell
  682.      Library)
  683.    * Press, Flannery, Teukolsky & Vetterling, Numerical Recipes, Cambridge,
  684.      1986.
  685.    * Schittkowski, Nonlinear Programming Codes, Springer-Verlag, 1980.
  686.    * Schittkowski, More Test Examples for Nonlinear Programming Codes,
  687.      Lecture Notes in Economics and Math. Systems 282, Springer 1987.
  688.    * Torn & Zilinskas, Global Optimization, Springer-Verlag, 1989.
  689.    * Wismer & Chattergy, Introduction to Nonlinear Optimization,
  690.      North-Holland, 1978. (Undergrad text)
  691.    * Wright, M., "Interior methods for constrained optimization", Acta
  692.      Mathematica, Cambridge University Press, 1992. (Survey article.)
  693.    * Wright, M., "Direct Search Methods: Once Scorned, Now Respectable"
  694.  
  695. Simulated Annealing & Genetic Algorithms
  696.  
  697.    * Davis, L. (ed.), Genetic Algorithms and Simulated Annealing, Morgan
  698.      Kaufmann, 1989.
  699.    * De Jong, "Genetic algorithms are NOT function optimizers" in
  700.      Foundations of Genetic Algorithms: Proceedings 24-29 July 1992, D.
  701.      Whitley (ed.) Morgan Kaufman
  702.    * Goldberg, D., "Genetic Algorithms in Search, Optimization, and Machine
  703.      Learning", Addison-Wesley, 1989.
  704.    * Ingber "Very fast simulated re-annealing" Mathematical and Computer
  705.      Modeling, 12(8) 1989, 967-973
  706.    * Kirkpatrick, Gelatt & Vecchi, Optimization by Simulated Annealing,
  707.      Science, 220 (4598) 671-680, 1983.
  708.    * Michalewicz et al., article in volume 3(4) 1991 of the ORSA Journal on
  709.      Computing.
  710.    * Michalewicz, Z., "Genetic Algorithms + Data Structures = Evolution
  711.      Programs", Springer Verlag, 1992.
  712.    * Reeves, C.R., ed., Modern Heuristic Techniques for Combinatorial
  713.      Problems, Halsted Press (Wiley). (Contains chapters on tabu search,
  714.      simulated annealing, genetic algorithms, neural nets, and Lagrangean
  715.      relaxation.)
  716.  
  717. On-Line Sources of Papers and Bibliographies
  718.  
  719.    * Michael Trick's Operations Research Page at http://mat.gsia.cmu.edu/
  720.    * Optimization Technology Center at
  721.      http://www.mcs.anl.gov/home/otc/otc.html. Home of NEOS, Network-Enabled
  722.      Optimization System.
  723.    * WORMS (World-Wide-Web for Operations Research and Management Science)
  724.      at http://www.maths.mu.oz.au/~worms/
  725.    * List of interesting optimization codes in public domain at
  726.      http://ucsu.colorado.edu/~xu/software.html. Includes many of the codes
  727.      listed here, plus others of interest for specific problem classes.
  728.    * Mathematical Optimization page at Oak Ridge.
  729.    * Computational Mathematics Archive (London and South East Centre for
  730.      High Performance Computing)
  731.      http://www.lpac.ac.uk/SEL-HPC/Articles/GeneratedHtml/math.opt.html
  732.    * Hans Mittelmann and P. Spellucci have put together an html-based
  733.      Decision Tree for Optimization Software. There is also a plain-text
  734.      version available by FTP, at ftp://plato.la.asu.edu/pub/guide.txt.
  735.    * A Global Optimization web page is at
  736.      http://solon.cma.univie.ac.at/~neum/glopt.html.
  737.    * A survey of the Quadratic Assignment Problem can be found at
  738.      ftp://orion.uwaterloo.ca/pub/henry/qap.
  739.    * A listing of people or places involved with global optimization is
  740.      maintained by Simon Streltsov and can be found at http://cad.bu.edu/go/
  741.    * The Journal of Nonlinear Science has an electronic adjunct called
  742.      Nonlinear Science Today.
  743.    * INFORMS home page.
  744.    * IMPS Consortium
  745.  
  746. [ ]
  747.  
  748. Q5. "How do I access the Netlib server?"
  749.  
  750. A: If you have FTP access, you can try "ftp netlib2.cs.utk.edu", using
  751. "anonymous" as the Name, and your email address as the Password. Do a "cd
  752. (dir)" where (dir) is whatever directory was mentioned, and look around,
  753. then do a "get (filename)" on anything that seems interesting. There often
  754. will be a "README" file, which you would want to look at first. Another FTP
  755. site is netlib.bell-labs.com although you will first need to do "cd netlib"
  756. before you can cd to the (dir) you are interested in. Alternatively, you can
  757. reach an e-mail server via "netlib@ornl.gov", to which you can send a
  758. message saying "send index from (dir)"; follow the instructions you receive.
  759. This is the list of sites mirroring the netlib repository:
  760.  
  761.    * Norway netlib@nac.no
  762.    * England netlib@ukc.ac.uk
  763.    * Germany anonymous@elib.zib-berlin.de
  764.    * Taiwan netlib@nchc.edu.tw
  765.    * Australia netlib@draci.cs.uow.edu.au
  766.  
  767. For those who have WWW (Mosaic, etc.) access, one can access Netlib via the
  768. URL http://www.netlib.org. Also, there is, for X window users, a utility
  769. called xnetlib that is available at ftp://netlib2.cs.utk.edu/xnetlib (look
  770. at the "readme" file first).
  771.  
  772. [ ]
  773.  
  774. Q6. "Who maintains this FAQ list?"
  775.  
  776. A: This list was established by John W. Gregory (ashbury@skypoint.com), and
  777. is currently being maintained by Robert Fourer (4er@iems.nwu.edu) and the
  778. Optimization Technology Center.
  779.  
  780. This article is Copyright 1997 by Robert Fourer and John W. Gregory. It may
  781. be freely redistributed in its entirety provided that this copyright notice
  782. is not removed. It may not be sold for profit or incorporated in commercial
  783. documents without the written permission of the copyright holder. Permission
  784. is expressly granted for this document to be made available for file
  785. transfer from installations offering unrestricted anonymous file transfer on
  786. the Internet.
  787.  
  788. The material in this document does not reflect any official position taken
  789. by any organization. While all information in this article is believed to be
  790. correct at the time of writing, it is provided "as is" with no warranty
  791. implied.
  792.  
  793. If you wish to cite this FAQ formally (hey, someone actually asked for
  794. this), you may use:
  795.  
  796.      Fourer, Robert (4er@iems.nwu.edu) and Gregory, John W.
  797.      (ashbury@skypoint.com), "Linear Programming FAQ" (1997). World
  798.      Wide Web http://www.mcs.anl.gov/home/otc/
  799.      faq/nonlinear-programming-faq.html, Usenet sci.answers, anonymous
  800.      FTP /pub/usenet/sci.answers/ nonlinear-programming-faq from
  801.      rtfm.mit.edu.
  802.  
  803. There's a mail server on rtfm.mit.edu, so if you don't have FTP privileges,
  804. you can send an e-mail message to mail-server@rtfm.mit.edu containing:
  805.  
  806.     send usenet/sci.answers/nonlinear-programming-faq
  807.  
  808. as the body of the message to receive the latest version (it is posted on
  809. the first working day of each month). This FAQ is cross-posted to
  810. news.answers and sci.op-research.
  811.  
  812. Suggestions, corrections, topics you'd like to see covered, and additional
  813. material are all solicited. Send email to 4er@iems.nwu.edu.
  814.  
  815. [ ]
  816.  
  817. END nonlinear-programming-faq
  818.