Detecção de Linhas Redundantes em Problemas de Programação Linear de Grande Porte



Documentos relacionados
Detecção de Linhas Redundantes em Problemas de Programação Linear de Grande Porte 1

DETECÇÃO DE LINHAS REDUNDANTES EM PROBLEMAS DE PROGRAMAÇÃO LINEAR DE GRANDE PORTE

UMA ABORDAGEM DE PRÉ-CONDICIONAMENTO HÍBRIDA PARA RESOLVER OS SISTEMAS LINEARES DE MÉTODOS DE PONTOS INTERIORES ITERATIVAMENTE

[a11 a12 a1n 4. SISTEMAS LINEARES 4.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

a 1 x a n x n = b,

Resolução de sistemas lineares

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

Exercícios Teóricos Resolvidos

Uma Heurística para o Problema de Redução de Padrões de Corte

Matemática - UEL Compilada em 18 de Março de Prof. Ulysses Sodré Matemática Essencial:

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser:

Método de Eliminação de Gauss. Eduardo Camponogara

2 Problema das p-medianas

Além de minimizar o número de objetos processados, problema de corte unidimensional

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

¹CPTL/UFMS, Três Lagoas, MS,Brasil, ²CPTL/UFMS, Três Lagoas, MS, Brasil.

E A D - S I S T E M A S L I N E A R E S INTRODUÇÃO

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

Orientação a Objetos

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

PESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR. Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 *

Cálculo de volume de objetos utilizando câmeras RGB-D

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Árvores Binárias de Busca

Aspectos Teóricos e Computacionais do Problema de Alocação de Berços em Portos Marítmos

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

4 Segmentação Algoritmo proposto

Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas ICEB

Figura 1.1: Exemplo de links patrocinados no Google

O MÉTODO HÚNGARO PARA RESOLUÇÃO DE PROBLEMAS DE OTIMIZAÇÃO

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

UM CONCEITO FUNDAMENTAL: PATRIMÔNIO LÍQUIDO FINANCEIRO. Prof. Alvaro Guimarães de Oliveira Rio, 07/09/2014.

Manual SAGe Versão 1.2 (a partir da versão )

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Módulo 4. Construindo uma solução OLAP

UMA HEURÍSTICA GRASP PARA O PROBLEMA ESTENDIDO DE SEQUENCIAMENTO DE CARROS

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

6 Construção de Cenários

Tema Tendências em Matemática Aplicada e Computacional, 15, N. 3 (2014),

Material de Apoio. Sistema de Informação Gerencial (SIG)

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

XI Encontro de Iniciação à Docência

Associação de resistores

R é o conjunto dos reais; f : A B, significa que f é definida no conjunto A (domínio - domain) e assume valores em B (contradomínio range).

3 Estratégia para o enriquecimento de informações

Síntese das discussões do fórum Livro-APF: Julho/2010

Sistemas Operacionais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Universidade Federal de Uberlândia Brasil

Álgebra Linear. Mauri C. Nascimento Departamento de Matemática UNESP/Bauru. 19 de fevereiro de 2013

Figura 1 Busca Linear

15/03/2010. Análise por pontos de função. Análise por Pontos de Função. Componentes dos Pontos de Função. Componentes dos Pontos de Função

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Universidade Federal de Alfenas

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Investigação Operacional- 2009/10 - Programas Lineares 3 PROGRAMAS LINEARES

Capítulo 3 - Sistemas de Equações Lineares

Capítulo 3 - Sistemas de Equações Lineares

Departamento de Matemática - UEL Ulysses Sodré. Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Aula 13 Técnicas de Integração

Microsoft Access XP Módulo Um

Gerenciamento de Problemas

LIDANDO COM SAZONALIDADES NO PROCESSO LOGÍSTICO

Capítulo 1. x > y ou x < y ou x = y

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Só Matemática O seu portal matemático FUNÇÕES

Tópico 11. Aula Teórica/Prática: O Método dos Mínimos Quadrados e Linearização de Funções

Bem-vindo ao tópico sobre administração de listas de preços.

2. Representação Numérica

Somatórias e produtórias

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Disciplina: Introdução à Álgebra Linear

softwares que cumprem a função de mediar o ensino a distância veiculado através da internet ou espaço virtual. PEREIRA (2007)

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

MINIMIZANDO O NÚMERO DE DIFERENTES PADRÕES DE CORTE - UMA ABORDAGEM DE CAMINHO MÍNIMO

ITIL v3 - Operação de Serviço - Parte 1

Conceitos de Banco de Dados

Lista 1 para a P2. Operações com subespaços

Implantação do Padrão TISS

Chamado/Requisito : TFAWUP Data da publicação : 14/06/12

A Otimização Colônia de Formigas

4 Arquitetura básica de um analisador de elementos de redes

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro.

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Conceitos Fundamentais

3 Qualidade de Software

JinSol, uma interface em Java para solvers lineares.

Transcrição:

Detecção de Linhas Redundantes em Problemas de Programação Linear de Grande Porte Aurelio R. L. de Oliveira, Daniele Costa Silva, Depto de Matemática Aplicada, IMECC, UNICAMP, 13083-859, Campinas, SP E-mail: aurelio@ime.unicamp.br, silvadc@yahoo.com.br, Resumo: A presença de linhas redundantes na matriz de restrições não é incomum em problemas reais de grande porte. A existência de tais linhas deve ser levada em consideração na solução destes problemas. Se o método de solução adotado for o simplex, existem procedimentos de fácil implementação que contornam este problema. O mesmo se aplica quando métodos de pontos interiores são adotados e os sistemas lineares resultantes são resolvidos por métodos diretos. No entanto, existem problemas de grande porte cuja única forma possível de solução é resolver os sistemas lineares por métodos iterativos. Nesta situação as linhas redundantes geram uma matriz singular e os métodos iterativos não convergem. A única alternativa viável consiste em detectar tais linhas e eliminá-las antes da aplicação do método. Este trabalho tem como objetivo apresentar um procedimento eficiente de detecção de linhas redundantes. Palavras-chave: Linhas Redundantes, Métodos de Pontos Interiores, Forma Produto. 1 Introdução Desde o surgimento dos métodos de pontos interiores para programação linear, códigos computacionais baseados nessas idéias vêm se apresentando como alternativas eficientes para solução de problemas de grande porte [1, 4, 7, 9, 10, 12]. Cada iteração de um método de pontos interiores envolve a solução de um ou mais sistemas lineares [9, 10, 11]. Usualmente métodos diretos são utilizados para resolver estes sistemas. No entanto, por limitações de tempo e memória seu uso torna-se proibitivo em muitos problemas de grande porte, fazendo com que abordagens iterativas sejam mais adequadas. Para que a opção por métodos iterativos seja bem sucedida é necessário detectar e eliminar todas as linhas redundantes da matriz de restrições, pois de outra forma é obtido um sistema linear singular e os métodos iterativos não convergem. Em [2] é proposta uma técnica sofisticada baseada na decomposição LU de uma base e sua atualização para encontrar todas as linhas redundantes de uma matriz de restrições. Este é o ponto de partida do presente trabalho. A organização deste artigo é a que vem a seguir. Na seção 2 apresentamos um algoritmo para detecção de linhas redundantes. Na seção 3 propomos uma implementação eficiente deste algoritmo. Na seção 4 apresentamos os resultados computacionais. E, finalmente, na seção 5, nossas conclusões e propostas de trabalhos futuros. 2 O algoritmo Considere sem perda de generalidade o seguinte problema de programação linear: Minimizar c j x j 325

sujeito a a ij x j = b i (i = 1, 2,..., m) l j x j u j (j = 1, 2,..., n). (1) Onde A = [a ij ] R mxn ; x, l, u R n e b R m. Para detectarmos as linhas redundantes da matriz de restrições (A) do problema acima (1) utilizaremos uma matriz base (B), a qual é gerada a partir de colunas da matriz de restrições. Para isso, adicionamos variáveis artificiais fixas em zero (x n+1, x n+2,.., x n+m ) ao problema (1) obtendo o problema equivalente: sujeito a Minimizar c j x j a ij x j + x n+i = b i (i = 1, 2,..., m) l j x j u j (j = 1, 2,..., n) 0 x n+i 0 (i = 1, 2,..., m). (2) Seja S o conjunto de índices i, tais que x n+i é uma variável básica; (inicialmente todas as variáveis artificiais são básicas, logo a matriz base inicial é a matriz identidade de ordem m). Apresentamos então, o algoritmo para detecção de linhas redundantes. Passo 1: Se S é vazio, pare. Caso contrário escolha k S. Passo 2: Resolva o sistema B t r = e k, onde B é a matriz base e e k representa o vetor canônico na posição k. Se r t A = 0, podemos afirmar que a k-ésima linha de A é redundante. Caso contrário, há uma variável não básica x j : r t c 0 para a coluna correspondente c de A. Substitua a k-ésima coluna de B por c e substitua x n+k por x j na base e retorne para 1. Note que o algoritmo deve ser aplicado para todo k S. 3 A proposta de implementação O algoritmo apresentado na seção anterior é bastante conhecido [6]. Porém sua implementação direta pode ter um custo computacional muito elevado. Visando a redução deste custo computacional e a eficácia do algoritmo propomos uma implementação eficiente para este, tomando como base as idéias expostas em [2], a quais serão discutidas a seguir. Um dos fatores que interferem no custo computacional do algoritmo para detecção de linhas redundantes é a dimensão da base inicial e o número de elementos não nulos contidos nesta. Podemos reduzir estes fatores através de algumas observações. Primeiramente, observando se há alguma linha nula (linha na qual todos elementos são iguais a zero) na matriz de restrições. Se sim, estas devem ser declaradas redundantes e retiradas do problema. Posteriormente, verificar se há alguma coluna única (coluna que contém apenas um elemento não nulo) na matriz de restrições. Claramente, a linha na qual esta coluna ocorre é linearmente independente das demais e pode ser retirada temporariamente do problema e não participar do procedimento de verificação de linhas redundantes. Observe que, quando uma linha é removida, novas colunas únicas podem ser geradas e mais linhas podem ser removidas, o que reduz a dimensão da base inicial. 326

Outro fator determinante no custo computacional do algoritmo é o número de variáveis artificiais na base inicial, uma vez que, o número de iterações depende desta quantidade. Em [2] é proposta uma heurística cujo objetivo é construir uma base inicial com o maior número de colunas estruturais possível. A seguir, apresentaremos tal heurística. Note que a heurística deve ser aplicada somente após realizados os procedimentos descritos acima. 3.1 A Heurística Inicialmente, o número de elementos não nulos em cada linha e coluna da matriz de restrições é calculado. Associe uma variável artificial à linha mais densa. Remova temporariamente esta linha do problema e atualize a contagem de elementos não nulos em cada coluna. Caso ocorra alguma coluna única, atribua a linha na qual ela ocorre à variável básica estrutural correspondente. Repita este procedimento até que cada linha esteja associada a uma variável (artificial ou estrutural). Através desta construção obtemos uma base inicial triangular superior e não singular. 3.2 Forma Produto Em todo o algoritmo de detecção de linhas redundantes, a principal operação de cada iteração consiste na resolução de um sistema linear do tipo B t r = e k. Portanto, é imprescindível manter uma representação da base (B), capaz de contribuir com a eficiência do algoritmo. Optamos por uma representação inspirada na forma produto da inversa [8]. A forma produto da inversa, foi proposta por Dantzig e Orchard-Hays ao observarem que, em uma troca de base, a inversa da nova base pode ser obtida a partir da inversa da base atual por uma matriz de transformação elementar. Desta forma, considere E uma matriz de transformação elementar de ordem m, com uma coluna não trivial η na posição k e B = [b 1,..., b m ] a matriz base de uma dada iteração. Suponha que a j-ésima variável não básica x j tenha sido selecionada para substituir a k-ésima variável básica. Denotando B como a nova base, tem-se: B = [b 1,.., b k 1, a.j, b k+1,...b m ]. Onde a.j é a coluna da matriz de restrições relacionada a variável x j. Sendo a.j um vetor m-dimensional, é possível escrevê-lo como a combinação linear das colunas de B: a.j = m v i b i = Bv. (3) Se 0 então b k pode ser expresso de acordo com a equação (3): Definindo o vetor i=1 b k = 1 a.j i k η = [ v 1,..., 1 v i b i., 1, +1,..., v m ] t (4) tem-se que b k = Bη. Sendo E uma matriz de transformação elementar cuja coluna não trivial é dada por η (4), temos: B = BE. (5) Da equação (5) temos que: 327

Sendo assim, após p atualizações da matriz base temos: B = BE 1. (6) B = B 0 E1 1 E 1 2...E 1 p onde: B 0, é a base inicial; E i = [e 1,..., e k 1, η k, e k+1,..., e m ] t ; η k = [ v 1,..., 1, 1, +1,..., vm ] t. Portanto, o sistema B t r = e k pode ser resolvido em duas etapas: Onde (7) pode ser expresso como y t = e k (E p...e 2 E 1 ). (E 1 1 E 1 2...E 1 p ) t y = e k (7) B t 0r = y (8) Acreditamos que esta abordagem é mais vantajosa em relação a apresentada em [2]. Visto que a base é atualizada poucas vezes, em no máximo o número de variáveis artificiais presentes na base inicial. A utilização de uma técnica de implementação relativamente simples, como a proposta no presente trabalho, torna o algoritmo mais eficiente pois o esforço e o tempo computacional serão menores. Outro ponto favorável é a utilização da estrutura triangular da base inicial. Através de algumas modificações propostas em [2], as quais visam a melhora do procedimento de decomposição e atualização LU, a base inicial pode perder sua forma triangular sendo necessária uma nova decomposição LU. Em nossa proposta, a forma triangular da base inicial é preservada e com isto temos B = LU = IU, onde I é a matriz identidade e U uma matriz triangular superior conhecida. Assim, resolvemos o sistema B t r = e k por meio da resolução de um sistema triangular superior e produto de matrizes elementares por vetores. 4 Resultados Computacionais Nesta seção apresentaremos os experimentos numéricos realizados e seus respectivos resultados. Integramos o algoritmo de detecção de linhas redundantes, proposto neste trabalho, as rotinas de preprocessamento do código PCx modificado [4, 7, 12]. E com a finalidade de avaliar o desempenho de nossa proposta, também foi integrado a este código, o procedimento descrito em [4, 12], o qual detecta as linhas redundantes através da decomposição LU retangular da matriz de restrições. As implementações foram feitas em linguagem C e testadas em uma plataforma Intel(R) Pentium(R) 4, 3.40GHz e com 2Gb de memória RAM, em Linux, utilizando compiladores gcc e gfortran. Como problemas testes nós utilizados alguns dos problemas de maior porte das seguintes coleções, NETLIB 1, MISC 2 e QAP [5]. Tais problemas são apresentados na Tabela 1. Nesta tabela, as colunas LINS e COLS mostram respectivamente o número de linhas e colunas dos problemas antes do preprocessamento. RLINS e RCOLS mostram os correspondentes números após a aplicação das rotinas de preprocessamento do PCx. E por fim, LLINS e LCOLS representam os respectivos números após o procedimento de detecção de linhas redundantes (LR). Podemos perceber que após a aplicação das rotinas de preprocessamento houve uma diminuição na dimensão da maioria dos problemas, principalmente nos problemas de maior porte testados. O que mostra a importância do preprocessamento neste tipo de problemas. No entanto, 1 Netlib collection LP test sets, Netlib lp repository, Online at http://www.netlib.org/lp/data. 2 Miscellaneous LP models, Hungarian Academy of Sciences OR Lab, Online at http://www.sztaki.hu/meszaros/public-ftp/lptestset/mist. 328

também podemos verificar que estas não são suficientes para detectar linhas redundantes. Em alguns casos (NUG06-3rd, NUG15, NUG12, NUG07-3rd, NUG08-3rd) em que nenhum tipo de redundância foi detectado por estas rotinas, foi identificado um número elevado de linhas redundantes, as quais geram uma série de complicações no processo de solução. O que dá ênfase a importância de detectar e remover este tipo de redundância. Problemas Coleção LINS COLS RLINS RCOLS LLINS LCOLS LR NUG06-3rd QAP 3972 4686 3972 4686 3540 4686 432 NUG15 QAP 6330 22275 6330 22275 5698 22275 632 PDS-20 NETLIB 33874 108175 32287 106180 32276 106180 11 KRA30A QAP 18059 85725 18059 85725 18059 85725 0 PDS-30 MISC 499441 158489 47968 156042 47957 156042 11 PDS-40 MISC 66844 217531 64276 214385 64265 214385 11 PDS-50 MISC 83060 275814 80339 272513 80328 272513 11 PDS-60 MISC 99431 336421 96514 332862 96503 332862 11 PDS-70 MISC 114944 390005 111896 386238 111885 386238 11 PDS-80 MISC 129181 434580 126120 430800 126109 430800 11 PDS-90 MISC 142823 475448 139752 471538 139741 471538 11 NUG12 QAP 3192 8856 3192 8856 2794 8856 398 NUG07-3rd QAP 9422 12691 9422 12691 8594 12691 828 NUG08-3rd QAP 19728 29856 19728 29856 18270 29856 1458 NUG30 QAP 21899 141405 21899 141405 21899 141405 0 STE36A QAP 27683 131076 27683 131076 27683 131076 0 DFL001 NETLIB 6701 12230 5984 12143 5971 12143 13 Tabela 1: Dados dos problemas testes Na Tabela 2 é apresentada uma comparação entre as dimensões da matriz base (B) e o número de iterações se aplicássemos diretamente o algoritmo apresentado na seção 3 e quando a heurística também descrita nesta seção é aplicada. Nesta tabela, a coluna B1 indica a dimensão da base e o número de iterações do algoritmo apresentada na seção 3 caso este fosse implementado diretamente. E as colunas B2 e VA, mostram respectivamente, a dimensão da base e número de colunas artificiais presentes nesta (quantidade que também representa o número de iterações do algoritmo) quando a heurística é utilizada. Podemos perceber que houve uma redução significativa no número de iterações o que comprova que a heurística proposta em [2] de fato contribui para a redução do custo computacional do algoritmo. E, por fim, a Tabela 3 apresenta os resultados relevantes de tempo. Para cada problema teste, foram realizados dez experimentos numéricos e em cada um destes foi medido o tempo de processamento em segundos para cada procedimento (procedimento proposto neste trabalho e procedimento descrito em [4, 12]). Nesta tabela, as colunas TM1, PT1 e MT1 representam respectivamente, o tempo médio de processamento, pior tempo de processamento e melhor tempo de processamento obtido pelo procedimento descrito em [4, 12]. TM2, PT2 e MT2 mostram o correspondente quando aplicado o procedimento proposto neste trabalho. E por fim, a coluna DTM apresenta a diferença entre os tempos médios do procedimento utilizado como parâmetro de comparação e o aqui proposto. Podemos verificar que a rotina que detecta as linhas por meio da decomposição LU retangular mostrou-se pouco eficiente. Apresenta elevados tempos de processamento, os quais somados ao tempo total de solução pode comprometer a eficiência do método de resolução escolhido. Em contrapartida, nossa proposta apresentou um desempenho bastante satisfatório. Em comparação com o outro procedimento, mostrou-se em média cinco vezes mais rápida, chegando a ser cerca de nove vezes mais rápida no caso do problema NUG08-3rd. Entretanto, houve uma pequena queda de desempenho quando o problema não apresenta 329

linhas redundantes (KRA30A, NUG30 e STE3EA). Uma perda pequena comparada aos ganhos nos casos em que estas linhas estão presentes, em especial, nos modelos de programação linear de grande porte, foco deste trabalho. Problemas B1 B2 VA NUG06-3rd 3972 2172 921 NUG15 6330 6330 3257 PDS-20 32287 30088 13 KRA30A 18059 5009 166 PDS-30 47968 44795 13 PDS-40 64276 60030 13 PDS-50 80339 75070 13 PDS-60 96514 90226 13 PDS-70 111896 104724 13 PDS-80 126120 118342 13 PDS-90 139752 131499 13 NUG12 3192 3192 1652 NUG07-3rd 9422 5012 2055 NUG08-3rd 19728 10320 4117 NUG30 21899 8849 294 STE36A 27683 6226 172 DFL001 5984 4275 16 Tabela 2: Comparação entre dimensões e número de iterações Problemas TM1 TM2 PT1 PT2 MT1 MT2 DTM NUG06-3rd 1.54 0.39 1.55 0.41 1.52 0.37 1.15 NUG15 46.51 6.28 48.43 6.57 45.85 5.58 40.23 PDS-20 46.90 9.82 48.00 9.9 47.01 9.78 37.08 KRA30A 0.44 2.07 0.45 1.90 0.44 1.86-1.63 PDS-30 114.72 21.59 114.72 21.76 114.36 21.46 93.13 PDS-40 211.54 40.23 212.26 40.37 210.63 40.09 171.31 PDS-50 337.73 64.43 338.08 64.74 337.21 64.00 273.30 PDS-60 311.08 51.82 312.93 51.87 310.26 51.75 259.26 PDS-70 433.74 69.42 441.41 69.90 423.09 69.30 364.32 PDS-80 552.46 87.36 555.26 87.90 549.78 87.24 465.10 PDS-90 695.11 196.31 701.14 197.1 692.11 195.49 498.80 NUG12 5.16 1.30 5.20 1.37 5.14 1.28 3.86 NUG07-3rd 17.33 2.56 17.66 2.63 17.25 2.54 14.77 NUG08-3rd 117.96 12.63 121.13 12.90 114.62 11.58 105.33 NUG30 0.48 5.19 0.49 5.21 0.47 5.17-4.71 STE36A 0.72 3.39 0.73 3.41 0.70 3.36-2.76 DFL001 0.32 0.11 0.34 0.12 0.31 0.11 0.21 Tabela 3: Resultados de tempo para os problemas testes 5 Conclusão A proposta mostrou-se eficiente em termos de tempo computacional, fator de extrema importância quando estamos tratando de preprocessamento em programação linear [3], ao ser 330

comparada com um procedimento tradicional de detecção de linhas redundantes. A diferença de desempenho entre ambos os procedimentos aumenta de acordo com a dimensão do problema, enfatizando que o procedimento proposto neste trabalho pode ser uma alternativa eficaz para a resolução do problema em questão. Entretanto, nos falta analisar mais efetivamente como este procedimento interfere no processo de solução dos problemas. Verificar se há interferência nos fatores esparsidade, estabilidade numérica, dimensão, número de iterações do método, tempo total de solução, entre outros. E se sim, como estas intervenções atuam na eficiência do método de solução escolhido. Como trabalho futuro, propomos a integração deste algoritmo em todo o procedimento do código PCx, e não somente as rotinas de preprocessamento, para que seja possível a análise descrita acima. Agradecimentos Ao CNPq e à FAPESP pelo apoio financeiro. Referências [1] I. Adler, Resende, M.G.C., Veiga, G. e Karmakar, N., An implementation of Karmarkars algorithm for linear programming, Mathematical Programming, 44 (1989) 297-335. [2] E. D. Andersen, Finding all linearly dependent rows in large-scale linear programming, Optimization Methods and Softwares, 6 (1995) 219-227. [3] E. D. Andersen e K. D. Andersen, Presolving in linear programming, Mathematical Programming, 71 (1995) 221-245. [4] S. Bocanegra, F. F. Campos e A. R. L. Oliveira, Using a hybrid preconditioner for solving large-scale linear systems arising from interior point methods, Computation Optimization and Applications, 36 (2007) 149-164. [5] R. S. Burkard, S. Karisch e F. Rendl, Qaplib - a quadratic assignment problem library, European Journal of Operations Research, 55 (1991) 115-119. [6] V. Chvàtal, Linear Programming, W. H. Freeman and Company, New York, 1983. [7] J. Czyzyk, S., Mehrotra, M., Wagner e S. J. Wright, PCx an interior point code for linear programming, Optimization Methods Software, 11-2 (1999) 397-430. [8] G. B. Dantzig, W. Orchard-Hays, The product form for the inverse in the simplex method, Mathematical Tables and Others Aids to Computation, 8 46 (1954) 64-67. [9] J. Gondzio, Multiple centrality corrections in a primal-dual methods for linear programming, Computation Optimization and Applications, 6 (1996) 137-156. [10] I. J. Lustig, R. E., Marsten e D. F. Shanno, On implementing Mehrotras predictor-corrector interior point method for linear programming, SIAM Journal on Optimization, 2 (1992) 435-449. [11] S. Mehrotra, On implementation of a primal-dual point method, SIAM Journal on Optimization, 2 (1992) 575-601. [12] A. R. L. Oliveira e D. C. Sorensen, A new class of preconditioners for large-scale systems from interior point methods for linear programming, Linear Algebra Its Applications, 394 (2005) 1-24. 331