matlab optimization toolbox (optimtool) · matlab optimization toolbox (optimtool) dr.rajesh kumar...

77
MATLAB Optimization Toolbox ( optimtool ) Dr. Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE Professor, Department of Electrical Engineering Malaviya National Institute of Technology, Jaipur, India, Mobile: (91)9549654481 [email protected],in, [email protected] Web:http://drrajeshkumar.wordpress.com/ https://drrajeshkumar.wordpress.com

Upload: others

Post on 25-Dec-2019

152 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

MATLABOptimizationToolbox(optimtool)

Dr. RajeshKumar

PhD,PDF(NUS,Singapore)SMIEEE(USA),FIET(UK)FIETE,FIE(I),LMCSI,LMISTE

Professor, DepartmentofElectricalEngineeringMalaviya NationalInstituteofTechnology, Jaipur, India,

Mobile: (91)[email protected],in, [email protected]:http://drrajeshkumar.wordpress.com/http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 2: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Contents• Minimizationalgorithm

– fgoalattain– fmincon– fminimax– fminunc

• Equationsolving– fsolve– fseminf

• Linearprogramming– linprog– intlinprog

• Leastsquareproblems– lsqlin– lsqnonlin– lsqcurvefit (curvefitting)

• Quadraticprogramming– quadprog

• GlobalOptimizationToolbox– ga (geneticalgorithm)– particaleswarm (Particleswarmoptimization)– simulannealbnd (simulatedannealingalgorithm)– gamultiobj (multi-objectivega)– patternsearch

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 3: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fgoalattain• Solvemultiobjective goalattainmentproblems

,

( ) weight. goal(x) 0( ) 0

minimize ..

x y

F x ycceq xA x b

Aeq x beqlb x ub

− ≤⎧⎪ ≤⎪⎪ =⎨

≤⎪⎪ =⎪

≤ ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 4: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fgoalattain• Solvemultiobjectivegoalattainmentproblems

• Where– weight, goal, b,and beq arevectors– A and Aeq arematrices– c(x), ceq(x),and F(x)arefunctionsthatreturnvectors– F(x), c(x),and ceq(x)canbenonlinearfunctions

,

( ) weight. goal(x) 0( ) 0

minimize ..

x y

F x ycceq xA x b

Aeq x beqlb x ub

− ≤⎧⎪ ≤⎪⎪ =⎨

≤⎪⎪ =⎪

≤ ≤⎩

Linearinequalityconstraints

RangeofxLinearequalityconstraints

Nonlinearinequalityconstraints

Nonlinearequalityconstraints

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 5: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fgoalattain• Example Anoutputfeedbackcontroller, Kisdesigned

producingaclosedloopsystem

Withdesignconsideration,closelooppoles[-5,-3,-1]andgain-4<K<4

( )x A BKC x Buy Cx= + +

=

&

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 6: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fgoalattain• Example Anoutputfeedbackcontroller, Kisdesigned

producingaclosedloopsystem

Withdesignconsideration,closelooppoles[-5,-3,-1]andgain-4<K<4

( )x A BKC x Buy Cx= + +

=

&

[ ]

0.5 0 0 1 01 0 0

0 2 10 ; 2 2 ;0 0 1

0 1 2 0 1

goal= 5 3 1 ;weight (goal);

1 1K0 ;

1 1

4 4 4 4; ;

4 4 4 4

A B C

abs

lb ub

−⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥= − = − = ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎣ ⎦⎢ ⎥ ⎢ ⎥−⎣ ⎦ ⎣ ⎦

− − − =

− −⎡ ⎤= ⎢ ⎥− −⎣ ⎦

− −⎡ ⎤ ⎡ ⎤= =⎢ ⎥ ⎢ ⎥− −⎣ ⎦ ⎣ ⎦

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 7: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fgoalattain• Createfunctionfile, eigfun.m.

function F = eigfun(K,A,B,C) F = sort(eig(A+B*K*C)); % Evaluate objectives

• NextenterthesystemmatrixandinvokeanoptimizationroutineA= [-0.5 0 0; 0 -2 10; 0 1 -2]; B = [1 0; -2 2; 0 1]; C = [1 0 0; 0 0 1]; K0 = [-1 -1; -1 -1]; % Initialize controller matrix goal = [-5 -3 -1]; % Set goal values for the eigenvaluesweight = abs(goal); % Set weight for same percentage lb = -4*ones(size(K0)); % Set lower bounds ub = 4*ones(size(K0)); % Set upper bounds

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 8: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fgoalattain• Createfunctionfile, eigfun.m.

function F = eigfun(K,A,B,C) F = sort(eig(A+B*K*C)); % Evaluate objectives

• NextenterthesystemmatrixandinvokeanoptimizationroutineA= [-0.5 0 0; 0 -2 10; 0 1 -2]; B = [1 0; -2 2; 0 1]; C = [1 0 0; 0 0 1]; K0 = [-1 -1; -1 -1]; % Initialize controller matrix goal = [-5 -3 -1]; % Set goal values for the eigenvaluesweight = abs(goal); % Set weight for same percentage lb = -4*ones(size(K0)); % Set lower boundsub = 4*ones(size(K0)); % Set upper bounds

options = optimoptions('fgoalattain','Display','iter');

[K,fval,attainfactor]=fgoalattain(@(K)eigfun(K,A,B,C),... K0,goal,weight,[],[],[],[],lb,ub,[],options)ht

tps://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 9: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fgoalattain• Result

K = -4.0000 -0.2564 -4.0000 -4.0000

fval =-6.9313-4.1588-1.4099

attainfactor = -0.3863

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 10: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fmincon• Findminimumofconstrainednonlinearmultivariablefunction

• Syntex[x,fval]= fmincon(fun,x0,A,b,Aeq,beq,lb,ub)

(x) 0( ) 0

minimize ( ) ..

x

cceq x

f x A x bAeq x beqlb x ub

≤⎧⎪ =⎪⎪

≤⎨⎪ =⎪

≤ ≤⎪⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 11: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fmincon• Example FindtheminimumvalueofRosenbrock's function

withfollowingconstraints

atstartingpoint(-1,2)

( ) ( )2 22

2 1 1100 1x x x− + −

1 22 1x x+ ≤

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 12: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fmincon• Example FindtheminimumvalueofRosenbrock's function

withfollowingconstraints

atstartingpoint(-1,2)

• MatlabCodex0 = [-1,2]; A = [1,2]; b = 1;

x = fmincon(fun,x0,A,b)

( ) ( )2 22

2 1 1100 1x x x− + −

1 22 1x x+ ≤

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 13: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fmincon• Example FindtheminimumvalueofRosenbrock's function

withfollowingconstraints

atstartingpoint(-1,2)

• MatlabCodex0 = [-1,2]; A = [1,2]; b = 1;

x = fmincon(fun,x0,A,b)• Solution

x = 0.5022 0.2489

( ) ( )2 22

2 1 1100 1x x x− + −

1 22 1x x+ ≤

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 14: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fminimax• Findstheminimumofaproblemspecifiedby

• Syntex[x,fval]= fminimax(fun,x0,A,b,Aeq,beq,lb,ub)

(x) 0( ) 0

min max ( ) ..

ix i

cceq x

f x A x bAeq x beqlb x ub

≤⎧⎪ =⎪⎪

≤⎨⎪ =⎪

≤ ≤⎪⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 15: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fminimax• Example Findvaluesof x thatminimizethemaximumvalueof

where

atstartingpoint(0.1,0.1)

[ ]1 2 3 4 5( ), ( ), ( ), ( ), ( )f x f x f x f x f x2 2

1 1 2 1 22 2

2 1 2

3 1 2

4 1 2

5 1 2

( ) 2 48 40 304

( ) 3

( ) 3 18

( )

( ) 8

f x x x x xf x x xf x x x

f x x xf x x x

= + − − +

= − +

= + −

= − −

= + −

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 16: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fminimax• First,writeafilethatcomputesthefivefunctionsat x

function f = myfun(x) f(1)= 2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304; f(2)= -x(1)^2 - 3*x(2)^2; f(3)= x(1) + 3*x(2) -18; f(4)= -x(1)- x(2); f(5)= x(1) + x(2) - 8;

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 17: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fminimax• First,writeafilethatcomputesthefivefunctionsat x

function f = myfun(x) f(1)= 2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304; f(2)= -x(1)^2 - 3*x(2)^2; f(3)= x(1) + 3*x(2) -18; f(4)= -x(1)- x(2); f(5)= x(1) + x(2) - 8;

• Next,invokeanoptimizationroutinex0 =[0.1; 0.1]; % Make a starting guess solution [x,fval] = fminimax(@myfun,x0);

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 18: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fminimax• First,writeafilethatcomputesthefivefunctionsat x

function f = myfun(x) f(1)= 2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304; f(2)= -x(1)^2 - 3*x(2)^2; f(3)= x(1) + 3*x(2) -18; f(4)= -x(1)- x(2); f(5)= x(1) + x(2) - 8;

• Next,invokeanoptimizationroutinex0 =[0.1; 0.1]; % Make a starting guess solution [x,fval] = fminimax(@myfun,x0);

• Afterseveniterations,thesolutionisx =

4.0000 4.0000

fval = 0.0000 -64.0000 -2.0000 -8.0000 -0.0000

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 19: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fminunc• Findstheminimumofaproblemspecifiedby

where f(x)isafunctionthatreturnsascalarx isavectororamatrix

• Syntex[x,fval]= fminunc(fun,x0)

min ( )xf x

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 20: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fminunc• Example Minimizethefunction

atstartingpoint(1,1)2 21 1 2 2 1 2( ) 3 2 4 5f x x x x x x x= + + − +

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 21: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fminunc• Example Minimizethefunction

atstartingpoint(1,1)• Matlab Code

fun = @(x)3*x(1)^2 + 2*x(1)*x(2) + x(2)^2 - 4*x(1) + 5*x(2);

x0 = [1,1]; [x,fval] = fminunc(fun,x0);

2 21 1 2 2 1 2( ) 3 2 4 5f x x x x x x x= + + − +

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 22: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fminunc• Example Minimizethefunction

atstartingpoint(1,1)• Matlab Code

fun = @(x)3*x(1)^2 + 2*x(1)*x(2) + x(2)^2 - 4*x(1) + 5*x(2);

x0 = [1,1]; [x,fval] = fminunc(fun,x0);

• Afterafewiterations, fminunc returnsthesolutionx =

2.2500 -4.7500fval =

-16.3750

2 21 1 2 2 1 2( ) 3 2 4 5f x x x x x x x= + + − +

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 23: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fseminf• Findstheminimumofaproblemspecifiedby

Ki(x,wi) ≤ 0 arecontinuousfunctionsofboth x andanadditionalsetofvariablesw1,w2,...,wn

• Syntex[x,fval]= fseminf(fun,x0,ntheta,seminfcon,…

A,b,Aeq,beq,lb,ub)– ntheta -Numberofsemi-infinite constraints– Seminfcon - Semi-infiniteconstraintfunction

( , ) 0,1(x) 0( ) 0

minimize ( ) ..

i i

x

K x w i ncceq x

f xA x b

Aeq x beqlb x ub

≤ ≤ ≤⎧⎪ ≤⎪⎪ =⎨

≤⎪⎪ =⎪

≤ ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 24: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fseminf• Example Minimizesthefunction

subjecttotheconstraints( )21x−

( ) ( )2

0 2

1 1( , ) 0 for all 0 12 2

x

g x t x t t

≤ ≤

= − − − ≤ ≤ ≤

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 25: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fseminf• Example Minimizesthefunction

subjecttotheconstraints

• Theunconstrainedobjectivefunctionisminimizedat x = 1.However,theconstraint,

implies

( )21x−

( ) ( )2

0 2

1 1( , ) 0 for all 0 12 2

x

g x t x t t

≤ ≤

= − − − ≤ ≤ ≤

2( , ) 0 for all 0 1g x t t≤ ≤ ≤12x ≤

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 26: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fseminf• Writetheobjectivefunctionasananonymousfunction

objfun = @(x)(x-1)^2;

• Writethesemi-infiniteconstraintfunction,– Includesthenonlinearconstraints([ ]inthiscase)– Initialsamplingintervalfor t (0to1instepsof0.01inthiscase)– Thesemi-infiniteconstraintfunctiong(x, t):function [c, ceq, K1, s] = seminfcon(x,s)% No finite nonlinear inequality and equality constraints c = []; ceq = []; % Sample setif isnan(s) % Initial sampling interval

s = [0.01 0]; end t = 0:s(1):1; % Evaluate the semi-infinite constraint K1 = (x - 0.5) - (t - 0.5).^2;

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 27: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fseminf• Call fseminfwithinitialpoint0.2,andviewtheresult:

x = fseminf(objfun,0.2,1,@seminfcon)

x =0.5000

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 28: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fsolve• Solvesanonlinearproblemspecifiedby

whereF(x)isafunctionthatreturnsavectorvalue

• Syntex[x,fval]= fsolve(fun,x0)

( ) 0F x =

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 29: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fsolve• Example Solvetwononlinearequationsintwovariables.The

equationsare:-( ) ( )

( ) ( )

1 2 22 1

1 2 2 1

1

1cos sin2

x xee x x

x x x x

− +− = +

+ =

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 30: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fsolve• Example Solvetwononlinearequationsintwovariables.The

equationsare:-

• ConvertinginF(x)=0

( ) ( )

( ) ( )

1 2 22 1

1 2 2 1

1

1cos sin2

x xee x x

x x x x

− +− = +

+ =

( ) ( )

( ) ( )

1 2 22 1

1 2 2 1

1 0

1cos sin 02

x xee x x

x x x x

− +− − + =

+ − =

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 31: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fsolve• Matlab Codeforfunctionfile

function F = root2d(x) F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2); F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 32: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fsolve• Matlab Codeforfunctionfile

function F = root2d(x) F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2); F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;

• Solvethesystemofequationsstartingatthepoint [0,0].fun = @root2d; x0 = [0,0]; x = fsolve(fun,x0)

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 33: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

fsolve• Matlab Codeforfunctionfile

function F = root2d(x) F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2); F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;

• Solvethesystemofequationsstartingatthepoint [0,0].fun = @root2d; x0 = [0,0]; x = fsolve(fun,x0)

• Resultsx =

0.3532 0.6061http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 34: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

linprog• Solvelinearprogrammingproblems

• Syntaxx = linprog(fun,A,b,Aeq,beq,lb,ub)

.min .T

x

A x bf x Aeq x beq

lb x ub

≤⎧⎪

=⎨⎪ ≤ ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 35: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

linprog• Example Linearprogramming

1 2

21

1 21 2

12

1 2

1 2

2

1421min( ) subject to

3 141

2

x

x xxx

x xx x

x x

x xx x

+ ≤⎧⎪⎪ + ≤⎪

− ≤⎪− − ⎨

⎪− − ≤⎪− − ≤ −⎪⎪− + ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 36: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

linprog• Example Linearprogramming

1 2

21

1 21 2

12

1 2

1 2

2

1421min( ) subject to

3 141

2

x

x xxx

x xx x

x x

x xx x

+ ≤⎧⎪⎪ + ≤⎪

− ≤⎪− − ⎨

⎪− − ≤⎪− − ≤ −⎪⎪− + ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 37: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

linprog• Example Linearprogramming

• Matlab Code% Objective Function f = [-1 -1/3];A = [1 1; 1 1/4; 1 -1;-1/4 -1; -1 -1; -1 1]; B = [2 1 2 1 -1 2];% calling linprogx = linprog(f,A,b,[],[],[],[])

1 2

21

1 21 2

12

1 2

1 2

2

1421min( ) subject to

3 141

2

x

x xxx

x xx x

x x

x xx x

+ ≤⎧⎪⎪ + ≤⎪

− ≤⎪− − ⎨

⎪− − ≤⎪− − ≤ −⎪⎪− + ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 38: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

linprog• Results

Optimal solution found.x =

0.6667 1.3333

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 39: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

intlinprog• Mixed-integerlinearprogramming(MILP)

• Syntaxx = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)– intcon –integer variables

(intcon)are integers.

min.

T

x

xA x b

f xAeq x beqlb x ub

⎧⎪ ≤⎪⎨

=⎪⎪ ≤ ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 40: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

intlinprog• Example Mixed-integerlinearprogramming(MILP)

2

1 21 2

1 2

1 2

is an integer2 14

min(8 ) subject to4 332 20

x

xx x

x xx xx x

⎧⎪ + ≥ −⎪

+ ⎨− − ≤ −⎪⎪ + ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 41: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

intlinprog• Example Mixed-integerlinearprogramming(MILP)

• Matlab Code% Objective Function and integer variablef = [8;1]; intcon = 2;A = [-1,-2; -4,-1; 2,1]; B = [14;-33;20];% calling intlinprogx = intlinprog(f,intcon,A,b)

2

1 21 2

1 2

1 2

is an integer2 14

min(8 ) subject to4 332 20

x

xx x

x xx xx x

⎧⎪ + ≥ −⎪

+ ⎨− − ≤ −⎪⎪ + ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 42: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

intlinprog• Results

LP: Optimal objective value is 59.000000x =

6.5000 7.0000

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 43: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

lsqcurvefit• Solvenonlinearcurve-fitting(data-fitting)problemsinleast-

squaressense

Nonlinearleast-squaressolverfindscoefficientsx thatsolvetheproblem.Whereuserdefineddatashouldbefeedinvectorform

• Syntaxx = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)

( )22

2min ( , ) min ( , )x x iF x xdata ydata F x xdata ydata− = −∑

( , (1))( , (2))

( , )

( , ( ))

F x xdataF x xdata

F x xdata

F x xdata k

⎡ ⎤⎢ ⎥⎢ ⎥=⎢ ⎥⎢ ⎥⎣ ⎦

Mht

tps://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 44: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

lsqcurvefit• Example Simpleexponentialfit

xdata =[0.91.513.819.824.128.235.260.374.681.3];ydata =[455.2428.6124.167.343.228.113.1-0.4-1.3-1.5];

2xdata1ydata xx e=

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 45: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

lsqcurvefit• Example Simpleexponentialfit

xdata =[0.91.513.819.824.128.235.260.374.681.3];ydata =[455.2428.6124.167.343.228.113.1-0.4-1.3-1.5];

• Matlab codexdata = [0.9 1.5 13.8 19.8 24.1 28.2 35.2 60.3 … 74.6 81.3]; ydata = [455.2 428.6 124.1 67.3 43.2 28.1 13.1 … -0.4 -1.3 -1.5];% Create a simple exponential decay modelfun = @(x,xdata)x(1)*exp(x(2)*xdata); % Fit the model using the starting pointx0 = [100,-1]

x = lsqcurvefit(fun,x0,xdata,ydata,[],[])

2xdata1ydata xx e=

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 46: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

lsqcurvefit• Results

Local minimum possible.x =

498.8309 -0.1013

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 47: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

lsqlin• Solveconstrainedlinearleast-squaresproblems

solvesthelinearsystem C*x = d

• Syntaxx = lsqlin(C,d,A,b,Aeq,beq,lb,ub)

2

2

.1min . .2x

A x bC x d Aeq x beq

lb x ub

≤⎧⎪

− =⎨⎪ ≤ ≤⎩

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 48: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

lsqlin• Example FindthexthatminimizesthenormofC*x- dforan

overdeterminedproblemwithlinearequalityandinequalityconstraintsandbounds.

• Matlab codeC = [0.9501 0.7620 0.6153 0.4057;

0.2311 0.4564 0.7919 0.9354; 0.6068 0.0185 0.9218 0.9169;0.4859 0.8214 0.7382 0.4102; 0.8912 0.4447 0.1762 0.8936];

d = [0.0578; 0.3528; 0.8131; 0.0098; 0.1388];A =[0.2027 0.2721 0.7467 0.4659;

0.1987 0.1988 0.4450 0.4186; 0.6037 0.0152 0.9318 0.8462];

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 49: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

lsqlin• Matlab codeconti.

b =[0.5251; 0.2026; 0.6721]; Aeq = [3 5 7 9]; beq = 4; lb = -0.1*ones(4,1); ub = 2*ones(4,1);

% call lsqlin to solve the problemx = lsqlin(C,d,A,b,Aeq,beq,lb,ub)

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 50: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

lsqlin• Matlab codeconti.

b =[0.5251; 0.2026; 0.6721]; Aeq = [3 5 7 9]; beq = 4; lb = -0.1*ones(4,1); ub = 2*ones(4,1);

% call lsqlin to solve the problemx = lsqlin(C,d,A,b,Aeq,beq,lb,ub)

• Resultsx = -0.1000 -0.1000 0.1599 0.4090 ht

tps://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 51: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Tosolvenonlinearleast-squarescurvefittingproblems

• TrustregionreflectivealgorithmorLevenburgMarquardt(setinOptions)

• lsqnonlin stopsbecausethefinalchangeinthesumofsquaresrelativetoitsinitialvalueislessthanthedefaultvalueofthefunctiontolerance.

• Syntaxx = lsqnonlin(fun,x0,lb,ub)

2 22

1min ( ) min ( )

n

ix x if x f x

=

= ∑

lsqnonlin

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 52: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• ExampleFitasimpleexponentialdecaycurvetodata.Themodelconsideredis:

where0≤t≤ 3,andε is normallydistributednoise,mean0andstandarddeviation0.05.

1.3ty e ε−= +

lsqnonlin

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 53: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• ExampleFitasimpleexponentialdecaycurvetodata.Themodelconsideredis:

where0≤t≤ 3,andε is normallydistributednoise,mean0andstandarddeviation0.05.

• Matlab coderng default; % for reproducibility d = linspace(0,3);y = exp(-1.3*d) + 0.05*randn(size(d)); fun = @(r)exp(-d*r)-y;x0 = 4;

x = lsqnonlin(fun,x0,[],[])

1.3ty e ε−= +

lsqnonlin

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 54: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Resultsplot(d,y,'ko',d,exp(-x*d),'b-')legend('Data','Best fit')xlabel('t')ylabel('exp(-tx)')

lsqnonlin

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 55: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Findsaminimumforaquadraticprogrammingproblemthatisspecifiedby:

• Syntaxx = quadprog(H,f,A,b,Aeq,beq,lb,ub,options)

- options – optimtool options forspecificfunction

1min .2

T T

x

Ax bx Hx f x Aeq x beq

lb x ub

≤⎧⎪

+ ≤⎨⎪ ≤ ≤⎩

quadprog

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 56: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Example Solvethegiventhequadraticprogrammingproblem:

subjectto

2 21 2 1 2 1 2

1( ) 2 62

f x x x x x x x= + − − −

1 2

1 2

1 2

1 2

22 2

2 30 ;0

x xx xx xx x

+ ≤

− + ≤

+ ≤

≤ ≤

quadprog

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 57: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Example Solvethegiventhequadraticprogrammingproblem:

subjectto

• Matlab CodeH = [1 -1; -1 2]; f = [-2; -6]; A = [1 1; -1 2; 2 1]; b = [2; 2; 3]; lb = zeros(2,1);options = optimoptions('quadprog', 'Algorithm', 'interior-point-convex','Display','off'); [x,fval]= quadprog(H,f,A,b,[],[],lb,[],[],options);

2 21 2 1 2 1 2

1( ) 2 62

f x x x x x x x= + − − −

1 2

1 2

1 2

1 2

22 2

2 30 ;0

x xx xx xx x

+ ≤

− + ≤

+ ≤

≤ ≤

quadprog

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 58: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Resultx =

0.66671.3333

fval =

-8.2222

quadprog

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 59: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Genetic Algorithm (GA)• Geneticalgorithmsolverformixed-integerorcontinuous-

variableoptimization,constrainedorunconstrained• Syntax

x = ga(fun,nvars,A,b,Aeq,beq,lb,ub)

– nvars isthedimension(numberofdesignvariables)offun

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 60: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Genetic Algorithm (GA)• Example Usethegeneticalgorithmtominimizethe

ps_example function{inbuiltinMatlab},withfollowingconstraints:-

1 2

2 1

1

2

15

1 63 8

x xx x

xx

+ ≥

= +

≤ ≤

− ≤ ≤

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 61: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Genetic Algorithm (GA)• Rearrangingconstraints

• Matlab CodeA = [-1 -1]; b = -1;Aeq = [-1 1]; beq = 5lb = [1 -3]; ub = [6 8];%Set bounds lb and ubfun = @ps_example;

x = ga(fun,2,A,b,Aeq,beq)

1 2

1 2

1

2

15

1 63 8

x xx x

xx

+ ≥

− + =

≤ ≤

− ≤ ≤

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 62: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Genetic Algorithm (GA)• Results

x =-2.0000 2.9990

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 63: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• BoundconstrainedoptimizationusingParticleSwarmOptimization(PSO)

• Minimizesobjectivefunctionsubjecttoconstraints• MATLABbuiltinfunctionparticleswarm

– Maydefineasanunconstrainedproblemorfindsolutioninarange

– Allowstospecifyvariousoptionsusingoptimoptions

• Syntaxx = particleswarm(fun,nvars,lb,ub,options)

particleswarm

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 64: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

particleswarm• Exampletheobjectivefunction.

Setboundsonthevariables

2@( ) (1)*exp( ( ) )fun x x norm x= −

[ 10, 15]and [15,20]lb ub= − − =

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 65: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

particleswarm• Exampletheobjectivefunction.

Setboundsonthevariables

• Matlab Code%Define the objective function.fun = @(x)x(1)*exp(-norm(x)^2);

%Call particleswarm to minimize the function.rng default % For reproducibility nvars = 2;x = particleswarm(fun,nvars)

2@( ) (1)*exp( ( ) )fun x x norm x= −

[ 10, 15]and [15,20]lb ub= − − =

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 66: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

particleswarm• Result

x = 629.4474 311.4814

%This solution is far from the true minimum, as %you see in a function plot.fsurf(@(x,y)x.*exp(-(x.^2+y.^2)))

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 67: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• FindstheminimumofagivenfunctionusingtheSimulatedAnnealingAlgorithm.

• Maydefineupperandlowerbounds• Usefulinminimizingfunctionsthatmayhavemanylocal

minima

• Syntax[x,fval] = simulannealbnd(fun,x0,lb,ub,options)

simulannealbnd

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 68: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Example MinimizeDeJong’s fifthfunctionà 2Dfunctionwithmanylocalminima.

• Startingpointà [0,0]• UBis64andLBis-64

DeJong’s FifthFunctionPlot– ManyLocalMinima

simulannealbnd

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 69: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Plot De Jong’s function and assign fcn = @dejong5fcn

In main program, simulannealbnd with

starting [0,0]

Set LB and UB. Call simlannealbnd

with LB and UB

No Lower and Upper Bounds

fun = @dejong5fcn;x0 = [0 0];x = simulannealbnd(fun,x0)

Outputx =

-31.9785 -31.9797

With LB and UBfun = @dejong5fcn;x0 = [0 0];lb = [-64 -64];ub = [64 64];x = simulannealbnd(fun,x0,lb,ub)

Outputx =

0.0009 -31.9644

Note: The simulannealbnd algorithm uses the MATLAB® random number stream, so different results may be obtained after each run

simulannealbnd (example)

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 70: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Multi-objective GA• FindParetofrontofmultiplefitnessfunctionsusinggenetic

algorithm• Syntax

x = gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub)

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 71: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Multi-objective GA• Example ComputetheParetofrontforasimplemulti-

objectiveproblem.Therearetwoobjectivesandtwodecisionvariables x 2

1

2

2

( )

2( ) 0.5 2

1

f x x

f x x

=

⎡ ⎤= − +⎢ ⎥

⎣ ⎦

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 72: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Multi-objective GA• Example ComputetheParetofrontforasimplemulti-

objectiveproblem.Therearetwoobjectivesandtwodecisionvariables x

• Matlab codefitnessfcn = @(x)[norm(x)^2,0.5*norm(x(:)-[2;-1])^2+2];

rng default % For reproducibility x = gamultiobj(fitnessfcn,2,[],[],[],[],[],[])

21

2

2

( )

2( ) 0.5 2

1

f x x

f x x

=

⎡ ⎤= − +⎢ ⎥

⎣ ⎦

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 73: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Multi-objective GA• Results

Optimization terminated: average change in the spread of Pareto solutions less than options.FunctionTolerance. x =

-0.0072 0.0003 0.0947 -0.0811 1.0217 -0.6946 1.1254 -0.0857

-0.0072 0.0003 0.4489 -0.2101 1.8039 -0.8394 0.5115 -0.6314 1.5164 -0.7277 1.7082 -0.7006 1.8330 -0.9337 0.7657 -0.6695 0.7671 -0.4882 1.2080 -0.5407 1.0075 -0.5348 0.6281 -0.1454 2.0040 -1.00641.5314 -0.9184

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 74: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

Multi-objective GA• Plotthesolutionpoints

plot(x(:,1),x(:,2),'ko')

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 75: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Findalocalminimumagivenfunctionusingpatternsearchsubjectto– linearequalities/inequalities,– lower/upperbounds,– non-linearinequalities/equalities

• Specificoptionsmaybegivenusingoptimoptions

• Syntaxx = patternsearch(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

patternsearch

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 76: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Example1 Minimizeanunconstrainedproblemusingauserfunctionandpatternsearch solver Define a user

function (obj1) that describes the

objective

In main program, call the function obj1 and define starting point

Use patternsearch to find the minima

Main Codefun = @obj1;x0 = [0,0];x = patternsearch(fun,x0)

Function Codefunction[y] = obj1(x)y = exp(-x(1)^2-x(2)^2)*(1+5*x(1) + 6*x(2) + 12*x(1)*cos(x(2)));

Outputx =

-0.7037 -0.1860

y = exp(-x(1)2-x(2)2)*(1+5x(1) + 6*x(2) + 12x(1)cos(x(2)));

patternsearch

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com

Page 77: MATLAB Optimization Toolbox (optimtool) · MATLAB Optimization Toolbox (optimtool) Dr.Rajesh Kumar PhD, PDF (NUS, Singapore) SMIEEE (USA), FIET (UK) FIETE, FIE (I), LMCSI, LMISTE

• Example2 Solvingthepreviousproblemwithlowerbound(LB)andupperbound(UB)specifiedandstartingat[1,-5]:

Main Codefun = @obj1;lb = [0,-Inf];ub = [Inf,-3];A = [];b = [];Aeq = [];beq = [];x0 = [1,-5];x = patternsearch(fun,x0,A,b,Aeq,beq,lb,ub)

Outputx =

0.1880 -3.0000

1

2

03

xx

≤ ≤ ∞

−∞ ≤ ≤ −

patternsearch

http

s://

drra

jesh

kum

ar.w

ordp

ress

.com