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