• Nenhum resultado encontrado

MATRIZES QUASE-NEWTON ESPARSAS PARA PROBLEMAS DE OTIMIZAÇÃO NÃO LINEAR DE GRANDE PORTE. Evandro da Silveira Goulart

N/A
N/A
Protected

Academic year: 2021

Share "MATRIZES QUASE-NEWTON ESPARSAS PARA PROBLEMAS DE OTIMIZAÇÃO NÃO LINEAR DE GRANDE PORTE. Evandro da Silveira Goulart"

Copied!
108
0
0

Texto

(1)

MATRIZES QUASE-NEWTON ESPARSAS PARA PROBLEMAS DE OTIMIZAÇÃO NÃO LINEAR DE GRANDE PORTE

Evandro da Silveira Goulart

TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAÇÃO DOS PROGRAMAS DE PÓS-GRADUAÇÃO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE DOUTOR EM CIÊNCIAS EM ENGENHARIA MECÂNICA.

Aprovada por:

________________________________________________ Prof. José Herskovits Norman, D.Ing.

________________________________________________ Prof. Francisco José da Cunha Pires Soeiro, Ph.D.

________________________________________________ Prof. Susana Scheimberg de Makler, D.Sc.

________________________________________________ Prof. Anatoli Leontiev, Ph.D.

________________________________________________ Prof. Hélcio Rangel Barreto Orlande, Ph.D.

RIO DE JANEIRO, RJ – BRASIL AGOSTO DE 2005

(2)

GOULART, EVANDRO DA SILVEIRA Matrizes Quase-Newton Esparsas para Problemas de Otimização Não-Linear de Grande Porte [Rio de Janeiro] 2005

VIII, 100 p. 29,7 cm (COPPE/UFRJ, D.Sc., Engenharia Mecânica, 2005)

Tese - Universidade Federal do Rio de Janeiro, COPPE.

1. Otimização

2. Programação Não Linear 3. Matrizes Quase-Newton

(3)
(4)

Agradecimentos

Ao professor Herskovits, pela orientação e pelo apoio, fundamentais para a realização deste trabalho.

Aos colegas do laboratório Optimize (ainda estou devendo um churrasco). À minha namorada Ana Paula sempre ao meu lado.

À minha família que sempre me apoiou. João Patrício, Vicente, Neida, Fátima, Mariana, Antônio e Isabela.

À amiga Carmen Nilda por suas idéias mirabolantes (eu pretendo ir à praia este ano).

(5)

Resumo da Tese apresentada à COPPE/UFRJ como parte dos requisitos necessários para a obtenção do grau de Doutor em Ciências (D. Sc.)

MATRIZES QUASE-NEWTON ESPARSAS PARA PROBLEMAS DE OTIMIZAÇÃO NÃO-LINEAR DE GRANDE PORTE

Evandro da Silveira Goulart Agosto /2005

Orientador: José Herskovits Norman

Programa: Engenharia Mecânica

Os métodos Quase-Newton em problemas não-lineares de otimização geram uma aproximação da derivada segunda da função objetivo, nos casos sem restrições, e da derivada segunda do lagrangeano, nos casos com restrições. As técnicas Quase-Newton usualmente geram matrizes definidas positivas. Em problemas de otimização de grande porte, torna-se inviável a utilização do método de atualização Quase-Newton na sua forma clássica, pois este exige o armazenamento de uma matriz cheia e um grande número de operações computacionais. As principais técnicas na literatura que ampliam a atualização Quase-Newton para problemas grandes são o Método de Memória Limitada e o Método de Atualização Esparsa. Em certos problemas de otimização, as derivadas das restrições são esparsas, tornando interessante a utilização de uma atualização Quase-Newton esparsa. Apresenta-se uma nova técnica de atualização Quase-Newton esparsa através da minimização de uma função baseada na norma quadrada de Frobenuis que obedece a condição secante e gera uma matriz definida positiva. Esta atualização aumenta a esparsidade dos sistemas internos do FAIPA ampliando a eficiência de solvers esparsos durante a resolução de problemas de grande porte. Resultados numéricos mostram a boa performance dessa nova técnica associada

(6)

Abstract of Thesis presented to COPPE/UFRJ as a partial fulfillment of the requirements for the degree of Doctor of Science (D. Sc.)

SPARSE QUASI-NEWTON MATRICES FOR LARGE-SCALE PROBLEMS IN NON-LINEAR OPTIMIZATION

Evandro da Silveira Goulart August /2005 Advisor: José Herskovits Norman

Department: Mechanical Engineering

Quasi-Newton methods for nonlinear optimization construct a matrix that is an approximation of the second derivative of the function, in the unconstrained case, and of the second derivative of the Lagrangian when constraints are considered. Usually, the quasi-Newton matrix must be positive definite. Classic quasi-Newton updating rules get full matrices, requiring a very large storage area and a great number of computations, when the number of variables is large. Several techniques were developed to modify and extend updating quasi-Newton rules in several ways, to make them suitable for large problems, for instance, the Limited Memory and the Sparse Quasi-Newton Updates. The Limited Memory method avoids the storage of the quasi-Newton matrix. However, for several optimization problems, the constraints Jacobian is sparse, making interesting the use of sparse quasi-Newton matrices. We present a new updating technique to obtain positive definite sparse quasi-Newton matrices that minimize a function based on a squared Frobenius norm. This update increases the sparsity of the internal systems of FAIPA and allows the use of linear systems solvers for sparse matrices improving the efficiency for very large-scale problems. We present numerical results that show a good performance of this new technique when associated with the internal sparse solver in FAIPA.

(7)

ÍNDICE

1 – Introdução e Objetivos 1

1.1 – Considerações Gerais 1

1.1 – Organização dos Capítulos 3

2 – FAIPA: Algoritmo de Pontos Interiores por Arcos Viáveis 7

2.1 – Considerações Gerais 7

2.2 – Algoritmo do FAIPA 13

2.3 – Sistemas Simétricos no FAIPA 16 2.4 – Esparsidade dos Sistemas Internos do FAIPA 17

3 – Técnicas Quase-Newton para Problemas de Grandes Porte 20

3.1 – Introdução 20

3.2 – Introdução aos Métodos Quase-Newton 20 3.2.1 – Método Quase-Newton do tipo DFP 21 3.2.2 – Método Quase-Newton do tipo BFGS 23 3.3 – Métodos de Atualização da Matriz Quase-Newton em Problemas Grandes 24 3.3.1 – Método de Memória Limitada 24 3.3.1.1 – Produto Bkv 28 3.3.1.2 – Produto utBkv 29 3.3.2 – Método de Atualização Esparsa 30 3.3.2.1 – Atualização Esparsa de Toint (1977) 31 3.3.2.2 – Atualização Esparsa de Fletcher (1996) 36

4 – Técnica de Atualização Quase-Newton Diagonal 39

4.1 – Introdução 39

4.2 – Técnica de Atualização Diagonal 39 4.3 – Resolução do Problema 45

(8)

5 – Métodos Diretos para Solução de Sistemas Lineares Esparsos 48

5.1 – Introdução 48

5.2 – Método Direto 49

5.3 – Método Direto para Sistemas Esparsos 50 5.4 – Esquemas de Armazenamento de Matrizes Esparsas 54

5.5 – Rotina MA27 (HSL) 57

5.6 – Rotina MA28 (HSL) 59

5.7 – Rotina SSTSTRF/S (CRAY SV1) 60 5.8 – Rotina SGETRF/S (LAPACK) 61

6 – Resultados Numéricos 62

6.1 – Introdução 62

6.2 – CUTEr 63

6.3 – Resultados Numéricos – Interface FAIPA_CUTEr 66 6.4 – Apresentação do Problema HS43_NF 69 6.5 – Comparação entre diferentes solvers internos ao FAIPA 70 6.6 – FAIPA Quase-Newton Esparso 72 6.7 – Problema HS43_NF para auxiliar na comparação entre as técnicas de Atualização Diagonal, BFGS e Memória Limitada

82

6.8 – Problemas CUTEr para auxiliar na comparação entre as técnicas de Atualização Diagonal e Memória Limitada

84

7 – Conclusões e Propostas 93

7.1 – Considerações Gerais 93

(9)

CAPÍTULO 1

Introdução e Objetivos

1.1– Considerações Gerais

A Otimização trata do problema da busca da melhor alocação de um conjunto limitado de recursos, escolhendo a alternativa que maximize o lucro ou minimize o custo, dentre todas aquelas que satisfazem um conjunto específico de restrições.

A otimização pode ser aplicada em numerosas áreas de conhecimento, incluindo: gestão de cadeias de suprimento (planejamento, produção, distribuição); transporte (roteiros, gestão de frotas e tripulação); indústria petroquímica (aquisição de materiais, projeto e operação de refinarias, distribuição); aplicações militares (logística, alocação de pessoal, operações de guerra); finanças (operação de carteiras, gestão de recursos financeiros); otimização do projeto de estruturas, veículos terrestres, marítimos e aeroespaciais, equipamentos para diversas indústrias de processamento em geral [10].

A busca de melhores soluções é um dos grandes objetivos da Engenharia. Desta forma, a Engenharia tem, cada vez mais, investido na área de otimização para que seja possível aplicar esta ferramenta em problemas de grande porte. Logo há um grande interesse em se desenvolver algoritmos de otimização eficientes e robustos [32].

O presente trabalho terá como base o FAIPA (Feasible Arc Interior Point

Algorithm), desenvolvido por HERSKOVITS [24][25][26][27]. Este algoritmo é um

método de Pontos Interiores e Arcos Viáveis que resolve o problema geral de otimização não-linear, fazendo iterações nas variáveis de projeto e nos multiplicadores de Lagrange para resolver as condições de otimalidade de Karush-Kuhn-Tucker.

(10)

Em cada iteração o FAIPA resolve três sistemas lineares internos com a mesma matriz de coeficientes. Nestes sistemas está incluída a derivada segunda da função Lagrangiana, H(x,λ,µ), ou uma aproximação Quase-Newton ( B ) da mesma.

O FAIPA tem se mostrado confiável e eficiente na solução de problemas de médio e pequeno porte. Estas características o qualificam para servir como base em nossos estudos, cujo objetivo é resolver problemas do tamanho requerido pelas aplicações modernas. O FAIPA vem sendo utilizado em indústrias de primeira linha assim como em universidades e centros de pesquisa [27].

Em linhas gerais, este trabalho tem como objetivo principal o desenvolvimento teórico e computacional de técnicas para programação não-linear, baseadas no FAIPA, para a solução de problemas de grande porte, aproveitando a esparsidade dos sistemas internos ao FAIPA.

Uma questão que será amplamente abordada diz respeito à atualização da matriz

B no Método Quase-Newton, o qual substitui o cálculo da Hessiana do lagrangeano em

problemas com restrições. Os algoritmos modernos exigem que a matriz B seja definida positiva, para garantir convergência.

Em problemas com muitas variáveis torna-se inviável a utilização desse método na sua forma clássica (DFP ou BFGS, por exemplo), pois este exige o armazenamento e manipulação de uma matriz cheia, de dimensão igual ao número de variáveis. Existem várias técnicas na literatura que ampliam a atualização Quase-Newton para problemas grandes. Serão abordadas algumas das principais técnicas: o Método de Memória Limitada e o Método de Atualização Esparsa.

O Método de Memória Limitada foi desenvolvido inicialmente para problemas sem restrições e posteriormente estendido para problemas com restrições de caixa. O FAIPA apresenta uma adaptação para empregar essa técnica em problemas com quaisquer tipos de restrições não-lineares [16].

Técnicas de atualização esparsas Quase-Newton presentes nos artigos de TOINT [37][38][39] e FLETCHER [13][14], foram utilizadas como referência na concepção de uma nova técnica esparsa.

No fim dos anos 70, Toint propôs uma técnica de atualização esparsa para problemas de grande porte. A técnica Quase-Newton de Toint além de não produzir uma matriz definida positiva, exige o armazenamento dessa matriz a cada iteração [35].

(11)

Nos anos 90, Fletcher publicou uma técnica esparsa que não exige o armazenamento da matriz a cada iteração, pois as informações necessárias para a atualização são guardadas do mesmo modo que no Método de Memória Limitada. No entanto, essa técnica além de não gerar matrizes definidas positivas [14], não apresenta bons resultados numéricos na resolução de problemas de grande porte [35].

No presente trabalho propõe-se uma nova técnica que aproveita o conceito de memória limitada para armazenar informações do problema durante as iterações e obter uma matriz B diagonal definida positiva com um reduzido custo computacional.

Essa nova técnica de atualização aumenta a esparsidade dos sistemas lineares internos do FAIPA, permitindo um melhor aproveitamento de solvers que consideram a esparsidade de matrizes visando a redução do custo computacional.

Comparou-se o novo método de atualização esparsa e o método de memória limitada juntamente com o FAIPA.

A solução de problemas de grande porte implica na solução de sistemas lineares internos ao FAIPA com elevado número de equações. Para resolver tais problemas integraram-se ao FAIPA técnicas como a utilizada na rotina MA27, desenvolvida pelo CSE Group [21], utilizada para resolver sistemas de equações lineares simétricos e esparsos. Essa rotina utiliza o Método Direto baseado numa variante da eliminação gaussiana para sistemas esparsos [7]. Já foram resolvidos sistemas, junto ao FAIPA, com 20.000 equações.

Um melhor aproveitamento desses recursos pode ser obtido mediante a utilização de técnicas de computação de alto desempenho. Uma das alternativas é a implementação da rotina SSTSTRF/S escrita na linguagem Fortran que resolve sistemas lineares com estrutura simétrica esparsa através do método direto em ambiente de computação paralela e vetorial. Ela foi desenvolvida para o ambiente do sistema operacional UNICOS [4] do computador CRAY SV1, disponível através do Núcleo de Atendimento em Computação de Alto Desempenho (NACAD-COPPE/UFRJ). Essa rotina auxiliou na obtenção de resultados importantes com o FAIPA em ambiente de computação de alto desempenho.

Embora nosso objetivo esteja focado na solução de sistemas esparsos, a Técnica de Memória Limitada junto ao FAIPA requer o uso de solvers para sistemas densos. Nesse sentido, para um melhor desempenho da Técnica de Memória Limitada com o

(12)

FAIPA, foi necessária a implementação do solver para sistemas densos não simétricos SGETRF/S pertencente ao conjunto de rotinas do LAPACK.

Para testar as novas idéias adicionadas no algoritmo FAIPA, utilizou-se uma ferramenta computacional chamada CUTEr (Constrained and Unconstrained Testing

Environment revisited) que apresenta uma coleção de problemas testes amplamente

utilizados na literatura [17]. O CUTEr é uma ferramenta que auxilia no projeto e desenvolvimento de softwares em otimização.

Para utilizar essa ferramenta são necessárias duas etapas: a decodificação e criação da interface. A plataforma de decodificação CUTEr é disponível para sistemas operacionais UNIX e LINUX. No presente trabalho utilizou-se o sistema operacional LINUX durante a etapa de decodificação. A interface é um conjunto de rotinas escritas em FORTRAN 77 e FORTRAN 90 que fornecem os dados referentes aos problemas testes e devem ser adaptadas ao algoritmo de otimização (no nosso caso o FAIPA).

1.2 – Organização dos capítulos

O trabalho que segue está organizado em capítulos da seguinte forma:

Capítulo 2 – FAIPA: Algoritmo de Pontos Interiores e de Arcos Viáveis:

Está descrito o algoritmo FAIPA, base deste trabalho, e as alterações no FAIPA Esparso. Essa alterações fazem parte da implementação de solvers que aproveitam a esparsidade dos sistemas lineares no intuito de resolver problemas de grande porte.

Capítulo 3 – Técnicas Quase-Newton para Problemas de Grande Porte:

Inicialmente descreve-se o principal método Quase-Newton: o BFGS. Em seguida são apresentadas algumas técnicas já existentes para solucionar o problema de atualização da matriz Quase-Newton em problemas de grande porte, tais como o Método de Memória Limitada e Método de Atualização Esparsa.

(13)

No entanto, o objetivo principal deste capítulo é mostrar como está inserida, nesse contexto, uma nova técnica numérica para este tipo de atualização que aproveita a esparsidade na busca de um melhor rendimento computacional em problemas considerados de grande porte, além de gerar matrizes atualizadas simétricas positivas definidas.

Capítulo 4 – Técnica de Atualização Quase-Newton Diagonal:

Detalhamento da nova técnica de atualização Quase-Newton diagonal. Com essa atualização obtêm-se matrizes positivas definidas que apresentam um padrão esparso que permite melhorar o desempenho do FAIPA na resolução de problemas com um grande número de variáveis e de restrições.

Capítulo 5 – Técnicas para Solução de Sistemas de Equações Através de Métodos Diretos:

São apresentados os fundamentos do método de resolução de sistemas esparsos de equações lineares utilizado na rotina MA27, MA28 e na rotina SSTSTRF/S, sendo esta última desenvolvida para o ambiente computacional do computador CRAY SV1.

No entanto, para um melhor desempenho da Técnica de Memória Limitada junto ao FAIPA, foi necessário a implementação de um solver para sistemas densos. Optou-se pelo solver SGETRF/S pertencente ao conjunto de rotinas do LAPACK.

Capítulo 6 – Testes Numéricos:

Nesse capítulo, inicialmente descreveu-se a ferramenta CUTEr utilizada para auxiliar na realização de testes numéricos com o FAIPA e apresentou-se o problema HS43_NF que também auxiliou na tarefa de realizar testes numéricos.

Em seguida, usando o problema HS43_NF, realizaram-se testes para verificação do desempenho das rotinas MA27 e MA28 quando implementadas no FAIPA.

Logo depois estão os resultados da Nova Técnica de Atualização Quase-Newton Esparsa. Comparou-se esta técnica com as atualizações BFGS e de Memória Limitada.

(14)

Mostraremos os gráficos com as iterações do FAIPA quando este usou cada uma das técnicas.

Por fim, para a obtenção de resultados com problemas maiores através da interface CUTEr ou com o problema HS43_NF, utilizou-se um computador AMD Atlon 1800 MHz com 1.5Gb de Memória RAM e, principalmente, o computador CRAY SV1 com 12 processadores e 16Gb de memória RAM para comparar o desempenho da Técnica Esparsa Diagonal com a de Memória Limitada junto ao FAIPA.

Capítulo 7 – Conclusões e Propostas

Este capítulo apresenta as conclusões sobre os resultados obtidos no Capítulo 6 quando foram comparadas várias técnicas de atualização da matriz Quase-Newton (B), quando associadas ao FAIPA.

(15)

CAPÍTULO 2

FAIPA: Algoritmo de Pontos Interiores por

Arcos Viáveis.

2.1 – Considerações Gerais

O algoritmo de pontos interiores por arcos viáveis (FAIPA) é uma técnica nova para otimização com restrições de desigualdade e restrições de igualdade. FAIPA requer um ponto inicial no interior das restrições de desigualdades e gera uma seqüência de pontos interiores. Quando o problema tem somente restrições de desigualdade a função objetivo é reduzida em cada iteração. Uma função auxiliar é empregada quando existem também restrições de igualdade.

O fato de fornecer pontos interiores, até mesmo quando as restrições são não-lineares, torna o FAIPA uma ferramenta eficiente para projetos de otimização em engenharia.

Considere o problema de programação não linear com restrições de igualdade e desigualdade: ⎪ ⎪ ⎩ ⎪⎪ ⎨ ⎧ = = = ≤ ℜ ∈ p i x h e m i x g sujeito a x x f minimize i i n x ,..., 1 ; 0 ) ( ,..., 1 ; 0 ) ( ), ( (2.1)

(16)

onde: x∈ℜnsão as variáveis do projeto, f(x)∈ℜ é a função objetivo, g(x)∈ℜm são as restrições de desigualdade e h(x)∈ℜp são as restrições de igualdade.

Denotaremos ∇g(x)∈ℜnxm e ∇h(x)∈ℜnxp as matrizes dos gradientes de g e h, respectivamente, e chamaremos de

λ

∈ℜm e µ∈ℜp os vetores com os multiplicadores de Lagrange.

Em (2.2) temos o Lagrangeano do problema (2.1) e em (2.3) temos a Hessiana do Lagrangeano. ) ( ) ( ) ( ) , , (x f x g x h x l λ µ = +λt +µt (2.2)

= = ∇ + ∇ + ∇ = p i i i m i i i g x h x x f x L 1 2 1 2 2 ) ( ) ( ) ( ) , , ( λ µ λ µ (2.3)

Define-se

G(x)∈ℜmxm

uma matriz diagonal tal que

Gii(x)=gi(x)

.

O algoritmo FAIPA (Feasible Arc Interior Point Algorithm), proposto por HERSKOVITS [27], é um método de pontos interiores por arcos viáveis que resolve o problema geral de otimização não-linear (2.1) fazendo iterações nas variáveis de projeto

x (variáveis primais) e nos multiplicadores de Lagrange (variáveis duais) para resolver

as condições de otimalidade de Karush-Kuhn-Tucker (KKT).

As condições de otimalidade de Karush-Kuhn-Tucker correspondentes ao problema (2.1) podem ser escritas da seguinte forma:

0 ) ( 0 0 ) ( 0 ) ( 0 ) ( ) ( ) ( ≤ ≥ = = = ∇ + ∇ + ∇ x g x h x G x h x g x f λ λ µ λ (2.4) (2.5) (2.6) (2.7) (2.8)

Um ponto x* é dito estacionário se existe λ* e µ* tal que as igualdades (2.4), (2.5) e (2.6) são verdadeiras e será um Ponto de KKT se todas as equações (2.4), (2.5), (2.6), (2.7) e (2.8) são confirmadas.

(17)

equações (2.4), (2.5) e (2.6) de tal forma que as desigualdades (2.7) e (2.8) sejam respeitadas.

FAIPA faz iterações de Newton para resolver as equações não-lineares (2.4), (2.5) e (2.6) nas variáveis primais e duais.

Com o objetivo de garantir convergência para pontos KKT, um sistema é resolvido de tal forma que as desigualdades (2.7) e (2.8) sejam satisfeitas em cada iteração.

Seja )S =L(x,λ,µ e Λ∈Rmxm uma matriz diagonal com os termosΛii = . λi Com uma iteração de Newton para a resolução de (2.4), (2.5) e (2.6) obtém-se o seguinte sistema linear:

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡∇ +∇ +∇ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − − ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ∇ ∇ Λ ∇ ∇ ) ( ) ( ) ( ) ( ) ( -0 0 ) ( 0 ) ( ) ( ) ( ) ( 0 0 0 x h x G x h x g x f x x x h x G x g x h x g S t t λ µ λ µ µ λ λ (2.9)

onde )(x,λ,µ se referem a iteração atual e (x000) se referem ao novo ponto que será obtido. Podemos considerar S≡ , isto é, a uma aproximação Quase-Newton de B

) , , (xλ µ

L ou considerar, também, S≡ , onde I é a identidade. I

Considerando que um dos objetivos desse trabalho é propor uma nova técnica de atualização Quase-Newton, a partir de agora em todos os sistemas do FAIPA que serão apresentados teremos S ≡ . B

Seja d0∈ℜn tal que d0 =x0x. Através de (2.9) temos:

⎪ ⎩ ⎪ ⎨ ⎧ − = ∇ = + ∇ Λ −∇ = ∇ + ∇ + ) ( ) ( 0 ) ( ) ( ) ( ) ( ) ( 0 0 0 0 0 0 x h d x h x G d x g x f x h x g Bd t t λ µ λ (2.10)

que independe do valor de µ0. A resolução do sistema (2.10) fornece a direção d além 0 de uma nova estimativa dos multiplicadores de Lagrange.

(18)

Seja a função potencial

= + = p i i ih x c x f c x 1 ) ( ) ( ) , ( φ (2.11)

onde na iteração k, c é tal que ik

0 ) ( ) ( ) ( 01 < + k k i i c x h x h µ , i=1,2,K,p (2.12)

Está provado [24][25] que d0k é uma direção de descida de φ(x,ck). No entanto d não é sempre uma direção viável [27]. 0

Para obter uma direção viável, um vetor negativo é adicionado ao lado direito de (2.10). ⎪ ⎩ ⎪ ⎨ ⎧ = ∇ − = + ∇ Λ −∇ = ∇ + ∇ + 0 ) ( ) ( ) ( ) ( ) ( ) ( d x h x G d x g x f x h x g Bd t t λ ρλ µ λ (2.13) onde ρ∈ℜ é positivo.

Agora, d é uma direção viável desde que tig(x)d =−ρ<0 para as restrições ativas.

Para assegurar que d é também uma direção de descida, é preciso estabelecer um critério para a obtenção de ρ de tal forma que:

( )

xc d

( )

x c dt t , , α 0 φ φ ≤ ∇ ∇ (2.14) com α∈(0,1), então dt∇φ

( )

x,c <0.

(19)

⎪ ⎩ ⎪ ⎨ ⎧ = ∇ − = + ∇ Λ = ∇ + ∇ + 0 ) ( ) ( ) ( 0 ) ( ) ( 1 1 1 1 1 1 d x h x G d x g x h x g Bd t t λ λ µ λ (2.15)

Então, podemos considerar que:

1

0 d

d

d = +ρ (2.16)

onde temos que a desigualdade (2.14) é obedecida para qualquer ρ>0 se

( )

, 0

1∇ xc <

dt φ

.

Caso contrário, faz-se

) , ( ) , ( ) 1 ( 1 0 c x d c x d t t φ φ α ρ ∇ ∇ − < , (2.17) que obedece (2.14).

O algoritmo de pontos interiores de direções viáveis (FDIPA) descrito em [24], utiliza essa direção d como direção de descida. O procedimento de busca linear procura um passo t que assegure que o novo ponto (x+td) satisfaça as restrições de desigualdade e com um razoável decréscimo na função potencial auxiliar φ(x00).

No entanto, quando há restrições extremamente não lineares, o comprimento do passo pode tornar-se muito pequeno acarretando uma convergência mais lenta. Esse fato é similar ao Efeito Maratos [27].

Basicamente, a idéia para evitar esse problema consiste em fazer uma busca linear através de um arco de segunda ordem, tangente à direção viável de descida ( d ) e com curvatura próxima aquela da restrição ativa.

Sendo: d x g x g d x g t i i i I i ( ) ( ) ( ) ~ = + ω i=1,...,m (2.18)

(20)

d x h x h d x h t i i i E i ( ) ( ) ( ) ~ = + ω j=1,...,p (2.19)

O arco em x é definido da seguinte forma:

d t td x xk 2~ 1= + + + (2.20)

onde d~é obtido resolvido o sistema (2.21).

⎪ ⎪ ⎩ ⎪⎪ ⎨ ⎧ − = ∇ Λ − = + ∇ Λ = ∇ + ∇ + E t I t d x h x G d x g x h x g d B ω ω λ µ λ ~ ~ ) ( ~ ~ ) ( ~ ) ( 0 ~ ) ( ~ ) ( ~ (2.21)

O arco empregado no FAIPA é representado na Figura 2.1 onde a restrição 0

) (x

gi é ativa na iteração xk. Uma vez que d0ke dk são direções de descida da função potencial φ(x) em x , o ângulo com k −∇φ(xk) é agudo.

A Figura 2.1 representa o arco viável no caso em que há uma restrição ativa, isto é gi(xk)=0. HERSKOVITS et al. [27] prova que é possível caminhar a partir de xk ao

longo de um arco até um novo ponto viável com um valor mais baixo da função objetivo.

Figura 2.1- Arco Viável. d1 d0 −∇φ (x) ∇g (x) d d ~ Feasible arc d1 ρ xk gi(x) = 0

(21)

Em problemas que utilizam uma direção de busca e apresentam restrições altamente não lineares, o grau de convergência dos algoritmos pode ser prejudicado, já que o passo é muito pequeno. Todavia, o algoritmo FAIPA baseado no método de arcos viáveis não apresenta este problema de convergência, pois ao definir-se o arco leva-se em consideração a curvatura da restrição, aumentando assim a convergência do problema para a solução ótima.

2.2 - Algoritmo do FAIPA

O algoritmo de pontos interiores e arcos viáveis para resolver o problema (2.1) será descrito abaixo de forma resumida, a fim de se conhecer o seu funcionamento.

Parâmetros: ) 1 , 0 ( ∈ α e ϕ >0 Dados Iniciais: 0 a

x∈Ω , onde Ω representa uma região viável. 0a 0 > λ , λ∈Rm, 0 > µ , µ∈Rp, nxn R

B∈ simétrica definida positiva 0

=

i

c , cRp

Passo 1: Determinação da direção de descida.

(i) Resolva o sistema linear em (d , 0 λ0, µ0), que chamaremos de Sistema (I):

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡∇ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ∇ ∇ Λ ∇ ∇ ) ( 0 ) ( -0 0 ) ( 0 ) ( ) ( ) ( ) ( 0 0 0 x h x f d x h x G x g x h x g B t t µ λ (2.22)

(22)

onde d0Rn, λ0Rm, µ0Rp. Se 0d0 = , Pare.

(ii) Resolva o sistema linear em (d , 1 λ1, µ1), que chamaremos de Sistema (II)::

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ∇ ∇ Λ ∇ ∇ 0 0 -0 0 ) ( 0 ) ( ) ( ) ( ) ( 1 1 1 λ µ λ d x h x G x g x h x g B t t (2.23) onde d1Rn, λ1Rm, µ1Rp, Λiii, sendo i=1,...,m. (iii) Seja a seguinte função potencial

= + = p i i i c x f x c h x 1 ) ( ) ( ) ( φ (2.24) (iv) Se ci<1.2µ0(i), então ci =−2µ0(i), i=1,2,K,p (iv) Se d1t∇φc

( )

x >0 então: ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ∇ ∇ − = ) ( ) ( ) 1 ( ; min 1 0 2 2 0 x d x d d c t c t φ φ α ϕ ρ (2.25) Senão: 2 2 0 d

ϕ

ρ

= (2.26)

(v) Determinação da direção de descida d.

1

0 d

d

(23)

(i) Seja: d x g x g d x g t i i i I i ( ) ( ) ( ) ~ = +

ω

i=1,...,m (2.28) d x h x h d x h t i i i E i ( ) ( ) ( ) ~ = + ω j=1,...,p (2.29)

(ii) Resolva o sistema linear em (d~,λ~,µ~), que chamaremos de Sistema (III):

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ Λ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ∇ ∇ Λ ∇ ∇ E I t t d x h x G x g x h x g B ω ω µ λ ~ ~ 0 -~ ~ ~ 0 0 ) ( 0 ) ( ) ( ) ( ) ( (2.30) Onde Λiii, sendo i=1,...,m. Passo 3: Busca no arco.

(i) Encontre um passo de comprimento t que satisfaça um de critério de busca linear baseado na função potencial auxiliarφc(x+td+t2d~)

Passo 4: Atualização.

(i) Obter o novo ponto xk+1:

d t td x xk 2~ 1= + + + (2.31)

(ii) Se o problema em xk+1verifica o(s) critério(s) de parada do algoritmo: Pare

Senão

Defina uma nova atualização de λ e B , considerando λ>0 e B simétrica positiva definida. Então vá para o Passo 1.

(24)

Algumas alternativas para a atualização de λ e B são discutidos em [22]. Elas conduzem a algoritmos com diferentes performances em termos da velocidade de convergência local.

O tamanho dos sistemas lineares (2.22), (2.23) e (2.30) é igual à soma do número das variáveis mais o número de restrições de desigualdade e de igualdade. Em [27] prova-se que estes sistemas têm uma solução única.

É importante ressaltar que já foi provado que o algoritmo aqui apresentado tem convergência global para toda matriz B, simétrica definida positiva, e para qualquer λ >0 [27].

2.3 – Sistemas Simétricos no FAIPA

Analisando os sistemas lineares (I), (II) e (III) descritos em (2.22), (2.23) e (2.30), respectivamente, constata-se que todos são assimétricos. Tornar esses sistemas simétricos é uma alternativa para obtermos uma redução no custo computacional, considerando-se que o problema de otimização seja de grande porte e que o algoritmo faça uso da esparsidade das matrizes.

Considerando a equação (2.32) parte do Sistema (I):

0 ) ( ) ( 0+ 0= ∇ Λ gt xd Gxλ (2.32) Multiplicando (2.32) por Λ −1 0 ) ( ) ( 0+Λ1 0= ∇gt xdG xλ (2.33)

Da multiplicação entre as matrizes diagonais Λ e −1 G(x) na verdade resultará uma matriz Ψ(x) também diagonal onde

i i ii(x)=g(x)/λ

(25)

Então (2.34) pode ser escrita da seguinte maneira: 0 ) ( ) ( 00 = ∇gt xd xλ (2.35)

Substituindo (2.35) em (2.22) temos um novo Sistema (I), porém simétrico.

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡∇ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ∇ Ψ ∇ ∇ ∇ ) ( 0 ) ( -0 0 ) ( 0 ) ( ) ( ) ( ) ( 0 0 0 x h x f d x h x x g x h x g B t t µ λ (2.36)

O mesmo procedimento será feito nos demais sistemas (II) e (III).

O Sistema (II), agora simétrico é descrito em (2.37):

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ∇ Ψ ∇ ∇ ∇ 0 0 -0 0 ) ( 0 ) ( ) ( ) ( ) ( 1 1 1 e d x h x x g x h x g B t t µ λ (2.37)

onde e∈ℜm é um vetor com componentes unitárias, isto é, ei =1, i=1,...,m. O Sistema (III), agora simétrico é descrito em (2.38):

⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ∇ Ψ ∇ ∇ ∇ E I t t d x h x x g x h x g B ω ω µ λ ~ ~ 0 -~ ~ ~ 0 0 ) ( 0 ) ( ) ( ) ( ) ( (2.38)

Além do aproveitamento da simetria e da esparsidade, será proposta uma nova alternativa de atualização da matriz B.

(26)

2.4 – Esparsidade dos Sistemas Internos do FAIPA

Uma matriz é considerada esparsa se muitos dos seus elementos são nulos. Uma outra maneira de considerar se uma matriz é esparsa, é quando existe a possibilidade de obter vantagens computacionais ao explorar apenas os elementos diferentes de zero dessa matriz.

O interesse de aproveitar a esparsidade de matrizes tem se intensificado, cada vez mais, pois esse tipo de estrutura matricial proporciona uma enorme redução do custo computacional e também devido ao fato de muitos dos problemas em engenharia serem esparsos [7].

Seja a matriz não simétrica (2.39) que compõem os sistemas (2.22), (2.23) e (2.30). 0 0 ) ( 0 ) ( ) ( ) ( ) ( ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ∇ ∇ Λ ∇ ∇ x h x G x g x h x g B t t (2.39)

Para analisar a influência da relação entre o número de variáveis n e de restrições (m+p) no número de elementos nulos da matriz (2.39), montou-se o Gráfico 2.1. No eixo das abscissas temos n/(m+p) e a porcentagem correspondente de elementos nulos, no eixo das ordenadas.

Considerou-se dois casos no Gráfico (2.1). O primeiro que chamaremos de Caso

1, considera a matriz Quase-Newton B∈ℜnxn, a matriz dos gradientes das restrições de desigualdade ∇g(x)∈ℜnxm e a matriz com os gradientes de igualdade ∇h(x)∈ℜnxp todas elas densas.

No Caso 2 a matriz B∈ℜnxn é diagonal e mantém-se ∇g(x)∈ℜnxm e

nxp

x

h ∈ℜ

∇ ( ) densas.

Analisando as informações do Gráfico (2.1) podemos afirmar que no Caso 1 o número de elementos nulos diminui quando há mais variáveis que restrições.

(27)

No Caso 2 a matriz (2.39) terá 50% de elementos nulos quando há igualdade entre o número de variáveis e restrições. Para qualquer outra relação entre variáveis e restrições haverá um aumento no número de elementos nulos na matriz (2.39).

0 10 20 30 40 50 60 70 80 0,20 0,25 0,33 0,50 1 2 3 4 5 Relação Variáveis/Restrições El em en to s N u lo s (% ) Caso 1 Caso 2

Gráfico 2.1- Influência da relação entre número de variáveis e de restrições no número de elementos nulos da matriz (2.39).

No Capítulo 4 será apresentada uma técnica de atualização Quase-Newton que gera matrizes diagonais. Através do Gráfico 2.1 percebemos que essa atualização irá aumentar significativamente a esparsidade dos sistemas internos do FAIPA utilizados em cada iteração e permitindo um melhor aproveitamento ao utilizar solvers que exploram a estrutura da matriz na resolução de sistemas de equações, no intuito de reduzir o custo computacional.

Serão implementadas no FAIPA alterações na maneira de armazenar as matrizes dos sistemas esparsos. As estruturas de dados para armazenamento desse tipo de matrizes consideram apenas os elementos não nulos. Esse assunto será abordado no Capítulo 5.

(28)

CAPÍTULO 3

Técnicas Quase-Newton para Problemas

de Grande Porte

3.1 – Introdução

Antes de abordar o assunto principal desse capítulo, a atualização da matriz Quase-Newton em problemas de grande porte, iniciaremos com uma breve abordagem sobre os métodos Quase-Newton, do tipo DFP e do tipo BFGS, que obedecem a condição secante e geram matrizes definida positiva.

Em seguida serão apresentados os métodos de atualização da matriz Quase-Newton utilizados na resolução de problemas de otimização que apresentam um grande número de variáveis de projeto. Por fim, será abordado o tema que trata de uma nova técnica de atualização esparsa da matriz Quase-Newton.

3.2 – Introdução aos Métodos Quase-Newton

Seja o seguinte problema:

) (x

f

minimize (3.1)

(29)

O método de Newton modificado consiste em encontrar um novo ponto a cada iteração da seguinte forma:

) ( - k 1 k k k k x t S f x x+ = ∇ (3.2)

onde S∈ℜnxn é uma matriz simétrica, ∇f∈ℜn o gradiente da função no ponto e t é k escolhido de tal forma que minimize f(xk+1). Se S= F−1 for a inversa da Hessiana temos o método de Newton e se S = , onde I I é a matriz identidade, nos temos o

steepest descent.

Através dos métodos Quase-Newton é possível obter uma aproximação

nxn

H∈ℜ da inversa da matriz Hessiana, ao invés da exata exigida nos Métodos de Newton. Essa aproximação é feita obedecendo a Condição Secante descrita em (3.3).

k k k y s

H +1 = (3.3)

Onde, de acordo com o problema sem restrições (3.1), temos os seguintes vetores s e k y : k 1 + − = k k k x x s (3.4) ) ( ) ( −∇ +1 ∇ = k k k f x f x y (3.5)

3.2.1 – Método Quase-Newton do tipo DFP

Nos anos 50, a necessidade de um algoritmo que acelerasse as iterações durante a resolução de problemas de minimização do tipo (3.1), isto é, que resolvesse rapidamente com custo computacional reduzido fez com que Davidon [35] desenvolvesse o primeiro algoritmo Quase-Newton que deu origem ao DFP.

O DFP (Davidon, Fletcher e Powell), um dos primeiros métodos a construir uma aproximação da inversa da hessiana, foi originalmente proposto por Davidon em 1959, e posteriormente desenvolvido por Fletcher e Powell em 1963 [35].

(30)

Seja H∈ℜnxn a aproximação da inversa da Hessiana. Então, em cada iteração temos a seguinte atualização:

k k t k k t k k k k t k t k k k k y H y H y y H y s s s H H +1= + − (3.6)

Se consideramos a matriz B a aproximação da Hessiana de tal forma que B= H−1, temos em (3.7) a seguinte Condição Secante, também conhecida como Condição Quase-Newton.

k k k s y

B +1 = (3.7)

Onde (3.3) e (3.7) são duais.

Dessa forma, podemos considerar a seguinte atualização da matriz B :

k T k T k k T k k k k T k k k k k s y y y s B s B s s B B B +1= − + (3.8)

A equação (3.8) é denominada atualização BFGS da matriz .B

Outra regra de atualização de H é a inversão de B apresentada na Equação k+1 (3.9). Para isto utiliza-se a fórmula de Sherman-Morrison para se determinar Hk+1:

k t k t k k k k t k k k t k t k k k t k k k t k k k s y s y H H y s y s s s s y y H y H H ⎟⎟ − + ⎠ ⎞ ⎜⎜ ⎝ ⎛ + + = +1 1 (3.9)

(31)

3.2.2 – Método Quase-Newton do tipo BFGS

O mais popular dos métodos Quase-Newton é o BFGS, denominado dessa maneira para referir-se aos idealizadores da técnica: Broyden, Fletcher, Goldfarb e Shanno.

A atualização BFGS da matriz B é apresentada em (3.8), onde k+1 s e k y são k descritos em (3.4) e (3.5), respectivamente.

Em problemas sem restrições, a atualização BFGS produzirá uma matriz B k+1 simétrica definida positiva sempre que a matriz B também seja definida positiva e que k se verifique, além da Condição Quase-Newton (3.7), a seguinte condição de curvatura:

0 > k T k y s (3.20)

Em problemas com restrições, o vetor y é obtido da seguinte maneira: k

) , , ( ) , , ( k 1 k 1 k 1 x k k k x k l x l x y =∇ + λ + µ + −∇ λ µ (3.21)

onde l é o lagrangeano da função objetivo.

No entanto, em problemas com restrições, a Hessiana exata do problema não é necessariamente definida positiva na solução. Portanto, nesses casos, nem sempre é possível garantir que a matriz B obtida através da atualização BFGS seja definida positiva. Para superar essa dificuldade, Powell propôs uma modificação da atualização BFGS [24].

Ele sugeriu que se

k k T k k T k y s B s s <0.2 (3.22)

então calcula-se φ para obter um novo y , mantendo-se o mesmo k s . k

k T k k k T k k k T k y s s B s s B s − = 0.8 φ (3.23)

(32)

O novo y é obtido da seguinte maneira: k k k k k y B s y =φ +(1−φ) (3.24)

E, por fim, com novo vetor y , além de k s e k B , através da mesma equação k (3.17) temos a atualização de B para o problema com restrições. k+1

3.3 – Métodos de Atualização da Matriz Quase-Newton em Problemas Grandes

O Método Quase-Newton, na sua forma clássica (BFGS, por exemplo), não pode ser usado para otimização de problemas grandes, pois gera e, por conseqüência, manipula matrizes densas, o que torna o custo computacional elevado e inviável. É possível, no entanto, modificar e estender esse método de diversas maneiras afim de torná-lo eficiente para a resolução de problemas de grande porte [35].

As principais técnicas para esse tipo de atualização são as seguintes: ƒ Método de Memória Limitada;

ƒ Método de Atualização Esparsa;

3.3.1 – Método de Memória Limitada

A técnica de memória limitada, concebida para resolução de problemas de otimização não linear de grande porte, é baseada no método quase-Newton, permite aproximar a inversa da matriz Hessiana da função que se deseja minimizar sem a necessidade de armazenamento dessa matriz. As vantagens deste método estão na economia no armazenamento em memória e na redução do número de operações [2].

(33)

Considerando inicialmente a aproximação BFGS da Hessiana apresentada na equação (3.22). k T k T k k k k T k k T k k k k k y s y y s B s B s s B B B +1= − + (3.25)

Sendo B a aproximação da Hessiana e os vetores s e k y descritos em (3.26) e k (3.27), respectivamente k k k x x s = +1− (3.26) ) ( ) ( k 1 k k f x f x y =∇ + −∇ (3.27)

onde ∇f(xk+1) e ∇f(xk) são os gradientes da função objetivo nos pontos xk+1 e x k respectivamente.

Segundo [2], é possível representar de forma mais conveniente a regra de atualização BFGS da equação (3.25). Esta nova forma é conhecida como uma representação compacta da matriz BFGS e está descrita em (3.28).

Seja B uma matriz simétrica positiva definida e assumido-se que os k pares 0

1 1

}

{siyi ik=− satisfazem stiyi >0. Seja B obtida na k késima atualização de B pela fórmula 0 direta BFGS (3.25), ao tomarmos os pares {siyi}ki=11 podemos então escrever

[

]

⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − − = − t k t k k t k k k t k k k k Y B S D L L S B S Y S B B B 0 1 0 0 0 (3.28) sendo ] ,...., [ 0 k k s s S = (3.29) ] ,...., [ 0 k k y y Y = (3.30)

(34)

⎩ ⎨ ⎧ > = − − contrário caso 0 se ) (L s 1yj1 i j t i ij k (3.31) ij k L )

( é uma matriz triangular (k×k)

] ,..., [ diag 0 0 1 1 = t k k t k s y s y D (3.32) k

D é uma matriz diagonal (k× . k)

Usando o esquema apresentado em [2], ao invés de se considerar os k pares

1 1

}

{siyi ik=− para atualizar a matrizB, é possível tomar somente os m últimos pares. Durante as primeiras k iterações, quando k ≤ , as matrizes m S e k Y armazenarão os k

k pares de vetores s e y . Nas iterações subseqüentes quando k> , o procedimento m

de atualização de S e k Y é alterado de tal forma que sejam removidos os pares s e k y mais antigos e adicionados pares mais novos.

Além disso, assume-se que B0kI, e reformula-se a equação (3.28):

[

]

⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − − = − t k t k k k t k k k t k k k k k k k Y S D L L S S Y S I B ε ε ε ε 1 (3.33) onde: ] ,...., [ 1 = k m k k s s S (3.34) ] ,...., [ 1 = k m k k y y Y (3.35) são matrizes(n×k); ⎩ ⎨ ⎧ > = − −+ − −+ contrário caso 0 se ) (L s 1 yk m1 j i j t i m k ij k (3.36)

(35)

] ,..., [ 1 1 = t k k m k t m k k diag s y s y D (3.37) k

D é uma matriz diagonal e εk um escalar positivo qualquer. Em [3], recomenda-se:

1 1 1 1 − − − − = k t k k t k k s s s y ε (3.38) No entanto, em [16], recomenda-se εk =1.

Nesta última formulação as matrizes têm a dimensão relacionada aos últimos m pares de vetores s e y [(3.34) e (3.35)] e não mais ao total de k iterações como mostrado em (3.29) e (3.30). A matriz Quase-Newton, ,B continua com a mesma dimensão

). (n×n

Observa-se que a matriz

⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − k t k k k t k D L L S B S 0 (3.39) da equação (3.28)é indefinida.

Porém, sua inversão pode ser feita, utilizando-se o método de fatorização de Cholesky, da seguinte maneira:

0 0 2 1 2 1 2 1 2 1 0 ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − − ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡− t k k k k k k k k k t k k t k k V D L D V D L D S B S L L D (3.40)

onde V é uma matriz triangular inferior que satisfaz k

, 1 0 t k k k k t k t k k V S B S L D L V = + − (3.41)

Se B é positiva definida e 0 sityi ≥0, i=1,...,k−1, então Vk existe e não é

(36)

Logo, tem-se uma nova forma de representar a atualização da matriz Quase-Newton dada por:

[

]

⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − − = − t k k t k k k k k t k t k k k k k k k k S Y V D L D V L D D S Y I B ε ε ε 0 0 -1 2 1 2 1 1 -2 1 2 1 (3.42)

Nesta última formulação as matrizes têm a dimensão relacionada com os últimos

m pares de vetores s e y, e não mais ao total de k iterações. A matriz Quase-Newton,

,

k

B continua com a mesma dimensão(n×n). Na prática sugere-se que m≤7 [2].

A técnica de memória limitada na realidade não armazena a matriz B da iteração anterior e as informações necessárias estão armazenadas nos vetores S e Y. Como não há armazenamento, faz-se uso de artifícios para obtenção de produtos entre vetores e a matriz B.

Usando-se a equação (3.42) serão apresentadas algumas operações envolvendo a matriz B . Tais operações serão úteis quando for utilizada a técnica de memória k

limitada junto ao algoritmo do FAIPA [10].

As operações destacadas são as seguintes: produto de B por um vetor v e k produto utBkv, onde u e v são vetores de dimensão n.

3.3.1.1 - Produto Bkv

O produto de B por um vetor v é determinado da seguinte forma: k - dados: x , k S , k Y ,k Lk, D e ;k εk

- efetuar a fatorização de Cholesky de εkSktSk +LkDk−1Ltk para se obter .

k V - resolver a equação (3.43): ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎤ ⎢ ⎢ ⎢ ⎡ − ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − = − v S v Y V D L D V L D D p t k k t k k t t k k k ε 0 0 -1 1 2 1 1 -2 1 2 1 (3.43)

(37)

- efetuar o produto

[

Y S

]

p -v ε v Bk = k k εk k (3.44) 3.3.1.2 - Produto utBkv

O produto de utBkv, onde u e v são vetores de dimensão n é determinado da seguinte forma: - dados S , k Y , k L e k D k - define-se W k

[

k k k

]

k Y S W = ε (3.45) - calcular utYk, utεkSk, Yktv e εkSktv - determinar utWk e Wktv

- efetuar a decomposição de Cholesky de SktSk +LkDk−1Ltk para obter V k; - calcular εkuvt. - resolver (3.46) v W V D L D V L D D W u -v u ε v B u t k k k k k t k t k k k k t t k k t 0 0 -1 2 1 2 1 1 -2 1 2 1 ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − = − (3.46)

(38)

3.3.2 – Método de Atualização Esparsa

É um assunto que foi explorado e abandonado no fim dos anos 70 com Toint [37][38][39] e ressurgiu no meio da década de 90 com Fletcher [13][14]. Consiste basicamente no desenvolvimento da atualização Quase-Newton adotando um determinado padrão de esparsidade para a matriz Hessiana (∇ ). f2

Antes de descrevermos as técnicas esparsas de Toint e Fletcher, é necessário definir a norma de Frobenius, que será utilizada para resolver tais problemas de atualização.

A norma de Frobenius . Fde uma matriz é definida da seguinte maneira. Seja M a matriz: ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = nn n n M M M M M L M O M L 1 1 11 (3.47) Onde Mij∈ℜ, sendo i=1,...,n e j=1,...,n. Então:

∑∑

= = = n i n j ij F M M 1 1 2 (3.48) ou

∑∑

= = = n i n j ij F M M 1 1 2 2 (3.49)

(39)

3.3.2.1 – Atualização Esparsa de Toint (1977)

Toint apresenta o problema de atualização esparsa considerando que a matriz

1 +

k

B é a solução do seguinte problema quadrático descrito abaixo:

⎪ ⎪ ⎪ ⎭ ⎪⎪ ⎪ ⎬ ⎫ ∈ ∀ = = = − = − + + + + ∈ + +

+ I i,j 0 B e B B y s B sujeito a B B B B minimize ij 1 k t k k k k k I (i,j) 2 ij k ij k 2 F k k Bk1 ) ( ) ( ] ) ( ) [( 1 1 1 1 1 (3.50) onde

ƒ ⋅ denota a norma de Frobenius; F

ƒ os vetores s e k y são k sk =xkxk1 e yk =∇f(xk)−∇f(xk1) ƒ I={(i,j)|[∇2f(x)]ij =0}

ƒ J ={(i,j)|[∇2f

( )

x]ij ≠0}

A solução B é obtida resolvendo um sistema linear com n equações e k

conservando o mesmo padrão de esparsidade I.

Em [37], Toint apresenta, além da formulação do problema, o procedimento de atualização assumindo que a matriz B possui dimensões n× , esparsa e simétrica onde n seus elementos são números reais. As condições de esparsidade não são aplicadas aos elementos da diagonal, isto é, eles não podem ser nulos.

O objetivo, então, é obter a matriz B (k+1 +1= k+1

t k B B ) E B Bk+1= k + (3.51)

que satisfaça a seguinte condição secante

k k k s y

B +1 = (3.52)

(40)

A matriz E é chamada de Matriz de Correção.

As condições de esparsidade podem ser descritas da seguinte maneira:

0 ) ( )

(Bk ij= Bk+1 ij = (3.53)

desde que os pares ( i , j ) ∈ , sendo I um conjunto de pares inteiros. I

Há também um conjunto J que contém os pares não pertencentes a I e

0 ) ( e 0 ) (Bk ijBk+1 ij ≠ (3.54)

desde que os pares ( i , j ) ∈ , sendo J um conjunto de pares inteiros. Considera-se J (i,i) ∈ , para todo i. J

Para resolver o problema, Toint sugere o seguinte procedimento descrito a seguir cujo objetivo final é obter a Matriz de Correção.

Considerando a equação (3.51) e a equação secante (3.52) temos:

k k k E s y B + ) = ( (3.55) k k k k y B s Es = − (3.56) Fazendo: k k k B s y r= − (3.57) Então: k Es r= (3.58)

Toint sugere a criação de uma matriz descrita em (3.59) que permite reescrever a equação (3.58). ⎩ ⎨ ⎧ ∈ ∀ ∈ ∀ = I j i J j i s j i X j ) , ( , 0 ) , ( , ) , ( (3.59)

(41)

Reescrevendo (3.58) temos:

= = n j ij ij i E X r 1 , onde i=1,...,n (3.60)

Seja uma matriz C, podemos considerar a matriz de correção da seguinte forma:

) ( 5 . 0 C CT E= + (3.61)

O problema pode ser considerado da seguinte forma:

⎪ ⎪ ⎪ ⎭ ⎪⎪ ⎪ ⎬ ⎫ = = + +

= ,...,n i onde r X C C sujeito a minimize i ij ji ij F E 1 2 ] ) ( [ C C 8 1 n 1 j 2 T (3.62)

Da mesma forma que em [19], o lagrangeano da função do problema (3.62) é o seguinte: } 2 -] ) ( [ ( { ) 2 ( 8 1 ) , ( 1 1 1 1 2 2

∑∑

= = = = + − + + = Φ n i i ij n j ji ij i n i n j ji ij ji ij C C C C C X r C C λ λ (3.63)

Diferenciando em relação a C temos: ij

0 ) ( 0.5 ) , ( = − − + = ∂ Φ ∂ ji j ij i ji ij ij X X C C C C λ λ λ (3.64) Sendo i=1,...,n e j=1,...,n.

Podemos usar a equação (3.61) para reescrever a (3.64):

0 = − − i ij j ji ij X X E

λ

λ

(3.65)

(42)

ji j ij i ij X X E =λ +λ (3.66) Substituindo (3.66) em (3.60):

= + = n j ij ji j ij i i X X X r 1 ] ) [(λ λ , onde i=1,...,n (3.67)

Que pode ser reescrita:

= = + = n j ij ji j n j ij i i X X X r 1 1 2 ) ( ) ( λ λ , onde i=1,...,n (3.68)

Podemos transformar ainda mais a equação (3.68) ao criar a matriz Q da seguinte forma:

= + = n k ij ik ij ij ij X X X Q 1 2 ) ( δ , onde i=1,...,n e j=1,...,n (3.69)

Então temos o seguinte sistema de equações onde a incógnita é λ.

r

Q

λ

= (3.70)

Por fim, com λ, o vetor solução de (3.70), junto a equação (3.66), obtém-se a matriz de correção.

É possível reescrever resumidamente o processo descrito acima para a resolução do problema que consiste em encontrar a matriz de correção segundo a técnica esparsa de Toint: ⎪ ⎪ ⎭ ⎪ ⎪ ⎬ ⎫ ∈ ∀ = = − = I j i E e E E s B y Es sujeito a E . minimize ij t k k k k F E ) , ( 0 5 0 2 (3.71)

(43)

Para a resolução de (3.71) define-se a matriz X de dimensões n x n: ⎩ ⎨ ⎧ ∈ ∀ ∈ ∀ = I j i J j i s j i X j ) , ( , 0 ) , ( , ) , ( (3.72)

Em seguida obtém-se a matriz Q da seguinte forma:

ij ji ij ij X X X i Q 2δ :) , ( + = (3.73)

onde δ é o delta de Kronecker descrito em (3.74).

⎩ ⎨ ⎧ ≠ = = j i j i ij , 0 , 1 δ (3.74)

De posse da matriz Q é possível resolver o sistema (3.75) e obter o vetor λ para utilizá-lo em (3.76) e encontrar a matriz de correção E .

k k k B s

y

Qλ= − (3.75)

Então, obtém-se a matriz de correção:

⎩ ⎨ ⎧ ∈ ∀ + ∈ ∀ = J j i X X I j i E ji ij ij ) , ( , ) , ( , 0 j i λ λ (3.76)

Agora é possível encontrar a matriz B definido na equação (3.51). k+1

Dentre as várias desvantagens dessa técnica é que, além de não garantir que B k+1

seja definida positiva, exige a resolução de um sistema de equações (3.75) com muitas variáveis [31]. Além disso, é necessário o armazenamento da matriz B a cada iteração.

(44)

3.3.2.2 – Atualização Esparsa de Fletcher (1996)

Em [14], Fletcher apresenta uma outra maneira para descrever o método de atualização esparsa. Ele considera, agora, que a matriz B é a solução do seguinte k+1 problema quadrático: ⎪ ⎪ ⎭ ⎪ ⎪ ⎬ ⎫ ∉ ∀ = = − + + + + + J j i B e B B sujeito a Y S B minimize ij k t k k F k k k BK ) , ( 0 ) ( 1 1 1 2 1 1 (3.77) onde

ƒ ⋅ denota a norma de Frobenius; F

ƒ as matrizes S e k Y contém os m diferentes pares k s e i y , i i=1,...,m. ] ,..., [ k m 1 k k s s S = + (3.78) ] ,..., [ k m1 k k y y Y = + (3.79) ƒ os vetores s e k y são k sk =xkxk1 e yk =∇f(xk)−∇f(xk1) ƒ J ={(i,j)|[∇2f(x)]ij ≠0}

Ainda em [12], Fletcher mostra que o problema apresenta solução única se S k satisfaz a condição de independência linear entre as colunas da matriz. Considerando-se isso, B pode ser obtida através da solução de um sistema definido positivo, porém k+1

não é garantido, também, que B seja positiva definida [31]. k+1

O sistema (3.80) é proposto por Fletcher em [12] para auxiliar na resolução do problema (3.77).

w b KP

Pt = (3.80)

Antes de descrever esse sistema, é preciso apresentar alguns conjuntos, matrizes e vetores necessários para uma melhor compreensão. Além disso, será introduzido o operador vec que será utilizado para transformar matrizes em vetores.

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Resultados: Os parâmetros LMS permitiram que se fizesse uma análise bastante detalhada a respeito da distribuição da gordura subcutânea e permitiu a construção de

A proposta desta pesquisa objetivou desenvolver o estudante para realizar a percepção sobre o estudo da complexidade do corpo humano, onde o educando teve oportunidade

O trabalho tem como objetivo elucidar a importância do brincar para as crianças, do contato delas com a natureza, de sua ação de ocupar espaços públicos na cidade, como praças e

Neste capítulo, será apresentada a Gestão Pública no município de Telêmaco Borba e a Instituição Privada de Ensino, onde será descrito como ocorre à relação entre

To identify a source of ligands able to activate Olfr692- expressing cells, we first exposed adult animals to bio- logically relevant stimuli and then labeled the activated neurons

A two-way (eccentric versus concentric training) repeated measures (pre-training versus post-training) ANOVA, with a 5% significance level, was used to compare:

The thermal water at the spas of Monfortinho and Cró, for example, have a chemical composition similar to some thermal waters that are currently used in the treatment of skin