home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / answers / nonlinear-programming-faq < prev    next >
Text File  |  1993-12-09  |  19KB  |  385 lines

  1. Newsgroups: news.answers,sci.answers,sci.op-research
  2. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!nic.hookup.net!swrinde!cs.utexas.edu!howland.reston.ans.net!vixen.cso.uiuc.edu!uchinews!cdsmail!timbuk.cray.com!walter.cray.com!jwg
  3. From: jwg@cray.com (John Gregory)
  4. Subject: Nonlinear Programming FAQ
  5. Message-ID: <nonlinear-programming-faq-1-754759442@cray.com>
  6. Followup-To: sci.op-research
  7. Summary: A List of Frequently Asked Questions about Nonlinear Programming
  8. Originator: jwg@ceres
  9. Keywords: FAQ, NLP, Nonlinear Programming
  10. Lines: 366
  11. Nntp-Posting-Host: ceres.cray.com
  12. Reply-To: jwg@cray.com (John Gregory)
  13. Organization: Cray Research, Inc., Eagan MN USA
  14. Date: 1 Dec 93 09:24:35 CST
  15. Approved: news-answers-request@MIT.Edu
  16. Expires: 02/04/94
  17. Xref: senator-bedfellow.mit.edu news.answers:15617 sci.answers:717 sci.op-research:420
  18.  
  19. Posted-By: auto-faq 2.4
  20. Archive-name: nonlinear-programming-faq
  21. Last-modified: December 1, 1993
  22.  
  23.         Nonlinear Programming - Frequently Asked Questions List
  24.                       (nonlinear-programming-faq)
  25.            Posted monthly to Usenet newsgroup sci.op-research
  26.                  Most recent update: December 1, 1993
  27.  
  28. -----------------------------------------------------------------------
  29.  
  30. "A program is a spell cast over a computer, turning input into error
  31.  messages."  -- Anonymous
  32.  
  33. Q0.  "What's in this FAQ?"
  34.  
  35. A:  Table of Contents
  36.    Q1.  "What is Nonlinear Programming?"
  37.    Q2.  "What software is there for nonlinear optimization?"
  38.    Q3.  "I wrote an optimization code.  Where are some test models?"
  39.    Q4.  "What references are there in this field?"
  40.    Q5.  "How do I access the Netlib server?
  41.    Q6.  "Who maintains this FAQ list?"
  42.  
  43. See also the related FAQ on Linear Programming (LP).
  44.  
  45. -----------------------------------------------------------------------
  46.  
  47. Q1.  "What is Nonlinear Programming?"
  48.  
  49. A:  A Nonlinear Program (NLP) is a problem that can be put into the
  50. form
  51.  
  52.     minimize   F(x)
  53.     subject to g (x)  = 0     for i=1,...,m1       where m1 >= 0
  54.                 i
  55.                h (x) >= 0    for j=m1+1,...,m      where m >= m1
  56.                 j
  57.  
  58. That is, there is one scalar-valued function F, of several variables (x
  59. here is a vector), that we seek to minimize subject (perhaps) to one or
  60. more other such functions that serve to limit or define the values of
  61. these variables.  F is called the "objective function", while the
  62. various other functions are called the "constraints".  (If maximization
  63. is sought, it is trivial to do so, by multiplying F by -1.)
  64.  
  65. Because NLP is a difficult field, researchers have identified special
  66. cases for study.  A particularly well studied case is the one where
  67. all the constraints g and h are linear.  The name for such a problem,
  68. unsurprisingly, is "linearly constrained optimization".  If, as well,
  69. the objective function is quadratic at most, this problem is called
  70. Quadratic Programming (QP).  A further special case of great importance
  71. is where the objective function is entirely linear; this is called
  72. Linear Programming and is discussed in a separate FAQ list.  Another
  73. important special case, called unconstrained optimization, is where
  74. there are no constraints at all.
  75.  
  76. One of the greatest challenges in NLP is that some problems exhibit
  77. "local optima"; that is, spurious solutions that merely satisfy the
  78. requirements on the derivatives of the functions.  Think of a mountain
  79. climber in a terrain with multiple peaks, some higher than others, and
  80. you'll see the difficulty posed for an algorithm that tries to move
  81. from point to point by only climbing uphill.  Algorithms that propose
  82. to overcome this difficulty are termed "Global Optimization".
  83.  
  84. -----------------------------------------------------------------------
  85.  
  86. Q2.  "What software is there for nonlinear optimization?"
  87.  
  88. A: It's unrealistic to expect to find one general NLP code that's going
  89. to work for every kind of nonlinear model.  Instead, you should try to
  90. find a code that fits the problem you are solving.  If your problem
  91. doesn't fit in any category except "general", or if you insist on a
  92. globally optimal solution (except when there no chance of encountering
  93. multiple local optima), you should be prepared to have to use a method
  94. that boils down to exhaustive search, i.e., you have an intractable
  95. problem.
  96.  
  97. Several of the commercial LP codes referenced in the LP FAQ have
  98. specialized routines, particularly QP.  The ones that I know of that
  99. have some form of QP are: LINDO, KORBX, LOQO, MPS-III, OSL, and
  100. PC-PROG.  Many general nonlinear problems can be solved (or at least
  101. confronted) by application of a sequence of LP or QP approximations.
  102.  
  103. There is an ACM TOMS routine for QP, #587, available from the netlib
  104. server, in directory /netlib/toms.
  105.  
  106. There is a directory, /netlib/opt, on the netlib server containing a
  107. collection of optimization routines.  The last time I checked, I saw
  108. - "praxis" (unconstrained optimization, without requiring derivatives)
  109. - "tn" (Newton method for unconstrained or simple-bound optimization)
  110. - "ve08" (optimization of unconstrained separable function).
  111. - "simann" (unconstrained optimization using Simulated Annealing)
  112. - "subplex"(unconstrained optimization, general multivariate functions)
  113. - "donlp" (differentiable nonlinear optimization, dense linear algebra)
  114.  
  115. For nonlinear optimization problems with both continuous and binary
  116. variables (MINLP), there is a code called DICOPT++, available
  117. commercially from GAMS Development Corp.  Contact gams@gams.com for
  118. more information.
  119.  
  120. I am unaware of the existence of "ready-to-use" software for finding
  121. provable answers to Global Optimization problems.  One approach that
  122. people have used is to run an NLP code that finds a local optimum,
  123. repeatedly with differing starting points, hoping to get a good
  124. sampling of the full set of local optima.  For more sophisticated
  125. ideas, you may want to consult one of the books given in the section on
  126. references, such as [1] or one of the ones with "Global" in its title.
  127.  
  128. Methods like Genetic Algorithms and Simulated Annealing, that are
  129. designed to give good answers with no proof of optimality, have been
  130. studied heavily for difficult problems like these, though IMHO the
  131. successes have depended on incorporating knowledge of the problem being
  132. solved and been difficult to generalize (not that that's a major
  133. criticism when solving hard models).  There's a (compressed) Postscript
  134. file available by anonymous ftp, containing a forty-page introduction
  135. to the topic, that one can obtain from beethoven.cs.colostate.edu in
  136. file pub/TechReports/1993/tr-103.ps.Z.  Genetic Algorithm code can be
  137. obtained from cs.ucsd.edu in /pub/GAucsd.  Simulated Annealing code is
  138. available at ftp.caltech.edu, /pub/ingber.  Contact Lester Ingber
  139. (ingber@alumni.caltech.edu) for more info.  The Usenet newsgroup on
  140. genetic algorithms, comp.ai.genetic, has an FAQ on the topic, otherwise
  141. known as "The Hitch-Hiker's Guide to Evolutionary Computation".  That
  142. FAQ can be obtained by anonymous ftp at rtfm.mit.edu, in directory
  143. /pub/usenet/news.answers/ai-faq/genetic, in files named part* .
  144.  
  145. Here is a summary of codes mentioned in newsgroups in the past few
  146. years, sorted alphabetically.
  147.  
  148. - Amoeba - Numerical Recipes
  149. - Brent's Method - Numerical Recipes
  150. - CONMIN - Vanderplaats and Associates, Goleta CA
  151. - CONOPT - large-scale GRG code, by Arne Drud.  Available with GAMS
  152.   or AMPL (modeling languages) or standalone.
  153. - DFPMIN - Numerical Recipes  (Davidon-Fletcher-Powell)
  154. - Eureka - Borland Software (for IBM PC class of machines)
  155. - FSQP -  Contact Andre Tits, andre@src.umd.edu.  Said to be free of
  156.   charge to academic users.  Solves general nonlinear constrained
  157.   min-max problems.
  158. - GENOCOP - Solves linearly constrained problems via a Genetic
  159.   algorithm, available by ftp at unccsun.uncc.edu (152.15.10.88).
  160.   Author: Zbigniew Michalewicz, zbyszek@mosaic.uncc.edu.
  161. - GINO - LINDO Systems, Chicago, IL
  162. - GRG2 - Leon Lasdon, University of Texas, Austin TX
  163. - Harwell Library routine VF04.
  164. - Hooke and Jeeves algorithm - see reference below. Only on-line
  165.   source of code I know of is as part of an interpolation code,
  166.   c/hl_vector.shar on Netlib.  Also is in file 178 of the Collected
  167.   Algorithms from CACM.
  168. - IMSL routine UMINF and UMIDH.
  169. - LANCELOT - large scale NLP. See the book by Conn et al. in the
  170.   references section.  For peaceful purposes only.
  171. - LSSOL - Stanford Business Software Inc.  (See MINOS)
  172.   This code does convex (positive semi-definite) QP.  Is the QP solver
  173.   used in current versions of NPSOL.
  174. - MINOS - Stanford Business Software Inc., 415-962-8719.  Mailing
  175.   address: 2672 Bayshore Parkway, Suite 304, Mountain View, CA 94043.
  176.   This code is often used by researchers as a "benchmark" for others
  177.   to compare with.
  178. - MINPACK I and II - Contact Steve Wright, wright@mcs.anl.gov, or
  179.   check the netlib server.
  180. - NAG Library routine E04UCF (essentially the same as NPSOL).
  181. - NOVA - DOT Products, Houston TX
  182. - NPSOL - Stanford Business Software Inc.  (See MINOS)
  183. - QLD - Contact: Klaus.Schittkowski@uni-bayreuth.de.  Solves Quadratic
  184.   Programming and other nonlinear problems.
  185.  
  186. A book that is to be available in November 1993 is "Optimization
  187. Software Guide," by Jorge More and Stephen Wright, from SIAM Books.
  188. Call 1-800-447-7426 to order ($24.50, less ten percent if you are a
  189. SIAM member).  It sounds promising ("75 software packages...").
  190.  
  191. -----------------------------------------------------------------------
  192.  
  193. Q3.  "I wrote an optimization code.  Where are some test models?"
  194.  
  195. A: There are various test sets for NLP.  Among those I've seen
  196. mentioned are:
  197.   - A. Corana et al, "Minimizing Multimodal Functions of Continuous
  198.     Variables with the Simulated Annealing Algorithm," ACM Transactions
  199.     on Mathematical Software, Vol. 13, No. 3, Sept 1987, pp. 262-280.
  200.     (Difficult unconstrained nonlinear models)
  201.   - P. Pardalos, "Generation of Large-Scale Quadratic Programs", ACM
  202.     Transactions on Mathematical Software, Vol. 13, No. 2, p. 133.
  203.   - publications (referenced in another section of this list) by
  204.     Schittkowski; Hock & Schittkowski;  Floudas & Pardalos; Torn &
  205.     Zilinskas.
  206. Some of the other references also may contain problems that you could
  207. use to test a code.
  208.  
  209. A package called CUTE (Constrained and Unconstrained Testing
  210. Environment) is a set of Fortran subroutines, system tools and test
  211. problems in the area of nonlinear optimization and nonlinear equations.
  212. The package may be obtained via anonymous ftp at camelot.cc.rl.ac.uk
  213. (Internet 130.246.8.61), in the directory pub/cute, or at
  214. thales.math.fundp.ac.be (Internet 138.48.4.14) in directory cute.  A
  215. LaTex formatted manuscript is included in the distribution file.
  216. Download the README file first and follow the directions contained
  217. therein.  Questions should be directed toward any of the package's
  218. authors:
  219.   Ingrid Bongartz     bongart@watson.ibm.com
  220.   Andy Conn           arconn@watson.ibm.com
  221.   Nick Gould          gould@cerfacs.fr
  222.   Philippe Toint      pht@math.fundp.ac.be
  223.  
  224. John Beasley has posted information on his OR-Lib, which contains
  225. various optimization test problems.  Send e-mail to
  226. umtsk99@vaxa.cc.imperial.ac.uk to get started.  Or have a look in the
  227. Journal of the Operational Research Society, Volume 41, Number 11,
  228. Pages 1069-72.  The only nonlinear models in this collection at this
  229. writing are Quadratic Assignment problems.
  230.  
  231. The modeling language GAMS comes with about 150 test models, which you
  232. might be able to test your code with.  The models are in the public
  233. domain according to the vendor, although you need access to a GAMS
  234. system if you want to run them without modifying the files.
  235.  
  236. In the journal Mathematical Programming, Volume 61 (1993) Number 2,
  237. there is an article by Calamai et al. that discusses how to generate QP
  238. test models.  It gives what seems a very full bibliography of earlier
  239. articles on this topic.  The author offers at the end of the article to
  240. send a Fortran code that generates QP models, if you send email to
  241. phcalamai@dial.waterloo.edu.
  242.  
  243. -----------------------------------------------------------------------
  244.  
  245. Q4.  "What references are there in this field?"
  246.  
  247. A:  What follows here is an idiosyncratic list, a few books that I like
  248. or have been recommended on the net.  I have *not* reviewed them all.
  249.  
  250. General reference  [1]
  251. -  Nemhauser, Rinnooy Kan, & Todd, eds, Optimization, North-Holland,
  252.    1989.  (Very broad-reaching, with large bibliography.  Good
  253.    reference; it's the place I tend to look first.  Expensive, and
  254.    tough reading for beginners.)
  255.  
  256. Other publications (can someone help classify these more usefully?)
  257. -  Bazaraa & Shetty, Nonlinear Programming, Theory & Applications.
  258. -  Coleman & Li, Large Scale Numerical Optimization, SIAM Books.
  259. -  Conn, A.R., et al., "LANCELOT: A code for large-scale, constrained,
  260.    NLP", Springer series in computational mathematics, 1992.
  261. -  Dennis & Schnabel, Numerical Methods for Unconstrained Optimization
  262.    and Nonlinear Equations, Prentice Hall, 1983.
  263. -  Fiacco & McCormick, Sequential Unconstrained Minimization
  264.    Techniques, SIAM Books.  (An old standby, given new life by the
  265.    interior point LP methods.)
  266. -  Fletcher, R., Practical Methods of Optimization, Wiley 1987.  (Good
  267.    reference for Quadratic Programming, among other things.)
  268. -  Floudas & Pardalos, A Collection Of Test Problems For Constrained
  269.    Optimization Algorithms, Springer-Verlag, Lecture Notes in Computer
  270.    Science 455, 1990.
  271. -  Floudas & Pardalos, Recent Advances in Global Optimization,
  272.    Princeton University Press, 1992.
  273. -  Gill, Murray & Wright, Practical Optimization, Academic Press, 1981.
  274.    (An instant NLP classic when it was published.)
  275. -  Hock & Schittkowski, Test Examples for Nonlinear Programming Codes,
  276.    Springer-Verlag, 1981.
  277. -  Hooke & Jeeves, "Direct Search Solution of Numerical and Statistical
  278.    Problems", Journal of the ACM, Vol.8 pp. 212-229, April 1961.
  279. -  Kahaner, Moler & Nash, Numerical Methods and Software, Prentice-
  280.    Hall.
  281. -  Luenberger, Introduction to Linear and Nonlinear Programming,
  282.    Addison Wesley, 1984.  (Updated version of an old standby.)
  283. -  More, "Numerical Solution of Bound Constrained Problems", in
  284.    Computational Techniques & Applications, CTAC-87, Noye & Fletcher,
  285.    eds, North-Holland, 29-37,  1988.
  286. -  More & Toraldo, Algorithms for Bound Constrained Quadratic
  287.    Programming Problems, Numerische Mathematik 55, 377-400, 1989.
  288. -  Nocedal, J., summary of algorithms for unconstrained optimization
  289.    in "Acta Numerica 1992".
  290. -  Schittkowski, Nonlinear Programming Codes, Springer-Verlag, 1980.
  291. -  Torn & Zilinskas, Global Optimization, Springer-Verlag, 1989.
  292. -  Wright, M., "Interior methods for constrained optimization", Acta
  293.    Mathematica, Cambridge University Press, 1992.  (Survey article.)
  294.  
  295. Simulated Annealing & Genetic Algorithms
  296. -  Davis, L. (ed.), Genetic Algorithms and Simulated Annealing, Morgan
  297.    Kaufmann, 1989.
  298. -  De Jong, "Genetic algorithms are NOT function optimizers" in
  299.    Foundations of Genetic Algorithms: Proceedings 24-29 July 1992, D.
  300.    Whitley (ed.) Morgan Kaufman
  301. -  Goldberg, D., "Genetic Algorithms in Search, Optimization, and
  302.    Machine Learning", Addison-Wesley, 1989.
  303. -  Ingber "Very fast simulated re-annealing" Mathematical and Computer
  304.    Modeling, 12(8) 1989, 967-973
  305. -  Kirkpatrick, Gelatt & Vecchi, Optimization by Simulated Annealing,
  306.    Science, 220 (4598) 671-680, 1983.
  307. -  Michalewicz et al., article in volume 3(4) 1991 of the ORSA Journal
  308.    on Computing.
  309. -  Michalewicz, Z., "Genetic Algorithms + Data Structures = Evolution
  310.    Programs", Springer Verlag, 1992.
  311. -  Reeves, C.R., ed., Modern Heuristic Techniques for Combinatorial
  312.    Problems, Halsted Press (Wiley).  (Contains chapters on tabu search,
  313.    simulated annealing, genetic algorithms, neural nets, and Lagrangean
  314.    relaxation.)
  315.  
  316. -----------------------------------------------------------------------
  317.  
  318. Q5.  "How do I access the Netlib server?
  319.  
  320. A:  If you have ftp access, you can try "ftp research.att.com", using
  321. "netlib" as the Name, and your email address as the Password.  Do a
  322. "cd <dir>" where <dir> is whatever directory was mentioned, and look
  323. around, then do a "get <filename>" on anything that seems interesting.
  324. There often will be a "README" file, which you would want to look at
  325. first.  Alternatively, you can reach an e-mail server via
  326. "netlib@ornl.gov", to which you can send a message saying "send index
  327. from <dir>"; follow the instructions you receive.
  328.  
  329. -----------------------------------------------------------------------
  330.  
  331. Q6.  "Who maintains this FAQ list?"
  332.  
  333. A:  John W. Gregory
  334.     Applications Department
  335.     Cray Research, Inc.
  336.     Eagan, MN 55121   USA
  337.     jwg@cray.com
  338.     612-683-3673
  339.  
  340. I suppose I should say something here to the effect that "the material
  341. in this document does not reflect any official position taken by Cray
  342. Research, Inc."  Also, "use at your own risk", "no endorsement of
  343. products mentioned", etc., etc.  "IMHO"s are implicit throughout.
  344.  
  345. In compiling this information, I have drawn on my own knowledge of the
  346. field, plus information from contributors to Usenet groups and the
  347. ORCS-L mailing list.  I give my thanks to all those who have offered
  348. advice and support.
  349.  
  350. I've tried to keep my own biases (primarily, toward the high end of
  351. computing) from dominating what I write here, and other viewpoints that
  352. I've missed are welcome.  Suggestions, corrections, topics you'd like
  353. to see covered, and additional material are solicited.
  354.  
  355. One disclaimer, which I alternately decide I should or shouldn't bother
  356. to state here, is that my wife works for one of the commercial LP firms
  357. mentioned in the LP FAQ.  I don't think you could guess which one,
  358. based on any of my comments in these two FAQs; besides, in my jobs at
  359. Cray and CDC I have had occasion to work with developers of many codes
  360. (and I worked on a few codes myself).  At any rate, my wife didn't
  361. write this FAQ, I did.  8v)
  362.  
  363. This FAQ list is also being posted to news.answers and sci.answers, and
  364. is archived in the periodic posting archive on rtfm.mit.edu
  365. [18.70.0.209], in the anonymous ftp directory /pub/usenet/sci.answers.
  366. The name under which FAQs are archived appears in the Archive-name
  367. line at the top of the article.  This particular FAQ is archived as
  368. "nonlinear-programming-faq".  You will find many other FAQs, covering a
  369. staggering variety of topics, in this hierarchy.  There's a mail
  370. server on that machine, so if you don't have ftp privileges, you can
  371. send an e-mail message to  mail-server@rtfm.mit.edu containing:
  372.     send usenet/sci.answers/nonlinear-programming-faq
  373. as the body of the message.
  374.  
  375. Copies of this FAQ list may be made freely, as long as it is
  376. distributed at no charge and with the date of last update and this
  377. disclaimer included.  If you wish to cite this FAQ formally (hey,
  378. someone actually asked), you may use:
  379.   Gregory, John W. (1993) "Nonlinear Programming FAQ", Usenet
  380.   sci.answers.  Available via anonymous ftp from rtfm.mit.edu
  381.   in /pub/usenet/sci.answers/nonlinear-programming-faq
  382.  
  383. -----------------------------------------------------------------------
  384. END nonlinear-programming-faq
  385.