<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ascend4.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dimitris</id>
	<title>ASCEND - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://ascend4.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dimitris"/>
	<link rel="alternate" type="text/html" href="https://ascend4.org/Special:Contributions/Dimitris"/>
	<updated>2026-04-28T21:45:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5334</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5334"/>
		<updated>2015-08-13T10:32:35Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/popot/ popot] (new BSD license) a C++ Template based library for population based optimization. It includes various population-based optimization algorithms such as particle swarm, ant colonies, evolutionary strategies.&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [http://gundog.lbl.gov/GO/index.html GenOpt] (modified BSD license) an optimization program for the minimization of a cost function that is evaluated by an external simulation program, developed by Berkley Lab and written in Java&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) a Particle Swarm Optimization package written in Java&lt;br /&gt;
* [https://pypi.python.org/pypi/ecspy ecpsy] (GNU) a framework for creating evolutionary computations in Python&lt;br /&gt;
* [http://psotoolbox.sourceforge.net/ PSO TOOLBOX] (GPL) a Particle Swarm Optimization implementation in Matlab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5333</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5333"/>
		<updated>2015-08-13T10:31:58Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/popot/ popot] (new BSD license) a C++ Template based library for population based optimization. It includes various population-based optimization algorithms such as particle swarm, ant colonies, evolutionary strategies.&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [http://gundog.lbl.gov/GO/index.html GenOpt] (modified BSD license) an optimization program for the minimization of a cost function that is evaluated by an external simulation program, developed by Berkley Lab and written in Java&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) a Particle Swarm Optimization package written in Java&lt;br /&gt;
* [https://pypi.python.org/pypi/ecspy ecpsy] (GNU) a framework for creating evolutionary computations in Python&lt;br /&gt;
* [http://psotoolbox.sourceforge.net/ PSO TOOLBOX] (GNU) a Particle Swarm Optimization implementation in Matlab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5332</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5332"/>
		<updated>2015-08-13T10:31:30Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/popot/ popot] (new BSD license) a C++ Template based library for population based optimization. It includes various population-based optimization algorithms such as particle swarm, ant colonies, evolutionary strategies.&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [http://gundog.lbl.gov/GO/index.html GenOpt] (modified BSD license) an optimization program for the minimization of a cost function that is evaluated by an external simulation program, developed by Berkley Lab and written in Java&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) a Particle swarm optimization package written in Java&lt;br /&gt;
* [https://pypi.python.org/pypi/ecspy ecpsy] (GNU) a framework for creating evolutionary computations in Python&lt;br /&gt;
* [http://psotoolbox.sourceforge.net/ PSO TOOLBOX] (GNU) a Particle Swarm Optimization implementation in Matlab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5331</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5331"/>
		<updated>2015-08-13T10:28:45Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/popot/ popot] (new BSD license) a C++ Template based library for population based optimization. It includes various population-based optimization algorithms such as particle swarm, ant colonies, evolutionary strategies.&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [http://gundog.lbl.gov/GO/index.html GenOpt] (modified BSD license) an optimization program for the minimization of a cost function that is evaluated by an external simulation program, developed by Berkley Lab and written in Java&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) a Particle swarm optimization package written in Java&lt;br /&gt;
* [https://pypi.python.org/pypi/ecspy ecpsy] (GNU) a framework for creating evolutionary computations in Python&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5330</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5330"/>
		<updated>2015-08-11T09:43:41Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/popot/ popot] (new BSD license) a C++ Template based library for population based optimization. It includes various population-based optimization algorithms such as particle swarm, ant colonies, evolutionary strategies.&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [http://gundog.lbl.gov/GO/index.html GenOpt] (modified BSD license) an optimization program for the minimization of a cost function that is evaluated by an external simulation program, developed by Berkley Lab and written in Java&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) a Particle swarm optimization package written in Java&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5329</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5329"/>
		<updated>2015-08-11T09:43:15Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/popot/ popot] (new BSD license) a C++ Template based library for population based optimization. It includes various population-based optimization algorithms such as &lt;br /&gt;
particle swarm, ant colonies, evolutionary strategies.&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [http://gundog.lbl.gov/GO/index.html GenOpt] (modified BSD license) an optimization program for the minimization of a cost function that is evaluated by an external simulation program, developed by Berkley Lab and written in Java&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) a Particle swarm optimization package written in Java&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5328</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5328"/>
		<updated>2015-08-11T09:35:23Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [http://gundog.lbl.gov/GO/index.html GenOpt] (modified BSD license) an optimization program for the minimization of a cost function that is evaluated by an external simulation program, developed by Berkley Lab and written in Java&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) a Particle swarm optimization package written in Java&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5327</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5327"/>
		<updated>2015-08-11T09:35:08Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [hhttp://gundog.lbl.gov/GO/index.html GenOpt] (modified BSD license) an optimization program for the minimization of a cost function that is evaluated by an external simulation program, developed by Berkley Lab and written in Java&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) a Particle swarm optimization package written in Java&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5326</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5326"/>
		<updated>2015-08-11T09:16:06Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) - a Particle swarm optimization package written in Java&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5325</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5325"/>
		<updated>2015-08-11T09:15:46Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
* [http://jswarm-pso.sourceforge.net/ JSwarm-PSO] (GPL) - a Particle swarm optimization package written in Java&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5324</id>
		<title>Survey of optimisation software</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Survey_of_optimisation_software&amp;diff=5324"/>
		<updated>2015-08-11T09:09:29Z</updated>

		<summary type="html">&lt;p&gt;Dimitris: /* Free Open Source Software options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a survey of optimisation software that was performed as a part of our effort to identify options for a [[Non-proprietary Optimisation]] solver for ASCEND. Feel free to add any that we&#039;ve missed.&lt;br /&gt;
&lt;br /&gt;
== List of Lists ==&lt;br /&gt;
&lt;br /&gt;
* List of NLP solvers: http://www.ici.ro/camo/hnp.htm&lt;br /&gt;
* List of unconstrained optimisation solvers: http://www.ici.ro/camo/huo.htm&lt;br /&gt;
* There &#039;&#039;was&#039;&#039; a nice list at http://www.scicomp.uni-erlangen.de/SW/opt.html but the link seems to be broken at the moment.&lt;br /&gt;
* &#039;Decision tree&#039; for optimization software http://plato.asu.edu/sub/nlores.html&lt;br /&gt;
* Description of different types of optimisation problems: http://coool.mines.edu/report/node3.html&lt;br /&gt;
&lt;br /&gt;
== Free Open Source Software options ==&lt;br /&gt;
&lt;br /&gt;
* [https://projects.coin-or.org/Ipopt IPOPT] (LGPL) &#039;Interior-Point Filter Line-Search Algorithm&#039;. Possibly some problems with scaling of variables (according to RPS). can use a number of free and non-free matrix solvers; the free matrix solver in version 3.3.1 is MUMPS. See also [[IPOPT]] in this wiki.&lt;br /&gt;
* [http://trilinos.sandia.gov/packages/moocho/ MOOCHO] (GPL?) reduced sequential quadratic programming (SQP); allows the user to supply their own linear solver.&lt;br /&gt;
* [http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html GSL &#039;multimin&#039;] (GPL) several multidimensional dense-matrix unconstrained optimisation methods including conjugate gradient methods, quasi-newton methods, steepest descent and Nelder-Mead simplex method.&lt;br /&gt;
* [http://acts.nersc.gov/opt++/index.html OPT++] (free, includes &#039;&#039;optional&#039;&#039; wrapping of non-free NPSOL). Good but dense matrices only (RPS). Superceded by MOOCHO?&lt;br /&gt;
* [http://software.sandia.gov/appspack/version5.0/index.html APPSPACK] (GPL?) &#039;asynchronous parallel generating set search&#039;, derivative-free.&lt;br /&gt;
* [http://www.eng.buffalo.edu/Research/MODEL/mdo.test.orig/CONMIN/ CONMIN] (&#039;free&#039; but where from?) &#039;two-step limited memory quasi Newton like Conjugate Gradient method with Beale restarts&#039;.&lt;br /&gt;
* [http://www.cs.sandia.gov/SGOPT/ SGOPT] (LGPL) Evolutionary and pattern-search algorithms&lt;br /&gt;
* [http://www.math.ufl.edu/~hager/ OPTPACK] (PD) &#039;a dual algorithm for constrained optimization&#039;&lt;br /&gt;
* [http://www.netlib.org/minpack/ MINPACK] (BSD-like) unconstrained&lt;br /&gt;
* [http://www.coin-or.org/Bonmin/ BonMin] (CPL) Part of the COIN-OR suite; a solver for convect MINLP problems.&lt;br /&gt;
* [https://projects.coin-or.org/Couenne Couenne] (CPL) Part of the COIN-OR suite; a solver for non-convex MINLP problems.&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ ALGENCAN] (GPL) Augmented Lagrangian plus an embedded smooth function box-constraint solver called &#039;GENCAN&#039;&lt;br /&gt;
* [http://www.ime.usp.br/~egbirgin/tango/ SPG] (GPL) for smooth function with convex constraint&lt;br /&gt;
* [http://www.gerad.ca/~couturgi/NOMAD/ NOMAD] (GPL) Generalized Pattern Search (GPS) algorithms to solve nonlinear optimization problems&lt;br /&gt;
* [http://www-fp.mcs.anl.gov/otc/Tools/LBFGS-B/ LBFGS-B] (PD?) limited-memory quasi-Newton code&lt;br /&gt;
* [http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt] (LGPL) wrapper for a few other FOSS codes, but also reportedly has some new implementations of certain algorithms&lt;br /&gt;
* [http://www.uni-graz.at/imawww/kuntsevich/solvopt/ SolvOpt] (PD) &#039;method of exact penalisation&#039;, based on N.Z. Shor r-algorithm&lt;br /&gt;
* [http://openopt.org/ralg ralg] (BSD) - an implementation of N.Z. Shor r-algorithm; nonlinear/nonsmooth constrained/unconstrained problems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metaheuristics&#039;&#039;&#039;&lt;br /&gt;
* [http://dev.heuristiclab.com/ HeuristicLab] (GPL) a framework for heuristic and evolutionary algorithms developed by Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wrappers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.coin-or.org/NLPAPI/index.html NLPAPI] (GPL?) a generalised wrapper for NLP solvers, including support for LANCELOT.&lt;br /&gt;
* [https://projects.coin-or.org/GAMSlinks/ GAMSlinks] (GPL?) a wrapper for [https://projects.coin-or.org/ COIN-OR] solvers that allows them to be called from GAMS. This is interesting as it shows how we could implement set up ASCEND so that it can use GAMS solvers, which adapting FOSS solvers that run under GAMS much easier to adapt for use with ASCEND.&lt;br /&gt;
* [http://www.netlib.org/ampl/solvers/lancelot/ AMPL/LANCELOT] a wrapper for running LANCELOT from AMPL. Again, this provides a way for seeing how solvers that have been adapted for use in AMPL might be also be connected to from ASCEND.&lt;br /&gt;
* [http://cuter.rl.ac.uk/cuter-www/interfaces.html CUTEr] (GPL-like license) is a wrapper for a wide range of optimisation solvers, and also a testing framework.&lt;br /&gt;
* [https://projects.coin-or.org/Osi OSI] (CPL?) wrapper for quite a wide range of LP solvers, from COIN-OR.&lt;br /&gt;
* [https://projects.coin-or.org/OS OS] (CPL?) Optimisation Services, a number of interface languages and APIs for communicating between problem &#039;servers&#039; and solver &#039;clients&#039;, with support for a range of COIN-OR solvers and converters for GAMS/AMPL input files.&lt;br /&gt;
* [http://wiki.services.openoffice.org/wiki/Optimization_Solver OpenOffice.org&#039;s Solver]&lt;br /&gt;
* [http://openopt.org OpenOpt] (BSD) a general purpose optimization framework written in Python and NumPy, capable of automatic differentiation.&lt;br /&gt;
* [http://code.google.com/p/pulp-or/ PuLP] (MIT license) a Python interface for expressing and solving [[LP]] problems.&lt;br /&gt;
* [http://rima.incremental.co.nz/ RIMA] (MIT license) a Lua interface for expressing and solving [[LP]] and [[MILP]] problems using CBC, CLP and lpsolve.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unknown:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://coool.mines.edu/ COOOL]&lt;br /&gt;
&lt;br /&gt;
Another free list: [http://software.sandia.gov/Acro/html/Main/AcroPackages.html]&lt;br /&gt;
&lt;br /&gt;
There are some more listed in the [ftp://rtfm.mit.edu/pub/usenet/sci.answers/nonlinear-programming-faq nonlinear-programming-faq].&lt;br /&gt;
&lt;br /&gt;
== Free for non-commercial use ==&lt;br /&gt;
&lt;br /&gt;
Trust region&lt;br /&gt;
&lt;br /&gt;
* [http://www.numerical.rl.ac.uk/lancelot/blurb.html LANCELOT] (no redistribution or resale) Trust region method, adapt for bound constraints&lt;br /&gt;
&lt;br /&gt;
Active set&lt;br /&gt;
&lt;br /&gt;
* [http://www-unix.mcs.anl.gov/~more/tron/ TRON] (permission to copy and modify, but only to be used for &#039;internal research&#039; ([http://plato.asu.edu/ftp/other_software/tron_f90.tar.gz download]) active set method that uses a combination of gradient projections and a preconditioned conjugate gradient method to minimize an objective function. TRON only provides for &#039;box&#039; constraints and has no support for equality constraints, although it may be possible to add support for that by wrapping TRON around an NLA solver?&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming&lt;br /&gt;
&lt;br /&gt;
* [http://plato.la.asu.edu/donlp2.html DONLP2] (dense; free for non-commercial purposes)&lt;br /&gt;
&lt;br /&gt;
== Some proprietary alternatives ==&lt;br /&gt;
&lt;br /&gt;
Generalised reduced gradient method:&lt;br /&gt;
&lt;br /&gt;
* [[CONOPT]] (plus others in certain cases)&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm MINOS] (uses GRG for linear constraints, else &#039;sparse SLC algorithm (a projected Lagrangian method, related to Robinson&#039;s method)&#039; for nonlinear constraints. Used when gradient evaluation is cheap.&lt;br /&gt;
* MS Excel [http://support.microsoft.com/kb/q214115/ Solver].&lt;br /&gt;
* GRG2&lt;br /&gt;
* LSGRG2&lt;br /&gt;
* [http://www.pinterconsulting.com/ LGO] &#039;Lipschitz Global Optimizer&#039;&lt;br /&gt;
&lt;br /&gt;
Sequential quadratic programming:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_products_snopt_desc.htm SNOPT] (sparse) Used when gradient evaluation is expensive. &#039;SNOPT employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. An augmented Lagrangian merit function promotes convergence from an arbitrary point.&#039;&lt;br /&gt;
* [http://www.uni-bayreuth.de/departments/math/~kschittkowski/nlpqlp22.htm NLPQLP]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm NPSOL]&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_lssol105description.htm LSSOL] (dense, &#039;two-phase (primal) quadratic programming&#039;)&lt;br /&gt;
* [http://www.princeton.edu/~rvdb/ LOQO] (free 30-day trial) &#039;LOQO is based on an infeasible, primal-dual, interior-point method applied to a sequence of quadratic approximations to the given problem&#039;&lt;br /&gt;
* [http://www.mcs.anl.gov/~leyffer/solvers.html FilterSQP]&lt;br /&gt;
&lt;br /&gt;
Active set method:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sbsi-sol-optimize.com/asp/sol_product_qpopt.htm QPOPT] (dense)&lt;br /&gt;
&lt;br /&gt;
Other methods:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ziena.com/knitro.htm KNITRO] (three methods: interior point direct, interior point conjugate gradient, &#039;active set&#039;)&lt;br /&gt;
* [http://www.gams.com/dd/docs/solvers/pathnlp.pdf PATHNLP]. &#039;PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems&#039;. Supposedly good for convex problems.&lt;br /&gt;
* [http://www.mosek.com/products.html MOSEK] (limited version available for download, or free student license) Interior point method plus simplex method.&lt;br /&gt;
* [http://www2.am.uni-erlangen.de/~kocvara/pennon/ PENNON] &#039;penalty method&#039;, &#039;PBM method of Ben-Tal and Zibulevsky&#039;&lt;br /&gt;
&lt;br /&gt;
Global optimisation&lt;br /&gt;
&lt;br /&gt;
* [http://www.andrew.cmu.edu/user/ns1b/baron/baron.html BARON]&lt;br /&gt;
* [http://www.ganso.com.au/index.php GANSO]&lt;br /&gt;
&lt;br /&gt;
Methods not yet checked:&lt;br /&gt;
&lt;br /&gt;
* IMSL and NAG software libraries&lt;br /&gt;
&#039;&#039;More to come&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mixed integer/nonlinear programs:&lt;br /&gt;
&lt;br /&gt;
* [http://www.gams.com/solvers/solvers.htm#DICOPT DICOPT]: MINLP&lt;br /&gt;
&lt;br /&gt;
See also [[Survey of sparse matrix software]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Miscellany]]&lt;/div&gt;</summary>
		<author><name>Dimitris</name></author>
	</entry>
</feed>