First Choose Problem-Based or Solver-Based Approach - MATLAB & Simulink (original) (raw)

Optimization Toolbox™ has two approaches to solving optimization problems or equations: problem-based and solver-based. Before you start to solve a problem, you must first choose the appropriate approach.

This table summarizes the main differences between the two approaches.

Approaches Characteristics
Problem-Based Optimization Setup Easier to create and debug
Provides a visual interface; see Optimize Live Editor task
Represents the objective and constraints symbolically
Requires translation from problem form to matrix form, potentially resulting in a longer solution time
Automatically calculates and uses gradients of objective and nonlinear constraint functions in many cases, but does not calculate Hessians; see Automatic Differentiation
See the steps in Problem-Based Optimization Workflow or Problem-Based Workflow for Solving Equations
Basic linear example: Mixed-Integer Linear Programming Basics: Problem-Based or the video Solve a Mixed-Integer Linear Programming Problem using Optimization ModelingBasic nonlinear example: Solve a Constrained Nonlinear Problem, Problem-BasedBasic equation-solving example: Solve Nonlinear System of Equations, Problem-Based
Solver-Based Optimization Problem Setup Harder to create and debug
Provides a visual interface; see Optimize Live Editor task
Represents the objective and constraints as functions or matrices
Does not require translation from problem form to matrix form, potentially resulting in a shorter solution time
Allows direct inclusion of gradient or Hessian, but does not calculate them automatically
Allows use of a Hessian multiply function or Jacobian multiply function to save memory in large problemsSee Quadratic Minimization with Dense, Structured Hessian or Jacobian Multiply Function with Linear Least Squares
See the steps in Solver-Based Optimization Problem Setup
Basic linear example: Mixed-Integer Linear Programming Basics: Solver-BasedBasic nonlinear example:Constrained Nonlinear Problem Using Optimize Live Editor Task or SolverBasic equation-solving examples: Examples