Global Optimization Toolbox

 

Global Optimization Toolbox

Solve multiple maxima, multiple minima, and nonsmooth optimization problems

Get Started:

Define and Solve Optimization Problems

Define your optimization problem, apply a solver, and set options for algorithm behavior, tolerances, stopping criteria, visualizations, and customizations.

Model and Choose Optimization Approaches

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.

Set Common Options

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

Speed-ups from parallel computing

Speed-ups from parallel computing.

Assess Intermediate Results

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.

Custom plot function for pattern search

Custom plot function for pattern search.

GlobalSearch and MultiStart

Apply gradient-based solvers to find local minima from multiple starting points in search of global minima. Other local or global minima are returned. Solve unconstrained and constrained problems that are smooth.

Compare 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.

GlobalSearch and MultiStart results

GlobalSearch and MultiStart results.

Select GlobalSearch Options

Specify the number of trial points and tune the search. 

Select MultiStart Options

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

Surrogate Optimization

Search for global minima on problems with time-consuming objective functions. The solver builds an approximation to the function that can be quickly evaluated and minimized.

Select Options

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.

Built-in plot of sample, adaptive, and best points

Built-in plot of sample, adaptive, and best points.

Pattern Search

Start from the current point and add a set of vectors to get new trial points.  Evaluate the objective function on the trial points and use that information to update the current point.  Repeat until the current point is an optimum.

Specify the Problem

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.

Pattern search result with stochastic objective function.

Pattern search result with stochastic objective function.

Select Options

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

Built-in plots for function value and evaluations

Built-in plots for function value and evaluations.

Genetic Algorithm

Search for global minima by mimicking the principles of biological evolution, repeatedly modifying a population of individual points using rules modeled on gene combinations in biological reproduction.

Specify the Problem

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.

Select Options

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.

Function with several local minima

Function with several local minima.

Customize

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.

Traveling Salesman Problem solution

Solution to the traveling salesman problem.

Particle Swarm

Search for global minima using an algorithm inspired by the behavior of insects swarming. Each particle moves with a velocity and direction influenced by the best location it has found so far and the best location the swarm has found.

Specify the Problem

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

Showing five-move path per particle

Showing five-move path per particle.

Select Options

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

Optimize using a particle swarm

Built-in plot functions.

Customize

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

Particle swarm options

Particle swarm on a stochastic function.

Simulated Annealing

Search for global minima with a probabilistic search algorithm that mimics the physical process of annealing, in which a material is heated and then the temperature is slowly lowered to decrease defects, thus minimizing the system energy.

Specify the Problem

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

Function with many local minima

Function with many local minima.

Select Options

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

Simulated annealing options

Simulated annealing visualization.

Customize

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.

Multiprocessor schedule

Multiprocessor schedule.

Multiobjective Optimization

Identify the Pareto front—the set of nondominated solutions—for problems with multiple objectives and bound, linear, or nonlinear constraints. Use either the pattern search or genetic algorithm solvers.

Compare Solvers

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. 

Select Pattern Search Options

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.

Pareto surface of the three objectives

Pareto surface of the three objectives.

Set Genetic Algorithm Options

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

Pareto front of two objectives

Pareto front of two objectives.