35
1 © 2014 The MathWorks, Inc. Optimization in MATLAB Seth DeLand

Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

1© 2014 The MathWorks, Inc.

Optimization in MATLAB

Seth DeLand

Page 2: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

2

Topics

Intro

Using gradient-based solvers

Optimization in Comp. Finance toolboxes

Global optimization

Speeding up your optimizations

Page 3: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

3

Optimization workflow

Initial

Design

Variables

Model

Modify

Design

Variables

Optimal

DesignObjectives

met?

No

Yes

Page 4: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

4

Optimization Problems

Minimize Risk

Maximize Profits

Maximize Fuel Efficiency

Page 5: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

5

Demo: Solving an optimization problem

Simple objective function of 2 variables:

𝑓 𝑥 = log 1 + 3 𝑥2 − 𝑥13− 𝑥1

2

+ 𝑥1 −4

3

2

Bound constraints:

−2.5 ≤ 𝑥1 ≤ 2.5

−2.5 ≤ 𝑥2 ≤ 2.5

-2

-1

0

1

2

-2

-1

0

1

2

0

2

4

6

Page 6: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

6

Portfolio Optimization – Quadratic Constraints

Maximize returns, constraint is risk

minimize − 𝑓𝑇𝑥 𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜1

2𝑥𝑇𝐶𝑥 ≤ 𝐶𝑚𝑎𝑥

Use fmincon interior-point algorithm

– Specify analytic gradients of objective function and constraints

𝑔 = −𝑓 (gradient of objective function)

𝑔𝑐 = 𝐶𝑥 (gradient of constraint)

– Hessian (H) of Lagrangian L = −𝑓𝑇𝑥 + λ(1

2𝑥𝑇𝐶𝑥 − 𝐶𝑚𝑎𝑥)

H = ∇2 L = λC

This is a second order conic programming problem

Page 7: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

7

Demo: Cash-flow matching

Idea: Buy bonds to cover pension

fund obligations

Variables: How many of each

bond to buy?

Constraints: Payments from

bonds must be greater than or

equal to pension fund obligations

Objective: Minimize the size of

the investment you make 1 2 3 4 5 6 7 80

20

40

60

80

100

120

Time Period

Ca

sh

Flo

w (

$)

1 2 3 4 5 6 7 80

5

10

15x 10

5

Time Period

Pa

ym

en

ts (

$)

Page 8: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

8

𝑛1⋮𝑛5

Extending the problem

−𝑐𝑎𝑠ℎ𝐹𝑙𝑜𝑤𝑠

𝑛1⋮𝑛5

≤ −𝑜𝑏𝑙𝑖𝑔𝑎𝑡𝑖𝑜𝑛𝑠

𝑛1⋮𝑛5𝑦1⋮𝑦5

1

0⋱

0

1

−1000

0⋱

0

−1000

𝑛1⋮𝑛5𝑦1⋮𝑦5

=0⋮0

min𝑥

𝑓𝑇𝑥 𝐴𝑥 ≤ 𝑏

𝐴𝑒𝑞𝑥 = 𝑏𝑒𝑞𝑙𝑏 ≤ 𝑥 ≤ 𝑢𝑏

s.t.

𝑥(intcon) must be integers𝑥:

𝑛1 = 1000𝑦1⋮

𝑛5 = 1000𝑦5

−𝑐𝑎𝑠ℎ𝐹𝑙𝑜𝑤𝑠 𝑧𝑒𝑟𝑜𝑠(8,5)

𝑛1⋮

𝑛5𝑦1⋮

𝑦5

≤ −𝑜𝑏𝑙𝑖𝑔𝑎𝑡𝑖𝑜𝑛𝑠

Page 9: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

9

Optimization Toolbox solvers

Linear and Mixed-Integer

• LINPROG

• INTLINPROG

Quadratic

• QUADPROG

Nonlinear

• FMINCON

• FMINUNC

• FMINBND

• FMINSEARCH

• FSEMINF

Least Squares

• LSQLIN

• LSQNONNEG

• LSQCURVEFIT

• LSQNONLIN

Nonlinear Equation Solving

• FSOLVE

• FZERO

Multiobjective

• FGOALATTAIN

• FMINIMAX

Page 10: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

10

Key optimization problems addressed by

financial toolboxes

• Mean-variance portfolio optimization

• Conditional Value at Risk (CVaR) portfolio optimization

Financial Toolbox

• Parameter estimation of conditional mean/variance models

Econometrics Toolbox

• Hedging portfolios

• Fitting interest rate curves

• Bootstrapping

Financial Instruments

Toolbox

Page 11: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

11

-2

0

2

-3-2

-10

12

3

-6

-4

-2

0

2

4

6

8

x

Peaks

y

Global optimization algorithms

MultiStart

GlobalSearch

Patternsearch

Genetic Algorithm

Simulated Annealing

Local minimaGlobal

minima

Page 12: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

12

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 13: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

13

MultiStart demo – nonlinear regression

lsqcurvefit solution MultiStart solution

Page 14: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

14

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 15: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

15

-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

Page 16: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

16

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

1.6

0.4

4.6

2.8

First poll successful

Complete Poll (not default)

Page 17: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

17

-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 18: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

18

-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 19: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

19

-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 20: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

20

-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

Page 21: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

21

Patternsearch demo – stochastic function

Stochastic objective function

Page 22: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

22

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 23: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

23

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 24: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

24

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

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 1Evaluate initial population

x

y

Page 25: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

25

-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

Page 26: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

26

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

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 2Generate new population and evaluate

x

y

Page 27: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

27

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

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 2

x

y

Page 28: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

28

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

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 3

x

y

Page 29: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

29

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

-2

-1

0

1

2

3

Genetic Algorithm – Iteration 3

x

y

Page 30: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

30

-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

Page 31: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

31

Genetic Algorithm demo - Multiobjective

Use gamultiobj to find Pareto front

Two competing objectives:

Second objective has sinusoidal

component – results in

discontinuous front

Page 32: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

32

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 (single- and multi-objective)

Parallel Computing with ga, patternsearch, MultiStart

Page 33: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

33

Speeding up with Parallel Computing Toolbox

Global Optimization Toolbox:– ga: Members of population evaluated in parallel at each generation

– patternsearch: Pattern evaluated in parallel (CompletePoll == on)

– MultiStart: Start points evaluated in parallel

Optimization Toolbox:– fmincon: parallel evaluation of objective function for finite differences

– fminimax, fgoalattain: same as fmincon

In the objective function– parfor

Page 34: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

34

Key takeaways

Solvers for a wide variety of problems

– New Mixed-Integer Linear Programming Solver

Supply gradient and Hessian if possible

Global solvers for multiple minimum

and nonsmooth problems

Speed up with parallel computing

Page 35: Optimization in MATLAB - it.mathworks.com · 6 Portfolio Optimization –Quadratic Constraints Maximize returns, constraint is risk minimize− 𝑇 s t 𝑇𝐶 ≤𝐶 Use fminconinterior-point

35

Learn more about optimization with MATLAB

MATLAB Digest: Using Symbolic

Gradients for Optimization

Recorded webinar: Tips and

Tricks – Getting Started Using

Optimization with MATLAB

Recorded webinar: Global

Optimization with MATLAB

Products

MATLAB Digest: Improving

Optimization Performance with

Parallel Computing