ou sr.sk
Transcrição
ou sr.sk
Otimização de Processos Capítulo 4: Otimização Unidimensional Sem Restrições (OUSR) . 1 1 Algoritmos de Otimização P1. Estabeleça o intervalo de busca ou estimativa inicial que contenha o ponto de mínimo da FO O mapeamento fornece esse intervalo ou estimativa inicial P2. Defina uma tolerância P3. Aplique o método selecionado até atingir a tolerância, certificando-se que: f(x k+1) < f(xk) 2 2 Tolerância ou Critério de Parada f x k 1 Erro absoluto na FO: f x Erro relativo na FO: f x f x f x Erro absoluto no ponto ótimo: xik 1 xik 3 ou k 1 i x k k 1 k k x k i x n k 1 i 1 k 2 i x 2 4. i 1 3 3 Erro relativo no ponto ótimo: xik 1 xik 5 k xi Erro absoluto na direção de busca: f x k 2 f x 6. i 1 x x k n 4 4 Taxa de convergência Norma euclidiana: Linear: k 1 x x x x k x 2 i 0 1 x Ordem p: k 1 x x x k x i 1 n p 0 1 Superlinear: x lim k k 1 x x x k k 0. 5 5 Métodos para OUSR Motivação: M1. Problemas unidimensionais sem restrições M2. Incorporação da(s) restrições à FO M3. Técnicas OMSR e OMCR se originam em OUSR M4. Auxilia em problemas onde desconhecemos a região de busca Classificação dos métodos para OUSR: MD - Métodos Diretos (utilizam apenas as funções) MI - Métodos Indiretos (utilizam as derivadas). 6 6 Métodos Diretos (MD) p/ OUSR Não utilizam derivadas G1. Métodos por diminuição da região de busca: G1.1. Dois intervalos iguais de busca G1.2. Método da seção áurea G2. Métodos por aproximação polinomial da FO: G2.1. Interpolação quadrática G2.2. Interpolação cúbica. 7 7 Métodos por Diminuição da Região de Busca Algoritmo P1. Escolha uma região viável (a,b) que contenha uma função unimodal P2. Calcule f(x) em dois ou mais pontos. P3. Compare os valores de f(x) eliminando as regiões que tem maiores valores de f(x) . 8 8 Três intervalos iguais de busca x1 - a = b - x2 = x2 - x1 neste caso o intervalo é reduzido de 1/3 a cada iteração L0 é o intervalo de busca original (b - a) e Lk é o intervalo após k interações, então k 2 0 L L 3 k A cada iteração é necessário avaliar duas vezes a função f(x) . 9 9 Método da seção áurea O intervalo eliminado manterá sempre uma mesma proporção com o intervalo original a b x c y x y 1 x y y y x y 1 y y x 1 y y 0,618 L 0,618 L0 k k 10 10 Seção Áurea 11 11 Algoritmo Seção Áurea P1. determine ak e bk , e a tolerância e P2. Calcule Lk = bk - ak x1k = ak + 0,382.Lk x2k = bk - 0,618.Lk P3. Calcule f(x1k) e f(x2k) P4. Se f(x1k) > f(x2k) => ak+1 = x1k bk+1 = bk x1k+1 = x2k Se f(x1k) < f(x2k) => bk+1 = x2k ak+1 = ak x2k+1 = x1k P5. Volte ao passo P2 até atingir a tolerância. 12 12 MD: Interpolação Quadrática f(x) aproximada por um polinômio quadrático Seja f(x) unimodal e um intervalo de busca que contenha o extremo Avalie f(x1) , f(x2) e f(x3) Aproxime f(x) no ponto ótimo (x*) por uma função quadrática g(x) , então f x1 g x1 a b.x1 c.x12 f x2 g x2 a b.x2 c.x2 2 f x3 g x3 a b.x3 c.x32 . 13 13 Mínimo de uma função quadrática g(x) : b x 2c Resolvendo g(x1) , g(x2) e g(x3) que formam um sistema de 3 eq’s e 3 incog’s: * g x x g( x) x f ( x) 2 2 2 2 2 2 x x g x x x g x x x 1 2 3 1 3 1 2 1 2 g x 3 2 x 2 x 3 g x1 x 3 x1 g x 2 x1 x 2 g x 3 ou 2 2 2 2 2 2 x x f x x x f x x x 1 2 3 1 3 1 2 1 2 f x3 2 x 2 x 3 f x1 x 3 x1 f x 2 x1 x 2 f x 3 14 14 MD: Interpolação Cúbica f(x) aproximada por um polinômio cúbico f ( x ) g ( x ) a1 x 3 a 2 . x 2 a 3 . x a 4 Seja f(x) unimodal e um intervalo de busca que contenha o extremo Avalie f(x1) , f(x2) , f(x3) e f(x4) Aproxime f(x) no ponto ótimo (x*) por uma função cúbica g(x), então podemos escrever um sistema de 4 equações lineares. 15 15 SEAL: FXA x13 3 x X 23 x3 3 x4 x12 2 x2 2 x3 2 x4 F f x1 T A a1 T A X a2 x1 1 x2 1 x3 1 x4 1 f x2 a3 f x3 a4 f x4 1 F logo Derivando g(x) e igualando a zero: f x dx 3a 1 . x 2 2a 2 . x 1 a 3 0 x apr 2a 2 4a 22 12a 1 . a 3 6a 1 16 16 Comparação MD’s x MI’s Métodos Diretos Métodos Indiretos Utilizam apenas f(x) + lentos Tratamento + fácil das descontinuidades Tratamento + fácil das restrições Preferido Utilizam f'(x) e f”(x) + rápidos Tratamento + difícil das descontinuidades Tratamento + difícil das restrições Recaem em SENL 17 17 Algoritmos MI’s P1. Intervalo de busca contendo o ponto de mínimo com FO unimodal neste intervalo P2. Defina uma tolerância P3. Aplique o MI até atingir a tolerância, certificando-se que: f(x k+1) < f(xk) Quanto mais positivo for f"(xk) mais rapidamente f(x) diminuirá Para maximizar f(x) , minimize -f(x) . 18 18 MI: Método de Newton Baseado no método de Newton p/ SEANL Expandindo g(x k+1)= 0 em torno de x k : g x x gx k 1 k k 1 x .g ' x 0 x k k k 1 g xk x g' xk k Como podemos escrever g(x)= f‘(x)= 0 k k g x f ' x k 1 k x k 1 x k x x k g' x f " xk 19 19 Vantagens do Método de Newton V1. Convergência quadrática se f "(x*) 0 V2. Se FO é quadrática o mínimo é obtido em uma iteração, pois a expansão em série de Taylor da função f(x) é exata V3. Converge rapidamente p/ bom chute inicial Temos sempre que assegurar que a cada iteração f(xk+1) < f(xk) para que o mínimo seja alcançado [f(xk+1) > f(xk) para o máximo]. 20 20 Desvantagens do Método de Newton D1. Só se aplica qdo existem f’(x) e f”(x) D2. Calcular a cada iteração f’(x) e f”(x) D3. Sensível à estimativa inicial D4. Se f”(x) tende a 0 a convergência é lenta D5. Se existe mais de um extremo o método pode não convergir para o ponto desejado ou pode oscilar. 21 21 Método de QuasiNewton f’(x) aproximada por diferenças finitas DF1. Diferença finita para trás: f x f x x x f x 2 f x x f x 2 x f x x 2 f x 22 22 DF2. Diferenças finitas para frente: f x f x f x x f x x f x 2 x 2 f x x f x x 2 DF3. Diferenças finitas central: f x x f x x 2 x f x x 2 f x f x x f x x 2 f x 23 23 x k 1 Portanto definindo h=x e obtemos x k x f x h f x h / 2 h f x f x h 2 f x f x h / h f xk k k 2 Esse método tem duas desvantagens em relação ao método de Newton: D1. Necessidade de definir o passo h D2. Avaliação de uma função a mais a cada iteração. 24 24 Método da Secante Expandindo f(x) = 0 em série de Taylor e truncando no terceiro termo: f x f x k x x k x x . f x . f x 2! k 2 k k Diferenciando em relação a x e igualando a 0: f x k k k x 0 f ' x f x x x f x 25 25 Em lugar de utilizar a f"(xk) usamos m xq x p f x f x / x Ponto ótimo aproximado x f xq f x p apr x q f xq q p q xp O x* é encontrado após algumas iterações A derivada f'(x) pode ser obtida por diferenças finitas. 26 26 Representação geométrica do método da secante ou regula falsi ou falsa posição f’(x) f’(x) Secante xp ~ x* x* xq x A sua ordem de convergência é de aproximadamente 1,6 Requer menos esforço computacional que o quasi-Newton, pois precisa avaliar um número menor de funções 27 27 Algoritmo da Secante a. Escolha dois pontos xp e xq com derivadas de sinal contrário b. Calcule xapr* c. Calcule f’(xapr *) d. Escolha o novo par de pontos que mantém o sinal contrário entre as derivadas e. Volte à etapa b até que a tolerância admitida seja alcançada. 28 28 Avaliação dos Métodos Unidimensionais de Otimização Requisitos desejados: R1. FO seja unimodal R2. Conhecer a região de busca que contenha o extremo da FO R3. Nos MI’s dar boa estimativa inicial R4. Nos MI's, existir f’(x*) e/ou f”(x*) Conhecer as idiossincrasias dos programas. 29 29 Problemas da otimização Múltiplos extremos Erros de arredondamento FO com gradiente grande FO com gradiente próximo a zero Descontinuidades da FO Descontinuidades das FR (para problemas com restrições) Interação entre as VD’s (para multivariável). 30 30 Exercício: max L x x L x R C x sujeito a : R constante C x 20 x 2 10 x 3 x 4 31 31 Dica: max L x max R C x max C x x x x max C x min C x min C x x x x min C x min 20 x 2 10 x 3 x 4 x x 1º: use a instrução fplot ou plot do MATLAB para mapear a função objetivo 2º: use a instrução fminbnd para encontrar o ponto ótimo Ou 1º: faça o mapeamento da função objetivo no EXCEL 2º: use o solver do para encontrar o ponto ótimo 32 32 Otimização Capítulo 5: Otimização Multidimensional Sem Restrições (OMSR) . 33 33 Métodos para OMSR Devem ser eficientes e robustos Formulação geral de problemas de OMSR: encontrar x* = [x1 *,x2 *,...,xn *] que minimiza f(x) Algoritmo geral: P1. Escolha ponto(s) de partida ou estimativa inicial P2. Calcule a direção de busca sk P3. Obtenha a nova aproximação do ponto ótimo: xk+1 = xk + xk , onde xk = k.sk P4. Verifique se a tolerância foi atingida, se não volte p/ P2. 34 34 Tolerância ou Critério de Parada f x k 1 Erro absoluto na FO: f x Erro relativo na FO: f x f x f x Erro absoluto no ponto ótimo: xik 1 xik 3 ou k 1 i x x k i k k 1 k k x n k 1 i 1 k 2 i x 2 4. i 1 35 35 Erro relativo no ponto ótimo: xik 1 xik 5 k xi Erro absoluto na direção de busca: f x k 2 f x 6. i 1 x x k n 36 36 Métodos Indiretos Métodos de 1a ordem: gradiente gradiente conjugado Métodos de 2a ordem: Newton Levenberg-Marquardt Métodos da secante ou quasi-Newton: Broyden Davidson-Fletcher-Powell (DFP) Broyden-Fletcher-Goldfarb-Shano (BFGS) 37 37 MI: Gradiente Descendente Utiliza a derivada de 1a ordem O gradiente aponta para a direção de maior variação de f(x) Na minimização a direção de busca é s f x k k O ponto ótimo é atualizado por x k 1 x x x k s x k f x k k k k k k 38 38 MI para OMSR Utilizam as derivadas de 1a e/ou 2a A direção de pesquisa s é denominada direção descendente (para minimização), pois s < 0. Demonstração: k 1 k k k T f x f x f x s mas f x f x f x s 0 onde f x s f x s cos k 1 T k k k T k k T e para minimizar 90o 180o cos 0 39 39 f x pois k 1 f x k T f x . s 0 k k T f x . s T f x . s . cos k k e para minimizar 90 o 180 o cos 0 40 40 cte k = opt k= opt s k T 1 k k H x s T f x s k k Características do gradiente descendente: C1. Eficiente nas iterações iniciais C2. Baixa taxa de convergência qdo x x* C3. Bom qdo ñ existe interação entre as VD’s C4. Determina apenas pontos estacionários. 41 41 MI: Gradiente Conjugado Utiliza a derivada de 1a ordem Combina o gradiente da iteração anterior com o gradiente da iteração atual Desempenho superior ao gradiente descendente Tem taxa de convergência quadrática 42 42 Algoritmo do Grad. Conjugado P1. Defina uma estimativa inicial xo P2. Calcule f(xo), f(xo), so = - f(xo) P3. Compute x1 = xo + o.so . o é o escalar que minimiza f(x) na direção so , ou seja, é obtido através de uma busca unidimensional P4. Calcule f(x1) e f(x1). A nova direção de busca é combinação linear entre so e f(x1). 1 T T 0 0 1 1 0 s f x f x f x s f x f x 1 1 43 43 para a k-ésima iteração s k 1 f x k 1 1 T k k k f x f x s f x k 1 T f x k 1 P5. Teste se a FO esta sendo minimizada, se não volte ao passo P4. P6. Termine o algoritmo quando ||sk|| < tolerância Problema se a razão entre os produtos internos dos gradientes entre as iterações k+1 e k for pequena recaimos no gradiente descendente. 44 44 MI: Método de Newton MI de 2a ordem Aproximar f(x) por série de Taylor T 1 k k k k T k k f x f x f x x x H x x 2 Derivando em relação a x e igualando a zero: Portanto f x k H x x k k 0 Esta eq. define a direção e amplitude do passo. x x k k 1 1 k x H x f x k k 45 45 Podemos alterar o passo por: x x k k 1 k k Para avaliar o passo não é necessário inverter a Hessiana, basta resolver o SEAL 1 1 k k x H x f x k s k k H x x k k f x k Método rápido quando converge Taxa de convergência rápida perto do ponto ótimo, exatamente o comportamento contrário do método gradiente. 46 46 Desvantagens do Newton D1. Requer a inversão de uma matriz, ou pelo menos a solução de um sistema linear a cada iteração D2. Requer a avaliação analítica das derivadas de 1a e 2a ordem D3. Pode convergir para um ponto de sela se H(x) não é positiva definida D4. Tem desempenho fraco ou não converge quando a estimativa inicial é ruim. 47 47 MI: LevenbergMarquardt Combina o método do gradiente descendente com o de Newton No início se comporta como o MI gradiente No final como o MI de Newton Matriz Hessiana modificada para sempre ser positiva-definida e bem-condicionada Acrescento a Hessiana uma matriz positivadefinida; 48 48 ~ A cada iteração faço: H x H x I Ou: ~ H x H x 1 1 I Onde é um valor positivo que torna H(x) > 0 e bem-condicionada Se = 0 Método de Newton Se Método Gradiente Descendente > min(autovalor da Hessiana) Marquardt aproveita as melhores características do Gradiente Descendente e do Newton. 49 49 Algoritmo de Marquardt P1. Defina uma estimativa inicial xo e uma tolerância P2. Para k = 0 faça 0 = 103 . P3. Calcule f(xk). P4. Verifique se a tolerância foi atingida, se não continue 1 k k k k s H I f x P5. Calcule P6. Compute xk+1 = xk + k .sk ; k vem da Eq. 5-F P7. Se f(xk+1) < f(xk) vá ao p/ P8, se não vá p/ P9 P8. k+1 = 0,25 k , e k = k+1 . Volte ao passo P3 P9. k = 2 k. Volte ao passo P3. 50 50 MI: Secante ou Quasi-Newton Análogo ao Método da Secante para OUSR Algoritmo: Passo 0 (zero): P1. Defina uma estimativa inicial e uma toler. P2. Selecione uma direção de busca inicial. Usualmente so = - f(x) 0 0 P3. Calcule H H x 0 . Se H não for positiva definida faça 0 H I 51 51 Passo k P1. Calcule a amplitude do passo k P2. Calcule xk+1 que minimiza f(x) por uma busca unidimensional na direção sk x k 1 x H k k k 1 s k P3. Calcule f(xk+1) e f(xk+1) P4. Calcule xk = xk+1 - xk e g(xk) = f(xk+1) - f(xk) P5. Calcule k 1 k k H H H 52 52 P6. Calcule a nova direção de busca através de s ou de k 1 H k 1 1 f x k 1 k 1 k 1 H s f x k 1 Passo k+1 P1. Verifique se a tolerância foi atingida P2. Se o critério de parada foi atingido, pare. Se não, volte ao passo k Broyden, DFP, BFGS, etc. 53 53 Desvantagens Quasi-Newton D1. H ou H k D2. H k k 1 pode deixar de ser > 0 ou H k 1 pode ser ilimitada 54 54 Desvantagens Quasi-Newton H k 1 D1. H ou k D2. H k D3. Se x pode deixar de ser > 0 pode ser ilimitada H f x tem a ou H k k k 1 k 1 k mesma direção da iteração anterior, então H k 1 ou H k 1 1 é singular ou indeterminada. 55 55 Métodos Diretos (MD) para OMSR Não utilizam as derivadas: MD1. Busca randômica MD2. Grade de busca MD3. Busca unidirecional MD4. Método simplex ou do poliedro flexível MI’s tem taxa de convergência maior. 56 56 Busca Randômica Algoritmo P1. Fazer k = 0 P2. Randomicamente escolher um vetor xk P3. Avaliar f(xk) P4. Verificar se a tolerância foi atingida, se não retornar ao passo P2 Ponto de partida para outro algoritmo Cheque do mínimo local. 57 57 Grade de busca Mapeamento da FO segundo uma geometria definida Requer elevado esforço computacional Algoritmo: P1. Definir a topologia da grade P2. Em torno do ponto mínimo encontrado, repetir a grade e/ou torná-la mais fina. 58 58 MD: Busca Unidimensional Estabelecida uma direção, fazer uma OUSR nesta direção Eficiente para FO quadráticas sem interações entre as VP’s Algoritmo: P1. Definir um vetor de partida e tolerâncias P2. Escolher um componente j do vetor P3. Na direção de j fazer uma OUSR P4. Voltar a P3 até percorrer todos os j P5. Verificar se as tolerâncias foram atingidas. Se não ir para P2. 59 59 MD: Simplex ou Poliedro Flexível Utiliza uma figura geométrica regular (simplex) para selecionar o ponto em k+1 Em 2 dimensões o simplex é um triângulo Em 3 dimensões o simplex é um tetraedro. 60 60 Comparação MD’s x MI’s Os métodos precisam: Definição de uma região de busca convexa Na região de busca a FO seja unimodal Ponto(s) de partida Métodos Numéricos para OMSR MD’s MI’s Usam f(x) f(x), f’(x), f”(x) > no iterações < no iterações < tempo p/ iteraç. > tempo p/ iteraç. Pto(s) de partida Estimativa inicial Encontram apenas mínimos locais Fornecem solução aproximada 61 61 MD’s x MI’s O POMSR pode ser resolvido por métodos diretos ou indertos No MATLAB: help fmins (poliedro flexível) MI: linearizando a FO (métodos do gradiente) MI: linearizand o modelo (método de Newton). Método Linearização Taxa de Convergência longe da solução perto da solução Gauss-Seidel do modelo lenta alta Gradiente (descendente ou conjugado) da função objetivo alta lenta Marquardt combina a linearização do modelo com a da função objetivo inicia conforme o método do gradiente e depois se comporta como o de Gauss-Seidel Fórmula de Recorrência análoga à Equação 6-31 análoga à Equação 5-5 ou 5-8 análoga à Equação 5-14 62 62 Procedimento Geral para Resolver Problemas de Otimização 1. 2. 3. 4. 5. 6. 7. 8. 9. Definição dos objetivos Estudo Qualitativo Desenvolvimento da FO e das FR’s Mapeamento da FO Manipulação, normalização e simplificação da FO e da FO e das FR’s Aplicação do algoritmo de otimização Análise de sensibilidade e validação da solução encontrada Implementação da solução Manutenção preditiva e Auditoria continuada. 63 63 Exercício: Qual o valor máximo de f(y, z) ? Qual o valor da variável de decisão no ponto ótimo? f y, z seno 1.5242 1014 y 2 10 12 z 2 1.5242 1014 y 2 10 12 z 2 Faça o mapeamento Encontre o ponto ótimo utilizando uma rotina de otimização 64 64 Mapeamento no MATLAB clear all close all clc y = [ -10 : 0.5 : +10 ] ; z=y; [Y,Z] = meshgrid(y,z) ; aux = sqrt(1.5242*1e14*Y.^2+1e-12*Z.^2) + eps ; f = sin(aux)./aux ; surfc(Y,Z,f) xlabel('y') ylabel('z') zlabel('f') 65 65 Algoritmo no MATLAB % Programa principal: arquivo Programa_principa;.m X0 = [ -0.1 0.1 ] ; % Estimativa inicial opcoes = optimset('TolFun',1e-8,'TolX',1e-8,'Display','iter'); X=fminunc(@funcao_objetivo,X0,opcoes) % Função (subrotina): arquivo funcao_objetivo.m function [ f ] = funcao_objetivo(X) Y = X(1) ; Z = X(2) ; % aux = sqrt(1.5242*1e14*Y.^2+1e-12*Z.^2) + eps ; aux = sqrt(Y.^2+Z.^2) + eps ; f = sin(aux)./aux ; f = -f ; 66 66