Acessibilidade / Reportar erro

Variantes do método dos gradientes conjugados aplicados a sistemas lineares originados dos métodos de pontos interiores

Resumos

Neste trabalho, comparamos duas versões precondicionadas do método dos gradientes conjugados. Essas versões diferem da versão clássica, pois consideram que o sistema linear e um sistema de equações normais. Os sistemas lineares que iremos resolver surgem do cálculo das direções dos métodos de pontos interiores. A determinação desta direção consiste no passo de maior esforço computacional e, quando trabalhamos com sistemas de grande porte, o uso de métodos diretos pode ser inviável. Portanto, uma opção é utilizar métodos iterativos precondicionados. Assim, o desempenho de duas versões do método dos gradientes conjugados precondicionado é comparado à versão clássica que já foi utilizada, neste mesmo contexto, em trabalhos anteriores. Resultados numéricos mostram que uma dessas versões é competitiva em relação à versão clássica.

métodos de pontos interiores; método dos gradientes conjugados precondicionado


This work presents two preconditioned versions of the conjugate gradient method. These versions differ from the classic version; they consider the linear system in form of normal equations. It will solve linear systems that arise from search directions computation in an interior point method. Determining the direction is the step with the largest computational effort and in large scale problems the use of direct methods might not be feasible. Therefore, one option is to use preconditioned iterative methods to solve the systems. The performances of these two versions of the preconditioned conjugate gradient methods are compared with the classic version. Numerical result shows that one of these versions is competitive with the classic one.

linear programming; interior point method; conjugate gradient


Variantes do método dos gradientes conjugados aplicados a sistemas lineares originados dos métodos de pontos interiores

A.F.E. CoelhoI; A.R.L. OliveiraI; M.I. VelazcoII, * * Autor correspondente: Marta Inés Velazco

IInstituto de Matemática e Computação Científica, IMECC, UNICAMP, Cidade Universitária Zeferino Vaz, Distrito de Barão Geraldo, 13081-970 Campinas, SP, Brasil. E-mails: alessandro.coelho@gmail.com; aurelio@ime.unicamp.br

IIFaculdade Campo Limpo Paulista, FACCAMP, Rua Guatemala,167, Bairro Jardim América, 13231-230, Campo Limpo Paulista, SP, Brasil. E-mail: marta.velazco@gmail.com

RESUMO

Neste trabalho, comparamos duas versões precondicionadas do método dos gradientes conjugados. Essas versões diferem da versão clássica, pois consideram que o sistema linear e um sistema de equações normais. Os sistemas lineares que iremos resolver surgem do cálculo das direções dos métodos de pontos interiores. A determinação desta direção consiste no passo de maior esforço computacional e, quando trabalhamos com sistemas de grande porte, o uso de métodos diretos pode ser inviável. Portanto, uma opção é utilizar métodos iterativos precondicionados. Assim, o desempenho de duas versões do método dos gradientes conjugados precondicionado é comparado à versão clássica que já foi utilizada, neste mesmo contexto, em trabalhos anteriores. Resultados numéricos mostram que uma dessas versões é competitiva em relação à versão clássica.

Palavras-chave: métodos de pontos interiores, método dos gradientes conjugados precondicionado.

ABSTRACT

This work presents two preconditioned versions of the conjugate gradient method. These versions differ from the classic version; they consider the linear system in form of normal equations. It will solve linear systems that arise from search directions computation in an interior point method. Determining the direction is the step with the largest computational effort and in large scale problems the use of direct methods might not be feasible. Therefore, one option is to use preconditioned iterative methods to solve the systems. The performances of these two versions of the preconditioned conjugate gradient methods are compared with the classic version. Numerical result shows that one of these versions is competitive with the classic one.

Keywords: linear programming, interior point method, conjugate gradient.

1 INTRODUÇÃO

Desde a década de 80 os métodos de pontos interiores têm atraído grande interesse. Estes métodos são muito eficientes na solução de problemas de grande porte.

Nestes métodos, a cada iteração, são resolvidos dois sistemas lineares no cálculo das direções por métodos diretos ou iterativos. Os métodos diretos apresentam dificuldades em problemas de grande porte devido ao preenchimento da matriz. Em muitos casos, a melhor solução consiste em usar métodos iterativos. A matriz dos sistemas é simétrica e definida positiva permitindo usar o método dos gradientes conjugados. Devido ao mal-condicionamento da matriz nas iterações finais dos métodos é necessário o uso de precondicionadores. Neste trabalho, utilizamos o precondicionador híbrido proposto em [5].

Para que o método dos gradientes conjugados seja aplicado, não é necessário que o sistema linear seja do tipo de equações normais. Entretanto, existem versões deste método que consideram a estrutura de equações normais em sua formulação [10]. Note que os sistemas originados dos métodos de pontos interiores são sistemas de equações normais.

O objetivo deste trabalho consiste em avaliar a eficiência de duas versões de gradientes conjugados precondicionado (GCP) que consideram sistemas de equações normais. Estas versões são particularizadas para os sistemas oriundos dos métodos de pontos interiores.

1.1 Método de Pontos Interiores Preditor-Corretor

Considere o problema primal e o problema dual de programação linear na forma padrão [12]:

minimizar ctx, sujeito a Ax = b, x > 0, problema primal,

maximizar bt y, sujeito a At y + z = c, z > 0, problema dual,

onde A é uma matriz m × n de posto completo, c e b são vetores coluna de dimensões apropriadas, x é o vetor n × 1 de variáveis primais, y é o vetor m × 1 de variáveis duais e z é o vetor n × 1 de variáveis de folga duais.

O método preditor-corretor [12] calcula duas direções a cada iteração para as variáveis (x, y, z) de programação linear. De forma resumida, podemos dizer que essas direções são obtidas aplicando o método de Newton nas condições de otimalidade:

Definindo rp = b – Ax, rd = c – At y – z e ra= –XZe, desejamos que estes resíduos (rp, rd, ra) sejam nulos obtendo assim uma solução ótima.

2 MÉTODO DOS GRADIENTES CONJUGADOS PARA SOLUÇÃO DE SISTEMAS DE EQUAÇÕES NORMAIS E MÉTODOS DE PONTOS INTERIORES

Na solução de sistemas com matrizes simétricas e definida positiva é utilizado o método dos gradientes conjugados. Quando trabalhamos com matrizes mal-condicionadas é necessário o uso de precondicionadores para garantir a convergência do método. Em [10] são apresentadas duas versões do método dos gradientes conjugados precondicionado que consideram a estrutura de equações normais em sua formulação. Nesta seção, as mesmas serão particularizadas para as matrizes originadas dos métodos de pontos interiores.

Dado um sistema linear Gx = d, existem duas alternativas para se obter um sistema de equações normais:

1. Substituindo a variável x por Gtu teríamos o sistema GGtu = d;

2. Premultiplicando o sistema original por Gt resultando no sistema GtGx = Gtd.

A primeira versão, Gradientes Conjugados Precondicionado – Normal Error (GCPNE), é construída precondicionando o sistema GGtu = d, com x = Gtu. A segunda versão, Gradientes Conjugados Precondicionado – Normal Residual (GCPNR), considera o sistema o GtGx = Gtd.

2.1 Métodos de Pontos Interiores

O passo mais caro de uma iteração de pontos interiores consiste na solução do sistema linear:

onde D = Z–1 X é uma matriz diagonal definida positiva.

Para resolver o sistema (2.1), considere o sistema de equações normais GGtu = d. Relacionando ambos os sistemas, temos as seguintes identidades: o vetor u representa as direções dy a serem calculadas, a matriz G representa a matriz de forma que GGt = AD At . Finalmente, o vetor d representa o lado direito do sistema linear rp+ A(Drd– Z–1ra).

Desta forma, o método GCPNE para resolver o sistema (2.1) pode ser resumido como:

Algoritmo 2.1. GCPNE na variável u – Versão para o Sistema do Método de Pontos Interiores

Calcule r0 = d – AD At u0, z0 = M–1r0, p0 = z0

Para j = 0,1,...,até convergir, faça:

Fim

Outra forma de resolver o sistema (2.1) é compará-lo com o segundo tipo de equações normais: GtGx = Gtd. Note que a matriz G será substituída por At emantemos a variável x que representa o valor de dy.O vetor rp+ A(Drd– Z–1ra) do sistema (2.1) é representado por Gtd no sistema GtGx = Gtd. Portanto, é necessário recuperar o vetor d do sistema (2.1). Logo, definindo

= At (AAt )–1b,

temos:

Portanto

d = (D–1 – D–1x + rd– D–1 Z–1ra),

para o sistema (2.1).

Assim, o método GCPNR para resolver o sistema (2.1) pode ser resumido como:

Algoritmo 2.2. GCPNR – Versão para o Sistema do Método de Pontos Interiores

Calcule r0 = d – At x0, 0 = r0, z0 = M–1

0, p0 = z0.

Para j = 0,1, ..., até convergir, faça:

Fim

3 EXPERIMENTOS NUMÉRICOS

Os experimentos numéricos foram realizados utilizando o código PCx [7]. O PCx resolve problemas de otimização linear pelo método preditor-corretor com múltiplas correções. Este código é implementado na linguagem C exceto as rotinas para solução dos sistemas lineares desenvolvida na linguagem Fortran. Os sistemas lineares que surgem ao decorrer do método são resolvidos através de uma abordagem direta por fatoração de Cholesky.

Neste trabalho, foi utilizada a versão PCx-Modificado [9, 5, 11]. Esta versão utiliza uma abordagem iterativa na solução dos sistemas lineares. Assim, a opção de múltiplas correções é desligada e a fatoração de Cholesky é substituída pela solução iterativa através do método dos gradientes conjugados precondicionado. O precondicionador utilizado é o Precondicionador Híbrido [5] com as modificações propostas em [11]. A partir desta versão modificada, as novas versões dos Gradientes Conjugados para sistemas lineares são testadas e comparadas com a mesma.

Todos os testes foram realizados em um processador Intel Core 2 Duo 2.2GHz com 2Gb de RAM, em ambiente Linux.

Os problemas testes são apresentados na Tabela 1. Estes foram selecionados dentro das classes de problemas onde a decomposição de Cholesky produz uma matriz mais densa que a matriz original [5, 9]. Os problemas foram extraídos das bibliotecas de domínio público: NETLIB [3], STOCHPL [4], MISC [1, 2] e QAPLIB [6]. Na tabela, para cada problema é descrito: o número de linhas, colunas, elementos não nulos após o pré-processamento, a densidade da matriz e biblioteca de origem.

3.1 Resultados Computacionais

A eficiência e robustez dos métodos GCPNR e GCPNE é avaliada a partir da comparação dos mesmos com o método dos gradientes conjugados precondicionado utilizado na versão PCx-modificado. Nas comparações, foram considerado:

  • Total de iterações de pontos interiores (descritas entre parênteses);

  • Total de iterações dos métodos de gradientes conjugados dada pela soma do número de iterações realizadas para o cálculo de cada uma das duas direções do método de pontos interiores;

  • Tempo de processamento.

A Tabela 2 apresenta os resultados obtidos para os problemas testados com a versão GCPNR e com a versão clássica de GCP. A versão GCPNR convergiu apenas para cinco dos problemas testados e obteve pior desempenho em todos os itens analisados. A versão GCPNR precisa de um esforço extra para conversão do sistema linear a um sistema de equações normais, isto é, recuperar o lado direito do sistema como descrito na Seção 2. Portanto, fazendo estas operações acumulamos muito erros numéricos visto que temos o cálculo de um sistema linear extra para determinar uma matriz inversa. Os erros numéricos dificultam a convergência do método iterativo e o mesmo é interrompido antes de resolver o sistema pois excede o náximo de iterações. Este resultado compromete o método de pontos interiores que converge para resultados incoerentes e não para um ótimo do problema. O código PCx reconhece este estado e o programa devolve a mensagem UNKNOWN status.

Se somarmos as iterações do método iterativo realizadas nos problemas que convergiram para ambos métodos temos os seguintes resultados: o GCP realizou 88418 iterações e o GCPNR realizou 224211 iterações. O método GCPNR fez mais que o dobro de iterações para resolver os mesmos sistemas e levou quase o triplo do tempo de processamento.

A versão GCPNE mostrou-se muito mais competitiva com o método clássico de GCP como mostra a Tabela 3. O método de pontos interiores atingiu o valor ótimo para praticamente todos os problemas testados. Este método não precisa da transformação extra pois, os sistemas oriundos do método de pontos interiores são semelhantes ao sistema de equações normais para o qual o método é definido.

Os métodos GCP e GCPNE se comportam de forma muito parecida, apesar de ocorrerem diferenças. Variações no total de iterações do médodo dos gradientes conjugados ocorreram em todos os problemas e, em alguns casos, até mesmo no total de iterações de pontos interiores. Destacam-se os problemas ste36b e nug15. O primeiro foi resolvido apenas usando o método GCPNE entretanto, o segundo foi resolvido apenas pelo GCP. O método GCP realizou 1388306 iterações na resolução dos sistemas lineares enquanto que o método GCPNE realizou 1338843 iterações, somando apenas as iterações dos problemas que convergiram para ambos. Quanto ao tempo de processamento, ambos apresentaram comportamento semelhante na soma total; o GCPNE levou menos tempo na solução dos problemas. Apesar do melhor desempenho do GCPNE em relação ao método clássico a diferença não é relevante considerando a quantidade de problemas testados.

Estes resultados também podem ser observados através do perfil de desempenho [8]. O perfil de desempenho é uma ferramenta para comparar o desempenho de s algoritmos na solução de p problemas. Neste caso, temos s = 3 algoritmos e p = 24 problemas. Usaremos como medidas de desempenho os seguintes itens: total de iterações de pontos interiores; total de iterações dos métodos dos gradientes conjugados e tempo de processamento.

A Figura 1 apresenta o gráfico utilizando como medida de desempenho o total de iterações do método de pontos interiores. Os métodos GCP e GCPNE têm a mesma eficiência e robustez mostrando-se superiores ao GCPNR que sóconvergiu em 20% dos problemas testados.


Na Figura 2, temos os resultados a partir do total de iterações do método dos gradientes conjugados como medida de desempenho e os resultados são similares. Finalmente, a Figura 3 apresenta os mesmos resultados para o perfil de desempenho com o tempo de processamento. Podemos verificar que o método GCPNR se mostrou menos eficiente e robusto que os métodos GCP e GCPNE. Os resultados a partir do perfil de desempenho mostram que o método GCPNE é tão eficiente quanto o método clássico e seus resultados são competitivos.



4 CONCLUSÕES

Neste trabalho, avaliamos a eficiência de diferentes versões do método dos gradientes conjugados precondicionado aplicados aos sistemas lineares oriundos dos métodos de pontos interiores. A principal motivação para testar diferentes versões desses métodos vem da estrutura natural destes sistemas, na forma de equações normais.

Para avaliar a eficiência de cada uma das versões consideramos o total de iterações do método de pontos interiores e do método dos gradientes conjugados e o tempo total de processamento. Os problemas selecionados foram resolvidos utilizando a versão clássica e as duas versões que utilizam a estrutura de equações normais: GCPNE e GCPNR.

A implementação da versão GCPNE no código PCx-modificado é natural visto que a estrutura do método se adequa muito bem aos sistemas encontrados. Os resultados obtidos com essa versão foram muito semelhantes aos da versão clássica. Em poucos casos ocorreram variações no total de iterações do método de pontos interiores. De maneira geral, o tempo e total de iterações do método dos gradientes conjugados também não apresentaram grandes diferenças. Portanto, a versão GCPNE obteve bom desempenho sendo competitiva com a versão GCP.

A versão GCPNR apresentou dificuldades teóricas na sua adaptação aos sistemas lineares dos métodos de pontos interiores, pois os sistemas não eram equivalentes. O sistema de equações normais resolvido pelo GCPNR é obtido a partir da premultiplicação do sistema pela matriz transposta dos coeficientes. Para obter a equivalência entre os sistemas, foram necessárias mudanças de variáveis e cálculos adicionais no lado direito do sistema linear dos métodos de pontos interiores. Essas adaptações envolveram operações extras que acumularam erros numéricos prejudicando a eficiência desta versão.

AGRADECIMENTOS

Este trabalho contou com o apoio financeiro do Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) e da Fundação de Amparo a Pesquisa do Estado de São Paulo (FAPESP).

Recebido em 6 abril, 2013

Aceito em 17 dezembro, 2014

  • [1] Miscellaneous LP models. Hungarian Academy of Sciences OR Lab. Online at http://www sztaki.hu/˜meszaros/public_ftp/lptestset/misc
  • [2] Mittelmann LP models. Miscellaneous LP models collect by Hans D. Mittelmann. Online at http://plato.asu.edu/ftp/lptestset/pds/
  • [3] NETLIB collection LP test sets. NETLIB LP repository. Online at http://www.netlib.org/lp/data/
  • [4] Stochastic LP test sets. Hungarian Academy of Sciences OR Lab. Online at http://www sztaki.hu/˜meszaros/public_ftp/lptestset/stochlp
  • [5] S. Bocanegra, F.F. Campos & A.R.L. Oliveira. Using a hybrid preconditioner for solving large-scale linear systems arising from interior point methods, Computational Optimization and Applications, 36(12) (2007), 149164.
  • [6] R.S. Burkard and S. Karisch & F. Rendl. QAPLIB A Quadratic Assignment Problem Library. European Journal of Operations Research, 55 (1991), 115119.
  • [7] J. Czyzyk, S. Mehrotra, M. Wagner & S.J. Wright. PCx An Interior Point Code for Linear Programming. Opt. Methods & Soft., 11-2(1-4) (1999), 397430.
  • [8] E.D. Dolan & J.J. Moré. Benchmarking optimization software with performance profiles. Mathematical Programming, 91 (2002), 201213.
  • [9] A.R.L. Oliveira & D.C. Sorensen. A new class of preconditioners for large-scale linear systems from interior point methods for linear programming. Linear Algebra and Its applications, 394 (2005), 124.
  • [10] Y. Saad. "Iterative Methods for Sparse Linear Systems". SIAM Publications, SIAM, Philadelphia, PA, USA, (1997).
  • [11] M.I. Velazco, A.R.L. Oliveira & F.F. Campos. A note on hybrid preconditions for large scale normal equations arising from interior-point methods. Opt. Methods & Soft., 25 (2010), 321332.
  • [12] S.J. Wright. "PrimalDual InteriorPoint Methods". SIAM Publications, SIAM, Philadelphia, PA, USA, (1996).
  • *
    Autor correspondente: Marta Inés Velazco
  • Datas de Publicação

    • Publicação nesta coleção
      09 Fev 2015
    • Data do Fascículo
      Dez 2014

    Histórico

    • Recebido
      06 Abr 2013
    • Aceito
      17 Dez 2014
    Sociedade Brasileira de Matemática Aplicada e Computacional Rua Maestro João Seppe, nº. 900, 16º. andar - Sala 163 , 13561-120 São Carlos - SP, Tel. / Fax: (55 16) 3412-9752 - São Carlos - SP - Brazil
    E-mail: sbmac@sbmac.org.br