home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: news.answers,sci.answers,sci.op-research
- 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
- From: jwg@cray.com (John Gregory)
- Subject: Nonlinear Programming FAQ
- Message-ID: <nonlinear-programming-faq-1-754759442@cray.com>
- Followup-To: sci.op-research
- Summary: A List of Frequently Asked Questions about Nonlinear Programming
- Originator: jwg@ceres
- Keywords: FAQ, NLP, Nonlinear Programming
- Lines: 366
- Nntp-Posting-Host: ceres.cray.com
- Reply-To: jwg@cray.com (John Gregory)
- Organization: Cray Research, Inc., Eagan MN USA
- Date: 1 Dec 93 09:24:35 CST
- Approved: news-answers-request@MIT.Edu
- Expires: 02/04/94
- Xref: senator-bedfellow.mit.edu news.answers:15617 sci.answers:717 sci.op-research:420
-
- Posted-By: auto-faq 2.4
- Archive-name: nonlinear-programming-faq
- Last-modified: December 1, 1993
-
- Nonlinear Programming - Frequently Asked Questions List
- (nonlinear-programming-faq)
- Posted monthly to Usenet newsgroup sci.op-research
- Most recent update: December 1, 1993
-
- -----------------------------------------------------------------------
-
- "A program is a spell cast over a computer, turning input into error
- messages." -- Anonymous
-
- Q0. "What's in this FAQ?"
-
- A: Table of Contents
- Q1. "What is Nonlinear Programming?"
- Q2. "What software is there for nonlinear optimization?"
- Q3. "I wrote an optimization code. Where are some test models?"
- Q4. "What references are there in this field?"
- Q5. "How do I access the Netlib server?
- Q6. "Who maintains this FAQ list?"
-
- See also the related FAQ on Linear Programming (LP).
-
- -----------------------------------------------------------------------
-
- Q1. "What is Nonlinear Programming?"
-
- A: A Nonlinear Program (NLP) is a problem that can be put into the
- form
-
- minimize F(x)
- subject to g (x) = 0 for i=1,...,m1 where m1 >= 0
- i
- h (x) >= 0 for j=m1+1,...,m where m >= m1
- j
-
- That is, there is one scalar-valued function F, of several variables (x
- here is a vector), that we seek to minimize subject (perhaps) to one or
- more other such functions that serve to limit or define the values of
- these variables. F is called the "objective function", while the
- various other functions are called the "constraints". (If maximization
- is sought, it is trivial to do so, by multiplying F by -1.)
-
- Because NLP is a difficult field, researchers have identified special
- cases for study. A particularly well studied case is the one where
- all the constraints g and h are linear. The name for such a problem,
- unsurprisingly, is "linearly constrained optimization". If, as well,
- the objective function is quadratic at most, this problem is called
- Quadratic Programming (QP). A further special case of great importance
- is where the objective function is entirely linear; this is called
- Linear Programming and is discussed in a separate FAQ list. Another
- important special case, called unconstrained optimization, is where
- there are no constraints at all.
-
- One of the greatest challenges in NLP is that some problems exhibit
- "local optima"; that is, spurious solutions that merely satisfy the
- requirements on the derivatives of the functions. Think of a mountain
- climber in a terrain with multiple peaks, some higher than others, and
- you'll see the difficulty posed for an algorithm that tries to move
- from point to point by only climbing uphill. Algorithms that propose
- to overcome this difficulty are termed "Global Optimization".
-
- -----------------------------------------------------------------------
-
- Q2. "What software is there for nonlinear optimization?"
-
- A: It's unrealistic to expect to find one general NLP code that's going
- to work for every kind of nonlinear model. Instead, you should try to
- find a code that fits the problem you are solving. If your problem
- doesn't fit in any category except "general", or if you insist on a
- globally optimal solution (except when there no chance of encountering
- multiple local optima), you should be prepared to have to use a method
- that boils down to exhaustive search, i.e., you have an intractable
- problem.
-
- Several of the commercial LP codes referenced in the LP FAQ have
- specialized routines, particularly QP. The ones that I know of that
- have some form of QP are: LINDO, KORBX, LOQO, MPS-III, OSL, and
- PC-PROG. Many general nonlinear problems can be solved (or at least
- confronted) by application of a sequence of LP or QP approximations.
-
- There is an ACM TOMS routine for QP, #587, available from the netlib
- server, in directory /netlib/toms.
-
- There is a directory, /netlib/opt, on the netlib server containing a
- collection of optimization routines. The last time I checked, I saw
- - "praxis" (unconstrained optimization, without requiring derivatives)
- - "tn" (Newton method for unconstrained or simple-bound optimization)
- - "ve08" (optimization of unconstrained separable function).
- - "simann" (unconstrained optimization using Simulated Annealing)
- - "subplex"(unconstrained optimization, general multivariate functions)
- - "donlp" (differentiable nonlinear optimization, dense linear algebra)
-
- For nonlinear optimization problems with both continuous and binary
- variables (MINLP), there is a code called DICOPT++, available
- commercially from GAMS Development Corp. Contact gams@gams.com for
- more information.
-
- I am unaware of the existence of "ready-to-use" software for finding
- provable answers to Global Optimization problems. One approach that
- people have used is to run an NLP code that finds a local optimum,
- repeatedly with differing starting points, hoping to get a good
- sampling of the full set of local optima. For more sophisticated
- ideas, you may want to consult one of the books given in the section on
- references, such as [1] or one of the ones with "Global" in its title.
-
- Methods like Genetic Algorithms and Simulated Annealing, that are
- designed to give good answers with no proof of optimality, have been
- studied heavily for difficult problems like these, though IMHO the
- successes have depended on incorporating knowledge of the problem being
- solved and been difficult to generalize (not that that's a major
- criticism when solving hard models). There's a (compressed) Postscript
- file available by anonymous ftp, containing a forty-page introduction
- to the topic, that one can obtain from beethoven.cs.colostate.edu in
- file pub/TechReports/1993/tr-103.ps.Z. Genetic Algorithm code can be
- obtained from cs.ucsd.edu in /pub/GAucsd. Simulated Annealing code is
- available at ftp.caltech.edu, /pub/ingber. Contact Lester Ingber
- (ingber@alumni.caltech.edu) for more info. The Usenet newsgroup on
- genetic algorithms, comp.ai.genetic, has an FAQ on the topic, otherwise
- known as "The Hitch-Hiker's Guide to Evolutionary Computation". That
- FAQ can be obtained by anonymous ftp at rtfm.mit.edu, in directory
- /pub/usenet/news.answers/ai-faq/genetic, in files named part* .
-
- Here is a summary of codes mentioned in newsgroups in the past few
- years, sorted alphabetically.
-
- - Amoeba - Numerical Recipes
- - Brent's Method - Numerical Recipes
- - CONMIN - Vanderplaats and Associates, Goleta CA
- - CONOPT - large-scale GRG code, by Arne Drud. Available with GAMS
- or AMPL (modeling languages) or standalone.
- - DFPMIN - Numerical Recipes (Davidon-Fletcher-Powell)
- - Eureka - Borland Software (for IBM PC class of machines)
- - FSQP - Contact Andre Tits, andre@src.umd.edu. Said to be free of
- charge to academic users. Solves general nonlinear constrained
- min-max problems.
- - GENOCOP - Solves linearly constrained problems via a Genetic
- algorithm, available by ftp at unccsun.uncc.edu (152.15.10.88).
- Author: Zbigniew Michalewicz, zbyszek@mosaic.uncc.edu.
- - GINO - LINDO Systems, Chicago, IL
- - GRG2 - Leon Lasdon, University of Texas, Austin TX
- - Harwell Library routine VF04.
- - Hooke and Jeeves algorithm - see reference below. Only on-line
- source of code I know of is as part of an interpolation code,
- c/hl_vector.shar on Netlib. Also is in file 178 of the Collected
- Algorithms from CACM.
- - IMSL routine UMINF and UMIDH.
- - LANCELOT - large scale NLP. See the book by Conn et al. in the
- references section. For peaceful purposes only.
- - LSSOL - Stanford Business Software Inc. (See MINOS)
- This code does convex (positive semi-definite) QP. Is the QP solver
- used in current versions of NPSOL.
- - MINOS - Stanford Business Software Inc., 415-962-8719. Mailing
- address: 2672 Bayshore Parkway, Suite 304, Mountain View, CA 94043.
- This code is often used by researchers as a "benchmark" for others
- to compare with.
- - MINPACK I and II - Contact Steve Wright, wright@mcs.anl.gov, or
- check the netlib server.
- - NAG Library routine E04UCF (essentially the same as NPSOL).
- - NOVA - DOT Products, Houston TX
- - NPSOL - Stanford Business Software Inc. (See MINOS)
- - QLD - Contact: Klaus.Schittkowski@uni-bayreuth.de. Solves Quadratic
- Programming and other nonlinear problems.
-
- A book that is to be available in November 1993 is "Optimization
- Software Guide," by Jorge More and Stephen Wright, from SIAM Books.
- Call 1-800-447-7426 to order ($24.50, less ten percent if you are a
- SIAM member). It sounds promising ("75 software packages...").
-
- -----------------------------------------------------------------------
-
- Q3. "I wrote an optimization code. Where are some test models?"
-
- A: There are various test sets for NLP. Among those I've seen
- mentioned are:
- - A. Corana et al, "Minimizing Multimodal Functions of Continuous
- Variables with the Simulated Annealing Algorithm," ACM Transactions
- on Mathematical Software, Vol. 13, No. 3, Sept 1987, pp. 262-280.
- (Difficult unconstrained nonlinear models)
- - P. Pardalos, "Generation of Large-Scale Quadratic Programs", ACM
- Transactions on Mathematical Software, Vol. 13, No. 2, p. 133.
- - publications (referenced in another section of this list) by
- Schittkowski; Hock & Schittkowski; Floudas & Pardalos; Torn &
- Zilinskas.
- Some of the other references also may contain problems that you could
- use to test a code.
-
- A package called CUTE (Constrained and Unconstrained Testing
- Environment) is a set of Fortran subroutines, system tools and test
- problems in the area of nonlinear optimization and nonlinear equations.
- The package may be obtained via anonymous ftp at camelot.cc.rl.ac.uk
- (Internet 130.246.8.61), in the directory pub/cute, or at
- thales.math.fundp.ac.be (Internet 138.48.4.14) in directory cute. A
- LaTex formatted manuscript is included in the distribution file.
- Download the README file first and follow the directions contained
- therein. Questions should be directed toward any of the package's
- authors:
- Ingrid Bongartz bongart@watson.ibm.com
- Andy Conn arconn@watson.ibm.com
- Nick Gould gould@cerfacs.fr
- Philippe Toint pht@math.fundp.ac.be
-
- John Beasley has posted information on his OR-Lib, which contains
- various optimization test problems. Send e-mail to
- umtsk99@vaxa.cc.imperial.ac.uk to get started. Or have a look in the
- Journal of the Operational Research Society, Volume 41, Number 11,
- Pages 1069-72. The only nonlinear models in this collection at this
- writing are Quadratic Assignment problems.
-
- The modeling language GAMS comes with about 150 test models, which you
- might be able to test your code with. The models are in the public
- domain according to the vendor, although you need access to a GAMS
- system if you want to run them without modifying the files.
-
- In the journal Mathematical Programming, Volume 61 (1993) Number 2,
- there is an article by Calamai et al. that discusses how to generate QP
- test models. It gives what seems a very full bibliography of earlier
- articles on this topic. The author offers at the end of the article to
- send a Fortran code that generates QP models, if you send email to
- phcalamai@dial.waterloo.edu.
-
- -----------------------------------------------------------------------
-
- Q4. "What references are there in this field?"
-
- A: What follows here is an idiosyncratic list, a few books that I like
- or have been recommended on the net. I have *not* reviewed them all.
-
- General reference [1]
- - Nemhauser, Rinnooy Kan, & Todd, eds, Optimization, North-Holland,
- 1989. (Very broad-reaching, with large bibliography. Good
- reference; it's the place I tend to look first. Expensive, and
- tough reading for beginners.)
-
- Other publications (can someone help classify these more usefully?)
- - Bazaraa & Shetty, Nonlinear Programming, Theory & Applications.
- - Coleman & Li, Large Scale Numerical Optimization, SIAM Books.
- - Conn, A.R., et al., "LANCELOT: A code for large-scale, constrained,
- NLP", Springer series in computational mathematics, 1992.
- - Dennis & Schnabel, Numerical Methods for Unconstrained Optimization
- and Nonlinear Equations, Prentice Hall, 1983.
- - Fiacco & McCormick, Sequential Unconstrained Minimization
- Techniques, SIAM Books. (An old standby, given new life by the
- interior point LP methods.)
- - Fletcher, R., Practical Methods of Optimization, Wiley 1987. (Good
- reference for Quadratic Programming, among other things.)
- - Floudas & Pardalos, A Collection Of Test Problems For Constrained
- Optimization Algorithms, Springer-Verlag, Lecture Notes in Computer
- Science 455, 1990.
- - Floudas & Pardalos, Recent Advances in Global Optimization,
- Princeton University Press, 1992.
- - Gill, Murray & Wright, Practical Optimization, Academic Press, 1981.
- (An instant NLP classic when it was published.)
- - Hock & Schittkowski, Test Examples for Nonlinear Programming Codes,
- Springer-Verlag, 1981.
- - Hooke & Jeeves, "Direct Search Solution of Numerical and Statistical
- Problems", Journal of the ACM, Vol.8 pp. 212-229, April 1961.
- - Kahaner, Moler & Nash, Numerical Methods and Software, Prentice-
- Hall.
- - Luenberger, Introduction to Linear and Nonlinear Programming,
- Addison Wesley, 1984. (Updated version of an old standby.)
- - More, "Numerical Solution of Bound Constrained Problems", in
- Computational Techniques & Applications, CTAC-87, Noye & Fletcher,
- eds, North-Holland, 29-37, 1988.
- - More & Toraldo, Algorithms for Bound Constrained Quadratic
- Programming Problems, Numerische Mathematik 55, 377-400, 1989.
- - Nocedal, J., summary of algorithms for unconstrained optimization
- in "Acta Numerica 1992".
- - Schittkowski, Nonlinear Programming Codes, Springer-Verlag, 1980.
- - Torn & Zilinskas, Global Optimization, Springer-Verlag, 1989.
- - Wright, M., "Interior methods for constrained optimization", Acta
- Mathematica, Cambridge University Press, 1992. (Survey article.)
-
- Simulated Annealing & Genetic Algorithms
- - Davis, L. (ed.), Genetic Algorithms and Simulated Annealing, Morgan
- Kaufmann, 1989.
- - De Jong, "Genetic algorithms are NOT function optimizers" in
- Foundations of Genetic Algorithms: Proceedings 24-29 July 1992, D.
- Whitley (ed.) Morgan Kaufman
- - Goldberg, D., "Genetic Algorithms in Search, Optimization, and
- Machine Learning", Addison-Wesley, 1989.
- - Ingber "Very fast simulated re-annealing" Mathematical and Computer
- Modeling, 12(8) 1989, 967-973
- - Kirkpatrick, Gelatt & Vecchi, Optimization by Simulated Annealing,
- Science, 220 (4598) 671-680, 1983.
- - Michalewicz et al., article in volume 3(4) 1991 of the ORSA Journal
- on Computing.
- - Michalewicz, Z., "Genetic Algorithms + Data Structures = Evolution
- Programs", Springer Verlag, 1992.
- - Reeves, C.R., ed., Modern Heuristic Techniques for Combinatorial
- Problems, Halsted Press (Wiley). (Contains chapters on tabu search,
- simulated annealing, genetic algorithms, neural nets, and Lagrangean
- relaxation.)
-
- -----------------------------------------------------------------------
-
- Q5. "How do I access the Netlib server?
-
- A: If you have ftp access, you can try "ftp research.att.com", using
- "netlib" as the Name, and your email address as the Password. Do a
- "cd <dir>" where <dir> is whatever directory was mentioned, and look
- around, then do a "get <filename>" on anything that seems interesting.
- There often will be a "README" file, which you would want to look at
- first. Alternatively, you can reach an e-mail server via
- "netlib@ornl.gov", to which you can send a message saying "send index
- from <dir>"; follow the instructions you receive.
-
- -----------------------------------------------------------------------
-
- Q6. "Who maintains this FAQ list?"
-
- A: John W. Gregory
- Applications Department
- Cray Research, Inc.
- Eagan, MN 55121 USA
- jwg@cray.com
- 612-683-3673
-
- I suppose I should say something here to the effect that "the material
- in this document does not reflect any official position taken by Cray
- Research, Inc." Also, "use at your own risk", "no endorsement of
- products mentioned", etc., etc. "IMHO"s are implicit throughout.
-
- In compiling this information, I have drawn on my own knowledge of the
- field, plus information from contributors to Usenet groups and the
- ORCS-L mailing list. I give my thanks to all those who have offered
- advice and support.
-
- I've tried to keep my own biases (primarily, toward the high end of
- computing) from dominating what I write here, and other viewpoints that
- I've missed are welcome. Suggestions, corrections, topics you'd like
- to see covered, and additional material are solicited.
-
- One disclaimer, which I alternately decide I should or shouldn't bother
- to state here, is that my wife works for one of the commercial LP firms
- mentioned in the LP FAQ. I don't think you could guess which one,
- based on any of my comments in these two FAQs; besides, in my jobs at
- Cray and CDC I have had occasion to work with developers of many codes
- (and I worked on a few codes myself). At any rate, my wife didn't
- write this FAQ, I did. 8v)
-
- This FAQ list is also being posted to news.answers and sci.answers, and
- is archived in the periodic posting archive on rtfm.mit.edu
- [18.70.0.209], in the anonymous ftp directory /pub/usenet/sci.answers.
- The name under which FAQs are archived appears in the Archive-name
- line at the top of the article. This particular FAQ is archived as
- "nonlinear-programming-faq". You will find many other FAQs, covering a
- staggering variety of topics, in this hierarchy. There's a mail
- server on that machine, so if you don't have ftp privileges, you can
- send an e-mail message to mail-server@rtfm.mit.edu containing:
- send usenet/sci.answers/nonlinear-programming-faq
- as the body of the message.
-
- Copies of this FAQ list may be made freely, as long as it is
- distributed at no charge and with the date of last update and this
- disclaimer included. If you wish to cite this FAQ formally (hey,
- someone actually asked), you may use:
- Gregory, John W. (1993) "Nonlinear Programming FAQ", Usenet
- sci.answers. Available via anonymous ftp from rtfm.mit.edu
- in /pub/usenet/sci.answers/nonlinear-programming-faq
-
- -----------------------------------------------------------------------
- END nonlinear-programming-faq
-