# Global Optimization Toolbox

## Solve multiple maxima, multiple minima, and nonsmooth optimization problems

Have questions? Contact sales.

Have questions? Contact sales.

Global Optimization Toolbox provides functions that search for global solutions to problems that contain multiple maxima or minima. Toolbox solvers include surrogate, pattern search, genetic algorithm, particle swarm, simulated annealing, multistart, and global search. You can use these solvers for optimization problems where the objective or constraint function is continuous, discontinuous, stochastic, does not possess derivatives, or includes simulations or black-box functions. For problems with multiple objectives, you can identify a Pareto front using genetic algorithm or pattern search solvers.

You can improve solver effectiveness by adjusting options and, for applicable solvers, customizing creation, update, and search functions. You can use custom data types with the genetic algorithm and simulated annealing solvers to represent problems not easily expressed with standard data types. The hybrid function option lets you improve a solution by applying a second solver after the first.

Transform a problem description into a mathematical form so that you can solve it with optimization techniques. Choose the problem-based approach to write objectives and constraints with expressions of optimization variables. Then apply an automatically selected solver. Alternatively, choose the solver-based approach to define objectives and constraints using functions and coefficient matrices.

Use the Optimize Live Editor task with the problem-based or solver-based approach to help choose a solver suitable for the type of problem.

Set the stopping criteria applicable to the selected solver. Set tolerances for optimality and constraints. Accelerate with parallel computing.

Use plotting functions to get live feedback about optimization progress. Write your own or use those provided. Use output functions to create your own stopping criteria, write results to files, or write your own apps to run the solvers.

Use GlobalSearch to generate multiple starting points and filter them before starting the nonlinear solver, often resulting in high-quality solutions. MultiStart lets you choose local solvers and a variety of ways to create starting points.

Specify the number of trial points and tune the search.

Specify the nonlinear solver. Choose a method to generate starting points or use a user-defined set. Accelerate with parallel computing. |

Apply to problems with bound, nonlinear, or integer constraints. The objective function does not need to be differentiable or continuous.

Provide a set of initial points and optional objective values for constructing the initial surrogate. Set the number of points to use for the surrogate and a minimal sample distance. Accelerate with parallel computing.

Apply to problems that are unconstrained or have bound, linear, or nonlinear constraints. The objective and constraint functions do not need to be differentiable or continuous. |

Choose among algorithm options to get the most efficient solution. Select plot functions to monitor the optimization. Accelerate with parallel computing.

Apply to problems that are unconstrained or have bound, linear, nonlinear, or integer constraints. The objective and constraint functions do not need to be differentiable or continuous.

Choose among options for creation, fitness scaling, selection, crossover, and mutation. Specify population size, number of elite children, and crossover fraction. Accelerate with parallel computing.

Provide your own functions for creation, selection, and mutation. Use custom data types to more easily express your problem. Apply a second optimizer to refine solutions.

Apply to unconstrained problems or problems with bound constraints. The objective function does not need to be differentiable or continuous.

Tune velocity computation through setting of inertia and self- and social adjustment weights. Set the neighborhood size. Accelerate with parallel computing.

Provide your own function for creating the initial swarm. Apply a second optimizer to refine solutions. |

Apply to unconstrained problems or problems with bound constraints. The objective function does not need to be differentiable or continuous

Choose among options for adaptive simulated annealing, Boltzmann annealing, or fast annealing algorithms. |

Create functions to define the annealing process, acceptance criteria, and temperature schedule. Use custom data types to more easily express your problem. Apply a second optimizer to refine solutions.

Use the multiobjective pattern search algorithm to generate a Pareto front in fewer function evaluations than with the multiobjective genetic algorithm. The genetic algorithm may generate more widely spaced points.

Provide a set of initial points. Specify the desired Pareto set size, minimum polling fraction, and volume change tolerance. Automatically plot 2D and 3D Pareto fronts. Accelerate with parallel computing. |

Specify the fraction of individuals to keep on the top-ranked Pareto front. Automatically plot 2D Pareto fronts. Accelerate with parallel computing. |