MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE...

96
1 © 2012 The MathWorks, Inc. MathWorks Technology Session at GE Optimization with MATLAB Products November 8, 2012

Transcript of MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE...

Page 1: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

1 © 2012 The MathWorks, Inc.

MathWorks Technology Session at GE

Optimization with MATLAB Products

November 8, 2012

Page 2: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

2

MathWorks at a Glance

Earth’s topography

on a Miller cylindrical

projection, created

with MATLAB and

Mapping Toolbox

● Headquarters:

Natick, Massachusetts US

● Other U.S. Locations:

California, Michigan,

Texas, Washington, DC

● Europe:

France, Germany, Italy,

Netherlands, Spain, Sweden,

Switzerland, United Kingdom

● Asia-Pacific:

Australia, China, India,

Japan, Korea

● Worldwide training

and consulting

● Distributors serving more

than 20 countries

Page 3: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

3

Optimization: What is it, Why use it?

Optimization in MATLAB

Gradient-based Optimization

Global Optimization

Additional Resources

Agenda

-2

0

2

-3-2

-10

12

3

-6

-4

-2

0

2

4

6

8

x

Peaks

y

Local minima

Global

minima

Page 4: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

4

Optimization Problems

Minimize Risk

Maximize Profits

Maximize Fuel Efficiency

Page 5: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

5

Design Process

Initial

Design

Variables

System

Modify

Design

Variables

Optimal

Design Objectives

met?

No

Yes

Page 6: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

6

Why use Optimization?

Manually (trial-and-error or iteratively)

Initial

Guess

Page 7: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

7

Why use Optimization?

Automatically (using optimization techniques)

Initial

Guess

Page 8: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

8

Why use Optimization?

Finding better (optimal) designs

Faster Design Evaluations

Useful for trade-off analysis

Non-intuitive designs may be found

Antenna Design Using Genetic Algorithm http://ic.arc.nasa.gov/projects/esg/research/antenna.htm

Page 9: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

9

Demos

Constrained optimization

Least squares / curve fitting

Quadratic programming

Finding global minimum

Mixed integer optimization

MATLAB Tips, Tricks, and Best

Practices along the way

1 75 150 2250

0.05

0.1

0.15

0.2

0.25

Assets

Fra

ction o

f in

vestm

ent

225-asset problem

Standard

With group constraints

Group 1 Group 2 Group 3

Page 10: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

11

Optimization Approaches

Gradient Based Global Methods

Faster/fewer function

evaluations Larger problems (higher

dimensions) Finds local

minima/maxima

Finds global

minima/maxima (most of

the time)

Better on

non-smooth

stochastic

discontinuous

undefined gradients

Toolbox Optimization

Toolbox

Global

Optimization

Toolbox

Page 11: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

12

Optimization: What is it, Why use it?

Optimization in MATLAB

Gradient-based Optimization

Global Optimization

Additional Resources

Agenda

-2

0

2

-3-2

-10

12

3

-6

-4

-2

0

2

4

6

8

x

Peaks

y

Local minima

Global

minima

Page 12: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

13

Anatomy of an Optimization Problem

General Form for MATLAB Solvers

Objective Function

uxl

eqbxeqA

bAx

)(min xfx

Typically a linear or nonlinear function

Linear constraints

• inequalities

• equalities

• bounds

Nonlinear constraints

• inequalities

• equalities

Decision variables

0)(

0)(

xeq

c

xc

Subject to Constraints

Page 13: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

14

Constrained Optimization Demo

min𝑥

log 1 + 𝑥1 −4

3

2

+ 3 𝑥1 + 𝑥2 − 𝑥13 2

Page 14: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

15

Choosing the best solver

Doc: Optimization Toolbox > User’s Guide > Setting up an

Optimization > Choosing a Solver

Choose the algorithm based on your objective and constraint types.

Page 15: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

16

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];

0 0.5 1 1.5 2 2.50.5

0.55

0.6

0.65

0.7

0.75

0.8

0.85

0.9

t

y

Page 16: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

17

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

Page 17: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

18

Quadratic Programming

General Form Accepted by MATLAB Quadratic Solver

Objective Function

uxl

bxA

bAx

eqeq

xfHxxx

''min2

1

Quadratic function

Linear constraints

• inequalities

• equalities

• bounds

Decision variables

NOTE: In R2011a, quadprog was dramatically sped up for convex problems, particularly

significant for large ones. Uses sparse linear algebra, key for large, sparse problems.

Hessian (real, symmetric)

Subject to Constraints

Page 18: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

19

Quadratic Programming Demo

1 75 150 2250

0.05

0.1

0.15

0.2

0.25

Assets

Fra

ction o

f in

vestm

ent

225-asset problem

Standard

With group constraints

Group 1 Group 2 Group 3

Given:

Historical data and a correlation matrix for 225 assets/

Find:

The portfolio weights that minimize risk.

C

w

Cwwrisk T

2

1

Portfolio weights

Covariance matrix

Page 19: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

20

Gradient based Optimization Summary

Nonlinear minimization

– fminunc: unconstrained

– fmincon: linear and nonlinear constraints

• Supply Gradient and Hessian functions to

speed up

Constrained curve fitting with least squares solvers

– lsqlin: linear least-squares subject to linear constraints

– lsqnonlin: nonlinear least-squares with bound constraints

For linear or quadratic problems with linear constraints

– linprog: linear problems

– quadprog: quadratic problems

Page 20: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

21

Optimization: What is it, Why use it?

Optimization in MATLAB

Gradient-based Optimization

Global Optimization

Additional Resources

Agenda

-2

0

2

-3-2

-10

12

3

-6

-4

-2

0

2

4

6

8

x

Peaks

y

Local minima

Global

minima

Page 21: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

22

Why use Global Optimization?

Gradient based solvers are ineffective when the

gradient is undefined, and only converge to local

minima.

What if the problem is non-smooth, stochastic, has

multiple local minima?

Need a solver that can explore the solution space and

not fall into local minima.

*** No solver is guaranteed to find the global minimum

Page 22: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

23

Global Optimization Solvers Covered Today

Multi Start

Global Search

Simulated Annealing

Pattern Search

Genetic Algorithm

Page 23: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

24

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 0x s

in(x

) +

x c

os(2

x)

Page 24: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

25

Example Global Optimization Problems

Why didn’t fminunc find the maximum efficiency?

Revolutions Per Minute, RPM

Manifold

Pre

ssure

Ratio

Peak VE Value = 0.96144

Start

End

1000 2000 3000 4000 5000 60000

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Page 25: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

26

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

Page 26: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

27

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 Rastrigin’s Function

Page 27: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

28

MultiStart Demo – Nonlinear Regression

lsqcurvefit solution MultiStart solution

Page 28: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

29

MULTISTART

Page 29: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

30

What is MultiStart?

Run a local solver from

each set of start points

Option to filter starting

points based on feasibility

Supports parallel

computing

Page 30: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

31

MultiStart Demo – Peaks Function

Page 31: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

32

GLOBAL SEARCH

Page 32: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

33

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

Page 33: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

34

-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

Page 34: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

35

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 0 Run from specified x0

x

y

Page 35: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

36

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 1

3

6

0

0 0

4

0

-2

x

y

Page 36: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

37

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 1

3

6

0

0 0

4

0

-2

x

y

Page 37: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

38

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 1

x

y

Page 38: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

39

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 2

x

y

Page 39: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

40

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 2

x

y

Page 40: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

41

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 2

x

y

Page 41: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

42

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 2

x

y

Page 42: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

43

-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

Page 43: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

44

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 2

x

y

Page 44: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

45

-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

Page 45: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

46

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

GlobalSearch Overview – Stage 2 Expand basin of attraction if minimum already found

Current penalty threshold value : 2

-0.1

x

y Basins can overlap

Page 46: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

47

GlobalSearch Demo – Peaks Function

Page 47: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

48

SIMULATED ANNEALING

Page 48: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

49

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

Page 49: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

50

Simulated Annealing Overview – Iteration 1 Run from specified x0

x

y

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

0.9

Page 50: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

51

-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

Page 51: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

52

-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

Page 52: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

53

-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

Page 53: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

54

-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

Page 54: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

55

-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

Page 55: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

56

-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

Page 56: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

57

-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

Page 57: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

58

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Simulated Annealing Overview – Iteration N Reannealing

3

x

y 0.9

Temperature = 1

0.3

-1.2

-3

-2

Page 58: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

59

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Simulated Annealing Overview – Iteration N Reannealing

3

x

y 0.9

Temperature = 1

0.3

-1.2

-3

-2

27.01

1/))3(2(

Taccepte

P

Page 59: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

60

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Simulated Annealing Overview – Iteration N Reannealing

3

x

y 0.9

Temperature = 1

0.3

-1.2

-3

-2

Page 60: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

61

-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

Page 61: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

62

-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

Page 62: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

63

-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

Page 63: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

64

Simulated Annealing – Peaks Function

Page 64: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

65

PATTERN SEARCH

(DIRECT SEARCH)

Page 65: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

66

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

Page 66: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

67

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Pattern Search Overview – Iteration 1 Run from specified x0

x

y

3

Page 67: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

68

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Pattern Search Overview – Iteration 1 Apply 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)

Page 68: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

69

-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

Page 69: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

70

-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

Page 70: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

71

-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

Page 71: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

72

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Pattern Search Overview – Iteration N Continue expansion/contraction until convergence…

x

y

3 1.6

0.4

4.6

2.8

-4

0.3 -2.8

-6.5

Page 72: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

73

Pattern Search – Peaks Function

Page 73: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

74

GENETIC ALGORITHM

Page 74: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

75

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

Page 75: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

76

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 ]

Page 76: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

77

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 1 Evaluate initial population

x

y

Page 77: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

78

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 1 Select a few good solutions for reproduction

x

y

Page 78: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

79

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 2 Generate new population and evaluate

x

y

Page 79: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

80

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 2

x

y

Page 80: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

81

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 3

x

y

Page 81: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

82

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 3

x

y

Page 82: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

83

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Iteration N Continue process until stopping criteria are met

x

y

Solution found

Page 83: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

84

Genetic Algorithm – Peaks Function

Page 84: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

85

Global Optimization Solvers

GlobalSearch, MultiStart

– Well suited for smooth objective and constraints

– Return the location of local and global minima

ga, simulannealbnd

– Many function evaluations to sample the search space

– Work on both smooth and nonsmooth problems

patternsearch

– Fewer function evaluations than ga, simulannealbnd

– Does not rely on gradient calculation like GlobalSearch and

MultiStart

– Works on both smooth and nonsmooth problems

Page 85: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

86

Pattern Search Climbs Mount Washington

Page 86: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

87

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

Page 87: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

88

Simulated Annealing – Eight Queens

Page 88: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

89

Optimization and Parallel Computing

Many optimization algorithms involve some sort of parallelism – Gradient Estimation (fmincon)

– Evaluating each member of a Population (ga)

– Running a local solver from several start points (MultiStart)

Can use Parallel Computing Toolbox to distribute parallel tasks to

different workers

Demo: Parallel Computing with MultiStart

Page 89: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

90

Speeding up with Parallel Computing

Global Optimization Algorithms that support Parallel Computing: – ga: Members of population evaluated in parallel at each iteration

– patternsearch: Poll points evaluated in parallel at each iteration

– MultiStart: Start points evaluated in parallel

Optimization Algorithms that support Parallel Computing: – fmincon: parallel evaluation of objective function for finite differences

– fminimax, fgoalattain: same as fmincon

Parallel Computing can also be used in the Objective Function – parfor

Page 90: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

91

Parallel Computing Considerations

Need to consider structure of optimization problem when choosing

number of workers

Example – ga with default population size of 20

– Large speedup (~2x) from 1-2, 2-4 workers

– Smaller speedup (~1.25x) from 8-16 workers

1 worker 2 workers 4 workers 8 workers

Objective

Function

Evaluations

(1 generation)

Page 91: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

92

Parallel computing required products

To use parallel computing To also use a cluster

Parallel Computing Toolbox MATLAB Distributed Computing Server

Page 92: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

93

Scale Up to Clusters, Grids and Clouds

Desktop Computer

Parallel Computing Toolbox

Computer Cluster

MATLAB Distributed Computing Server

Scheduler

Page 93: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

94

Summary of Global Optimization

Solvers designed to explore the solution space and find

global solutions

Problems can be stochastic, or nonsmooth

Solvers in Global Optimization Toolbox

– MultiStart

– GlobalSearch

– simulannealbnd

– patternsearch

– ga

Parallel Computing with ga, patternsearch, MultiStart

Page 94: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

95

Optimization: What is it, Why use it?

Optimization in MATLAB

Gradient-based Optimization

Global Optimization

Additional Resources

Agenda

-2

0

2

-3-2

-10

12

3

-6

-4

-2

0

2

4

6

8

x

Peaks

y

Local minima

Global

minima

Page 95: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

96

Learn More about Optimization with MATLAB

MATLAB Digest: Using Symbolic

Gradients for Optimization

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

Page 96: MathWorks Technology Session at GE Optimization with ... · MathWorks Technology Session at GE Optimization with MATLAB Products ... Optimization Toolbox > User’s Guide > Setting

98 © 2012 The MathWorks, Inc.

Questions?