Main Content

Problem-Based Optimization Setup

Create optimization variables, create problem with objective and constraints, call solve

Global Optimization Toolbox has two approaches for optimization: problem-based and solver-based. See Decide Between Problem-Based and Solver-Based Approach. In problem-based optimization, you create symbolic-style optimization variables. Then you create expressions in these variables that represent the objective and constraints. Finally, solve the problem using solve. For details, see Problem-Based Optimization Workflow.

Note: If you have a nonlinear function that is not composed of polynomials, rational expressions, and elementary functions such as exp, then convert the function to an optimization expression by using fcn2optimexpr. See Convert Nonlinear Function to Optimization Expression and Supported Operations for Optimization Variables and Expressions.

For a basic example, see Compare Several Global Solvers, Problem-Based.


expand all

optimproblemCreate optimization problem
optimvarCreate optimization variables
showDisplay information about optimization object
showboundsDisplay variable bounds
writeSave optimization object description
writeboundsSave description of variable bounds
fcn2optimexprConvert function to optimization expression
optimconstrCreate empty optimization constraint array
optimeqCreate empty optimization equality array
optimineqCreate empty optimization inequality array
optimexprCreate empty optimization expression array
showDisplay information about optimization object
writeSave optimization object description
evaluateEvaluate optimization expression
findindexFind numeric index equivalents of named index variables
infeasibilityConstraint violation at a point
prob2structConvert optimization problem or equation problem to solver form
showDisplay information about optimization object
solveSolve optimization problem or equation problem
varindexMap problem variables to solver-based variable index
writeSave optimization object description


OptimizationConstraintOptimization constraints
OptimizationEqualityEqualities and equality constraints
OptimizationExpressionArithmetic or functional expression in terms of optimization variables
OptimizationInequalityInequality constraints
OptimizationProblemOptimization problem
OptimizationVariableVariable for optimization


Problem-Based Steps

Problem-Based Optimization Workflow

Learn the problem-based steps for solving optimization problems.

Optimization Expressions

Define expressions for both the objective and constraints.

Pass Extra Parameters in Problem-Based Approach

Pass extra parameters, data, or fixed variables in the problem-based approach.

Named Index for Optimization Variables

Create and work with named indices for variables.

Review or Modify Optimization Problems

Review or modify problem elements such as variables and constraints.

Examine Optimization Solution

Evaluate the solution and its quality.

Steps for Global Solvers

Decide Between Problem-Based and Solver-Based Approach

Explore considerations for problem-based and solver-based optimization with Global Optimization Toolbox solvers.

Global Optimization Toolbox Default Solvers and Problem Types

Identify the types of problems you can solve in the problem-based approach and their associated default solvers.

Initial Points for Global Optimization Toolbox Solvers

Specify initial points for Global Optimization Toolbox solvers in the problem-based approach.

Integer Constraints in Nonlinear Problem-Based Optimization

Learn how the problem-based optimization functions prob2struct and solve handle integer constraints.

Set Options

Set Options

Set optimization options

Set Options in Problem-Based Approach Using varindex

To set options in some contexts, map problem-based variables to solver-based using varindex.

Pattern Search Options

Explore the options for pattern search.

Genetic Algorithm Options

Explore the options for the genetic algorithm.

Particle Swarm Options

Explore the options for particle swarm.

Surrogate Optimization Options

Explore the options for surrogate optimization, including algorithm control, stopping criteria, command-line display, and output and plot functions.

Simulated Annealing Options

Explore the options for simulated annealing.

Tips for Problem-Based Optimization

Create Efficient Optimization Problems

Obtain a faster or more accurate solution when the problem has integer constraints, and avoid loops when creating a problem.

Separate Optimization Model from Data

Create reusable, scalable problems by separating the model from the data.

Variables with Duplicate Names Disallowed

Learn how to solve a problem that has two optimization variables with the same name.

Create Initial Point for Optimization with Named Index Variables

Create initial points for solve when the problem has named index variables by using the findindex function.

Expression Contains Inf or NaN

Optimization expressions containing Inf or NaN cannot be displayed, and can cause unexpected results.

Objective and Constraints Having a Common Function in Serial or Parallel, Problem-Based

Save time when the objective and nonlinear constraint functions share common computations in the problem-based approach.

Obtain Generated Function Details

Find the values of extra parameters in nonlinear functions created by prob2struct.

Output Function for Problem-Based Optimization

Use an output function in the problem-based approach to record iteration history and to make a custom plot.

Parallel Computing

How Solvers Compute in Parallel

Learn how solvers distribute work for parallel computing.

How to Use Parallel Processing in Global Optimization Toolbox

Direct a solver or hybrid function to use multiple processes.

Minimizing an Expensive Optimization Problem Using Parallel Computing Toolbox™

Example showing the effectiveness of parallel computing in two solvers: fmincon and ga.

Improving Performance with Parallel Computing

Investigate factors for speeding optimizations.

Problem-Based Algorithms

Problem-Based Optimization Algorithms

Learn how the optimization functions and objects solve optimization problems.

Supported Operations for Optimization Variables and Expressions

Explore the supported mathematical and indexing operations for optimization variables and expressions.