Problem-Based Optimization Setup
In problem-based optimization you create optimization variables,
expressions in these variables that represent the objective and constraints
or that represent equations, and solve the problem using solve
. For the problem-based steps to take for optimization
problems, see Problem-Based Optimization Workflow. For
equation-solving, see Problem-Based Workflow for Solving Equations.
Before you begin to solve an optimization problem, you must choose the appropriate approach: problem-based or solver-based. For details, see First Choose Problem-Based or Solver-Based Approach.
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 nonlinear optimization example, see Solve a Constrained Nonlinear Problem, Problem-Based. For a basic mixed-integer linear programming example, see Mixed-Integer Linear Programming Basics: Problem-Based. For a basic equation-solving example, see Solve Nonlinear System of Equations, Problem-Based. For an example using the Optimize Live Editor task, see Get Started with Problem-Based Optimize Live Editor Task.
Functions
Objects
EquationProblem | System of nonlinear equations |
OptimizationConstraint | Optimization constraints |
OptimizationEquality | Equalities and equality constraints |
OptimizationExpression | Arithmetic or functional expression in terms of optimization variables |
OptimizationInequality | Inequality constraints |
OptimizationProblem | Optimization problem |
OptimizationValues | Values for optimization problems |
OptimizationVariable | Variable for optimization |
Live Editor Tasks
Optimize | Optimize or solve equations in the Live Editor |
Topics
Problem-Based Steps
- Problem-Based Optimization Workflow
Learn the problem-based steps for solving optimization problems. - Problem-Based Workflow for Solving Equations
Learn the problem-based steps for solving equations. - 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. - Write Objective Function for Problem-Based Least Squares
Syntax rules for problem-based least squares. - Write Constraints for Problem-Based Cone Programming
Requirements forsolve
to useconeprog
for problem solution. - 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.
Set Options
- Set Options
Set optimization options - 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.
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. - Initialize Optimization Expressions
How initialize optimization expressions in functions, and how to recognize that you need to initialize them. - Use Problem-Based Optimize Live Editor Task Effectively
How to use and understand the problem-based Optimize Live Editor task. - 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 forsolve
when the problem has named index variables by using thefindindex
function. - Expression Contains Inf or NaN
Optimization expressions containingInf
orNaN
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. - Effect of Automatic Differentiation in Problem-Based Optimization
Automatic differentiation lowers the number of function evaluations for solving a problem. - Supply Derivatives in Problem-Based Workflow
How to include derivative information in problem-based optimization when automatic derivatives do not apply. - Obtain Generated Function Details
Find the values of extra parameters in nonlinear functions created byprob2struct
. - Integer Constraints in Nonlinear Problem-Based Optimization
Learn how the problem-based optimization functionsprob2struct
andsolve
handle integer constraints. - 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
- What Is Parallel Computing in Optimization Toolbox?
Use multiple processors for optimization. - Using Parallel Computing in Optimization Toolbox
Perform gradient estimation in parallel. - Minimizing an Expensive Optimization Problem Using Parallel Computing Toolbox
Example showing the effectiveness of parallel computing in two solvers:fmincon
andga
. - 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. - Automatic Differentiation Background
Learn how automatic differentiation works. - Supported Operations for Optimization Variables and Expressions
Explore the supported mathematical and indexing operations for optimization variables and expressions.