Now includes Mixed Integer Programming tools!  More robust solutions.

Global Optimization 10 for Mathematica is a toolkit for the Mathematica programming language.  It solves constrained or unconstrained nonlinear optimization problems.  On the market for 16 years, it has been continuously improved for speed, accuracy, and robustness.  On most problems, it is faster than NMinimize.  In particular it is more reliable.  NMinimize, Knitro, and Math Optimizer (based on our testing) often fail to solve problems, and may return infeasible solutions.  Global Optimization provides superior performance on time-series model fitting, fitting data to complex models including DEQ models, solving finance problems, and solving engineering problems, among others.  Version 10 introduces logistic regression, stepwise regression, and multi-model regression as well as performance improvements and compatibility with Mathematica 10.

Global Optimization 10 has the following advantages:

Robustness to Complex Values

Mathematica built-in functions have difficulty with many common models.  For example,

Obj = Sqrt[x]

has an obvious minimum at x = 0, but FindMinimum and NMinimize can not solve it because for x<0 Obj is Complex.  Global Optimization can handle Complex regions of search space, a unique capability.

Robustness to Wavy Functions

Global Optimization is particularly useful when a function is wavy or has multiple solutions.  For example, the simple function:

Obj = Abs[2(x-24)+(x-24)*Sin[x-24]]

has an obvious solution at x = 24, but NMinimize has a great deal of trouble solving it, getting stuck in local minima.  Global Optimization 9 solves this function easily.

Solves Discontinuous Functions

Some objective functions are not defined over certain regions.  This can cause failure for most algorithms which use explicit derivatives.  Global Optimization 9 can solve functions which are discontinuous (have jumps in value), have undefined regions, or have regions where values are Complex.  Because of this, the objective function can be a black-box model, including logical If statements, simulations, and even look up tables.

Variable Bounds are Not Needed

Many algorithms use interior point methods, where the user needs to input hard boundaries for variables.  But the user rarely knows such bounds.  If hard bounds are known, they can be input as constraints, but otherwise the user-input bounds are just suggestions for getting started and are not rigidly obeyed by Global Optimization 9.

Can Solve Large Problems

Global Optimization 9 can solve problems with thousands of variables.  For many such problems it is quite fast.

Finds Multiple Solutions if They Exist

Nonlinear models with constraints can have multiple equivalent solutions.  This can be important information.  Global Optimization 8 is set up to automatically utilize multiple starting points to help find these solutions.  To speed up finding multiple solutions, the parallel computing capability of Mathematica can be tapped.

Handles Binary and Integer Variables

Version 9 allows one to mix Real with Integer and Binary variables.

Pricing

Package is \$395USD (\$50 upgrade for past customers) and is available for all platforms supported by Mathematica.  This makes it the cheapest tool having such robust capabilities.  Free usability/bug fix technical support.  PO/ credit cards accepted.  Free trial version available.