solving optimization problems with matlab · perform exact computations using familiar matlab...
Post on 04-Apr-2020
27 Views
Preview:
TRANSCRIPT
1© 2018 The MathWorks, Inc.
Solving Optimization Problems with MATLAB
2
Introduction
Least-squares minimization
Nonlinear optimization
Mixed-integer programming
Global optimization
Topics
3
Optimization Problems
Minimize Risk
Maximize Profits
Maximize Fuel Efficiency
4
Design Process
Initial
Design
Variables
System
Modify
Design
Variables
Optimal
DesignObjectives
met?
No
Yes
5
Manually (trial-and-error or iteratively)
Why use Optimization?
Initial
Guess
6
Automatically (using optimization techniques)
Initial
Guess
Why use Optimization?
7
Why use Optimization?
Finding better (optimal) designs and decisions
Faster design and decision evaluations
Automate routine decisions
Useful for trade-off analysis
Non-intuitive designs may be found
Antenna Design Using Genetic Algorithmhttp://ic.arc.nasa.gov/projects/esg/research/antenna.htm
8
Introduction
Least-squares minimization
Nonlinear optimization
Mixed-integer programming
Global optimization
Topics
9
Curve Fitting Demo
Given some data:
Fit a curve of the form:
teccty 21
)(
t = [0 .3 .8 1.1 1.6 2.3];
y = [.82 .72 .63 .60 .55 .50];
10
How to solve?
Ecc
cey
eccty
t
t
2
1
21
1
)(
As a linear system of equations:
2
2min yEc
Ecy
c
Can’t solve this exactly
(6 eqns, 2 unknowns)
An optimization problem!
2
1
3.2
6.1
1.1
8.0
3.0
0
1
1
1
1
1
1
50.0
55.0
60.0
63.0
72.0
82.0
c
c
e
e
e
e
e
e
11
Introduction
Least-squares minimization
Nonlinear optimization
Mixed-integer programming
Global optimization
Topics
12
Nonlinear Optimization
min𝑥
log 1 + 𝑥1 −4
3
2
+ 3 𝑥1 + 𝑥2 − 𝑥13 2
13
Nonlinear Optimization - Modeling Gantry Crane
Determine acceleration profile that
minimizes payload swing
s25s4
s20s1
s20s1
:sConstraint
2
1
21
•
•
•
•
f
p
p
ppf
t
t
t
ttt
14
Symbolic Math Toolbox
Perform exact computations using familiar
MATLAB syntax in MATLAB
– Integration
– Differentiation
– Equation solving
– Transformations
– Simplification
– Unit conversion
– Variable precision arithmetic
Results in typeset math in Live Editor
Integrates with MATLAB, Simulink, Simscape
15
Introduction
Least-squares minimization
Nonlinear optimization
Mixed-integer programming
Global optimization
Topics
16
Mixed-Integer Programming
Many things exist in discrete amounts:
– Shares of stock
– Number of cars a factory produces
– Number of cows on a farm
Often have binary decisions:
– On/off
– Buy/don’t buy
Mixed-integer linear programming:
– Solve optimization problem while enforcing that certain variables need to be integer
17
Continuous and integer variables
𝑥1 ∈ 0, 100 𝑥2 ∈ 1,2,3,4,5
Linear objective and constraints
min𝑥
−𝑥1 − 2𝑥2
ቊ𝑥1 + 4𝑥2 ≤ 20𝑥1 + 𝑥2 = 10
such that
Mixed-Integer Linear Programming
18
Optimize Gift Card Spending
Problem:
Given gift cards to different stores and a shopping list of desired purchases, decide how to
spend the gift cards to use as much of the gift card money as possible.
Constraints:
You cannot overspend the gift card.
You can purchase one of any item, and must purchase one of a specific item.
19
Traveling Salesman Problem
Problem
How to find the shortest path through a series of points?
Solution
Calculate distances between all combinations of points
Solve an optimization problem where variables correspond to trips between two points
1
11
0
1
1
0
0
00
20
Introduction
Least-squares minimization
Nonlinear optimization
Mixed-integer programming
Global optimization
Topics
21
Example Global Optimization Problems
Why does fmincon have a hard time finding the
function minimum?
0 5 10
-10
-5
0
5
10
x
Starting at 10
0 5 10
-10
-5
0
5
10
x
Starting at 8
0 5 10
-10
-5
0
5
10
x
Starting at 6
x s
in(x
) +
x c
os(2
x)
0 5 10
-10
-5
0
5
10
x
Starting at 3
0 5 10
-10
-5
0
5
10
x
Starting at 1
0 5 10
-10
-5
0
5
10
x
Starting at 0
x s
in(x
) +
x c
os(2
x)
22
Initial
Guess
Example Global Optimization Problems
Why didn’t fminunc find the maximum efficiency?
23
Example Global Optimization Problems
Why didn’t nonlinear regression find a good fit?
0 20 40 60 80 100 1200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
t
c
c=b1e-b
4t+b
2e-b
5t+b
3e-b
6t
24
Global Optimization
Goal:
Want to find the lowest/largest value of
the nonlinear function that has many local
minima/maxima
Problem:
Traditional solvers often return one of the
local minima (not the global)
Solution:
A solver that locates globally optimal
solutions
Global Minimum at [0 0]
Rastrigin’s Function
25
Global Optimization Solvers Covered Today
Multi Start and Global Search
Pattern Search
Genetic Algorithm
Surrogate Optimization
Particle Swarm
Simulated Annealing
26
MultiStart Demo – Nonlinear Regression
lsqcurvefit solution MultiStart solution
27
MULTISTART
28
What is MultiStart?
Run a local solver from each set
of start points
Option to filter starting points
based on feasibility
Supports parallel computing
29
MultiStart Demo – Peaks Function
30
GLOBAL SEARCH
31
What is GlobalSearch?
Multistart heuristic algorithm
Calls fmincon from multiple
start points to try and find a
global minimum
Filters/removes non-promising
start points
32
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview Schematic Problem
Peaks function
Three minima
Green, z = -0.065
Red, z= -3.05
Blue, z = -6.55
x
y
33
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 0Run from specified x0
x
y
34
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 1
3
6
0
00
4
0
-2
x
y
35
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 1
3
6
0
00
4
0
-2
x
y
36
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 1
x
y
37
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 2
x
y
38
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 2
x
y
39
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 2
x
y
40
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 2
x
y
41
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 2
6
Current penalty
threshold value : 4
x
y
42
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 2
x
y
43
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 2
Current penalty
threshold value : 4
-3
x
y
44
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
GlobalSearch Overview – Stage 2Expand basin of attraction if minimum already found
Current penalty threshold value : 2
-0.1
x
y Basins can overlap
45
GlobalSearch Demo – Peaks Function
46
PATTERN SEARCH
(DIRECT SEARCH)
47
What is Pattern Search?
An approach that uses a pattern
of search directions around the
existing points
Expands/contracts around the
current point when a solution is
not found
Does not rely on gradients: works
on smooth and nonsmooth
problems
48
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Pattern Search Overview – Iteration 1Run from specified x0
x
y
3
49
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Pattern Search Overview – Iteration 1Apply pattern vector, poll new points for improvement
x
y
3
Mesh size = 1
Pattern vectors = [1,0], [0,1], [-1,0], [0,-1]
0_*_ xvectorpatternsizemeshPnew
0]0,1[*1 x1.6
0.4
4.6
2.8
First poll successful
Complete Poll (not default)
50
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Pattern Search Overview – Iteration 2
x
y
3
Mesh size = 2
Pattern vectors = [1,0], [0,1], [-1,0], [0,-1]
1.6
0.4
4.6
2.8
-4
0.3-2.8
Complete Poll
51
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Pattern Search Overview – Iteration 3
x
y
3
Mesh size = 4
Pattern vectors = [1,0], [0,1], [-1,0], [0,-1]
1.6
0.4
4.6
2.8
-4
0.3-2.8
52
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Pattern Search Overview – Iteration 4
x
y
3
Mesh size = 4*0.5 = 2
Pattern vectors = [1,0], [0,1], [-1,0], [0,-1]
1.6
0.4
4.6
2.8
-4
0.3-2.8
53
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Pattern Search Overview – Iteration NContinue expansion/contraction until convergence…
x
y
31.6
0.4
4.6
2.8
-4
0.3-2.8
-6.5
54
Pattern Search – Peaks Function
55
Pattern Search Climbs Mount Washington
56
GENETIC ALGORITHM
57
What is a Genetic Algorithm?
Uses concepts from evolutionary
biology
Start with an initial generation of
candidate solutions that are tested
against the objective function
Subsequent generations evolve
from the 1st through selection,
crossover and mutation
58
How Evolution Works – Binary Case
Selection
– Retain the best performing bit strings from one generation to the next. Favor these for
reproduction
– parent1 = [ 1 0 1 0 0 1 1 0 0 0 ]
– parent2 = [ 1 0 0 1 0 0 1 0 1 0 ]
Crossover
– parent1 = [ 1 0 1 0 0 1 1 0 0 0 ]
– parent2 = [ 1 0 0 1 0 0 1 0 1 0 ]
– child = [ 1 0 0 0 0 1 1 0 1 0 ]
Mutation
– parent = [ 1 0 1 0 0 1 1 0 0 0 ]
– child = [ 0 1 0 1 0 1 0 0 0 1 ]
59
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Genetic Algorithm – Iteration 1Evaluate initial population
x
y
60
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Genetic Algorithm – Iteration 1Select a few good solutions for reproduction
x
y
61
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Genetic Algorithm – Iteration 2Generate new population and evaluate
x
y
62
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Genetic Algorithm – Iteration 2
x
y
63
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Genetic Algorithm – Iteration 3
x
y
64
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Genetic Algorithm – Iteration 3
x
y
65
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Genetic Algorithm – Iteration NContinue process until stopping criteria are met
x
y
Solution found
66
Genetic Algorithm – Peaks Function
67
Genetic Algorithm – Integer Constraints
Mixed Integer Optimization
s.t. some x are integers
Examples
Only certain sizes of components
available
Can only purchase whole shares of stock
)(min xfx
68
Application: Circuit Component Selection
6 components to size
Only certain sizes available
Objective:
– Match Voltage vs. Temperature
curve
Thermistor Circuit
300 Ω
330 Ω
360 Ω
…
180k Ω
200k Ω
220k Ω
Thermistors:
Resistance varies
nonlinearly with
temperature
?
𝑅𝑇𝐻 =𝑅𝑇𝐻,𝑁𝑜𝑚
𝑒𝛽𝑇−𝑇𝑁𝑜𝑚𝑇∗𝑇𝑁𝑜𝑚
69
SURROGATE OPTIMIZATION
70
What is Surrogate Optimization?
An approach that creates and
optimizes a surrogate of the
function
Searches randomly to explore
and adaptively to refine
Does not rely on gradients: works
on smooth and nonsmooth
problems
71
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Surrogate Optimization OverviewConstruction phase – evaluate at random points to construct surrogate
x
y
Random points
Incumbent
72
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Surrogate Optimization OverviewSearch phase – minimize merit function of surrogate and point spread
x
y
Random points
Adaptive points
Incumbent
73
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Surrogate Optimization OverviewReset – Repeat construction and search phases
x
y
Random points
Adaptive points
Incumbent
74
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Surrogate Optimization OverviewContinue process until stopping criteria are met
x
y
Random points
Adaptive points
Solution found
Incumbent
75
Surrogateopt Demo – Peaks Function
76
PARTICLE SWARM
77
What is Particle Swarm Optimization?
A collection of particles move
throughout the region
Particles have velocity and are
affected by the other particles in
the swarm
Does not rely on gradients: works
on smooth and nonsmooth
problems
78
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Particle Swarm Overview – Iteration 1Initialize particle locations and velocities, evaluate all locations
x
y
79
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Particle Swarm Overview – Iteration NUpdate velocities for each particle
x
yPrevious
Velocity
Best Location
for this Particle
Best Location for
Neighbor Particles
80
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Particle Swarm Overview – Iteration NUpdate velocities for each particle
x
y
New
Velocity
81
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Particle Swarm Overview – Iteration NMove particles based on new velocities
x
y
82
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Particle Swarm Overview – Iteration NContinue swarming until convergence
x
y
83
Particle Swarm – Peaks Function
84
SIMULATED ANNEALING
85
What is Simulated Annealing?
A probabilistic metaheuristic
approach based upon the physical
process of annealing in
metallurgy.
Controlled cooling of a metal
allows atoms to realign from a
random higher energy state to an
ordered crystalline (globally) lower
energy state
86
Simulated Annealing Overview – Iteration 1Run from specified x0
x
y
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
0.9
87
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration 1
3
x
y 0.9
Possible New Points:
Standard Normal N(0,1) * Temperature
Temperature = 1
88
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration 1
3
x
y 0.9
Temperature = 1
11.01
1/)9.03(
Taccepte
P
89
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration 1
3
x
y 0.9
Temperature = 1
0.3
90
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration 1
3
x
y 0.9
Temperature = 1
0.3
91
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration 2
3
x
y 0.9
Temperature = 1
0.3
92
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration 2
3
x
y 0.9
Temperature = 0.75
0.3
-1.2
93
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration N-1
3
x
y 0.9
Temperature = 0.1
0.3
-1.2
-3
94
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration NReannealing
3
x
y 0.9
Temperature = 1
0.3
-1.2
-3
-2
95
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration NReannealing
3
x
y 0.9
Temperature = 1
0.3
-1.2
-3
-2
27.01
1/))3(2(
Taccepte
P
96
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration NReannealing
3
x
y 0.9
Temperature = 1
0.3
-1.2
-3
-2
97
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration N+1
3
x
y 0.9
Temperature = 0.75
0.3
-1.2
-3
-2
-3
98
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration N+1
3
x
y 0.9
Temperature = 0.75
0.3
-1.2
-3
-2
-3
99
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Simulated Annealing Overview – Iteration …
3
x
y 0.9
Temperature = 0.75
0.3
-1.2
-3
-2
-3
-6.5
100
Simulated Annealing – Peaks Function
101
Global Optimization Toolbox Solvers
GlobalSearch, MultiStart
– Well suited for smooth objective and constraints
– Relies on gradient calculations
– Return the location of local and global minima
ga, simulannealbnd, particleswarm
– Many function evaluations to sample the search space
– Work on both smooth and nonsmooth problems
patternsearch, surrogateopt
– Fewer function evaluations than ga, simulannealbnd, particlewarm
– Work on both smooth and nonsmooth problems
102
Optimization Toolbox Solvers
fmincon, fminbnd, fminunc, fgoalattain, fminimax
– Nonlinear constraints and objectives
– Gradient-based methods for smooth objectives and constraints
quadprog, linprog
– Linear constraints and quadratic or linear objective, respectively
intlinprog
– Linear constraints and objective and integer variables
lsqlin, lsqnonneg
– Constrained linear least squares
lsqnonlin, lsqcurvefit
– Nonlinear least squares
fsolve
– Nonlinear equations
103
Speeding-up with Parallel Computing
Global Optimization Toolbox– patternsearch, surrogateopt, ga,
gamultiobj, particleswarm: Points
evaluated in parallel at each iteration
– MultiStart: Start points evaluated in parallel
Optimization Toolbox
– fmincon, fminunc, fminimax,
fgoalattain, fsolve, lsqcurvefit,
lsqnonlin: Parallel evaluation of objective function
for finite differences
Parallel Computing can also be used in the
Objective Function– parfor
104
Speed up parallel applications
Take advantage of GPUs
Prototype code for your cluster
Parallel Computing Toolbox for the Desktop
Simulink, Blocksets,
and Other Toolboxes
Local
Desktop Computer
MATLAB
……
105
Scale Up to Clusters and Clouds
Cluster
Scheduler
Computer Cluster
…
…
…
…
…
…
… … …
Simulink, Blocksets,
and Other Toolboxes
Local
Desktop Computer
MATLAB
……
106
Learn More about Optimization with MATLAB
Recorded webinar: Optimization in
MATLAB: An Introduction to Quadratic
Programming
Optimization Toolbox Web demo:
Finding an Optimal Path using MATLAB
and Optimization Toolbox
MATLAB Digest: Improving
Optimization Performance with Parallel
Computing
MATLAB Digest: Using Symbolic
Gradients for Optimization
Recorded webinar: Linear and Mixed
Integer Linear Programming in MATLAB
Recorded webinar: Optimization in
MATLAB for Financial Applications
1 2 3 4 50
500
1000
1500
2000
2500
3000
Bonds
# P
urc
ha
se
d
Cash Flow Matching Example
107
Key Takeaways
Solve a wide variety of optimization problems in MATLAB
– Linear and Nonlinear
– Continuous and mixed-integer
– Smooth and Nonsmooth
Find better solutions to multiple minima and non-smooth problems using global
optimization
Use symbolic math for setting up problems and automatically calculating gradients
Using parallel computing to speed up optimization problems
108
MATLAB Answers
Blogs
Cody
File Exchange
and more…
Answers Blogs
ThingSpeak
Every month, over 2 million MATLAB & Simulink users visit MATLAB Central to get questions answered,
download code and improve programming skills.
MATLAB Central Community
MATLAB Answers: Q&A forum; most questions get
answered in only 60 minutes
File Exchange: Download code from a huge repository of
free code including tens of thousands of open source
community files
Cody: Sharpen programming skills while having fun
Blogs: Get the inside view from Engineers who build
and support MATLAB & Simulink
ThingSpeak: Explore IoT Data
And more for you to explore…
Learn ConnectContribute
109
Training: Optimization Techniques in MATLAB
After this 1-day course you will be able to:
Write objective function files and
pass extra parameters
Add different types of constraints
Select an appropriate solver and algorithm
Interpret the output from the solver and
diagnose the progress of an optimization
110© 2018 The MathWorks, Inc.
top related