Baixe no formato PDF, TXT ou leia online no Scribd
Fazer download em pdf ou txt
Você está na página 1de 30
2008 Solutions 4U Sdn Bhd.
All Rights Reserved
Algoritmos genticos (Matlab) MATLAB Optimization Toolbox Iury Steiner de Oliveira Bezerra Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Tpicos Introduo Otimizao de funes Optimization Toolbox Rotinas / Algoritmos Disponveis Problemas de minimizao Sem restries Com Restries Exemplos Descrio do algoritmo Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Otimizao se refere basicamente a maximizao ou minimizao de funes Problema tpico de otimizao: ( ) ~ ~ min x f x ( ) ~ 0 j g x s ( ) ~ 0 i h x = L U k k k x x x s s Restries de igualdade Subject to: Restries de desigualdade Restries de fronteira ( ) ~ f x a funo objetivo, o que medir e avaliar o desempenho de um sistema. Em um problema padro, estamos minimizando a funo. Para maximizao, equivalente minimizao funo objetivo multiplicada por -1. Where: ~ x um vetor coluna de variveis consideradas, que pode afetar o desempenho da otimizao. Otimizao de Funes Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved ( ) ~ 0 i h x = L U k k k x x x s s Restries de igualdade Restries de desigualdades Restries de fronteira ou domnio ( ) ~ 0 j g x s Muitos algoritmos necessitam dessa condio Restries Delimitao do espao de solues vivies . Podem ser basicamente lineares e no lineares Function Optimization (Cont.) Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved uma coleo de funes que estendem a capacidade de MATLAB. As rotinas incluem: Otimizao sem restries Otimizao com restries lineares e no-lineares. Programao Quadrtica e programao linear Nonlinear least squares and curve fitting Nonlinear systems of equations solving Constrained linear least squares Algoritmos para large scale problems Optimization Toolbox Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Algoritmos de minimizao Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Algoritmos de minimizao (Cont.) Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Algoritmos para resolver equaes Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Algoritmos de mnimimos quadrados Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved A maioria destas rotinas de otimizao exigem a definio de um M- arquivo que contm a funo , f, a ser minimizada. A maxizao de funes conseguida minimizando f. Opes de otimizao so passadas para os algoritmos do Opt. Toolbox. Os parmetros default da otimizao podem ser mudados em uma estrutura propria . Trabalhando com o Opt. Toolbox Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Considere o problema de encontrar um conjunto de valores [x1 x2] T que resolva ( ) ( ) 1 ~ 2 2 1 2 1 2 2 ~ min 4 2 4 2 1 x x f x e x x x x x = + + + + | | 1 2 ~ T x x x = Passos: Criar um M-file que retorna o valor da funo(Objective Function). Chame-a de objfun.m Ento chamar a rotina de minimizao. Use fminunc, fminsearch, etc Unconstrained Minimization Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Passo 1 Obj. Function function f = objfun(x) f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); | | 1 2 ~ T x x x = Objective function Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Passo 2 a rotina x0 = [-1,1]; options = optimset(LargeScale,off); [xmin,feval,exitflag,output]= fminunc(objfun,x0,options); Argumentos de Sida Argumentos de entrada Ponto Inicial Configurao de parametros na varivel option Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved xmin = 0.5000 -1.0000 feval = 1.3028e-010 exitflag = 1 output = iterations: 7 funcCount: 40 stepsize: 1 firstorderopt: 8.1998e-004 algorithm: 'medium-scale: Quasi-Newton line search' Minimum point of design variables Objective function value Exitflag tells if the algorithm is converged. If exitflag > 0, then local minimum is found Some other information Resultados Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved [xmin,feval,exitflag,output,grad,hessian]= fminunc(fun,x0,options,P1,P2,) Mais sobre a entrada da fminunc fun : A funo objetivo. x0 : Um ponto de partida. Deve ser um vetor que possu o mesmo nmero de variaveis consideradas na otimizao. Option : Configura a otmizao P1,P2, :Passando a parmetros adicionais. Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved [xmin,feval,exitflag,output,grad,hessian]= fminunc(fun,x0,options,P1,P2,) xmin : Vector of the minimum point (optimal point). The size is the number of design variables. feval : The objective function value of at the optimal point. exitflag : A value shows whether the optimization routine is terminated successfully. (converged if >0) Output : This structure gives more details about the optimization grad : The gradient value at the optimal point. hessian : The hessian value of at the optimal point More on fminunc Output Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Options = optimset(param1,value1, param2,value2,) Options Setting optimset The routines in Optimization Toolbox has a set of default optimization parameters. However, the toolbox allows you to alter some of those parameters, for example: the tolerance, the step size, the gradient or hessian values, the max. number of iterations etc. There are also a list of features available, for example: displaying the values at each iterations, compare the user supply gradient or hessian, etc. You can also choose the algorithm you wish to use. Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Options = optimset(param1,value1, param2,value2,) LargeScale - Use large-scale algorithm if possible [ {on} | off ] The default is with { } Parameter (param1) Value (value1) Options Setting (Cont.) Type help optimset in command window, a list of options setting available will be displayed. How to read? For example: Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved LargeScale - Use large-scale algorithm if possible [ {on} | off ] Since the default is on, if we would like to turn off, we just type: Options = optimset(LargeScale, off) Options = optimset(param1,value1, param2,value2,) Agora as entradas da fminuc. Options Setting (Cont.) Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Display - Level of display [ off | iter | notify | final ] MaxIter - Maximum number of iterations allowed [ positive integer ] TolCon - Termination tolerance on the constraint violation [ positive scalar ] TolFun - Termination tolerance on the function value [ positive scalar ] TolX - Termination tolerance on X [ positive scalar ] Highly recommended to use!!! Useful Option Settings Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved fminunc and fminsearch fminunc uses algorithm with gradient and hessian information. Two modes: Large-Scale: interior-reflective Newton Medium-Scale: quasi-Newton (BFGS) Not preferred in solving highly discontinuous functions. This function may only give local solutions.. fminsearch is generally less efficient than fminunc for problems of order greater than two. However, when the problem is highly discontinuous, fminsearch may be more robust. This is a direct search method that does not use numerical or analytic gradients as in fminunc. This function may only give local solutions. Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved [xmin,feval,exitflag,output,lambda,grad,hessian] = fmincon(fun,x0,A,B,Aeq,Beq,LB,UB,NONLCON,options, P1,P2,) Multiplicadores de Lagrange Minimizao com restries Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved ( ) ~ 1 2 3 ~ min x f x x x x = 2 1 2 2 0 x x + s 1 2 3 1 2 3 2 2 0 2 2 72 x x x x x x s + + s 1 2 3 0 , , 30 x x x s s Sujeito : 1 2 2 0 , 1 2 2 72 A B
( ( = = ( (
0 30 0 , 30 0 30 LB UB ( ( ( ( = = ( ( ( (
function f = myfun(x) f=-x(1)*x(2)*x(3); Exemplo Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved 2 1 2 2 0 x x + s Para Crie um funo nonlcon que retorna dois vetores [C,Ceq] function [C,Ceq]=nonlcon(x) C=2*x(1)^2+x(2); Ceq=[]; Remember to return a null Matrix if the constraint does not apply Example (Cont.) Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved x0=[10;10;10]; A=[-1 -2 -2;1 2 2]; B=[0 72]'; LB = [0 0 0]'; UB = [30 30 30]'; [x,feval]=fmincon(@myfun,x0,A,B,[],[],LB,UB,@nonlcon) 1 2 2 0 , 1 2 2 72 A B
Example (Cont.) Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Warning: Large-scale (trust region) method does not currently solve this type of problem, switching to medium-scale (line search). > Optimization terminated successfully: Magnitude of directional derivative in search direction less than 2*options.TolFun and maximum constraint violation is less than options.TolCon Active Constraints: 2 9 x = 0.00050378663220 0.00000000000000 30.00000000000000 feval = -4.657237250542452e-035 2 1 2 2 0 x x + s 1 2 3 1 2 3 2 2 0 2 2 72 x x x x x x s + + s 1 2 3 0 30 0 30 0 30 x x x s s s s s s Const. 1 Const. 2 Const. 3 Const. 4 Const. 5 Const. 6 Const. 7 Sequence: A,B,Aeq,Beq,LB,UB,C,Ceq Const. 8 Const. 9 Exemplo(Cont.) Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Set Fitness function to @rastriginsfcn. Set Number of variables to 2. Select Best fitness in the Plot functions pane. Select Distance in the Plot functions pane. Set Initial range to [1; 1.1]. Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved A = [1,1;-1,2;2,1]; b = [2;2;3]; lb = zeros(2,1); options = gaoptimset('PlotFcns',@gaplotshowpopulation2); [x,fval] = ga(@lincontest6,2,A,b,[],[],lb,[],[],options); Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Optimization Toolbox 2008 Solutions 4U Sdn Bhd. All Rights Reserved Fim.